Skip to content

Commit a53d255

Browse files
author
Mark Kasaboski
committed
Sets asc order on event request and start_date is now - 30 days
1 parent 9be6825 commit a53d255

File tree

3 files changed

+29
-24
lines changed

3 files changed

+29
-24
lines changed

packages/flare/bin/cron_job_ingest_events.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
from datetime import date
1212
from datetime import datetime
13+
from datetime import timedelta
14+
from datetime import timezone
1315
from typing import Any
1416
from typing import Iterator
1517
from typing import Optional
@@ -90,14 +92,14 @@ def main(
9092
create_collection(kvstore=kvstore)
9193

9294
# To avoid cron jobs from doing the same work at the same time, exit new cron jobs if a cron job is already doing work
93-
last_fetched_timestamp = get_last_fetched(kvstore=kvstore)
94-
if last_fetched_timestamp and last_fetched_timestamp > (
95-
datetime.now() - CRON_JOB_THRESHOLD_SINCE_LAST_FETCH
96-
):
97-
logger.info(
98-
f"Fetched events less than {int(CRON_JOB_THRESHOLD_SINCE_LAST_FETCH.seconds / 60)} minutes ago, exiting"
99-
)
100-
return
95+
# last_fetched_timestamp = get_last_fetched(kvstore=kvstore)
96+
# if last_fetched_timestamp and last_fetched_timestamp > (
97+
# datetime.now() - CRON_JOB_THRESHOLD_SINCE_LAST_FETCH
98+
# ):
99+
# logger.info(
100+
# f"Fetched events less than {int(CRON_JOB_THRESHOLD_SINCE_LAST_FETCH.seconds / 60)} minutes ago, exiting"
101+
# )
102+
# return
101103

102104
api_key = get_api_key(storage_passwords=storage_passwords)
103105
tenant_id = get_tenant_id(storage_passwords=storage_passwords)
@@ -210,7 +212,7 @@ def get_start_date(kvstore: KVStoreCollections) -> Optional[date]:
210212
)
211213
if start_date:
212214
try:
213-
return date.fromisoformat(start_date)
215+
return datetime.fromisoformat(start_date)
214216
except Exception:
215217
pass
216218
return None
@@ -255,7 +257,7 @@ def save_last_ingested_tenant_id(kvstore: KVStoreCollections, tenant_id: int) ->
255257
save_collection_value(
256258
kvstore=kvstore,
257259
key=CollectionKeys.START_DATE.value,
258-
value=date.today().isoformat(),
260+
value=(datetime.now(timezone.utc) - timedelta(days=30)).isoformat(),
259261
)
260262

261263
save_collection_value(

packages/flare/bin/flare.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
import requests
99
import time
1010

11-
from datetime import date
11+
from datetime import datetime
12+
from datetime import timedelta
13+
from datetime import timezone
1214
from logger import Logger
1315
from typing import Any
1416
from typing import Dict
@@ -55,7 +57,7 @@ def fetch_feed_events(
5557
self,
5658
*,
5759
next: Optional[str] = None,
58-
start_date: Optional[date] = None,
60+
start_date: Optional[datetime] = None,
5961
ingest_full_event_data: bool,
6062
severities: list[str],
6163
source_types: list[str],
@@ -81,17 +83,18 @@ def _fetch_event_feed_metadata(
8183
self,
8284
*,
8385
next: Optional[str] = None,
84-
start_date: Optional[date] = None,
86+
start_date: Optional[datetime] = None,
8587
severities: list[str],
8688
source_types: list[str],
8789
) -> Iterator[requests.Response]:
8890
data: Dict[str, Any] = {
8991
"from": next if next else None,
92+
"order": "asc",
9093
"filters": {
9194
"materialized_at": {
9295
"gte": start_date.isoformat()
9396
if start_date
94-
else date.today().isoformat()
97+
else (datetime.now(timezone.utc) - timedelta(days=30)).isoformat()
9598
},
9699
},
97100
}

packages/flare/tests/bin/test_ingest_events.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
from conftest import FakeKVStoreCollections
77
from conftest import FakeLogger
88
from conftest import FakeStoragePasswords
9-
from datetime import date
109
from datetime import datetime
10+
from datetime import timezone
1111
from freezegun import freeze_time
1212

1313

@@ -101,11 +101,11 @@ def test_get_start_date_expect_none(kvstore: FakeKVStoreCollections) -> None:
101101

102102
@pytest.mark.parametrize(
103103
"kvstore",
104-
[[(CollectionKeys.START_DATE.value, "2000-01-01")]],
104+
[[(CollectionKeys.START_DATE.value, "2000-01-01T00:00:00+00:00")]],
105105
indirect=True,
106106
)
107107
def test_get_start_date_expect_date(kvstore: FakeKVStoreCollections) -> None:
108-
assert get_start_date(kvstore) == date(2000, 1, 1)
108+
assert get_start_date(kvstore) == datetime(2000, 1, 1, 0, 0, tzinfo=timezone.utc)
109109

110110

111111
def test_get_last_ingested_tenant_id_expect_none(
@@ -125,7 +125,7 @@ def test_get_last_ingested_tenant_id_expect_integer(
125125
assert get_last_ingested_tenant_id(kvstore=kvstore) == 11111
126126

127127

128-
@freeze_time("2000-01-01")
128+
@freeze_time("2000-01-01T00:00:00+00:00")
129129
def test_save_last_ingested_tenant_id_expect_new_tenant_id_and_new_start_date(
130130
kvstore: FakeKVStoreCollections,
131131
) -> None:
@@ -135,7 +135,7 @@ def test_save_last_ingested_tenant_id_expect_new_tenant_id_and_new_start_date(
135135

136136
save_last_ingested_tenant_id(kvstore=kvstore, tenant_id=11111)
137137
assert kvstore[KV_COLLECTION_NAME].data.query() == [
138-
{"_key": CollectionKeys.START_DATE.value, "value": "2000-01-01"},
138+
{"_key": CollectionKeys.START_DATE.value, "value": "1999-12-02T00:00:00+00:00"},
139139
{"_key": CollectionKeys.LAST_INGESTED_TENANT_ID.value, "value": 11111},
140140
]
141141

@@ -144,23 +144,23 @@ def test_save_last_ingested_tenant_id_expect_new_tenant_id_and_new_start_date(
144144
"kvstore",
145145
[
146146
[
147-
(CollectionKeys.START_DATE.value, "1999-12-12"),
147+
(CollectionKeys.START_DATE.value, "1999-12-12T00:00:00+00:00"),
148148
(CollectionKeys.LAST_INGESTED_TENANT_ID.value, 11111),
149149
]
150150
],
151151
indirect=True,
152152
)
153-
@freeze_time("2000-01-01")
153+
@freeze_time("2000-01-01T00:00:00+00:00")
154154
def test_save_last_ingested_tenant_id_expect_updated_tenant_id_and_updated_start_date(
155155
kvstore: FakeKVStoreCollections,
156156
) -> None:
157157
assert kvstore[KV_COLLECTION_NAME].data.query() == [
158-
{"_key": CollectionKeys.START_DATE.value, "value": "1999-12-12"},
158+
{"_key": CollectionKeys.START_DATE.value, "value": "1999-12-12T00:00:00+00:00"},
159159
{"_key": CollectionKeys.LAST_INGESTED_TENANT_ID.value, "value": 11111},
160160
]
161161
save_last_ingested_tenant_id(kvstore=kvstore, tenant_id=22222)
162162
assert kvstore[KV_COLLECTION_NAME].data.query() == [
163-
{"_key": CollectionKeys.START_DATE.value, "value": "2000-01-01"},
163+
{"_key": CollectionKeys.START_DATE.value, "value": "1999-12-02T00:00:00+00:00"},
164164
{"_key": CollectionKeys.LAST_INGESTED_TENANT_ID.value, "value": 22222},
165165
]
166166

@@ -311,6 +311,6 @@ def test_main_expect_normal_run(
311311
flare_api_cls=FakeFlareAPI,
312312
)
313313
assert logger.messages == [
314-
"INFO: Fetching tenant_id=11111, next=None, start_date=FakeDate(2000, 1, 1)",
314+
"INFO: Fetching tenant_id=11111, next=None, start_date=FakeDatetime(1999, 12, 2, 0, 0, tzinfo=datetime.timezone.utc)",
315315
"INFO: Fetched 2 events",
316316
]

0 commit comments

Comments
 (0)