import datetime
import json
import logging
+import operator
+import functools
from osm_policy_module.common.common_db_client import CommonDbClient
from osm_policy_module.common.lcm_client import LcmClient
finally:
database.db.close()
- async def delete_scaling_groups(self, nsr_id: str):
+ async def delete_scaling_groups(self, nsr_id: str, vnf_member_index=None):
log.debug("Deleting scaling groups for network service %s", nsr_id)
database.db.connect()
try:
with database.db.atomic() as tx:
try:
- for scaling_group in ScalingGroupRepository.list(
- ScalingGroup.nsr_id == nsr_id
- ):
+ if vnf_member_index is None:
+ scale_conditions = ScalingGroup.nsr_id == nsr_id
+ else:
+ query_list = [ScalingGroup.nsr_id == nsr_id,
+ ScalingGroup.vnf_member_index == vnf_member_index]
+ scale_conditions = functools.reduce(operator.and_, query_list)
+ for scaling_group in ScalingGroupRepository.list(scale_conditions):
for scaling_policy in scaling_group.scaling_policies:
for scaling_criteria in scaling_policy.scaling_criterias:
for alarm in scaling_criteria.scaling_alarms: