Skip to content

Commit

Permalink
Merge "making sure alarmgen timers run correctly" into R3.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Zuul authored and opencontrail-ci-admin committed Aug 21, 2016
2 parents 63a2843 + a584ef2 commit 700fbe9
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/opserver/alarmgen.py
Expand Up @@ -230,6 +230,7 @@ def process_alarms(self, ext, uv, local_uve):

class AlarmStateMachine:
tab_alarms_timer = {}
last_timers_run = None
def __init__(self, tab, uv, nm, sandesh, activeTimer, idleTimer,
freqCheck_Times, freqCheck_Seconds, freqExceededCheck):
self._sandesh = sandesh
Expand Down Expand Up @@ -488,9 +489,12 @@ def run_timers(curr_time, tab_alarms):
'delete_alarm', 'timeout_val', 'old_to'])
delete_alarms = []
update_alarms = []
if curr_time in AlarmStateMachine.tab_alarms_timer:
if AlarmStateMachine.last_timers_run is None:
AlarmStateMachine.last_timers_run = curr_time
for next_timer in range(AlarmStateMachine.last_timers_run, curr_time + 1):
if next_timer in AlarmStateMachine.tab_alarms_timer:
update_timers = []
for (tab, uv, nm) in AlarmStateMachine.tab_alarms_timer[curr_time]:
for (tab, uv, nm) in AlarmStateMachine.tab_alarms_timer[next_timer]:
asm = tab_alarms[tab][uv][nm]
delete_alarm, update_alarm, timeout_val = \
asm.run_uve_soaking_timer()
Expand All @@ -500,12 +504,13 @@ def run_timers(curr_time, tab_alarms):
update_alarms.append((asm.tab, asm.uv, asm.nm))
update_timers.append(inputs(tab=asm.tab, uv=asm.uv, nm=asm.nm,
delete_alarm=delete_alarm,
timeout_val=timeout_val, old_to=curr_time))
timeout_val=timeout_val, old_to=next_timer))
for timer in update_timers:
if timer.timeout_val is not None or timer.delete_alarm:
AlarmStateMachine.update_tab_alarms_timer(timer.tab,
timer.uv, timer.nm, timer.old_to,
timer.timeout_val, tab_alarms)
AlarmStateMachine.last_timers_run = curr_time + 1
return delete_alarms, update_alarms

@staticmethod
Expand Down

0 comments on commit 700fbe9

Please sign in to comment.