SOL006 patch for POL
[osm/POL.git] / osm_policy_module / alarming / service.py
index 0200a71..55fe864 100644 (file)
@@ -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'])