Esempio n. 1
0
 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)}
Esempio n. 2
0
 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)}
Esempio n. 3
0
 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