solve repetitive alarms issue

This commit is contained in:
Yinyin Liu 2024-08-07 15:46:50 +02:00
parent 8736df40b0
commit 48004f43e2
2 changed files with 28 additions and 32 deletions

View File

@ -704,26 +704,24 @@ def update_state_from_dictionaries(current_warnings, current_alarms, node_number
changed_alarms = current_alarms
is_first_update = False
else:
changed_alarms={}
changed_warnings={}
# calculate the diff in warnings and alarms
prev_alarm_value_list=list(previous_alarms.values())
alarm_keys=list(previous_alarms.keys())
changed_alarms = {}
changed_warnings = {}
for i, alarm in enumerate(current_alarms.values()):
if alarm!=prev_alarm_value_list[i]:
changed_alarms[alarm_keys[i]]=True
for key in current_alarms:
current_value = current_alarms[key]
prev_value = previous_alarms.get(key, False) # Use False if the key doesn't exist
if current_value != prev_value:
changed_alarms[key] = True
else:
changed_alarms[alarm_keys[i]]=False
changed_alarms[key] = False
prev_warning_value_list=list(previous_warnings.values())
warning_keys=list(previous_warnings.keys())
for i, warning in enumerate(current_warnings.values()):
if warning!=prev_warning_value_list[i]:
changed_warnings[warning_keys[i]]=True
for key in current_warnings:
current_value = current_warnings[key]
prev_value = previous_warnings.get(key, False)
if current_value != prev_value:
changed_warnings[key] = True
else:
changed_warnings[warning_keys[i]]=False
changed_warnings[key] = False
status_message = {
"InstallationId": INSTALLATION_ID,

View File

@ -151,7 +151,7 @@ prev_status = 0
def update_state_from_dictionaries(current_warnings, current_alarms, node_numbers):
global previous_warnings, previous_alarms, INSTALLATION_ID, PRODUCT_ID, is_first_update, channel, prev_status
if is_first_update:
changed_warnings = current_warnings
changed_alarms = current_alarms
@ -159,25 +159,23 @@ def update_state_from_dictionaries(current_warnings, current_alarms, node_number
else:
changed_alarms = {}
changed_warnings = {}
# calculate the diff in warnings and alarms
prev_alarm_value_list = list(previous_alarms.values())
alarm_keys = list(previous_alarms.keys())
for i, alarm in enumerate(current_alarms.values()):
if alarm != prev_alarm_value_list[i]:
changed_alarms[alarm_keys[i]] = True
for key in current_alarms:
current_value = current_alarms[key]
prev_value = previous_alarms.get(key, False) # Use False if the key doesn't exist
if current_value != prev_value:
changed_alarms[key] = True
else:
changed_alarms[alarm_keys[i]] = False
changed_alarms[key] = False
prev_warning_value_list=list(previous_warnings.values())
warning_keys=list(previous_warnings.keys())
for i, warning in enumerate(current_warnings.values()):
if warning!=prev_warning_value_list[i]:
changed_warnings[warning_keys[i]]=True
for key in current_warnings:
current_value = current_warnings[key]
prev_value = previous_warnings.get(key, False)
if current_value != prev_value:
changed_warnings[key] = True
else:
changed_warnings[warning_keys[i]]=False
changed_warnings[key] = False
status_message = {
"InstallationId": INSTALLATION_ID,
"Product": PRODUCT_ID,