summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Wendlandt <dan@nicira.com>2011-07-21 21:57:03 -0700
committerDan Wendlandt <dan@nicira.com>2011-07-21 21:57:03 -0700
commitff9b31734f15fec0a5b1f9de96dadbda6475a3b4 (patch)
treecd07e9c5208cc7b75319e7734fe92ba494fe13a0
parentd78d188d41e580ef0e2b4f0116bb0402ce83930f (diff)
for libvirt OVS driver, do not make device if it exists already
-rw-r--r--nova/virt/libvirt/vif.py21
1 files changed, 11 insertions, 10 deletions
diff --git a/nova/virt/libvirt/vif.py b/nova/virt/libvirt/vif.py
index 07c3973d4..02bbcc194 100644
--- a/nova/virt/libvirt/vif.py
+++ b/nova/virt/libvirt/vif.py
@@ -98,17 +98,18 @@ class LibvirtOpenVswitchDriver(VIFDriver):
def plug(self, instance, network, mapping):
vif_id = str(instance['id']) + "-" + str(network['id'])
dev = "tap-%s" % vif_id
- iface_id = "nova-" + vif_id
- utils.execute('sudo', 'ip', 'tuntap', 'add', dev, 'mode', 'tap')
- utils.execute('sudo', 'ip', 'link', 'set', dev, 'up')
+ if not linux_net._device_exists(dev):
+ iface_id = "nova-" + vif_id
+ utils.execute('sudo', 'ip', 'tuntap', 'add', dev, 'mode', 'tap')
+ utils.execute('sudo', 'ip', 'link', 'set', dev, 'up')
utils.execute('sudo', 'ovs-vsctl', '--', '--may-exist', 'add-port',
- FLAGS.libvirt_ovs_integration_bridge, dev,
- '--', 'set', 'Interface', dev,
- "external-ids:iface-id=%s" % iface_id,
- '--', 'set', 'Interface', dev,
- "external-ids:iface-status=active",
- '--', 'set', 'Interface', dev,
- "external-ids:attached-mac=%s" % mapping['mac'])
+ FLAGS.libvirt_ovs_integration_bridge, dev,
+ '--', 'set', 'Interface', dev,
+ "external-ids:iface-id=%s" % iface_id,
+ '--', 'set', 'Interface', dev,
+ "external-ids:iface-status=active",
+ '--', 'set', 'Interface', dev,
+ "external-ids:attached-mac=%s" % mapping['mac'])
result = {
'script': '',