summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyu Ishimoto <ryu@midokura.jp>2011-08-17 17:33:56 +0900
committerRyu Ishimoto <ryu@midokura.jp>2011-08-17 17:33:56 +0900
commit26d7e23d991c0abe7f912458da490c99428247af (patch)
tree1eedd1e29fafa0964572a7fe6db1c77681c6d521
parentc3c164455f9b5d4ea994a4453342ccb00d987766 (diff)
parent536c1e95a68569abda6fe8ee4e3f571976521c8e (diff)
Merged Dan's branch to add VIF uuid to VIF drivers for Quantum
-rw-r--r--nova/virt/libvirt/vif.py13
-rw-r--r--nova/virt/xenapi/vif.py4
2 files changed, 9 insertions, 8 deletions
diff --git a/nova/virt/libvirt/vif.py b/nova/virt/libvirt/vif.py
index 4cb9abda4..67366fdbe 100644
--- a/nova/virt/libvirt/vif.py
+++ b/nova/virt/libvirt/vif.py
@@ -98,10 +98,12 @@ class LibvirtBridgeDriver(VIFDriver):
class LibvirtOpenVswitchDriver(VIFDriver):
"""VIF driver for Open vSwitch."""
+ def get_dev_name(_self, iface_id):
+ return "tap-" + iface_id[0:15]
+
def plug(self, instance, network, mapping):
- vif_id = str(instance['id']) + "-" + str(network['id'])
- dev = "tap-%s" % vif_id
- iface_id = "nova-" + vif_id
+ iface_id = mapping['vif_uuid']
+ dev = self.get_dev_name(iface_id)
if not linux_net._device_exists(dev):
utils.execute('ip', 'tuntap', 'add', dev, 'mode', 'tap',
run_as_root=True)
@@ -125,11 +127,10 @@ class LibvirtOpenVswitchDriver(VIFDriver):
def unplug(self, instance, network, mapping):
"""Unplug the VIF from the network by deleting the port from
the bridge."""
- vif_id = str(instance['id']) + "-" + str(network['id'])
- dev = "tap-%s" % vif_id
+ dev = self.get_dev_name(mapping['vif_uuid'])
try:
utils.execute('ovs-vsctl', 'del-port',
- network['bridge'], dev, run_as_root=True)
+ FLAGS.libvirt_ovs_bridge, dev, run_as_root=True)
utils.execute('ip', 'link', 'delete', dev, run_as_root=True)
except exception.ProcessExecutionError:
LOG.warning(_("Failed while unplugging vif of instance '%s'"),
diff --git a/nova/virt/xenapi/vif.py b/nova/virt/xenapi/vif.py
index 527602243..2f25efeb2 100644
--- a/nova/virt/xenapi/vif.py
+++ b/nova/virt/xenapi/vif.py
@@ -128,12 +128,12 @@ class XenAPIOpenVswitchDriver(VIFDriver):
vif_rec['VM'] = vm_ref
vif_rec['MAC'] = network_mapping['mac']
vif_rec['MTU'] = '1500'
- vif_id = "nova-" + str(instance['id']) + "-" + str(network['id'])
vif_rec['qos_algorithm_type'] = ""
vif_rec['qos_algorithm_params'] = {}
# OVS on the hypervisor monitors this key and uses it to
# set the iface-id attribute
- vif_rec['other_config'] = {"nicira-iface-id": vif_id}
+ vif_rec['other_config'] = \
+ {"nicira-iface-id": network_mapping['vif_uuid']}
return vif_rec
def unplug(self, instance, network, mapping):