Integration library between network (Neutron) and compute (Nova) providers
Go to file
Stephen Finucane f154ef9cc8 Revert "hardware offload support for openvswitch"
This reverts commit 157bf4c5cc. The
feature hasn't merged into upstream OVS yet. We should wait until it
does so in the event that there are changes (or it fails to merge at
all).

Change-Id: I564cae602bd88d71ce0796202db764502b2108f1
2017-04-26 14:00:53 +00:00
doc/source Revert "hardware offload support for openvswitch" 2017-04-26 14:00:53 +00:00
os_vif Revert "hardware offload support for openvswitch" 2017-04-26 14:00:53 +00:00
releasenotes Update reno for stable/ocata 2017-01-31 18:24:02 +00:00
vif_plug_linux_bridge Don't install iptables rules if neutron is filtering 2017-02-28 12:08:59 +00:00
vif_plug_ovs Revert "hardware offload support for openvswitch" 2017-04-26 14:00:53 +00:00
.coveragerc Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
.gitignore Start using reno for release notes 2016-05-03 13:53:29 +01:00
.gitreview Added .gitreview 2015-11-11 16:10:58 +00:00
.mailmap Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
.testr.conf Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
babel.cfg Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
CONTRIBUTING.rst Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
HACKING.rst Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
LICENSE Import of code from https://github.com/jaypipes/os_vif 2016-01-13 12:56:01 -05:00
README.rst Argument should have 2 params 2017-03-29 11:17:58 +00:00
requirements.txt Updated from global requirements 2017-03-13 19:39:35 +00:00
setup.cfg docs: Stop building anything but html output 2017-04-13 10:43:55 +01:00
setup.py Updated from global requirements 2017-03-10 19:12:21 +00:00
test-requirements.txt Updated from global requirements 2017-03-10 19:12:21 +00:00
tox.ini The Python 3.5 is added 2017-03-08 11:29:35 +05:30

Team and repository tags

image

os-vif

A library for plugging and unplugging virtual interfaces in OpenStack.

Features

  • A base VIF plugin class that supplies a plug() and unplug() interface
  • Versioned objects that represent a virtual interface and its components

Usage

The interface to the os_vif library is very simple. To begin using the library, first call the os_vif.initialize() function. This will load all installed plugins and register the object model:

import os_vif

os_vif.initialize()

Once the os_vif library is initialized, there are only two other library functions: os_vif.plug() and os_vif.unplug(). Both methods accept a single argument of type `os_vif.objects.VIF`:

import uuid

from nova import objects as nova_objects
from os_vif import exception as vif_exc
from os_vif import objects as vif_objects
from os_vif import vnic_types

instance_uuid = 'd7a730ca-3c28-49c3-8f26-4662b909fe8a'
instance = nova_objects.Instance.get_by_uuid(instance_uuid)
instance_info = vif_objects.InstanceInfo(
    uuid=instance.uuid,
    name=instance.name,
    project_id=instance.project_id)

subnet = vif_objects.Subnet(cidr='192.168.1.0/24')
subnets = vif_objects.SubnetList([subnet])
network = vif_objects.Network(label='tenantnet',
                              subnets=subnets,
                              multi_host=False,
                              should_provide_vlan=False,
                              should_provide_bridge=False)

vif_uuid = uuid.uuid4()
vif = vif_objects.VIFVHostUser(id=vif_uuid,
                               address=None,
                               network=network,
                               plugin='vhostuser',
                               path='/path/to/socket',
                               mode=vif_objects.fields.VIFVHostUserMode.SERVER)

# Now do the actual plug operations to connect the VIF to
# the backing network interface.
try:
    os_vif.plug(vif, instance_info)
except vif_exc.PlugException as err:
    # Handle the failure...

# If you are removing a virtual machine and its interfaces,
# you would use the unplug() operation:
try:
    os_vif.unplug(vif, instance_info)
except vif_exc.UnplugException as err:
    # Handle the failure...