def remove_addresses(self, context, address_group_id, addresses): ag = self._get_address_group(context, address_group_id) addrs_in_ag, addrs_not_in_ag = self._process_requested_addresses( ag, addresses['addresses']) if addrs_not_in_ag: raise ag_exc.AddressesNotFound(addresses=addrs_not_in_ag, address_group_id=address_group_id) for addr in addrs_in_ag: ag_obj.AddressAssociation.delete_objects( context, address_group_id=address_group_id, address=addr) ag.update() # reload synthetic fields return {'address_group': self._make_address_group_dict(ag)}
def remove_addresses(self, context, address_group_id, addresses): ag = self._get_address_group(context, address_group_id) addrs_in_ag, addrs_not_in_ag = self._process_requested_addresses( ag, addresses['addresses']) if addrs_not_in_ag: raise ag_exc.AddressesNotFound( addresses=addrs_not_in_ag, address_group_id=address_group_id) for addr in addrs_in_ag: ag_obj.AddressAssociation.delete_objects( context, address_group_id=address_group_id, address=addr) ag.update() # reload synthetic fields # TODO(hangyang) this notification should be updated to publish when # the callback handler handle_event, class _ObjectChangeHandler in # neutron.plugins.ml2.ovo_rpc is updated to receive notifications with # new style payload objects as argument. registry.notify(ADDRESS_GROUP, events.AFTER_UPDATE, self, context=context, address_group_id=ag.id) return {'address_group': self._make_address_group_dict(ag)}
def remove_addresses(self, context, address_group_id, addresses): ag = self._get_address_group(context, address_group_id) original_address_group = self._make_address_group_dict(ag) addrs_in_ag, addrs_not_in_ag = self._process_requested_addresses( ag, addresses['addresses']) if addrs_not_in_ag: raise ag_exc.AddressesNotFound(addresses=addrs_not_in_ag, address_group_id=address_group_id) for addr in addrs_in_ag: ag_obj.AddressAssociation.delete_objects( context, address_group_id=address_group_id, address=addr) ag.update() # reload synthetic fields ag_dict = {'address_group': self._make_address_group_dict(ag)} registry.publish(resources.ADDRESS_GROUP, events.AFTER_UPDATE, self, payload=events.DBEventPayload( context, resource_id=address_group_id, states=( original_address_group, ag_dict, ))) return ag_dict