From ff9b31734f15fec0a5b1f9de96dadbda6475a3b4 Mon Sep 17 00:00:00 2001 From: Dan Wendlandt Date: Thu, 21 Jul 2011 21:57:03 -0700 Subject: for libvirt OVS driver, do not make device if it exists already --- nova/virt/libvirt/vif.py | 21 +++++++++++---------- 1 file 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': '', -- cgit