diff --git a/CHANGELOG b/CHANGELOG
index b628fe23..dabf13c0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,9 +1,19 @@
# Change Log
+## 2.2.53 21/01/2025
+
+* Bundle web-ui v2.2.53
+* Add more information when patching .vbox file. Ref https://github.com/GNS3/gns3-gui/issues/3542
+* Increase timeout to run compute HTTP queries. Fixes #2461
+* Use 'allow_methods="*"' in aiohttp_cors.ResourceOptions(). Fixes #2459
+* Upgrade dependencies
+* Update remote-install.sh to support a custom repository and the deb822 source format
+* Fix: do not use the iourc file if IOU licence check is not enabled
+
+
## 2.2.52 02/12/2024
* Bundle web-ui v2.2.52
-* Sync appliances
* Remove restrictions based on file extension when listing images and fix ELF header checks
* Fix use project name instead of ID for fast duplication when running local server. Fixes #2446
* Overwrite user resources when the originals have changed.
diff --git a/gns3server/appliances/alpine-cloud.gns3a b/gns3server/appliances/alpine-cloud.gns3a
new file mode 100644
index 00000000..00157093
--- /dev/null
+++ b/gns3server/appliances/alpine-cloud.gns3a
@@ -0,0 +1,56 @@
+{
+ "appliance_id": "edbaa01e-2032-4ee2-bb9f-dd5c4d84c270",
+ "name": "Alpine Cloud Guest",
+ "category": "guest",
+ "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",
+ "product_url": "https://www.alpinelinux.org/cloud/",
+ "registry_version": 4,
+ "status": "stable",
+ "maintainer": "GNS3 Team",
+ "maintainer_email": "developers@gns3.net",
+ "usage": "\nUsername: alpine\nPassword: alpine",
+ "port_name_format": "Ethernet{0}",
+ "qemu": {
+ "adapter_type": "virtio-net-pci",
+ "adapters": 1,
+ "ram": 1024,
+ "hda_disk_interface": "virtio",
+ "arch": "x86_64",
+ "console_type": "telnet",
+ "boot_priority": "c",
+ "kvm": "require",
+ "options": "-nographic"
+ },
+ "images": [
+ {
+ "filename": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
+ "version": "3.21.2",
+ "md5sum": "b40825dff2867e0ffaffbc4c87674462",
+ "filesize": 189726720,
+ "download_url": "https://www.alpinelinux.org/cloud/",
+ "direct_download_url": "https://dl-cdn.alpinelinux.org/alpine/v3.21/releases/cloud/generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2"
+ },
+ {
+ "filename": "alpine-cloud-init-data.iso",
+ "version": "1.0",
+ "md5sum": "b1b4b16cc3bf0250c0fa377c19c97683",
+ "filesize": 374784,
+ "download_url": "https://github.com/GNS3/gns3-registry/tree/master/cloud-init/alpine-cloud",
+ "direct_download_url": "https://github.com/GNS3/gns3-registry/raw/master/cloud-init/alpine-cloud/alpine-cloud-init-data.iso"
+ }
+ ],
+ "versions": [
+ {
+ "name": "3.21.2",
+ "images": {
+ "hda_disk_image": "generic_alpine-3.21.2-x86_64-bios-cloudinit-r0.qcow2",
+ "cdrom_image": "alpine-cloud-init-data.iso"
+ }
+ }
+ ]
+}
diff --git a/gns3server/appliances/arista-veos.gns3a b/gns3server/appliances/arista-veos.gns3a
index 29596d98..9a01ce25 100644
--- a/gns3server/appliances/arista-veos.gns3a
+++ b/gns3server/appliances/arista-veos.gns3a
@@ -2,14 +2,14 @@
"appliance_id": "c90f3ff3-4ed2-4437-9afb-21232fa92015",
"name": "Arista vEOS",
"category": "multilayer_switch",
- "description": "Arista EOS\u00ae is the core of Arista cloud networking solutions for next-generation data centers and cloud networks. Cloud architectures built with Arista EOS scale to tens of thousands of compute and storage nodes with management and provisioning capabilities that work at scale. Through its programmability, EOS enables a set of software applications that deliver workflow automation, high availability, unprecedented network visibility and analytics and rapid integration with a wide range of third-party applications for virtualization, management, automation and orchestration services.\n\nArista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using familiar industry standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.",
+ "description": "Arista EOS is the core of Arista cloud networking solutions for next-generation data centers and cloud networks. Cloud architectures built with Arista EOS scale to tens of thousands of compute and storage nodes with management and provisioning capabilities that work at scale. Through its programmability, EOS enables a set of software applications that deliver workflow automation, high availability, unprecedented network visibility and analytics and rapid integration with a wide range of third-party applications for virtualization, management, automation and orchestration services.\n\nArista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using familiar industry standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.",
"vendor_name": "Arista",
"vendor_url": "http://www.arista.com/",
"documentation_url": "https://www.arista.com/assets/data/docs/Manuals/EOS-4.17.2F-Manual.pdf",
"product_name": "vEOS",
"product_url": "https://eos.arista.com/",
"registry_version": 4,
- "status": "experimental",
+ "status": "stable",
"maintainer": "GNS3 Team",
"maintainer_email": "developers@gns3.net",
"usage": "The login is admin, with no password by default",
@@ -29,87 +29,24 @@
},
"images": [
{
- "filename": "vEOS64-lab-4.32.0F.vmdk",
- "version": "4.32.0F",
- "md5sum": "851771260bb18ad3e90fa6956f0c6161",
- "filesize": 591724544,
+ "filename": "vEOS-lab-4.33.1F.qcow2",
+ "version": "4.33.1F",
+ "md5sum": "8f662409c0732ed9f682edce63601e8a",
+ "filesize": 611909632,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
- "filename": "vEOS64-lab-4.31.3M.vmdk",
- "version": "4.31.3M",
- "md5sum": "7df107da137f4a4e752014d4f0e94cd3",
- "filesize": 577961984,
+ "filename": "vEOS-lab-4.32.3M.qcow2",
+ "version": "4.32.3M",
+ "md5sum": "46fc46f5ed1da8752eed8396f08862f8",
+ "filesize": 605683712,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
- "filename": "vEOS64-lab-4.30.6M.vmdk",
- "version": "4.30.6M",
- "md5sum": "19721aace820b9ebf6d7ae6524803cf5",
- "filesize": 553123840,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS64-lab-4.29.8M.vmdk",
- "version": "4.29.8M",
- "md5sum": "131888f74cd63a93894521d40eb4d0b6",
- "filesize": 548405248,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS64-lab-4.28.11M.vmdk",
- "version": "4.28.11M",
- "md5sum": "6cac0e7b04a74ee0dc358327a00accfd",
- "filesize": 513343488,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS64-lab-4.27.12M.vmdk",
- "version": "4.27.12M",
- "md5sum": "34c4f785c7fc054cda8754dd13c0d7c7",
- "filesize": 496697344,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.32.0F.vmdk",
- "version": "4.32.0F",
- "md5sum": "584b901a1249717504050e48f74fb8dd",
- "filesize": 591396864,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.31.3M.vmdk",
- "version": "4.31.3M",
- "md5sum": "a2e130697cdf8547006eebebde6eefca",
- "filesize": 590086144,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.30.6M.vmdk",
- "version": "4.30.6M",
- "md5sum": "a4467648bcfa7b19640af8a4ad3153c6",
- "filesize": 565968896,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.29.8M.vmdk",
- "version": "4.29.8M",
- "md5sum": "1952f6114a4376212c525db9ec8efd5f",
- "filesize": 558039040,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.28.11M.vmdk",
- "version": "4.28.11M",
- "md5sum": "5502df24dfc231c45afb33d6018c16d0",
- "filesize": 521338880,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.27.12M.vmdk",
- "version": "4.27.12M",
- "md5sum": "e08a97e7c1977993f947fedeb4c6ddd5",
- "filesize": 504299520,
+ "filename": "vEOS-lab-4.31.6M.qcow2",
+ "version": "4.31.6M",
+ "md5sum": "7410110b77472f058322ec4681f8a356",
+ "filesize": 590479360,
"download_url": "https://www.arista.com/en/support/software-download"
},
{
@@ -118,459 +55,28 @@
"md5sum": "8d7e754efebca1930a93a2587ff7606c",
"filesize": 6291456,
"download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.26.2F.vmdk",
- "version": "4.26.2F",
- "md5sum": "de8ce9750fddb63bd3f71bccfcd7651e",
- "filesize": 475332608,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.25.3M.vmdk",
- "version": "4.25.3M",
- "md5sum": "2f196969036b4d283e86f15118d59c26",
- "filesize": 451543040,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.24.3M.vmdk",
- "version": "4.24.3M",
- "md5sum": "0a28e44c7ce4a8965f24a4a463a89b7d",
- "filesize": 455213056,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.24.2.1F.vmdk",
- "version": "4.24.2.1F",
- "md5sum": "6bab8b59ce5230e243e56f4127448fc8",
- "filesize": 455213056,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.23.4.2M.vmdk",
- "version": "4.23.4.2M",
- "md5sum": "d21cbef4e39f1e783b13a926cb54a242",
- "filesize": 454295552,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.23.0.1F.vmdk",
- "version": "4.23.0.1F",
- "md5sum": "08d52154aa11a834aef9f42bbf29f977",
- "filesize": 439484416,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.22.2.1F.vmdk",
- "version": "4.22.2.1F",
- "md5sum": "2a425bf8efe569a2bdf0e328f240cd16",
- "filesize": 426377216,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.22.0F.vmdk",
- "version": "4.22.0F",
- "md5sum": "cfcc75c2b8176cfd819afcfd6799b74c",
- "filesize": 414121984,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.21.1.1F.vmdk",
- "version": "4.21.1F",
- "md5sum": "02bfb7e53781fd44ff02357f201586d9",
- "filesize": 358809600,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.20.10M-combined.vmdk",
- "version": "4.20.10M-combined",
- "md5sum": "d1f2d650f93dbf24e04fdd2c9d62bd62",
- "filesize": 334626816,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.20.1F.vmdk",
- "version": "4.20.1F",
- "md5sum": "aadb6f3dbff28317f68cb4c4502d0db8",
- "filesize": 662044672,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.19.10M-combined.vmdk",
- "version": "4.19.10M-combined",
- "md5sum": "103daa45c33be4584cbe6adc60de46a3",
- "filesize": 324141056,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.19.10M.vmdk",
- "version": "4.19.10M",
- "md5sum": "665ed14389411ae5f16ba0a2ff84240a",
- "filesize": 637337600,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.18.10M-combined.vmdk",
- "version": "4.18.10M-combined",
- "md5sum": "e33e0ef5b8cecc84c5bb57569b36b9c6",
- "filesize": 317652992,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.18.10M.vmdk",
- "version": "4.18.10M",
- "md5sum": "1d87e9ace37fe3706dbf3e49c8d4d231",
- "filesize": 624427008,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.18.5M.vmdk",
- "version": "4.18.5M",
- "md5sum": "b1ee6268dbaf2b2276fd7a5286c7ce2b",
- "filesize": 623116288,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.18.1F.vmdk",
- "version": "4.18.1F",
- "md5sum": "9648c63185f3b793b47528a858ca4364",
- "filesize": 620625920,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.17.8M.vmdk",
- "version": "4.17.8M",
- "md5sum": "afc79a06f930ea2cc0ae3e03cbfd3f23",
- "filesize": 608829440,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.17.2F.vmdk",
- "version": "4.17.2F",
- "md5sum": "3b4845edfa77cf9aaeb9c0a005d3e277",
- "filesize": 609615872,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.16.13M.vmdk",
- "version": "4.16.13M",
- "md5sum": "4d0facf90140fc3aab031f0f8f88a32f",
- "filesize": 521404416,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.16.6M.vmdk",
- "version": "4.16.6M",
- "md5sum": "b3f7b7cee17f2e66bb38b453a4939fef",
- "filesize": 519962624,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.15.10M.vmdk",
- "version": "4.15.10M",
- "md5sum": "98e08281a9c48ddf6f3c5d62a124a20f",
- "filesize": 517079040,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.15.5M.vmdk",
- "version": "4.15.5M",
- "md5sum": "cd74bb69c7ee905ac3d33c4d109f3ab7",
- "filesize": 516030464,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.14.14M.vmdk",
- "version": "4.14.14M",
- "md5sum": "d81ba0522f4d7838d96f7985e41cdc47",
- "filesize": 422641664,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.13.16M.vmdk",
- "version": "4.13.16M",
- "md5sum": "5763b2c043830c341c8b1009f4ea9a49",
- "filesize": 404684800,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "vEOS-lab-4.13.8M.vmdk",
- "version": "4.13.8M",
- "md5sum": "a47145b9e6e7a24171c0850f8755535e",
- "filesize": 409010176,
- "download_url": "https://www.arista.com/en/support/software-download"
- },
- {
- "filename": "Aboot-veos-serial-8.0.0.iso",
- "version": "8.0.0",
- "md5sum": "488ad1c435d18c69bb8d69c7806457c9",
- "filesize": 5242880,
- "download_url": "https://www.arista.com/en/support/software-download"
}
],
"versions": [
{
- "name": "4.32.0F",
+ "name": "4.33.1F",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS64-lab-4.32.0F.vmdk"
+ "hdb_disk_image": "vEOS-lab-4.33.1F.qcow2"
}
},
{
- "name": "4.31.3M",
+ "name": "4.32.3M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS64-lab-4.31.3M.vmdk"
+ "hdb_disk_image": "vEOS-lab-4.32.3M.qcow2"
}
},
{
- "name": "4.30.6M",
+ "name": "4.31.6M",
"images": {
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS64-lab-4.30.6M.vmdk"
- }
- },
- {
- "name": "4.29.8M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS64-lab-4.29.8M.vmdk"
- }
- },
- {
- "name": "4.28.11M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS64-lab-4.28.11M.vmdk"
- }
- },
- {
- "name": "4.27.12M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS64-lab-4.27.12M.vmdk"
- }
- },
- {
- "name": "4.32.0F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS-lab-4.32.0F.vmdk"
- }
- },
- {
- "name": "4.31.3M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS-lab-4.31.3M.vmdk"
- }
- },
- {
- "name": "4.30.6M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS-lab-4.30.6M.vmdk"
- }
- },
- {
- "name": "4.29.8M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS-lab-4.29.8M.vmdk"
- }
- },
- {
- "name": "4.28.11M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS-lab-4.28.11M.vmdk"
- }
- },
- {
- "name": "4.27.12M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
- "hdb_disk_image": "vEOS-lab-4.27.12M.vmdk"
- }
- },
- {
- "name": "4.26.2F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.26.2F.vmdk"
- }
- },
- {
- "name": "4.25.3M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.25.3M.vmdk"
- }
- },
- {
- "name": "4.24.3M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.24.3M.vmdk"
- }
- },
- {
- "name": "4.24.2.1F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.24.2.1F.vmdk"
- }
- },
- {
- "name": "4.23.4.2M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.23.4.2M.vmdk"
- }
- },
- {
- "name": "4.23.0.1F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.23.0.1F.vmdk"
- }
- },
- {
- "name": "4.22.2.1F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.22.2.1F.vmdk"
- }
- },
- {
- "name": "4.22.0F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.22.0F.vmdk"
- }
- },
- {
- "name": "4.21.1F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.21.1.1F.vmdk"
- }
- },
- {
- "name": "4.20.10M-combined",
- "images": {
- "hda_disk_image": "vEOS-lab-4.20.10M-combined.vmdk"
- }
- },
- {
- "name": "4.20.1F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.20.1F.vmdk"
- }
- },
- {
- "name": "4.19.10M-combined",
- "images": {
- "hda_disk_image": "vEOS-lab-4.19.10M-combined.vmdk"
- }
- },
- {
- "name": "4.19.10M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.19.10M.vmdk"
- }
- },
- {
- "name": "4.18.10M-combined",
- "images": {
- "hda_disk_image": "vEOS-lab-4.18.10M-combined.vmdk"
- }
- },
- {
- "name": "4.18.10M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.18.10M.vmdk"
- }
- },
- {
- "name": "4.18.5M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.18.5M.vmdk"
- }
- },
- {
- "name": "4.18.1F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.18.1F.vmdk"
- }
- },
- {
- "name": "4.17.8M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.17.8M.vmdk"
- }
- },
- {
- "name": "4.17.2F",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.17.2F.vmdk"
- }
- },
- {
- "name": "4.16.13M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.16.13M.vmdk"
- }
- },
- {
- "name": "4.16.6M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.16.6M.vmdk"
- }
- },
- {
- "name": "4.15.10M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.15.10M.vmdk"
- }
- },
- {
- "name": "4.15.5M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.15.5M.vmdk"
- }
- },
- {
- "name": "4.14.14M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.14.14M.vmdk"
- }
- },
- {
- "name": "4.13.16M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.13.16M.vmdk"
- }
- },
- {
- "name": "4.13.8M",
- "images": {
- "hda_disk_image": "Aboot-veos-serial-8.0.0.iso",
- "hdb_disk_image": "vEOS-lab-4.13.8M.vmdk"
+ "hdb_disk_image": "vEOS-lab-4.31.6M.qcow2"
}
}
]
diff --git a/gns3server/appliances/cisco-iou-l2.gns3a b/gns3server/appliances/cisco-iou-l2.gns3a
index 031a608a..4978d275 100644
--- a/gns3server/appliances/cisco-iou-l2.gns3a
+++ b/gns3server/appliances/cisco-iou-l2.gns3a
@@ -25,7 +25,7 @@
"filesize": 243251976
},
{
- "filename": "x86_64_crb_linux_l2-adventerprisek9-ms.bin",
+ "filename": "x86_64_crb_linux_l2-adventerprisek9-ms",
"version": "17.12.1",
"md5sum": "2b5055e4cef8fd257416d74a94adb626",
"filesize": 240355720
@@ -59,7 +59,7 @@
{
"name": "17.12.1",
"images": {
- "image": "x86_64_crb_linux_l2-adventerprisek9-ms.bin"
+ "image": "x86_64_crb_linux_l2-adventerprisek9-ms"
}
},
{
diff --git a/gns3server/appliances/cisco-iou-l3.gns3a b/gns3server/appliances/cisco-iou-l3.gns3a
index 296fd05d..fe686a9c 100644
--- a/gns3server/appliances/cisco-iou-l3.gns3a
+++ b/gns3server/appliances/cisco-iou-l3.gns3a
@@ -25,7 +25,7 @@
"filesize": 292001512
},
{
- "filename": "x86_64_crb_linux-adventerprisek9-ms.bin",
+ "filename": "x86_64_crb_linux-adventerprisek9-ms",
"version": "17.12.1",
"md5sum": "4a2fce8de21d1831fbceffd155e41ae7",
"filesize": 288947184
@@ -59,7 +59,7 @@
{
"name": "17.12.1",
"images": {
- "image": "x86_64_crb_linux-adventerprisek9-ms.bin"
+ "image": "x86_64_crb_linux-adventerprisek9-ms"
}
},
{
diff --git a/gns3server/appliances/innovaphone-app.gns3a b/gns3server/appliances/innovaphone-app.gns3a
new file mode 100644
index 00000000..e7b274dd
--- /dev/null
+++ b/gns3server/appliances/innovaphone-app.gns3a
@@ -0,0 +1,50 @@
+{
+ "appliance_id": "92dbd0e9-144e-4c59-a4a8-97b6a1661818",
+ "name": "Innovaphone App-Platform",
+ "category": "guest",
+ "description": "In addition to telephony, apps for Video Telephony, Chat, Conferencing, Application Sharing and many other functions have become indispensable UCC tools in the area of business communication. Based on the myApps platform and its various components, innovaphone provides a collaborative work and communication platform for enhanced corporate communications \u2013 regardless of the location and the device being used. The innovaphone platform myApps consists of many independent components that work well individually, yet unfold their remarkable performance when combined.",
+ "vendor_name": "Innovaphone",
+ "vendor_url": "https://www.innovaphone.com",
+ "vendor_logo_url": "https://www.innovaphone.com/content/downloads/innovaphone-myapps-logo-short-without-background-screen.png",
+ "documentation_url": "https://wiki.innovaphone.com/index.php?title=Reference14r2:Concept_App_Platform",
+ "product_name": "App-Platform",
+ "product_url": "https://www.innovaphone.com/en/products/myapps/myapps-platform.html",
+ "registry_version": 4,
+ "status": "experimental",
+ "availability": "free-to-try",
+ "maintainer": "Thomas Marchsteiner",
+ "maintainer_email": "thomas.marchsteiner@acp.at",
+ "usage": "Default users console:root/iplinux , ssh:admin/ipapps , Webinterface:pwd \nAfter first boot wait for automatic reboot.\nA static ip can be set via the setip utility. \nLoading another keymap can be done via the loadkeys command. \nThe app-platform-disk1.vmdk file is contained within an ova file. \nIt can be extraced with the tar utility, 7Zip or any other tool which can handle tar files.",
+ "symbol": "innovaphone-ap-icon.jpg",
+ "first_port_name": "eth0",
+ "qemu": {
+ "adapter_type": "vmxnet3",
+ "adapters": 1,
+ "ram": 512,
+ "cpus": 1,
+ "hda_disk_interface": "scsi",
+ "arch": "x86_64",
+ "console_type": "vnc",
+ "boot_priority": "d",
+ "kvm": "allow",
+ "on_close": "power_off",
+ "process_priority": "normal"
+ },
+ "images": [
+ {
+ "filename": "app-platform-disk1_120010.vmdk",
+ "version": "12.0010",
+ "md5sum": "d5a5a77f682c2c988b0810935d79a787",
+ "filesize": 129474560,
+ "download_url": "https://store.innovaphone.com/"
+ }
+ ],
+ "versions": [
+ {
+ "images": {
+ "hda_disk_image": "app-platform-disk1_120010.vmdk"
+ },
+ "name": "12.0010"
+ }
+ ]
+}
diff --git a/gns3server/appliances/innovaphone-ipva.gns3a b/gns3server/appliances/innovaphone-ipva.gns3a
new file mode 100644
index 00000000..ce05eb44
--- /dev/null
+++ b/gns3server/appliances/innovaphone-ipva.gns3a
@@ -0,0 +1,78 @@
+{
+ "appliance_id": "ddf8f7a4-60c0-4c9d-849c-ffc3c9d1d082",
+ "name": "Innovaphone IPVA",
+ "category": "guest",
+ "description": "The innovaphone PBX is a professional IP telephone system. The IPVA is a software-only solution. It appears as and performs as an innovaphone 'hard-box' excluding DSP-, ISDN-/AB-resources.",
+ "vendor_name": "Innovaphone",
+ "vendor_url": "https://www.innovaphone.com/",
+ "vendor_logo_url": "https://www.innovaphone.com/content/downloads/innovaphone-myapps-logo-short-without-background-screen.png",
+ "documentation_url": "https://wiki.innovaphone.com/index.php?title=Reference15r1:Concept_Innovaphone_Virtual_Appliance_(IPVA)",
+ "product_name": "IPVA",
+ "product_url": "https://www.innovaphone.com/en/products/innovaphone-pbx.html",
+ "registry_version": 4,
+ "status": "experimental",
+ "availability": "free-to-try",
+ "maintainer": "Thomas Marchsteiner",
+ "maintainer_email": "thomas.marchsteiner@acp.at",
+ "usage": "Default user admin/ipva \nDefault network configuration: DHCP client on eth0 with fallback to static address 192.168.0.1/24 after timeout. Static address 192.168.1.1/24 on eth1\n The ova in the zip file contains the disk images to run this appliance. Disableing the dhcp client and setting a static IP is possible with the following commands:\n> config change IP0 ETH0 /addr 192.168.0.1 /mask 255.255.255.0 \n> config change DHCP0 /mode off \n> config write \n> config activate \n> reset",
+ "symbol": "innovaphone-pbx-green.png",
+ "first_port_name": "eth0",
+ "port_name_format": "eth{port1}",
+ "qemu": {
+ "adapter_type": "vmxnet3",
+ "adapters": 2,
+ "ram": 256,
+ "cpus": 1,
+ "hda_disk_interface": "ide",
+ "hdb_disk_interface": "ide",
+ "hdc_disk_interface": "ide",
+ "hdd_disk_interface": "ide",
+ "arch": "x86_64",
+ "console_type": "vnc",
+ "boot_priority": "d",
+ "kvm": "allow",
+ "on_close": "power_off",
+ "process_priority": "normal"
+ },
+ "images": [
+ {
+ "filename": "ipva-qemu-disk1-14r2.vmdk",
+ "version": "14r2",
+ "md5sum": "aaa1c3885eee30ca6ffa3827619e8643",
+ "filesize": 6269952,
+ "download_url": "https://store.innovaphone.com/"
+ },
+ {
+ "filename": "ipva-qemu-disk2-14r2.vmdk",
+ "version": "14r2",
+ "md5sum": "008a8fc6b0b1e5f11a3e7fd6f22ba349",
+ "filesize": 72192,
+ "download_url": "https://store.innovaphone.com/"
+ },
+ {
+ "filename": "ipva-qemu-disk3-14r2.vmdk",
+ "version": "14r2",
+ "md5sum": "20516731c480e2112b3fb4a4d7f514f2",
+ "filesize": 68096,
+ "download_url": "https://store.innovaphone.com/"
+ },
+ {
+ "filename": "ipva-qemu-disk4-14r2.vmdk",
+ "version": "14r2",
+ "md5sum": "15d7d79ef8c28bd29b2eceac8405f964",
+ "filesize": 68096,
+ "download_url": "https://store.innovaphone.com/"
+ }
+ ],
+ "versions": [
+ {
+ "images": {
+ "hda_disk_image": "ipva-qemu-disk1-14r2.vmdk",
+ "hdb_disk_image": "ipva-qemu-disk2-14r2.vmdk",
+ "hdc_disk_image": "ipva-qemu-disk3-14r2.vmdk",
+ "hdd_disk_image": "ipva-qemu-disk4-14r2.vmdk"
+ },
+ "name": "14r2"
+ }
+ ]
+}
diff --git a/gns3server/appliances/pfsense.gns3a b/gns3server/appliances/pfsense.gns3a
index c0f0ebfa..691026ca 100644
--- a/gns3server/appliances/pfsense.gns3a
+++ b/gns3server/appliances/pfsense.gns3a
@@ -24,6 +24,13 @@
"process_priority": "normal"
},
"images": [
+ {
+ "filename": "pfSense-CE-2.7.2-RELEASE-amd64.iso",
+ "version": "2.7.2",
+ "md5sum": "50c3e723d68ec74d038041a34fa846f8",
+ "filesize": 874672128,
+ "download_url": "https://www.pfsense.org/download/mirror.php?section=downloads"
+ },
{
"filename": "pfSense-CE-2.7.0-RELEASE-amd64.iso",
"version": "2.7.0",
@@ -76,6 +83,13 @@
}
],
"versions": [
+ {
+ "name": "2.7.2",
+ "images": {
+ "hda_disk_image": "empty100G.qcow2",
+ "cdrom_image": "pfSense-CE-2.7.2-RELEASE-amd64.iso"
+ }
+ },
{
"name": "2.7.0",
"images": {
diff --git a/gns3server/appliances/stormshield-eva.gns3a b/gns3server/appliances/stormshield-eva.gns3a
new file mode 100644
index 00000000..20f71cf1
--- /dev/null
+++ b/gns3server/appliances/stormshield-eva.gns3a
@@ -0,0 +1,50 @@
+{
+ "appliance_id": "60801097-332e-4f40-a63e-8ad62047c01f",
+ "name": "Stormshield EVA",
+ "category": "firewall",
+ "description": "Stormshield EVA (Elastic Virtual Appliance) is a french virtual firewall designed to protect network infrastructures. It offers advanced features such as filtering, intrusion prevention (IPS), VPN management (IPSec/SSL), and access control.",
+ "vendor_name": "Stormshield",
+ "vendor_url": "https://www.stormshield.com/",
+ "vendor_logo_url": "https://www.stormshield.com/wp-content/uploads/stormshield-logo.png",
+ "documentation_url": "https://www.stormshield.com/fr/ressourcescenter/network-security-elastic-virtual-appliances/",
+ "product_name": "Stormshield EVA",
+ "product_url": "https://www.stormshield.com/fr/produits-et-services/produits/protection-des-reseaux/nos-produits/appliances-virtuelles/",
+ "registry_version": 4,
+ "status": "stable",
+ "availability": "service-contract",
+ "maintainer": "Samy SCANNA",
+ "maintainer_email": "samy.scanna@outlook.com",
+ "usage": "After the first boot, the appliance automatically runs the configuration script to set up the password, and network interfaces.",
+ "symbol": "stormshield.png",
+ "port_name_format": "port{port1}",
+ "qemu": {
+ "adapter_type": "vmxnet3",
+ "adapters": 8,
+ "ram": 2048,
+ "cpus": 1,
+ "hda_disk_interface": "scsi",
+ "arch": "x86_64",
+ "console_type": "telnet",
+ "kvm": "allow",
+ "options": "-serial stdio",
+ "on_close": "shutdown_signal",
+ "process_priority": "normal"
+ },
+ "images": [
+ {
+ "filename": "utm-SNS-EVA-4.3.33-kvm.qcow2",
+ "version": "4.3.33",
+ "md5sum": "21d94d0e20f2e270f06c5853fd750d5b",
+ "filesize": 284360704,
+ "download_url": "https://mystormshield.eu/product/download/"
+ }
+ ],
+ "versions": [
+ {
+ "images": {
+ "hda_disk_image": "utm-SNS-EVA-4.3.33-kvm.qcow2"
+ },
+ "name": "4.3.33"
+ }
+ ]
+}
diff --git a/gns3server/compute/iou/iou_vm.py b/gns3server/compute/iou/iou_vm.py
index 4f9ddb2c..d82776ba 100644
--- a/gns3server/compute/iou/iou_vm.py
+++ b/gns3server/compute/iou/iou_vm.py
@@ -390,14 +390,16 @@ class IOUVM(BaseNode):
raise IOUError("The following shared library dependencies cannot be found for IOU image {}: {}".format(self._path,
", ".join(missing_libs)))
- async def _check_iou_licence(self):
+ def _is_iou_license_check_enabled(self):
"""
- Checks for a valid IOU key in the iourc file (paranoid mode).
+ Returns if IOU license check is enabled.
+
+ :return: boolean
"""
# license check is sent by the controller
if self.license_check is False:
- return
+ return False
try:
# we allow license check to be disabled server wide
@@ -407,7 +409,14 @@ class IOUVM(BaseNode):
if server_wide_license_check is False:
log.warning("License check is explicitly disabled on this server")
- return
+ return False
+
+ return True
+
+ async def _check_iou_license(self):
+ """
+ Checks for a valid IOU key in the iourc file (paranoid mode).
+ """
config = configparser.ConfigParser()
try:
@@ -511,15 +520,16 @@ class IOUVM(BaseNode):
except OSError as e:
raise IOUError("Could not rename nvram files: {}".format(e))
- iourc_path = self.iourc_path
- if not iourc_path:
- raise IOUError("Could not find an iourc file (IOU license), please configure an IOU license")
- if not os.path.isfile(iourc_path):
- raise IOUError("The iourc path '{}' is not a regular file".format(iourc_path))
+ iourc_path = None
+ if self._is_iou_license_check_enabled():
+ iourc_path = self.iourc_path
+ if not iourc_path:
+ raise IOUError("Could not find an iourc file (IOU license), please configure an IOU license")
+ if not os.path.isfile(iourc_path):
+ raise IOUError("The iourc path '{}' is not a regular file".format(iourc_path))
+ await self._check_iou_license()
- await self._check_iou_licence()
await self._start_ubridge()
-
self._create_netmap_config()
if self.use_default_iou_values:
# make sure we have the default nvram amount to correctly push the configs
@@ -531,7 +541,7 @@ class IOUVM(BaseNode):
self._nvram_watcher = FileWatcher(self._nvram_file(), self._nvram_changed, delay=2)
- # created a environment variable pointing to the iourc file.
+ # created an environment variable pointing to the iourc file.
env = os.environ.copy()
if "IOURC" not in os.environ and iourc_path:
env["IOURC"] = iourc_path
diff --git a/gns3server/compute/virtualbox/virtualbox_vm.py b/gns3server/compute/virtualbox/virtualbox_vm.py
index 79a7bc7d..5273bfe1 100644
--- a/gns3server/compute/virtualbox/virtualbox_vm.py
+++ b/gns3server/compute/virtualbox/virtualbox_vm.py
@@ -218,28 +218,45 @@ class VirtualBoxVM(BaseNode):
"""
Fix the VM uuid in the case of linked clone
"""
- if os.path.exists(self._linked_vbox_file()):
- try:
- tree = ET.parse(self._linked_vbox_file())
- except ET.ParseError:
- raise VirtualBoxError("Cannot modify VirtualBox linked nodes file. "
- "File {} is corrupted.".format(self._linked_vbox_file()))
- except OSError as e:
- raise VirtualBoxError("Cannot modify VirtualBox linked nodes file '{}': {}".format(self._linked_vbox_file(), e))
- machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
- if machine is not None and machine.get("uuid") != "{" + self.id + "}":
+ linked_vbox_file = self._linked_vbox_file()
+ if not os.path.exists(linked_vbox_file):
+ raise VirtualBoxError("Cannot find VirtualBox linked node file: {}".format(linked_vbox_file))
- for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
- currentSnapshot = machine.get("currentSnapshot")
- if currentSnapshot:
- newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
- shutil.move(os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
- os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi")
- image.set("uuid", newSnapshot)
+ try:
+ tree = ET.parse(linked_vbox_file)
+ except ET.ParseError:
+ raise VirtualBoxError("Cannot modify VirtualBox linked node file. "
+ "File {} is corrupted.".format(linked_vbox_file))
+ except OSError as e:
+ raise VirtualBoxError("Cannot modify VirtualBox linked node file '{}': {}".format(linked_vbox_file, e))
- machine.set("uuid", "{" + self.id + "}")
- tree.write(self._linked_vbox_file())
+ machine = tree.getroot().find("{http://www.virtualbox.org/}Machine")
+ if machine is not None and machine.get("uuid") != "{" + self.id + "}":
+
+ for image in tree.getroot().findall("{http://www.virtualbox.org/}Image"):
+ currentSnapshot = machine.get("currentSnapshot")
+ if currentSnapshot:
+ newSnapshot = re.sub(r"\{.*\}", "{" + str(uuid.uuid4()) + "}", currentSnapshot)
+ shutil.move(
+ os.path.join(self.working_dir, self._vmname, "Snapshots", currentSnapshot) + ".vdi",
+ os.path.join(self.working_dir, self._vmname, "Snapshots", newSnapshot) + ".vdi"
+ )
+ log.info("VirtualBox VM '{name}' [{id}] snapshot file moved from '{current}' to '{new}'".format(
+ name=self.name,
+ id=self.id,
+ current=currentSnapshot,
+ new=newSnapshot,
+ ))
+ image.set("uuid", newSnapshot)
+
+ log.info("VirtualBox VM '{name}' [{id}] '{vbox_file}' has been patched".format(
+ name=self.name,
+ id=self.id,
+ vbox_file=linked_vbox_file,
+ ))
+ machine.set("uuid", "{" + self.id + "}")
+ tree.write(linked_vbox_file)
async def check_hw_virtualization(self):
"""
@@ -458,7 +475,7 @@ class VirtualBoxVM(BaseNode):
async def save_linked_hdds_info(self):
"""
- Save linked cloned hard disks information.
+ Save linked cloned hard disk information.
:returns: disk table information
"""
diff --git a/gns3server/controller/compute.py b/gns3server/controller/compute.py
index 5d61027c..85247e94 100644
--- a/gns3server/controller/compute.py
+++ b/gns3server/controller/compute.py
@@ -18,14 +18,19 @@
import ipaddress
import aiohttp
import asyncio
-import async_timeout
import socket
import json
import uuid
import sys
import io
+
from operator import itemgetter
+if sys.version_info >= (3, 11):
+ from asyncio import timeout as asynctimeout
+else:
+ from async_timeout import timeout as asynctimeout
+
from ..utils import parse_version
from ..utils.asyncio import locking
from ..controller.controller_error import ControllerError
@@ -483,8 +488,8 @@ class Compute:
""" Returns URL for specific path at Compute"""
return self._getUrl(path)
- async def _run_http_query(self, method, path, data=None, timeout=20, raw=False):
- async with async_timeout.timeout(delay=timeout):
+ async def _run_http_query(self, method, path, data=None, timeout=120, raw=False):
+ async with asynctimeout(delay=timeout):
url = self._getUrl(path)
headers = {}
headers['content-type'] = 'application/json'
diff --git a/gns3server/crash_report.py b/gns3server/crash_report.py
index 5336d3e2..c05da41e 100644
--- a/gns3server/crash_report.py
+++ b/gns3server/crash_report.py
@@ -57,7 +57,7 @@ class CrashReport:
Report crash to a third party service
"""
- DSN = "https://b2ea85d65646be3f56aebf2458337918@o19455.ingest.us.sentry.io/38482"
+ DSN = "https://98c55f74bc61432b375d3eb392af9f7d@o19455.ingest.us.sentry.io/38482"
_instance = None
def __init__(self):
diff --git a/gns3server/static/web-ui/index.html b/gns3server/static/web-ui/index.html
index 4ecb05cb..40ccd469 100644
--- a/gns3server/static/web-ui/index.html
+++ b/gns3server/static/web-ui/index.html
@@ -46,6 +46,6 @@
gtag('config', 'G-0BT7QQV1W1');
-
+