import asyncio
import json
import logging
+import operator
+import functools
import requests
from requests.exceptions import ConnectionError, RequestException
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(