@@ -21,6 +21,7 @@ def test_insert_new_record(dynamodb_latest_table, dynamodb_connection):
21
21
storage = DynamoDBStorage (latest_table = 'latest' , connection = dynamodb_connection )
22
22
23
23
new_record = {
24
+ 'what_where_key' : 'syslog:ground_server2' ,
24
25
'time_index_key' : '15225:newlog' ,
25
26
'range_key' : 'new_server:12345abcde' ,
26
27
'metadata' : {
@@ -44,8 +45,7 @@ def test_insert_new_record(dynamodb_latest_table, dynamodb_connection):
44
45
print (f"Failed to store record: { str (e )} " )
45
46
46
47
stored_record = dynamodb_latest_table .get_item (
47
- time_index_key = '15225:newlog' ,
48
- range_key = 'new_server:12345abcde'
48
+ what_where_key = new_record ['what_where_key' ]
49
49
)
50
50
assert stored_record ['metadata' ]['start' ] == new_record ['metadata' ]['start' ]
51
51
@@ -54,6 +54,7 @@ def test_store_conditional_put_latest_multiple_files(dynamodb_latest_table, dyna
54
54
storage = DynamoDBStorage (latest_table = 'latest' , connection = dynamodb_connection )
55
55
56
56
file1 = {
57
+ 'what_where_key' : 'syslog:ground_server2' ,
57
58
'time_index_key' : '15219:zlcdzvawsp' ,
58
59
'range_key' : 'lawvuunyws:447a4a801cabc6089f04922abdfa8aad099824e9' ,
59
60
'metadata' : {
@@ -72,6 +73,7 @@ def test_store_conditional_put_latest_multiple_files(dynamodb_latest_table, dyna
72
73
}
73
74
74
75
file2 = {
76
+ 'what_where_key' : 'syslog:ground_server2' ,
75
77
'time_index_key' : '15219:zlcdzvawsp' ,
76
78
'range_key' : 'lawvuunyws:447a4a801cabc6089f04922abdfa8aad099824e9' ,
77
79
'metadata' : {
@@ -91,6 +93,7 @@ def test_store_conditional_put_latest_multiple_files(dynamodb_latest_table, dyna
91
93
}
92
94
93
95
file3 = {
96
+ 'what_where_key' : 'syslog:s114' ,
94
97
'time_index_key' : '15220:syslog' ,
95
98
'range_key' : 'ground_server2:34fb2d1ec54245c7a57e29ed5a6ea9b2' ,
96
99
'metadata' : {
@@ -99,7 +102,7 @@ def test_store_conditional_put_latest_multiple_files(dynamodb_latest_table, dyna
99
102
'end' : 1415128740728 ,
100
103
'path' : '/var/log/syslog.2' ,
101
104
'work_id' : 'foo-bizz' ,
102
- 'where' : 'ground_server2 ' ,
105
+ 'where' : 's114 ' ,
103
106
'what' : 'syslog' ,
104
107
'id' : '34fb2d1ec54245c7a57e29ed5a6ea9b2' ,
105
108
'hash' : 'b4f2d8de24af342643d5b78a8f2b9b88'
@@ -113,52 +116,28 @@ def test_store_conditional_put_latest_multiple_files(dynamodb_latest_table, dyna
113
116
storage .store_latest (file1 )
114
117
storage .store_latest (file2 ) # same what:where, but should replace file1 b/c newer
115
118
119
+ query_what_where = 'syslog:ground_server2'
120
+
116
121
records = [dict (i ) for i in dynamodb_latest_table .scan ()]
117
122
118
- res = dict (dynamodb_latest_table .get_item (time_index_key = '15219:zlcdzvawsp' ,
119
- range_key = 'lawvuunyws:447a4a801cabc6089f04922abdfa8aad099824e9' ))
123
+ res = dict (dynamodb_latest_table .get_item (what_where_key = query_what_where ))
120
124
assert res ['metadata' ]['start' ] == Decimal ('1314877177413' )
121
125
assert len (records ) == 2
122
126
assert file2 == res
123
127
128
+ storage .store_latest (file3 )
129
+ storage .store_latest (file2 )
130
+ storage .store_latest (file1 )
124
131
125
- def test_concurrent_updates (dynamodb_latest_table , dynamodb_connection ):
126
- storage = DynamoDBStorage (latest_table = 'latest' , connection = dynamodb_connection )
127
-
128
- base_record = {
129
- 'time_index_key' : '15219:zlcdzvawsp' ,
130
- 'range_key' : 'lawvuunyws:447a4a801cabc6089f04922abdfa8aad099824e9' ,
131
- 'metadata' : {
132
- 'version' : 1 ,
133
- 'start' : 1314877177402 ,
134
- 'end' : 1314877177412 , # ends ten seconds later
135
- 'path' : '/var/log/syslog.2' ,
136
- 'work_id' : 'abc-123' ,
137
- 'where' : 'ground_server2' ,
138
- 'what' : 'syslog' ,
139
- 'id' : '34fb2d1ec54245c7a57e29ed5a6ea9b2' ,
140
- 'hash' : 'b4f2d8de24af342643d5b78a8f2b9b88'
141
- },
142
- 'url' : 's3://existingfile/url' ,
143
- 'create_time' : 1314877177402
144
- }
145
- storage .store_latest (base_record )
146
-
132
+ records = [dict (i ) for i in dynamodb_latest_table .scan ()]
133
+ res = dict (dynamodb_latest_table .get_item (what_where_key = query_what_where ))
134
+ assert res ['metadata' ]['id' ] != file1 ['metadata' ]['id' ]
135
+ assert res ['metadata' ]['id' ] == file2 ['metadata' ]['id' ]
147
136
148
- updated_record1 = base_record .copy ()
149
- updated_record1 ['metadata' ]['start' ] += 10
150
-
151
- updated_record2 = base_record .copy ()
152
- updated_record2 ['metadata' ]['start' ] += 5
153
-
154
-
155
- storage .store_latest (updated_record1 )
156
- storage .store_latest (updated_record2 )
157
-
158
- stored_record = dynamodb_latest_table .get_item (
159
- time_index_key = '15219:zlcdzvawsp' ,
160
- range_key = 'lawvuunyws:447a4a801cabc6089f04922abdfa8aad099824e9'
161
- )
162
-
163
- assert stored_record ['metadata' ]['start' ] == updated_record1 ['metadata' ]['start' ]
137
+ storage .store_latest (file1 )
138
+ storage .store_latest (file1 )
139
+ storage .store_latest (file2 )
140
+ storage .store_latest (file3 )
141
+ res = dict (dynamodb_latest_table .get_item (what_where_key = query_what_where ))
142
+ assert res ['metadata' ]['start' ] == file2 ['metadata' ]['start' ]
164
143
0 commit comments