diff --git a/neutron/agent/linux/interface.py b/neutron/agent/linux/interface.py index 42a1f82d15d..c14b9f8d8eb 100644 --- a/neutron/agent/linux/interface.py +++ b/neutron/agent/linux/interface.py @@ -140,7 +140,7 @@ class OVSInterfaceDriver(LinuxInterfaceDriver): def _ovs_add_port(self, bridge, device_name, port_id, mac_address, internal=True): - cmd = ['ovs-vsctl', '--', '--may-exist', + cmd = ['ovs-vsctl', '--', '--if-exists', 'del-port', device_name, '--', 'add-port', bridge, device_name] if internal: cmd += ['--', 'set', 'Interface', device_name, 'type=internal'] diff --git a/neutron/tests/unit/test_linux_interface.py b/neutron/tests/unit/test_linux_interface.py index 2b5eb451680..8762c3a3f6e 100644 --- a/neutron/tests/unit/test_linux_interface.py +++ b/neutron/tests/unit/test_linux_interface.py @@ -119,7 +119,8 @@ class TestOVSInterfaceDriver(TestBase): def device_exists(dev, root_helper=None, namespace=None): return dev == bridge - vsctl_cmd = ['ovs-vsctl', '--', '--may-exist', 'add-port', + vsctl_cmd = ['ovs-vsctl', '--', '--if-exists', 'del-port', + 'tap0', '--', 'add-port', bridge, 'tap0', '--', 'set', 'Interface', 'tap0', 'type=internal', '--', 'set', 'Interface', 'tap0', 'external-ids:iface-id=port-1234', '--', 'set', @@ -206,7 +207,8 @@ class TestOVSInterfaceDriverWithVeth(TestOVSInterfaceDriver): mock.call().add_veth('tap0', devname, namespace2=namespace)] - vsctl_cmd = ['ovs-vsctl', '--', '--may-exist', 'add-port', + vsctl_cmd = ['ovs-vsctl', '--', '--if-exists', 'del-port', + 'tap0', '--', 'add-port', bridge, 'tap0', '--', 'set', 'Interface', 'tap0', 'external-ids:iface-id=port-1234', '--', 'set', 'Interface', 'tap0',