X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Fcommon%2Fmon_client.py;h=5e9155233194f8855cf10c9dc519d150417ee56b;hb=f7451f8879d188c9fef9c976d82aa39141601938;hp=5124ed5134ccd03772b085622fa8e470cd6e5a87;hpb=127bbba305611890eb571f55df2520483f11060e;p=osm%2FPOL.git diff --git a/osm_policy_module/common/mon_client.py b/osm_policy_module/common/mon_client.py index 5124ed5..5e91552 100644 --- a/osm_policy_module/common/mon_client.py +++ b/osm_policy_module/common/mon_client.py @@ -36,10 +36,9 @@ log = logging.getLogger(__name__) class MonClient: - def __init__(self, loop=None): - cfg = Config.instance() - self.kafka_server = '{}:{}'.format(cfg.OSMPOL_MESSAGE_HOST, - cfg.OSMPOL_MESSAGE_PORT) + def __init__(self, config: Config, loop=None): + self.kafka_server = '{}:{}'.format(config.get('message', 'host'), + config.get('message', 'port')) if not loop: loop = asyncio.get_event_loop() self.loop = loop @@ -47,10 +46,15 @@ class MonClient: async def create_alarm(self, metric_name: str, ns_id: str, vdu_name: str, vnf_member_index: int, threshold: int, statistic: str, operation: str): cor_id = random.randint(1, 10e7) - msg = self._build_create_alarm_payload(cor_id, metric_name, ns_id, vdu_name, vnf_member_index, threshold, + msg = self._build_create_alarm_payload(cor_id, + metric_name, + ns_id, + vdu_name, + vnf_member_index, + threshold, statistic, operation) - log.info("Sending create_alarm_request %s", msg) + log.debug("Sending create_alarm_request %s", msg) producer = AIOKafkaProducer(loop=self.loop, bootstrap_servers=self.kafka_server, key_serializer=str.encode, @@ -60,7 +64,7 @@ class MonClient: await producer.send_and_wait("alarm_request", key="create_alarm_request", value=json.dumps(msg)) finally: await producer.stop() - log.info("Waiting for create_alarm_response...") + log.debug("Waiting for create_alarm_response...") consumer = AIOKafkaConsumer( "alarm_response_" + str(cor_id), loop=self.loop, @@ -76,7 +80,7 @@ class MonClient: content = json.loads(message.value) except JSONDecodeError: content = yaml.safe_load(message.value) - log.info("Received create_alarm_response %s", content) + log.debug("Received create_alarm_response %s", content) if content['alarm_create_response']['correlation_id'] == cor_id: if not content['alarm_create_response']['status']: raise ValueError("Error creating alarm in MON") @@ -91,7 +95,7 @@ class MonClient: async def delete_alarm(self, ns_id: str, vnf_member_index: int, vdu_name: str, alarm_uuid: str): cor_id = random.randint(1, 10e7) msg = self._build_delete_alarm_payload(cor_id, ns_id, vdu_name, vnf_member_index, alarm_uuid) - log.info("Sending delete_alarm_request %s", msg) + log.debug("Sending delete_alarm_request %s", msg) producer = AIOKafkaProducer(loop=self.loop, bootstrap_servers=self.kafka_server, key_serializer=str.encode, @@ -101,7 +105,7 @@ class MonClient: await producer.send_and_wait("alarm_request", key="delete_alarm_request", value=json.dumps(msg)) finally: await producer.stop() - log.info("Waiting for delete_alarm_response...") + log.debug("Waiting for delete_alarm_response...") consumer = AIOKafkaConsumer( "alarm_response_" + str(cor_id), loop=self.loop, @@ -118,7 +122,7 @@ class MonClient: except JSONDecodeError: content = yaml.safe_load(message.value) if content['alarm_delete_response']['correlation_id'] == cor_id: - log.info("Received delete_alarm_response %s", content) + log.debug("Received delete_alarm_response %s", content) if not content['alarm_delete_response']['status']: raise ValueError("Error deleting alarm in MON. Response status is False.") alarm_uuid = content['alarm_delete_response']['alarm_uuid'] @@ -129,9 +133,15 @@ class MonClient: raise ValueError('No alarm deletion response from MON. Is MON up?') return alarm_uuid - def _build_create_alarm_payload(self, cor_id: int, metric_name: str, ns_id: str, vdu_name: str, + def _build_create_alarm_payload(self, cor_id: int, + metric_name: str, + ns_id: str, + vdu_name: str, vnf_member_index: int, - threshold: int, statistic: str, operation: str): + threshold: int, + statistic: str, + operation: str): + alarm_create_request = { 'correlation_id': cor_id, 'alarm_name': 'osm_alarm_{}_{}_{}_{}'.format(ns_id, vnf_member_index, vdu_name, metric_name),