diff --git a/CHANGELOG b/CHANGELOG index 8f75b1dfa..cde9da671 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,15 @@ # Change Log +## 2.2.57 23/03/2026 + +* feat(telnet_server): improve error handling and connection management +* Deactivate 'use default IOU values' by default and update RAM/NVRAM values +* Make sure the node shows as stopped when the wrap console cannot be stopped +* tests(controller,port): short_name finishes successfully when port name is None +* fix(controller,port): handle None port name to prevent TypeError in short_name method +* fix: busybox static link detection on Alpine/musl +* Take populated disks into consideration when calculating PCI device ID + ## 2.2.56.1 28/01/2026 * Fix telnet keepalive options on macOS diff --git a/gns3server/appliances/infix.gns3a b/gns3server/appliances/infix.gns3a index 736863ba7..f28a3d6a7 100644 --- a/gns3server/appliances/infix.gns3a +++ b/gns3server/appliances/infix.gns3a @@ -125,23 +125,9 @@ "md5sum": "0c4da508cfcb702c066f47227644b65f", "version": "26.02.1", "direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.02.1/infix-x86_64-v26.02.1.qcow2" - }, - { - "filename": "infix-x86_64-v26.03.0.qcow2", - "filesize": 320339968, - "md5sum": "24cd1006734993dab338e5c75f80b875", - "version": "26.03.0", - "direct_download_url": "https://github.com/kernelkit/infix/releases/download/v26.03.0/infix-x86_64-v26.03.0.qcow2" } ], "versions": [ - { - "name": "26.03.0", - "images": { - "bios_image": "OVMF-edk2-stable202305.fd", - "hda_disk_image": "infix-x86_64-v26.03.0.qcow2" - } - }, { "name": "26.02.1", "images": { diff --git a/gns3server/appliances/juniper-vJunos-router.gns3a b/gns3server/appliances/juniper-vJunos-router.gns3a index a9fb999b7..8fecd0681 100644 --- a/gns3server/appliances/juniper-vJunos-router.gns3a +++ b/gns3server/appliances/juniper-vJunos-router.gns3a @@ -18,7 +18,7 @@ "port_name_format": "ge-0/0/{port0}", "qemu": { "adapter_type": "virtio-net-pci", - "adapters": 11, + "adapters": 10, "ram": 5120, "cpus": 4, "hda_disk_interface": "virtio", diff --git a/gns3server/controller/ports/port.py b/gns3server/controller/ports/port.py index e0a0406ba..afa8d2bec 100644 --- a/gns3server/controller/ports/port.py +++ b/gns3server/controller/ports/port.py @@ -83,7 +83,7 @@ class Port: # If port name format has changed we use the port name as the short name (1.X behavior) if self._short_name: return self._short_name - elif "/" in self._name: + elif self._name and '/' in self._name: return self._name.replace(self.long_name_type(), self.short_name_type()) elif self._name.startswith(f"{self.long_name_type()}{self._interface_number}"): return self.short_name_type() + f"{self._interface_number}" diff --git a/tests/controller/test_node_port_name.py b/tests/controller/test_node_port_name.py index 193f82ae4..26c054d23 100644 --- a/tests/controller/test_node_port_name.py +++ b/tests/controller/test_node_port_name.py @@ -133,6 +133,13 @@ def test_list_ports_port_name_format(node): assert node.asdict()["ports"][1]["name"] == "eth0/0" +def test_short_name_none(): + """ + Test short_name does not raise exception when name is None + """ + assert EthernetPort(None, 0, 0, 0).short_name is None + + def test_list_ports_adapters(node): """ List port using adapters properties