From 84413429ff89b1726d77b3a13c04d59829563003 Mon Sep 17 00:00:00 2001 From: Mikhnenko Maksim Date: Wed, 27 Jan 2021 10:27:26 +0300 Subject: [PATCH] Fix Calculate Alarm Severity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлеие подсчета веса аварии. В текущей реализации, подсчет веса аварии идет за счет сервисов и подписчиков. Не увсех пользоваталей есть данный функционал, в следствии чего аварии красятся всегда одним цетом. Красным. Данный фикс проверяет наличие сервисов и подписчиков. --- fm/models/activealarm.py | 2 +- services/correlator/service.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/fm/models/activealarm.py b/fm/models/activealarm.py index 95eec4f0b1..8f8bb5015a 100644 --- a/fm/models/activealarm.py +++ b/fm/models/activealarm.py @@ -550,7 +550,7 @@ class ActiveAlarm(Document): self.total_objects = obj_list self.total_services = svc_list self.total_subscribers = sub_list - if ns != self.severity: + if (services or subscribers) and ns != self.severity: self.change_severity(severity=ns, to_save=False) self.safe_save() diff --git a/services/correlator/service.py b/services/correlator/service.py index a65e230e45..82b26be685 100755 --- a/services/correlator/service.py +++ b/services/correlator/service.py @@ -418,8 +418,14 @@ class CorrelatorService(TornadoService): self.refresh_alarm(alarm, timestamp) return alarm # Calculate alarm coverage + severity = r.alarm_class.default_severity.severity summary = ServiceSummary.get_object_summary(managed_object) summary["object"] = {managed_object.object_profile.id: 1} + sum_check = summary.copy() + sum_check.pop("object") + if any(sum_check.values()): + self.logger.info("If summary %s, calculated alarm severity" % summary) + severity = max(ServiceSummary.get_severity(summary), 1) # severity = max(ServiceSummary.get_severity(summary), 1) # @todo: Fix -- GitLab