X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fevaluator%2Fevaluator.py;h=8d4c2767a91281acad96c2cacb3c060c91a50d78;hb=960d0469ad3cf54a31f650ece39b345705445fdd;hp=d3fdfd50f9051162250bcebb5603e7a1c2ad8f74;hpb=a97bdb3eafa4f3d07d61d32635f7f36f5cc36c58;p=osm%2FMON.git diff --git a/osm_mon/evaluator/evaluator.py b/osm_mon/evaluator/evaluator.py index d3fdfd5..8d4c276 100644 --- a/osm_mon/evaluator/evaluator.py +++ b/osm_mon/evaluator/evaluator.py @@ -25,11 +25,9 @@ import logging import multiprocessing import time -import peewee - from osm_mon.core.config import Config -from osm_mon.core.database import Alarm from osm_mon.core.message_bus_client import MessageBusClient +from osm_mon.core.models import Alarm from osm_mon.core.response import ResponseBuilder from osm_mon.evaluator.service import EvaluatorService, AlarmStatus @@ -52,19 +50,20 @@ class Evaluator: try: self.evaluate() time.sleep(int(self.conf.get('evaluator', 'interval'))) - except peewee.PeeweeException: - log.exception("Database error evaluating alarms: ") - raise except Exception: log.exception("Error evaluating alarms") def evaluate(self): log.debug('evaluate') alarms_tuples = self.service.evaluate_alarms() + processes = [] for alarm, status in alarms_tuples: p = multiprocessing.Process(target=self.notify_alarm, args=(alarm, status)) p.start() + processes.append(p) + for process in processes: + process.join(timeout=10) def notify_alarm(self, alarm: Alarm, status: AlarmStatus): log.debug("notify_alarm") @@ -74,16 +73,17 @@ class Evaluator: def _build_alarm_response(self, alarm: Alarm, status: AlarmStatus): response = ResponseBuilder() + tags = {} + for name, value in alarm.tags.items(): + tags[name] = value now = time.strftime("%d-%m-%Y") + " " + time.strftime("%X") return response.generate_response( 'notify_alarm', alarm_id=alarm.uuid, - vdu_name=alarm.vdur_name, - vnf_member_index=alarm.vnf_member_index, - ns_id=alarm.nsr_id, - metric_name=alarm.monitoring_param, + metric_name=alarm.metric, operation=alarm.operation, threshold_value=alarm.threshold, sev=alarm.severity, status=status.value, - date=now) + date=now, + tags=tags)