[openstack-dev] [Neutron][ML2][Ml2Plugin] Setting _original_network in NetworkContext:

Andre Pech apech at aristanetworks.com
Wed Mar 26 22:52:45 UTC 2014


Hi Nader,

When I wrote this, the intention was that original_network only really
makes sense during an update_network call (ie when there's an existing
network that you are modifying). In a create_network call, the assumption
is that no network exists yet, so there is no "original network" to set.

Can you provide a bit more detail on the case where there's an existing
network when create_network is called? Sorry, I didn't totally follow when
this would happen.

Thanks
Andre


On Tue, Mar 25, 2014 at 8:45 AM, Nader Lahouti <nader.lahouti at gmail.com>wrote:

> Hi All,
>
> In the current Ml2Plugin code when 'create_network' is called, as shown
> below:
>
>
>
>     def create_network(self, context, network)
>
>         net_data = network['network']
>
> ...
>
>         session = context.session
>
>         with session.begin(subtransactions=True):
>
>             self._ensure_default_security_group(context, tenant_id)
>
>             result = super(Ml2Plugin, self).create_network(context,
> network)
> ...
>
>             mech_context = driver_context.NetworkContext(self, context,
> result)
>
>             self.mechanism_manager.create_network_precommit(mech_context)
>
> ...
>
>
>
> the original_network parameter is not set (the default is None) when
> instantiating NetworkContext, and as a result the mech_context has only the
> value of network object returned from super(Ml2Plugin,
> self).create_network().
>
> This causes issue when a mechanism driver needs to use the original
> network parameters (given to the create_network), specially when extension
> is used for the network resources.
>
> (The 'result' only has the network attributes without extension which is
> used to set the '_network' in the NetwrokContext object).
>
> Even using  extension function registration using
>
> db_base_plugin_v2.NeutronDbPluginV2.register_dict_extend_funcs(...) won't
> help as the network object that is passed to the registered function does
> not include the extension parameters.
>
>
> Is there any reason that the original_network is not set when initializing
> the NetworkContext? Would that cause any issue to set it to 'net_data' so
> that any mechanism driver can use original network parameters as they are
> available when create_network is called?
>
>
> Appreciate your comments.
>
>
> Thanks,
>
> Nader.
>
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140326/fcadfbed/attachment.html>


More information about the OpenStack-dev mailing list