Skip to content

Commit 861a202

Browse files
authored
Merge pull request certtools#2494 from kamil-certat/handle_current_event_fail
FIX: handle init failure on incorrect current event
2 parents bc941c6 + ea0df0d commit 861a202

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#### Experts
3434

3535
#### Outputs
36+
- `intelmq.bots.outputs.misp.output_feed`: handle failures if saved current event wasn't saved or is incorrect (PR by Kamil Mankowski).
3637

3738
### Documentation
3839

intelmq/bots/outputs/misp/output_feed.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,25 @@ def init(self):
6868
self.timedelta = datetime.timedelta(minutes=parse_relative(self.interval_event))
6969

7070
if (self.output_dir / '.current').exists():
71-
with (self.output_dir / '.current').open() as f:
72-
self.current_file = Path(f.read())
73-
self.current_event = MISPEvent()
74-
self.current_event.load_file(self.current_file)
75-
76-
last_min_time, last_max_time = re.findall('IntelMQ event (.*) - (.*)', self.current_event.info)[0]
77-
last_min_time = datetime.datetime.strptime(last_min_time, '%Y-%m-%dT%H:%M:%S.%f')
78-
last_max_time = datetime.datetime.strptime(last_max_time, '%Y-%m-%dT%H:%M:%S.%f')
79-
if last_max_time < datetime.datetime.now():
80-
self.min_time_current = datetime.datetime.now()
81-
self.max_time_current = self.min_time_current + self.timedelta
71+
try:
72+
with (self.output_dir / '.current').open() as f:
73+
self.current_file = Path(f.read())
74+
self.current_event = MISPEvent()
75+
self.current_event.load_file(self.current_file)
76+
77+
last_min_time, last_max_time = re.findall('IntelMQ event (.*) - (.*)', self.current_event.info)[0]
78+
last_min_time = datetime.datetime.strptime(last_min_time, '%Y-%m-%dT%H:%M:%S.%f')
79+
last_max_time = datetime.datetime.strptime(last_max_time, '%Y-%m-%dT%H:%M:%S.%f')
80+
if last_max_time < datetime.datetime.now():
81+
self.min_time_current = datetime.datetime.now()
82+
self.max_time_current = self.min_time_current + self.timedelta
83+
self.current_event = None
84+
else:
85+
self.min_time_current = last_min_time
86+
self.max_time_current = last_max_time
87+
except:
88+
self.logger.exception("Loading current event %s failed. Skipping it.", self.current_event)
8289
self.current_event = None
83-
else:
84-
self.min_time_current = last_min_time
85-
self.max_time_current = last_max_time
8690
else:
8791
self.min_time_current = datetime.datetime.now()
8892
self.max_time_current = self.min_time_current + self.timedelta

0 commit comments

Comments
 (0)