diff options
| author | Dan Wendlandt <dan@nicira.com> | 2011-07-21 21:57:03 -0700 |
|---|---|---|
| committer | Dan Wendlandt <dan@nicira.com> | 2011-07-21 21:57:03 -0700 |
| commit | ff9b31734f15fec0a5b1f9de96dadbda6475a3b4 (patch) | |
| tree | cd07e9c5208cc7b75319e7734fe92ba494fe13a0 | |
| parent | d78d188d41e580ef0e2b4f0116bb0402ce83930f (diff) | |
for libvirt OVS driver, do not make device if it exists already
| -rw-r--r-- | nova/virt/libvirt/vif.py | 21 |
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': '', |
