From c5bdd78f81b3d8d4e57d917569c543e3cf3d0bf8 Mon Sep 17 00:00:00 2001 From: Roman Podolyaka Date: Thu, 19 Sep 2013 16:57:49 +0300 Subject: [PATCH] Fix ovs-vsctl call in add_tunnel_port() When a new GRE tunnel is created OVS agent calls ovs-vsctl incorrectly. Command: sudo ovs-vsctl --timeout=2 --may-exist add-port br-tun gre-1 is produced instead of correct one: sudo ovs-vsctl --timeout=2 -- --may-exist add-port br-tun gre-1 Fixes bug 1227675 Change-Id: I010961658a37028e41621c4a529b5a14e7587c7f --- neutron/agent/linux/ovs_lib.py | 3 ++- neutron/tests/unit/openvswitch/test_ovs_lib.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/neutron/agent/linux/ovs_lib.py b/neutron/agent/linux/ovs_lib.py index ad94ef439..097630707 100644 --- a/neutron/agent/linux/ovs_lib.py +++ b/neutron/agent/linux/ovs_lib.py @@ -207,7 +207,8 @@ class OVSBridge: def add_tunnel_port(self, port_name, remote_ip, local_ip, tunnel_type=constants.TYPE_GRE, vxlan_udp_port=constants.VXLAN_UDP_PORT): - self.run_vsctl(["--may-exist", "add-port", self.br_name, port_name]) + self.run_vsctl(["--", "--may-exist", "add-port", self.br_name, + port_name]) self.set_db_attribute("Interface", port_name, "type", tunnel_type) if tunnel_type == constants.TYPE_VXLAN: # Only set the VXLAN UDP port if it's not the default diff --git a/neutron/tests/unit/openvswitch/test_ovs_lib.py b/neutron/tests/unit/openvswitch/test_ovs_lib.py index 0a2908f2f..d4fef53e6 100644 --- a/neutron/tests/unit/openvswitch/test_ovs_lib.py +++ b/neutron/tests/unit/openvswitch/test_ovs_lib.py @@ -219,7 +219,7 @@ class OVS_Lib_Test(base.BaseTestCase): remote_ip = "9.9.9.9" ofport = "6" - utils.execute(["ovs-vsctl", self.TO, "--may-exist", "add-port", + utils.execute(["ovs-vsctl", self.TO, '--', "--may-exist", "add-port", self.BR_NAME, pname], root_helper=self.root_helper) utils.execute(["ovs-vsctl", self.TO, "set", "Interface", pname, "type=gre"], root_helper=self.root_helper) -- 2.45.2