@@ -36,30 +36,6 @@ def notify(self, recipient, msg):
36
36
)
37
37
self .not_acknowledged_messages .append (msg )
38
38
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
-
63
39
def _get_oldest_call_age (self ):
64
40
max_age = datetime .timedelta ()
65
41
for msg in self .not_acknowledged_messages :
@@ -102,7 +78,9 @@ def get_numbers_to_call(self, msg):
102
78
return numbers_to_call
103
79
104
80
def handle_message (self , msg ):
105
- self ._remove_acknowledged_and_old_calls ()
81
+ self ._remove_old_calls ()
82
+ self ._remove_acknowledged_calls ()
83
+
106
84
log .debug ('Got a message' )
107
85
if msg .level >= self .level :
108
86
log .debug ('Message is over alert level' )
@@ -111,3 +89,26 @@ def handle_message(self, msg):
111
89
for phone_number in numbers_to_call :
112
90
log .info ('Calling {}' .format (phone_number ))
113
91
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