mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-12 19:38:57 +00:00
Fix wrong short label for ethernet switch, hub & VPCS
Fix https://github.com/GNS3/gns3-gui/issues/1764
This commit is contained in:
parent
2de60ba257
commit
58287b3638
@ -558,10 +558,18 @@ class Node:
|
||||
elif self._node_type == "dynamips":
|
||||
self._ports = DynamipsPortFactory(self._properties)
|
||||
return
|
||||
elif self._node_type in ("cloud", "nat", "ethernet_switch", "ethernet_hub"):
|
||||
elif self._node_type in ("ethernet_switch", "ethernet_hub"):
|
||||
# Basic node we don't want to have adapter number
|
||||
port_number = 0
|
||||
for port in self._properties["ports_mapping"]:
|
||||
self._ports.append(PortFactory(port["name"], 0, 0, port_number, "ethernet"))
|
||||
self._ports.append(PortFactory(port["name"], 0, 0, port_number, "ethernet", short_name="e{}".format(port_number)))
|
||||
port_number += 1
|
||||
elif self._node_type in ("vpcs"):
|
||||
self._ports.append(PortFactory("Ethernet0", 0, 0, 0, "ethernet", short_name="e0"))
|
||||
elif self._node_type in ("cloud", "nat"):
|
||||
port_number = 0
|
||||
for port in self._properties["ports_mapping"]:
|
||||
self._ports.append(PortFactory(port["name"], 0, 0, port_number, "ethernet", short_name=port["name"]))
|
||||
port_number += 1
|
||||
else:
|
||||
self._ports = StandardPortFactory(self._properties, self._port_by_adapter, self._first_port_name, self._port_name_format, self._port_segment_size)
|
||||
|
@ -21,11 +21,12 @@ class Port:
|
||||
Base class for port objects.
|
||||
"""
|
||||
|
||||
def __init__(self, name, interface_number, adapter_number, port_number):
|
||||
def __init__(self, name, interface_number, adapter_number, port_number, short_name=None):
|
||||
self._interface_number = interface_number
|
||||
self._adapter_number = adapter_number
|
||||
self._port_number = port_number
|
||||
self._name = name
|
||||
self._short_name = short_name
|
||||
self._link = None
|
||||
|
||||
@property
|
||||
@ -63,7 +64,9 @@ class Port:
|
||||
@property
|
||||
def short_name(self):
|
||||
# If port name format has change we use the port name as the short name (1.X behavior)
|
||||
if not self._name.startswith(self.long_name_type()):
|
||||
if self._short_name:
|
||||
return self._short_name
|
||||
elif not self._name.startswith(self.long_name_type()):
|
||||
return self._name
|
||||
return self.short_name_type + "{}/{}".format(self._interface_number, self._port_number)
|
||||
|
||||
|
@ -128,7 +128,7 @@ def test_json(node, compute):
|
||||
"link_type": "ethernet",
|
||||
"name": "Ethernet0",
|
||||
"port_number": 0,
|
||||
"short_name": "e0/0"
|
||||
"short_name": "e0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -465,6 +465,7 @@ def test_update_label(node):
|
||||
|
||||
|
||||
def test_get_port(node):
|
||||
node._node_type = "qemu"
|
||||
node._properties["adapters"] = 2
|
||||
node._list_ports()
|
||||
port = node.get_port(0, 0)
|
||||
|
@ -41,7 +41,7 @@ def project(controller):
|
||||
def node(compute, project):
|
||||
node = Node(project, compute, "demo",
|
||||
node_id=str(uuid.uuid4()),
|
||||
node_type="vpcs",
|
||||
node_type="qemu",
|
||||
console_type="vnc",
|
||||
properties={"startup_script": "echo test"})
|
||||
return node
|
||||
@ -63,6 +63,23 @@ def test_list_ports(node):
|
||||
]
|
||||
|
||||
|
||||
def test_list_ports_vpcs(node):
|
||||
"""
|
||||
List port by default
|
||||
"""
|
||||
node._node_type = "vpcs"
|
||||
assert node.__json__()["ports"] == [
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"short_name": "e0",
|
||||
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
||||
"port_number": 0,
|
||||
"adapter_number": 0,
|
||||
"link_type": "ethernet"
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
def test_list_ports_port_name_format(node):
|
||||
"""
|
||||
Support port name format
|
||||
@ -166,7 +183,7 @@ def test_list_ports_ethernet_hub(project, compute):
|
||||
assert node.__json__()["ports"] == [
|
||||
{
|
||||
"name": "Ethernet0",
|
||||
"short_name": "e0/0",
|
||||
"short_name": "e0",
|
||||
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
||||
"port_number": 0,
|
||||
"adapter_number": 0,
|
||||
@ -174,7 +191,7 @@ def test_list_ports_ethernet_hub(project, compute):
|
||||
},
|
||||
{
|
||||
"name": "Ethernet1",
|
||||
"short_name": "e0/1",
|
||||
"short_name": "e1",
|
||||
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
||||
"port_number": 1,
|
||||
"adapter_number": 0,
|
||||
@ -554,5 +571,6 @@ def test_list_ports_dynamips(project, compute):
|
||||
def test_short_name():
|
||||
# If no customization of port name format return the default short name
|
||||
assert EthernetPort("Ethernet0", 0, 0, 0).short_name == "e0/0"
|
||||
assert EthernetPort("Ethernet0", 0, 0, 0, short_name="mgmt").short_name == "mgmt"
|
||||
# If port name format has change we use the port name as the short name (1.X behavior)
|
||||
assert EthernetPort("eth0", 0, 0, 0).short_name == "eth0"
|
||||
|
Loading…
Reference in New Issue
Block a user