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