def add_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_in_ag: raise ag_exc.AddressesAlreadyExist( addresses=addrs_in_ag, address_group_id=address_group_id) for addr in addrs_not_in_ag: addr = netaddr.IPNetwork(addr) args = {'address_group_id': address_group_id, 'address': addr} addr_assoc = ag_obj.AddressAssociation(context, **args) addr_assoc.create() 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
def add_addresses(self, context, address_group_id, addresses): ag = self._get_address_group(context, address_group_id) kwargs = {'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_in_ag: raise ag_exc.AddressesAlreadyExist( addresses=addrs_in_ag, address_group_id=address_group_id) for addr in addrs_not_in_ag: addr = netaddr.IPNetwork(addr) args = {'address_group_id': address_group_id, 'address': addr} addr_assoc = ag_obj.AddressAssociation(context, **args) addr_assoc.create() ag.update() # reload synthetic fields ag_dict = {'address_group': self._make_address_group_dict(ag)} kwargs.update(ag_dict) # 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(resources.ADDRESS_GROUP, events.AFTER_UPDATE, self, context=context, **kwargs) return ag_dict
def add_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_in_ag: raise ag_exc.AddressesAlreadyExist( addresses=addrs_in_ag, address_group_id=address_group_id) for addr in addrs_not_in_ag: addr = netaddr.IPNetwork(addr) args = {'address_group_id': address_group_id, 'address': addr} addr_assoc = ag_obj.AddressAssociation(context, **args) addr_assoc.create() ag.update() # reload synthetic fields return {'address_group': self._make_address_group_dict(ag)}