mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-11-07 15:43:43 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1209155f5 | ||
|
|
7cebb9472a | ||
|
|
00c3b1abc1 | ||
|
|
b1c1c0520c | ||
|
|
2bb26075f0 | ||
|
|
6746ef39be | ||
|
|
8889eaa439 | ||
|
|
95a4c284bc | ||
|
|
6951137a25 | ||
|
|
cccbca3d5e | ||
|
|
8659439829 | ||
|
|
677bc389a5 | ||
|
|
4a58ede550 | ||
|
|
3f5b0bb514 | ||
|
|
6e8e0764c1 | ||
|
|
eaa18ad624 | ||
|
|
0a32be276e | ||
|
|
271c958381 | ||
|
|
ca1d99b112 | ||
|
|
90dce03da2 | ||
|
|
b48bd92da3 | ||
|
|
d54c9db8c3 | ||
|
|
b194e48649 | ||
|
|
29f848d833 | ||
|
|
08154e43aa | ||
|
|
84efc55d02 | ||
|
|
a58fb320ac | ||
|
|
39057bd781 | ||
|
|
0f3b96f134 | ||
|
|
35f94b0c73 | ||
|
|
b82b9a64e6 | ||
|
|
901652aaeb | ||
|
|
6c9a3b634b | ||
|
|
0561aba927 | ||
|
|
86a78f53cb | ||
|
|
f0bc74ff6e | ||
|
|
f81128f717 | ||
|
|
9ce505cad3 | ||
|
|
6b8635f7d5 | ||
|
|
388ffe9f00 | ||
|
|
d01129a3cf | ||
|
|
535ea0ad9f | ||
|
|
ccb5de6df1 | ||
|
|
cdcfc652db | ||
|
|
7030dadbcb | ||
|
|
46a9fdb61d | ||
|
|
9958b876cf | ||
|
|
259d3a0155 | ||
|
|
33499be425 | ||
|
|
3fd44f5260 | ||
|
|
c076275bd0 | ||
|
|
081447ba2e | ||
|
|
3df7af12e1 | ||
|
|
d9e4ce5639 | ||
|
|
35b75f0f7f | ||
|
|
2609849507 | ||
|
|
448b94f701 | ||
|
|
18002a7580 | ||
|
|
1414bdcadf | ||
|
|
b6e68ba1a8 | ||
|
|
19142d97bb | ||
|
|
faf7e09ebb | ||
|
|
7a229e33f9 | ||
|
|
4959a51ce7 | ||
|
|
5b1ba5a57c | ||
|
|
a80aed5420 | ||
|
|
a53fd2e8b1 | ||
|
|
5bab4131e1 | ||
|
|
e8a7e80456 | ||
|
|
ab05784c33 | ||
|
|
6983e686ca | ||
|
|
3631202ce5 | ||
|
|
8d8a3247c4 | ||
|
|
d100a132d6 | ||
|
|
52638a9a8d | ||
|
|
9a5af82a28 | ||
|
|
14a618766d | ||
|
|
0137688ba7 | ||
|
|
84db3b9996 | ||
|
|
0a08031d85 | ||
|
|
1a53c9aabf | ||
|
|
1f5085608c | ||
|
|
16f72b4d3d | ||
|
|
3ced41633f | ||
|
|
4fa10be5aa | ||
|
|
f050fc7e00 | ||
|
|
c93aafc9af | ||
|
|
93520b4d6c | ||
|
|
1fb0260ae6 | ||
|
|
763ef24108 | ||
|
|
17aabd6cda | ||
|
|
d94adf4c8f | ||
|
|
4dd9cf2da2 | ||
|
|
e2a3d391d8 | ||
|
|
6c5f54fe57 | ||
|
|
082fbee1bd | ||
|
|
6d97feaced | ||
|
|
8d35089661 | ||
|
|
6455f62447 | ||
|
|
2fb3b1ebab | ||
|
|
58399a9fa8 | ||
|
|
907b305ecf | ||
|
|
57f92db124 | ||
|
|
0f6f943a83 | ||
|
|
2cb76b2274 | ||
|
|
2d2db52a8b | ||
|
|
a8d0818e07 | ||
|
|
f7eb2492d9 | ||
|
|
218522b08c | ||
|
|
470f13f448 | ||
|
|
317aa669ac | ||
|
|
8d160ad5ed | ||
|
|
e3493870b2 | ||
|
|
d466c85385 | ||
|
|
35d4391fc0 | ||
|
|
eea0ab69bd | ||
|
|
22ade94118 | ||
|
|
08ee40548f | ||
|
|
7f05a06766 | ||
|
|
9fd2f58ef7 | ||
|
|
b9b802ebab | ||
|
|
1d86e322e9 | ||
|
|
8eb5f10971 | ||
|
|
cc4783ab98 | ||
|
|
19792f328d | ||
|
|
596d1274a3 | ||
|
|
2f765747b8 | ||
|
|
4fe57b6a15 | ||
|
|
1177626a53 | ||
|
|
c4cc346864 | ||
|
|
8915dfffa5 | ||
|
|
ff027ebd17 | ||
|
|
27d5ac537f | ||
|
|
fe246cd413 | ||
|
|
2bbb560b8e | ||
|
|
1624c7d6ad | ||
|
|
2a3bb81076 | ||
|
|
e0a0dd83d7 | ||
|
|
16ea395618 | ||
|
|
9dd8da4f6e | ||
|
|
54abf85523 | ||
|
|
385fffec56 | ||
|
|
ac86717bc0 | ||
|
|
7b7af33920 | ||
|
|
85fd3ef4a4 | ||
|
|
fbd8f6ce28 | ||
|
|
195da24910 | ||
|
|
b4c7609aeb | ||
|
|
cd9c4c84b6 | ||
|
|
2566de0f5a | ||
|
|
6a069d0af6 | ||
|
|
2789b3802a | ||
|
|
9e1a1337d4 | ||
|
|
466eb8128e | ||
|
|
e41227b5bd | ||
|
|
78a3b8e824 | ||
|
|
4c149e1614 | ||
|
|
473fa98eda | ||
|
|
13d9afd8bc | ||
|
|
b4edbbbaa7 | ||
|
|
02e19800fb | ||
|
|
24bb0ca419 | ||
|
|
6c5f75bf43 | ||
|
|
7afdcbb3d3 | ||
|
|
de27a57a00 | ||
|
|
c88f76b740 | ||
|
|
b81cc14cef | ||
|
|
aa133c3b8a | ||
|
|
7449064ea2 | ||
|
|
db315e3c3c | ||
|
|
c437482e85 | ||
|
|
46d9ada6d8 | ||
|
|
aac6fbfc31 | ||
|
|
76bd5921c5 | ||
|
|
af3a618306 | ||
|
|
3c4b5db1ca | ||
|
|
531499bbfb | ||
|
|
7ad3afbdef | ||
|
|
0e18762b36 | ||
|
|
cbc7e59d3f | ||
|
|
5a6e945db2 | ||
|
|
86c0b90951 |
No files matched your search
@@ -10,7 +10,7 @@ jobs:
|
||||
name: Add issue to project
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/add-to-project@v0.4.0
|
||||
- uses: actions/add-to-project@v1.0.1
|
||||
with:
|
||||
project-url: https://github.com/orgs/GNS3/projects/3
|
||||
github-token: ${{ secrets.ADD_NEW_ISSUES_TO_PROJECT }}
|
||||
@@ -13,58 +13,81 @@ name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
branches: [ "master" ]
|
||||
schedule:
|
||||
- cron: '44 1 * * 3'
|
||||
- cron: '21 12 * * 4'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
name: Analyze (${{ matrix.language }})
|
||||
# Runner size impacts CodeQL analysis time. To learn more, please see:
|
||||
# - https://gh.io/recommended-hardware-resources-for-running-codeql
|
||||
# - https://gh.io/supported-runners-and-hardware-resources
|
||||
# - https://gh.io/using-larger-runners (GitHub.com only)
|
||||
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
|
||||
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
|
||||
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
|
||||
permissions:
|
||||
# required for all workflows
|
||||
security-events: write
|
||||
|
||||
# required to fetch internal or private CodeQL packs
|
||||
packages: read
|
||||
|
||||
# only required for workflows in private repositories
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'python' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://git.io/codeql-language-support
|
||||
|
||||
include:
|
||||
- language: python
|
||||
build-mode: none
|
||||
# CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
|
||||
# Use `c-cpp` to analyze code written in C, C++ or both
|
||||
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
|
||||
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
|
||||
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
|
||||
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
|
||||
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
|
||||
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
# If the analyze step fails for one of the languages you are analyzing with
|
||||
# "We were unable to automatically build your code", modify the matrix above
|
||||
# to set the build mode to "manual" for that language. Then modify this step
|
||||
# to build your code.
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
- if: matrix.build-mode == 'manual'
|
||||
shell: bash
|
||||
run: |
|
||||
echo 'If you are using a "manual" build mode for one or more of the' \
|
||||
'languages you are analyzing, replace this with the commands to build' \
|
||||
'your code, for example:'
|
||||
echo ' make bootstrap'
|
||||
echo ' make release'
|
||||
exit 1
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
@@ -12,13 +12,13 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: "gh-pages"
|
||||
- uses: actions/setup-python@v3
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3.7
|
||||
python-version: 3.8
|
||||
- name: Merge changes from 3.0 branch
|
||||
run: |
|
||||
git config user.name github-actions
|
||||
|
||||
@@ -13,15 +13,15 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-20.04 # Downgrade Ubuntu to 20.04 to fix missing Python 3.6
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
|
||||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v3
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
|
||||
@@ -1,5 +1,77 @@
|
||||
# Change Log
|
||||
|
||||
## 2.2.49 06/08/2024
|
||||
|
||||
* Bundle web-ui v2.2.49
|
||||
* Forbid -nic and -nicdev in Qemu additional options. Fixes https://github.com/GNS3/gns3-server/issues/2397
|
||||
* Upgrade jsonschema and sentry-sdk packages
|
||||
* Update IOU base configs to use "no ip domain lookup". Fixes #2404
|
||||
|
||||
## 2.2.48.1 12/07/2024
|
||||
|
||||
* Bundle web-ui v2.2.48.1
|
||||
|
||||
## 2.2.48 08/07/2024
|
||||
|
||||
* Bundle web-ui v2.2.48
|
||||
* Add 'install_builtin_appliances' and 'resources_path' settings in the server config
|
||||
* Option to keep the compute IDs unchanged when exporting a project
|
||||
* Forbid unsafe Qemu additional options
|
||||
* Fix error when snapshot exists with an underscore in the name
|
||||
* Upgrade sentry-sdk, psutil and aiofiles packages
|
||||
* Fix check for IPv6 enabled on host
|
||||
|
||||
## 2.2.47 15/05/2024
|
||||
|
||||
* Fix update-bundled-web-ui.sh script
|
||||
* Bundle web-ui v2.2.47
|
||||
* Change sentry-sdk version
|
||||
* Upgrade aiohttp, sentry-sdk and truststore
|
||||
* Upgrade jsonschema and aiohttp
|
||||
* Drop Python 3.7
|
||||
* Remove dev requirements for Python 3.6
|
||||
* Do not run Docker VM tests on Windows
|
||||
* Do not wait for the server to close when shutting down.
|
||||
* Fix test create image with not supported characters by filesystem. Fixes #2375
|
||||
* Allow listing x86_64 IOU images. Fixes #2376
|
||||
* Upgrade Jinja2 to version 3.1.4. Fixes #2378
|
||||
* Fix link capture for ATM switch. Fixes https://github.com/GNS3/gns3-gui/issues/3570
|
||||
* Fix tests after updating error message when busybox is not installed.
|
||||
* Add more details to error message when busybox is not installed. Fixes https://github.com/GNS3/gns3-gui/issues/3569
|
||||
* Fix invalid escape sequences
|
||||
* Add NAT symbols
|
||||
* Fix cannot stop Docker VM while console connection is still active.
|
||||
* Upgrade sentry-sdk to version 1.40.6
|
||||
|
||||
## 2.2.46 26/02/2024
|
||||
|
||||
* Bundle web-ui v2.2.46
|
||||
* Save empty directories when exporting a project
|
||||
* Backport from v3: install Docker resources in a writable location at runtime.
|
||||
* Use Docker API v1.24 to get version.
|
||||
* Drop support for Python 3.6
|
||||
* Address the telnet console bug.
|
||||
* Update welcome.py
|
||||
* Update remote-install.sh
|
||||
* Use Python 3.8 to publish API doc
|
||||
* Upgrade sentry-sdk, psutil and distro dependencies
|
||||
|
||||
## 2.2.45 12/01/2024
|
||||
|
||||
* Bundle web-ui v2.2.45
|
||||
* Fix mouse offset issues with VNC in Qemu. Fixes #2335
|
||||
* Add project.created, project.opened and project.deleted controller notification stream. Move project.updated and project.closed from project notification to controller notification stream.
|
||||
* Do not stop searching for Qemu binaries if one binary cannot be executed. Ref #2306
|
||||
* Fix Ethernet switch and Ethernet hub port validations. Fixes #2334
|
||||
* Update CORS policy
|
||||
* Add custom executable paths on Windows
|
||||
* Upgrade sentry-sdk and aiohttp
|
||||
|
||||
## 2.2.44.1 07/11/2023
|
||||
|
||||
* Catch exceptions when computing image checksums. Ref https://github.com/GNS3/gns3-server/issues/2228
|
||||
* Add freeze_support() for multiprocessing
|
||||
|
||||
## 2.2.44 06/11/2023
|
||||
|
||||
* Bundle web-ui v2.2.44
|
||||
|
||||
+13
-3
@@ -9,18 +9,23 @@ ssl = False
|
||||
certfile=/home/gns3/.config/GNS3/ssl/server.cert
|
||||
certkey=/home/gns3/.config/GNS3/ssl/server.key
|
||||
|
||||
; Path where devices images are stored
|
||||
; Path where binary images are stored
|
||||
images_path = /home/gns3/GNS3/images
|
||||
|
||||
; Path where user projects are stored
|
||||
projects_path = /home/gns3/GNS3/projects
|
||||
|
||||
; Path where user appliances are stored
|
||||
; Path where custom user appliances are stored
|
||||
appliances_path = /home/gns3/GNS3/appliances
|
||||
|
||||
; Path where custom device symbols are stored
|
||||
; Path where custom user symbols are stored
|
||||
symbols_path = /home/gns3/GNS3/symbols
|
||||
|
||||
; Path where files like built-in appliances and Docker resources are stored
|
||||
; The default path is the local user data directory
|
||||
; (Linux: "~/.local/share/GNS3", macOS: "~/Library/Application Support/GNS3", Windows: "%APPDATA%\GNS3")
|
||||
; resources_path = /home/gns3/GNS3/resources
|
||||
|
||||
; Option to automatically send crash reports to the GNS3 team
|
||||
report_errors = True
|
||||
|
||||
@@ -62,6 +67,9 @@ default_nat_interface = vmnet10
|
||||
; Enable the built-in templates
|
||||
enable_builtin_templates = True
|
||||
|
||||
; Install built-in appliances
|
||||
install_builtin_appliances = True
|
||||
|
||||
; check if hardware virtualization is used by other emulators (KVM, VMware or VirtualBox)
|
||||
hardware_virtualization_check = True
|
||||
|
||||
@@ -93,6 +101,8 @@ require_kvm = True
|
||||
enable_hardware_acceleration = True
|
||||
; Require hardware acceleration in order to start VMs (all platforms)
|
||||
require_hardware_acceleration = False
|
||||
; Allow unsafe additional command line options
|
||||
allow_unsafe_options = False
|
||||
|
||||
[VMware]
|
||||
; First vmnet interface of the range that can be managed by the GNS3 server
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
-rrequirements.txt
|
||||
|
||||
pytest==7.2.0; python_version >= '3.7'
|
||||
pytest==7.0.1; python_version < '3.7' # v7.0.1 is the last version to support Python 3.6
|
||||
flake8==5.0.4
|
||||
pytest-timeout==2.1.0
|
||||
pytest-aiohttp==1.0.4; python_version >= '3.7'
|
||||
pytest-aiohttp==0.3.0; python_version < '3.7' # last version to support Python 3.6
|
||||
pytest==8.3.2
|
||||
flake8==7.1.0
|
||||
pytest-timeout==2.3.1
|
||||
pytest-aiohttp==1.0.5
|
||||
@@ -11,7 +11,8 @@
|
||||
10
|
||||
]
|
||||
},
|
||||
"link_id": "b76bd8b1-2171-4361-9228-801713d23079",
|
||||
"link_id": "c3f1b38a-160d-4a67-baa0-34fc3d9759ed",
|
||||
"link_style": {},
|
||||
"link_type": "ethernet",
|
||||
"nodes": [
|
||||
{
|
||||
@@ -21,7 +22,7 @@
|
||||
"x": 64,
|
||||
"y": 0
|
||||
},
|
||||
"node_id": "8b77b480-361e-488b-96b1-a769890e11ec",
|
||||
"node_id": "481e5898-cd97-4351-8b1e-0c9e77fc7c58",
|
||||
"port_number": 3
|
||||
},
|
||||
{
|
||||
@@ -30,10 +31,10 @@
|
||||
"style": "font-family: TypeWriter;font-size: 10.0;font-weight: bold;fill: #000000;fill-opacity: 1.0;",
|
||||
"text": "2/4"
|
||||
},
|
||||
"node_id": "b4688a3d-0af8-4ddc-b85f-e26dc1031c4c",
|
||||
"node_id": "63f7b8ab-146d-4142-b8c5-cf387ac1d963",
|
||||
"port_number": 4
|
||||
}
|
||||
],
|
||||
"project_id": "85333131-b83a-4112-9a51-184ba0c536a8",
|
||||
"project_id": "292936d2-9f54-4e29-959f-b59ed9ac5e6f",
|
||||
"suspend": false
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
{
|
||||
"message": "Warning ASA 8 is not officialy supported by GNS3"
|
||||
"message": "Warning ASA 8 is not officially supported by GNS3"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"a": "b"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"a": "b"
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"auto_close": true,
|
||||
"auto_open": false,
|
||||
"auto_start": false,
|
||||
"drawing_grid_size": 25,
|
||||
"filename": "Test.gns3",
|
||||
"grid_size": 75,
|
||||
"name": "Test",
|
||||
"path": "/tmp/tmprusds8mt/projects/87d4b692-52b4-4b4c-8828-13666306a68a",
|
||||
"project_id": "87d4b692-52b4-4b4c-8828-13666306a68a",
|
||||
"scene_height": 1000,
|
||||
"scene_width": 2000,
|
||||
"show_grid": false,
|
||||
"show_interface_labels": false,
|
||||
"show_layers": false,
|
||||
"snap_to_grid": false,
|
||||
"status": "opened",
|
||||
"supplier": null,
|
||||
"variables": null,
|
||||
"zoom": 100
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"auto_close": true,
|
||||
"auto_open": false,
|
||||
"auto_start": false,
|
||||
"drawing_grid_size": 25,
|
||||
"filename": "Test.gns3",
|
||||
"grid_size": 75,
|
||||
"name": "Test",
|
||||
"path": "/tmp/tmpvqf8d5mx/projects/6f01ee8c-5fe7-47a2-95ab-a0f4c0a355f9",
|
||||
"project_id": "6f01ee8c-5fe7-47a2-95ab-a0f4c0a355f9",
|
||||
"scene_height": 1000,
|
||||
"scene_width": 2000,
|
||||
"show_grid": false,
|
||||
"show_interface_labels": false,
|
||||
"show_layers": false,
|
||||
"snap_to_grid": false,
|
||||
"status": "closed",
|
||||
"supplier": null,
|
||||
"variables": null,
|
||||
"zoom": 100
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"auto_close": true,
|
||||
"auto_open": false,
|
||||
"auto_start": false,
|
||||
"drawing_grid_size": 25,
|
||||
"filename": "test.gns3",
|
||||
"grid_size": 75,
|
||||
"name": "test",
|
||||
"path": "/tmp/tmp7swwxptj/projects/e5b0b37a-a74e-40a2-9adb-42908f146fba",
|
||||
"project_id": "e5b0b37a-a74e-40a2-9adb-42908f146fba",
|
||||
"scene_height": 1000,
|
||||
"scene_width": 2000,
|
||||
"show_grid": false,
|
||||
"show_interface_labels": false,
|
||||
"show_layers": false,
|
||||
"snap_to_grid": false,
|
||||
"status": "opened",
|
||||
"supplier": null,
|
||||
"variables": null,
|
||||
"zoom": 100
|
||||
}
|
||||
@@ -23,7 +23,7 @@ Types
|
||||
+++++++++
|
||||
EthernetSwitchPort
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
Ethernet port
|
||||
Ethernet switch port
|
||||
|
||||
.. raw:: html
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ Types
|
||||
+++++++++
|
||||
EthernetSwitchPort
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
Ethernet port
|
||||
Ethernet switch port
|
||||
|
||||
.. raw:: html
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ Input
|
||||
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>application_id</td> <td> </td> <td>['integer', 'null']</td> <td>Application ID for running IOU image</td> </tr>
|
||||
<tr><td>application_id</td> <td>✔</td> <td>['integer', 'null']</td> <td>Application ID for running IOU image</td> </tr>
|
||||
<tr><td>console</td> <td> </td> <td>['integer', 'null']</td> <td>Console TCP port</td> </tr>
|
||||
<tr><td>console_type</td> <td> </td> <td>enum</td> <td>Possible values: telnet, none</td> </tr>
|
||||
<tr><td>ethernet_adapters</td> <td> </td> <td>integer</td> <td>How many ethernet adapters are connected to the IOU</td> </tr>
|
||||
|
||||
@@ -35,6 +35,8 @@ Input
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>auto_close</td> <td> </td> <td>boolean</td> <td>Project auto close</td> </tr>
|
||||
<tr><td>auto_open</td> <td> </td> <td>boolean</td> <td>Project open when GNS3 start</td> </tr>
|
||||
<tr><td>auto_start</td> <td> </td> <td>boolean</td> <td>Project start when opened</td> </tr>
|
||||
<tr><td>drawing_grid_size</td> <td> </td> <td>integer</td> <td>Grid size for the drawing area for drawings</td> </tr>
|
||||
<tr><td>grid_size</td> <td> </td> <td>integer</td> <td>Grid size for the drawing area for nodes</td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>['string', 'null']</td> <td>Project name</td> </tr>
|
||||
|
||||
@@ -34,6 +34,7 @@ Input
|
||||
<tr><td>console_type</td> <td> </td> <td>enum</td> <td>Possible values: telnet, vnc, spice, spice+agent, none</td> </tr>
|
||||
<tr><td>cpu_throttling</td> <td> </td> <td>['integer', 'null']</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
|
||||
<tr><td>cpus</td> <td> </td> <td>['integer', 'null']</td> <td>Number of vCPUs</td> </tr>
|
||||
<tr><td>create_config_disk</td> <td> </td> <td>['boolean', 'null']</td> <td>Automatically create a config disk on HDD disk interface (secondary slave)</td> </tr>
|
||||
<tr><td>custom_adapters</td> <td> </td> <td>array</td> <td></td> </tr>
|
||||
<tr><td>hda_disk_image</td> <td> </td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
|
||||
<tr><td>hda_disk_image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hda disk image checksum</td> </tr>
|
||||
@@ -63,6 +64,9 @@ Input
|
||||
<tr><td>process_priority</td> <td> </td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low, null</td> </tr>
|
||||
<tr><td>qemu_path</td> <td> </td> <td>['string', 'null']</td> <td>Path to QEMU</td> </tr>
|
||||
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>Amount of RAM in MB</td> </tr>
|
||||
<tr><td>replicate_network_connection_state</td> <td> </td> <td>['boolean', 'null']</td> <td>Replicate the network connection state for links in Qemu</td> </tr>
|
||||
<tr><td>tpm</td> <td> </td> <td>['boolean', 'null']</td> <td>Enable the Trusted Platform Module (TPM) in Qemu</td> </tr>
|
||||
<tr><td>uefi</td> <td> </td> <td>['boolean', 'null']</td> <td>Enable the UEFI boot mode in Qemu</td> </tr>
|
||||
<tr><td>usage</td> <td> </td> <td>string</td> <td>How to use the Qemu VM</td> </tr>
|
||||
</table>
|
||||
|
||||
@@ -84,6 +88,7 @@ Output
|
||||
<tr><td>console_type</td> <td>✔</td> <td>enum</td> <td>Possible values: telnet, vnc, spice, spice+agent, none</td> </tr>
|
||||
<tr><td>cpu_throttling</td> <td>✔</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
|
||||
<tr><td>cpus</td> <td>✔</td> <td>['integer', 'null']</td> <td>Number of vCPUs</td> </tr>
|
||||
<tr><td>create_config_disk</td> <td>✔</td> <td>['boolean', 'null']</td> <td>Automatically create a config disk on HDD disk interface (secondary slave)</td> </tr>
|
||||
<tr><td>hda_disk_image</td> <td>✔</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
|
||||
<tr><td>hda_disk_image_md5sum</td> <td>✔</td> <td>['string', 'null']</td> <td>QEMU hda disk image checksum</td> </tr>
|
||||
<tr><td>hda_disk_interface</td> <td>✔</td> <td>string</td> <td>QEMU hda interface</td> </tr>
|
||||
@@ -113,8 +118,11 @@ Output
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>qemu_path</td> <td>✔</td> <td>string</td> <td>Path to QEMU</td> </tr>
|
||||
<tr><td>ram</td> <td>✔</td> <td>integer</td> <td>Amount of RAM in MB</td> </tr>
|
||||
<tr><td>replicate_network_connection_state</td> <td>✔</td> <td>boolean</td> <td>Replicate the network connection state for links in Qemu</td> </tr>
|
||||
<tr><td>save_vm_state</td> <td> </td> <td>['boolean', 'null']</td> <td>Save VM state support</td> </tr>
|
||||
<tr><td>status</td> <td>✔</td> <td>enum</td> <td>Possible values: started, stopped, suspended</td> </tr>
|
||||
<tr><td>tpm</td> <td>✔</td> <td>boolean</td> <td>Enable the Trusted Platform Module (TPM) in Qemu</td> </tr>
|
||||
<tr><td>uefi</td> <td>✔</td> <td>boolean</td> <td>Enable the UEFI boot mode in Qemu</td> </tr>
|
||||
<tr><td>usage</td> <td>✔</td> <td>string</td> <td>How to use the QEMU VM</td> </tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ Output
|
||||
<tr><td>console_type</td> <td>✔</td> <td>enum</td> <td>Possible values: telnet, vnc, spice, spice+agent, none</td> </tr>
|
||||
<tr><td>cpu_throttling</td> <td>✔</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
|
||||
<tr><td>cpus</td> <td>✔</td> <td>['integer', 'null']</td> <td>Number of vCPUs</td> </tr>
|
||||
<tr><td>create_config_disk</td> <td>✔</td> <td>['boolean', 'null']</td> <td>Automatically create a config disk on HDD disk interface (secondary slave)</td> </tr>
|
||||
<tr><td>hda_disk_image</td> <td>✔</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
|
||||
<tr><td>hda_disk_image_md5sum</td> <td>✔</td> <td>['string', 'null']</td> <td>QEMU hda disk image checksum</td> </tr>
|
||||
<tr><td>hda_disk_interface</td> <td>✔</td> <td>string</td> <td>QEMU hda interface</td> </tr>
|
||||
@@ -65,8 +66,11 @@ Output
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>qemu_path</td> <td>✔</td> <td>string</td> <td>Path to QEMU</td> </tr>
|
||||
<tr><td>ram</td> <td>✔</td> <td>integer</td> <td>Amount of RAM in MB</td> </tr>
|
||||
<tr><td>replicate_network_connection_state</td> <td>✔</td> <td>boolean</td> <td>Replicate the network connection state for links in Qemu</td> </tr>
|
||||
<tr><td>save_vm_state</td> <td> </td> <td>['boolean', 'null']</td> <td>Save VM state support</td> </tr>
|
||||
<tr><td>status</td> <td>✔</td> <td>enum</td> <td>Possible values: started, stopped, suspended</td> </tr>
|
||||
<tr><td>tpm</td> <td>✔</td> <td>boolean</td> <td>Enable the Trusted Platform Module (TPM) in Qemu</td> </tr>
|
||||
<tr><td>uefi</td> <td>✔</td> <td>boolean</td> <td>Enable the UEFI boot mode in Qemu</td> </tr>
|
||||
<tr><td>usage</td> <td>✔</td> <td>string</td> <td>How to use the QEMU VM</td> </tr>
|
||||
</table>
|
||||
|
||||
@@ -110,6 +114,7 @@ Input
|
||||
<tr><td>console_type</td> <td> </td> <td>enum</td> <td>Possible values: telnet, vnc, spice, spice+agent, none</td> </tr>
|
||||
<tr><td>cpu_throttling</td> <td> </td> <td>['integer', 'null']</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
|
||||
<tr><td>cpus</td> <td> </td> <td>['integer', 'null']</td> <td>Number of vCPUs</td> </tr>
|
||||
<tr><td>create_config_disk</td> <td> </td> <td>['boolean', 'null']</td> <td>Automatically create a config disk on HDD disk interface (secondary slave)</td> </tr>
|
||||
<tr><td>custom_adapters</td> <td> </td> <td>array</td> <td></td> </tr>
|
||||
<tr><td>hda_disk_image</td> <td> </td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
|
||||
<tr><td>hda_disk_image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hda disk image checksum</td> </tr>
|
||||
@@ -138,6 +143,9 @@ Input
|
||||
<tr><td>process_priority</td> <td> </td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low, null</td> </tr>
|
||||
<tr><td>qemu_path</td> <td> </td> <td>['string', 'null']</td> <td>Path to QEMU</td> </tr>
|
||||
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>Amount of RAM in MB</td> </tr>
|
||||
<tr><td>replicate_network_connection_state</td> <td> </td> <td>['boolean', 'null']</td> <td>Replicate the network connection state for links in Qemu</td> </tr>
|
||||
<tr><td>tpm</td> <td> </td> <td>['boolean', 'null']</td> <td>Enable the Trusted Platform Module (TPM) in Qemu</td> </tr>
|
||||
<tr><td>uefi</td> <td> </td> <td>['boolean', 'null']</td> <td>Enable the UEFI boot mode in Qemu</td> </tr>
|
||||
<tr><td>usage</td> <td> </td> <td>string</td> <td>How to use the QEMU VM</td> </tr>
|
||||
</table>
|
||||
|
||||
@@ -159,6 +167,7 @@ Output
|
||||
<tr><td>console_type</td> <td>✔</td> <td>enum</td> <td>Possible values: telnet, vnc, spice, spice+agent, none</td> </tr>
|
||||
<tr><td>cpu_throttling</td> <td>✔</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
|
||||
<tr><td>cpus</td> <td>✔</td> <td>['integer', 'null']</td> <td>Number of vCPUs</td> </tr>
|
||||
<tr><td>create_config_disk</td> <td>✔</td> <td>['boolean', 'null']</td> <td>Automatically create a config disk on HDD disk interface (secondary slave)</td> </tr>
|
||||
<tr><td>hda_disk_image</td> <td>✔</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
|
||||
<tr><td>hda_disk_image_md5sum</td> <td>✔</td> <td>['string', 'null']</td> <td>QEMU hda disk image checksum</td> </tr>
|
||||
<tr><td>hda_disk_interface</td> <td>✔</td> <td>string</td> <td>QEMU hda interface</td> </tr>
|
||||
@@ -188,8 +197,11 @@ Output
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>qemu_path</td> <td>✔</td> <td>string</td> <td>Path to QEMU</td> </tr>
|
||||
<tr><td>ram</td> <td>✔</td> <td>integer</td> <td>Amount of RAM in MB</td> </tr>
|
||||
<tr><td>replicate_network_connection_state</td> <td>✔</td> <td>boolean</td> <td>Replicate the network connection state for links in Qemu</td> </tr>
|
||||
<tr><td>save_vm_state</td> <td> </td> <td>['boolean', 'null']</td> <td>Save VM state support</td> </tr>
|
||||
<tr><td>status</td> <td>✔</td> <td>enum</td> <td>Possible values: started, stopped, suspended</td> </tr>
|
||||
<tr><td>tpm</td> <td>✔</td> <td>boolean</td> <td>Enable the Trusted Platform Module (TPM) in Qemu</td> </tr>
|
||||
<tr><td>uefi</td> <td>✔</td> <td>boolean</td> <td>Enable the UEFI boot mode in Qemu</td> </tr>
|
||||
<tr><td>usage</td> <td>✔</td> <td>string</td> <td>How to use the QEMU VM</td> </tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ Output
|
||||
<tr><td>console_type</td> <td>✔</td> <td>enum</td> <td>Possible values: telnet, vnc, spice, spice+agent, none</td> </tr>
|
||||
<tr><td>cpu_throttling</td> <td>✔</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
|
||||
<tr><td>cpus</td> <td>✔</td> <td>['integer', 'null']</td> <td>Number of vCPUs</td> </tr>
|
||||
<tr><td>create_config_disk</td> <td>✔</td> <td>['boolean', 'null']</td> <td>Automatically create a config disk on HDD disk interface (secondary slave)</td> </tr>
|
||||
<tr><td>hda_disk_image</td> <td>✔</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
|
||||
<tr><td>hda_disk_image_md5sum</td> <td>✔</td> <td>['string', 'null']</td> <td>QEMU hda disk image checksum</td> </tr>
|
||||
<tr><td>hda_disk_interface</td> <td>✔</td> <td>string</td> <td>QEMU hda interface</td> </tr>
|
||||
@@ -65,8 +66,11 @@ Output
|
||||
<tr><td>project_id</td> <td>✔</td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>qemu_path</td> <td>✔</td> <td>string</td> <td>Path to QEMU</td> </tr>
|
||||
<tr><td>ram</td> <td>✔</td> <td>integer</td> <td>Amount of RAM in MB</td> </tr>
|
||||
<tr><td>replicate_network_connection_state</td> <td>✔</td> <td>boolean</td> <td>Replicate the network connection state for links in Qemu</td> </tr>
|
||||
<tr><td>save_vm_state</td> <td> </td> <td>['boolean', 'null']</td> <td>Save VM state support</td> </tr>
|
||||
<tr><td>status</td> <td>✔</td> <td>enum</td> <td>Possible values: started, stopped, suspended</td> </tr>
|
||||
<tr><td>tpm</td> <td>✔</td> <td>boolean</td> <td>Enable the Trusted Platform Module (TPM) in Qemu</td> </tr>
|
||||
<tr><td>uefi</td> <td>✔</td> <td>boolean</td> <td>Enable the UEFI boot mode in Qemu</td> </tr>
|
||||
<tr><td>usage</td> <td>✔</td> <td>string</td> <td>How to use the QEMU VM</td> </tr>
|
||||
</table>
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ Input
|
||||
<tr><td>capturing</td> <td> </td> <td>boolean</td> <td>Read only property. True if a capture running on the link</td> </tr>
|
||||
<tr><td>filters</td> <td> </td> <td>object</td> <td>Packet filter. This allow to simulate latency and errors</td> </tr>
|
||||
<tr><td>link_id</td> <td> </td> <td>string</td> <td>Link UUID</td> </tr>
|
||||
<tr><td>link_style</td> <td> </td> <td>object</td> <td>Link line style</td> </tr>
|
||||
<tr><td>link_type</td> <td> </td> <td>enum</td> <td>Possible values: ethernet, serial</td> </tr>
|
||||
<tr><td>nodes</td> <td> </td> <td>array</td> <td>List of the VMS</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
@@ -65,6 +66,7 @@ Output
|
||||
<tr><td>capturing</td> <td> </td> <td>boolean</td> <td>Read only property. True if a capture running on the link</td> </tr>
|
||||
<tr><td>filters</td> <td> </td> <td>object</td> <td>Packet filter. This allow to simulate latency and errors</td> </tr>
|
||||
<tr><td>link_id</td> <td> </td> <td>string</td> <td>Link UUID</td> </tr>
|
||||
<tr><td>link_style</td> <td> </td> <td>object</td> <td>Link line style</td> </tr>
|
||||
<tr><td>link_type</td> <td> </td> <td>enum</td> <td>Possible values: ethernet, serial</td> </tr>
|
||||
<tr><td>nodes</td> <td> </td> <td>array</td> <td>List of the VMS</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
|
||||
@@ -30,6 +30,7 @@ Output
|
||||
<tr><td>capturing</td> <td> </td> <td>boolean</td> <td>Read only property. True if a capture running on the link</td> </tr>
|
||||
<tr><td>filters</td> <td> </td> <td>object</td> <td>Packet filter. This allow to simulate latency and errors</td> </tr>
|
||||
<tr><td>link_id</td> <td> </td> <td>string</td> <td>Link UUID</td> </tr>
|
||||
<tr><td>link_style</td> <td> </td> <td>object</td> <td>Link line style</td> </tr>
|
||||
<tr><td>link_type</td> <td> </td> <td>enum</td> <td>Possible values: ethernet, serial</td> </tr>
|
||||
<tr><td>nodes</td> <td> </td> <td>array</td> <td>List of the VMS</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
@@ -69,6 +70,7 @@ Input
|
||||
<tr><td>capturing</td> <td> </td> <td>boolean</td> <td>Read only property. True if a capture running on the link</td> </tr>
|
||||
<tr><td>filters</td> <td> </td> <td>object</td> <td>Packet filter. This allow to simulate latency and errors</td> </tr>
|
||||
<tr><td>link_id</td> <td> </td> <td>string</td> <td>Link UUID</td> </tr>
|
||||
<tr><td>link_style</td> <td> </td> <td>object</td> <td>Link line style</td> </tr>
|
||||
<tr><td>link_type</td> <td> </td> <td>enum</td> <td>Possible values: ethernet, serial</td> </tr>
|
||||
<tr><td>nodes</td> <td> </td> <td>array</td> <td>List of the VMS</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
@@ -87,6 +89,7 @@ Output
|
||||
<tr><td>capturing</td> <td> </td> <td>boolean</td> <td>Read only property. True if a capture running on the link</td> </tr>
|
||||
<tr><td>filters</td> <td> </td> <td>object</td> <td>Packet filter. This allow to simulate latency and errors</td> </tr>
|
||||
<tr><td>link_id</td> <td> </td> <td>string</td> <td>Link UUID</td> </tr>
|
||||
<tr><td>link_style</td> <td> </td> <td>object</td> <td>Link line style</td> </tr>
|
||||
<tr><td>link_type</td> <td> </td> <td>enum</td> <td>Possible values: ethernet, serial</td> </tr>
|
||||
<tr><td>nodes</td> <td> </td> <td>array</td> <td>List of the VMS</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
|
||||
@@ -39,6 +39,7 @@ Output
|
||||
<tr><td>capturing</td> <td> </td> <td>boolean</td> <td>Read only property. True if a capture running on the link</td> </tr>
|
||||
<tr><td>filters</td> <td> </td> <td>object</td> <td>Packet filter. This allow to simulate latency and errors</td> </tr>
|
||||
<tr><td>link_id</td> <td> </td> <td>string</td> <td>Link UUID</td> </tr>
|
||||
<tr><td>link_style</td> <td> </td> <td>object</td> <td>Link line style</td> </tr>
|
||||
<tr><td>link_type</td> <td> </td> <td>enum</td> <td>Possible values: ethernet, serial</td> </tr>
|
||||
<tr><td>nodes</td> <td> </td> <td>array</td> <td>List of the VMS</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>string</td> <td>Project UUID</td> </tr>
|
||||
|
||||
@@ -19,6 +19,8 @@ Input
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>auto_close</td> <td> </td> <td>boolean</td> <td>Project auto close</td> </tr>
|
||||
<tr><td>auto_open</td> <td> </td> <td>boolean</td> <td>Project open when GNS3 start</td> </tr>
|
||||
<tr><td>auto_start</td> <td> </td> <td>boolean</td> <td>Project start when opened</td> </tr>
|
||||
<tr><td>drawing_grid_size</td> <td> </td> <td>integer</td> <td>Grid size for the drawing area for drawings</td> </tr>
|
||||
<tr><td>grid_size</td> <td> </td> <td>integer</td> <td>Grid size for the drawing area for nodes</td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>['string', 'null']</td> <td>Project name</td> </tr>
|
||||
|
||||
@@ -24,11 +24,14 @@ Input
|
||||
<table>
|
||||
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
|
||||
<tr><td>auto_close</td> <td> </td> <td>boolean</td> <td>Project auto close</td> </tr>
|
||||
<tr><td>auto_open</td> <td> </td> <td>boolean</td> <td>Project open when GNS3 start</td> </tr>
|
||||
<tr><td>auto_start</td> <td> </td> <td>boolean</td> <td>Project start when opened</td> </tr>
|
||||
<tr><td>drawing_grid_size</td> <td> </td> <td>integer</td> <td>Grid size for the drawing area for drawings</td> </tr>
|
||||
<tr><td>grid_size</td> <td> </td> <td>integer</td> <td>Grid size for the drawing area for nodes</td> </tr>
|
||||
<tr><td>name</td> <td>✔</td> <td>['string', 'null']</td> <td>Project name</td> </tr>
|
||||
<tr><td>path</td> <td> </td> <td>['string', 'null']</td> <td>Project directory</td> </tr>
|
||||
<tr><td>project_id</td> <td> </td> <td>['string', 'null']</td> <td>Project UUID</td> </tr>
|
||||
<tr><td>reset_mac_addresses</td> <td> </td> <td>boolean</td> <td>Reset MAC addresses for this project</td> </tr>
|
||||
<tr><td>scene_height</td> <td> </td> <td>integer</td> <td>Height of the drawing area</td> </tr>
|
||||
<tr><td>scene_width</td> <td> </td> <td>integer</td> <td>Width of the drawing area</td> </tr>
|
||||
<tr><td>show_grid</td> <td> </td> <td>boolean</td> <td>Show the grid on the drawing area</td> </tr>
|
||||
|
||||
@@ -50,6 +50,38 @@ A compute has been deleted.
|
||||
.. literalinclude:: api/notifications/compute.deleted.json
|
||||
|
||||
|
||||
project.created
|
||||
---------------
|
||||
|
||||
A project has been created.
|
||||
|
||||
.. literalinclude:: api/notifications/project.created.json
|
||||
|
||||
|
||||
project.updated
|
||||
---------------
|
||||
|
||||
A project has been updated.
|
||||
|
||||
.. literalinclude:: api/notifications/project.updated.json
|
||||
|
||||
|
||||
project.closed
|
||||
---------------
|
||||
|
||||
A project has been closed.
|
||||
|
||||
.. literalinclude:: api/notifications/project.closed.json
|
||||
|
||||
|
||||
project.deleted
|
||||
---------------
|
||||
|
||||
A project has been deleted.
|
||||
|
||||
.. literalinclude:: api/notifications/project.deleted.json
|
||||
|
||||
|
||||
template.created
|
||||
-----------------
|
||||
|
||||
|
||||
+1
-1
@@ -576,7 +576,7 @@ Read :doc:`project_notifications` for more information.
|
||||
|
||||
|
||||
Where to find the endpoints?
|
||||
###########################
|
||||
############################
|
||||
|
||||
A list of all endpoints is available: :doc:`endpoints`
|
||||
|
||||
|
||||
+23
-1
@@ -103,7 +103,8 @@
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Variable name"
|
||||
"description": "Variable name",
|
||||
"minLength": 1
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
@@ -387,6 +388,27 @@
|
||||
"type": "boolean",
|
||||
"description": "Suspend the link"
|
||||
},
|
||||
"link_style": {
|
||||
"type": "object",
|
||||
"description": "Link line style",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"color": {
|
||||
"description": "Link line color",
|
||||
"type": "string"
|
||||
},
|
||||
"width": {
|
||||
"description": "Link line width",
|
||||
"type": "integer"
|
||||
},
|
||||
"type": {
|
||||
"description": "Link line type",
|
||||
"type": "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"filters": {
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"description": "Packet filter. This allow to simulate latency and errors",
|
||||
|
||||
@@ -100,28 +100,12 @@ A drawing has been deleted.
|
||||
.. literalinclude:: api/notifications/drawing.deleted.json
|
||||
|
||||
|
||||
project.updated
|
||||
---------------
|
||||
|
||||
A project has been updated.
|
||||
|
||||
.. literalinclude:: api/notifications/project.updated.json
|
||||
|
||||
|
||||
project.closed
|
||||
---------------
|
||||
|
||||
A project has been closed.
|
||||
|
||||
.. literalinclude:: api/notifications/project.closed.json
|
||||
|
||||
|
||||
snapshot.restored
|
||||
--------------------------
|
||||
|
||||
A snapshot has been restored
|
||||
|
||||
.. literalinclude:: api/notifications/project.snapshot_restored.json
|
||||
.. literalinclude:: api/notifications/snapshot.restored.json
|
||||
|
||||
log.error
|
||||
---------
|
||||
|
||||
@@ -24,9 +24,101 @@
|
||||
"hdb_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
"kvm": "require",
|
||||
"options": "-cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vEOS64-lab-4.32.0F.vmdk",
|
||||
"version": "4.32.0F",
|
||||
"md5sum": "851771260bb18ad3e90fa6956f0c6161",
|
||||
"filesize": 591724544,
|
||||
"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,
|
||||
"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,
|
||||
"download_url": "https://www.arista.com/en/support/software-download"
|
||||
},
|
||||
{
|
||||
"filename": "Aboot-veos-serial-8.0.2.iso",
|
||||
"version": "8.0.2",
|
||||
"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",
|
||||
@@ -218,6 +310,90 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "4.32.0F",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.32.0F.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.31.3M",
|
||||
"images": {
|
||||
"hda_disk_image": "Aboot-veos-serial-8.0.2.iso",
|
||||
"hdb_disk_image": "vEOS64-lab-4.31.3M.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "4.30.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": {
|
||||
@@ -398,4 +574,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,27 @@
|
||||
"process_priority": "normal"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20240129204649.vmdk",
|
||||
"version": "10.13.1000",
|
||||
"md5sum": "a1a24b15e3b8a09b0c0f14bdfacc4a75",
|
||||
"filesize": 395342848,
|
||||
"download_url": "https://networkingsupport.hpe.com"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20231110145644.vmdk",
|
||||
"version": "10.13.0005",
|
||||
"md5sum": "427fd4580e2ee3eac55a9e7d629d1375",
|
||||
"filesize": 394995200,
|
||||
"download_url": "https://networkingsupport.hpe.com"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20230810165021.vmdk",
|
||||
"version": "10.12.1000",
|
||||
"md5sum": "ea89f94dda9d28bf583dc35e0299b106",
|
||||
"filesize": 384622080,
|
||||
"download_url": "https://networkingsupport.hpe.com"
|
||||
},
|
||||
{
|
||||
"filename": "arubaoscx-disk-image-genericx86-p4-20230531220439.vmdk",
|
||||
"version": "10.12.0006",
|
||||
@@ -118,6 +139,24 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "10.13.1000",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20240129204649.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.13.0005",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20231110145644.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.12.1000",
|
||||
"images": {
|
||||
"hda_disk_image": "arubaoscx-disk-image-genericx86-p4-20230810165021.vmdk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.12.0006",
|
||||
"images": {
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"appliance_id": "e8001e2b-8ef3-44eb-ace5-79f68f3773e8",
|
||||
"name": "Asterfusion vAsterNOS",
|
||||
"category": "multilayer_switch",
|
||||
"description": "AsterNOS is the core technology of Asterfusion's one-stop turnkey SONiC solution for cloud, enterprise and AI. As an enterprise ready SONiC distribution, AsterNOS features rich functionality enhancement such as MC-LAG, VXLAN, BGP EVPN-Multihoming, RoCEv2(Easy RoCE), and more, making it powerful and easy-to-use in a variety of production scenarios. Currently, AsterNOS is compatible with top commercial switching chips (e.g. Marvell Teralynx, Prestera Falcon/Aldrin/Alleycat, Broadcom Tomahawk/Trident, Intel Tofino and some of NVIDIA's chips.)Through AsterNOS's rich L2/L3 features and enhancements in virtualization and management, cloud architecture built with Asterfusion switching families from 1G-800G (or other standard whitebox switches) can scale to tens of thousands of compute and storage nodes, working smoothly both in underlay nework and overlay cloud fabric with OpenStack integrated, supporting ultra low latency lossless RoCE network in AIGC, distributed storage , or building easily managed access clusters for campus networks.NOTICE: This appliance file is a virtualized version of AsterNOS and is intended to be used only to experience the basic functionality and industry standard CLI (Klish), not for official software testing. For more information about AsterNOS commercial version, please feel free to contact us via Email: bd@cloudswit.ch",
|
||||
"vendor_name": "Asterfusion",
|
||||
"vendor_url": "https://cloudswit.ch/",
|
||||
"vendor_logo_url": "https://raw.githubusercontent.com/GNS3/gns3-registry/master/vendor-logos/asterfusion.png",
|
||||
"documentation_url": "https://help.cloudswit.ch/portal/en/kb/articles/vasternos",
|
||||
"product_name": "vAsterNOS",
|
||||
"product_url": "https://cloudswit.ch/product/sonic-enterprise-distribution",
|
||||
"registry_version": 4,
|
||||
"status": "experimental",
|
||||
"maintainer": "Asterfusion",
|
||||
"maintainer_email": "bd@cloudswit.ch",
|
||||
"usage": "The login is admin, passwd asteros",
|
||||
"symbol": "asterfusion-vAsterNOS.svg",
|
||||
"first_port_name": "eth0",
|
||||
"port_name_format": "Ethernet{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 10,
|
||||
"ram": 4096,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "d",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "vAsterNOS-V3.1.img",
|
||||
"version": "V3.1",
|
||||
"md5sum": "c323c9c3f60e1a93eca2acdc5034b85c",
|
||||
"filesize": 2724659200,
|
||||
"download_url": "https://drive.cloudswitch.io/external/8ae2e3932ad8bb2ec30dd25be415d288ff3e4a949c557c6bd48ac6e6265bcfc1"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "V3.1",
|
||||
"images": {
|
||||
"hda_disk_image": "vAsterNOS-V3.1.img"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Configure interfaces in /opt/bootlocal.sh, BIRD configuration is done in /usr/local/etc/bird",
|
||||
"usage": "\n*** BIRD v1 is end-of-life ***\nPlease use the BIRD2 appliance.\n\nConfigure interfaces in /opt/bootlocal.sh, BIRD configuration is done in /usr/local/etc/bird",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 4,
|
||||
|
||||
@@ -23,6 +23,14 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "bird2-debian-2.14.qcow2",
|
||||
"version": "2.14",
|
||||
"md5sum": "029cf1756201ee79497c169502b08b88",
|
||||
"filesize": 303717376,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/bird2-debian-2.14.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "bird2-debian-2.0.12.qcow2",
|
||||
"version": "2.0.12",
|
||||
@@ -33,6 +41,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2.14",
|
||||
"images": {
|
||||
"hda_disk_image": "bird2-debian-2.14.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "2.0.12",
|
||||
"images": {
|
||||
|
||||
@@ -26,6 +26,13 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "asav9-18-2.qcow2",
|
||||
"version": "9.18.2 CML",
|
||||
"md5sum": "6f10fe106edfad9163625770a47a6b73",
|
||||
"filesize": 340262912,
|
||||
"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 CML",
|
||||
@@ -119,6 +126,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.18.2 CML",
|
||||
"images": {
|
||||
"hda_disk_image": "asav9-18-2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.16.2 CML",
|
||||
"images": {
|
||||
|
||||
@@ -24,6 +24,20 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.09.04a.qcow2",
|
||||
"version": "17.09.04a 8G",
|
||||
"md5sum": "d5dcba52b522f41648538737af80cdf9",
|
||||
"filesize": 1858142208,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Cupertino-17.9.4a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.09.01a.qcow2",
|
||||
"version": "17.09.01a 8G",
|
||||
"md5sum": "a10ae2c4d71f4eb611bc4d83ad7709f0",
|
||||
"filesize": 1856634880,
|
||||
"download_url": "https://software.cisco.com/download/home/286327102/type/282046477/release/Cupertino-17.9.1a"
|
||||
},
|
||||
{
|
||||
"filename": "c8000v-universalk9_8G_serial.17.06.05.qcow2",
|
||||
"version": "17.06.05 8G",
|
||||
@@ -54,6 +68,18 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.09.04a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.09.04a.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.09.01a 8G",
|
||||
"images": {
|
||||
"hda_disk_image": "c8000v-universalk9_8G_serial.17.09.01a.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.06.05 8G",
|
||||
"images": {
|
||||
|
||||
@@ -12,20 +12,27 @@
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "There is no default configuration present. Virtual Switch and Interfaces may take several minutes to be usable after appliance boot.",
|
||||
"usage": "There is no default configuration present. Virtual Switch and Interfaces may take several minutes to be usable after appliance boot.\n\nOnly has basic Layer 2 switching features. Will need to enable advance features and reboot to gain access to things like BGP, etc... \n\nconfigure terminal \nlicense boot level network-advantage addon dna-advantage \nend \nwrite memory \nreload",
|
||||
"first_port_name": "GigabitEthernet0/0",
|
||||
"port_name_format": "GigabitEthernet1/0/{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 9,
|
||||
"ram": 16384,
|
||||
"cpus": 2,
|
||||
"ram": 24576,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "cat9kv-prd-17.12.01prd9.qcow2",
|
||||
"version": "17.12(1)",
|
||||
"md5sum": "e587e92186f42bdf69d7fa27f34425f7",
|
||||
"filesize": 2739404800,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "cat9kv-prd-17.10.01prd7.qcow2",
|
||||
"version": "17.10(1)",
|
||||
@@ -35,6 +42,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.12(1)",
|
||||
"images": {
|
||||
"hda_disk_image": "cat9kv-prd-17.12.01prd9.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "17.10(1)",
|
||||
"images": {
|
||||
|
||||
@@ -24,6 +24,13 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "csr1000v-universalk9.17.03.06-serial.qcow2",
|
||||
"version": "17.03.06",
|
||||
"md5sum": "086ab9bef6e66de847af0da3910c60e8",
|
||||
"filesize": 1422000128,
|
||||
"download_url": "https://software.cisco.com/download/home/284364978/type/282046477/release/Gibraltar-16.12.3"
|
||||
},
|
||||
{
|
||||
"filename": "csr1000v-universalk9.16.12.03-serial.qcow2",
|
||||
"version": "16.12.3",
|
||||
@@ -159,6 +166,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.03.06",
|
||||
"images": {
|
||||
"hda_disk_image": "csr1000v-universalk9.17.03.06-serial.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16.12.3",
|
||||
"images": {
|
||||
|
||||
@@ -32,6 +32,13 @@
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files",
|
||||
"direct_download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/IOSv_startup_config.img/download"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m8.qcow2",
|
||||
"version": "15.9(3)M8",
|
||||
"md5sum": "8d93a185c2fa778178a933f20b02150a",
|
||||
"filesize": 57319424,
|
||||
"download_url": "https://learningnetworkstore.cisco.com/myaccount"
|
||||
},
|
||||
{
|
||||
"filename": "vios-adventerprisek9-m.spa.159-3.m6.qcow2",
|
||||
"version": "15.9(3)M6",
|
||||
@@ -97,6 +104,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "15.9(3)M8",
|
||||
"images": {
|
||||
"hda_disk_image": "vios-adventerprisek9-m.spa.159-3.m8.qcow2",
|
||||
"hdb_disk_image": "IOSv_startup_config.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.9(3)M6",
|
||||
"images": {
|
||||
|
||||
@@ -26,6 +26,13 @@
|
||||
"options": "-smp 4 -cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.7.1.qcow2",
|
||||
"version": "7.7.1",
|
||||
"md5sum": "682fff40d2ff373d8da3342906553b54",
|
||||
"filesize": 1643905024,
|
||||
"download_url": "https://software.cisco.com/download/home/286288939/type/280805694/release/7.1.1"
|
||||
},
|
||||
{
|
||||
"filename": "xrv9k-fullk9-x-7.1.1.qcow2",
|
||||
"version": "7.1.1",
|
||||
@@ -105,6 +112,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.7.1",
|
||||
"images": {
|
||||
"hda_disk_image": "xrv9k-fullk9-x-7.7.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.1.1",
|
||||
"images": {
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
"startup_config": "iou_l2_base_startup-config.txt"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "x86_64_crb_linux_l2-adventerprisek9-ms.bin",
|
||||
"version": "17.12.1",
|
||||
"md5sum": "2b5055e4cef8fd257416d74a94adb626",
|
||||
"filesize": 240355720
|
||||
},
|
||||
{
|
||||
"filename": "i86bi-linux-l2-ipbasek9-15.1g.bin",
|
||||
"version": "15.1g",
|
||||
@@ -38,6 +44,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.12.1",
|
||||
"images": {
|
||||
"image": "x86_64_crb_linux_l2-adventerprisek9-ms.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.1g",
|
||||
"images": {
|
||||
|
||||
@@ -18,6 +18,12 @@
|
||||
"startup_config": "iou_l3_base_startup-config.txt"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "x86_64_crb_linux-adventerprisek9-ms.bin",
|
||||
"version": "17.12.1",
|
||||
"md5sum": "4a2fce8de21d1831fbceffd155e41ae7",
|
||||
"filesize": 288947184
|
||||
},
|
||||
{
|
||||
"filename": "i86bi_LinuxL3-AdvEnterpriseK9-M2_157_3_May_2018.bin",
|
||||
"version": "15.7(3)M2",
|
||||
@@ -38,6 +44,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "17.12.1",
|
||||
"images": {
|
||||
"image": "x86_64_crb_linux-adventerprisek9-ms.bin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "15.7(3)M2",
|
||||
"images": {
|
||||
|
||||
@@ -26,6 +26,13 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "nexus9300v64.10.3.1.F.qcow2",
|
||||
"version": "9300v 10.3.1.F",
|
||||
"md5sum": "a6ffd2501a5791c11cee319943b912da",
|
||||
"filesize": 2097086464,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v64.10.1.1.qcow2",
|
||||
"version": "9500v 10.1.1",
|
||||
@@ -40,6 +47,34 @@
|
||||
"filesize": 1990983680,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/10.1(1)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.13.qcow2",
|
||||
"version": "9500v 9.3.13",
|
||||
"md5sum": "bacf0f664ee34625c85a9f278b2466a2",
|
||||
"filesize": 2248409088,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.13.qcow2",
|
||||
"version": "9300v 9.3.13",
|
||||
"md5sum": "d8ce30cb762df02d77ec27786a2435ad",
|
||||
"filesize": 2248343552,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(13)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.12.qcow2",
|
||||
"version": "9500v 9.3.12",
|
||||
"md5sum": "452e5cb2a7a25feaa3ba0624a82ff9ca",
|
||||
"filesize": 1997996032,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9300v.9.3.12.qcow2",
|
||||
"version": "9300v 9.3.12",
|
||||
"md5sum": "7b6b5dad1001e11d6ebb54662616e9f2",
|
||||
"filesize": 1997930496,
|
||||
"download_url": "https://software.cisco.com/download/home/286312239/type/282088129/release/9.3(12)"
|
||||
},
|
||||
{
|
||||
"filename": "nexus9500v.9.3.9.qcow2",
|
||||
"version": "9500v 9.3.9",
|
||||
@@ -198,6 +233,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9300v 10.3.1.F",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v64.10.3.1.F.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 10.1.1",
|
||||
"images": {
|
||||
@@ -212,6 +254,34 @@
|
||||
"hda_disk_image": "nexus9300v.10.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.13",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.13.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.13",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.13.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.12",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9500v.9.3.12.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9300v 9.3.12",
|
||||
"images": {
|
||||
"bios_image": "OVMF-edk2-stable202305.fd",
|
||||
"hda_disk_image": "nexus9300v.9.3.12.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9500v 9.3.9",
|
||||
"images": {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "Clavister NetShield (cOS Stream) Virtual Appliance offers the same functionality as the Clavister NetShield physical NGappliances FWs in a virtual environment.",
|
||||
"vendor_name": "Clavister",
|
||||
"vendor_url": "https://www.clavister.com/",
|
||||
"documentation_url": "https://kb.clavister.com",
|
||||
"documentation_url": "https://docs.clavister.com",
|
||||
"product_name": "NetShield",
|
||||
"product_url": "https://www.clavister.com/products/netshield/",
|
||||
"registry_version": 4,
|
||||
@@ -13,7 +13,7 @@
|
||||
"availability": "free-to-try",
|
||||
"maintainer": "Mattias Nordlund",
|
||||
"maintainer_email": "mattias.nordlund@clavister.com",
|
||||
"usage": "No configuration by default, oen console to set IPs and activate configuration.",
|
||||
"usage": "No configuration by default, use console to set IPs and activate configuration.",
|
||||
"port_name_format": "if{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
@@ -27,6 +27,13 @@
|
||||
"options": "-cpu Nehalem"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "clavister-cos-stream-4.00.00.34-virtual-x64-generic.qcow2",
|
||||
"version": "cOS Stream 4.00.00",
|
||||
"md5sum": "02b480621d9bf1a9a4e116cd47bef006",
|
||||
"filesize": 132841472,
|
||||
"download_url": "https://my.clavister.com/download/86399b21-44c7-ee11-a434-005056bdfeb0"
|
||||
},
|
||||
{
|
||||
"filename": "clavister-cos-stream-3.80.09.01-virtual-x64-generic.qcow2",
|
||||
"version": "cOS Stream 3.80.09",
|
||||
@@ -36,6 +43,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "cOS Stream 4.00.00",
|
||||
"images": {
|
||||
"hda_disk_image": "clavister-cos-stream-4.00.00.34-virtual-x64-generic.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "cOS Stream 3.80.09",
|
||||
"images": {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"description": "Clavister NetWall (cOS Core) Virtual Appliance offers the same functionality as the Clavister NetWall physical NGFWs in a virtual environment.",
|
||||
"vendor_name": "Clavister",
|
||||
"vendor_url": "https://www.clavister.com/",
|
||||
"documentation_url": "https://kb.clavister.com",
|
||||
"documentation_url": "https://docs.clavister.com",
|
||||
"product_name": "NetWall",
|
||||
"product_url": "https://www.clavister.com/products/ngfw/",
|
||||
"registry_version": 4,
|
||||
@@ -13,7 +13,7 @@
|
||||
"availability": "free-to-try",
|
||||
"maintainer": "Mattias Nordlund",
|
||||
"maintainer_email": "mattias.nordlund@clavister.com",
|
||||
"usage": "DHCP enabled on all interfaces by default, WebUI/SSH access enabled on the local network connected to If1.",
|
||||
"usage": "DHCP & cloud-init enabled on all interfaces by default, WebUI/SSH access enabled on the local network connected to If1.",
|
||||
"port_name_format": "If{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
@@ -26,6 +26,13 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "clavister-cos-core-14.00.13.08-kvm-en.img",
|
||||
"version": "cOS Core 14.00.13 (x86)",
|
||||
"md5sum": "d36797077378accb2b8fc72d09d07ee1",
|
||||
"filesize": 536870912,
|
||||
"download_url": "https://my.clavister.com/download/f3f494a3-9ee7-ee11-a434-005056bdfeb0"
|
||||
},
|
||||
{
|
||||
"filename": "clavister-cos-core-14.00.01.13-kvm-en.img",
|
||||
"version": "cOS Core 14.00.01 (x86)",
|
||||
@@ -42,6 +49,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "cOS Core 14.00.13 (x86)",
|
||||
"images": {
|
||||
"hda_disk_image": "clavister-cos-core-14.00.13.08-kvm-en.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "cOS Core 14.00.01 (x86)",
|
||||
"images": {
|
||||
|
||||
@@ -24,12 +24,28 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "debian-12.2.qcow2",
|
||||
"version": "12.2",
|
||||
"md5sum": "adf7716ec4a4e4e9e5ccfc7a1d7bd103",
|
||||
"filesize": 286654464,
|
||||
"filename": "debian-12.6.qcow2",
|
||||
"version": "12.6",
|
||||
"md5sum": "04753ba14295c6414d49bffe27b676ae",
|
||||
"filesize": 280907776,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.2.qcow2"
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.6.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "debian-12.4.qcow2",
|
||||
"version": "12.4",
|
||||
"md5sum": "adcf7fdc25e10b3d2d9e2ef91168bffd",
|
||||
"filesize": 286179840,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-12.4.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "debian-11.10.qcow2",
|
||||
"version": "11.10",
|
||||
"md5sum": "99a1dc8e110d641309674e69b630e732",
|
||||
"filesize": 263520256,
|
||||
"download_url": "https://sourceforge.net/projects/gns-3/files/Qemu%20Appliances/",
|
||||
"direct_download_url": "https://downloads.sourceforge.net/project/gns-3/Qemu%20Appliances/debian-11.10.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "debian-11.8.qcow2",
|
||||
@@ -42,9 +58,21 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "12.2",
|
||||
"name": "12.6",
|
||||
"images": {
|
||||
"hda_disk_image": "debian-12.2.qcow2"
|
||||
"hda_disk_image": "debian-12.6.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "12.4",
|
||||
"images": {
|
||||
"hda_disk_image": "debian-12.4.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "11.10",
|
||||
"images": {
|
||||
"hda_disk_image": "debian-11.10.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
||||
@@ -11,26 +11,36 @@
|
||||
"status": "experimental",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Make sure the Boot priority of the configuration template is HDD or CD.\n\nAbort the BCM process and format the flash after first boot by entering these commands:\nen\nformat flash:\n\nSometimes the flash device is not available after boot.",
|
||||
"usage": "Make sure the Boot priority of the configuration template is HDD or CD.\n\nFor FTOS 9.8, switch to vnc console, start the device, abort the BMP process and format the flash after first boot by entering these commands:\nen\nformat flash:\n\nSometimes the flash device is not available after boot.",
|
||||
"first_port_name": "Management0/0",
|
||||
"port_name_format": "fortyGigE0/{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 6,
|
||||
"ram": 512,
|
||||
"ram": 1024,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "i386",
|
||||
"console_type": "vnc",
|
||||
"console_type": "telnet",
|
||||
"boot_priority": "cd",
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FTOS-SI-9.13.0.0.iso",
|
||||
"version": "9.13.0",
|
||||
"md5sum": "8418049e451c76e7b85e36eca0a0a730",
|
||||
"filesize": 131278848,
|
||||
"download_url": "https://www.dell.com/support/kbdoc/en-us/000184062/ftos-for-s-series-os-emulator-current-release-evaluation-version",
|
||||
"direct_download_url": "https://downloads.dell.com/translatedpdf/force10/os9/FTOS-SI-9.13.0.0.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "FTOS-SI-9.8.0.0.iso",
|
||||
"version": "9.8.0",
|
||||
"md5sum": "b9b50eda0a73407dc381792ff7975e24",
|
||||
"filesize": 108115968,
|
||||
"download_url": "https://www.force10networks.com/CSPortal20/Software/SSeriesDownloads.aspx",
|
||||
"download_url": "https://www.dell.com/support/kbdoc/en-us/000184062/ftos-for-s-series-os-emulator-current-release-evaluation-version",
|
||||
"direct_download_url": "https://downloads.dell.com/translatedpdf/force10/os9/FTOS-SI-9.8.0.0.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
@@ -43,6 +53,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.13.0",
|
||||
"images": {
|
||||
"hda_disk_image": "empty30G.qcow2",
|
||||
"cdrom_image": "FTOS-SI-9.13.0.0.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.8.0",
|
||||
"images": {
|
||||
|
||||
@@ -26,163 +26,25 @@
|
||||
"kvm": "allow",
|
||||
"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",
|
||||
"filesize": 458227712,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v31.7.1.4.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v31.1.1.3.qcow2",
|
||||
"version": "31.1.1.3",
|
||||
"md5sum": "e4936ad94a5304bfeeca8dfc6f285cc0",
|
||||
"filesize": 561512448,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v31.1.1.3.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.7.1.1.qcow2",
|
||||
"version": "30.7.1.1",
|
||||
"md5sum": "c6b67023945102f984b47aa67c67fe33",
|
||||
"filesize": 485687296,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.7.1.1.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.6.1.11.qcow2",
|
||||
"version": "30.6.1.11",
|
||||
"md5sum": "bf3e13570417d7e3464165b344c196eb",
|
||||
"filesize": 475332608,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.6.1.11.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.5.1.15.qcow2",
|
||||
"version": "30.5.1.15",
|
||||
"md5sum": "380d0c7bb8f0aa272ceb84b85f367a63",
|
||||
"filesize": 498663424,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.5.1.15.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.4.1.2.qcow2",
|
||||
"version": "30.4.1.2",
|
||||
"md5sum": "133fa38bf80daec9e389729c96e692c0",
|
||||
"filesize": 454557696,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.4.1.2.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.3.1.6.qcow2",
|
||||
"version": "30.3.1.6",
|
||||
"md5sum": "edb86b406efe99434c6d5366d9bfa97f",
|
||||
"filesize": 448266240,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.3.1.6.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.2.1.8.qcow2",
|
||||
"version": "30.2.1.8",
|
||||
"md5sum": "4bdbf3ddff7a030e19c6bb71270b56d2",
|
||||
"filesize": 355205120,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.2.1.8.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v30.1.1.4.qcow2",
|
||||
"version": "30.1.1.4",
|
||||
"md5sum": "92d3f9b13d750f7bfa804823fa545772",
|
||||
"filesize": 383385600,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v30.1.1.4.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "EXOS-VM_v22.7.1.2.qcow2",
|
||||
"version": "22.7.1.2",
|
||||
"md5sum": "a13e839b3fa05e8a5b0fb31f7e3dda86",
|
||||
"filesize": 180420608,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v22.7.1.2.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"
|
||||
|
||||
{
|
||||
"filename": "EXOS-VM_v32.6.3.126.qcow2",
|
||||
"version": "32.6.3.126",
|
||||
"md5sum": "5856b6c427bd605fe1c7adb6ee6b2659",
|
||||
"filesize": 236716032,
|
||||
"direct_download_url": "https://akamai-ep.extremenetworks.com/Extreme_P/github-en/Virtual_EXOS/EXOS-VM_v32.6.3.126.qcow2"
|
||||
}
|
||||
|
||||
],
|
||||
|
||||
"versions": [
|
||||
|
||||
{
|
||||
"name": "32.1.1.6",
|
||||
"name": "32.6.3.126",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v32.1.1.6.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "31.7.1.4",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v31.7.1.4.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "31.1.1.3",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v31.1.1.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.7.1.1",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.7.1.1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.6.1.11",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.6.1.11.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.5.1.15",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.5.1.15.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.4.1.2",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.4.1.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.3.1.6",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.3.1.6.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.2.1.8",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.2.1.8.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "30.1.1.4",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v30.1.1.4.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "22.7.1.2",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v22.7.1.2.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "21.1.1.4",
|
||||
"images": {
|
||||
"hda_disk_image": "EXOS-VM_v21.1.1.4-disk1.qcow2"
|
||||
"hda_disk_image": "EXOS-VM_v32.6.3.126.qcow2"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -26,6 +26,14 @@
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
|
||||
"version": "39-1.5",
|
||||
"md5sum": "800a10df2d369891ed65900bcacacd47",
|
||||
"filesize": 544604160,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/39/Cloud/x86_64/images/Fedora-Cloud-Base-39-1.5.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
|
||||
"version": "38-1.6",
|
||||
@@ -34,30 +42,6 @@
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/38/Cloud/x86_64/images/Fedora-Cloud-Base-38-1.6.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-37-1.7.x86_64.qcow2",
|
||||
"version": "37-1.7",
|
||||
"md5sum": "36f7b464b6ab46ad97c001b539495e90",
|
||||
"filesize": 492830720,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/37/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/37/Cloud/x86_64/images/Fedora-Cloud-Base-37-1.7.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-36-1.5.x86_64.qcow2",
|
||||
"version": "36-1.5",
|
||||
"md5sum": "7f7cdad25b77f232078bf454c39529d3",
|
||||
"filesize": 448266240,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/36/Cloud/x86_64/images/Fedora-Cloud-Base-36-1.5.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Fedora-Cloud-Base-35-1.2.x86_64.qcow2",
|
||||
"version": "35-1.2",
|
||||
"md5sum": "cfa9cdcfb946e5f4cf9dd4d7906008d0",
|
||||
"filesize": 376897536,
|
||||
"download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/35/Cloud/x86_64/images",
|
||||
"direct_download_url": "https://download.fedoraproject.org/pub/fedora/linux/releases/35/Cloud/x86_64/images/Fedora-Cloud-Base-35-1.2.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "fedora-cloud-init-data.iso",
|
||||
"version": "1.0",
|
||||
@@ -68,33 +52,19 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "39-1.5",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-39-1.5.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "38-1.6",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-38-1.6.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "37-1.7",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-37-1.7.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "36-1.5",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-36-1.5.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "35-1.2",
|
||||
"images": {
|
||||
"hda_disk_image": "Fedora-Cloud-Base-35-1.2.x86_64.qcow2",
|
||||
"cdrom_image": "fedora-cloud-init-data.iso"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -28,10 +28,17 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FAD_KVM-FORTINET.out.kvm-data.qcow2",
|
||||
"version": "ALL",
|
||||
"md5sum": "b7500835594e62d8acb1c6ec43d597c1",
|
||||
"filesize": 30998528,
|
||||
"filename": "FAD_KVM-V7.4.4-build0347-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.4.4",
|
||||
"md5sum": "52fa343fd423a1a560473b8cf02f4c9c",
|
||||
"filesize": 180617216,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAD_KVM-V7.2.6-build0257-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.2.6",
|
||||
"md5sum": "ed8c3622b12212786c310aa94c928f06",
|
||||
"filesize": 146341888,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
@@ -41,6 +48,13 @@
|
||||
"filesize": 145817600,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAD_KVM-v7.1.4-build0138-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.1.4",
|
||||
"md5sum": "d4b3ff27fc9d0461199d6066174744ca",
|
||||
"filesize": 134152192,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAD_KVM-V7.1.1-build0117-FORTINET.out.kvm-boot.qcow2",
|
||||
"version": "7.1.1",
|
||||
@@ -243,9 +257,30 @@
|
||||
"md5sum": "7a71f52bde93c0000b047626731b7aef",
|
||||
"filesize": 68026368,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAD_KVM-FORTINET.out.kvm-data.qcow2",
|
||||
"version": "ALL",
|
||||
"md5sum": "b7500835594e62d8acb1c6ec43d597c1",
|
||||
"filesize": 30998528,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FAD_KVM-V7.4.4-build0347-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.6",
|
||||
"images": {
|
||||
"hda_disk_image": "FAD_KVM-V7.2.6-build0257-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.0",
|
||||
"images": {
|
||||
@@ -253,6 +288,13 @@
|
||||
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.1.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FAD_KVM-v7.1.4-build0138-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "FAD_KVM-FORTINET.out.kvm-data.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.1.1",
|
||||
"images": {
|
||||
|
||||
@@ -29,6 +29,20 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.3",
|
||||
"md5sum": "c58709af18516763ed88f58621447bf6",
|
||||
"filesize": 504463360,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.2",
|
||||
"md5sum": "33b2938e19a6cb61d4d64e6998a54d23",
|
||||
"filesize": 480096256,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.4.1-build2308-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.1",
|
||||
@@ -36,6 +50,13 @@
|
||||
"filesize": 435310592,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.5",
|
||||
"md5sum": "225d7405f35f78a482cffa34ef90080d",
|
||||
"filesize": 379973632,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.2.4-build1460-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.4",
|
||||
@@ -57,6 +78,20 @@
|
||||
"filesize": 340631552,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.12",
|
||||
"md5sum": "a45f8987ea13da836c684b5d9850c1c2",
|
||||
"filesize": 349560832,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.11",
|
||||
"md5sum": "ae7ff37d00d0b518e9982a0785665fc2",
|
||||
"filesize": 349257728,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v7.0.9-build0489-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.9",
|
||||
@@ -78,6 +113,13 @@
|
||||
"filesize": 334184448,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v6.4.14-build2660-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.14",
|
||||
"md5sum": "1629d76776c9d625faee0304b5840c02",
|
||||
"filesize": 300683264,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAZ_VM64_KVM-v6.4.12-build2610-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.12",
|
||||
@@ -235,6 +277,20 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.1",
|
||||
"images": {
|
||||
@@ -242,6 +298,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.4",
|
||||
"images": {
|
||||
@@ -263,6 +326,20 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.12",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.11",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.9",
|
||||
"images": {
|
||||
@@ -284,6 +361,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.14",
|
||||
"images": {
|
||||
"hda_disk_image": "FAZ_VM64_KVM-v6.4.14-build2660-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.12",
|
||||
"images": {
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "Default username is admin, no password is set. First book takes longer.",
|
||||
"usage": "Default username is admin, no password is set. First boot takes longer.",
|
||||
"symbol": "fortinet.svg",
|
||||
"port_name_format": "Port{port1}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 4,
|
||||
"ram": 1024,
|
||||
"ram": 4096,
|
||||
"hda_disk_interface": "virtio",
|
||||
"hdb_disk_interface": "virtio",
|
||||
"arch": "x86_64",
|
||||
@@ -28,6 +28,27 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_fackvm.qcow2",
|
||||
"version": "6.6.1",
|
||||
"md5sum": "4b2b475ac8b6f88b5033dca367d53cbb",
|
||||
"filesize": 138477584,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_fackvm.qcow2",
|
||||
"version": "6.5.5",
|
||||
"md5sum": "6850128ac51cee2577114ecd487786ff",
|
||||
"filesize": 112918544,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAC_VM_KVM-v6.4.9-build1067-FORTINET.out.kvm_fackvm.qcow2",
|
||||
"version": "6.4.9",
|
||||
"md5sum": "aee068a16fb2ca332d41e6add499b7d3",
|
||||
"filesize": 112197648,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAC_VM_KVM-v6-build0058-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.0.3",
|
||||
@@ -105,6 +126,20 @@
|
||||
"filesize": 62771200,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_datadrive.qcow2",
|
||||
"version": "6.6.1",
|
||||
"md5sum": "9bbaa1ce1508b4af1f43ba00879269f9",
|
||||
"filesize": 197568,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_datadrive.qcow2",
|
||||
"version": "6.4.x, 6.5.x",
|
||||
"md5sum": "3f7173307047cf562f55ed2f99450c10",
|
||||
"filesize": 197568,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FAC_VM_KVM-ALL-DATADRIVE.qcow2",
|
||||
"version": "All",
|
||||
@@ -114,6 +149,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "6.6.1",
|
||||
"images": {
|
||||
"hda_disk_image": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_fackvm.qcow2",
|
||||
"hdb_disk_image": "FAC_VM_KVM-v6.6.1-build1660-FORTINET.out.kvm_datadrive.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_fackvm.qcow2",
|
||||
"hdb_disk_image": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_datadrive.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.9",
|
||||
"images": {
|
||||
"hda_disk_image": "FAC_VM_KVM-v6.4.9-build1067-FORTINET.out.kvm_fackvm.qcow2",
|
||||
"hdb_disk_image": "FAC_VM_KVM-v6.5.5-build1385-FORTINET.out.kvm_datadrive.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.0.3",
|
||||
"images": {
|
||||
|
||||
@@ -28,6 +28,20 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.4.F-build2573-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.4",
|
||||
"md5sum": "dfe0e78827ec728631539669001bb23f",
|
||||
"filesize": 100728832,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.3.F-build2573-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.3",
|
||||
"md5sum": "e7517095c91dce1a76a9bcf114b5fa15",
|
||||
"filesize": 100728832,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.4.1.F-build2463-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.1",
|
||||
@@ -35,6 +49,20 @@
|
||||
"filesize": 116064256,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.2.8.M-build1639-FORTINET.out.kvm_fortios.qcow2",
|
||||
"version": "7.2.8",
|
||||
"md5sum": "5c8fd4baf80aeb2999d4be5a9c49eb3d",
|
||||
"filesize": 89980928,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.2.7.M-build1577-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.7",
|
||||
"md5sum": "752b56844e464b0b135e57f72681c288",
|
||||
"filesize": 102760448,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.2.6.F-build1575-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.6",
|
||||
@@ -63,6 +91,20 @@
|
||||
"filesize": 86704128,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.0.15.M-build0601-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.15",
|
||||
"md5sum": "423f50378b7e93098ab765c3dd3a788f",
|
||||
"filesize": 77398016,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.0.14.M-build0601-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.14",
|
||||
"md5sum": "20c855889e1117902bcf448b30746d30",
|
||||
"filesize": 77398016,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v7.0.13.M-build0566-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.13",
|
||||
@@ -91,6 +133,13 @@
|
||||
"filesize": 77135872,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v6.4.15.M-build2095-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.15",
|
||||
"md5sum": "a0306a3905877de654dab7e1bb67089e",
|
||||
"filesize": 81592320,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FGT_VM64_KVM-v6.4.14.M-build2093-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.14",
|
||||
@@ -339,6 +388,20 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.4",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.4.F-build2573-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.4.3.F-build2573-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.1",
|
||||
"images": {
|
||||
@@ -346,6 +409,20 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.8",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.2.8.M-build1639-FORTINET.out.kvm_fortios.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.7",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.2.7.M-build1577-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.6",
|
||||
"images": {
|
||||
@@ -374,6 +451,20 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.15",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.0.15.M-build0601-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.14",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v7.0.14.M-build0601-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.13",
|
||||
"images": {
|
||||
@@ -402,6 +493,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.15",
|
||||
"images": {
|
||||
"hda_disk_image": "FGT_VM64_KVM-v6.4.15.M-build2095-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.14",
|
||||
"images": {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"status": "stable",
|
||||
"maintainer": "Ean Towne",
|
||||
"maintainer_email": "ean.fortinet@gmail.com",
|
||||
"usage": "Default username is admin, no password is set.\n\n- Versions lower than 7.0.x require less CPU/RAM",
|
||||
"usage": "Default username is admin, no password is set.\n\n- Versions lower than 7.0.x require less CPU/RAM\n7.4.x may require 16GB RAM.",
|
||||
"symbol": "fortinet.svg",
|
||||
"port_name_format": "Port{port1}",
|
||||
"qemu": {
|
||||
@@ -29,6 +29,20 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.23",
|
||||
"md5sum": "b01d9f86aa27c538407d518df1326863",
|
||||
"filesize": 346107904,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.2",
|
||||
"md5sum": "36371fbf06210ded57c00b2ff290f2c5",
|
||||
"filesize": 322514944,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.4.1-build2308-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.4.1",
|
||||
@@ -36,6 +50,13 @@
|
||||
"filesize": 309387264,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.5",
|
||||
"md5sum": "754326845096afd909ec45d98f8d5a83",
|
||||
"filesize": 278401024,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.2.4-build1460-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.2.4",
|
||||
@@ -57,6 +78,20 @@
|
||||
"filesize": 242814976,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.12",
|
||||
"md5sum": "5b6f6a2b8bc00e56337aa7023a9025cf",
|
||||
"filesize": 249520128,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.11",
|
||||
"md5sum": "7b166222136e26190159f37cccbaab6e",
|
||||
"filesize": 249360384,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v7.0.9-build0489-FORTINET.out.kvm.qcow2",
|
||||
"version": "7.0.9",
|
||||
@@ -78,6 +113,13 @@
|
||||
"filesize": 237535232,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6.4.14-build2660-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.14",
|
||||
"md5sum": "0fe56e363b166c07b710bde795e36049",
|
||||
"filesize": 219430912,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FMG_VM64_KVM-v6.4.12-build2610-FORTINET.out.kvm.qcow2",
|
||||
"version": "6.4.12",
|
||||
@@ -235,6 +277,20 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.3-build2487-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.2",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.4.2-build2397-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.1",
|
||||
"images": {
|
||||
@@ -242,6 +298,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.5",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.2.5-build1574-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.4",
|
||||
"images": {
|
||||
@@ -263,6 +326,20 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.12",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.12-build0623-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.11",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v7.0.11-build0595-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.9",
|
||||
"images": {
|
||||
@@ -284,6 +361,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.14",
|
||||
"images": {
|
||||
"hda_disk_image": "FMG_VM64_KVM-v6.4.14-build2660-FORTINET.out.kvm.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.4.12",
|
||||
"images": {
|
||||
|
||||
@@ -28,6 +28,27 @@
|
||||
"kvm": "allow"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FWB_KVM-v7.6.0.F-build0962-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.6.0",
|
||||
"md5sum": "e94aa4af7ed0a12bd6084f0d74a2a96e",
|
||||
"filesize": 329187840,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FWB_KVM-v7.4.3-build0638-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.4.3",
|
||||
"md5sum": "3c0ac11a6d80a319a4fe460aff5bc66c",
|
||||
"filesize": 303497728,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FWB_KVM-v7.2.8-build0400-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.2.8",
|
||||
"md5sum": "367307242e6855dc190df089d196e712",
|
||||
"filesize": 257950208,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FWB_KVM-v7.2.1-build0330-FORTINET.out.kvm.boot.qcow2",
|
||||
"version": "7.2.1",
|
||||
@@ -35,6 +56,13 @@
|
||||
"filesize": 260506112,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FWB_KVM-v7.0.10-build0166-FORTINET.out.kvm_boot.qcow2",
|
||||
"version": "7.0.10",
|
||||
"md5sum": "ff9d4b827c4e41c1b38e59359ba05487",
|
||||
"filesize": 257556992,
|
||||
"download_url": "https://support.fortinet.com/Download/FirmwareImages.aspx"
|
||||
},
|
||||
{
|
||||
"filename": "FWB_KVM-v7.0.6-build0140-FORTINET.out.kvm.boot.qcow2",
|
||||
"version": "7.0.6",
|
||||
@@ -150,6 +178,27 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.6.0",
|
||||
"images": {
|
||||
"hda_disk_image": "FWB_KVM-v7.6.0.F-build0962-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.4.3",
|
||||
"images": {
|
||||
"hda_disk_image": "FWB_KVM-v7.4.3-build0638-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.8",
|
||||
"images": {
|
||||
"hda_disk_image": "FWB_KVM-v7.2.8-build0400-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.2.1",
|
||||
"images": {
|
||||
@@ -157,6 +206,13 @@
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.10",
|
||||
"images": {
|
||||
"hda_disk_image": "FWB_KVM-v7.0.10-build0166-FORTINET.out.kvm_boot.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "7.0.6",
|
||||
"images": {
|
||||
|
||||
@@ -24,13 +24,22 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "FreeBSD-14.0-RELEASE-amd64.qcow2",
|
||||
"version": "14.0",
|
||||
"md5sum": "87b988eaa4a8aaabea1c10649c98b3f0",
|
||||
"filesize": 3506569216,
|
||||
"download_url": "https://www.freebsd.org/where.html",
|
||||
"direct_download_url": "https://download.freebsd.org/releases/VM-IMAGES/14.0-RELEASE/amd64/Latest/FreeBSD-14.0-RELEASE-amd64.qcow2.xz",
|
||||
"compression": "xz"
|
||||
},
|
||||
{
|
||||
"filename": "FreeBSD-13.0-RELEASE-amd64.qcow2",
|
||||
"version": "13.0",
|
||||
"md5sum": "e8e598959da456c03260421b5f9890de",
|
||||
"filesize": 3466854400,
|
||||
"download_url": "https://www.freebsd.org/where.html",
|
||||
"direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/13.0-RELEASE/amd64/Latest/FreeBSD-13.0-RELEASE-amd64.qcow2.xz",
|
||||
"direct_download_url": "http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/VM-IMAGES/13.0-RELEASE/amd64/Latest/FreeBSD-13.0-RELEASE-amd64.qcow2.xz",
|
||||
"compression": "xz"
|
||||
},
|
||||
{
|
||||
@@ -39,11 +48,17 @@
|
||||
"md5sum": "3d7d5396f3d89ed30c2bfa2ee2e6b013",
|
||||
"filesize": 3412000768,
|
||||
"download_url": "https://www.freebsd.org/where.html",
|
||||
"direct_download_url": "https://download.freebsd.org/ftp/releases/VM-IMAGES/12.3-RELEASE/amd64/Latest/FreeBSD-12.3-RELEASE-amd64.qcow2.xz",
|
||||
"direct_download_url": "http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/VM-IMAGES/12.3-RELEASE/amd64/Latest/FreeBSD-12.3-RELEASE-amd64.qcow2.xz",
|
||||
"compression": "xz"
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "14.0",
|
||||
"images": {
|
||||
"hda_disk_image": "FreeBSD-14.0-RELEASE-amd64.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "13.0",
|
||||
"images": {
|
||||
|
||||
@@ -7,16 +7,65 @@
|
||||
"vendor_url": "https://www.huawei.com",
|
||||
"product_name": "HuaWei NE40E",
|
||||
"product_url": "https://e.huawei.com/en/products/enterprise-networking/routers/ne/ne40e",
|
||||
"registry_version": 4,
|
||||
"registry_version": 6,
|
||||
"status": "experimental",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "none",
|
||||
"maintainer_email": "",
|
||||
"first_port_name": "eth0",
|
||||
"port_name_format": "Ethernet1/0/{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 12,
|
||||
"custom_adapters": [
|
||||
{
|
||||
"adapter_number": 0,
|
||||
"port_name": "Gi0/0/0"
|
||||
},
|
||||
{
|
||||
"adapter_number": 1,
|
||||
"port_name": "Mgmt0/0"
|
||||
},
|
||||
{
|
||||
"adapter_number": 2,
|
||||
"port_name": "Ethernet1/0/0"
|
||||
},
|
||||
{
|
||||
"adapter_number": 3,
|
||||
"port_name": "Ethernet1/0/1"
|
||||
},
|
||||
{
|
||||
"adapter_number": 4,
|
||||
"port_name": "Ethernet1/0/2"
|
||||
},
|
||||
{
|
||||
"adapter_number": 5,
|
||||
"port_name": "Ethernet1/0/3"
|
||||
},
|
||||
{
|
||||
"adapter_number": 6,
|
||||
"port_name": "Ethernet1/0/4"
|
||||
},
|
||||
{
|
||||
"adapter_number": 7,
|
||||
"port_name": "Ethernet1/0/5"
|
||||
},
|
||||
{
|
||||
"adapter_number": 8,
|
||||
"port_name": "Ethernet1/0/6"
|
||||
},
|
||||
{
|
||||
"adapter_number": 9,
|
||||
"port_name": "Ethernet1/0/7"
|
||||
},
|
||||
{
|
||||
"adapter_number": 10,
|
||||
"port_name": "Ethernet1/0/8"
|
||||
},
|
||||
{
|
||||
"adapter_number": 11,
|
||||
"port_name": "Ethernet1/0/9"
|
||||
}
|
||||
],
|
||||
"ram": 2048,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "ide",
|
||||
|
||||
@@ -12,18 +12,19 @@
|
||||
"status": "stable",
|
||||
"maintainer": "GNS3 Team",
|
||||
"maintainer_email": "developers@gns3.net",
|
||||
"usage": "16 GB RAM is the bare minimum; you should use 32/64 GB in production deplyments.\nDefault credentials:\n- CLI: admin / abc123\n- WebUI: super / juniper123",
|
||||
"usage": "16 GB RAM is the bare minimum; you should use 32/64 GB in production deployments.\nDefault credentials:\n- CLI: admin / abc123\n- WebUI: super / juniper123",
|
||||
"symbol": "juniper-vqfx.svg",
|
||||
"port_name_format": "em{0}",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 4,
|
||||
"ram": 16384,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-smp 4 -nographic"
|
||||
"options": "-nographic -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic"
|
||||
"options": "-nographic -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic -enable-kvm"
|
||||
"options": "-nographic -enable-kvm -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -20,11 +20,12 @@
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 13,
|
||||
"ram": 4096,
|
||||
"cpus": 4,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic -enable-kvm -smp cpus=3"
|
||||
"options": "-nographic -enable-kvm -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"kvm": "require",
|
||||
"options": "-nographic"
|
||||
"options": "-nographic -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -19,11 +19,12 @@
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 12,
|
||||
"ram": 1024,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic -smp 2"
|
||||
"options": "-nographic -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-nographic -enable-kvm"
|
||||
"options": "-nographic -enable-kvm -machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -19,11 +19,12 @@
|
||||
"adapter_type": "vmxnet3",
|
||||
"adapters": 6,
|
||||
"ram": 4096,
|
||||
"cpus": 2,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "telnet",
|
||||
"kvm": "require",
|
||||
"options": "-smp 2"
|
||||
"options": "-machine q35,smbios-entry-point-type=32"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
|
||||
@@ -27,6 +27,15 @@
|
||||
"options": "-nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "chr-7.14.2.img",
|
||||
"version": "7.14.2",
|
||||
"md5sum": "531901dac85b67b23011e946a62abc7b",
|
||||
"filesize": 134217728,
|
||||
"download_url": "http://www.mikrotik.com/download",
|
||||
"direct_download_url": "https://download.mikrotik.com/routeros/7.14.2/chr-7.14.2.img.zip",
|
||||
"compression": "zip"
|
||||
},
|
||||
{
|
||||
"filename": "chr-7.11.2.img",
|
||||
"version": "7.11.2",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"documentation_url": "http://wiki.mikrotik.com/wiki/Manual:CHR",
|
||||
"product_name": "MikroTik RouterBOARD 1100AHx4 Dude Edition",
|
||||
"product_url": "http://www.mikrotik.com/download",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "Azorian Solutions",
|
||||
"maintainer_email": "help@azorian.solutions",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"documentation_url": "http://wiki.mikrotik.com/wiki/Manual:CHR",
|
||||
"product_name": "MikroTik RouterBOARD 450G",
|
||||
"product_url": "http://www.mikrotik.com/download",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "Azorian Solutions",
|
||||
"maintainer_email": "help@azorian.solutions",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"documentation_url": "http://wiki.mikrotik.com/wiki/Manual:CHR",
|
||||
"product_name": "MikroTik RouterBOARD 450Gx4",
|
||||
"product_url": "http://www.mikrotik.com/download",
|
||||
"registry_version": 5,
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"maintainer": "Azorian Solutions",
|
||||
"maintainer_email": "help@azorian.solutions",
|
||||
|
||||
@@ -26,6 +26,14 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "openmediavault_7.0.32-amd64.iso",
|
||||
"version": "7.0.32",
|
||||
"md5sum": "36d1fda7de0c8dd6806a65145845d362",
|
||||
"filesize": 981467136,
|
||||
"download_url": "https://www.openmediavault.org/download.html",
|
||||
"direct_download_url": "https://sourceforge.net/projects/openmediavault/files/iso/7.0-32/openmediavault_7.0-32-amd64.iso"
|
||||
},
|
||||
{
|
||||
"filename": "openmediavault_6.5.0-amd64.iso",
|
||||
"version": "6.5.0",
|
||||
@@ -68,6 +76,14 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "7.0.32",
|
||||
"images": {
|
||||
"hda_disk_image": "empty30G.qcow2",
|
||||
"hdb_disk_image": "empty30G.qcow2",
|
||||
"cdrom_image": "openmediavault_7.0.32-amd64.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "6.5.0",
|
||||
"images": {
|
||||
|
||||
@@ -16,6 +16,6 @@
|
||||
"docker": {
|
||||
"adapters": 16,
|
||||
"image": "gns3/openvswitch:latest",
|
||||
"environment": "MANAGEMENT_INTERFACE=1"
|
||||
"environment": "MANAGEMENT_INTERFACE=eth0"
|
||||
}
|
||||
}
|
||||
@@ -25,6 +25,13 @@
|
||||
"kvm": "require"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "OPNsense-24.1-nano-amd64.img",
|
||||
"version": "24.1",
|
||||
"md5sum": "ea8472df2c272419b7834cddaf68048d",
|
||||
"filesize": 3221225472,
|
||||
"download_url": "https://opnsense.c0urier.net/releases/24.1/"
|
||||
},
|
||||
{
|
||||
"filename": "OPNsense-23.1-OpenSSL-nano-amd64.img",
|
||||
"version": "23.1",
|
||||
@@ -62,6 +69,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "24.1",
|
||||
"images": {
|
||||
"hda_disk_image": "OPNsense-24.1-nano-amd64.img"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "23.1",
|
||||
"images": {
|
||||
|
||||
@@ -30,6 +30,13 @@
|
||||
"options": "-vga std -usbdevice tablet"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"version": "1.3.0",
|
||||
"filename": "ostinatostd-1.3.0-1.qcow2",
|
||||
"filesize": 173735936,
|
||||
"md5sum": "ff25fed989c43aeac84bf0d542ad43ba",
|
||||
"download_url": "https://ostinato.org/pricing/gns3"
|
||||
},
|
||||
{
|
||||
"filename": "ostinatostd-1.2.0-1.qcow2",
|
||||
"version": "1.2.0",
|
||||
@@ -46,6 +53,12 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "1.3.0",
|
||||
"images": {
|
||||
"hda_disk_image": "ostinatostd-1.3.0-1.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "1.2.0",
|
||||
"images": {
|
||||
|
||||
@@ -28,6 +28,20 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "PA-VM-KVM-11.0.0.qcow2",
|
||||
"version": "11.0.0",
|
||||
"md5sum": "fc54b0e680ca2bcecb5522430e420f06",
|
||||
"filesize": 4130865152,
|
||||
"download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/"
|
||||
},
|
||||
{
|
||||
"filename": "PA-VM-KVM-10.2.3.qcow2",
|
||||
"version": "10.2.3",
|
||||
"md5sum": "0e7b2a52d1447186d335ef9a1a197c6c",
|
||||
"filesize": 5298585600,
|
||||
"download_url": "https://support.paloaltonetworks.com/Updates/SoftwareUpdates/"
|
||||
},
|
||||
{
|
||||
"filename": "PA-VM-KVM-10.1.0.qcow2",
|
||||
"version": "10.1.0",
|
||||
"md5sum": "8266fd412a22694749f2cd4afcd5fa33",
|
||||
@@ -128,6 +142,18 @@
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "11.0.0",
|
||||
"images": {
|
||||
"hda_disk_image": "PA-VM-KVM-11.0.0.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.2.3",
|
||||
"images": {
|
||||
"hda_disk_image": "PA-VM-KVM-10.2.3.qcow2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "10.1.0",
|
||||
"images": {
|
||||
"hda_disk_image": "PA-VM-KVM-10.1.0.qcow2"
|
||||
|
||||
@@ -11,9 +11,9 @@
|
||||
"registry_version": 4,
|
||||
"status": "stable",
|
||||
"availability": "service-contract",
|
||||
"maintainer": "Neyder Achahuanco",
|
||||
"maintainer_email": "neyder@neyder.net",
|
||||
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.2/x86_64/product-software attach/customize cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
|
||||
"maintainer": "Da-Geek",
|
||||
"maintainer_email": "dageek@dageeks-geeks.gg",
|
||||
"usage": "You should download Red Hat Enterprise Linux KVM Guest Image from https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.3/x86_64/product-software attach/customize rhel-cloud-init.iso and start.\nusername: cloud-user\npassword: redhat",
|
||||
"qemu": {
|
||||
"adapter_type": "virtio-net-pci",
|
||||
"adapters": 1,
|
||||
@@ -26,6 +26,13 @@
|
||||
"options": "-cpu host -nographic"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "rhel-9.3-x86_64-kvm.qcow2",
|
||||
"version": "9.3",
|
||||
"md5sum": "409d8d15f5177db2617b0e3e02139b5c",
|
||||
"filesize": 858193920,
|
||||
"download_url": "https://access.redhat.com/downloads/content/479/ver=/rhel---9/9.3/x86_64/product-software"
|
||||
},
|
||||
{
|
||||
"filename": "rhel-9.2-x86_64-kvm.qcow2",
|
||||
"version": "9.2",
|
||||
@@ -112,6 +119,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.3",
|
||||
"images": {
|
||||
"hda_disk_image": "rhel-9.3-x86_64-kvm.qcow2",
|
||||
"cdrom_image": "rhel-cloud-init.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2",
|
||||
"images": {
|
||||
|
||||
@@ -26,6 +26,14 @@
|
||||
"options": "-nographic -cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "Rocky-9-GenericCloud-Base-9.3-20231113.0.x86_64.qcow2",
|
||||
"version": "9.3",
|
||||
"md5sum": "48cdeb033364af5909e15ee48d0e144d",
|
||||
"filesize": 1083965440,
|
||||
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
|
||||
"direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.3-20231113.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2",
|
||||
"version": "9.2",
|
||||
@@ -34,6 +42,14 @@
|
||||
"download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/",
|
||||
"direct_download_url": "https://download.rockylinux.org/pub/rocky/9/images/x86_64/Rocky-9-GenericCloud-Base-9.2-20230513.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Rocky-8-GenericCloud-Base-8.9-20231119.0.x86_64.qcow2",
|
||||
"version": "8.9",
|
||||
"md5sum": "50c44d8d9c4df43694372c13768f114c",
|
||||
"filesize": 1971978240,
|
||||
"download_url": "https://download.rockylinux.org/pub/rocky/8/images/x86_64/",
|
||||
"direct_download_url": "https://download.rockylinux.org/pub/rocky/8/images/x86_64/Rocky-8-GenericCloud-Base-8.9-20231119.0.x86_64.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "Rocky-8-GenericCloud-Base-8.8-20230518.0.x86_64.qcow2",
|
||||
"version": "8.8",
|
||||
@@ -52,6 +68,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "9.3",
|
||||
"images": {
|
||||
"hda_disk_image": "Rocky-9-GenericCloud-Base-9.3-20231113.0.x86_64.qcow2",
|
||||
"cdrom_image": "rocky-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "9.2",
|
||||
"images": {
|
||||
@@ -59,6 +82,13 @@
|
||||
"cdrom_image": "rocky-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.9",
|
||||
"images": {
|
||||
"hda_disk_image": "Rocky-8-GenericCloud-Base-8.9-20231119.0.x86_64.qcow2",
|
||||
"cdrom_image": "rocky-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "8.8",
|
||||
"images": {
|
||||
|
||||
@@ -13,18 +13,27 @@
|
||||
"status": "stable",
|
||||
"maintainer": "Brent Stewart",
|
||||
"maintainer_email": "brent@stewart.tc",
|
||||
"usage": "Your default account will have sudo priviledges. Squil and Squert username and password are configured in the Setup wizard. MySQL root is set to null. For more info see https://github.com/Security-Onion-Solutions/security-onion/wiki/Passwords.",
|
||||
"usage": "Your default account will have sudo privileges. Squil and Squert username and password are configured in the Setup wizard. MySQL root is set to null. For more info see https://github.com/Security-Onion-Solutions/security-onion/wiki/Passwords.",
|
||||
"symbol": "securityonion-logo.png",
|
||||
"qemu": {
|
||||
"adapter_type": "e1000",
|
||||
"adapters": 2,
|
||||
"ram": 3072,
|
||||
"ram": 4096,
|
||||
"hda_disk_interface": "ide",
|
||||
"arch": "x86_64",
|
||||
"console_type": "vnc",
|
||||
"kvm": "allow"
|
||||
"kvm": "allow",
|
||||
"options": "-cpu host"
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "securityonion-2.4.80-20240624.iso",
|
||||
"version": "2.4.80-20240624",
|
||||
"md5sum": "139f9762e926f9cb3c4a9528a3752c31",
|
||||
"filesize": 12391022592,
|
||||
"download_url": "https://github.com/Security-Onion-Solutions/securityonion/blob/2.4/main/DOWNLOAD_AND_VERIFY_ISO.md",
|
||||
"direct_download_url": "https://download.securityonion.net/file/securityonion/securityonion-2.4.80-20240624.iso"
|
||||
},
|
||||
{
|
||||
"filename": "securityonion-16.04.7.1.iso",
|
||||
"version": "16.04.7.1",
|
||||
@@ -49,6 +58,14 @@
|
||||
"download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/",
|
||||
"direct_download_url": "https://github.com/Security-Onion-Solutions/security-onion/releases/download/v14.04.5.4_20171031/securityonion-14.04.5.4.iso"
|
||||
},
|
||||
{
|
||||
"filename": "empty100G.qcow2",
|
||||
"version": "1.0",
|
||||
"md5sum": "5d9fec18a980f13002028491259f158d",
|
||||
"filesize": 198656,
|
||||
"download_url": "https://github.com/riverbed/Riverbed-Community-Toolkit/raw/master/SteelHead/GNS3",
|
||||
"direct_download_url": "https://github.com/riverbed/Riverbed-Community-Toolkit/raw/master/SteelHead/GNS3/empty100G.qcow2"
|
||||
},
|
||||
{
|
||||
"filename": "empty30G.qcow2",
|
||||
"version": "1.0",
|
||||
@@ -59,6 +76,13 @@
|
||||
}
|
||||
],
|
||||
"versions": [
|
||||
{
|
||||
"name": "2.4.80-20240624",
|
||||
"images": {
|
||||
"hda_disk_image": "empty100G.qcow2",
|
||||
"cdrom_image": "securityonion-2.4.80-20240624.iso"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "16.04.7.1",
|
||||
"images": {
|
||||
|
||||
@@ -28,12 +28,12 @@
|
||||
},
|
||||
"images": [
|
||||
{
|
||||
"filename": "ubuntu-23.04-server-cloudimg-arm64.img",
|
||||
"filename": "ubuntu-23.04-server-cloudimg-amd64.img",
|
||||
"version": "Ubuntu 23.04 (Lunar Lobster)",
|
||||
"md5sum": "35fa3b31b65717af6f0520a769aac8c0",
|
||||
"filesize": 786432000,
|
||||
"md5sum": "369e3b1f68416c39245a8014172406dd",
|
||||
"filesize": 756678656,
|
||||
"download_url": "https://cloud-images.ubuntu.com/releases/23.04/release/",
|
||||
"direct_download_url": "https://cloud-images.ubuntu.com/releases/23.04/release/ubuntu-23.04-server-cloudimg-arm64.img"
|
||||
"direct_download_url": "https://cloud-images.ubuntu.com/releases/23.04/release/ubuntu-23.04-server-cloudimg-amd64.img"
|
||||
},
|
||||
{
|
||||
"filename": "ubuntu-22.04-server-cloudimg-amd64.img",
|
||||
@@ -72,7 +72,7 @@
|
||||
{
|
||||
"name": "Ubuntu 23.04 (Lunar Lobster)",
|
||||
"images": {
|
||||
"hda_disk_image": "ubuntu-23.04-server-cloudimg-arm64.img",
|
||||
"hda_disk_image": "ubuntu-23.04-server-cloudimg-amd64.img",
|
||||
"cdrom_image": "ubuntu-cloud-init-data.iso"
|
||||
}
|
||||
},
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"symbol": "linux_guest.svg",
|
||||
"docker": {
|
||||
"adapters": 1,
|
||||
"image": "gns3/ubuntu:focal",
|
||||
"image": "gns3/ubuntu:noble",
|
||||
"console_type": "telnet"
|
||||
}
|
||||
}
|
||||
@@ -656,6 +656,9 @@ class BaseNode:
|
||||
"""
|
||||
|
||||
path = self._manager.config.get_section_config("Server").get("ubridge_path", "ubridge")
|
||||
if sys.platform.startswith("win") and hasattr(sys, "frozen"):
|
||||
ubridge_dir = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "ubridge"))
|
||||
os.environ["PATH"] = os.pathsep.join(ubridge_dir) + os.pathsep + os.environ.get("PATH", "")
|
||||
path = shutil.which(path)
|
||||
return path
|
||||
|
||||
|
||||
@@ -19,12 +19,17 @@
|
||||
Docker server module.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import asyncio
|
||||
import logging
|
||||
import aiohttp
|
||||
import shutil
|
||||
import platformdirs
|
||||
|
||||
from gns3server.utils import parse_version
|
||||
from gns3server.config import Config
|
||||
from gns3server.utils.asyncio import locking
|
||||
from gns3server.compute.base_manager import BaseManager
|
||||
from gns3server.compute.docker.docker_vm import DockerVM
|
||||
@@ -55,6 +60,64 @@ class Docker(BaseManager):
|
||||
self._session = None
|
||||
self._api_version = DOCKER_MINIMUM_API_VERSION
|
||||
|
||||
@staticmethod
|
||||
async def install_busybox(dst_dir):
|
||||
|
||||
dst_busybox = os.path.join(dst_dir, "bin", "busybox")
|
||||
if os.path.isfile(dst_busybox):
|
||||
return
|
||||
for busybox_exec in ("busybox-static", "busybox.static", "busybox"):
|
||||
busybox_path = shutil.which(busybox_exec)
|
||||
if busybox_path:
|
||||
try:
|
||||
# check that busybox is statically linked
|
||||
# (dynamically linked busybox will fail to run in a container)
|
||||
proc = await asyncio.create_subprocess_exec(
|
||||
"ldd",
|
||||
busybox_path,
|
||||
stdout=asyncio.subprocess.PIPE,
|
||||
stderr=asyncio.subprocess.DEVNULL
|
||||
)
|
||||
stdout, _ = await proc.communicate()
|
||||
if proc.returncode == 1:
|
||||
# ldd returns 1 if the file is not a dynamic executable
|
||||
log.info(f"Installing busybox from '{busybox_path}' to '{dst_busybox}'")
|
||||
shutil.copy2(busybox_path, dst_busybox, follow_symlinks=True)
|
||||
return
|
||||
else:
|
||||
log.warning(f"Busybox '{busybox_path}' is dynamically linked\n"
|
||||
f"{stdout.decode('utf-8', errors='ignore').strip()}")
|
||||
except OSError as e:
|
||||
raise DockerError(f"Could not install busybox: {e}")
|
||||
raise DockerError("No busybox executable could be found, please install busybox (apt install busybox-static on Debian/Ubuntu) and make sure it is in your PATH")
|
||||
|
||||
@staticmethod
|
||||
def resources_path():
|
||||
"""
|
||||
Get the Docker resources storage directory
|
||||
"""
|
||||
|
||||
server_config = Config.instance().get_section_config("Server")
|
||||
appname = vendor = "GNS3"
|
||||
resources_path = os.path.expanduser(server_config.get("resources_path", platformdirs.user_data_dir(appname, vendor, roaming=True)))
|
||||
docker_resources_dir = os.path.join(resources_path, "docker")
|
||||
os.makedirs(docker_resources_dir, exist_ok=True)
|
||||
return docker_resources_dir
|
||||
|
||||
async def install_resources(self):
|
||||
"""
|
||||
Copy the necessary resources to a writable location and install busybox
|
||||
"""
|
||||
|
||||
try:
|
||||
dst_path = self.resources_path()
|
||||
log.info(f"Installing Docker resources in '{dst_path}'")
|
||||
from gns3server.controller import Controller
|
||||
Controller.instance().install_resource_files(dst_path, "compute/docker/resources")
|
||||
await self.install_busybox(dst_path)
|
||||
except OSError as e:
|
||||
raise DockerError(f"Could not install Docker resources to {dst_path}: {e}")
|
||||
|
||||
async def _check_connection(self):
|
||||
|
||||
if not self._connected:
|
||||
@@ -135,7 +198,7 @@ class Docker(BaseManager):
|
||||
timeout = 60 * 60 * 24 * 31 # One month timeout
|
||||
|
||||
if path == 'version':
|
||||
url = "http://docker/v1.12/" + path # API of docker v1.0
|
||||
url = "http://docker/v1.24/" + path
|
||||
else:
|
||||
url = "http://docker/v" + DOCKER_MINIMUM_API_VERSION + "/" + path
|
||||
try:
|
||||
|
||||
@@ -242,10 +242,13 @@ class DockerVM(BaseNode):
|
||||
:returns: Return the path that we need to map to local folders
|
||||
"""
|
||||
|
||||
resources = get_resource("compute/docker/resources")
|
||||
if not os.path.exists(resources):
|
||||
raise DockerError("{} is missing can't start Docker containers".format(resources))
|
||||
binds = ["{}:/gns3:ro".format(resources)]
|
||||
try:
|
||||
resources_path = self.manager.resources_path()
|
||||
except OSError as e:
|
||||
raise DockerError(f"Cannot access resources: {e}")
|
||||
|
||||
log.info(f'Mount resources from "{resources_path}"')
|
||||
binds = ["{}:/gns3:ro".format(resources_path)]
|
||||
|
||||
# We mount our own etc/network
|
||||
try:
|
||||
@@ -460,6 +463,8 @@ class DockerVM(BaseNode):
|
||||
Starts this Docker container.
|
||||
"""
|
||||
|
||||
await self.manager.install_resources()
|
||||
|
||||
try:
|
||||
state = await self._get_container_state()
|
||||
except DockerHttp404Error:
|
||||
@@ -476,6 +481,9 @@ class DockerVM(BaseNode):
|
||||
await self._start_vnc_process(restart=True)
|
||||
monitor_process(self._vnc_process, self._vnc_callback)
|
||||
|
||||
if self._console_websocket:
|
||||
await self._console_websocket.close()
|
||||
self._console_websocket = None
|
||||
await self._clean_servers()
|
||||
|
||||
await self.manager.query("POST", "containers/{}/start".format(self._cid))
|
||||
@@ -697,9 +705,7 @@ class DockerVM(BaseNode):
|
||||
|
||||
self._console_websocket = await self.manager.websocket_query("containers/{}/attach/ws?stream=1&stdin=1&stdout=1&stderr=1".format(self._cid))
|
||||
input_stream.ws = self._console_websocket
|
||||
|
||||
output_stream.feed_data(self.name.encode() + b" console is now available... Press RETURN to get started.\r\n")
|
||||
|
||||
asyncio.ensure_future(self._read_console_output(self._console_websocket, output_stream))
|
||||
|
||||
async def _read_console_output(self, ws, out):
|
||||
@@ -722,13 +728,14 @@ class DockerVM(BaseNode):
|
||||
out.feed_eof()
|
||||
await ws.close()
|
||||
break
|
||||
await self.stop()
|
||||
|
||||
async def reset_console(self):
|
||||
"""
|
||||
Reset the console.
|
||||
"""
|
||||
|
||||
if self._console_websocket:
|
||||
await self._console_websocket.close()
|
||||
await self._clean_servers()
|
||||
await self._start_console()
|
||||
|
||||
@@ -773,6 +780,9 @@ class DockerVM(BaseNode):
|
||||
"""
|
||||
|
||||
try:
|
||||
if self._console_websocket:
|
||||
await self._console_websocket.close()
|
||||
self._console_websocket = None
|
||||
await self._clean_servers()
|
||||
await self._stop_ubridge()
|
||||
|
||||
|
||||
@@ -252,6 +252,9 @@ class Dynamips(BaseManager):
|
||||
# look for Dynamips
|
||||
dynamips_path = self.config.get_section_config("Dynamips").get("dynamips_path", "dynamips")
|
||||
if not os.path.isabs(dynamips_path):
|
||||
if sys.platform.startswith("win") and hasattr(sys, "frozen"):
|
||||
dynamips_dir = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "dynamips"))
|
||||
os.environ["PATH"] = os.pathsep.join(dynamips_dir) + os.pathsep + os.environ.get("PATH", "")
|
||||
dynamips_path = shutil.which(dynamips_path)
|
||||
|
||||
if not dynamips_path:
|
||||
|
||||
@@ -160,13 +160,20 @@ class Qemu(BaseManager):
|
||||
for arch in archs:
|
||||
if f.endswith(arch) or f.endswith("{}.exe".format(arch)) or f.endswith("{}w.exe".format(arch)):
|
||||
qemu_path = os.path.join(path, f)
|
||||
version = await Qemu.get_qemu_version(qemu_path)
|
||||
try:
|
||||
version = await Qemu.get_qemu_version(qemu_path)
|
||||
except QemuError as e:
|
||||
log.warning(str(e))
|
||||
continue
|
||||
qemus.append({"path": qemu_path, "version": version})
|
||||
else:
|
||||
qemu_path = os.path.join(path, f)
|
||||
version = await Qemu.get_qemu_version(qemu_path)
|
||||
try:
|
||||
version = await Qemu.get_qemu_version(qemu_path)
|
||||
except QemuError as e:
|
||||
log.warning(str(e))
|
||||
continue
|
||||
qemus.append({"path": qemu_path, "version": version})
|
||||
|
||||
except OSError:
|
||||
continue
|
||||
|
||||
@@ -219,7 +226,7 @@ class Qemu(BaseManager):
|
||||
else:
|
||||
try:
|
||||
output = await subprocess_check_output(qemu_path, "-version", "-nographic")
|
||||
match = re.search("version\s+([0-9a-z\-\.]+)", output)
|
||||
match = re.search(r"version\s+([0-9a-z\-\.]+)", output)
|
||||
if match:
|
||||
version = match.group(1)
|
||||
return version
|
||||
|
||||
@@ -47,12 +47,18 @@ from ..base_node import BaseNode
|
||||
from ...schemas.qemu import QEMU_OBJECT_SCHEMA, QEMU_PLATFORMS
|
||||
from ...utils.asyncio import monitor_process
|
||||
from ...utils.images import md5sum
|
||||
from ...utils import macaddress_to_int, int_to_macaddress
|
||||
from ...utils import macaddress_to_int, int_to_macaddress, is_ipv6_enabled
|
||||
|
||||
|
||||
import logging
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# forbidden additional options
|
||||
FORBIDDEN_OPTIONS = {"-blockdev", "-drive", "-hda", "-hdb", "-hdc", "-hdd",
|
||||
"-fsdev", "-virtfs", "-nic", "-netdev"}
|
||||
FORBIDDEN_OPTIONS |= {"-" + opt for opt in FORBIDDEN_OPTIONS
|
||||
if opt.startswith("-") and not opt.startswith("--")}
|
||||
|
||||
|
||||
class QemuVM(BaseNode):
|
||||
module_name = 'qemu'
|
||||
@@ -1672,13 +1678,14 @@ class QemuVM(BaseNode):
|
||||
if self._console:
|
||||
console_host = self._manager.port_manager.console_host
|
||||
if console_host == "0.0.0.0":
|
||||
if socket.has_ipv6:
|
||||
# to fix an issue with Qemu when IPv4 is not enabled
|
||||
# see https://github.com/GNS3/gns3-gui/issues/2352
|
||||
# FIXME: consider making this more global (not just for Qemu + SPICE)
|
||||
console_host = "::"
|
||||
else:
|
||||
raise QemuError("IPv6 must be enabled in order to use the SPICE console")
|
||||
try:
|
||||
if is_ipv6_enabled():
|
||||
# to fix an issue with Qemu when IPv4 is not enabled
|
||||
# see https://github.com/GNS3/gns3-gui/issues/2352
|
||||
# FIXME: consider making this more global (not just for Qemu + SPICE)
|
||||
console_host = "::"
|
||||
except OSError as e:
|
||||
raise QemuError("Could not check if IPv6 is enabled: {}".format(e))
|
||||
return ["-spice",
|
||||
"addr={},port={},disable-ticketing".format(console_host, self._console),
|
||||
"-vga", "qxl"]
|
||||
@@ -2423,9 +2430,22 @@ class QemuVM(BaseNode):
|
||||
command.extend(self._tpm_options())
|
||||
if additional_options:
|
||||
try:
|
||||
command.extend(shlex.split(additional_options))
|
||||
additional_opt_list = shlex.split(additional_options)
|
||||
except ValueError as e:
|
||||
raise QemuError("Invalid additional options: {} error {}".format(additional_options, e))
|
||||
allow_unsafe_options = self.manager.config.get_section_config("Qemu").getboolean(
|
||||
"allow_unsafe_options",
|
||||
False
|
||||
)
|
||||
if allow_unsafe_options is False:
|
||||
for opt in additional_opt_list:
|
||||
if opt in FORBIDDEN_OPTIONS:
|
||||
raise QemuError("Forbidden additional option: {}".format(opt))
|
||||
command.extend(additional_opt_list)
|
||||
|
||||
# avoiding mouse offset (see https://github.com/GNS3/gns3-server/issues/2335)
|
||||
if self._console_type == "vnc":
|
||||
command.extend(['-machine', 'usb=on', '-device', 'usb-tablet'])
|
||||
return command
|
||||
|
||||
def __json__(self):
|
||||
|
||||
@@ -701,7 +701,7 @@ class VMware(BaseManager):
|
||||
path = ctypes.create_unicode_buffer(ctypes.wintypes.MAX_PATH)
|
||||
ctypes.windll.shell32.SHGetFolderPathW(None, 5, None, 0, path)
|
||||
documents_folder = path.value
|
||||
return ['{}\My Virtual Machines'.format(documents_folder), '{}\Virtual Machines'.format(documents_folder)]
|
||||
return [r'{}\My Virtual Machines'.format(documents_folder), r'{}\Virtual Machines'.format(documents_folder)]
|
||||
elif sys.platform.startswith("darwin"):
|
||||
return [os.path.expanduser("~/Documents/Virtual Machines.localized")]
|
||||
else:
|
||||
|
||||
@@ -140,6 +140,9 @@ class VPCSVM(BaseNode):
|
||||
|
||||
vpcs_path = self._manager.config.get_section_config("VPCS").get("vpcs_path", "vpcs")
|
||||
if not os.path.isabs(vpcs_path):
|
||||
if sys.platform.startswith("win") and hasattr(sys, "frozen"):
|
||||
vpcs_dir = os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(sys.executable)), "vpcs"))
|
||||
os.environ["PATH"] = os.pathsep.join(vpcs_dir) + os.pathsep + os.environ.get("PATH", "")
|
||||
vpcs_path = shutil.which(vpcs_path)
|
||||
return vpcs_path
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ no ip icmp rate-limit unreachable
|
||||
!
|
||||
! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work
|
||||
no ip cef
|
||||
no ip domain-lookup
|
||||
no ip domain lookup
|
||||
!
|
||||
!
|
||||
!
|
||||
|
||||
@@ -14,7 +14,7 @@ no ip icmp rate-limit unreachable
|
||||
!
|
||||
! due to some bugs with IOU, try to change the following line to 'ip cef' if your routing does not work
|
||||
no ip cef
|
||||
no ip domain-lookup
|
||||
no ip domain lookup
|
||||
!
|
||||
!
|
||||
ip tcp synwait-time 5
|
||||
|
||||
@@ -248,13 +248,19 @@ class Controller:
|
||||
if "iou_license" in controller_settings:
|
||||
self._iou_license_settings = controller_settings["iou_license"]
|
||||
|
||||
previous_version = controller_settings.get("version")
|
||||
log.info("Comparing controller version {} with config version {}".format(__version__, previous_version))
|
||||
if not previous_version or \
|
||||
parse_version(__version__.split("+")[0]) > parse_version(previous_version.split("+")[0]):
|
||||
self._appliance_manager.install_builtin_appliances()
|
||||
elif not os.listdir(self._appliance_manager.builtin_appliances_path()):
|
||||
self._appliance_manager.install_builtin_appliances()
|
||||
# install the built-in appliances if needed
|
||||
server_config = Config.instance().get_section_config("Server")
|
||||
if server_config.getboolean("install_builtin_appliances", True):
|
||||
previous_version = controller_settings.get("version")
|
||||
log.info("Comparing controller version {} with config version {}".format(__version__, previous_version))
|
||||
builtin_appliances_path = self._appliance_manager.builtin_appliances_path()
|
||||
if not previous_version or \
|
||||
parse_version(__version__.split("+")[0]) > parse_version(previous_version.split("+")[0]):
|
||||
self._appliance_manager.install_builtin_appliances()
|
||||
elif not os.listdir(builtin_appliances_path):
|
||||
self._appliance_manager.install_builtin_appliances()
|
||||
else:
|
||||
log.info("Built-in appliances are installed in '{}'".format(builtin_appliances_path))
|
||||
|
||||
self._appliance_manager.appliances_etag = controller_settings.get("appliances_etag")
|
||||
self._appliance_manager.load_appliances()
|
||||
@@ -300,6 +306,9 @@ class Controller:
|
||||
if entry.is_file() and not os.path.exists(full_path):
|
||||
log.debug(f'Installing {resource_name} resource file "{entry.name}" to "{full_path}"')
|
||||
shutil.copy(str(entry), os.path.join(dst_path, entry.name))
|
||||
elif entry.is_dir():
|
||||
os.makedirs(full_path, exist_ok=True)
|
||||
Controller.install_resource_files(full_path, os.path.join(resource_name, entry.name))
|
||||
|
||||
def _install_base_configs(self):
|
||||
"""
|
||||
|
||||
@@ -87,8 +87,10 @@ class ApplianceManager:
|
||||
Get the built-in appliance storage directory
|
||||
"""
|
||||
|
||||
server_config = Config.instance().get_section_config("Server")
|
||||
appname = vendor = "GNS3"
|
||||
appliances_dir = os.path.join(platformdirs.user_data_dir(appname, vendor, roaming=True), "appliances")
|
||||
resources_path = os.path.expanduser(server_config.get("resources_path", platformdirs.user_data_dir(appname, vendor, roaming=True)))
|
||||
appliances_dir = os.path.join(resources_path, "appliances")
|
||||
if delete_first:
|
||||
shutil.rmtree(appliances_dir, ignore_errors=True)
|
||||
os.makedirs(appliances_dir, exist_ok=True)
|
||||
|
||||
@@ -484,7 +484,7 @@ class Compute:
|
||||
return self._getUrl(path)
|
||||
|
||||
async def _run_http_query(self, method, path, data=None, timeout=20, raw=False):
|
||||
with async_timeout.timeout(timeout):
|
||||
async with async_timeout.timeout(delay=timeout):
|
||||
url = self._getUrl(path)
|
||||
headers = {}
|
||||
headers['content-type'] = 'application/json'
|
||||
|
||||
@@ -32,7 +32,7 @@ log = logging.getLogger(__name__)
|
||||
CHUNK_SIZE = 1024 * 8 # 8KB
|
||||
|
||||
|
||||
async def export_project(zstream, project, temporary_dir, include_images=False, include_snapshots=False, keep_compute_id=False, allow_all_nodes=False, reset_mac_addresses=False):
|
||||
async def export_project(zstream, project, temporary_dir, include_images=False, include_snapshots=False, keep_compute_ids=False, allow_all_nodes=False, reset_mac_addresses=False):
|
||||
"""
|
||||
Export a project to a zip file.
|
||||
|
||||
@@ -44,9 +44,9 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
:param temporary_dir: A temporary dir where to store intermediate data
|
||||
:param include_images: save OS images to the zip file
|
||||
:param include_snapshots: save snapshots to the zip file
|
||||
:param keep_compute_id: If false replace all compute id by local (standard behavior for .gns3project to make it portable)
|
||||
:param allow_all_nodes: Allow all nodes type to be include in the zip even if not portable
|
||||
:param reset_mac_addresses: Reset MAC addresses for every nodes.
|
||||
:param keep_compute_ids: If false replace all compute IDs y local (standard behavior for .gns3project to make it portable)
|
||||
:param allow_all_nodes: Allow all nodes type to be included in the zip even if not portable
|
||||
:param reset_mac_addresses: Reset MAC addresses for each node.
|
||||
"""
|
||||
|
||||
# To avoid issue with data not saved we disallow the export of a running project
|
||||
@@ -62,7 +62,7 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
# First we process the .gns3 in order to be sure we don't have an error
|
||||
for file in os.listdir(project._path):
|
||||
if file.endswith(".gns3"):
|
||||
await _patch_project_file(project, os.path.join(project._path, file), zstream, include_images, keep_compute_id, allow_all_nodes, temporary_dir, reset_mac_addresses)
|
||||
await _patch_project_file(project, os.path.join(project._path, file), zstream, include_images, keep_compute_ids, allow_all_nodes, temporary_dir, reset_mac_addresses)
|
||||
|
||||
# Export the local files
|
||||
for root, dirs, files in os.walk(project._path, topdown=True, followlinks=False):
|
||||
@@ -83,6 +83,11 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
|
||||
continue
|
||||
_patch_mtime(path)
|
||||
zstream.write(path, os.path.relpath(path, project._path))
|
||||
# save empty directories
|
||||
for directory in dirs:
|
||||
path = os.path.join(root, directory)
|
||||
if not os.listdir(path):
|
||||
zstream.write(path, os.path.relpath(path, project._path))
|
||||
except FileNotFoundError as e:
|
||||
log.warning("Cannot export local file: {}".format(e))
|
||||
continue
|
||||
@@ -165,7 +170,7 @@ def _is_exportable(path, include_snapshots=False):
|
||||
return True
|
||||
|
||||
|
||||
async def _patch_project_file(project, path, zstream, include_images, keep_compute_id, allow_all_nodes, temporary_dir, reset_mac_addresses):
|
||||
async def _patch_project_file(project, path, zstream, include_images, keep_compute_ids, allow_all_nodes, temporary_dir, reset_mac_addresses):
|
||||
"""
|
||||
Patch a project file (.gns3) to export a project.
|
||||
The .gns3 file is renamed to project.gns3
|
||||
@@ -192,7 +197,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
|
||||
if not allow_all_nodes and node["node_type"] in ["virtualbox", "vmware"]:
|
||||
raise aiohttp.web.HTTPConflict(text="Projects with a {} node cannot be exported".format(node["node_type"]))
|
||||
|
||||
if not keep_compute_id:
|
||||
if not keep_compute_ids:
|
||||
node["compute_id"] = "local" # To make project portable all node by default run on local
|
||||
|
||||
if "properties" in node and node["node_type"] != "docker":
|
||||
@@ -210,7 +215,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
|
||||
if value is None or value.strip() == '':
|
||||
continue
|
||||
|
||||
if not keep_compute_id: # If we keep the original compute we can keep the image path
|
||||
if not keep_compute_ids: # If we keep the original compute we can keep the image path
|
||||
node["properties"][prop] = os.path.basename(value)
|
||||
|
||||
if include_images is True:
|
||||
@@ -220,7 +225,7 @@ async def _patch_project_file(project, path, zstream, include_images, keep_compu
|
||||
'image_type': node['node_type']
|
||||
})
|
||||
|
||||
if not keep_compute_id:
|
||||
if not keep_compute_ids:
|
||||
topology["topology"]["computes"] = [] # Strip compute information because could contain secret info like password
|
||||
|
||||
local_images = set([i['image'] for i in images if i['compute_id'] == 'local'])
|
||||
|
||||
@@ -38,7 +38,7 @@ Handle the import of project from a .gns3project
|
||||
"""
|
||||
|
||||
|
||||
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_id=False,
|
||||
async def import_project(controller, project_id, stream, location=None, name=None, keep_compute_ids=False,
|
||||
auto_start=False, auto_open=False, auto_close=True):
|
||||
"""
|
||||
Import a project contain in a zip file
|
||||
@@ -50,7 +50,7 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
:param stream: A io.BytesIO of the zipfile
|
||||
:param location: Directory for the project if None put in the default directory
|
||||
:param name: Wanted project name, generate one from the .gns3 if None
|
||||
:param keep_compute_id: If true do not touch the compute id
|
||||
:param keep_compute_ids: keep compute IDs unchanged
|
||||
|
||||
:returns: Project
|
||||
"""
|
||||
@@ -124,7 +124,7 @@ async def import_project(controller, project_id, stream, location=None, name=Non
|
||||
drawing["drawing_id"] = str(uuid.uuid4())
|
||||
|
||||
# Modify the compute id of the node depending of compute capacity
|
||||
if not keep_compute_id:
|
||||
if not keep_compute_ids:
|
||||
# For some VM type we move them to the GNS3 VM if possible
|
||||
# unless it's a linux host without GNS3 VM
|
||||
if not sys.platform.startswith("linux") or controller.has_compute("vm"):
|
||||
|
||||
@@ -130,16 +130,27 @@ class Project:
|
||||
self._iou_id_lock = asyncio.Lock()
|
||||
|
||||
log.debug('Project "{name}" [{id}] loaded'.format(name=self.name, id=self._id))
|
||||
self.emit_controller_notification("project.created", self.__json__())
|
||||
|
||||
def emit_notification(self, action, event):
|
||||
"""
|
||||
Emit a notification to all clients using this project.
|
||||
Emit a project notification to all clients using this project.
|
||||
|
||||
:param action: Action name
|
||||
:param event: Event to send
|
||||
"""
|
||||
|
||||
self.controller.notification.project_emit(action, event, project_id=self.id)
|
||||
self._controller.notification.project_emit(action, event, project_id=self.id)
|
||||
|
||||
def emit_controller_notification(self, action, event):
|
||||
"""
|
||||
Emit a controller notification, all clients will see it.
|
||||
|
||||
:param action: Action name
|
||||
:param event: Event to send
|
||||
"""
|
||||
|
||||
self._controller.notification.controller_emit(action, event)
|
||||
|
||||
async def update(self, **kwargs):
|
||||
"""
|
||||
@@ -154,7 +165,7 @@ class Project:
|
||||
|
||||
# We send notif only if object has changed
|
||||
if old_json != self.__json__():
|
||||
self.emit_notification("project.updated", self.__json__())
|
||||
self.emit_controller_notification("project.updated", self.__json__())
|
||||
self.dump()
|
||||
|
||||
# update on computes
|
||||
@@ -181,7 +192,11 @@ class Project:
|
||||
if os.path.exists(snapshot_dir):
|
||||
for snap in os.listdir(snapshot_dir):
|
||||
if snap.endswith(".gns3project"):
|
||||
snapshot = Snapshot(self, filename=snap)
|
||||
try:
|
||||
snapshot = Snapshot(self, filename=snap)
|
||||
except ValueError:
|
||||
log.error("Invalid snapshot file: {}".format(snap))
|
||||
continue
|
||||
self._snapshots[snapshot.id] = snapshot
|
||||
|
||||
# Create the project on demand on the compute node
|
||||
@@ -803,7 +818,8 @@ class Project:
|
||||
self._clean_pictures()
|
||||
self._status = "closed"
|
||||
if not ignore_notification:
|
||||
self.emit_notification("project.closed", self.__json__())
|
||||
self.emit_controller_notification("project.closed", self.__json__())
|
||||
|
||||
self.reset()
|
||||
self._closing = False
|
||||
|
||||
@@ -857,6 +873,7 @@ class Project:
|
||||
shutil.rmtree(self.path)
|
||||
except OSError as e:
|
||||
raise aiohttp.web.HTTPConflict(text="Cannot delete project directory {}: {}".format(self.path, str(e)))
|
||||
self.emit_controller_notification("project.deleted", self.__json__())
|
||||
|
||||
async def delete_on_computes(self):
|
||||
"""
|
||||
@@ -976,7 +993,7 @@ class Project:
|
||||
await self.add_drawing(dump=False, **drawing_data)
|
||||
|
||||
self.dump()
|
||||
# We catch all error to be able to rollback the .gns3 to the previous state
|
||||
# We catch all error to be able to roll back the .gns3 to the previous state
|
||||
except Exception as e:
|
||||
for compute in list(self._project_created_on_compute):
|
||||
try:
|
||||
@@ -1001,6 +1018,7 @@ class Project:
|
||||
pass
|
||||
|
||||
self._loading = False
|
||||
self.emit_controller_notification("project.opened", self.__json__())
|
||||
# Should we start the nodes when project is open
|
||||
if self._auto_start:
|
||||
# Start all in the background without waiting for completion
|
||||
@@ -1048,7 +1066,7 @@ class Project:
|
||||
with tempfile.TemporaryDirectory(dir=working_dir) as tmpdir:
|
||||
# Do not compress the exported project when duplicating
|
||||
with aiozipstream.ZipFile(compression=zipfile.ZIP_STORED) as zstream:
|
||||
await export_project(zstream, self, tmpdir, keep_compute_id=True, allow_all_nodes=True, reset_mac_addresses=reset_mac_addresses)
|
||||
await export_project(zstream, self, tmpdir, keep_compute_ids=True, allow_all_nodes=True, reset_mac_addresses=reset_mac_addresses)
|
||||
|
||||
# export the project to a temporary location
|
||||
project_path = os.path.join(tmpdir, "project.gns3p")
|
||||
@@ -1059,7 +1077,7 @@ class Project:
|
||||
|
||||
# import the temporary project
|
||||
with open(project_path, "rb") as f:
|
||||
project = await import_project(self._controller, str(uuid.uuid4()), f, location=location, name=name, keep_compute_id=True)
|
||||
project = await import_project(self._controller, str(uuid.uuid4()), f, location=location, name=name, keep_compute_ids=True)
|
||||
|
||||
log.info("Project '{}' duplicated in {:.4f} seconds".format(project.name, time.time() - begin))
|
||||
except (ValueError, OSError, UnicodeEncodeError) as e:
|
||||
|
||||
@@ -52,15 +52,13 @@ class Snapshot:
|
||||
self._project = project
|
||||
if name:
|
||||
self._name = name
|
||||
self._created_at = datetime.now().timestamp()
|
||||
filename = self._name + "_" + datetime.utcfromtimestamp(self._created_at).replace(tzinfo=None).strftime(FILENAME_TIME_FORMAT) + ".gns3project"
|
||||
self._created_at = datetime.now(timezone.utc).timestamp()
|
||||
filename = self._name + "_" + datetime.fromtimestamp(self._created_at, tz=timezone.utc).replace(tzinfo=None).strftime(FILENAME_TIME_FORMAT) + ".gns3project"
|
||||
else:
|
||||
self._name = filename.split("_")[0]
|
||||
self._name = filename.rsplit("_", 2)[0]
|
||||
datestring = filename.replace(self._name + "_", "").split(".")[0]
|
||||
try:
|
||||
self._created_at = datetime.strptime(datestring, FILENAME_TIME_FORMAT).replace(tzinfo=timezone.utc).timestamp()
|
||||
except ValueError:
|
||||
self._created_at = datetime.utcnow().timestamp()
|
||||
self._created_at = datetime.strptime(datestring, FILENAME_TIME_FORMAT).replace(tzinfo=timezone.utc).timestamp()
|
||||
|
||||
self._path = os.path.join(project.path, "snapshots", filename)
|
||||
|
||||
@property
|
||||
@@ -98,7 +96,7 @@ class Snapshot:
|
||||
with tempfile.TemporaryDirectory(dir=snapshot_directory) as tmpdir:
|
||||
# Do not compress the snapshots
|
||||
with aiozipstream.ZipFile(compression=zipfile.ZIP_STORED) as zstream:
|
||||
await export_project(zstream, self._project, tmpdir, keep_compute_id=True, allow_all_nodes=True)
|
||||
await export_project(zstream, self._project, tmpdir, keep_compute_ids=True, allow_all_nodes=True)
|
||||
async with aiofiles.open(self.path, 'wb') as f:
|
||||
async for chunk in zstream:
|
||||
await f.write(chunk)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
|
||||
CLASSIC_SYMBOL_THEME = {"cloud": ":/symbols/classic/cloud.svg",
|
||||
"nat": ":/symbols/classic/nat.svg",
|
||||
"ethernet_switch": ":/symbols/classic/ethernet_switch.svg",
|
||||
"ethernet_hub": ":/symbols/classic/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/classic/frame_relay_switch.svg",
|
||||
@@ -32,6 +33,7 @@ CLASSIC_SYMBOL_THEME = {"cloud": ":/symbols/classic/cloud.svg",
|
||||
"docker_guest": ":/symbols/classic/docker_guest.svg"}
|
||||
|
||||
AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/blue/cloud.svg",
|
||||
"nat": ":/symbols/affinity/square/blue/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/square/blue/switch.svg",
|
||||
"ethernet_hub": ":/symbols/affinity/square/blue/hub.svg",
|
||||
"frame_relay_switch.svg": ":/symbols/affinity/square/blue/isdn.svg",
|
||||
@@ -47,6 +49,7 @@ AFFINITY_SQUARE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/blue/cl
|
||||
"docker_guest": ":/symbols/affinity/square/blue/docker.svg"}
|
||||
|
||||
AFFINITY_SQUARE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/red/cloud.svg",
|
||||
"nat": ":/symbols/affinity/square/red/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/square/red/switch.svg",
|
||||
"ethernet_hub": ":/symbols/affinity/square/red/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/square/red/isdn.svg",
|
||||
@@ -62,6 +65,7 @@ AFFINITY_SQUARE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/red/clou
|
||||
"docker_guest": ":/symbols/affinity/square/red/docker.svg"}
|
||||
|
||||
AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/gray/cloud.svg",
|
||||
"nat": ":/symbols/affinity/square/gray/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/square/gray/switch.svg",
|
||||
"ethernet_hub": ":/symbols/affinity/square/gray/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/square/gray/isdn.svg",
|
||||
@@ -77,6 +81,7 @@ AFFINITY_SQUARE_GRAY_SYMBOL_THEME = {"cloud": ":/symbols/affinity/square/gray/cl
|
||||
"docker_guest": ":/symbols/affinity/square/gray/docker.svg"}
|
||||
|
||||
AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/blue/cloud.svg",
|
||||
"nat": ":/symbols/affinity/circle/blue/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/circle/blue/switch.svg",
|
||||
"ethernet_hub": ":/symbols/affinity/circle/blue/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/circle/blue/isdn.svg",
|
||||
@@ -92,6 +97,7 @@ AFFINITY_CIRCLE_BLUE_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/blue/cl
|
||||
"docker_guest": ":/symbols/affinity/circle/blue/docker.svg"}
|
||||
|
||||
AFFINITY_CIRCLE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/red/cloud.svg",
|
||||
"nat": ":/symbols/affinity/circle/red/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/circle/red/switch.svg",
|
||||
"ethernet_hub": ":/symbols/affinity/circle/red/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/circle/red/isdn.svg",
|
||||
@@ -107,6 +113,7 @@ AFFINITY_CIRCLE_RED_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/red/clou
|
||||
"docker_guest": ":/symbols/affinity/circle/red/docker.svg"}
|
||||
|
||||
AFFINITY_CIRCLE_GRAY_SYMBOL_THEME = {"cloud": ":/symbols/affinity/circle/gray/cloud.svg",
|
||||
"nat": ":/symbols/affinity/circle/gray/nat.svg",
|
||||
"ethernet_switch": ":/symbols/affinity/circle/gray/switch.svg",
|
||||
"ethernet_hub": ":/symbols/affinity/circle/gray/hub.svg",
|
||||
"frame_relay_switch": ":/symbols/affinity/circle/gray/isdn.svg",
|
||||
|
||||
@@ -63,7 +63,7 @@ class TemplateManager:
|
||||
builtins = []
|
||||
if Config.instance().get_section_config("Server").getboolean("enable_builtin_templates", True):
|
||||
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "cloud"), {"template_type": "cloud", "name": "Cloud", "default_name_format": "Cloud{0}", "category": 2, "symbol": ":/symbols/cloud.svg"}, builtin=True))
|
||||
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "nat"), {"template_type": "nat", "name": "NAT", "default_name_format": "NAT{0}", "category": 2, "symbol": ":/symbols/cloud.svg"}, builtin=True))
|
||||
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "nat"), {"template_type": "nat", "name": "NAT", "default_name_format": "NAT{0}", "category": 2, "symbol": ":/symbols/nat.svg"}, builtin=True))
|
||||
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "vpcs"), {"template_type": "vpcs", "name": "VPCS", "default_name_format": "PC{0}", "category": 2, "symbol": ":/symbols/vpcs_guest.svg", "properties": {"base_script_file": "vpcs_base_config.txt"}}, builtin=True))
|
||||
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "ethernet_switch"), {"template_type": "ethernet_switch", "console_type": "none", "name": "Ethernet switch", "default_name_format": "Switch{0}", "category": 1, "symbol": ":/symbols/ethernet_switch.svg"}, builtin=True))
|
||||
builtins.append(Template(uuid.uuid3(uuid.NAMESPACE_DNS, "ethernet_hub"), {"template_type": "ethernet_hub", "name": "Ethernet hub", "default_name_format": "Hub{0}", "category": 1, "symbol": ":/symbols/hub.svg"}, builtin=True))
|
||||
|
||||
@@ -189,7 +189,7 @@ class UDPLink(Link):
|
||||
:returns: Node where the capture should run
|
||||
"""
|
||||
|
||||
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub")
|
||||
ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub", "frame_relay_switch", "atm_switch")
|
||||
|
||||
for node in self._nodes:
|
||||
if node["node"].compute.id == "local" and node["node"].node_type in ALWAYS_RUNNING_NODES_TYPE and node["node"].status == "started":
|
||||
|
||||
Loaded 100 of 180 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user