X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Falarming%2Fservice.py;fp=osm_policy_module%2Falarming%2Fservice.py;h=55fe864e238e1feb29f4db7a78c8b305c010d72e;hb=7ce998f3da2c7f10d95508ff2f410075ae2a8757;hp=0200a71a33122e979510a012b40bf88cabc44686;hpb=8ba99ff372d2d8ef13b2c6865b16c0869fa04069;p=osm%2FPOL.git diff --git a/osm_policy_module/alarming/service.py b/osm_policy_module/alarming/service.py index 0200a71..55fe864 100644 --- a/osm_policy_module/alarming/service.py +++ b/osm_policy_module/alarming/service.py @@ -86,17 +86,18 @@ class AlarmingService: vnf_monitoring_param = next( filter( lambda param: param['id'] == alarm_descriptor['vnf-monitoring-param-ref'], - vnfd['monitoring-param']) + vdu.get('monitoring-parameter', []) + ), + {} ) - metric_name = self._get_metric_name(vnf_monitoring_param, vdur, vnfd) + metric_name = self._get_metric_name(vnf_monitoring_param) alarm_uuid = await self.mon_client.create_alarm( metric_name=metric_name, ns_id=nsr_id, vdu_name=vdur['name'], vnf_member_index=vnfr['member-vnf-index-ref'], threshold=alarm_descriptor['value'], - operation=alarm_descriptor['operation'], - statistic=vnf_monitoring_param['aggregation-type'] + operation=alarm_descriptor['operation'] ) alarm = VnfAlarmRepository.create( alarm_id=alarm_descriptor['alarm-id'], @@ -132,6 +133,7 @@ class AlarmingService: database.db.close() async def delete_orphaned_alarms(self, nsr_id): + # TODO: Review as it seems this code is never called log.info("Deleting orphaned vnf alarms for network service %s", nsr_id) database.db.connect() try: @@ -199,20 +201,7 @@ class AlarmingService: finally: database.db.close() - def _get_metric_name(self, vnf_monitoring_param: dict, vdur: dict, vnfd: dict): - vdu = next( - filter(lambda vdu: vdu['id'] == vdur['vdu-id-ref'], vnfd['vdu']) - ) - if 'vdu-monitoring-param' in vnf_monitoring_param: - vdu_monitoring_param = next(filter( - lambda param: param['id'] == vnf_monitoring_param['vdu-monitoring-param'][ - 'vdu-monitoring-param-ref'], vdu['monitoring-param'])) - nfvi_metric = vdu_monitoring_param['nfvi-metric'] - return nfvi_metric - if 'vdu-metric' in vnf_monitoring_param: - vnf_metric_name = vnf_monitoring_param['vdu-metric']['vdu-metric-name-ref'] - return vnf_metric_name - if 'vnf-metric' in vnf_monitoring_param: - vnf_metric_name = vnf_monitoring_param['vnf-metric']['vnf-metric-name-ref'] - return vnf_metric_name + def _get_metric_name(self, vnf_monitoring_param: dict): + if 'performance-metric' in vnf_monitoring_param: + return vnf_monitoring_param['performance-metric'] raise ValueError('No metric name found for vnf_monitoring_param %s' % vnf_monitoring_param['id'])