Merge "atomically setup ovs ports"
This commit is contained in:
commit
22a311bd8d
@ -247,29 +247,25 @@ class OVSBridge(BaseOVS):
|
||||
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.set_db_attribute("Interface", port_name, "type", tunnel_type)
|
||||
vsctl_command = ["--", "--may-exist", "add-port", self.br_name,
|
||||
port_name]
|
||||
vsctl_command.extend(["--", "set", "Interface", port_name,
|
||||
"type=%s" % tunnel_type])
|
||||
if tunnel_type == constants.TYPE_VXLAN:
|
||||
# Only set the VXLAN UDP port if it's not the default
|
||||
if vxlan_udp_port != constants.VXLAN_UDP_PORT:
|
||||
self.set_db_attribute("Interface", port_name,
|
||||
"options:dst_port",
|
||||
vxlan_udp_port)
|
||||
self.set_db_attribute("Interface", port_name, "options:remote_ip",
|
||||
remote_ip)
|
||||
self.set_db_attribute("Interface", port_name, "options:local_ip",
|
||||
local_ip)
|
||||
self.set_db_attribute("Interface", port_name, "options:in_key", "flow")
|
||||
self.set_db_attribute("Interface", port_name, "options:out_key",
|
||||
"flow")
|
||||
vsctl_command.append("options:dst_port=%s" % vxlan_udp_port)
|
||||
vsctl_command.extend(["options:remote_ip=%s" % remote_ip,
|
||||
"options:local_ip=%s" % local_ip,
|
||||
"options:in_key=flow",
|
||||
"options:out_key=flow"])
|
||||
self.run_vsctl(vsctl_command)
|
||||
return self.get_port_ofport(port_name)
|
||||
|
||||
def add_patch_port(self, local_name, remote_name):
|
||||
self.run_vsctl(["add-port", self.br_name, local_name])
|
||||
self.set_db_attribute("Interface", local_name, "type", "patch")
|
||||
self.set_db_attribute("Interface", local_name, "options:peer",
|
||||
remote_name)
|
||||
self.run_vsctl(["add-port", self.br_name, local_name,
|
||||
"--", "set", "Interface", local_name,
|
||||
"type=patch", "options:peer=%s" % remote_name])
|
||||
return self.get_port_ofport(local_name)
|
||||
|
||||
def db_get_map(self, table, record, column):
|
||||
|
@ -293,31 +293,16 @@ class OVS_Lib_Test(base.BaseTestCase):
|
||||
local_ip = "1.1.1.1"
|
||||
remote_ip = "9.9.9.9"
|
||||
ofport = "6"
|
||||
|
||||
command = ["ovs-vsctl", self.TO, '--', "--may-exist", "add-port",
|
||||
self.BR_NAME, pname]
|
||||
command.extend(["--", "set", "Interface", pname])
|
||||
command.extend(["type=gre", "options:remote_ip=" + remote_ip,
|
||||
"options:local_ip=" + local_ip,
|
||||
"options:in_key=flow",
|
||||
"options:out_key=flow"])
|
||||
# Each element is a tuple of (expected mock call, return_value)
|
||||
expected_calls_and_values = [
|
||||
(mock.call(["ovs-vsctl", self.TO, '--', "--may-exist", "add-port",
|
||||
self.BR_NAME, pname], root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set", "Interface",
|
||||
pname, "type=gre"], root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set", "Interface",
|
||||
pname, "options:remote_ip=" + remote_ip],
|
||||
root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set", "Interface",
|
||||
pname, "options:local_ip=" + local_ip],
|
||||
root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set", "Interface",
|
||||
pname, "options:in_key=flow"],
|
||||
root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set", "Interface",
|
||||
pname, "options:out_key=flow"],
|
||||
root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(command, root_helper=self.root_helper), None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "get",
|
||||
"Interface", pname, "ofport"],
|
||||
root_helper=self.root_helper),
|
||||
@ -337,16 +322,11 @@ class OVS_Lib_Test(base.BaseTestCase):
|
||||
ofport = "6"
|
||||
|
||||
# Each element is a tuple of (expected mock call, return_value)
|
||||
command = ["ovs-vsctl", self.TO, "add-port", self.BR_NAME, pname]
|
||||
command.extend(["--", "set", "Interface", pname])
|
||||
command.extend(["type=patch", "options:peer=" + peer])
|
||||
expected_calls_and_values = [
|
||||
(mock.call(["ovs-vsctl", self.TO, "add-port",
|
||||
self.BR_NAME, pname], root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set", "Interface",
|
||||
pname, "type=patch"], root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "set",
|
||||
"Interface", pname, "options:peer=" + peer],
|
||||
root_helper=self.root_helper),
|
||||
(mock.call(command, root_helper=self.root_helper),
|
||||
None),
|
||||
(mock.call(["ovs-vsctl", self.TO, "get",
|
||||
"Interface", pname, "ofport"],
|
||||
|
Loading…
Reference in New Issue
Block a user