From 94abdfc9f070240c43ee0f2ac57c30088bb5b2f8 Mon Sep 17 00:00:00 2001 From: grossmj Date: Tue, 19 Sep 2023 21:08:24 +0700 Subject: [PATCH 01/11] Development on 2.2.44.dev1 --- gns3server/version.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gns3server/version.py b/gns3server/version.py index 76d39338..26293e2e 100644 --- a/gns3server/version.py +++ b/gns3server/version.py @@ -23,8 +23,8 @@ # or negative for a release candidate or beta (after the base version # number has been incremented) -__version__ = "2.2.43" -__version_info__ = (2, 2, 43, 0) +__version__ = "2.2.44.dev1" +__version_info__ = (2, 2, 44, 99) if "dev" in __version__: try: From dc1eed42da5c0befa9c22b2c6021c22502986bcd Mon Sep 17 00:00:00 2001 From: grossmj Date: Sat, 23 Sep 2023 14:35:50 +1000 Subject: [PATCH 02/11] Install importlib-resources only with Python < '3.9'. Ref #2147 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 84247047..9f6beade 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ async-timeout>=4.0.2,<4.1 distro>=1.8.0 py-cpuinfo>=9.0.0,<10.0 platformdirs>=2.4.0 -importlib-resources>=1.3; python_version <= '3.9' +importlib-resources>=1.3; python_version < '3.9' truststore>=0.8.0; python_version >= '3.10' setuptools>=60.8.1; python_version >= '3.7' setuptools==59.6.0; python_version < '3.7' # v59.6.0 is the last version to support Python 3.6 From f675f24ba787416726e32cc66084eb2af9fc1fac Mon Sep 17 00:00:00 2001 From: grossmj Date: Sat, 23 Sep 2023 14:48:04 +1000 Subject: [PATCH 03/11] Revert "Install importlib-resources only with Python < '3.9'. Ref #2147" This reverts commit dc1eed42da5c0befa9c22b2c6021c22502986bcd. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9f6beade..84247047 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ async-timeout>=4.0.2,<4.1 distro>=1.8.0 py-cpuinfo>=9.0.0,<10.0 platformdirs>=2.4.0 -importlib-resources>=1.3; python_version < '3.9' +importlib-resources>=1.3; python_version <= '3.9' truststore>=0.8.0; python_version >= '3.10' setuptools>=60.8.1; python_version >= '3.7' setuptools==59.6.0; python_version < '3.7' # v59.6.0 is the last version to support Python 3.6 From 999a47f747abed6ca18b1dc6f19d9552c30cf030 Mon Sep 17 00:00:00 2001 From: grossmj Date: Sat, 23 Sep 2023 20:44:00 +1000 Subject: [PATCH 04/11] Fix issue with importlib.resources.files() and Python 3.9 --- gns3server/controller/__init__.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gns3server/controller/__init__.py b/gns3server/controller/__init__.py index 101854c9..4a66fe2d 100644 --- a/gns3server/controller/__init__.py +++ b/gns3server/controller/__init__.py @@ -295,7 +295,7 @@ class Controller: if not os.path.exists(os.path.join(dst_path, filename)): shutil.copy(os.path.join(resource_path, filename), os.path.join(dst_path, filename)) else: - for entry in importlib_resources.files(f'gns3server.{resource_name}').iterdir(): + for entry in importlib_resources.files('gns3server').joinpath(resource_name).iterdir(): full_path = os.path.join(dst_path, entry.name) if entry.is_file() and not os.path.exists(full_path): log.debug(f'Installing {resource_name} resource file "{entry.name}" to "{full_path}"') diff --git a/requirements.txt b/requirements.txt index 84247047..9f6beade 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ async-timeout>=4.0.2,<4.1 distro>=1.8.0 py-cpuinfo>=9.0.0,<10.0 platformdirs>=2.4.0 -importlib-resources>=1.3; python_version <= '3.9' +importlib-resources>=1.3; python_version < '3.9' truststore>=0.8.0; python_version >= '3.10' setuptools>=60.8.1; python_version >= '3.7' setuptools==59.6.0; python_version < '3.7' # v59.6.0 is the last version to support Python 3.6 From 29f4b238b0bcb276877c66f02f5e05aa5b3649f6 Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 9 Oct 2023 16:54:47 +1000 Subject: [PATCH 05/11] Add Python 3.12 support. Fixes https://github.com/GNS3/gns3-server/issues/2273 --- .github/workflows/testing.yml | 2 +- setup.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 10347cd3..f7398a5a 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-20.04 # Downgrade Ubuntu to 20.04 to fix missing Python 3.6 strategy: matrix: - python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v2 diff --git a/setup.py b/setup.py index 50f1f276..5ee8f8be 100644 --- a/setup.py +++ b/setup.py @@ -109,6 +109,7 @@ setup( "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Programming Language :: Python :: Implementation :: CPython", ], ) From 08ac80e451ab76394c5afa60e63926096ae139b2 Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 18 Oct 2023 14:53:25 +1000 Subject: [PATCH 06/11] Upgrade sentry and psutil dependencies --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9f6beade..416969f9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,8 +6,8 @@ aiofiles>=23.2.1,<23.3; python_version >= '3.7' aiofiles==0.8.0; python_version < '3.7' # v0.8.0 is the last version to support Python 3.6 Jinja2>=3.1.2,<3.2; python_version >= '3.7' Jinja2==3.0.3; python_version < '3.7' # v3.0.3 is the last version to support Python 3.6 -sentry-sdk==1.31.0,<1.32 -psutil==5.9.5 +sentry-sdk==1.32.0,<1.33 +psutil==5.9.6 async-timeout>=4.0.2,<4.1 distro>=1.8.0 py-cpuinfo>=9.0.0,<10.0 From 5ff3043fb4a0ccc6a3fbdbd0bf8f426fcffcc62a Mon Sep 17 00:00:00 2001 From: grossmj Date: Wed, 18 Oct 2023 17:45:17 +1000 Subject: [PATCH 07/11] Sync appliances --- gns3server/appliances/almalinux.gns3a | 3 +- gns3server/appliances/alpine-linux-virt.gns3a | 14 +++ gns3server/appliances/alpine-linux.gns3a | 1 + gns3server/appliances/bird2.gns3a | 2 +- gns3server/appliances/centos-cloud.gns3a | 18 +-- gns3server/appliances/chromium.gns3a | 1 + gns3server/appliances/cloudrouter.gns3a | 1 + gns3server/appliances/coreos.gns3a | 1 + gns3server/appliances/cumulus-vx.gns3a | 1 + gns3server/appliances/debian.gns3a | 59 +++------ gns3server/appliances/empty-vm.gns3a | 112 ++++++++++++++++++ .../appliances/extreme-networks-voss.gns3a | 1 + gns3server/appliances/firefox.gns3a | 1 + gns3server/appliances/fortianalyzer.gns3a | 1 + .../appliances/fortiauthenticator.gns3a | 1 + gns3server/appliances/forticache.gns3a | 1 + gns3server/appliances/fortigate.gns3a | 1 + gns3server/appliances/fortimail.gns3a | 1 + gns3server/appliances/fortimanager.gns3a | 1 + gns3server/appliances/fortisandbox.gns3a | 1 + .../appliances/fortisiem-super_worker.gns3a | 1 + gns3server/appliances/fortiweb.gns3a | 1 + gns3server/appliances/freebsd.gns3a | 1 + gns3server/appliances/hp-vsr1001.gns3a | 1 + gns3server/appliances/kerio-connect.gns3a | 1 + gns3server/appliances/kerio-control.gns3a | 1 + gns3server/appliances/kerio-operator.gns3a | 1 + gns3server/appliances/mikrotik-chr.gns3a | 30 +++++ gns3server/appliances/ntopng.gns3a | 1 + gns3server/appliances/op5-monitor.gns3a | 1 + gns3server/appliances/opensuse.gns3a | 1 + gns3server/appliances/openvswitch.gns3a | 1 + gns3server/appliances/openwrt.gns3a | 15 +++ .../appliances/oracle-linux-cloud.gns3a | 45 +++++++ gns3server/appliances/ostinato.gns3a | 1 + gns3server/appliances/packetfence-zen.gns3a | 1 + gns3server/appliances/rhel.gns3a | 2 +- gns3server/appliances/rockylinux.gns3a | 31 +++-- gns3server/appliances/security-onion.gns3a | 1 + gns3server/appliances/ubuntu-cloud.gns3a | 1 + gns3server/appliances/ubuntu-docker.gns3a | 1 + gns3server/appliances/ubuntu-gui.gns3a | 1 + gns3server/appliances/untangle.gns3a | 1 + gns3server/appliances/vyos.gns3a | 26 +++- gns3server/appliances/windows.gns3a | 1 + gns3server/appliances/windows_server.gns3a | 1 + 46 files changed, 325 insertions(+), 66 deletions(-) diff --git a/gns3server/appliances/almalinux.gns3a b/gns3server/appliances/almalinux.gns3a index 56e3f9cf..f0ad0526 100644 --- a/gns3server/appliances/almalinux.gns3a +++ b/gns3server/appliances/almalinux.gns3a @@ -21,7 +21,8 @@ "hda_disk_interface": "sata", "arch": "x86_64", "console_type": "telnet", - "kvm": "allow" + "kvm": "allow", + "options": "-cpu host -nographic" }, "images": [ { diff --git a/gns3server/appliances/alpine-linux-virt.gns3a b/gns3server/appliances/alpine-linux-virt.gns3a index fcfc7bf6..8b5752ba 100644 --- a/gns3server/appliances/alpine-linux-virt.gns3a +++ b/gns3server/appliances/alpine-linux-virt.gns3a @@ -25,6 +25,14 @@ "kvm": "allow" }, "images": [ + { + "filename": "alpine-virt-3.18.4.qcow2", + "version": "3.18.4", + "md5sum": "99d393c16c870e12c4215aadd82ca998", + "filesize": 51066880, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/alpine-virt-3.18.4.qcow2/download" + }, { "filename": "alpine-virt-3.16.img", "version": "3.16", @@ -35,6 +43,12 @@ } ], "versions": [ + { + "name": "3.18.4", + "images": { + "hda_disk_image": "alpine-virt-3.18.4.qcow2" + } + }, { "name": "3.16", "images": { diff --git a/gns3server/appliances/alpine-linux.gns3a b/gns3server/appliances/alpine-linux.gns3a index 4ad16883..c5a207d0 100644 --- a/gns3server/appliances/alpine-linux.gns3a +++ b/gns3server/appliances/alpine-linux.gns3a @@ -5,6 +5,7 @@ "description": "Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.", "vendor_name": "Alpine Linux Development Team", "vendor_url": "http://alpinelinux.org", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Alpine Linux.png", "documentation_url": "http://wiki.alpinelinux.org", "product_name": "Alpine Linux", "registry_version": 4, diff --git a/gns3server/appliances/bird2.gns3a b/gns3server/appliances/bird2.gns3a index 4d573e11..4a076d78 100644 --- a/gns3server/appliances/bird2.gns3a +++ b/gns3server/appliances/bird2.gns3a @@ -29,7 +29,7 @@ "md5sum": "435218a2e90cba921cc7fde1d64a9419", "filesize": 287965184, "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", - "direct_download_url": "http://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.0.12.qcow2" + "direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.0.12.qcow2" } ], "versions": [ diff --git a/gns3server/appliances/centos-cloud.gns3a b/gns3server/appliances/centos-cloud.gns3a index c9666c40..74c645ff 100644 --- a/gns3server/appliances/centos-cloud.gns3a +++ b/gns3server/appliances/centos-cloud.gns3a @@ -12,7 +12,7 @@ "status": "stable", "maintainer": "GNS3 Team", "maintainer_email": "developers@gns3.net", - "usage": "Username: centos\nPassword: centos", + "usage": "Username: centos or cloud-user\nPassword: centos", "port_name_format": "Ethernet{0}", "qemu": { "adapter_type": "virtio-net-pci", @@ -23,16 +23,16 @@ "console_type": "telnet", "boot_priority": "c", "kvm": "require", - "options": "-nographic" + "options": "-cpu host -nographic" }, "images": [ { - "filename": "CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2", - "version": "Stream-9 (20230727.1)", - "md5sum": "b66b7e4951cb5491ae44d5616d56b7cf", - "filesize": 1128764416, + "filename": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2", + "version": "Stream-9 (20230704.1)", + "md5sum": "e04511e019325a97837edd9eafe02b48", + "filesize": 1087868416, "download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images", - "direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2" + "direct_download_url": "https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2" }, { "filename": "CentOS-Stream-GenericCloud-8-20230710.0.x86_64.qcow2", @@ -77,9 +77,9 @@ ], "versions": [ { - "name": "Stream-9 (20230727.1)", + "name": "Stream-9 (20230704.1)", "images": { - "hda_disk_image": "CentOS-Stream-GenericCloud-9-20230727.1.x86_64.qcow2", + "hda_disk_image": "CentOS-Stream-GenericCloud-9-20230704.1.x86_64.qcow2", "cdrom_image": "centos-cloud-init-data.iso" } }, diff --git a/gns3server/appliances/chromium.gns3a b/gns3server/appliances/chromium.gns3a index 1b3d0e80..e9b8d140 100644 --- a/gns3server/appliances/chromium.gns3a +++ b/gns3server/appliances/chromium.gns3a @@ -5,6 +5,7 @@ "description": "The chromium browser", "vendor_name": "Chromium", "vendor_url": "https://www.chromium.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Chromium.jpg", "product_name": "Chromium", "registry_version": 4, "status": "stable", diff --git a/gns3server/appliances/cloudrouter.gns3a b/gns3server/appliances/cloudrouter.gns3a index 20c72ca2..2ee29033 100644 --- a/gns3server/appliances/cloudrouter.gns3a +++ b/gns3server/appliances/cloudrouter.gns3a @@ -5,6 +5,7 @@ "description": "The CloudRouter Project is a collaborative open source project focused on developing a powerful, easy to use router designed for the cloud.\nCompute resources are rapidly migrating from physical infrastructure to a combination of physical, virtual and cloud environments. A similar transition is emerging in the networking space, with network control logic shifting from proprietary hardware-based platforms to open source software-based platforms. CloudRouter is a software-based router distribution designed to run on physical, virtual and cloud environments, supporting software-defined networking infrastructure. It includes the features of traditional hardware routers, as well as support for emerging technologies such as containers and software-defined interconnection. CloudRouter aims to facilitate migration to the cloud without giving up control over network routing and governance.", "vendor_name": "CloudRouter Community", "vendor_url": "https://cloudrouter.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/CloudRouter.png", "documentation_url": "https://cloudrouter.atlassian.net/wiki/display/CPD/CloudRouter+Project+Information", "product_name": "CloudRouter", "product_url": "https://cloudrouter.org/about/", diff --git a/gns3server/appliances/coreos.gns3a b/gns3server/appliances/coreos.gns3a index cdd5d0cf..16dc7d45 100644 --- a/gns3server/appliances/coreos.gns3a +++ b/gns3server/appliances/coreos.gns3a @@ -5,6 +5,7 @@ "description": "CoreOS is designed for security, consistency, and reliability. Instead of installing packages via yum or apt, CoreOS uses Linux containers to manage your services at a higher level of abstraction. A single service's code and all dependencies are packaged within a container that can be run on one or many CoreOS machines.", "vendor_name": "CoreOS, Inc", "vendor_url": "https://coreos.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/CoreOS.png", "documentation_url": "https://coreos.com/docs/", "product_name": "CoreOS", "registry_version": 4, diff --git a/gns3server/appliances/cumulus-vx.gns3a b/gns3server/appliances/cumulus-vx.gns3a index 8183d425..9732c282 100644 --- a/gns3server/appliances/cumulus-vx.gns3a +++ b/gns3server/appliances/cumulus-vx.gns3a @@ -5,6 +5,7 @@ "description": "Cumulus VX is a community-supported virtual appliance that enables cloud admins and network engineers to preview and test Cumulus Networks technology at zero cost. You can build sandbox environments to learn Open Networking concepts, prototype network operations and script & develop applications risk-free. With Cumulus VX, you can get started with Open Networking at your pace, on your time, and in your environment!", "vendor_name": "Cumulus Network", "vendor_url": "https://www.cumulusnetworks.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Cumulus VX.jpg", "documentation_url": "http://docs.cumulusnetworks.com/", "product_name": "Cumulus VX", "product_url": "https://cumulusnetworks.com/cumulus-vx/", diff --git a/gns3server/appliances/debian.gns3a b/gns3server/appliances/debian.gns3a index bb3909f4..91525a42 100644 --- a/gns3server/appliances/debian.gns3a +++ b/gns3server/appliances/debian.gns3a @@ -10,7 +10,7 @@ "status": "experimental", "maintainer": "Bernhard Ehlers", "maintainer_email": "dev-ehlers@mailbox.org", - "usage": "Username:\tdebian\nPassword:\tdebian\nTo become root, use \"sudo -s\".\n\nNetwork configuration:\n- In \"/etc/network/interfaces\" comment out \"source-directory /run/network/interfaces.d\"\n- Remove \"/etc/network/interfaces.d/50-cloud-init\"\n- Create \"/etc/network/interfaces.d/10-ens4\", for example:\n\nauto ens4\n#iface ens4 inet dhcp\niface ens4 inet static\n address 10.1.1.100/24\n gateway 10.1.1.1\n dns-nameservers 10.1.1.1\n", + "usage": "Username:\tdebian\nPassword:\tdebian\nTo become root, use \"sudo -s\".\n", "symbol": "linux_guest.svg", "port_name_format": "ens{port4}", "qemu": { @@ -24,58 +24,33 @@ }, "images": [ { - "filename": "debian-12-genericcloud-amd64-20230723-1450.qcow2", - "version": "12.1", - "md5sum": "6d1efcaa206de01eeeb590d773421c5c", - "filesize": 280166400, - "download_url": "https://cloud.debian.org/images/cloud/bookworm/", - "direct_download_url": "https://cloud.debian.org/images/cloud/bookworm/20230723-1450/debian-12-genericcloud-amd64-20230723-1450.qcow2" + "filename": "debian-12.2.qcow2", + "version": "12.2", + "md5sum": "adf7716ec4a4e4e9e5ccfc7a1d7bd103", + "filesize": 286654464, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.2.qcow2" }, { - "filename": "debian-11-genericcloud-amd64-20230601-1398.qcow2", - "version": "11.7", - "md5sum": "1b24a841dc5ca9bcf40b94ad4b4775d4", - "filesize": 259063808, - "download_url": "https://cloud.debian.org/images/cloud/bullseye/", - "direct_download_url": "https://cloud.debian.org/images/cloud/bullseye/20230601-1398/debian-11-genericcloud-amd64-20230601-1398.qcow2" - }, - { - "filename": "debian-10-genericcloud-amd64-20230601-1398.qcow2", - "version": "10.13", - "md5sum": "ca799fb4011712f4686c422c1a9731cf", - "filesize": 228130816, - "download_url": "https://cloud.debian.org/images/cloud/buster/", - "direct_download_url": "https://cloud.debian.org/images/cloud/buster/20230601-1398/debian-10-genericcloud-amd64-20230601-1398.qcow2" - }, - { - "filename": "debian-cloud-init-data.iso", - "version": "1.0", - "md5sum": "43f6bf70c178a9d3c270b5c24971e578", - "filesize": 374784, - "download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/Debian", - "direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/Debian/debian-cloud-init-data.iso" + "filename": "debian-11.8.qcow2", + "version": "11.8", + "md5sum": "95bf44716c7fa1a1da290fd3c98591f2", + "filesize": 264933376, + "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/", + "direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-11.8.qcow2" } ], "versions": [ { - "name": "12.1", - "images": { - "hda_disk_image": "debian-12-genericcloud-amd64-20230723-1450.qcow2", - "cdrom_image": "debian-cloud-init-data.iso" - } - }, - { - "name": "11.7", + "name": "12.2", "images": { - "hda_disk_image": "debian-11-genericcloud-amd64-20230601-1398.qcow2", - "cdrom_image": "debian-cloud-init-data.iso" + "hda_disk_image": "debian-12.2.qcow2" } }, { - "name": "10.13", + "name": "11.8", "images": { - "hda_disk_image": "debian-10-genericcloud-amd64-20230601-1398.qcow2", - "cdrom_image": "debian-cloud-init-data.iso" + "hda_disk_image": "debian-11.8.qcow2" } } ] diff --git a/gns3server/appliances/empty-vm.gns3a b/gns3server/appliances/empty-vm.gns3a index 52f73331..d0575449 100644 --- a/gns3server/appliances/empty-vm.gns3a +++ b/gns3server/appliances/empty-vm.gns3a @@ -33,6 +33,22 @@ "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty8G.qcow2/download" }, + { + "filename": "empty10G.qcow2", + "version": "10G", + "md5sum": "1d4589798b8a63a6afa7150492ca3193", + "filesize": 196768, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty10G.qcow2/download" + }, + { + "filename": "empty20G.qcow2", + "version": "20G", + "md5sum": "df9e4a1169c597117fd8999f0bc3de91", + "filesize": 196928, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty20G.qcow2/download" + }, { "filename": "empty30G.qcow2", "version": "30G", @@ -41,6 +57,22 @@ "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty30G.qcow2/download" }, + { + "filename": "empty40G.qcow2", + "version": "40G", + "md5sum": "4a9e538aa1946a27d91a8d53a8dbc546", + "filesize": 197248, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty50G.qcow2/download" + }, + { + "filename": "empty50G.qcow2", + "version": "50G", + "md5sum": "9a17e67e685907fbc0c351689ab289b2", + "filesize": 197408, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty40G.qcow2/download" + }, { "filename": "empty100G.qcow2", "version": "100G", @@ -49,6 +81,14 @@ "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty100G.qcow2/download" }, + { + "filename": "empty150G.qcow2", + "version": "150G", + "md5sum": "7db590ad39f84fdfc91516d162af26f6", + "filesize": 199008, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty150G.qcow2/download" + }, { "filename": "empty200G.qcow2", "version": "200G", @@ -56,6 +96,30 @@ "filesize": 200192, "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty200G.qcow2/download" + }, + { + "filename": "empty250G.qcow2", + "version": "250G", + "md5sum": "7d7272f02edd189aafd81f9c29a35255", + "filesize": 200608, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty250G.qcow2/download" + }, + { + "filename": "empty500G.qcow2", + "version": "500G", + "md5sum": "658c825441b9b3080ba00f9eec002eaa", + "filesize": 204608, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty500G.qcow2/download" + }, + { + "filename": "empty1T.qcow2", + "version": "1T", + "md5sum": "34997a22f618827aaa62bcfd5b8ce2bb", + "filesize": 212992, + "download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/", + "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Empty%20Qemu%20disk/empty1T.qcow2/download" } ], "versions": [ @@ -65,23 +129,71 @@ "hda_disk_image": "empty8G.qcow2" } }, + { + "name": "10G", + "images": { + "hda_disk_image": "empty10G.qcow2" + } + }, + { + "name": "20G", + "images": { + "hda_disk_image": "empty20G.qcow2" + } + }, { "name": "30G", "images": { "hda_disk_image": "empty30G.qcow2" } }, + { + "name": "40G", + "images": { + "hda_disk_image": "empty40G.qcow2" + } + }, + { + "name": "50G", + "images": { + "hda_disk_image": "empty50G.qcow2" + } + }, { "name": "100G", "images": { "hda_disk_image": "empty100G.qcow2" } }, + { + "name": "150G", + "images": { + "hda_disk_image": "empty150G.qcow2" + } + }, { "name": "200G", "images": { "hda_disk_image": "empty200G.qcow2" } + }, + { + "name": "250G", + "images": { + "hda_disk_image": "empty250G.qcow2" + } + }, + { + "name": "500G", + "images": { + "hda_disk_image": "empty500G.qcow2" + } + }, + { + "name": "1T", + "images": { + "hda_disk_image": "empty1T.qcow2" + } } ] } diff --git a/gns3server/appliances/extreme-networks-voss.gns3a b/gns3server/appliances/extreme-networks-voss.gns3a index abe36275..a5ef0a64 100644 --- a/gns3server/appliances/extreme-networks-voss.gns3a +++ b/gns3server/appliances/extreme-networks-voss.gns3a @@ -5,6 +5,7 @@ "description": "The VOSS VM is a software emulation of a VSP8K switch.", "vendor_name": "Extreme Networks", "vendor_url": "http://www.extremenetworks.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/VOSS VM.jpeg", "documentation_url": "http://www.extremenetworks.com/support/documentation", "product_name": "VOSS_VM", "registry_version": 4, diff --git a/gns3server/appliances/firefox.gns3a b/gns3server/appliances/firefox.gns3a index 8e43cfd6..071f6984 100644 --- a/gns3server/appliances/firefox.gns3a +++ b/gns3server/appliances/firefox.gns3a @@ -5,6 +5,7 @@ "description": "A light Linux based on TinyCore Linux with Firefox preinstalled", "vendor_name": "Mozilla Foundation", "vendor_url": "http://www.mozilla.org", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Firefox.png", "documentation_url": "https://support.mozilla.org", "product_name": "Firefox", "product_url": "https://www.mozilla.org/firefox", diff --git a/gns3server/appliances/fortianalyzer.gns3a b/gns3server/appliances/fortianalyzer.gns3a index 57f14c9b..58486e57 100644 --- a/gns3server/appliances/fortianalyzer.gns3a +++ b/gns3server/appliances/fortianalyzer.gns3a @@ -5,6 +5,7 @@ "description": "FortiAnalyzer Network Security Logging, Analysis, and Reporting Appliances securely aggregate log data from Fortinet Security Appliances. A comprehensive suite of easily customable reports allows you to quickly analyze and visualize network threats, inefficiencies and usage.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiAnalyzer.jpg", "documentation_url": "http://docs.fortinet.com/fortianalyzer/", "product_name": "FortiAnalyzer", "product_url": "https://www.fortinet.com/products-services/products/management-reporting/fortianalyzer.html", diff --git a/gns3server/appliances/fortiauthenticator.gns3a b/gns3server/appliances/fortiauthenticator.gns3a index 24ec0f4b..6ce0bb96 100644 --- a/gns3server/appliances/fortiauthenticator.gns3a +++ b/gns3server/appliances/fortiauthenticator.gns3a @@ -5,6 +5,7 @@ "description": "FortiAuthenticator user identity management appliances strengthen enterprise security by simplifying and centralizing the management and storage of user identity information.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiAuthenticator.jpg", "documentation_url": "http://docs.fortinet.com/fortiauthenticator/admin-guides", "product_name": "FortiAuthenticator", "product_url": "https://www.fortinet.com/products/identity-access-management/fortiauthenticator.html", diff --git a/gns3server/appliances/forticache.gns3a b/gns3server/appliances/forticache.gns3a index c41ae745..9638b0fc 100644 --- a/gns3server/appliances/forticache.gns3a +++ b/gns3server/appliances/forticache.gns3a @@ -5,6 +5,7 @@ "description": "FortiCache VM high performance Web Caching virtual appliances address bandwidth saturation, high latency, and poor performance caused by caching popular internet content locally for carriers, service providers, enterprises and educational networks. FortiCache VM appliances reduce the cost and impact of cached content on the network, while increasing performance and end- user satisfaction by improving the speed of delivery of popular repeated content.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiCache.jpg", "documentation_url": "http://docs.fortinet.com/forticache/admin-guides", "product_name": "FortiCache", "product_url": "https://www.fortinet.com/products-services/products/wan-appliances/forticache.html", diff --git a/gns3server/appliances/fortigate.gns3a b/gns3server/appliances/fortigate.gns3a index c730d176..9f85fd5e 100644 --- a/gns3server/appliances/fortigate.gns3a +++ b/gns3server/appliances/fortigate.gns3a @@ -5,6 +5,7 @@ "description": "FortiGate Virtual Appliance offers the same level of advanced threat prevention features like the physical appliances in private, hybrid and public cloud deployment.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiGate.jpg", "documentation_url": "http://docs.fortinet.com/p/inside-fortios", "product_name": "FortiGate", "product_url": "http://www.fortinet.com/products/fortigate/virtual-appliances.html", diff --git a/gns3server/appliances/fortimail.gns3a b/gns3server/appliances/fortimail.gns3a index 774b17b5..a29f740d 100644 --- a/gns3server/appliances/fortimail.gns3a +++ b/gns3server/appliances/fortimail.gns3a @@ -5,6 +5,7 @@ "description": "FortiMail is a complete Secure Email Gateway offering suitable for any size organization. It provides a single solution to protect against inbound attacks - including advanced malware -, as well as outbound threats and data loss with a wide range of top-rated security capabilities.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiMail.jpg", "documentation_url": "http://docs.fortinet.com/fortimail/admin-guides", "product_name": "FortiMail", "product_url": "http://www.fortinet.com/products/fortimail/index.html", diff --git a/gns3server/appliances/fortimanager.gns3a b/gns3server/appliances/fortimanager.gns3a index a8333452..636bb14d 100644 --- a/gns3server/appliances/fortimanager.gns3a +++ b/gns3server/appliances/fortimanager.gns3a @@ -5,6 +5,7 @@ "description": "FortiManager Security Management appliances allow you to centrally manage any number of Fortinet Network Security devices, from several to thousands, including FortiGate, FortiWiFi, and FortiCarrier.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiManager.jpg", "documentation_url": "http://docs.fortinet.com/p/inside-fortios", "product_name": "FortiManager", "product_url": "http://www.fortinet.com/products/fortimanager/virtual-security-management.html", diff --git a/gns3server/appliances/fortisandbox.gns3a b/gns3server/appliances/fortisandbox.gns3a index 7173fba2..ddc3f055 100644 --- a/gns3server/appliances/fortisandbox.gns3a +++ b/gns3server/appliances/fortisandbox.gns3a @@ -5,6 +5,7 @@ "description": "Today's threats are increasingly sophisticated and often bypass traditional malware security by masking their malicious activity. A sandbox augments your security architecture by validating threats in a separate, secure environment. FortiSandbox offers a powerful combination of advanced detection, automated mitigation, actionable insight, and flexible deployment to stop targeted attacks and subsequent data loss. It's also a key component of our Advanced Threat Protection solution.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiSandbox.jpg", "documentation_url": "http://docs.fortinet.com/fortisandbox/admin-guides", "product_name": "FortiSandbox", "product_url": "https://www.fortinet.com/products/sandbox/fortisandbox.html", diff --git a/gns3server/appliances/fortisiem-super_worker.gns3a b/gns3server/appliances/fortisiem-super_worker.gns3a index 4500c4bf..fd066541 100644 --- a/gns3server/appliances/fortisiem-super_worker.gns3a +++ b/gns3server/appliances/fortisiem-super_worker.gns3a @@ -5,6 +5,7 @@ "description": "Breaches to network security continue to occur across all industry verticals, even to the most respected brands. The time it takes to discover, isolate, and remediate the incident continues to be measured in hundreds of days-having material impacts on security and compliance standards. It is no wonder that many organizations are struggling. As recent surveys have shown, enterprises have an average of 32 different vendors' devices in their network, with no automated ability to cross-correlate the data that each is collecting. It is also easy to see why organizations are strapped for the cyber security personnel they need to manage all the data in these complex environments.\n\nFrom its inception, FortiSIEM was built to reduce complexity in managing network and security operations. FortiSIEM provides organizations of all sizes with a comprehensive, holistic, and scalable solution for managing security, performance, and compliance from IoT to the cloud.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiSIEM.jpg", "documentation_url": "http://docs.fortinet.com/fortisiem/admin-guides", "product_name": "FortiSIEM", "product_url": "https://www.fortinet.com/products/siem/fortisiem.html", diff --git a/gns3server/appliances/fortiweb.gns3a b/gns3server/appliances/fortiweb.gns3a index 451ce1dc..1c322a6b 100644 --- a/gns3server/appliances/fortiweb.gns3a +++ b/gns3server/appliances/fortiweb.gns3a @@ -5,6 +5,7 @@ "description": "FortiWeb Web Application Firewalls provide specialized, layered web application threat protection for medium/large enterprises, application service providers, and SaaS providers.", "vendor_name": "Fortinet", "vendor_url": "http://www.fortinet.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FortiWeb.jpg", "documentation_url": "http://docs.fortinet.com/fortiweb", "product_name": "FortiWeb", "product_url": "http://www.fortinet.com/products/fortiweb/index.html", diff --git a/gns3server/appliances/freebsd.gns3a b/gns3server/appliances/freebsd.gns3a index ad1821d5..c85f8f95 100644 --- a/gns3server/appliances/freebsd.gns3a +++ b/gns3server/appliances/freebsd.gns3a @@ -5,6 +5,7 @@ "description": "FreeBSD is an advanced computer operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.", "vendor_name": "FreeBSD", "vendor_url": "http://www.freebsd.org", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/FreeBSD.jpg", "documentation_url": "https://www.freebsd.org/docs.html", "product_name": "FreeBSD", "registry_version": 4, diff --git a/gns3server/appliances/hp-vsr1001.gns3a b/gns3server/appliances/hp-vsr1001.gns3a index ccbc2c9c..5c876b52 100644 --- a/gns3server/appliances/hp-vsr1001.gns3a +++ b/gns3server/appliances/hp-vsr1001.gns3a @@ -5,6 +5,7 @@ "description": "The HPE VSR1000 Virtual Services Router Series is a software application, running on a server, which provides functionality similar to that of a physical router: robust routing between networked devices using a number of popular routing protocols. It also delivers the critical network services associated with today's enterprise routers such as VPN gateway, firewall and other security and traffic management functions.\n\nThe virtual services router (VSR) application runs on a hypervqcor on the server, and supports VMware vSphere and Linux KVM hypervqcors. From one to eight virtual CPUs are supported, depending on license.\n\nBecause the VSR1000 Series application runs the same HPE Comware version 7 operating system as HPE switches and routers, it enables significant operational savings. And being virtual, additional agility and ease of deployment is realized, as resources on the VSR can be dynamically allocated and upgraded upon demand as performance requirements grow.\n\nA variety of deployment models are supported including enterprise branch CPE routing, and cloud offload for small to medium workloads.", "vendor_name": "HPE", "vendor_url": "http://www.hpe.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/HPE VSR1001.jpg", "documentation_url": "https://support.hpe.com/hpesc/public/home/documentHome?document_type=135&sp4ts.oid=5195141", "product_name": "VSR1001", "product_url": "https://www.hpe.com/us/en/product-catalog/networking/networking-routers/pip.hpe-flexnetwork-vsr1000-virtual-services-router-series.5443163.html", diff --git a/gns3server/appliances/kerio-connect.gns3a b/gns3server/appliances/kerio-connect.gns3a index 0e9f168e..98da7e62 100644 --- a/gns3server/appliances/kerio-connect.gns3a +++ b/gns3server/appliances/kerio-connect.gns3a @@ -5,6 +5,7 @@ "description": "Kerio Connect makes email, calendars, contacts and task management easy and affordable. With Kerio Connect, you have immediate, secure access to your communications anytime, anywhere, on any device - without complexity or expensive overhead.", "vendor_name": "Kerio Technologies Inc.", "vendor_url": "http://www.kerio.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Kerio Connect.jpg", "documentation_url": "http://kb.kerio.com/product/kerio-connect/", "product_name": "Kerio Connect", "product_url": "http://www.kerio.com/products/kerio-connect", diff --git a/gns3server/appliances/kerio-control.gns3a b/gns3server/appliances/kerio-control.gns3a index 440a0a46..3a64daa1 100644 --- a/gns3server/appliances/kerio-control.gns3a +++ b/gns3server/appliances/kerio-control.gns3a @@ -5,6 +5,7 @@ "description": "Protect your network from viruses, malware and malicious activity with Kerio Control, the easy-to-administer yet powerful all-in-one security solution.\nKerio Control brings together next-generation firewall capabilities - including a network firewall and router, intrusion detection and prevention (IPS), gateway anti-virus, VPN, and web content and application filtering. These comprehensive capabilities and unmatched deployment flexibility make Kerio Control the ideal choice for small and mid-sized businesses.", "vendor_name": "Kerio Technologies Inc.", "vendor_url": "http://www.kerio.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Kerio Control.jpg", "documentation_url": "http://kb.kerio.com/product/kerio-control/", "product_name": "Kerio Control", "product_url": "http://www.kerio.com/products/kerio-control", diff --git a/gns3server/appliances/kerio-operator.gns3a b/gns3server/appliances/kerio-operator.gns3a index 3733c12b..332c2ef4 100644 --- a/gns3server/appliances/kerio-operator.gns3a +++ b/gns3server/appliances/kerio-operator.gns3a @@ -5,6 +5,7 @@ "description": "Stay connected to your customers and colleagues without being chained to your desk.\nKerio Operator is a VoIP based phone system that provides powerful yet affordable enterprise-class voice and video communication capabilities for small and mid-sized businesses globally.", "vendor_name": "Kerio Technologies Inc.", "vendor_url": "http://www.kerio.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Kerio Operator.jpg", "documentation_url": "http://kb.kerio.com/product/kerio-operator/", "product_name": "Kerio Operator", "product_url": "http://www.kerio.com/products/kerio-operator", diff --git a/gns3server/appliances/mikrotik-chr.gns3a b/gns3server/appliances/mikrotik-chr.gns3a index b3970598..54806d22 100644 --- a/gns3server/appliances/mikrotik-chr.gns3a +++ b/gns3server/appliances/mikrotik-chr.gns3a @@ -27,6 +27,15 @@ "options": "-nographic" }, "images": [ + { + "filename": "chr-7.11.2.img", + "version": "7.11.2", + "md5sum": "fbffd097d2c5df41fc3335c3977f782c", + "filesize": 134217728, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download.mikrotik.com/routeros/7.11.2/chr-7.11.2.img.zip", + "compression": "zip" + }, { "filename": "chr-7.10.1.img", "version": "7.10.1", @@ -72,6 +81,15 @@ "direct_download_url": "https://download.mikrotik.com/routeros/7.1.5/chr-7.1.5.img.zip", "compression": "zip" }, + { + "filename": "chr-6.49.10.img", + "version": "6.49.10", + "md5sum": "49ae1ecfe310aea1df37b824aa13cf84", + "filesize": 67108864, + "download_url": "http://www.mikrotik.com/download", + "direct_download_url": "https://download.mikrotik.com/routeros/6.49.10/chr-6.49.10.img.zip", + "compression": "zip" + }, { "filename": "chr-6.49.6.img", "version": "6.49.6", @@ -92,6 +110,12 @@ } ], "versions": [ + { + "name": "7.11.2", + "images": { + "hda_disk_image": "chr-7.11.2.img" + } + }, { "name": "7.10.1", "images": { @@ -122,6 +146,12 @@ "hda_disk_image": "chr-7.1.5.img" } }, + { + "name": "6.49.10", + "images": { + "hda_disk_image": "chr-6.49.10.img" + } + }, { "name": "6.49.6", "images": { diff --git a/gns3server/appliances/ntopng.gns3a b/gns3server/appliances/ntopng.gns3a index c54cc217..3d13352b 100644 --- a/gns3server/appliances/ntopng.gns3a +++ b/gns3server/appliances/ntopng.gns3a @@ -5,6 +5,7 @@ "description": "ntopng is the next generation version of the original ntop, a network traffic probe that shows the network usage, similar to what the popular top Unix command does. ntopng is based on libpcap and it has been written in a portable way in order to virtually run on every Unix platform, MacOSX and on Windows as well. ntopng users can use a a web browser to navigate through ntop (that acts as a web server) traffic information and get a dump of the network status. In the latter case, ntopng can be seen as a simple RMON-like agent with an embedded web interface.", "vendor_name": "ntop", "vendor_url": "https://www.ntop.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/ntopng.jpg", "documentation_url": "https://www.ntop.org/guides/ntopng/", "product_name": "ntopng", "registry_version": 4, diff --git a/gns3server/appliances/op5-monitor.gns3a b/gns3server/appliances/op5-monitor.gns3a index 32881514..9bfeab89 100644 --- a/gns3server/appliances/op5-monitor.gns3a +++ b/gns3server/appliances/op5-monitor.gns3a @@ -5,6 +5,7 @@ "description": "Over 200,000 IT staff across medium to large enterprises worldwide are currently using OP5 Monitor as their preferred network monitoring software.\nOP5 Monitor allows you to take control of your IT, enabling your network to be more responsive, more reliable and even faster than ever before. With unparalleled scalability, OP5 Monitor grows as your company grows, so you'll understand why we say this is the last network monitor you'll ever need to purchase.", "vendor_name": "OP5", "vendor_url": "https://www.op5.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/OP5 Monitor.jpg", "documentation_url": "https://kb.op5.com/display/MAN/Documentation+Home#sthash.pohb5bis.dpbs", "product_name": "OP5 Monitor", "product_url": "https://www.op5.com/op5-monitor/", diff --git a/gns3server/appliances/opensuse.gns3a b/gns3server/appliances/opensuse.gns3a index 8c1d8731..b254cfd9 100644 --- a/gns3server/appliances/opensuse.gns3a +++ b/gns3server/appliances/opensuse.gns3a @@ -5,6 +5,7 @@ "description": "openSUSE is a free and Linux-based operating system for PC, Laptop or Server. The openSUSE project is a community program sponsored by Novell. It is a general purpose operating system built on top of the Linux kernel, developed by the community-supported openSUSE Project and sponsored by SUSE and a number of other companies.", "vendor_name": "SUSE LLC.", "vendor_url": "https://www.opensuse.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/openSUSE.png", "documentation_url": "https://en.opensuse.org/Main_Page", "product_name": "openSUSE", "product_url": "https://www.opensuse.org/#Leap", diff --git a/gns3server/appliances/openvswitch.gns3a b/gns3server/appliances/openvswitch.gns3a index 14c35d2c..f3e19b9f 100644 --- a/gns3server/appliances/openvswitch.gns3a +++ b/gns3server/appliances/openvswitch.gns3a @@ -5,6 +5,7 @@ "description": "Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (e.g. NetFlow, sFlow, IPFIX, RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to support distribution across multiple physical servers similar to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.", "vendor_name": "Open vSwitch", "vendor_url": "http://openvswitch.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Open vSwitch.jpg", "documentation_url": "http://openvswitch.org/support/", "product_name": "Open vSwitch", "product_url": "http://openvswitch.org/", diff --git a/gns3server/appliances/openwrt.gns3a b/gns3server/appliances/openwrt.gns3a index b4a7a697..add7eb58 100644 --- a/gns3server/appliances/openwrt.gns3a +++ b/gns3server/appliances/openwrt.gns3a @@ -23,6 +23,15 @@ "kvm": "allow" }, "images": [ + { + "filename": "openwrt-23.05.0-x86-64-generic-ext4-combined.img", + "version": "23.05.0", + "md5sum": "8d53c7aa2605a8848b0b2ca759fc924f", + "filesize": 126353408, + "download_url": "https://downloads.openwrt.org/releases/23.05.0/targets/x86/64/", + "direct_download_url": "https://downloads.openwrt.org/releases/23.05.0/targets/x86/64/openwrt-23.05.0-x86-64-generic-ext4-combined.img.gz", + "compression": "gzip" + }, { "filename": "openwrt-22.03.0-x86-64-generic-ext4-combined.img", "version": "22.03.0", @@ -214,6 +223,12 @@ } ], "versions": [ + { + "name": "23.05.0", + "images": { + "hda_disk_image": "openwrt-23.05.0-x86-64-generic-ext4-combined.img" + } + }, { "name": "22.03.0", "images": { diff --git a/gns3server/appliances/oracle-linux-cloud.gns3a b/gns3server/appliances/oracle-linux-cloud.gns3a index a9709bcc..f4517beb 100644 --- a/gns3server/appliances/oracle-linux-cloud.gns3a +++ b/gns3server/appliances/oracle-linux-cloud.gns3a @@ -26,6 +26,14 @@ "options": "-cpu host -nographic" }, "images": [ + { + "filename": "OL9U2_x86_64-kvm-b197.qcow", + "version": "9.2", + "md5sum": "2ff3d0bc8a243ad89c96215f303f1c73", + "filesize": 560791552, + "download_url": "https://yum.oracle.com/oracle-linux-templates.html", + "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u2/x86_64/OL9U2_x86_64-kvm-b197.qcow" + }, { "filename": "OL9U1_x86_64-kvm-b158.qcow", "version": "9.1", @@ -34,6 +42,14 @@ "download_url": "https://yum.oracle.com/oracle-linux-templates.html", "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL9/u1/x86_64/OL9U1_x86_64-kvm-b158.qcow" }, + { + "filename": "OL8U8_x86_64-kvm-b198.qcow", + "version": "8.8", + "md5sum": "717622f373d77349cc102a3a325efbd3", + "filesize": 934215680, + "download_url": "https://yum.oracle.com/oracle-linux-templates.html", + "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u8/x86_64/OL8U8_x86_64-kvm-b198.qcow" + }, { "filename": "OL8U7_x86_64-kvm-b148.qcow", "version": "8.7", @@ -42,6 +58,14 @@ "download_url": "https://yum.oracle.com/oracle-linux-templates.html", "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL8/u7/x86_64/OL8U7_x86_64-kvm-b148.qcow" }, + { + "filename": "OL7U9_x86_64-kvm-b145.qcow", + "version": "7.9", + "md5sum": "e60d4145a69b34026db6121109ca9131", + "filesize": 725221376, + "download_url": "https://yum.oracle.com/oracle-linux-templates.html", + "direct_download_url": "https://yum.oracle.com/templates/OracleLinux/OL7/u9/x86_64/OL7U9_x86_64-kvm-b145.qcow" + }, { "filename": "oracle-cloud-init-data.iso", "version": "1.1", @@ -52,6 +76,13 @@ } ], "versions": [ +{ + "name": "9.2", + "images": { + "hda_disk_image": "OL9U2_x86_64-kvm-b197.qcow", + "cdrom_image": "oracle-cloud-init-data.iso" + } + }, { "name": "9.1", "images": { @@ -59,12 +90,26 @@ "cdrom_image": "oracle-cloud-init-data.iso" } }, + { + "name": "8.8", + "images": { + "hda_disk_image": "OL8U8_x86_64-kvm-b198.qcow", + "cdrom_image": "oracle-cloud-init-data.iso" + } + }, { "name": "8.7", "images": { "hda_disk_image": "OL8U7_x86_64-kvm-b148.qcow", "cdrom_image": "oracle-cloud-init-data.iso" } + }, + { + "name": "7.9", + "images": { + "hda_disk_image": "OL7U9_x86_64-kvm-b145.qcow", + "cdrom_image": "oracle-cloud-init-data.iso" + } } ] } diff --git a/gns3server/appliances/ostinato.gns3a b/gns3server/appliances/ostinato.gns3a index fe00eddf..ec9a991b 100644 --- a/gns3server/appliances/ostinato.gns3a +++ b/gns3server/appliances/ostinato.gns3a @@ -5,6 +5,7 @@ "description": "Packet crafter and traffic generator for network engineers", "vendor_name": "Ostinato", "vendor_url": "https://ostinato.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ostinato.png", "documentation_url": "https://ostinato.org/docs", "product_name": "Ostinato", "product_url": "https://ostinato.org/", diff --git a/gns3server/appliances/packetfence-zen.gns3a b/gns3server/appliances/packetfence-zen.gns3a index 06cedbe8..68394f5e 100644 --- a/gns3server/appliances/packetfence-zen.gns3a +++ b/gns3server/appliances/packetfence-zen.gns3a @@ -5,6 +5,7 @@ "description": "PacketFence is a fully supported, trusted, Free and Open Source network access control (NAC) solution. Boasting an impressive feature set including a captive-portal for registration and remediation, centralized wired and wireless management, 802.1X support, layer-2 isolation of problematic devices, integration with the Snort IDS and the Nessus vulnerability scanner; PacketFence can be used to effectively secure networks - from small to very large heterogeneous networks.", "vendor_name": "Inverse inc.", "vendor_url": "https://packetfence.org/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/PacketFence ZEN.jpg", "documentation_url": "https://packetfence.org/support/index.html#/documentation", "product_name": "PacketFence ZEN", "product_url": "https://packetfence.org/about.html", diff --git a/gns3server/appliances/rhel.gns3a b/gns3server/appliances/rhel.gns3a index cff50307..291802b5 100644 --- a/gns3server/appliances/rhel.gns3a +++ b/gns3server/appliances/rhel.gns3a @@ -23,7 +23,7 @@ "console_type": "telnet", "boot_priority": "c", "kvm": "require", - "options": "-nographic" + "options": "-cpu host -nographic" }, "images": [ { diff --git a/gns3server/appliances/rockylinux.gns3a b/gns3server/appliances/rockylinux.gns3a index 2dd3fd1b..fcbfad71 100644 --- a/gns3server/appliances/rockylinux.gns3a +++ b/gns3server/appliances/rockylinux.gns3a @@ -27,12 +27,20 @@ }, "images": [ { - "filename": "Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2", - "version": "8.5", - "md5sum": "44982ddace75a1dba17942401086d72c", - "filesize": 1502701568, - "download_url": "https://download.rockylinux.org/pub/rocky/8/images/", - "direct_download_url": "https://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2" + "filename": "Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2", + "version": "9.2", + "md5sum": "2022bdb49a691119f1fd3cc76de0a846", + "filesize": 989265920, + "download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/", + "direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2" + }, + { + "filename": "Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2", + "version": "8.8", + "md5sum": "3ad7d355909cc37100c037562e4b3b6d", + "filesize": 1800536064, + "download_url": "https://download.rockylinux.org/pub/rocky/8/images/x86_64/", + "direct_download_url": "https://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2" }, { "filename": "rocky-cloud-init-data.iso", @@ -45,9 +53,16 @@ ], "versions": [ { - "name": "8.5", + "name": "9.2", + "images": { + "hda_disk_image": "Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2", + "cdrom_image": "rocky-cloud-init-data.iso" + } + }, + { + "name": "8.8", "images": { - "hda_disk_image": "Rocky-8-GenericCloud-8.5-20211114.2.x86_64.qcow2", + "hda_disk_image": "Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2", "cdrom_image": "rocky-cloud-init-data.iso" } } diff --git a/gns3server/appliances/security-onion.gns3a b/gns3server/appliances/security-onion.gns3a index cccca609..f4f6cf1a 100644 --- a/gns3server/appliances/security-onion.gns3a +++ b/gns3server/appliances/security-onion.gns3a @@ -5,6 +5,7 @@ "description": "Security Onion is a Linux distro for intrusion detection, network security monitoring, and log management. It's based on Ubuntu and contains Snort, Suricata, Bro, OSSEC, Sguil, Squert, ELSA, Xplico, NetworkMiner, and many other security tools. The easy-to-use Setup wizard allows you to build an army of distributed sensors for your enterprise in minutes!", "vendor_name": "Security Onion Solutions, LLC", "vendor_url": "https://securityonion.net/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Security Onion.png", "documentation_url": "https://github.com/Security-Onion-Solutions/security-onion/wiki", "product_name": "Security Onion", "product_url": "https://securityonion.net/", diff --git a/gns3server/appliances/ubuntu-cloud.gns3a b/gns3server/appliances/ubuntu-cloud.gns3a index 49d007cf..a9496741 100644 --- a/gns3server/appliances/ubuntu-cloud.gns3a +++ b/gns3server/appliances/ubuntu-cloud.gns3a @@ -5,6 +5,7 @@ "description": "The term 'Ubuntu Cloud Guest' refers to the Official Ubuntu images that are available at http://cloud-images.ubuntu.com . These images are built by Canonical. They are then registered on EC2, and compressed tarfiles are made also available for download. For using those images on a public cloud such as Amazon EC2, you simply choose an image and launch it. To use those images on a private cloud, or to run the image on a local hypervisor (such as KVM) you would need to download those images and either publish them to your private cloud, or launch them directly on a hypervisor. The following sections explain in more details how to perform each of those actions", "vendor_name": "Canonical Inc.", "vendor_url": "https://www.ubuntu.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ubuntu Cloud Guest.png", "documentation_url": "https://help.ubuntu.com/community/UEC/Images", "product_name": "Ubuntu Cloud Guest", "product_url": "https://www.ubuntu.com/cloud", diff --git a/gns3server/appliances/ubuntu-docker.gns3a b/gns3server/appliances/ubuntu-docker.gns3a index bd6dcca7..110fba40 100644 --- a/gns3server/appliances/ubuntu-docker.gns3a +++ b/gns3server/appliances/ubuntu-docker.gns3a @@ -5,6 +5,7 @@ "description": "Ubuntu is a Debian-based Linux operating system, with Unity as its default desktop environment. It is based on free software and named after the Southern African philosophy of ubuntu (literally, \"human-ness\"), which often is translated as \"humanity towards others\" or \"the belief in a universal bond of sharing that connects all humanity\".", "vendor_name": "Canonical", "vendor_url": "http://www.ubuntu.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ubuntu Docker Guest.png", "product_name": "Ubuntu", "registry_version": 4, "status": "stable", diff --git a/gns3server/appliances/ubuntu-gui.gns3a b/gns3server/appliances/ubuntu-gui.gns3a index fc1e5d2d..9e31f420 100644 --- a/gns3server/appliances/ubuntu-gui.gns3a +++ b/gns3server/appliances/ubuntu-gui.gns3a @@ -5,6 +5,7 @@ "description": "Ubuntu is a full-featured Linux operating system which is based on Debian distribution and freely available with both community and professional support, it comes with Unity as its default desktop environment. There are other flavors of Ubuntu available with other desktops as default like Ubuntu Gnome, Lubuntu, Xubuntu, and so on. A tightly-integrated selection of excellent applications is included, and an incredible variety of add-on software is just a few clicks away. A default installation of Ubuntu contains a wide range of software that includes LibreOffice, Firefox, Empathy, Transmission, etc.", "vendor_name": "Canonical Inc.", "vendor_url": "https://www.ubuntu.com", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Ubuntu Desktop Guest.png", "documentation_url": "https://help.ubuntu.com", "product_name": "Ubuntu", "product_url": "https://www.ubuntu.com/desktop", diff --git a/gns3server/appliances/untangle.gns3a b/gns3server/appliances/untangle.gns3a index cdf0bbad..8612469a 100644 --- a/gns3server/appliances/untangle.gns3a +++ b/gns3server/appliances/untangle.gns3a @@ -5,6 +5,7 @@ "description": "Untangle's NG Firewall enables you to quickly and easily create the network policies that deliver the perfect balance between security and productivity. Untangle combines Unified Threat Management (UTM)-to address all of the key network threats-with policy management tools that enable you to define access and control by individuals, groups or company-wide. And with industry-leading reports, you'll have complete visibility into and control over everything that's happening on your network.", "vendor_name": "Untangle", "vendor_url": "https://www.untangle.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Untangle NG.jpg", "documentation_url": "http://wiki.untangle.com/index.php/Main_Page", "product_name": "Untangle NG", "product_url": "https://www.untangle.com/untangle-ng-firewall/", diff --git a/gns3server/appliances/vyos.gns3a b/gns3server/appliances/vyos.gns3a index 31a78deb..925e39ef 100644 --- a/gns3server/appliances/vyos.gns3a +++ b/gns3server/appliances/vyos.gns3a @@ -59,28 +59,32 @@ "version": "1.2.9-S1", "md5sum": "3fece6363f9766f862e26d292d0ed5a3", "filesize": 430964736, - "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-s1-generic-iso-image" + "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-s1-generic-iso-image", + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9-S1/vyos-1.2.9-S1-amd64.iso" }, { "filename": "vyos-1.2.9-S1-10G-qemu.qcow2", "version": "1.2.9-S1-KVM", "md5sum": "0a70d78b80a3716d42487c02ef44f41f", "filesize": 426967040, - "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-s1-for-kvm" + "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-s1-for-kvm", + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9-S1/vyos-1.2.9-S1-10G-qemu.qcow2" }, { "filename": "vyos-1.2.9-amd64.iso", "version": "1.2.9", "md5sum": "586be23b6256173e174c82d8f1f699a1", "filesize": 430964736, - "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-generic-iso-image" + "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-generic-iso-image", + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9/vyos-1.2.9-amd64.iso" }, { "filename": "vyos-1.2.9-10G-qemu.qcow2", "version": "1.2.9-KVM", "md5sum": "76871c7b248c32f75177c419128257ac", "filesize": 427360256, - "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-10g-qemu-qcow2" + "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-9-10g-qemu-qcow2", + "direct_download_url": "https://legacy-lts-images.vyos.io/1.2.9/vyos-1.2.9-10G-qemu.qcow2" }, { "filename": "vyos-1.2.8-amd64.iso", @@ -89,6 +93,13 @@ "filesize": 429916160, "download_url": "https://support.vyos.io/en/downloads/files/vyos-1-2-8-generic-iso-image" }, + { + "filename": "vyos-1.1.8-amd64.iso", + "version": "1.1.8", + "md5sum": "95a141d4b592b81c803cdf7e9b11d8ea", + "filesize": 241172480, + "direct_download_url": "https://legacy-lts-images.vyos.io/vyos-1.1.8-amd64.iso" + }, { "filename": "empty8G.qcow2", "version": "1.0", @@ -159,6 +170,13 @@ "hda_disk_image": "empty8G.qcow2", "cdrom_image": "vyos-1.2.8-amd64.iso" } + }, + { + "name": "1.1.8", + "images": { + "hda_disk_image": "empty8G.qcow2", + "cdrom_image": "vyos-1.1.8-amd64.iso" + } } ] } diff --git a/gns3server/appliances/windows.gns3a b/gns3server/appliances/windows.gns3a index 98c41571..1f0f111c 100644 --- a/gns3server/appliances/windows.gns3a +++ b/gns3server/appliances/windows.gns3a @@ -5,6 +5,7 @@ "description": "Microsoft Windows, or simply Windows, is a metafamily of graphical operating systems developed, marketed, and sold by Microsoft. It consists of several families of operating systems, each of which cater to a certain sector of the computing industry with the OS typically associated with IBM PC compatible architecture.", "vendor_name": "Microsoft", "vendor_url": "http://www.microsoft.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Windows.jpg", "documentation_url": "https://technet.microsoft.com/en-us/library/cc498727.aspx", "product_name": "Windows", "product_url": "https://www.microsoft.com/en-us/windows", diff --git a/gns3server/appliances/windows_server.gns3a b/gns3server/appliances/windows_server.gns3a index fec9bcf0..6fe23e68 100644 --- a/gns3server/appliances/windows_server.gns3a +++ b/gns3server/appliances/windows_server.gns3a @@ -5,6 +5,7 @@ "description": "Microsoft Windows, or simply Windows, is a metafamily of graphical operating systems developed, marketed, and sold by Microsoft. It consists of several families of operating systems, each of which cater to a certain sector of the computing industry with the OS typically associated with IBM PC compatible architecture.", "vendor_name": "Microsoft", "vendor_url": "http://www.microsoft.com/", + "vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/Windows Server.jpg", "documentation_url": "https://technet.microsoft.com/en-us/library/cc498727.aspx", "product_name": "Windows Server", "product_url": "https://www.microsoft.com/en-us/windows", From 0d15f40930b6522bfe61e79d13cb94611c3c8ebd Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 23 Oct 2023 15:16:49 +1000 Subject: [PATCH 08/11] Change "ip cef" to "no ip cef" in IOU default configs. Fixes #2298 --- gns3server/configs/iou_l2_base_startup-config.txt | 3 ++- gns3server/configs/iou_l3_base_startup-config.txt | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gns3server/configs/iou_l2_base_startup-config.txt b/gns3server/configs/iou_l2_base_startup-config.txt index 501355f6..4a09db82 100644 --- a/gns3server/configs/iou_l2_base_startup-config.txt +++ b/gns3server/configs/iou_l2_base_startup-config.txt @@ -13,7 +13,8 @@ logging console discriminator EXCESS ! no ip icmp rate-limit unreachable ! -ip cef +! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work +no ip cef no ip domain-lookup ! ! diff --git a/gns3server/configs/iou_l3_base_startup-config.txt b/gns3server/configs/iou_l3_base_startup-config.txt index 81d574ff..67628f77 100644 --- a/gns3server/configs/iou_l3_base_startup-config.txt +++ b/gns3server/configs/iou_l3_base_startup-config.txt @@ -12,7 +12,8 @@ no ip icmp rate-limit unreachable ! ! ! -ip cef +! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work +no ip cef no ip domain-lookup ! ! From 4af5edbc037110907573240b9259450e0d00551b Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 23 Oct 2023 15:21:06 +1000 Subject: [PATCH 09/11] Install aiohttp 3.9.0b0 when running on Python 3.12 --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 416969f9..da720397 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ jsonschema>=4.17.3,<4.18; python_version >= '3.7' # v4.17.3 is the last version to support Python 3.7 jsonschema==3.2.0; python_version < '3.7' # v3.2.0 is the last version to support Python 3.6 -aiohttp>=3.8.5,<3.9 +aiohttp>=3.8.5,<3.9; python_version < '3.12' +aiohttp==3.9.0b0; python_version == '3.12' aiohttp-cors>=0.7.0,<0.8 aiofiles>=23.2.1,<23.3; python_version >= '3.7' aiofiles==0.8.0; python_version < '3.7' # v0.8.0 is the last version to support Python 3.6 From 34ee75e1f1eabb7d24f035d3deeddf6ca5a3a9ea Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 23 Oct 2023 16:12:12 +1000 Subject: [PATCH 10/11] Fix tests running on Python 3.12 --- tests/compute/qemu/test_qemu_vm.py | 25 +++++++++++++------------ tests/handlers/api/compute/test_qemu.py | 4 ++-- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/tests/compute/qemu/test_qemu_vm.py b/tests/compute/qemu/test_qemu_vm.py index dcd4eac0..4b7c0685 100644 --- a/tests/compute/qemu/test_qemu_vm.py +++ b/tests/compute/qemu/test_qemu_vm.py @@ -208,18 +208,18 @@ async def test_termination_callback_error(vm, tmpdir): async def test_reload(vm): - with asyncio_patch("gns3server.compute.qemu.QemuVM._control_vm") as mock: + with asyncio_patch("gns3server.compute.qemu.QemuVM._control_vm") as m: await vm.reload() - assert mock.called_with("system_reset") + m.assert_called_with("system_reset") -async def test_suspend(vm): +async def test_suspend(vm, running_subprocess_mock): - control_vm_result = MagicMock() - control_vm_result.match.group.decode.return_value = "running" - with asyncio_patch("gns3server.compute.qemu.QemuVM._control_vm", return_value=control_vm_result) as mock: - await vm.suspend() - assert mock.called_with("system_reset") + vm._process = running_subprocess_mock + with asyncio_patch("gns3server.compute.qemu.QemuVM._get_vm_status", return_value="running"): + with asyncio_patch("gns3server.compute.qemu.QemuVM._control_vm") as m: + await vm.suspend() + m.assert_called_with("stop") async def test_add_nio_binding_udp(vm): @@ -490,14 +490,15 @@ def test_json(vm, compute_project): assert json["project_id"] == compute_project.id -async def test_control_vm(vm): +async def test_control_vm(vm, running_subprocess_mock): - vm._process = MagicMock() + vm._process = running_subprocess_mock + vm._monitor = 4242 reader = MagicMock() writer = MagicMock() with asyncio_patch("asyncio.open_connection", return_value=(reader, writer)): res = await vm._control_vm("test") - assert writer.write.called_with("test") + writer.write.assert_called_with(b"test\n") assert res is None @@ -514,7 +515,7 @@ async def test_control_vm_expect_text(vm, running_subprocess_mock): vm._monitor = 4242 res = await vm._control_vm("test", [b"epic"]) - assert writer.write.called_with("test") + writer.write.assert_called_with(b"test\n") assert res == "epic product" diff --git a/tests/handlers/api/compute/test_qemu.py b/tests/handlers/api/compute/test_qemu.py index 95611f10..752ff9a0 100644 --- a/tests/handlers/api/compute/test_qemu.py +++ b/tests/handlers/api/compute/test_qemu.py @@ -255,7 +255,7 @@ async def test_qemu_list_binaries(compute_api, vm): with asyncio_patch("gns3server.compute.qemu.Qemu.binary_list", return_value=ret) as mock: response = await compute_api.get("/qemu/binaries".format(project_id=vm["project_id"])) - assert mock.called_with(None) + mock.assert_called_with(None) assert response.status == 200 assert response.json == ret @@ -271,7 +271,7 @@ async def test_qemu_list_binaries_filter(compute_api, vm): with asyncio_patch("gns3server.compute.qemu.Qemu.binary_list", return_value=ret) as mock: response = await compute_api.get("/qemu/binaries".format(project_id=vm["project_id"]), body={"archs": ["i386"]}) assert response.status == 200 - assert mock.called_with(["i386"]) + mock.assert_called_with(["i386"]) assert response.json == ret From c759c4e3f607684e57ebd8ac3362e564bd164d3e Mon Sep 17 00:00:00 2001 From: grossmj Date: Mon, 23 Oct 2023 16:17:31 +1000 Subject: [PATCH 11/11] Upgrade to actions/checkout@v3 and actions/setup-python@v3 --- .github/workflows/testing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index f7398a5a..6763ce51 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -19,9 +19,9 @@ jobs: python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies