[openstack-dev] [Nova][Neutron] out-of-tree plugin for Mech driver/L2 and vif_driver

Maxime Leroy maxime.leroy at 6wind.com
Fri Dec 12 14:05:28 UTC 2014


On Fri, Dec 12, 2014 at 10:46 AM, Daniel P. Berrange
<berrange at redhat.com> wrote:
> On Fri, Dec 12, 2014 at 01:21:36PM +0900, Ryu Ishimoto wrote:
>> On Thu, Dec 11, 2014 at 7:41 PM, Daniel P. Berrange <berrange at redhat.com>
>> wrote:
>>
[..]
>> Port binding mechanism could vary among different networking technologies,
>> which is not nova's concern, so this proposal makes sense.  Note that some
>> vendors already provide port binding scripts that are currently executed
>> directly from nova's vif.py ('mm-ctl' of midonet and 'ifc_ctl' for iovisor
>> are two such examples), and this proposal makes it unnecessary to have
>> these hard-coded in nova.  The only question I have is, how would nova
>> figure out the arguments for these scripts?  Should nova dictate what they
>> are?
>
> We could define some standard set of arguments & environment variables
> to pass the information from the VIF to the script in a standard way.
>

Many information are used by the plug/unplug method: vif_id,
vif_address, ovs_interfaceid, firewall, net_id, tenant_id, vnic_type,
instance_uuid...

Not sure we can define a set of standard arguments.

Maybe instead to use a script we should load some plug/unplug
functions from a python module with importlib. So a vif_plug_module
option instead to have a vif_plug_script ?

There are several other problems to solve if we are going to use this
vif_plug_script:

- How to have the authorization to run this script (i.e. rootwrap)?

- How to test plug/unplug function from these scripts?
  Now, we have unity tests in nova/tests/unit/virt/libvirt/test_vif.py
for plug/unplug method.

- How this script will be installed?
   -> should it be including in the L2 agent package? Some L2 switch
doesn't have a L2 agent.

Regards,

Maxime



More information about the OpenStack-dev mailing list