Feature 10916 Remove VNF Instance from NS - NS Update
[osm/POL.git] / osm_policy_module / alarming / service.py
index d1d1ea5..4b393e5 100644 (file)
@@ -25,6 +25,8 @@
 import asyncio
 import json
 import logging
+import operator
+import functools
 
 import requests
 from requests.exceptions import ConnectionError, RequestException
@@ -195,12 +197,18 @@ class AlarmingService:
         finally:
             database.db.close()
 
-    async def delete_vnf_alarms(self, nsr_id):
+    async def delete_vnf_alarms(self, nsr_id, vnf_member_index=None):
         log.info("Deleting vnf alarms for network service %s", nsr_id)
         database.db.connect()
         try:
             with database.db.atomic():
-                for alarm in VnfAlarmRepository.list(VnfAlarm.nsr_id == nsr_id):
+                if vnf_member_index is None:
+                    alarm_conditions = VnfAlarm.nsr_id == nsr_id
+                else:
+                    query_list = [VnfAlarm.nsr_id == nsr_id,
+                                  VnfAlarm.vnf_member_index == vnf_member_index]
+                    alarm_conditions = functools.reduce(operator.and_, query_list)
+                for alarm in VnfAlarmRepository.list(alarm_conditions):
                     log.debug("Deleting vnf alarm %s", alarm.alarm_uuid)
                     try:
                         await self.mon_client.delete_alarm(