mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +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":
|
elif self._node_type == "dynamips":
|
||||||
self._ports = DynamipsPortFactory(self._properties)
|
self._ports = DynamipsPortFactory(self._properties)
|
||||||
return
|
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
|
port_number = 0
|
||||||
for port in self._properties["ports_mapping"]:
|
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
|
port_number += 1
|
||||||
else:
|
else:
|
||||||
self._ports = StandardPortFactory(self._properties, self._port_by_adapter, self._first_port_name, self._port_name_format, self._port_segment_size)
|
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.
|
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._interface_number = interface_number
|
||||||
self._adapter_number = adapter_number
|
self._adapter_number = adapter_number
|
||||||
self._port_number = port_number
|
self._port_number = port_number
|
||||||
self._name = name
|
self._name = name
|
||||||
|
self._short_name = short_name
|
||||||
self._link = None
|
self._link = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -63,7 +64,9 @@ class Port:
|
|||||||
@property
|
@property
|
||||||
def short_name(self):
|
def short_name(self):
|
||||||
# If port name format has change we use the port name as the short name (1.X behavior)
|
# 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._name
|
||||||
return self.short_name_type + "{}/{}".format(self._interface_number, self._port_number)
|
return self.short_name_type + "{}/{}".format(self._interface_number, self._port_number)
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ def test_json(node, compute):
|
|||||||
"link_type": "ethernet",
|
"link_type": "ethernet",
|
||||||
"name": "Ethernet0",
|
"name": "Ethernet0",
|
||||||
"port_number": 0,
|
"port_number": 0,
|
||||||
"short_name": "e0/0"
|
"short_name": "e0"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -465,6 +465,7 @@ def test_update_label(node):
|
|||||||
|
|
||||||
|
|
||||||
def test_get_port(node):
|
def test_get_port(node):
|
||||||
|
node._node_type = "qemu"
|
||||||
node._properties["adapters"] = 2
|
node._properties["adapters"] = 2
|
||||||
node._list_ports()
|
node._list_ports()
|
||||||
port = node.get_port(0, 0)
|
port = node.get_port(0, 0)
|
||||||
|
@ -41,7 +41,7 @@ def project(controller):
|
|||||||
def node(compute, project):
|
def node(compute, project):
|
||||||
node = Node(project, compute, "demo",
|
node = Node(project, compute, "demo",
|
||||||
node_id=str(uuid.uuid4()),
|
node_id=str(uuid.uuid4()),
|
||||||
node_type="vpcs",
|
node_type="qemu",
|
||||||
console_type="vnc",
|
console_type="vnc",
|
||||||
properties={"startup_script": "echo test"})
|
properties={"startup_script": "echo test"})
|
||||||
return node
|
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):
|
def test_list_ports_port_name_format(node):
|
||||||
"""
|
"""
|
||||||
Support port name format
|
Support port name format
|
||||||
@ -166,7 +183,7 @@ def test_list_ports_ethernet_hub(project, compute):
|
|||||||
assert node.__json__()["ports"] == [
|
assert node.__json__()["ports"] == [
|
||||||
{
|
{
|
||||||
"name": "Ethernet0",
|
"name": "Ethernet0",
|
||||||
"short_name": "e0/0",
|
"short_name": "e0",
|
||||||
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
||||||
"port_number": 0,
|
"port_number": 0,
|
||||||
"adapter_number": 0,
|
"adapter_number": 0,
|
||||||
@ -174,7 +191,7 @@ def test_list_ports_ethernet_hub(project, compute):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Ethernet1",
|
"name": "Ethernet1",
|
||||||
"short_name": "e0/1",
|
"short_name": "e1",
|
||||||
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
"data_link_types": {"Ethernet": "DLT_EN10MB"},
|
||||||
"port_number": 1,
|
"port_number": 1,
|
||||||
"adapter_number": 0,
|
"adapter_number": 0,
|
||||||
@ -554,5 +571,6 @@ def test_list_ports_dynamips(project, compute):
|
|||||||
def test_short_name():
|
def test_short_name():
|
||||||
# If no customization of port name format return the default 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 == "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)
|
# 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"
|
assert EthernetPort("eth0", 0, 0, 0).short_name == "eth0"
|
||||||
|
Loading…
Reference in New Issue
Block a user