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.mccl...@dreamhost.com <mailto:mark.mccl...@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 <ioss...@gmail.com > <mailto:ioss...@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@lists.openstack.org > <mailto:OpenStack-dev@lists.openstack.org> > > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > <mailto:OpenStack-dev@lists.openstack.org> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > > > > > _______________________________________________ > OpenStack-dev mailing list > OpenStack-dev@lists.openstack.org > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev > _______________________________________________ OpenStack-dev mailing list OpenStack-dev@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev