- try:
- args = gen_orm_filter(ocloud.Resource, sub_data['filter'])
- except KeyError:
- logger.warning(
- 'Subscription {} filter {} has wrong attribute name '
- 'or value. Ignore the filter.'.format(
- sub_data['subscriptionId'], sub_data['filter']))
- callback_smo(sub, data, msg_type, resource_pool_dict)
- continue
- args.append(ocloud.ResourcePool.resourcePoolId == data.id)
- ret = uow.resource_pools.list_with_count(*args)
- if ret[0] != 0:
- logger.debug(
- 'ResourcePool {} skip for subscription {} because of the '
- 'filter.'
- .format(data.id, sub_data['subscriptionId']))
+ filter_effect = 0
+ for filter in filters:
+ try:
+ args = gen_orm_filter(ocloud.ResourcePool, filter)
+ except KeyError:
+ logger.warning(
+ 'Subscription {} filter {} has wrong attribute '
+ 'name or value. Ignore the filter.'.format(
+ sub_data['subscriptionId'],
+ sub_data['filter']))
+ continue
+ if len(args) == 0 and 'objectType' in filter:
+ filter_effect += 1
+ break
+ args.append(ocloud.ResourcePool.resourcePoolId == data.id)
+ ret = uow.resource_pools.list_with_count(*args)
+ if ret[0] > 0:
+ logger.debug(
+ 'ResourcePool {} skip for subscription {} because of'
+ ' the filter.'
+ .format(data.id, sub_data['subscriptionId']))
+ filter_effect += 1
+ break
+ if filter_effect > 0: