[openstack-dev] [Neutron] Find the compute host on which a VM runs
Robert Kukura
rkukura at redhat.com
Thu Nov 21 16:12:09 UTC 2013
On 11/21/2013 04:20 AM, Stefan Apostoaie wrote:
> Hello again,
>
> I studied the portbindings extension (the quantum.db.portbindings_db and
> quantum.extensions.portbindings modules). However it's unclear for me
> who sets the portbindings.HOST_ID attribute. I ran some tests with OVS:
> called quantum port-create command and
> the OVSQuantumPluginV2.create_port method got called and it had
> 'binding:host_id': <object object at <memory_address>>. If I print out
> the port object I have 'binding:host_id': None.
>
> What other plugins are doing:
> 1. extend the quantum.db.portbindings_db.PortBindingMixin class
> 2. call the _process_portbindings_create_and_update method in
> create/update port
Take look at how the ML2 plugin handles port binding and uses
binding:host_id with its set of registered MechanismDrivers. It does not
use the mixin class because the values of binding:vif_type and other
portbinding attributes vary depending on what MechanismDriver binds the
port.
In fact, you may want to consider implementing an ML2 MechanismDriver
rather than a entire new monolithic plugin - it will save you a lot of
work, initially and in the longer term!
> What I cannot find is where the portbindings.HOST_ID attribute is being set.
Its set by nova, either on port creation, or as an update to an existing
port. See allocate_for_instance() and
_populate_neutron_extension_values() in nova/network/neutronv2/api.py.
-Bob
>
> Regards,
> Stefan
>
>
> On Fri, Nov 15, 2013 at 10:57 PM, Mark McClain
> <mark.mcclain at dreamhost.com <mailto:mark.mcclain at dreamhost.com>> wrote:
>
> Stefan-
>
> Your workflow is very similar to many other plugins. You’ll want to
> look at implementing the port binding extension in your plugin. The
> port binding extension allows Nova to inform Neutron of the host
> where the VM is running.
>
> mark
>
> On Nov 15, 2013, at 9:55 AM, Stefan Apostoaie <iosstef at gmail.com
> <mailto:iosstef at gmail.com>> wrote:
>
> > Hello,
> >
> > I'm creating a Neutron/Quantum plugin to work with a networking
> controller that takes care of the configuration of the virtual
> networks. Basically what we are doing is receive the API calls and
> forward them to our controller to run the required configuration on
> the compute hosts.
> > What I need to know when a create_port call is made to my plugin
> is on which compute host the VM is created (so that our controller
> will run the configuration on that host). Is there a way to find out
> this information from the plugin?
> >
> > Regards,
> > Stefan Apostoaie
> > _______________________________________________
> > OpenStack-dev mailing list
> > OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> <mailto:OpenStack-dev at lists.openstack.org>
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
>
>
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list