diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index 41699422..36039595 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -2,9 +2,13 @@ name: testing
on:
push:
- branches: [ master ]
+ branches:
+ - master
+ - 2.2
pull_request:
- branches: [ master ]
+ branches:
+ - master
+ - 2.2
jobs:
build:
diff --git a/CHANGELOG b/CHANGELOG
index 255471b4..bf59e33f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,12 @@
# Change Log
+## 2.2.34 28/08/2022
+
+* Use original $PATH in init.sh for Docker containers. Ref #2069
+* Support pytest-asyncio 0.19.0
+* Upgrade dev dependencies and fix issues after upgrading to pytest-aiohttp v1.0.4
+* Update compute.py
+
## 2.2.33.1 21/06/2022
* Add missing file for web-ui v2.2.33
diff --git a/appveyor.yml b/appveyor.yml
index d35cafe6..db38580a 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -5,7 +5,7 @@ image: Visual Studio 2015
platform: x64
environment:
- PYTHON: "C:\\Python36-x64"
+ PYTHON: "C:\\Python37-x64"
DISTUTILS_USE_SDK: "1"
API_TOKEN:
secure: VEKn4bYH3QO0ixtQW5ni4Enmn8cS1NlZV246ludBDgQ=
diff --git a/dev-requirements.txt b/dev-requirements.txt
index eba5db79..86cc066f 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,6 +1,8 @@
-rrequirements.txt
-pytest==7.0.0
-flake8==4.0.1
-pytest-timeout==1.4.2
-pytest-aiohttp==0.3.0
+pytest==7.0.1; python_version < '3.7' # last version to support Python 3.6
+pytest==7.1.2; python_version >= '3.7'
+flake8==5.0.4
+pytest-timeout==2.1.0
+pytest-aiohttp==0.3.0; python_version < '3.7' # last version to support Python 3.6
+pytest-aiohttp==1.0.4; python_version >= '3.7'
diff --git a/gns3server/appliances/aruba-arubaoscx.gns3a b/gns3server/appliances/aruba-arubaoscx.gns3a
index 39109f05..db45527b 100644
--- a/gns3server/appliances/aruba-arubaoscx.gns3a
+++ b/gns3server/appliances/aruba-arubaoscx.gns3a
@@ -4,7 +4,7 @@
"category": "multilayer_switch",
"description": "The ArubaOS-CX Simulation Software is a virtual platform to enable simulation of the ArubaOS-CX Network Operating System. Simulated networks can be created using many of the protocols in the ArubaOS-CX Operating system like OSPF, BGP (inc. EVPN). Key features like the Aruba Network Analytics Engine and the REST API can be simulated, providing a lightweight development platform to building the modern network.",
"vendor_name": "HPE Aruba",
- "vendor_url": "arubanetworks.com",
+ "vendor_url": "https://www.arubanetworks.com",
"product_name": "ArubaOS-CX Simulation Software",
"registry_version": 4,
"status": "stable",
@@ -30,6 +30,13 @@
"process_priority": "normal"
},
"images": [
+ {
+ "filename": "arubaoscx-disk-image-genericx86-p4-20220616193419.vmdk",
+ "version": "10.10.0002",
+ "md5sum": "ed031aeb6caf92adb408c7603d294fd4",
+ "filesize": 355858944,
+ "download_url": "https://asp.arubanetworks.com/"
+ },
{
"filename": "arubaoscx-disk-image-genericx86-p4-20220223012712.vmdk",
"version": "10.09.1000",
@@ -88,6 +95,12 @@
}
],
"versions": [
+ {
+ "name": "10.10.0002",
+ "images": {
+ "hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20220616193419.vmdk"
+ }
+ },
{
"name": "10.09.1000",
"images": {
diff --git a/gns3server/appliances/aruba-vgw.gns3a b/gns3server/appliances/aruba-vgw.gns3a
index 6592a204..67c3910a 100644
--- a/gns3server/appliances/aruba-vgw.gns3a
+++ b/gns3server/appliances/aruba-vgw.gns3a
@@ -4,7 +4,7 @@
"category": "firewall",
"description": "Aruba Virtual Gateways allow customers to bring their public cloud infrastructure to the SD-WAN fabric and facilitate connectivity between branches and the public cloud.",
"vendor_name": "HPE Aruba",
- "vendor_url": "arubanetworks.com",
+ "vendor_url": "https://www.arubanetworks.com",
"documentation_url": "https://asp.arubanetworks.com/downloads;products=Aruba%20SD-WAN",
"product_name": "Aruba SD-WAN Virtual Gateway",
"product_url": "https://www.arubanetworks.com/products/networking/gateways-and-controllers/",
diff --git a/gns3server/appliances/aruba-vmc.gns3a b/gns3server/appliances/aruba-vmc.gns3a
index 52ba75d4..7be2cca4 100644
--- a/gns3server/appliances/aruba-vmc.gns3a
+++ b/gns3server/appliances/aruba-vmc.gns3a
@@ -4,7 +4,7 @@
"category": "guest",
"description": "Aruba Virtual Mobility Controller",
"vendor_name": "HPE Aruba",
- "vendor_url": "arubanetworks.com",
+ "vendor_url": "https://www.arubanetworks.com",
"product_name": "Aruba VMC",
"registry_version": 4,
"status": "stable",
diff --git a/gns3server/appliances/cisco-asav.gns3a b/gns3server/appliances/cisco-asav.gns3a
index d74e0118..31b695d0 100644
--- a/gns3server/appliances/cisco-asav.gns3a
+++ b/gns3server/appliances/cisco-asav.gns3a
@@ -27,6 +27,13 @@
},
"images": [
{
+ "filename": "asav9-16-2.qcow2",
+ "version": "9.16.2 CML",
+ "md5sum": "1f8db97063a7f738fddc81ac880a906c",
+ "filesize": 262078976,
+ "download_url": "https://learningnetworkstore.cisco.com/cisco-modeling-labs-personal/cisco-modeling-labs-personal/CML-PERSONAL.html"
+ },
+ {
"filename": "asav9-16-2.qcow2",
"version": "9.16.2",
"md5sum": "c3aa2b73b029146ec345bf888dd54eab",
@@ -112,6 +119,12 @@
}
],
"versions": [
+ {
+ "name": "9.16.2 CML",
+ "images": {
+ "hda_disk_image": "asav9-16-2.qcow2"
+ }
+ },
{
"name": "9.16.2",
"images": {
diff --git a/gns3server/appliances/cisco-c8000v.gns3a b/gns3server/appliances/cisco-c8000v.gns3a
index 6c1828da..14ab53c8 100644
--- a/gns3server/appliances/cisco-c8000v.gns3a
+++ b/gns3server/appliances/cisco-c8000v.gns3a
@@ -24,6 +24,13 @@
"kvm": "require"
},
"images": [
+ {
+ "filename": "c8000v-universalk9_8G_serial.17.06.01a.qcow2",
+ "version": "17.06.01a 8G",
+ "md5sum": "d8b8ae633d953ec1b6d8f18a09a4f4e7",
+ "filesize": 1595277312,
+ "download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Bengaluru-17.6.1a"
+ },
{
"filename": "c8000v-universalk9_8G_serial.17.04.01a.qcow2",
"version": "17.04.01a 8G",
@@ -40,6 +47,12 @@
}
],
"versions": [
+ {
+ "name": "17.06.01a 8G",
+ "images": {
+ "hda_disk_image": "c8000v-universalk9_8G_serial.17.06.01a.qcow2"
+ }
+ },
{
"name": "17.04.01a 8G",
"images": {
diff --git a/gns3server/appliances/cisco-iou-l3.gns3a b/gns3server/appliances/cisco-iou-l3.gns3a
index 19a5380b..3b0ac2f0 100644
--- a/gns3server/appliances/cisco-iou-l3.gns3a
+++ b/gns3server/appliances/cisco-iou-l3.gns3a
@@ -18,6 +18,12 @@
"startup_config": "iou_l3_base_startup-config.txt"
},
"images": [
+ {
+ "filename": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin",
+ "version": "15.7(3)M2",
+ "md5sum": "d6874260c3daeeb96d10fc844ae0b93b",
+ "filesize": 184759244
+ },
{
"filename": "i86bi-linux-l3-adventerprisek9-ms.155-2.T.bin",
"version": "155-2T",
@@ -32,6 +38,12 @@
}
],
"versions": [
+ {
+ "name": "15.7(3)M2",
+ "images": {
+ "image": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin"
+ }
+ },
{
"name": "155-2T",
"images": {
diff --git a/gns3server/appliances/cumulus-vx.gns3a b/gns3server/appliances/cumulus-vx.gns3a
index 03685393..c21971a4 100644
--- a/gns3server/appliances/cumulus-vx.gns3a
+++ b/gns3server/appliances/cumulus-vx.gns3a
@@ -12,7 +12,7 @@
"status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
- "usage": "Default username is cumulus and password is CumulusLinux! in version 4.1 and earlier, and cumulus in version 4.2 and later.",
+ "usage": "Default username/password is cumulus/CumulusLinux! in version 4.1 and earlier, and cumulus/cumulus in version 4.2 and later.",
"first_port_name": "eth0",
"port_name_format": "swp{port1}",
"qemu": {
@@ -25,6 +25,14 @@
"kvm": "require"
},
"images": [
+ {
+ "filename": "cumulus-linux-5.1.0-vx-amd64-qemu.qcow2",
+ "version": "5.1.0",
+ "md5sum": "b46a68bbb57e77fab5c2927367bead13",
+ "filesize": 4174446592,
+ "download_url": "https://www.nvidia.com/en-us/networking/ethernet-switching/cumulus-vx/download/",
+ "direct_download_url": "https://d2cd9e7ca6hntp.cloudfront.net/public/CumulusLinux-5.1.0/cumulus-linux-5.1.0-vx-amd64-qemu.qcow2"
+ },
{
"filename": "cumulus-linux-4.3.0-vx-amd64-qemu.qcow2",
"version": "4.3.0",
@@ -231,6 +239,12 @@
}
],
"versions": [
+ {
+ "name": "5.1.0",
+ "images": {
+ "hda_disk_image": "cumulus-linux-5.1.0-vx-amd64-qemu.qcow2"
+ }
+ },
{
"name": "4.3.0",
"images": {
diff --git a/gns3server/appliances/debian.gns3a b/gns3server/appliances/debian.gns3a
index 13f55861..4b98cc20 100644
--- a/gns3server/appliances/debian.gns3a
+++ b/gns3server/appliances/debian.gns3a
@@ -24,12 +24,12 @@
},
"images": [
{
- "filename": "debian-11-genericcloud-amd64-20220328-962.qcow2",
- "version": "11.3",
- "md5sum": "7cf51e23747898485971a656ac2eb96d",
- "filesize": 253296640,
+ "filename": "debian-11-genericcloud-amd64-20220711-1073.qcow2",
+ "version": "11.4",
+ "md5sum": "e8fadf4bbf7324a2e2875a5ba00588e7",
+ "filesize": 253231104,
"download_url": "https://cloud.debian.org/images/cloud/bullseye/",
- "direct_download_url": "https://cloud.debian.org/images/cloud/bullseye/20220328-962/debian-11-genericcloud-amd64-20220328-962.qcow2"
+ "direct_download_url": "https://cloud.debian.org/images/cloud/bullseye/20220711-1073/debian-11-genericcloud-amd64-20220711-1073.qcow2"
},
{
"filename": "debian-10-genericcloud-amd64-20220328-962.qcow2",
@@ -49,9 +49,9 @@
],
"versions": [
{
- "name": "11.3",
+ "name": "11.4",
"images": {
- "hda_disk_image": "debian-11-genericcloud-amd64-20220328-962.qcow2",
+ "hda_disk_image": "debian-11-genericcloud-amd64-20220711-1073.qcow2",
"cdrom_image": "debian-cloud-init-data.iso"
}
},
diff --git a/gns3server/appliances/empty-vm.gns3a b/gns3server/appliances/empty-vm.gns3a
index 83724603..8e2ac20f 100644
--- a/gns3server/appliances/empty-vm.gns3a
+++ b/gns3server/appliances/empty-vm.gns3a
@@ -2,7 +2,7 @@
"appliance_id": "1cfdf900-7c30-4cb7-8f03-3f61d2581633",
"name": "Empty VM",
"category": "guest",
- "description": "An empty VM with empty hard disks 8G, 30G & 100G.",
+ "description": "A empty VM with empty hard disks 8G, 30G, 100G & 200G.",
"vendor_name": "GNS3",
"vendor_url": "https://gns3.com",
"documentation_url": "",
@@ -20,7 +20,7 @@
"ram": 1024,
"arch": "x86_64",
"console_type": "vnc",
- "hda_disk_interface": "sata",
+ "hda_disk_interface": "sata",
"boot_priority": "d",
"kvm": "allow"
},
@@ -48,6 +48,14 @@
"filesize": 198656,
"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": "empty200G.qcow2",
+ "version": "200G",
+ "md5sum": "d1686d2f25695dee32eab9a6f4652c7c",
+ "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"
}
],
"versions": [
@@ -63,11 +71,17 @@
"hda_disk_image": "empty30G.qcow2"
}
},
- {
+ {
"name": "100G",
"images": {
"hda_disk_image": "empty100G.qcow2"
}
+ },
+ {
+ "name": "200G",
+ "images": {
+ "hda_disk_image": "empty200G.qcow2"
+ }
}
]
}
diff --git a/gns3server/appliances/exos.gns3a b/gns3server/appliances/exos.gns3a
index 6d596124..4b67b8ac 100644
--- a/gns3server/appliances/exos.gns3a
+++ b/gns3server/appliances/exos.gns3a
@@ -27,7 +27,14 @@
"options": "-cpu core2duo"
},
"images": [
- {
+ {
+ "filename": "EXOS-VM_v32.1.1.6.qcow2",
+ "version": "32.1.1.6",
+ "md5sum": "48868bbcb4255d6365049b5941dd2af7",
+ "filesize": 231211008,
+ "direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v32.1.1.6.qcow2"
+ },
+ {
"filename": "EXOS-VM_v31.7.1.4.qcow2",
"version": "31.7.1.4",
"md5sum": "a70e4fa3bc361434237ad12937aaf0fb",
@@ -106,6 +113,12 @@
}
],
"versions": [
+ {
+ "name": "32.1.1.6",
+ "images": {
+ "hda_disk_image": "EXOS-VM_v32.1.1.6.qcow2"
+ }
+ },
{
"name": "31.7.1.4",
"images": {
diff --git a/gns3server/appliances/fortianalyzer.gns3a b/gns3server/appliances/fortianalyzer.gns3a
index 3e73ea7a..e82a10f4 100644
--- a/gns3server/appliances/fortianalyzer.gns3a
+++ b/gns3server/appliances/fortianalyzer.gns3a
@@ -27,6 +27,13 @@
"kvm": "allow"
},
"images": [
+ {
+ "filename": "FAZ_VM64_KVM-v7.2.1-build1215-FORTINET.out.kvm.qcow2",
+ "version": "7.2.1",
+ "md5sum": "c13b6c7678a2fc12ab969fc681ad3af5",
+ "filesize": 340631552,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FAZ_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
"version": "6.4.5",
@@ -177,6 +184,13 @@
}
],
"versions": [
+ {
+ "name": "7.2.1",
+ "images": {
+ "hda_disk_image": "FAZ_VM64_KVM-v7.2.1-build1215-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "empty30G.qcow2"
+ }
+ },
{
"name": "6.4.5",
"images": {
diff --git a/gns3server/appliances/fortigate.gns3a b/gns3server/appliances/fortigate.gns3a
index fb830442..73a6e997 100644
--- a/gns3server/appliances/fortigate.gns3a
+++ b/gns3server/appliances/fortigate.gns3a
@@ -27,6 +27,13 @@
"kvm": "allow"
},
"images": [
+ {
+ "filename": "FGT_VM64_KVM-v7.2.1.F-build1254-FORTINET.out.kvm.qcow2",
+ "version": "7.2.1",
+ "md5sum": "e382a1ad5c7c16f49a1c0d3f45e3a3b2",
+ "filesize": 86704128,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FGT_VM64_KVM-v6-build1828-FORTINET.out.kvm.qcow2",
"version": "6.4.5",
@@ -254,6 +261,13 @@
}
],
"versions": [
+ {
+ "name": "7.2.1",
+ "images": {
+ "hda_disk_image": "FGT_VM64_KVM-v7.2.1.F-build1254-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "empty30G.qcow2"
+ }
+ },
{
"name": "6.4.5",
"images": {
diff --git a/gns3server/appliances/fortimail.gns3a b/gns3server/appliances/fortimail.gns3a
index 77bc0c35..4d5cf111 100644
--- a/gns3server/appliances/fortimail.gns3a
+++ b/gns3server/appliances/fortimail.gns3a
@@ -27,6 +27,13 @@
"kvm": "allow"
},
"images": [
+ {
+ "filename": "FML_VMKV-64-v721.M-build0364-FORTINET.out.kvm.qcow2",
+ "version": "7.2.1",
+ "md5sum": "b7bf13c2fb013693936b45d89dfab1ac",
+ "filesize": 123535360,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FML_VMKV-64-v60-build0257-FORTINET.out.kvm.qcow2",
"version": "6.2.1",
@@ -184,6 +191,13 @@
}
],
"versions": [
+ {
+ "name": "7.2.1",
+ "images": {
+ "hda_disk_image": "FML_VMKV-64-v721.M-build0364-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "empty30G.qcow2"
+ }
+ },
{
"name": "6.2.1",
"images": {
diff --git a/gns3server/appliances/fortimanager.gns3a b/gns3server/appliances/fortimanager.gns3a
index ce77ab7f..2f920388 100644
--- a/gns3server/appliances/fortimanager.gns3a
+++ b/gns3server/appliances/fortimanager.gns3a
@@ -27,6 +27,13 @@
"kvm": "allow"
},
"images": [
+ {
+ "filename": "FMG_VM64_KVM-v7.2.1-build1215-FORTINET.out.kvm.qcow2",
+ "version": "7.2.1",
+ "md5sum": "1a3eeff1204fa8f4243773f7521e12b5",
+ "filesize": 242814976,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FMG_VM64_KVM-v6-build2288-FORTINET.out.kvm.qcow2",
"version": "6.4.5",
@@ -177,6 +184,13 @@
}
],
"versions": [
+ {
+ "name": "7.2.1",
+ "images": {
+ "hda_disk_image": "FMG_VM64_KVM-v7.2.1-build1215-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "empty30G.qcow2"
+ }
+ },
{
"name": "6.4.5",
"images": {
diff --git a/gns3server/appliances/fortiproxy.gns3a b/gns3server/appliances/fortiproxy.gns3a
index 93de1f51..a03f9cce 100644
--- a/gns3server/appliances/fortiproxy.gns3a
+++ b/gns3server/appliances/fortiproxy.gns3a
@@ -27,6 +27,13 @@
"kvm": "allow"
},
"images": [
+ {
+ "filename": "FPX_KVM-v700.M-build0102-FORTINET.out.kvm.qcow2",
+ "version": "7.0.6",
+ "md5sum": "ad0a4612580b5a2754cc4e0121a9cf22",
+ "filesize": 146800640,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FPX_KVM-v100-build0162-FORTINET.out.kvm.qcow2",
"version": "1.1.2",
@@ -51,6 +58,13 @@
}
],
"versions": [
+ {
+ "name": "7.0.6",
+ "images": {
+ "hda_disk_image": "FPX_KVM-v700.M-build0102-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "empty30G.qcow2"
+ }
+ },
{
"name": "1.1.2",
"images": {
diff --git a/gns3server/appliances/fortisandbox.gns3a b/gns3server/appliances/fortisandbox.gns3a
index 6d352117..6fa98c51 100644
--- a/gns3server/appliances/fortisandbox.gns3a
+++ b/gns3server/appliances/fortisandbox.gns3a
@@ -28,6 +28,13 @@
"options": "-smp 2"
},
"images": [
+ {
+ "filename": "FSA_KVM-v400-build0231-FORTINET.out.kvm.qcow2",
+ "version": "4.2.2",
+ "md5sum": "02b7f49e3c04861601a7af26452eed66",
+ "filesize": 156172304,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FSA_KVM-v300-build0124-FORTINET.out.kvm.qcow2",
"version": "3.1.2",
@@ -114,6 +121,13 @@
}
],
"versions": [
+ {
+ "name": "4.2.2",
+ "images": {
+ "hda_disk_image": "FSA_KVM-v400-build0231-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "FSA-datadrive.qcow2"
+ }
+ },
{
"name": "3.1.2",
"images": {
diff --git a/gns3server/appliances/fortiweb.gns3a b/gns3server/appliances/fortiweb.gns3a
index a0924bec..6a39036d 100644
--- a/gns3server/appliances/fortiweb.gns3a
+++ b/gns3server/appliances/fortiweb.gns3a
@@ -27,6 +27,13 @@
"kvm": "allow"
},
"images": [
+ {
+ "filename": "FWB_KVM-v700-build0097-FORTINET.out.kvm.qcow2",
+ "version": "7.0.1",
+ "md5sum": "a197e9db03ffaf7feb520c8f77f940f7",
+ "filesize": 257622528,
+ "download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
+ },
{
"filename": "FWB_KVM-v600-build0727-FORTINET.out.kvm.qcow2",
"version": "6.2.1",
@@ -121,6 +128,13 @@
}
],
"versions": [
+ {
+ "name": "7.0.1",
+ "images": {
+ "hda_disk_image": "FWB_KVM-v700-build0097-FORTINET.out.kvm.qcow2",
+ "hdb_disk_image": "empty30G.qcow2"
+ }
+ },
{
"name": "6.2.1",
"images": {
diff --git a/gns3server/appliances/huawei-ar1kv.gns3a b/gns3server/appliances/huawei-ar1kv.gns3a
index fdb1c9d1..f98698a7 100644
--- a/gns3server/appliances/huawei-ar1kv.gns3a
+++ b/gns3server/appliances/huawei-ar1kv.gns3a
@@ -11,7 +11,7 @@
"status": "experimental",
"availability": "service-contract",
"maintainer": "none",
- "maintainer_email": "none",
+ "maintainer_email": "",
"usage": "Default user is super, default password is super.",
"port_name_format": "GigabitEthernet0/0/{0}",
"qemu": {
diff --git a/gns3server/appliances/huawei-ce12800.gns3a b/gns3server/appliances/huawei-ce12800.gns3a
index cf5cf6fb..8626d8cb 100644
--- a/gns3server/appliances/huawei-ce12800.gns3a
+++ b/gns3server/appliances/huawei-ce12800.gns3a
@@ -10,7 +10,7 @@
"status": "experimental",
"availability": "service-contract",
"maintainer": "none",
- "maintainer_email": "none",
+ "maintainer_email": "",
"port_name_format": "GE1/0/{0}",
"qemu": {
"adapter_type": "e1000",
diff --git a/gns3server/appliances/huawei-ne40e.gns3a b/gns3server/appliances/huawei-ne40e.gns3a
index 8a039a7c..4248f204 100644
--- a/gns3server/appliances/huawei-ne40e.gns3a
+++ b/gns3server/appliances/huawei-ne40e.gns3a
@@ -11,7 +11,7 @@
"status": "experimental",
"availability": "service-contract",
"maintainer": "none",
- "maintainer_email": "none",
+ "maintainer_email": "",
"first_port_name": "eth0",
"port_name_format": "Ethernet1/0/{0}",
"qemu": {
diff --git a/gns3server/appliances/huawei-usg6kv.gns3a b/gns3server/appliances/huawei-usg6kv.gns3a
index f2d0506c..010a4039 100644
--- a/gns3server/appliances/huawei-usg6kv.gns3a
+++ b/gns3server/appliances/huawei-usg6kv.gns3a
@@ -11,7 +11,7 @@
"status": "experimental",
"availability": "service-contract",
"maintainer": "none",
- "maintainer_email": "none",
+ "maintainer_email": "",
"usage": "Default password is admin. Default username and password for web is admin/Admin@123.",
"first_port_name": "GigabitEthernet0/0/0",
"port_name_format": "GigabitEthernet1/0/{0}",
diff --git a/gns3server/appliances/juniper-vmx-vfp.gns3a b/gns3server/appliances/juniper-vmx-vfp.gns3a
index 626a3c3c..11708d3c 100644
--- a/gns3server/appliances/juniper-vmx-vfp.gns3a
+++ b/gns3server/appliances/juniper-vmx-vfp.gns3a
@@ -12,13 +12,13 @@
"status": "experimental",
"maintainer": "none",
"maintainer_email": "developers@gns3.net",
- "usage": "Initial username is root, password is root.\n",
+ "usage": "Connect VCP by port Eth1.\nData port ge/xe-x/0/0 to ge/xe-x/0/9 mapping to Eth3 to Eth12.\nInitial username is root, password is root.\n",
"symbol": "juniper-vmx.svg",
"first_port_name": "Eth0",
"port_name_format": "Eth{port1}",
"qemu": {
"adapter_type": "virtio-net-pci",
- "adapters": 12,
+ "adapters": 13,
"ram": 4096,
"hda_disk_interface": "ide",
"arch": "x86_64",
diff --git a/gns3server/appliances/juniper-vrr.gns3a b/gns3server/appliances/juniper-vrr.gns3a
index f1892c30..acfe6a9c 100644
--- a/gns3server/appliances/juniper-vrr.gns3a
+++ b/gns3server/appliances/juniper-vrr.gns3a
@@ -28,6 +28,18 @@
"options": "-nographic -enable-kvm"
},
"images": [
+ {
+ "filename": "junos-x86-64-20.4R3.8.img",
+ "version": "20.4R3.8-KVM",
+ "md5sum": "69638ba0ad83d7a99a28b658b1dd8def",
+ "filesize": 2773090304
+ },
+ {
+ "filename": "metadata.img",
+ "version": "20.4R3.8-KVM",
+ "md5sum": "ae4e3562aa389929476d82420c79d511",
+ "filesize": 393216
+ },
{
"filename": "junos-x86-64-20.3R1.8.img",
"version": "20.3R1.8-KVM",
@@ -42,6 +54,13 @@
}
],
"versions": [
+ {
+ "name": "20.4R3.8-KVM",
+ "images": {
+ "hda_disk_image": "junos-x86-64-20.4R3.8.img",
+ "hdb_disk_image": "metadata.img"
+ }
+ },
{
"name": "20.3R1.8-KVM",
"images": {
diff --git a/gns3server/appliances/mikrotik-chr.gns3a b/gns3server/appliances/mikrotik-chr.gns3a
index 4175e369..69092601 100644
--- a/gns3server/appliances/mikrotik-chr.gns3a
+++ b/gns3server/appliances/mikrotik-chr.gns3a
@@ -28,81 +28,81 @@
},
"images": [
{
- "filename": "chr-7.1rc7.img",
- "version": "7.1rc7",
- "md5sum": "04bc0ae1e5fbbda1522135bc57cf6560",
+ "filename": "chr-7.4rc2.img",
+ "version": "7.4rc2",
+ "md5sum": "ddb107c95cc7d231f8d8bbdb4eebdab6",
"filesize": 134217728,
"download_url": "http://www.mikrotik.com/download",
- "direct_download_url": "https://download.mikrotik.com/routeros/7.1rc7/chr-7.1rc7.img.zip",
+ "direct_download_url": "https://download.mikrotik.com/routeros/7.4rc2/chr-7.4rc2.img.zip",
"compression": "zip"
},
{
- "filename": "chr-7.1.img",
- "version": "7.1",
- "md5sum": "41545bc7b55717fe5bb1e489ee39ca45",
+ "filename": "chr-7.3.1.img",
+ "version": "7.3.1",
+ "md5sum": "99f8ea75f8b745a8bf5ca3cc1bd325e3",
"filesize": 134217728,
"download_url": "http://www.mikrotik.com/download",
- "direct_download_url": "https://download.mikrotik.com/routeros/7.1/chr-7.1.img.zip",
+ "direct_download_url": "https://download.mikrotik.com/routeros/7.3.1/chr-7.3.1.img.zip",
"compression": "zip"
},
{
- "filename": "chr-6.49rc2.img",
- "version": "6.49rc2",
- "md5sum": "e1088f8f64ac3d6ecf2e56ac96261226",
- "filesize": 67108864,
+ "filename": "chr-7.1.5.img",
+ "version": "7.1.5",
+ "md5sum": "9c0be05f891df2b1400bdae5e719898e",
+ "filesize": 134217728,
"download_url": "http://www.mikrotik.com/download",
- "direct_download_url": "https://download.mikrotik.com/routeros/6.49rc2/chr-6.49rc2.img.zip",
+ "direct_download_url": "https://download.mikrotik.com/routeros/7.1.5/chr-7.1.5.img.zip",
"compression": "zip"
},
{
- "filename": "chr-6.49.1.img",
- "version": "6.49.1",
- "md5sum": "6c896c4c853de99f2ea77f0f4b102261",
+ "filename": "chr-6.49.6.img",
+ "version": "6.49.6",
+ "md5sum": "ae27d38acc9c4dcd875e0f97bcae8d97",
"filesize": 67108864,
"download_url": "http://www.mikrotik.com/download",
- "direct_download_url": "https://download.mikrotik.com/routeros/6.49.1/chr-6.49.1.img.zip",
+ "direct_download_url": "https://download.mikrotik.com/routeros/6.49.6/chr-6.49.6.img.zip",
"compression": "zip"
},
{
- "filename": "chr-6.48.5.img",
- "version": "6.48.5",
- "md5sum": "d14debd4cd989f16f695b5b075960703",
+ "filename": "chr-6.48.6.img",
+ "version": "6.48.6",
+ "md5sum": "875574a561570227ff8f395aabe478c6",
"filesize": 67108864,
"download_url": "http://www.mikrotik.com/download",
- "direct_download_url": "https://download.mikrotik.com/routeros/6.48.5/chr-6.48.5.img.zip",
+ "direct_download_url": "https://download.mikrotik.com/routeros/6.48.6/chr-6.48.6.img.zip",
"compression": "zip"
}
],
"versions": [
{
- "name": "7.1rc7",
+ "name": "7.4rc2",
"images": {
- "hda_disk_image": "chr-7.1rc7.img"
+ "hda_disk_image": "chr-7.4rc2.img"
}
},
{
- "name": "7.1",
+ "name": "7.3.1",
"images": {
- "hda_disk_image": "chr-7.1.img"
+ "hda_disk_image": "chr-7.3.1.img"
}
},
{
- "name": "6.49rc2",
+ "name": "7.1.5",
"images": {
- "hda_disk_image": "chr-6.49rc2.img"
+ "hda_disk_image": "chr-7.1.5.img"
}
},
{
- "name": "6.49.1",
+ "name": "6.49.6",
"images": {
- "hda_disk_image": "chr-6.49.1.img"
+ "hda_disk_image": "chr-6.49.6.img"
}
},
{
- "name": "6.48.5",
+ "name": "6.48.6",
"images": {
- "hda_disk_image": "chr-6.48.5.img"
+ "hda_disk_image": "chr-6.48.6.img"
}
}
]
-}
+}
\ No newline at end of file
diff --git a/gns3server/appliances/netem.gns3a b/gns3server/appliances/netem.gns3a
index 85302f39..ce071fa8 100644
--- a/gns3server/appliances/netem.gns3a
+++ b/gns3server/appliances/netem.gns3a
@@ -29,8 +29,8 @@
"version": "0.4",
"md5sum": "e678698c97804901c7a53f6b68c8b861",
"filesize": 26476544,
- "download_url": "https://www.b-ehlers.de/projects/netem/index.html",
- "direct_download_url": "https://www.b-ehlers.de/projects/netem/NETem-v4.qcow2"
+ "download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
+ "direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/NETem-v4.qcow2/download"
}
],
"versions": [
diff --git a/gns3server/appliances/raspian.gns3a b/gns3server/appliances/raspian.gns3a
index e3973693..0c4cafca 100644
--- a/gns3server/appliances/raspian.gns3a
+++ b/gns3server/appliances/raspian.gns3a
@@ -15,7 +15,7 @@
"usage": "Default password is raspberry",
"symbol": "rpi.png",
"qemu": {
- "adapter_type": "virtio",
+ "adapter_type": "e1000",
"adapters": 1,
"ram": 1024,
"hda_disk_interface": "sata",
@@ -25,6 +25,20 @@
},
"images": [
{
+ "filename": "2022-07-01-raspios-bullseye-i386.iso",
+ "version": "2022-07-01",
+ "md5sum": "e57f42852306ac5ed0d9e97bdc3513cb",
+ "filesize": 3607101440,
+ "download_url": "https://www.raspberrypi.org/downloads/raspberry-pi-desktop/"
+ },
+ {
+ "filename": "2021-01-11-raspios-buster-i386.iso",
+ "version": "2021-01-11",
+ "md5sum": "14c0b29c393adee45b90d265b3243564",
+ "filesize": 3091660800,
+ "download_url": "https://www.raspberrypi.org/downloads/raspberry-pi-desktop/"
+ },
+ {
"filename": "2020-02-12-rpd-x86-buster.iso",
"version": "2020-02-12",
"md5sum": "98f34fb53086752b4c9c452094f30740",
@@ -41,6 +55,20 @@
],
"versions": [
{
+ "name": "2022-07-01",
+ "images": {
+ "hda_disk_image": "empty8G.qcow2",
+ "cdrom_image": "2022-07-01-raspios-bullseye-i386.iso"
+ }
+ },
+ {
+ "name": "2021-01-11",
+ "images": {
+ "hda_disk_image": "empty8G.qcow2",
+ "cdrom_image": "2021-01-11-raspios-buster-i386.iso"
+ }
+ },
+ {
"name": "2020-02-12",
"images": {
"hda_disk_image": "empty8G.qcow2",
diff --git a/gns3server/appliances/ubuntu-cloud.gns3a b/gns3server/appliances/ubuntu-cloud.gns3a
index c31af598..d0ddd03e 100644
--- a/gns3server/appliances/ubuntu-cloud.gns3a
+++ b/gns3server/appliances/ubuntu-cloud.gns3a
@@ -26,6 +26,13 @@
"options": "-nographic"
},
"images": [
+ {
+ "filename": "ubuntu-22.04-server-cloudimg-amd64.img",
+ "version": "22.04 (LTS)",
+ "md5sum": "ac2351289daa173fa1ed6b2b81d81d7c",
+ "filesize": 624295936,
+ "download_url": "https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img"
+ },
{
"filename": "ubuntu-20.04-server-cloudimg-amd64.img",
"version": "20.04 (LTS)",
@@ -70,6 +77,13 @@
}
],
"versions": [
+ {
+ "name": "22.04 (LTS)",
+ "images": {
+ "hda_disk_image": "ubuntu-22.04-server-cloudimg-amd64.img",
+ "cdrom_image": "ubuntu-cloud-init-data.iso"
+ }
+ },
{
"name": "20.04 (LTS)",
"images": {
diff --git a/gns3server/appliances/ubuntu-server.gns3a b/gns3server/appliances/ubuntu-server.gns3a
index 13cabbed..534be61c 100644
--- a/gns3server/appliances/ubuntu-server.gns3a
+++ b/gns3server/appliances/ubuntu-server.gns3a
@@ -11,7 +11,7 @@
"registry_version": 3,
"status": "stable",
"maintainer": "Mohamad Siblini",
- "maintainer_email": "https://www.ictkin.com/contact",
+ "maintainer_email": "info@ictkin.com",
"usage": "Username: gns3\nPassword: gns3 | MD5: 435f15a54f7f673e302ad26f05226e0e",
"port_name_format": "ens{0}",
"qemu": {
diff --git a/gns3server/compute/docker/resources/init.sh b/gns3server/compute/docker/resources/init.sh
index 8040d025..e21627d7 100755
--- a/gns3server/compute/docker/resources/init.sh
+++ b/gns3server/compute/docker/resources/init.sh
@@ -20,7 +20,7 @@
# the start command of the container
#
OLD_PATH="$PATH"
-PATH=/gns3/bin:/tmp/gns3/bin:/sbin
+PATH=/gns3/bin:/tmp/gns3/bin:/sbin:$PATH
# bootstrap busybox commands
if [ ! -d /tmp/gns3/bin ]; then
diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py
index 2ea049a5..bf69b863 100644
--- a/gns3server/controller/compute.py
+++ b/gns3server/controller/compute.py
@@ -367,9 +367,6 @@ class Compute:
log.warning("Cannot connect to compute '{}': {}".format(self._id, e))
# Try to reconnect after 5 seconds if server unavailable only if not during tests (otherwise we create a ressource usage bomb)
if not hasattr(sys, "_called_from_test") or not sys._called_from_test:
- if self.id != "local" and self.id != "vm" and not self._controller.compute_has_open_project(self):
- log.warning("Not reconnecting to compute '{}' because there is no project opened on it".format(self._id))
- return
self._connection_failure += 1
# After 5 failure we close the project using the compute to avoid sync issues
if self._connection_failure == 10:
diff --git a/gns3server/crash_report.py b/gns3server/crash_report.py
index 983267e8..31d4b37e 100644
--- a/gns3server/crash_report.py
+++ b/gns3server/crash_report.py
@@ -58,7 +58,7 @@ class CrashReport:
Report crash to a third party service
"""
- DSN = "https://0d263705382642f287a1ed05fce61171@o19455.ingest.sentry.io/38482"
+ DSN = "https://3f074423e7664595923ae5895b0819c4@o19455.ingest.sentry.io/38482"
_instance = None
def __init__(self):
diff --git a/gns3server/version.py b/gns3server/version.py
index f3866e46..bdef617c 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.33.1"
-__version_info__ = (2, 2, 33, 0)
+__version__ = "2.2.34"
+__version_info__ = (2, 2, 34, 0)
if "dev" in __version__:
try:
diff --git a/gns3server/web/route.py b/gns3server/web/route.py
index d1275250..e788a32c 100644
--- a/gns3server/web/route.py
+++ b/gns3server/web/route.py
@@ -147,7 +147,7 @@ class Route(object):
else:
route = path
- # Compute metadata for the documentation
+ # Compute metadata for the documentation
if api_version:
handler = func.__module__.replace("_handler", "").replace("gns3server.handlers.api.", "")
cls._documentation.setdefault(handler, {})
diff --git a/pytest.ini b/pytest.ini
index c1ea2797..a37fdb73 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -1,3 +1,4 @@
[pytest]
+asyncio_mode=auto
log_level=NOTSET
ignore=env
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index f84b9115..4703e6dc 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -3,7 +3,7 @@ aiohttp==3.8.1
aiohttp-cors==0.7.0
aiofiles==0.8.0
Jinja2==3.0.3
-sentry-sdk==1.5.12
+sentry-sdk==1.9.5
psutil==5.9.1
async-timeout==4.0.2
distro==1.7.0
diff --git a/tests/compute/dynamips/test_dynamips_router.py b/tests/compute/dynamips/test_dynamips_router.py
index 3ab250a1..7657422e 100644
--- a/tests/compute/dynamips/test_dynamips_router.py
+++ b/tests/compute/dynamips/test_dynamips_router.py
@@ -18,7 +18,6 @@
import os
import uuid
import pytest
-import asyncio
from gns3server.compute.dynamips.nodes.router import Router
from gns3server.compute.dynamips.dynamips_error import DynamipsError
diff --git a/tests/compute/test_base_node.py b/tests/compute/test_base_node.py
index 9052a818..d96c67ce 100644
--- a/tests/compute/test_base_node.py
+++ b/tests/compute/test_base_node.py
@@ -18,7 +18,6 @@
from collections import OrderedDict
import pytest
-import asyncio
from tests.utils import asyncio_patch, AsyncioMagicMock
diff --git a/tests/compute/vmware/test_vmware_manager.py b/tests/compute/vmware/test_vmware_manager.py
index a26dbed1..9953d1e8 100644
--- a/tests/compute/vmware/test_vmware_manager.py
+++ b/tests/compute/vmware/test_vmware_manager.py
@@ -15,7 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-
import pytest
from gns3server.compute.vmware import VMware
diff --git a/tests/compute/vmware/test_vmware_vm.py b/tests/compute/vmware/test_vmware_vm.py
index 22bf1d46..d160e245 100644
--- a/tests/compute/vmware/test_vmware_vm.py
+++ b/tests/compute/vmware/test_vmware_vm.py
@@ -16,7 +16,6 @@
# along with this program. If not, see .
import pytest
-import asyncio
from gns3server.compute.vmware.vmware_vm import VMwareVM
from gns3server.compute.vmware import VMware
diff --git a/tests/controller/gns3vm/test_virtualbox_gns3_vm.py b/tests/controller/gns3vm/test_virtualbox_gns3_vm.py
index eb90dce0..eac3bf22 100644
--- a/tests/controller/gns3vm/test_virtualbox_gns3_vm.py
+++ b/tests/controller/gns3vm/test_virtualbox_gns3_vm.py
@@ -16,7 +16,6 @@
# along with this program. If not, see .
import pytest
-import asyncio
from tests.utils import asyncio_patch, AsyncioMagicMock
from gns3server.utils.asyncio import wait_run_in_executor