Skip to content

Commit f64d64c

Browse files
author
Dominik Neise
committed
debug issue #250.
I just removed this `if not alerts: return` part. but I though this function doing two things ... was part of the problem so I took it apart.
1 parent 807f283 commit f64d64c

File tree

1 file changed

+26
-25
lines changed

1 file changed

+26
-25
lines changed

shifthelper/notifiers.py

+26-25
Original file line numberDiff line numberDiff line change
@@ -36,30 +36,6 @@ def notify(self, recipient, msg):
3636
)
3737
self.not_acknowledged_messages.append(msg)
3838

39-
def _remove_acknowledged_and_old_calls(self):
40-
""" from the list of not acknowledged calls
41-
remove all calls, which have been acknowledged on the web page
42-
43-
Also remove calls older than 2 hours, to get out of
44-
a "call the backup shifter" dead lock
45-
"""
46-
alerts = {a['uuid']: a for a in get_alerts()}
47-
if not alerts:
48-
return
49-
50-
for msg in copy(self.not_acknowledged_messages):
51-
age = datetime.datetime.utcnow() - msg.timestamp
52-
if age > (self.max_time_for_fallback + self.time_before_fallback):
53-
self.not_acknowledged_messages.remove(msg)
54-
else:
55-
try:
56-
alert = alerts[str(msg.uuid)]
57-
except KeyError:
58-
continue
59-
60-
if alert['acknowledged'] is True:
61-
self.not_acknowledged_messages.remove(msg)
62-
6339
def _get_oldest_call_age(self):
6440
max_age = datetime.timedelta()
6541
for msg in self.not_acknowledged_messages:
@@ -102,7 +78,9 @@ def get_numbers_to_call(self, msg):
10278
return numbers_to_call
10379

10480
def handle_message(self, msg):
105-
self._remove_acknowledged_and_old_calls()
81+
self._remove_old_calls()
82+
self._remove_acknowledged_calls()
83+
10684
log.debug('Got a message')
10785
if msg.level >= self.level:
10886
log.debug('Message is over alert level')
@@ -111,3 +89,26 @@ def handle_message(self, msg):
11189
for phone_number in numbers_to_call:
11290
log.info('Calling {}'.format(phone_number))
11391
self.notify(phone_number, msg)
92+
93+
def _remove_old_calls(self):
94+
""" from the list of not acknowledged calls
95+
remove calls older than a certain limit, to avoid calling the
96+
fallback forever.
97+
"""
98+
for msg in copy(self.not_acknowledged_messages):
99+
age = datetime.datetime.utcnow() - msg.timestamp
100+
if age > (self.max_time_for_fallback + self.time_before_fallback):
101+
self.not_acknowledged_messages.remove(msg)
102+
103+
def _remove_acknowledged_calls(self):
104+
''' from the list of not acknowledged calls
105+
remove all calls, which have been acknowledged on the web page
106+
'''
107+
alerts = {a['uuid']: a for a in get_alerts()}
108+
109+
for msg in copy(self.not_acknowledged_messages):
110+
try:
111+
if alerts[str(msg.uuid)]['acknowledged'] is True:
112+
self.not_acknowledged_messages.remove(msg)
113+
except KeyError:
114+
continue

0 commit comments

Comments
 (0)