X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_policy_module%2Falarming%2Fservice.py;h=4b393e5b4933d8a00325f96d1afd7e5a1a193026;hb=refs%2Fchanges%2F77%2F11877%2F3;hp=d1d1ea567a335b2c6644437423f737f78c7167a0;hpb=3fbf2fbf60e3aed3ec7ca0134839f19bc0d733d4;p=osm%2FPOL.git diff --git a/osm_policy_module/alarming/service.py b/osm_policy_module/alarming/service.py index d1d1ea5..4b393e5 100644 --- a/osm_policy_module/alarming/service.py +++ b/osm_policy_module/alarming/service.py @@ -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(