Compare commits

..

18 Commits

Author SHA1 Message Date
9e4474de8d Release v2.2.3 2019-11-12 15:29:54 +08:00
9bda15236e Sync appliance files. 2019-11-12 15:23:37 +08:00
4daaea9cec Merge branch 'master' into 2.2 2019-11-12 15:20:12 +08:00
5e4e5c741b Merge pull request #1691 from JCDraaijer/master
Added workaround for #1690
2019-11-11 18:36:34 +08:00
7117b1fb65 Improved how the path to the config file is actually determined 2019-11-11 11:20:51 +01:00
992c60e3e0 Return HTTP status code 204 in API when project successfully closed. Fixes #1689 2019-11-11 15:32:57 +08:00
a98fc2d308 Python3.8 support. Ref https://github.com/GNS3/gns3-gui/issues/2895 2019-11-11 12:44:31 +08:00
2fd4b2cbc8 Make sure still support Python >= 3.5.3 2019-11-11 12:39:45 +08:00
3bd394b637 Added workaround for #1690. Added venv/ to .gitignore 2019-11-10 20:41:39 +01:00
7571c32563 Sync appliance files. 2019-11-08 18:24:22 +08:00
05b949930d Fix tests. 2019-11-08 17:25:59 +08:00
4075bbd703 Fix exception when adding VirtualBox VM. Fixes #1685. 2019-11-08 17:13:21 +08:00
3aba2a319c Set psutil to version 5.6.3 in requirements.txt 2019-11-08 10:44:17 +08:00
3a3ba2f54a Merge branch 'master' into 2.2 2019-11-08 10:42:44 +08:00
2fa2c715f5 Add LimitNOFILE=16384 to GNS3 service. Ref #1678 2019-11-07 16:28:47 +08:00
907207a140 Fix tests 2019-11-06 15:35:59 +08:00
539cf640d8 Change the default UDP port range to be 20000 to 30000. Ref #1271 2019-11-06 12:25:30 +08:00
6e7aeb1fdd Developement version on 2.2.3dev1 2019-11-04 19:45:18 +08:00
46 changed files with 529 additions and 114 deletions

1
.gitignore vendored
View File

@ -58,4 +58,5 @@ startup.vpcs
# Virtualenv
env
venv
.ropeproject

View File

@ -30,3 +30,4 @@ env:
- PYTHON_VERSION=3.5
- PYTHON_VERSION=3.6
- PYTHON_VERSION=3.7
- PYTHON_VERSION=3.8

View File

@ -1,5 +1,17 @@
# Change Log
## 2.2.3 12/11/2019
* Improved how the path to the config file is actually determined
* Return HTTP status code 204 in API when project successfully closed. Fixes #1689
* Python3.8 support. Ref https://github.com/GNS3/gns3-gui/issues/2895
* Make sure still support Python >= 3.5.3
* Added workaround for #1690. Added venv/ to .gitignore
* Fix exception when adding VirtualBox VM. Fixes #1685.
* Set psutil to version 5.6.3 in requirements.txt
* Add `LimitNOFILE=16384` to GNS3 service. Ref #1678
* Change the default UDP port range to be 20000 to 30000. Ref #1271
## 2.2.2 04/11/2019
* Release 2019.2.0-alpha.10

View File

@ -19,6 +19,15 @@
"kvm": "allow"
},
"images": [
{
"filename": "BSDRP-1.95-full-amd64-serial.img",
"version": "1.95",
"md5sum": "f1e080506a965e46503673c426b9c764",
"filesize": 2000000000,
"download_url": "https://bsdrp.net/downloads",
"direct_download_url": "https://sourceforge.net/projects/bsdrp/files/BSD_Router_Project/1.95/amd64/BSDRP-1.95-full-amd64-serial.img.xz/download",
"compression": "xz"
},
{
"filename": "BSDRP-1.92-full-amd64-serial.img",
"version": "1.92",
@ -66,6 +75,12 @@
}
],
"versions": [
{
"name": "1.95",
"images": {
"hda_disk_image": "BSDRP-1.95-full-amd64-serial.img"
}
},
{
"name": "1.92",
"images": {

View File

@ -16,7 +16,7 @@
"symbol": "mgmt_station.svg",
"qemu": {
"adapter_type": "e1000",
"adapters": 2,
"adapters": 3,
"ram": 8192,
"hda_disk_interface": "ide",
"arch": "x86_64",
@ -25,6 +25,13 @@
"options": "-smp 2"
},
"images": [
{
"filename": "dcnm-va.11.2.1.iso",
"version": "11.2.1",
"md5sum": "2e50e0a4ea72875c54edf593b7c93a66",
"filesize": 4782958592,
"download_url": "https://software.cisco.com/download/home/281722751/type/282088134/release/11.1%25281%2529"
},
{
"filename": "dcnm-va.11.1.1.iso",
"version": "11.1.1",
@ -49,6 +56,13 @@
}
],
"versions": [
{
"name": "11.2.1",
"images": {
"hda_disk_image": "empty100G.qcow2",
"cdrom_image": "dcnm-va.11.2.1.iso"
}
},
{
"name": "11.1.1",
"images": {

View File

@ -22,6 +22,13 @@
"kvm": "require"
},
"images": [
{
"filename": "ClearOS-7.6-DVD-x86_64.iso",
"version": "7.6",
"md5sum": "aca5827a37c18549aee2f5bbfbe49922",
"filesize": 1141899264,
"download_url": "https://www.clearos.com/clearfoundation/software/clearos-downloads"
},
{
"filename": "ClearOS-7.5-DVD-x86_64.iso",
"version": "7.5",
@ -60,6 +67,13 @@
}
],
"versions": [
{
"name": "7.6",
"images": {
"hda_disk_image": "empty30G.qcow2",
"cdrom_image": "ClearOS-7.6-DVD-x86_64.iso"
}
},
{
"name": "7.5",
"images": {

View File

@ -23,6 +23,14 @@
"kvm": "require"
},
"images": [
{
"filename": "cumulus-linux-3.7.10-vx-amd64-qemu.qcow2",
"version": "3.7.10",
"md5sum": "3474c950f9d348a6c9f0ce52b5698369",
"filesize": 576458240,
"download_url": "https://cumulusnetworks.com/cumulus-vx/download/",
"direct_download_url": "http://cumulusfiles.s3.amazonaws.com/CumulusLinux-3.7.10/cumulus-linux-3.7.10-vx-amd64-qemu.qcow2"
},
{
"filename": "cumulus-linux-3.7.6-vx-amd64-qemu.qcow2",
"version": "3.7.6",
@ -205,6 +213,12 @@
}
],
"versions": [
{
"name": "3.7.10",
"images": {
"hda_disk_image": "cumulus-linux-3.7.10-vx-amd64-qemu.qcow2"
}
},
{
"name": "3.7.6",
"images": {

View File

@ -1,7 +1,7 @@
{
"name": "EXOS VM",
"category": "multilayer_switch",
"description": "The ExtremeXOS VM is created and maintained by Extreme Networks for users to emulate a network using EXOS switches.",
"description": "The ExtremeXOS VM is created and maintained by Extreme Networks for users to emulate a network using EXOS switches.",
"vendor_name": "Extreme Networks",
"vendor_url": "https://www.extremenetworks.com",
"documentation_url": "https://www.extremenetworks.com/support/documentation",
@ -50,46 +50,11 @@
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.7.1.2.qcow2"
},
{
"filename": "EXOS-VM_v22.6.1.4.qcow2",
"version": "22.6.1.4",
"md5sum": "82b31b11b26143a82c8259a4825696fc",
"filesize": 180355072,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.6.1.4.qcow2"
},
{
"filename": "EXOS-VM_v22.5.1.7.qcow2",
"version": "22.5.1.7",
"md5sum": "d2e8ae6783b6ed777ad5cd8cafd83c86",
"filesize": 180289536,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.5.1.7.qcow2"
},
{
"filename": "EXOS-VM_v22.4.1.4-disk1.qcow2",
"version": "22.4.1.4",
"md5sum": "5f1ee41912d74d423ce8ae57ea413602",
"filesize": 229638144,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.4.1.4-disk1.qcow2"
},
{
"filename": "EXOS-VM_v22.3.1.4patch1-4-disk1.qcow2",
"version": "22.3.1.4",
"md5sum": "a4585b6e987ff730f5c044af339fe090",
"filesize": 218431488,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.3.1.4patch1-4-disk1.qcow2"
},
{
"filename": "EXOS-VM_v22.2.1.5-disk1.qcow2",
"version": "22.2.1.5",
"md5sum": "e3cfe92077addda6ad34185288c90acf",
"filesize": 179568640,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.2.1.5-disk1.qcow2"
},
{
"filename": "EXOS-VM_v22.1.1.5-disk1.qcow2",
"version": "22.1.1.5",
"md5sum": "77683060e75d81b776761f6829b15e9b",
"filesize": 179437568,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.1.1.5-disk1.qcow2"
"filename": "EXOS-VM_v21.1.1.4-disk1.qcow2",
"version": "21.1.1.4",
"md5sum": "654606809b6fd3bca400377483eb4a79",
"filesize": 117560832,
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v21.1.1.4-disk1.qcow2"
}
],
@ -114,41 +79,12 @@
"hda_disk_image": "EXOS-VM_v22.7.1.2.qcow2"
}
},
{
"name": "22.6.1.4",
"images": {
"hda_disk_image": "EXOS-VM_v22.6.1.4.qcow2"
}
},
{
"name": "22.5.1.7",
"images": {
"hda_disk_image": "EXOS-VM_v22.5.1.7.qcow2"
}
},
{
"name": "22.4.1.4",
"name": "21.1.1.4",
"images": {
"hda_disk_image": "EXOS-VM_v22.4.1.4-disk1.qcow2"
}
},
{
"name": "22.3.1.4",
"images": {
"hda_disk_image": "EXOS-VM_v22.3.1.4patch1-4-disk1.qcow2"
}
},
{
"name": "22.2.1.5",
"images": {
"hda_disk_image": "EXOS-VM_v22.2.1.5-disk1.qcow2"
}
},
{
"name": "22.1.1.5",
"images": {
"hda_disk_image": "EXOS-VM_v22.1.1.5-disk1.qcow2"
"hda_disk_image": "EXOS-VM_v21.1.1.4-disk1.qcow2"
}
}
]
}

View File

@ -34,6 +34,13 @@
"filesize": 30998528,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAD_KVM-V500-build0655-FORTINET.out.kvm-boot.qcow2",
"version": "5.3.3",
"md5sum": "aa16f574a234ceada5d8ac6cc6536835",
"filesize": 112918528,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAD_KVM-V500-build0442-FORTINET.out.kvm-boot.qcow2",
"version": "5.2.2",
@ -197,6 +204,13 @@
}
],
"versions": [
{
"name": "5.3.3",
"images": {
"hda_disk_image": "FAD_KVM-V500-build0655-FORTINET.out.kvm-boot.qcow2",
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
}
},
{
"name": "5.2.2",
"images": {

View File

@ -26,6 +26,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FAZ_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
"version": "6.2.2",
"md5sum": "d65ee8754bed66027a6ac095e0dc3e40",
"filesize": 152506368,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2",
"version": "6.2.0",
@ -33,6 +40,13 @@
"filesize": 140177408,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v6-build0349-FORTINET.out.kvm.qcow2",
"version": "6.0.6",
"md5sum": "47b83be1b22945df7f4f1c081722fd7a",
"filesize": 111235072,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAZ_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2",
"version": "6.0.3",
@ -155,6 +169,13 @@
}
],
"versions": [
{
"name": "6.2.2",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.2.0",
"images": {
@ -162,6 +183,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.6",
"images": {
"hda_disk_image": "FAZ_VM64_KVM-v6-build0349-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.3",
"images": {

View File

@ -26,6 +26,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FAC_VM_KVM-v6-build0058-FORTINET.out.kvm.qcow2",
"version": "6.0.3",
"md5sum": "5812e4ab63aa1feba85324897dd37fa5",
"filesize": 73912320,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FAC_VM_KVM-v6-build0010-FORTINET.out.kvm.qcow2",
"version": "6.0.0",
@ -105,6 +112,13 @@
}
],
"versions": [
{
"name": "6.0.3",
"images": {
"hda_disk_image": "FAC_VM_KVM-v6-build0058-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "FAC_VM_KVM-ALL-DATADRIVE.qcow2"
}
},
{
"name": "6.0.0",
"images": {

View File

@ -27,12 +27,31 @@
},
"images": [
{
"filename": "FGT_VM64_KVM-v6-build1010-FORTINET.out.kvm.qcow2",
"version": "6.2.2",
"md5sum": "da411e21e4c0bc25553d0e72201af7a4",
"filesize": 58916864,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},{
"filename": "FGT_VM64_KVM-v6-build0932-FORTINET.out.kvm.qcow2",
"version": "6.2.1",
"md5sum": "725d41460ed1858dc905dbe2846a8400",
"filesize": 58785792,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},{
"filename": "FGT_VM64_KVM-v6-build0866-FORTINET.out.kvm.qcow2",
"version": "6.2.0",
"md5sum": "588df9ba0db485976f6681810001ae73",
"filesize": 57868288,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v6-build0272-FORTINET.out.kvm.qcow2",
"version": "6.0.6",
"md5sum": "c71d14d1567ec7ad271be8a9d06dbe7b",
"filesize": 52076544,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FGT_VM64_KVM-v6-build0200-FORTINET.out.kvm.qcow2",
"version": "6.0.3",
@ -225,6 +244,20 @@
}
],
"versions": [
{
"name": "6.2.2",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v6-build1010-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.2.1",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v6-build0932-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.2.0",
"images": {
@ -239,6 +272,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.6",
"images": {
"hda_disk_image": "FGT_VM64_KVM-v6-build0272-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.0",
"images": {

View File

@ -26,6 +26,20 @@
"kvm": "allow"
},
"images": [
{
"filename": "FML_VMKV-64-v60-build0257-FORTINET.out.kvm.qcow2",
"version": "6.2.1",
"md5sum": "79449970d26979af79b0ccb7b0cf3880",
"filesize": 104464384,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FML_VMKV-64-v60-build0160-FORTINET.out.kvm.qcow2",
"version": "6.0.7",
"md5sum": "925a0b76607613962119cd5ea568458f",
"filesize": 99483648,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FML_VMKV-64-v60-build0143-FORTINET.out.kvm.qcow2",
"version": "6.0.4",
@ -169,6 +183,20 @@
}
],
"versions": [
{
"name": "6.2.1",
"images": {
"hda_disk_image": "FML_VMKV-64-v60-build0257-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.7",
"images": {
"hda_disk_image": "FML_VMKV-64-v60-build0160-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.4",
"images": {

View File

@ -26,6 +26,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FMG_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
"version": "6.2.2",
"md5sum": "f5051a8fe49d916bb554b9bae32a1eb4",
"filesize": 139145216,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v6-build1050-FORTINET.out.kvm.qcow2",
"version": "6.2.0",
@ -33,6 +40,13 @@
"filesize": 126894080,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v6-build0349-FORTINET.out.kvm.qcow2",
"version": "6.0.6",
"md5sum": "d03f024c948ba6e2bb9e66c11ca8f34c",
"filesize": 112553984,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FMG_VM64_KVM-v6-build0255-FORTINET.out.kvm.qcow2",
"version": "6.0.3",
@ -148,6 +162,13 @@
}
],
"versions": [
{
"name": "6.2.2",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v6-build1183-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.2.0",
"images": {
@ -155,6 +176,13 @@
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.6",
"images": {
"hda_disk_image": "FMG_VM64_KVM-v6-build0349-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.0.2",
"images": {

View File

@ -27,6 +27,13 @@
"options": "-smp 2"
},
"images": [
{
"filename": "FSA_KVM-v300-build0124-FORTINET.out.kvm.qcow2",
"version": "3.1.2",
"md5sum": "fc2b9a00d20063a6fa4103360d89a2d4",
"filesize": 186253824,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FSA_KVM-v300-build0060-FORTINET.out.kvm.qcow2",
"version": "3.0.4",
@ -106,6 +113,13 @@
}
],
"versions": [
{
"name": "3.1.2",
"images": {
"hda_disk_image": "FSA_KVM-v300-build0124-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "FSA-datadrive.qcow2"
}
},
{
"name": "3.0.4",
"images": {

View File

@ -28,6 +28,27 @@
"options": "-smp 4"
},
"images": [
{
"filename": "FortiSIEM-VA-5.2.5.1615-OS.qcow2",
"version": "5.2.5",
"md5sum": "dfdc08a213bb80bf3f078869aeef6da6",
"filesize": 4412970903,
"download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html"
},
{
"filename": "FortiSIEM-VA-5.2.5.1615-CMDB.qcow2",
"version": "5.2.5",
"md5sum": "3963f0439c41d9efd33b7f5bda3f1c2d",
"filesize": 46858240,
"download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html"
},
{
"filename": "FortiSIEM-VA-5.2.5.1615-SVN.qcow2",
"version": "5.2.5",
"md5sum": "e90b2da5e2c7f2e338a822a448f326b2",
"filesize": 46858240,
"download_url": "https://images-cdn.fortisiem.fortinet.com/VirtualAppliances/release510.html"
},
{
"filename": "FortiSIEM-VA-5.2.1.1553-OS.qcow2",
"version": "5.2.1",
@ -135,6 +156,14 @@
}
],
"versions": [
{
"name": "5.2.5",
"images": {
"hda_disk_image": "FortiSIEM-VA-5.2.5.1615-OS.qcow2",
"hdb_disk_image": "FortiSIEM-VA-5.2.5.1615-CMDB.qcow2",
"hdc_disk_image": "FortiSIEM-VA-5.2.5.1615-SVN.qcow2"
}
},
{
"name": "5.2.1",
"images": {

View File

@ -26,6 +26,13 @@
"kvm": "allow"
},
"images": [
{
"filename": "FWB_KVM-v600-build0727-FORTINET.out.kvm.qcow2",
"version": "6.2.1",
"md5sum": "05523a6db26030a8fc3d84e53902d162",
"filesize": 225313280,
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
},
{
"filename": "FWB_KVM-v600-build0383-FORTINET.out.kvm.qcow2",
"version": "6.1.0",
@ -114,6 +121,13 @@
],
"versions": [
{
"name": "6.2.1",
"images": {
"hda_disk_image": "FWB_KVM-v600-build0727-FORTINET.out.kvm.qcow2",
"hdb_disk_image": "empty30G.qcow2"
}
},
{
"name": "6.1.0",
"images": {

View File

@ -22,6 +22,15 @@
"kvm": "require"
},
"images": [
{
"filename": "FreeBSD-12.1-RELEASE-amd64.qcow2",
"version": "12.1",
"md5sum": "0079b4ca99f64bb825cfbaefcca10fd4",
"filesize": 3043229696,
"download_url": "https://www.freebsd.org/where.html",
"direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/12.1-RELEASE/amd64/Latest/FreeBSD-12.1-RELEASE-amd64.qcow2.xz",
"compression": "xz"
},
{
"filename": "FreeBSD-12.0-RELEASE-amd64.qcow2",
"version": "12.0",
@ -78,6 +87,12 @@
}
],
"versions": [
{
"name": "12.1",
"images": {
"hda_disk_image": "FreeBSD-12.1-RELEASE-amd64.qcow2"
}
},
{
"name": "12.0",
"images": {

View File

@ -24,13 +24,22 @@
"kvm": "allow"
},
"images": [
{
"filename": "ipfire-2.23.2gb-ext4.x86_64-full-core136.img",
"version": "2.23.136",
"md5sum": "56d4cdce08417a9ddb465e445bd4ef63",
"filesize": 1540358144,
"download_url": "http://www.ipfire.org/download",
"direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.23-core136/ipfire-2.23.2gb-ext4.x86_64-full-core136.img.xz",
"compression": "xz"
},
{
"filename": "ipfire-2.23.2gb-ext4.x86_64-full-core131.img",
"version": "2.23",
"version": "2.23.131",
"md5sum": "604c06e20c36985ff00802da4509340c",
"filesize": 1541160960,
"download_url": "http://www.ipfire.org/download",
"direct_download_url": "https://muug.ca/mirror/ipfire/releases/ipfire-2.x/2.23-core131/ipfire-2.23.2gb-ext4.x86_64-full-core131.img.xz",
"direct_download_url": "https://downloads.ipfire.org/releases/ipfire-2.x/2.23-core131/ipfire-2.23.2gb-ext4.x86_64-full-core131.img.xz",
"compression": "xz"
},
{

View File

@ -25,6 +25,24 @@
"options": "-nographic -enable-kvm"
},
"images": [
{
"filename": "junos-vmx-x86-64-19.3R1.8.qcow2",
"version": "19.3R1.8-KVM",
"md5sum": "cd14a6884edeb6b337d3c2be02241c63",
"filesize": 1435238400
},
{
"filename": "vmxhdd-19.3R1.8.img",
"version": "19.3R1.8-KVM",
"md5sum": "ae26e0f32605a53a5c85342bad677c9f",
"filesize": 197120
},
{
"filename": "metadata-usb-re-19.3R1.8.img",
"version": "19.3R1.8-KVM",
"md5sum": "3c66c4657773a0cd2b38ffd84115446a",
"filesize": 10485760
},
{
"filename": "junos-vmx-x86-64-17.4R1.16.qcow2",
"version": "17.4R1.16-KVM",
@ -318,6 +336,14 @@
}
],
"versions": [
{
"name": "19.3R1.8-KVM",
"images": {
"hda_disk_image": "junos-vmx-x86-64-19.3R1.8.qcow2",
"hdb_disk_image": "vmxhdd-19.3R1.8.img",
"hdc_disk_image": "metadata-usb-re-19.3R1.8.img"
}
},
{
"name": "17.4R1.16-KVM",
"images": {

View File

@ -25,6 +25,13 @@
"options": "-nographic -enable-kvm -smp cpus=3"
},
"images": [
{
"filename": "vFPC-20190819.img",
"version": "19.3R1.8-KVM",
"md5sum": "b77ca27a45a07c56b8f72905fafbe822",
"filesize": 2447376384,
"download_url": "http://www.juniper.net/us/en/products-services/routing/mx-series/vmx/"
},
{
"filename": "vFPC-20171213.img",
"version": "17.4R1.16-KVM",
@ -140,6 +147,12 @@
],
"versions": [
{
"name": "19.3R1.8-KVM",
"images": {
"hda_disk_image": "vFPC-20190819.img"
}
},
{
"name": "17.4R1.16-KVM",
"images": {

View File

@ -25,8 +25,8 @@
},
"images": [
{
"filename": "cosim_20180212.qcow2",
"version": "17.4R1",
"filename": "cosim-18.4R1.8_20180212.qcow2",
"version": "17.4R1 & 18.4R1",
"md5sum": "0372e9c1b7df3608099186ab8cbbf2ad",
"filesize": 1911291904,
"download_url": "https://www.juniper.net/us/en/dm/free-vqfx-trial/"
@ -41,9 +41,9 @@
],
"versions": [
{
"name": "17.4R1",
"name": "17.4R1 & 18.4R1",
"images": {
"hda_disk_image": "cosim_20180212.qcow2"
"hda_disk_image": "cosim-18.4R1.8_20180212.qcow2"
}
},
{

View File

@ -15,7 +15,7 @@
"usage": "Initial username is root, password is Juniper (capitol J).\n\nUSAGE INSTRUCTIONS\n\nConnect the first interface (em0) to your admin VLAN. Connect the second interface (em1) directly to the second interface (em1) of the PFE. The switch ports connect here on the RE",
"port_name_format": "em{0}",
"qemu": {
"adapter_type": "e1000",
"adapter_type": "virtio-net-pci",
"adapters": 12,
"ram": 1024,
"arch": "x86_64",
@ -24,6 +24,13 @@
"options": "-nographic -smp 2"
},
"images": [
{
"filename": "jinstall-vqfx-10-f-18.4R1.8.qcow2",
"version": "18.4R1",
"md5sum": "1b0dbd9a235f887e56a8506c0b2f684f",
"filesize": 549584896,
"download_url": "https://www.juniper.net/us/en/dm/free-vqfx-trial/"
},
{
"filename": "jinstall-vqfx-10-f-17.4R1.16.img",
"version": "17.4R1",
@ -40,6 +47,12 @@
}
],
"versions": [
{
"name": "18.4R1",
"images": {
"hda_disk_image": "jinstall-vqfx-10-f-18.4R1.8.qcow2"
}
},
{
"name": "17.4R1",
"images": {

View File

@ -15,7 +15,7 @@
"first_port_name": "fxp0",
"port_name_format": "ge-0/0/{0}",
"qemu": {
"adapter_type": "e1000",
"adapter_type": "vmxnet3",
"adapters": 6,
"ram": 4096,
"arch": "x86_64",
@ -24,6 +24,13 @@
"options": "-smp 2"
},
"images": [
{
"filename": "junos-media-vsrx-x86-64-vmdisk-19.3R1.8.qcow2",
"version": "19.3R1",
"md5sum": "4121122ccf9ec697fd26cdac91b81543",
"filesize": 5185142784,
"download_url": "https://www.juniper.net/us/en/dm/free-vsrx-trial/"
},
{
"filename": "junos-media-vsrx-vmdisk-18.1R1.9.qcow2",
"version": "18.1R1",
@ -145,6 +152,12 @@
}
],
"versions": [
{
"name": "19.3R1",
"images": {
"hda_disk_image": "junos-media-vsrx-x86-64-vmdisk-19.3R1.8.qcow2"
}
},
{
"name": "18.1R1",
"images": {

View File

@ -22,6 +22,14 @@
"kvm": "require"
},
"images": [
{
"filename": "kali-linux-2019.3-amd64.iso",
"version": "2019.3",
"md5sum": "9c6fb00558f78ed06992d89f745ef975",
"filesize": 3037736960,
"download_url": "https://www.kali.org/downloads/",
"direct_download_url": "http://cdimage.kali.org/kali-2019.3/kali-linux-2019.3-amd64.iso"
},
{
"filename": "kali-linux-2019.2-amd64.iso",
"version": "2019.2",
@ -128,6 +136,13 @@
}
],
"versions": [
{
"name": "2019.3",
"images": {
"hda_disk_image": "kali-linux-persistence-1gb.qcow2",
"cdrom_image": "kali-linux-2019.3-amd64.iso"
}
},
{
"name": "2019.2",
"images": {

View File

@ -23,6 +23,15 @@
"kvm": "require"
},
"images": [
{
"filename": "PacketFenceZEN_USB-9.1.0.img",
"version": "9.1.0",
"md5sum": "107a8b2f76105a72406ac76e4f356c6d",
"filesize": 3221225472,
"download_url": "https://packetfence.org/download.html#/zen",
"direct_download_url": "https://sourceforge.net/projects/packetfence/files/PacketFence%20ZEN/9.1.0/PacketFenceZEN_USB-9.1.0.tar.bz2/download",
"compression": "bzip2"
},
{
"filename": "PacketFenceZEN_USB-9.0.1.img",
"version": "9.0.1",
@ -88,6 +97,12 @@
}
],
"versions": [
{
"name": "9.1.0",
"images": {
"hda_disk_image": "PacketFenceZEN_USB-9.1.0.img"
}
},
{
"name": "9.0.1",
"images": {

View File

@ -0,0 +1,44 @@
{
"name": "Ubuntu Server",
"category": "guest",
"description": "This is a custom Ubuntu server which comes with Canonical security updates, Xorg and Telnetd",
"vendor_name": "Canonical Inc.",
"vendor_url": "https://www.ubuntu.com",
"documentation_url": "https://help.ubuntu.com",
"product_name": "Ubuntu",
"product_url": "https://ubuntu.com/server",
"registry_version": 3,
"status": "stable",
"maintainer": "Mohamad Siblini",
"maintainer_email": "https://www.ictkin.com/contact",
"usage": "Username: gns3\nPassword: gns3 | MD5: 435f15a54f7f673e302ad26f05226e0e",
"port_name_format": "ens{0}",
"qemu": {
"adapter_type": "virtio-net-pci",
"adapters": 1,
"ram": 2048,
"hda_disk_interface": "virtio",
"arch": "x86_64",
"console_type": "vnc",
"boot_priority": "c",
"kvm": "require",
"options": "-vga virtio"
},
"images": [
{
"filename": "Ubuntu Server 18.04.3 LTS (64bit).vmdk",
"version": "18.04.3",
"md5sum": "435f15a54f7f673e302ad26f05226e0e",
"filesize": 2707814912,
"download_url": "https://www.ictkin.com/gns3-appliance/"
}
],
"versions": [
{
"name": "18.04.3 LTS Server",
"images": {
"hda_disk_image": "Ubuntu Server 18.04.3 LTS (64bit).vmdk"
}
}
]
}

View File

@ -24,6 +24,14 @@
"kvm": "require"
},
"images": [
{
"filename": "zentyal-6.1-development-amd64.iso",
"version": "6.1",
"md5sum": "83ff98b344f4fbb354c32ae42ff57c7b",
"filesize": 1003487232,
"download_url": "http://download.zentyal.com/",
"direct_download_url": "http://download.zentyal.com/zentyal-6.1-development-amd64.iso"
},
{
"filename": "zentyal-6.0-development-amd64.iso",
"version": "6.0",
@ -90,6 +98,13 @@
}
],
"versions": [
{
"name": "6.1",
"images": {
"hda_disk_image": "empty100G.qcow2",
"cdrom_image": "zentyal-6.1-development-amd64.iso"
}
},
{
"name": "6.0",
"images": {

View File

@ -20,6 +20,15 @@
"kvm": "allow"
},
"images": [
{
"filename": "ZeroShell-3.9.3-X86-USB.img",
"version": "3.9.3",
"md5sum": "9be2b399f59df51e5026d81e45b8caf3",
"filesize": 1992294400,
"download_url": "http://www.zeroshell.org/download/",
"direct_download_url": "http://www.zeroshell.net/listing/ZeroShell-3.9.3-X86-USB.img.gz",
"compression": "gzip"
},
{
"filename": "ZeroShell-3.8.2-X86-USB.img",
"version": "3.8.2",
@ -58,6 +67,12 @@
}
],
"versions": [
{
"name": "3.9.3",
"images": {
"hda_disk_image": "ZeroShell-3.9.3-X86-USB.img"
}
},
{
"name": "3.8.2",
"images": {

View File

@ -50,8 +50,8 @@ class PortManager:
self._console_port_range = (console_start_port_range, console_end_port_range)
log.debug("Console port range is {}-{}".format(console_start_port_range, console_end_port_range))
udp_start_port_range = server_config.getint("udp_start_port_range", 10000)
udp_end_port_range = server_config.getint("udp_end_port_range", 20000)
udp_start_port_range = server_config.getint("udp_start_port_range", 20000)
udp_end_port_range = server_config.getint("udp_end_port_range", 30000)
self._udp_port_range = (udp_start_port_range, udp_end_port_range)
log.debug("UDP port range is {}-{}".format(udp_start_port_range, udp_end_port_range))

View File

@ -177,7 +177,7 @@ class VirtualBoxVM(BaseNode):
async def _refresh_vm_uuid(self):
vm_info = await self._get_vm_info()
self._uuid = vm_info.get("UUID")
self._uuid = vm_info.get("UUID", self._uuid)
if not self._uuid:
raise VirtualBoxError("Could not find any UUID for VM '{}'".format(self._vmname))
if "memory" in vm_info:
@ -205,6 +205,8 @@ class VirtualBoxVM(BaseNode):
else:
await self._refresh_vm_uuid()
await self._create_linked_clone()
else:
await self._refresh_vm_uuid()
if self._adapters:
await self.set_adapters(self._adapters)

View File

@ -45,6 +45,9 @@ class Config:
self._files = files
self._profile = profile
if files and len(files):
directory_name = os.path.dirname(files[0])
if not directory_name or directory_name == "":
files[0] = os.path.dirname(os.path.abspath(files[0])) + os.path.sep + files[0]
self._main_config_file = files[0]
else:
self._main_config_file = None

View File

@ -58,7 +58,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "https://8f93221a80eb4989bf0049270a2520e2:fcbe3d429cea43f9a863be198ac23c61@sentry.io/38482"
DSN = "https://dfe18e681fad4de580403c7432ae50d1:d9a1927b28c64836a41e4390c3242372@sentry.io/38482"
if hasattr(sys, "frozen"):
cacert = get_resource("cacert.pem")
if cacert is not None and os.path.isfile(cacert):

View File

@ -193,7 +193,7 @@ class ProjectHandler:
msg = json.dumps({"action": action, "event": msg}, sort_keys=True)
log.debug("Send notification: %s", msg)
await response.write(("{}\n".format(msg)).encode("utf-8"))
except asyncio.futures.TimeoutError:
except asyncio.TimeoutError:
await response.write("{}\n".format(json.dumps(ProjectHandler._getPingMessage())).encode("utf-8"))
project.stop_listen_queue(queue)
if project.id in ProjectHandler._notifications_listening:

View File

@ -54,13 +54,13 @@ class VirtualBoxHandler:
vbox_manager = VirtualBox.instance()
vm = await vbox_manager.create_node(request.json.pop("name"),
request.match_info["project_id"],
request.json.get("node_id"),
request.json.pop("vmname"),
linked_clone=request.json.pop("linked_clone", False),
console=request.json.get("console", None),
console_type=request.json.get("console_type", "telnet"),
adapters=request.json.get("adapters", 0))
request.match_info["project_id"],
request.json.get("node_id"),
request.json.pop("vmname"),
linked_clone=request.json.pop("linked_clone", False),
console=request.json.get("console", None),
console_type=request.json.get("console_type", "telnet"),
adapters=request.json.get("adapters", 0))
if "ram" in request.json:
ram = request.json.pop("ram")

View File

@ -166,8 +166,7 @@ class ProjectHandler:
controller = Controller.instance()
project = controller.get_project(request.match_info["project_id"])
await project.close()
response.set_status(201)
response.json(project)
response.set_status(204)
@Route.post(
r"/projects/{project_id}/open",

View File

@ -42,7 +42,7 @@ class NotificationQueue(asyncio.Queue):
try:
(action, msg, kwargs) = await asyncio.wait_for(super().get(), timeout)
except asyncio.futures.TimeoutError:
except asyncio.TimeoutError:
return ("ping", PingStats.get(), {})
return (action, msg, kwargs)

View File

@ -236,7 +236,7 @@ def run():
return
log.info("HTTP authentication is enabled with username '{}'".format(user))
# we only support Python 3 version >= 3.5
# we only support Python 3 version >= 3.5.3
if sys.version_info < (3, 5, 3):
raise SystemExit("Python 3.5.3 or higher is required")

View File

@ -22,8 +22,6 @@ import sys
import os
import threading
from asyncio.futures import CancelledError
async def wait_run_in_executor(func, *args, **kwargs):
"""
@ -56,7 +54,7 @@ async def cancellable_wait_run_in_executor(func, *args, **kwargs):
kwargs['stopped_event'] = stopped_event
try:
await wait_run_in_executor(func, *args, **kwargs)
except CancelledError:
except asyncio.CancelledError:
stopped_event.set()

View File

@ -23,8 +23,8 @@
# or negative for a release candidate or beta (after the base version
# number has been incremented)
__version__ = "2.2.2"
__version_info__ = (2, 2, 2, 0)
__version__ = "2.2.3"
__version_info__ = (2, 2, 3, 0)
if "dev" in __version__:
try:

View File

@ -20,13 +20,10 @@ import json
import urllib
import asyncio
import aiohttp
import logging
import traceback
import jsonschema
import jsonschema.exceptions
log = logging.getLogger(__name__)
from ..compute.error import NodeError, ImageMissingError
from ..controller.controller_error import ControllerError
from ..ubridge.ubridge_error import UbridgeError
@ -36,6 +33,10 @@ from ..crash_report import CrashReport
from ..config import Config
import logging
log = logging.getLogger(__name__)
async def parse_request(request, input_schema, raw):
"""Parse body of request and raise HTTP errors in case of problems"""
@ -217,7 +218,7 @@ class Route(object):
response = Response(request=request, route=route)
response.set_status(409)
response.json({"message": str(e), "status": 409, "image": e.image, "exception": e.__class__.__name__})
except asyncio.futures.CancelledError:
except asyncio.CancelledError:
response = Response(request=request, route=route)
response.set_status(408)
response.json({"message": "Request canceled", "status": 408})

View File

@ -1,3 +1,4 @@
yarl==1.3.0 # yarl 1.4+ requires Python 3.6+ (needed by aiohttp and aiohttp-cors)
jsonschema==2.6.0 # pyup: ignore
aiohttp==3.6.2
aiohttp-cors==0.7.0
@ -5,6 +6,6 @@ aiofiles==0.4.0
async_generator>=1.10
Jinja2>=2.7.3
raven>=5.23.0
psutil>=3.0.0
psutil==5.6.3
async-timeout==3.0.1
distro>=1.3.0

View File

@ -266,6 +266,7 @@ ExecStartPre=/bin/chown -R gns3:gns3 /var/log/gns3 /var/run/gns3
ExecStart=/usr/bin/gns3server --log /var/log/gns3/gns3.log
Restart=on-failure
RestartSec=5
LimitNOFILE=16384
[Install]
WantedBy=multi-user.target

View File

@ -77,6 +77,7 @@ setup(
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: Implementation :: CPython",
],
)

View File

@ -91,9 +91,9 @@ def test_reserve_tcp_port_already_used():
def test_reserve_udp_port():
pm = PortManager()
project = Project(project_id=str(uuid.uuid4()))
pm.reserve_udp_port(10000, project)
pm.reserve_udp_port(20000, project)
with pytest.raises(aiohttp.web.HTTPConflict):
pm.reserve_udp_port(10000, project)
pm.reserve_udp_port(20000, project)
def test_reserve_udp_port_outside_range():
@ -106,9 +106,9 @@ def test_reserve_udp_port_outside_range():
def test_release_udp_port():
pm = PortManager()
project = Project(project_id=str(uuid.uuid4()))
pm.reserve_udp_port(10000, project)
pm.release_udp_port(10000, project)
pm.reserve_udp_port(10000, project)
pm.reserve_udp_port(20000, project)
pm.release_udp_port(20000, project)
pm.reserve_udp_port(20000, project)
def test_find_unused_port():

View File

@ -148,7 +148,7 @@ def test_delete_project_invalid_uuid(http_controller):
def test_close_project(http_controller, project):
with asyncio_patch("gns3server.controller.project.Project.close", return_value=True) as mock:
response = http_controller.post("/projects/{project_id}/close".format(project_id=project.id), example=True)
assert response.status == 201
assert response.status == 204
assert mock.called