X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fplugins%2FOpenStack%2FAodh%2Fnotifier.py;h=b63e5818f18bcd183b865c66530257c7778ba60d;hb=2aec92e1eb52d5512c2acae9ce9878f2f3c8f782;hp=e14ba7a11823cc91db6450a18de5f9392872a0e9;hpb=53ad3c4c5d87a5b392a74cf386c29c67276ed3cb;p=osm%2FMON.git diff --git a/osm_mon/plugins/OpenStack/Aodh/notifier.py b/osm_mon/plugins/OpenStack/Aodh/notifier.py index e14ba7a..b63e581 100644 --- a/osm_mon/plugins/OpenStack/Aodh/notifier.py +++ b/osm_mon/plugins/OpenStack/Aodh/notifier.py @@ -25,6 +25,7 @@ import json import logging import os +import re import sys import time @@ -32,6 +33,7 @@ from six.moves.BaseHTTPServer import BaseHTTPRequestHandler from six.moves.BaseHTTPServer import HTTPServer # Initialise a logger for alarm notifier +from osm_mon.core.message_bus.producer import Producer from osm_mon.core.settings import Config cfg = Config.instance() @@ -52,9 +54,8 @@ kafka_logger.addHandler(kafka_handler) sys.path.append(os.path.abspath(os.path.join(os.path.realpath(__file__), '..', '..', '..', '..', '..'))) from osm_mon.core.database import DatabaseManager -from osm_mon.core.message_bus.producer import KafkaProducer -from osm_mon.plugins.OpenStack.response import OpenStack_Response +from osm_mon.plugins.OpenStack.response import OpenStackResponseBuilder class NotifierHandler(BaseHTTPRequestHandler): @@ -94,8 +95,7 @@ class NotifierHandler(BaseHTTPRequestHandler): """Sends alarm notification message to bus.""" # Initialise configuration and authentication for response message - response = OpenStack_Response() - producer = KafkaProducer('alarm_response') + response = OpenStackResponseBuilder() database_manager = DatabaseManager() @@ -107,7 +107,7 @@ class NotifierHandler(BaseHTTPRequestHandler): # Generate and send response resp_message = response.generate_response( 'notify_alarm', - a_id=alarm_id, + alarm_id=alarm_id, vdu_name=alarm.vdu_name, vnf_member_index=alarm.vnf_member_index, ns_id=alarm.ns_id, @@ -117,10 +117,14 @@ class NotifierHandler(BaseHTTPRequestHandler): sev=values['severity'], date=a_date, state=values['current']) - producer.publish_alarm_response( - 'notify_alarm', resp_message) + self._publish_response('notify_alarm', json.dumps(resp_message)) log.info("Sent alarm notification: %s", resp_message) + def _publish_response(self, key: str, msg: str): + producer = Producer() + producer.send(topic='alarm_response', key=key, value=msg) + producer.flush() + def run(server_class=HTTPServer, handler_class=NotifierHandler, port=8662): """Run the webserver application to retrieve alarm notifications.""" @@ -135,10 +139,11 @@ def run(server_class=HTTPServer, handler_class=NotifierHandler, port=8662): if __name__ == "__main__": - from sys import argv - - # Runs the webserver - if len(argv) == 2: - run(port=int(argv[1])) + cfg = Config.instance() + p = re.compile(':(\d+)', re.IGNORECASE) + m = p.search(cfg.OS_NOTIFIER_URI) + if m: + port = m.group(1) + run(port=int(port)) else: run()