gns3-server 3.0.4__py3-none-any.whl → 3.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gns3-server might be problematic. Click here for more details.

Files changed (40) hide show
  1. gns3_server-3.0.5.dist-info/METADATA +202 -0
  2. {gns3_server-3.0.4.dist-info → gns3_server-3.0.5.dist-info}/RECORD +38 -33
  3. {gns3_server-3.0.4.dist-info → gns3_server-3.0.5.dist-info}/WHEEL +1 -1
  4. gns3server/api/routes/compute/cloud_nodes.py +1 -1
  5. gns3server/api/routes/controller/images.py +0 -5
  6. gns3server/api/routes/controller/links.py +52 -1
  7. gns3server/appliances/almalinux.gns3a +30 -0
  8. gns3server/appliances/arista-veos.gns3a +15 -15
  9. gns3server/appliances/aruba-arubaoscx.gns3a +39 -0
  10. gns3server/appliances/asterfusion-vAsterNOS-campus.gns3a +50 -0
  11. gns3server/appliances/asterfusion-vAsterNOS.gns3a +1 -1
  12. gns3server/appliances/centos-cloud.gns3a +24 -54
  13. gns3server/appliances/exos.gns3a +13 -0
  14. gns3server/appliances/fedora-cloud.gns3a +30 -0
  15. gns3server/appliances/infix.gns3a +48 -5
  16. gns3server/appliances/juniper-vJunos-router.gns3a +75 -0
  17. gns3server/appliances/nethsecurity.gns3a +44 -0
  18. gns3server/appliances/oracle-linux-cloud.gns3a +31 -1
  19. gns3server/appliances/rhel.gns3a +57 -1
  20. gns3server/appliances/rockylinux.gns3a +15 -0
  21. gns3server/compute/builtin/nodes/nat.py +1 -1
  22. gns3server/compute/docker/__init__.py +8 -9
  23. gns3server/compute/docker/docker_vm.py +2 -1
  24. gns3server/compute/qemu/qemu_vm.py +69 -28
  25. gns3server/controller/compute.py +4 -3
  26. gns3server/controller/gns3vm/virtualbox_gns3_vm.py +55 -28
  27. gns3server/crash_report.py +1 -1
  28. gns3server/disks/OVMF_CODE_4M.fd +0 -0
  29. gns3server/disks/OVMF_VARS_4M.fd +0 -0
  30. gns3server/schemas/__init__.py +1 -1
  31. gns3server/schemas/controller/links.py +21 -0
  32. gns3server/static/web-ui/index.html +1 -1
  33. gns3server/static/web-ui/main.fd9d76d279fa7d5e.js +1 -0
  34. gns3server/utils/images.py +10 -0
  35. gns3server/version.py +2 -2
  36. gns3_server-3.0.4.dist-info/METADATA +0 -869
  37. gns3server/static/web-ui/main.87178dd64c9c79ba.js +0 -1
  38. {gns3_server-3.0.4.dist-info → gns3_server-3.0.5.dist-info}/entry_points.txt +0 -0
  39. {gns3_server-3.0.4.dist-info → gns3_server-3.0.5.dist-info/licenses}/LICENSE +0 -0
  40. {gns3_server-3.0.4.dist-info → gns3_server-3.0.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,202 @@
1
+ Metadata-Version: 2.4
2
+ Name: gns3-server
3
+ Version: 3.0.5
4
+ Summary: GNS3 graphical interface for the GNS3 server.
5
+ Author-email: Jeremy Grossmann <developers@gns3.com>
6
+ Project-URL: Homepage, http://gns3.com
7
+ Project-URL: Repository, http://github.com/GNS3/gns3-server
8
+ Project-URL: Bug tracker, http://github.com/GNS3/gns3-server/issues
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Environment :: Console
11
+ Classifier: Framework :: FastAPI
12
+ Classifier: Intended Audience :: Information Technology
13
+ Classifier: Topic :: System :: Networking
14
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
15
+ Classifier: Natural Language :: English
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: Implementation :: CPython
24
+ Requires-Python: >=3.9
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: uvicorn==0.34.2
28
+ Requires-Dist: pydantic==2.11.4
29
+ Requires-Dist: fastapi==0.115.12
30
+ Requires-Dist: python-multipart==0.0.20
31
+ Requires-Dist: websockets==15.0.1
32
+ Requires-Dist: aiohttp<3.12,>=3.11.16
33
+ Requires-Dist: async-timeout==5.0.1; python_version < "3.11"
34
+ Requires-Dist: aiofiles<25.0,>=24.1.0
35
+ Requires-Dist: Jinja2<3.2,>=3.1.6
36
+ Requires-Dist: sentry-sdk<2.27,>=2.26.1
37
+ Requires-Dist: psutil>=7.0.0
38
+ Requires-Dist: async-timeout<5.1,>=5.0.1
39
+ Requires-Dist: distro>=1.9.0
40
+ Requires-Dist: py-cpuinfo<10.0,>=9.0.0
41
+ Requires-Dist: greenlet==3.2.0
42
+ Requires-Dist: sqlalchemy==2.0.40
43
+ Requires-Dist: aiosqlite==0.21.0
44
+ Requires-Dist: alembic==1.15.2
45
+ Requires-Dist: bcrypt==4.3.0
46
+ Requires-Dist: joserfc==1.0.4
47
+ Requires-Dist: email-validator==2.2.0
48
+ Requires-Dist: watchdog==6.0.0
49
+ Requires-Dist: zstandard==0.23.0
50
+ Requires-Dist: platformdirs<3,>=2.4.0
51
+ Requires-Dist: importlib-resources>=1.3; python_version <= "3.9"
52
+ Requires-Dist: truststore>=0.10.1; python_version >= "3.10"
53
+ Provides-Extra: dev
54
+ Requires-Dist: pytest==8.3.4; extra == "dev"
55
+ Requires-Dist: flake8==7.1.1; extra == "dev"
56
+ Requires-Dist: pytest-timeout==2.3.1; extra == "dev"
57
+ Requires-Dist: pytest-asyncio==0.25.2; extra == "dev"
58
+ Requires-Dist: requests==2.32.3; extra == "dev"
59
+ Requires-Dist: httpx==0.28.1; extra == "dev"
60
+ Requires-Dist: httpx_ws==0.7.1; extra == "dev"
61
+ Dynamic: license-file
62
+
63
+ # GNS3 server repository
64
+
65
+ [![Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
66
+ [![GitHub Actions tests](https://github.com/GNS3/gns3-server/workflows/testing/badge.svg?branch=3.0)](https://github.com/GNS3/gns3-server/actions?query=workflow%3Atesting+branch%3A3.0)
67
+ [![Latest PyPi version](https://img.shields.io/pypi/v/gns3-server.svg)](https://pypi.python.org/pypi/gns3-server)
68
+ [![Snyk scanning](https://snyk.io/test/github/GNS3/gns3-server/badge.svg)](https://snyk.io/test/github/GNS3/gns3-server)
69
+
70
+ The GNS3 server manages emulators and other virtualization software such as Dynamips, Qemu/KVM, Docker, VPCS, VirtualBox and VMware Workstation.
71
+ Clients like the [GNS3 GUI](https://github.com/GNS3/gns3-gui/) and the [GNS3 Web UI](https://github.com/GNS3/gns3-web-ui/) control the server using a HTTP REST API.
72
+
73
+ ## Installation
74
+
75
+ These instructions are for using GNS3, please see below for development.
76
+
77
+ ### Windows & macOS
78
+
79
+ Please use our [Windows installer or DMG package](https://gns3.com/software/download) to install the stable build along with the GNS3 VM.
80
+ Note that as of GNS3 version above 3.0, you must run the server using the GNS3 VM or on a Linux system (remote, cloud or virtual machine).
81
+
82
+ ### Linux
83
+
84
+ #### Ubuntu based distributions
85
+
86
+ We build and test packages for actively supported Ubuntu versions.
87
+ Other distros based on Ubuntu, like Mint, should also be supported.
88
+
89
+ Packages can be installed from our Personal Package Archives (PPA) repository:
90
+
91
+ ```shell
92
+ sudo apt update
93
+ sudo apt install software-properties-common
94
+ sudo add-apt-repository ppa:gns3/ppa
95
+ sudo apt update
96
+ sudo apt install gns3-gui gns3-server
97
+ ```
98
+
99
+ #### Other Linux distributions
100
+
101
+ GNS3 is often packaged for other distributions by third-parties:
102
+
103
+ * [Gentoo](https://packages.gentoo.org/package/net-misc/gns3-server)
104
+ * [Alpine](https://pkgs.alpinelinux.org/package/v3.10/community/x86_64/gns3-server)
105
+ * [NixOS](https://search.nixos.org/packages?channel=21.11&from=0&size=50&sort=relevance&type=packages&query=gns3-server)
106
+
107
+ #### PyPi
108
+
109
+ You may use PyPi in case no package is provided, or you would like to do a manual installation:
110
+
111
+ * https://pypi.org/project/gns3-server/
112
+ * https://pypi.org/project/gns3-gui/
113
+
114
+ ```shell
115
+ python3 -m pip install gns3-gui
116
+ python3 -m pip install gns3-server
117
+ ```
118
+
119
+ The downside of this method is you will have to manually install all dependencies (see below).
120
+
121
+ Please see our [documentation](https://docs.gns3.com/docs/getting-started/installation/linux) for more details.
122
+
123
+ ### Software dependencies
124
+
125
+ In addition to Python dependencies, other software may be required, recommended or optional.
126
+
127
+ * [uBridge](https://github.com/GNS3/ubridge/) is required, it interconnects the nodes.
128
+ * [Dynamips](https://github.com/GNS3/dynamips/) is required for running IOS routers (using real IOS images) as well as the internal switches and hubs.
129
+ * [VPCS](https://github.com/GNS3/vpcs/) is recommended, it is a builtin node simulating a very simple computer to perform connectivity tests using ping, traceroute etc.
130
+ * Qemu is strongly recommended as most node types are based on Qemu, for example Cisco IOSv and Arista vEOS.
131
+ * libvirt is recommended as it's needed for the NAT cloud.
132
+ * Docker is optional, some nodes are based on Docker.
133
+ * mtools is recommended to support data transfer to/from QEMU VMs using virtual disks.
134
+ * i386-libraries of libc and libcrypto are optional, they are only needed to run IOU based nodes.
135
+
136
+ Note that Docker needs the script program (`bsdutils` or `util-linux` package), when running a Docker VM and a static busybox during installation (python3 setup.py install / pip3 install / package creation).
137
+
138
+ ## Development
139
+
140
+ ### Setting up
141
+
142
+ These commands will install the server as well as all Python dependencies:
143
+
144
+ ```shell
145
+ git clone https://github.com/GNS3/gns3-server
146
+ cd gns3-server
147
+ git checkout 3.0
148
+ python3 -m venv venv-gns3server
149
+ source venv-gns3server/bin/activate
150
+ python3 -m pip install .
151
+ python3 -m gns3server
152
+ ```
153
+
154
+ You will have to manually install other software dependencies (see above), for Dynamips, VPCS and uBridge the easiest is to install from our PPA.
155
+
156
+ ### Docker container
157
+
158
+ Alternatively, you can run the GNS3 server in a container
159
+
160
+ ```shell
161
+ bash scripts/docker_dev_server.sh
162
+ ```
163
+
164
+ #### use Docker Compose
165
+
166
+ ``` {.bash}
167
+ docker compose up -d
168
+ ```
169
+
170
+ ### Running tests
171
+
172
+ First, install the development dependencies:
173
+
174
+ ```shell
175
+ python3 -m pip install -r dev-requirements.txt
176
+ ```
177
+
178
+ Then run the tests using pytest:
179
+
180
+ ```shell
181
+ python3 -m pytest -vv tests/
182
+ ```
183
+
184
+ ### API documentation
185
+
186
+ The API documentation can be accessed when running the server locally:
187
+
188
+ * On `http://IP:PORT/docs` to see with Swagger UI (i.e. `http://localhost:3080/docs`)
189
+ * On `http://IP:PORT/redoc` to see with ReDoc (i.e. `http://localhost:3080/redoc`)
190
+
191
+ The documentation can also be viewed [online](http://apiv3.gns3.net) however it may not be the most up-to-date version since it needs manually synchronization with the current code. Also, you cannot use this to interact with a GNS3 server.
192
+
193
+ ### Branches
194
+
195
+ #### master
196
+
197
+ master is the next stable release, you can test it in your day-to -day activities.
198
+ Bug fixes or small improvements pull requests go here.
199
+
200
+ 3.x development brand for the next major release.
201
+
202
+ **Never** use this branch for production. Pull requests for major new features go here.
@@ -1,12 +1,13 @@
1
+ gns3_server-3.0.5.dist-info/licenses/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
1
2
  gns3server/__init__.py,sha256=7t93V0ASczMyzTR7up2g0FBQ6Rm1eC8wxyysMKUeAKE,716
2
3
  gns3server/__main__.py,sha256=5CO8WDwpzZ2BRo3Ct95MhMGxyXQ3QsHBcWt3jPlcLb0,736
3
4
  gns3server/alembic.ini,sha256=XWHHdJ3QOHO3NJh5LK6bMHT6kv7GzAr26X1hs43DH4o,3086
4
5
  gns3server/config.py,sha256=3UmjwcthW-gMKbLEPzygzrEVJYza-H1IWRjJZ_L1-tg,9244
5
- gns3server/crash_report.py,sha256=IhIOjGyWuvK4HqD8mX692ex-y6Srip27t3ag-EZ7j5w,6021
6
+ gns3server/crash_report.py,sha256=S7obdSujdwQYlNgbT3d3csKSJlNT6ivCryq4pY1Wtas,6021
6
7
  gns3server/logger.py,sha256=zjHjyyqK74YMVPdjjznj03xWO42Kx3RDeVnZflT-0eI,5309
7
8
  gns3server/main.py,sha256=_bLqv2j1TqgYjDFpSCs-6cUTjJ4_fWDQEFQdGKheIeE,4392
8
9
  gns3server/server.py,sha256=KMwIfPvYNw0He5DSyenFuLvr7mlxZlS5azDXKQIVlms,11795
9
- gns3server/version.py,sha256=1D-TWBDP3MOjQSz4f1jNJYWPw_jus_vbacT2-UC8KXo,1462
10
+ gns3server/version.py,sha256=3xH4WBMjsDJFeMYGXvrwfqyCFbEUWzWdMOFWLrzcX9w,1462
10
11
  gns3server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
12
  gns3server/api/server.py,sha256=LQAKxtBaVxylgVTqRpVhdwACdkaibDryOSUT2us5PUk,7972
12
13
  gns3server/api/routes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -14,7 +15,7 @@ gns3server/api/routes/index.py,sha256=Zw5RerRIurKRE5773D9vvtvYjQqBtD1R_q-UiDGwwx
14
15
  gns3server/api/routes/compute/__init__.py,sha256=Mccr7yhdhHtPN_5THI9Zqj0sJUKiEHm6kK0kaQpXd8I,7648
15
16
  gns3server/api/routes/compute/atm_switch_nodes.py,sha256=pWUQszCnK0j4bfSvT90z8tcuuK-M_2f0KKvtpCPV0dM,7294
16
17
  gns3server/api/routes/compute/capabilities.py,sha256=vCaxxzVuTKbTWwXUf_Y829XjIetONUFSlEO5w5fq-7I,1604
17
- gns3server/api/routes/compute/cloud_nodes.py,sha256=x1GDlss9klB3fF4pBH-iy84wMmGubLEMcZeV4akvnnI,7923
18
+ gns3server/api/routes/compute/cloud_nodes.py,sha256=_lv3_nVXzr8IuiT57QfwnODcjpJgq3DC622Vz8l3Fuk,7933
18
19
  gns3server/api/routes/compute/compute.py,sha256=IPM7XA4UQZl4DVQ_eCaLKxfRU9wwm8DZI9iSnqQDez0,4478
19
20
  gns3server/api/routes/compute/docker_nodes.py,sha256=rqtEzCGmGl1snGrF5fkRqjAnhCfL5Yi_Bs5-EiOC9qE,11221
20
21
  gns3server/api/routes/compute/dynamips_nodes.py,sha256=tFVyF-7_D0XRHqVsB5-aurCMVwpuSRfNsoYMs-AEwfY,10432
@@ -40,8 +41,8 @@ gns3server/api/routes/controller/controller.py,sha256=6S8pMz5aj47RSrFeGP8CTuGYs8
40
41
  gns3server/api/routes/controller/drawings.py,sha256=E76kffF_AqXtdY684snU507uAalLNVv-0l2eXe0b5WM,4076
41
42
  gns3server/api/routes/controller/gns3vm.py,sha256=7uwJYx7PSkol6_trM8uN4g_XL7SNds8_r0EMC8UyNHM,2035
42
43
  gns3server/api/routes/controller/groups.py,sha256=Haqy3lzYRS1-FcS15yXEeAPz6k7-sD1_RaPxPVZc85A,6962
43
- gns3server/api/routes/controller/images.py,sha256=MJiMxvmG6P3BNd71tQ5EYbpd7xotm2VJRBYujY1hYV8,10334
44
- gns3server/api/routes/controller/links.py,sha256=LgqmdVUUwtpipDhDzRdzUyKpsr1Or-t-E05SXAzGNkA,8464
44
+ gns3server/api/routes/controller/images.py,sha256=XTZZdILmJrPPX5ewe0kWWWhpz-kxw2KJOpCSDDPkB1c,10186
45
+ gns3server/api/routes/controller/links.py,sha256=ObRODK8GICsPWNxzP0IJp3IsJNmlYFBl454IoNH0KcM,10247
45
46
  gns3server/api/routes/controller/nodes.py,sha256=WeWmKVDU7aG9GeW4ZbvD79P12Ov0jTIZ5lw4fJjWq8s,18855
46
47
  gns3server/api/routes/controller/pools.py,sha256=FCSqEmRxRvjMKM_iGwERxUrukJEGczV_XRpa8mSZmFw,7806
47
48
  gns3server/api/routes/controller/privileges.py,sha256=mdjt1oHg2rIGonCopFfDXr7BCa_y3ky4_pMu8no0BCQ,1011
@@ -60,16 +61,17 @@ gns3server/appliances/IPCop.gns3a,sha256=73WoeRIR56FQ_RGGEnx_euORVEgQzSa8zkugdWP
60
61
  gns3server/appliances/a10-vthunder.gns3a,sha256=TyEaFP2MagSKBvRFBWB5VD6wcYG4E-jtuTca90F6i98,2639
61
62
  gns3server/appliances/aaa.gns3a,sha256=A0ZxwwR74BlNR28Fe-tyDCdGe5widI_CceIXrAqYmU4,785
62
63
  gns3server/appliances/alcatel-7750.gns3a,sha256=Sj1WcE--zdIWgf3-DQ-AFBTz41_p6UC9I9iZ3av6TaI,2775
63
- gns3server/appliances/almalinux.gns3a,sha256=F37VYRnx0twhNxibZsAN9BKjISl1zu-6hwjOTsWjh0Y,3642
64
+ gns3server/appliances/almalinux.gns3a,sha256=37ChxBunxvBXxKCIFakFfuvzHFbDhIOqtsSZKN_Nsb4,5008
64
65
  gns3server/appliances/alpine-cloud.gns3a,sha256=V6ZQ1yiT7Ou03840aplPaWweeufmtcK3KzqpszQW_8s,2285
65
66
  gns3server/appliances/alpine-linux-virt.gns3a,sha256=0BDnDSVRIllXk6Tpuyk1G2vWv9uiwyaCmdd_vYyBK-g,2567
66
67
  gns3server/appliances/alpine-linux.gns3a,sha256=LZs8KQNJQtmpUn7uVOmLlb23kjQHc9Vbrhk-VzwT68o,810
67
68
  gns3server/appliances/arista-ceos.gns3a,sha256=_N88hNErMaD4Wt7AcL4EfGpaohsMhvXWqFkvgcgPeiE,2316
68
- gns3server/appliances/arista-veos.gns3a,sha256=loRhjHc9FBTYd9yVvXAlkhJUmHEBi6MPua2Cxq5h4z4,3852
69
- gns3server/appliances/aruba-arubaoscx.gns3a,sha256=01hM4O8Ji_-37gkIItYIcIlCpdc8CIkThxk40jZ-17U,8936
69
+ gns3server/appliances/arista-veos.gns3a,sha256=BwQ8PPYHwxwHU1Z5Va0Q8CAfrNx4DqSgdfDzYee4LLQ,3872
70
+ gns3server/appliances/aruba-arubaoscx.gns3a,sha256=qAgY3s7hVG0waI3h-qN3Ku6Tgx_-8cU17HrbXA1yllE,10379
70
71
  gns3server/appliances/aruba-vgw.gns3a,sha256=r5SiuZteas6ELVyZKnZQ3HDH8KkvZv2W5XSBVApNg-0,2664
71
72
  gns3server/appliances/aruba-vmc.gns3a,sha256=OUcQEmC8F_56AjcFDlRYgv86BJD4L4bufNhJXSahId4,1884
72
- gns3server/appliances/asterfusion-vAsterNOS.gns3a,sha256=nXI5zUsTyeI1osX_wkOYoM8iEM1-lnVkQ7Yu_MFMMXI,3001
73
+ gns3server/appliances/asterfusion-vAsterNOS-campus.gns3a,sha256=YRBmqQFCsWwTih637KwRDg56eCJ7BwIrSytFho3MLEY,2974
74
+ gns3server/appliances/asterfusion-vAsterNOS.gns3a,sha256=6PuSKTOwoO6uSZeIHf8VjLNgiekOmUST2TqQGrCdqHQ,3013
73
75
  gns3server/appliances/asterisk.gns3a,sha256=eky7eRRE1Y6ezfzYKb5zSjmdd_vmV3T-UvAnHP5xnpc,4969
74
76
  gns3server/appliances/bigswitch-bigcloud-fabric.gns3a,sha256=33FuU_42tptHEgkoMuvrkY6qEwUu4T7-c8cIFTJwkUs,1979
75
77
  gns3server/appliances/bird.gns3a,sha256=YqI4UoQjwZ4aCllInRJv7l22wJqAqVppoE_TkGmIdZ4,1693
@@ -78,7 +80,7 @@ gns3server/appliances/brocade-vadx.gns3a,sha256=IQu1380-P7h5ssnpj7iQrw48APKgaL0-
78
80
  gns3server/appliances/brocade-vrouter.gns3a,sha256=wQT7AkxzZRJggB6uz6Agwdualz6qvOBeovTKOt-qT_g,6428
79
81
  gns3server/appliances/brocade-vtm.gns3a,sha256=AN3TzcWMyZYvlrGjFZciMLUs4VzhkVlDl9ruPBHKUKg,6068
80
82
  gns3server/appliances/bsdrp.gns3a,sha256=4r3RS67IjgGo5p7H_6eEoCyiuAc7Bc7byMn4AMdI-r0,4478
81
- gns3server/appliances/centos-cloud.gns3a,sha256=Jt1woMB__72lD23SoXRCiXjbAmVtco8mTSaVuKz5nlE,4871
83
+ gns3server/appliances/centos-cloud.gns3a,sha256=4L5iMzCNqsHuoWsK_IVsJ0mvq70R399ZICFeDXWdclc,3660
82
84
  gns3server/appliances/centos7.gns3a,sha256=15Y9YALrB6kB8FCSwUoBQ-PLZjYVhCTVaNO77vxt8PE,2706
83
85
  gns3server/appliances/checkpoint-gaia.gns3a,sha256=Cy95wWPQP17OK7reB7L19rWETvo8N_GXw6tsstRHujo,4614
84
86
  gns3server/appliances/chromium.gns3a,sha256=B99sxN-ltBLbOHVxQD-8ipc8DExmkwd3AfixF0tN84E,623
@@ -131,11 +133,11 @@ gns3server/appliances/dell-ftos.gns3a,sha256=oE9JSZ7neGXkt-bQ0HRCGfyr8c-XRnz5gxl
131
133
  gns3server/appliances/dns.gns3a,sha256=6Vl9q1WFMxmi4GCVkKDohLdHILSMEgqw6dfoK0lL42U,1281
132
134
  gns3server/appliances/empty-vm.gns3a,sha256=xex6wEGG3Qp-3JCMLTXmQgC37R-LtCBDzX4vIYkf-ls,7465
133
135
  gns3server/appliances/endhost.gns3a,sha256=3RUT4FVPdTje-3zChFwwuqXM6rfmg44jG2KM_prcM7Y,500
134
- gns3server/appliances/exos.gns3a,sha256=hIcxJt919rUL9hY7gDqDQa9jE-JciFMH8hm6qVRar-U,1631
136
+ gns3server/appliances/exos.gns3a,sha256=vCG-ti7weMBVoFvRD65cgrCP0A3z_Yh4LzW0QR1bvHA,2116
135
137
  gns3server/appliances/extreme-networks-voss.gns3a,sha256=4cmpuK9JUXTjuQKVWf5qxm80dFykS2eEbPqAgj2kZSU,5466
136
138
  gns3server/appliances/f5-bigip.gns3a,sha256=n8J_srUhcjHKNo_Q8qAP80QvAwUNeErFuMR38ORkY4s,15898
137
139
  gns3server/appliances/f5-bigiq.gns3a,sha256=NaX6ApUCAbCCxWVGIDq4AMnyP5QfEZLuMLBzwosnZJM,7892
138
- gns3server/appliances/fedora-cloud.gns3a,sha256=RzYznzmNClkO0DGF7gzEsJsihWDn6YDYgA8iCaLoG0A,2857
140
+ gns3server/appliances/fedora-cloud.gns3a,sha256=_HIdTgJc3FLkvqMDs5dNk1woB3GEzxasw_RDwSY7O8o,4318
139
141
  gns3server/appliances/firefox.gns3a,sha256=SM9Id4Fu7aqwo1KKMtKmba-OQ7gtBzL16WuBqLVWFJo,2267
140
142
  gns3server/appliances/fortiadc-manager.gns3a,sha256=avdjTSiyKI1tFZ3kyRnGlRLLm2DPmWaeIziG6bn5X-U,2185
141
143
  gns3server/appliances/fortiadc.gns3a,sha256=nyCPOtJr0z8T3yMmCc3O3uv02hl6VhlEmbdg5ANRlFU,20115
@@ -161,13 +163,14 @@ gns3server/appliances/huawei-ar1kv.gns3a,sha256=O4pNFq11tL123Wat4CO2R0A3AB_I3TfR
161
163
  gns3server/appliances/huawei-ce12800.gns3a,sha256=3vmwHdIwP6jE0hl3pFtN0eLpYj5hE4Plm9kj4766izw,1670
162
164
  gns3server/appliances/huawei-ne40e.gns3a,sha256=PM8IyxRXCIl450LSyoPCAtNJtPLe6e5BZTim2m6Vj7I,3669
163
165
  gns3server/appliances/huawei-usg6kv.gns3a,sha256=UK0gAqn8UlUQPzpwqU0uttoUbFLVTy4GZyYNMr3GirE,2357
164
- gns3server/appliances/infix.gns3a,sha256=EPveVQFQiCOMwpmH9xwe4fdKDSeayPqk_uHLuuLBkBs,2884
166
+ gns3server/appliances/infix.gns3a,sha256=S-ZfDbdqiE668ORf1qdmVcEveZdRLNAc04zyUY5qyr8,4616
165
167
  gns3server/appliances/innovaphone-app.gns3a,sha256=tzzaLqnF_K3PhFmRRSjgbhu-WCHs9dNCS3FPVtiojXA,2645
166
168
  gns3server/appliances/innovaphone-ipva.gns3a,sha256=iMEFGOTW8xS1l5L8Xha8qGI56cBR_Y_F5c48zklhHyg,3446
167
169
  gns3server/appliances/ipfire.gns3a,sha256=oOsJiAgTAQ9WMiVF6qSqFFeF-bMZHNUyZQF7EXzUyx4,7726
168
170
  gns3server/appliances/ipterm.gns3a,sha256=6FGTKH-uhZxOyFgI101twv-Y8ozD5cdk_j0nV2bdBZY,763
169
171
  gns3server/appliances/ipxe.gns3a,sha256=-bTj1C5fSFpyAeMJfxeN3YPEoKmpFtjo8NJwIMbOHa4,1705
170
172
  gns3server/appliances/juniper-junos-space.gns3a,sha256=CvinnpTlwH4RdXZaqmNKIVL1sVkiC5EwknU1EqfC5ps,2393
173
+ gns3server/appliances/juniper-vJunos-router.gns3a,sha256=o3uZjFU-M4VvRsbZqBBkAG-gVfku2wUx6-VNMNVeVDg,2606
171
174
  gns3server/appliances/juniper-vmx-legacy.gns3a,sha256=5bEZAQWnEIiWGY7V78N6ZYJG_NOILgv_KMs0GEqZYlY,2215
172
175
  gns3server/appliances/juniper-vmx-vcp.gns3a,sha256=frcCdL-0U5IG_I5g2G3_SqLiWnfDJ8vylJ5uhLu-dOk,18531
173
176
  gns3server/appliances/juniper-vmx-vfp.gns3a,sha256=UD1Brbnw5sBNbQPPOhE-BxlP3WQhiY9pqbsPC0KNDTA,10112
@@ -204,6 +207,7 @@ gns3server/appliances/mininet.gns3a,sha256=e1lLIU_hzKkhCFwdPYpVTLPsYLWpn5HCPS9Gz
204
207
  gns3server/appliances/net_toolbox.gns3a,sha256=i0dwwoQIb4bfT18NpBYE_W3rn4kIE3KFB5G--bH1Mj4,793
205
208
  gns3server/appliances/netapp-ontapsim.gns3a,sha256=J94_1tKGLtkCCIXjw4PlhC-zD-irELoLYzRaRm7iytU,7938
206
209
  gns3server/appliances/netem.gns3a,sha256=_YDyQZajXeBXu1ae3ZzJnxI3Nm1v243vI90LP4TLUsE,1898
210
+ gns3server/appliances/nethsecurity.gns3a,sha256=i0h9gnYGpizaHHBfDGmk3pJUHGF67IJkb6Mb4zXbkZ4,2095
207
211
  gns3server/appliances/network_automation.gns3a,sha256=k2LaeaLAeUWAGz6i6Qaa4pS28mymlv0LcAWb1s7dbf8,658
208
212
  gns3server/appliances/nixos.gns3a,sha256=Z0aa6lKX1wjMaAE_GVZ77jwvJXZQ93tKCOMtmlm3MVc,1950
209
213
  gns3server/appliances/nokia-vsim.gns3a,sha256=JIVhJ4-gftFdGOZnquyzWBRZOTbKZWRSYPhwso-RJa4,2078
@@ -219,7 +223,7 @@ gns3server/appliances/openvswitch.gns3a,sha256=uSt3T4x-HS_EuNAyTK1mH8JJW0LyTYQhp
219
223
  gns3server/appliances/openwrt-realview.gns3a,sha256=sSKFqLRLNKxCaKIoWzL5fRYbUBZ8Dd6ZHaaSUHmVjrw,2580
220
224
  gns3server/appliances/openwrt.gns3a,sha256=3xBQfE2EjQLFjpnBRfNiUDCjA0Z4F_TTFPqD-MdL81M,15783
221
225
  gns3server/appliances/opnsense.gns3a,sha256=3RBqXU6MiVRSDmFb8nlq8RCkuWiBaQT5rmYG5ad-48k,4638
222
- gns3server/appliances/oracle-linux-cloud.gns3a,sha256=n-HqPqAxwBC_8gzK9RhFRjS_HNsMGf1lhlLoOR8Mfhw,4883
226
+ gns3server/appliances/oracle-linux-cloud.gns3a,sha256=rYCjUHsByimuKjPLsjHIKx27DRuOB43emWHzMSoO5ko,6130
223
227
  gns3server/appliances/ostinato-wireshark.gns3a,sha256=zRhyKvfdCmISO2qASz2d0j5WfsPy7Vg2yFcK5VvTWAg,720
224
228
  gns3server/appliances/ostinato.gns3a,sha256=4YwgibtE1Z9p9eXOaHtAooErQYoCFpCgJHDFHnj6a68,2393
225
229
  gns3server/appliances/ovs-snmp.gns3a,sha256=df-qv6BACuNzLYiLGAV5JS_LVMLZMAHdQ-RIZhhb65Y,550
@@ -232,9 +236,9 @@ gns3server/appliances/puppy-linux.gns3a,sha256=FyqZdUkdTv7JiNwSuMGzQ56ukGmf6428R
232
236
  gns3server/appliances/python-go-perl-php.gns3a,sha256=IIa_eJyzsHs35LFcjpvgKup6hVemMxDjCXQuzNsNv8I,590
233
237
  gns3server/appliances/raspian.gns3a,sha256=E8bfibSQRc5XjYsI3dSEeMw5VHH89U-Lb9bLISYKeU0,2940
234
238
  gns3server/appliances/reactos.gns3a,sha256=kXDfjlwn4-APJCP1VpHpU4tX1J0y4QQt6R_GqdGAV6Q,2711
235
- gns3server/appliances/rhel.gns3a,sha256=xUdzjdETzIOY9ncp750Lb3tkeVN5e4BSMsmsnSIdTag,7932
239
+ gns3server/appliances/rhel.gns3a,sha256=F2aTkUtjLTBiiktAFnxdyx6430eXwK2iDj6GpAWdRKY,10014
236
240
  gns3server/appliances/riverbed-steelhead-ng-vcx.gns3a,sha256=oob4Ps3M6TTxVkhyzbMagTkp3pHQCqb2V8BQA8va9VE,2607
237
- gns3server/appliances/rockylinux.gns3a,sha256=srAW2LBBfB216cj9E59eiOSywPxPC9fgzhj9sy-e7jk,4410
241
+ gns3server/appliances/rockylinux.gns3a,sha256=TVo1SF4eEzuFnDau0TtFTgXesNBWk7ItNBQGtZ-6AS4,5110
238
242
  gns3server/appliances/security-onion.gns3a,sha256=2JKPX_fKwzIQJxgRGHllGXoToT1s9XfBBr1TEaUCDCY,5164
239
243
  gns3server/appliances/smoothwall.gns3a,sha256=NqzLQp_c1ujM6PH-w9JK9gwog3LnH9m6gC6AnblgIOs,2181
240
244
  gns3server/appliances/sophos-iview.gns3a,sha256=5oTP_tQMgCRj-gwz0UyHTR5HSeOMLotuwob9wS2310E,2822
@@ -286,10 +290,10 @@ gns3server/compute/builtin/nodes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
286
290
  gns3server/compute/builtin/nodes/cloud.py,sha256=r3tq0b-7uvM9xHRVtNx65Dv3D69_TDOPjOz6133c9Mg,18507
287
291
  gns3server/compute/builtin/nodes/ethernet_hub.py,sha256=_aPL_bKpvYY_REHRcUlkSLMobN4ZhhGGCJLgQNHUvtc,2708
288
292
  gns3server/compute/builtin/nodes/ethernet_switch.py,sha256=Xc59N3kM9nuzLjHlgllRI3pzXtDQdc2SsCucdZxMebs,2733
289
- gns3server/compute/builtin/nodes/nat.py,sha256=rs1M_VZ42zhtb0RmukD7zHEEpR80WAACZykY9ETN0MQ,3804
290
- gns3server/compute/docker/__init__.py,sha256=DqR1b_qZQnS9Ej4kN6_w3fmYzNdf3N1Hw_UudcmIwOs,12476
293
+ gns3server/compute/builtin/nodes/nat.py,sha256=0FanfJK3w_4ngYdPEHc8Gkebc-psHD0bxtne5EuRef4,3844
294
+ gns3server/compute/docker/__init__.py,sha256=JAny_Eui0gWPfFruzh2rGGtdcVQcyavARLwkITb5QVI,12499
291
295
  gns3server/compute/docker/docker_error.py,sha256=Rj5QDgOFt8ENZy23nDI8J-gmtt8-lDDtlNdmK70d_tg,904
292
- gns3server/compute/docker/docker_vm.py,sha256=4IQdr-5rL5ylnhPNPaCzU65EZLRSH1yKTWzwuu3cuco,49601
296
+ gns3server/compute/docker/docker_vm.py,sha256=eojZ9RhtWYX9n-JBdzgs6oPKLitohD-219thXk60sGc,49701
293
297
  gns3server/compute/docker/resources/init.sh,sha256=7BxZQm5TXOmDk-TVc0zJmXOX5Jx3azOOnpbPJohF_x0,2868
294
298
  gns3server/compute/docker/resources/run-cmd.sh,sha256=4D8GCbuNKlt-pXWml8DD1aJFCPrgy6mazzWfhXr7V9M,103
295
299
  gns3server/compute/docker/resources/bin/udhcpc,sha256=tyKcy24adtojLKj05cTQpyBSQ82Pa79FQXAS9xSvOAE,323
@@ -366,7 +370,7 @@ gns3server/compute/nios/nio_tap.py,sha256=rf4eRum2U-MTRn7ZOalbsmDJ14jKC_Yk0J2XMt
366
370
  gns3server/compute/nios/nio_udp.py,sha256=FdqaQb6HZq6f7xav7Pp3-WxuA3JWQD705HFzCrL1hHc,1764
367
371
  gns3server/compute/qemu/__init__.py,sha256=NyXjy0_4-ELAjnhmI6KlCHQpud6S-VAyxr467dwVqfE,11188
368
372
  gns3server/compute/qemu/qemu_error.py,sha256=9NtNUfIT_Sv8hsyC7OLiij8D9Oe__nRCLSufBHv4MAI,801
369
- gns3server/compute/qemu/qemu_vm.py,sha256=a3rEu-pimW8g50N2crlhrLdxDeiNb6RAeEWD5ifzq_E,101389
373
+ gns3server/compute/qemu/qemu_vm.py,sha256=7VolB84UB_dS0t64W8SJeLcDSYoAlUB3ijq9F4FwVHQ,103994
370
374
  gns3server/compute/qemu/resources/config.img.zip,sha256=nKN7A4Y-ZYmSIAtznxR2YXo6Z14agEJT0-IHcUcppX4,1368
371
375
  gns3server/compute/qemu/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
372
376
  gns3server/compute/qemu/utils/guest_cid.py,sha256=YBVWlyGkZP2yc89wGnNJB3w-lbBWgdRLVMn_TogO618,1200
@@ -395,7 +399,7 @@ gns3server/controller/__init__.py,sha256=_o_3gOg_8YWoUlAFv0IAwDuQz1PYFWRCb0iGUHC
395
399
  gns3server/controller/appliance.py,sha256=xxHdtgBHFN85hxeg3kS6SLyFYDJp3llTSr0LXupByr0,2128
396
400
  gns3server/controller/appliance_manager.py,sha256=cOCHFdxFhpjnoW1de2LdcE0K_ptVw6DKPxedbXALt3A,20996
397
401
  gns3server/controller/appliance_to_template.py,sha256=nM4PIbPxXqYUq7B1oyLhyGz3ZC2QAdk7qClMVTdlJQo,5224
398
- gns3server/controller/compute.py,sha256=OamRdq5cZDXSx5QpDIHeq7RWvTWtXtSvcJUua2S9pzE,25581
402
+ gns3server/controller/compute.py,sha256=Q1S4zH8KcHvHzIW16gMYBQ7fN6GXlhp2IP-qtxibeNw,25559
399
403
  gns3server/controller/controller_error.py,sha256=pYW8eY3VZeBl6nSUOUQh-47pbeKfRtSwbkLiWpleHoo,2071
400
404
  gns3server/controller/drawing.py,sha256=yMN46Ev0dV-wBA4P4g0xzq-XU1qHVcKGmwriO_0GvsU,7179
401
405
  gns3server/controller/export_project.py,sha256=uN5NeMCy1ajMhrEWOli6lHsJNQCI6eRatMss4_kX8vE,12917
@@ -414,7 +418,7 @@ gns3server/controller/gns3vm/base_gns3_vm.py,sha256=RlJKUldV0nCj75CI7qyqN385pyNH
414
418
  gns3server/controller/gns3vm/gns3_vm_error.py,sha256=SDLXon3-1h4Ddopw0cqcB7RMnwH0q5LQLVTgCa58GO4,955
415
419
  gns3server/controller/gns3vm/hyperv_gns3_vm.py,sha256=qavG_y_ch-3HHgqKSC7rtcEeaZWUtKrNLnRS-YUZ-FM,12361
416
420
  gns3server/controller/gns3vm/remote_gns3_vm.py,sha256=OGBgmoMXBKAHyeYt5ugP1UilJSOOQMnpj7wv4ETlnC8,2085
417
- gns3server/controller/gns3vm/virtualbox_gns3_vm.py,sha256=9p6ypG3Cv2k4uUzyN3GpkWlSCdQjbuZ5T3WpT0y2KGY,18828
421
+ gns3server/controller/gns3vm/virtualbox_gns3_vm.py,sha256=TW811oonkZ8ZeK55taf3mPtNIQg8EY2Zv245pNg0HPc,20362
418
422
  gns3server/controller/gns3vm/vmware_gns3_vm.py,sha256=2TygTDgRrnp-gVTbD_d1JmhVlOWx6eBvqWFWT0yUABs,8090
419
423
  gns3server/controller/ports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
420
424
  gns3server/controller/ports/atm_port.py,sha256=5dXQ-xDygjzyk9Hv_SUjuLPprgv1gEoRia10QXTW_Qo,1305
@@ -504,7 +508,9 @@ gns3server/db_migrations/versions/7ceeddd9c9a8_init.py,sha256=UPknomQhPu2kiNcPMH
504
508
  gns3server/db_migrations/versions/9a5292aa4389_add_mac_address_field_in_docker_.py,sha256=6JPRoXJeK7Sjw6ISvhBmzIwjqm5xGQ3xnYlOj4boz50,517
505
509
  gns3server/disks/OVMF.fd,sha256=-OwrYUOfa6EMWK7AyA04iz1YFPuHVflpT3AgSOfF7JQ,2097152
506
510
  gns3server/disks/OVMF_CODE.fd,sha256=qg-YobiVMx1MrrdiWlNkQrFL0PbDcK-aVT5qMnE9H8c,3653632
511
+ gns3server/disks/OVMF_CODE_4M.fd,sha256=7m_EZudR-ykFjjIaWQSIGAs3apovXPh9tacguncqNRo,3653632
507
512
  gns3server/disks/OVMF_VARS.fd,sha256=XSrDgzcbQIOYrM7n7CfIwJ6lt0oN4M7qZRM4ixW-XR4,540672
513
+ gns3server/disks/OVMF_VARS_4M.fd,sha256=XSrDgzcbQIOYrM7n7CfIwJ6lt0oN4M7qZRM4ixW-XR4,540672
508
514
  gns3server/disks/empty100G.qcow2,sha256=szO0OyVI4flYHU-1L1wtYDx9Q6FLcKaJ3dPjvJE-a7Q,198656
509
515
  gns3server/disks/empty10G.qcow2,sha256=I6Ht6slptJiHRIRjcWn9CN5Kfxj0OFlP7nEDI2ugANs,196768
510
516
  gns3server/disks/empty150G.qcow2,sha256=vFOkEJL4NX0InGZ1XoL53iw2UkWaTEvhRSBeTFUCfok,199008
@@ -524,7 +530,7 @@ gns3server/gns3_server.egg-info/entry_points.txt,sha256=yRglpXfRnljgwASMGJuwYoMR
524
530
  gns3server/gns3_server.egg-info/not-zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
525
531
  gns3server/gns3_server.egg-info/requires.txt,sha256=Qe88BytcYyC7Y5VIC2C2p6uGkwswRg5Q2D7AHQryhiU,549
526
532
  gns3server/gns3_server.egg-info/top_level.txt,sha256=RDXhr8McCnZQAwpsyWA2Ob6qpksfGyfsINUHMBnHYrE,17
527
- gns3server/schemas/__init__.py,sha256=CRQ-F1ECLygbNG7507CLDy61T24MaelgofgOERwnVLA,4595
533
+ gns3server/schemas/__init__.py,sha256=ys3ZRPt3iQGHxGEsHJpoMqOTuyzR5rUJX2e0mZGgJzs,4626
528
534
  gns3server/schemas/common.py,sha256=Ey3u-2qJtla421XA9pAas0fl5S-jyB2aBH-JR-pIyC4,1630
529
535
  gns3server/schemas/config.py,sha256=ijOqQgdR_5SXgV51rifub7vxFhPrbyKyJs_TRe1pBzI,6769
530
536
  gns3server/schemas/link.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -555,7 +561,7 @@ gns3server/schemas/controller/gns3vm.py,sha256=TlyGfw_gNWKy3uN8kzMMcRbwDJyc234zG
555
561
  gns3server/schemas/controller/images.py,sha256=5U4efVccEIxHs44VeSqQ6diqc3Iw3jM8b9oav7rLHH4,1431
556
562
  gns3server/schemas/controller/iou_license.py,sha256=HckRCk1mB3XP3baXYuYaGe_G0sEkmCGp6Rr2UB-PwpY,921
557
563
  gns3server/schemas/controller/labels.py,sha256=2lk-wiLn7K7zqaRshcgqFjAo0Sg1-xDL8b97GO4dSLo,1239
558
- gns3server/schemas/controller/links.py,sha256=t7dLNExf9Ywcv-kFvDk1h-rxQ5AdQ30BN7ZB_vJ0weI,2417
564
+ gns3server/schemas/controller/links.py,sha256=2QINx2O-Z_xo92LDzA84kk8EYGNgk_fht8Tj1OO9nFs,2704
559
565
  gns3server/schemas/controller/nodes.py,sha256=UY3AbTjNkuhrQ1gjT8yy5FH4pKgAscXEgYr5Oa2omwM,5355
560
566
  gns3server/schemas/controller/pools.py,sha256=DduyxJuWves_PEdV1rhU3c3LLCjTjyh8of5RAa5FFIE,1848
561
567
  gns3server/schemas/controller/projects.py,sha256=_ptGszAjwcDyFkeCX8UoFnaHWmtazMAO-2z7uMRlXrk,3723
@@ -612,8 +618,8 @@ gns3server/static/web-ui/NotoSans-Regular.bb384defbe36eaec.svg,sha256=uECuQtpAPz
612
618
  gns3server/static/web-ui/NotoSans-Regular.e6139cb1663a1c57.ttf,sha256=NPyxxROGVf4PlLBl3aiZC8bvHIpeR0bbt37H7hWtNGI,512588
613
619
  gns3server/static/web-ui/ReleaseNotes.txt,sha256=uag7ABM-yXleLBxhtetbpVOCssZPXcd_lLMyUAdQsn4,5527
614
620
  gns3server/static/web-ui/favicon.ico,sha256=ucy7cQDhOulawYo6ntAIV_MhtjtJjx-3q6tQb8HEDpk,5430
615
- gns3server/static/web-ui/index.html,sha256=Edf4s_2hwIM6T7U4PLhS87cjmWI71Q-vsqffq9Pzb9A,11546
616
- gns3server/static/web-ui/main.87178dd64c9c79ba.js,sha256=NxyHBO7BJOukQc517whbOGqcySKrgZhigMvrrrMUrZw,4340553
621
+ gns3server/static/web-ui/index.html,sha256=7pAStdbcYtz6lNT3T2rxvJOFnjg2NJG1bp-7-2FuzdI,11546
622
+ gns3server/static/web-ui/main.fd9d76d279fa7d5e.js,sha256=UldR9nkWEigrntL5Nw4eMRd512NK6s_liUjQ2nksUmI,4340477
617
623
  gns3server/static/web-ui/polyfills.319c79dd175e50d0.js,sha256=sQPX0SyLyUHk_0gvODKsdL3-lQsQ_whJeMgxx6tO04A,38362
618
624
  gns3server/static/web-ui/roboto-latin-100.539f0a96b40596f7.woff2,sha256=EoI9WFYFI4EhVUr_i7BgojXcNvN-_Z-x5-bqGpYivDU,15808
619
625
  gns3server/static/web-ui/roboto-latin-100.5ba994dac3e79ea8.woff,sha256=xOrU3p96_yN9BrUw6thBPRNXQn9qkllENCu04rHc5tA,20368
@@ -1277,7 +1283,7 @@ gns3server/utils/file_watcher.py,sha256=CF-5dB-RVSj8xuVxJ9siSpf3QOnXpw3n2IkjCzRg
1277
1283
  gns3server/utils/get_resource.py,sha256=WWW4mejsye6Tpw5UmIT6drfcUDqs-YhLxSlQaNboRDg,1534
1278
1284
  gns3server/utils/hostname.py,sha256=XUswUi47n-LfUbMiZ5AOs_Crl6lln606nhttEaJanpA,3342
1279
1285
  gns3server/utils/http_client.py,sha256=MD-yZA2VjQonqOlPiU4SXo9AjQWDYFFP0ZeZzz680EI,2318
1280
- gns3server/utils/images.py,sha256=v7kPc3iDN6E84naQcS9OUHpZLQ2xfY5syeqY0p_bZ4Y,14840
1286
+ gns3server/utils/images.py,sha256=zTXazWlr2CK08em5Q7iIRDVqEdxQWd7puUru-wCUvmE,15204
1281
1287
  gns3server/utils/interfaces.py,sha256=DwsZXwPxmc5E-QwquzMqAfQRLrrt-GyYUjUDxFKqEZo,8981
1282
1288
  gns3server/utils/notification_queue.py,sha256=EO2vHr_Lkxiq9NP-6u6eDsVvFNKbe-QSZqHADU-Ynss,2688
1283
1289
  gns3server/utils/path.py,sha256=m4kj9NoFMLQfMAEG1HJ97x-zAdw0bxq-14tCwaIOSKc,2348
@@ -1295,9 +1301,8 @@ gns3server/utils/asyncio/telnet_server.py,sha256=dteUIryUX25iRr5-dMkdBYSTNZQZfLK
1295
1301
  gns3server/utils/zipfile_zstd/__init__.py,sha256=QXfnwyxx_CDJdAgOzqqBAD_7WDudc9VN03U0Gfccr5I,163
1296
1302
  gns3server/utils/zipfile_zstd/_patcher.py,sha256=RCMj1y8OrIJheEGnuERDH0l2hvLaFl5wa_IZNiTpBbU,380
1297
1303
  gns3server/utils/zipfile_zstd/_zipfile.py,sha256=KvAeNmWZHu2LHuUOZ8_Tnu_dRi3NOIWM6I3hg_c7NsQ,2189
1298
- gns3_server-3.0.4.dist-info/LICENSE,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
1299
- gns3_server-3.0.4.dist-info/METADATA,sha256=dlctVTNKxog-s06Q1BXQv8H9M62uqx587oFXmTqQTC8,48321
1300
- gns3_server-3.0.4.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
1301
- gns3_server-3.0.4.dist-info/entry_points.txt,sha256=kgHc6rA0RfDOTAkTDSwgWXKHWG4r5mQ-SsmpCHNgXPI,92
1302
- gns3_server-3.0.4.dist-info/top_level.txt,sha256=GvKJnXIKLBmewtHjQXkvmtz79ZW51IsfCoPMbHoWehQ,11
1303
- gns3_server-3.0.4.dist-info/RECORD,,
1304
+ gns3_server-3.0.5.dist-info/METADATA,sha256=X_O6HueMFYgjCJdY5Uu-VFwjGTLNAvQ_S7B-NuEL7lE,7903
1305
+ gns3_server-3.0.5.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
1306
+ gns3_server-3.0.5.dist-info/entry_points.txt,sha256=kgHc6rA0RfDOTAkTDSwgWXKHWG4r5mQ-SsmpCHNgXPI,92
1307
+ gns3_server-3.0.5.dist-info/top_level.txt,sha256=GvKJnXIKLBmewtHjQXkvmtz79ZW51IsfCoPMbHoWehQ,11
1308
+ gns3_server-3.0.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (80.4.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -232,7 +232,7 @@ async def stop_cloud_capture(
232
232
  await node.stop_capture(port_number)
233
233
 
234
234
 
235
- @router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/pcap")
235
+ @router.get("/{node_id}/adapters/{adapter_number}/ports/{port_number}/capture/stream")
236
236
  async def stream_pcap_file(
237
237
  *,
238
238
  adapter_number: int = Path(..., ge=0, le=0),
@@ -148,11 +148,6 @@ async def upload_image(
148
148
  if os.path.commonprefix([base_images_directory, full_path]) != base_images_directory:
149
149
  raise ControllerForbiddenError(f"Cannot write image, '{image_path}' is forbidden")
150
150
 
151
- image = await images_repo.get_image(image_path)
152
- if image:
153
- log.warning(f"Image '{image_path}' already exists")
154
- return image
155
-
156
151
  try:
157
152
  allow_raw_image = Config.instance().settings.Server.allow_raw_images
158
153
  image = await write_image(image_path, full_path, request.stream(), images_repo, allow_raw_image=allow_raw_image)
@@ -24,7 +24,7 @@ import aiohttp
24
24
  from fastapi import APIRouter, Depends, Request, status
25
25
  from fastapi.responses import StreamingResponse
26
26
  from fastapi.encoders import jsonable_encoder
27
- from typing import List
27
+ from typing import List, Union
28
28
  from uuid import UUID
29
29
 
30
30
  from gns3server.controller import Controller
@@ -285,3 +285,54 @@ async def stream_pcap(request: Request, link: Link = Depends(dep_link)) -> Strea
285
285
  raise ControllerError(f"Client error received when receiving pcap stream from compute: {e}")
286
286
 
287
287
  return StreamingResponse(compute_pcap_stream(), media_type="application/vnd.tcpdump.pcap")
288
+
289
+
290
+ @router.get(
291
+ "/{link_id}/iface",
292
+ response_model=Union[schemas.UDPPortInfo, schemas.EthernetPortInfo],
293
+ dependencies=[Depends(has_privilege("Link.Audit"))]
294
+ )
295
+ async def get_iface(link: Link = Depends(dep_link)) -> Union[schemas.UDPPortInfo, schemas.EthernetPortInfo]:
296
+ """
297
+ Return iface info for links to Cloud or NAT devices.
298
+
299
+ Required privilege: Link.Audit
300
+ """
301
+
302
+ ifaces_info = {}
303
+ for node_data in link._nodes:
304
+ node = node_data["node"]
305
+ if node.node_type not in ("cloud", "nat"):
306
+ continue
307
+
308
+ port_number = node_data["port_number"]
309
+ compute = node.compute
310
+ project_id = link.project.id
311
+ response = await compute.get(f"/projects/{project_id}/{node.node_type}/nodes/{node.id}")
312
+ if "ports_mapping" not in response.json:
313
+ continue
314
+ ports_mapping = response.json["ports_mapping"]
315
+
316
+ for port in ports_mapping:
317
+ port_num = port.get("port_number")
318
+
319
+ if port_num and int(port_num) == int(port_number):
320
+ port_type = port.get("type", "")
321
+ if "udp" in port_type.lower():
322
+ ifaces_info = {
323
+ "node_id": node.id,
324
+ "type": f"{port_type}",
325
+ "lport": port["lport"],
326
+ "rhost": port["rhost"],
327
+ "rport": port["rport"]
328
+ }
329
+ else:
330
+ ifaces_info = {
331
+ "node_id": node.id,
332
+ "type": f"{port_type}",
333
+ "interface": port["interface"],
334
+ }
335
+
336
+ if not ifaces_info:
337
+ raise ControllerError("Link not connected to Cloud/NAT")
338
+ return ifaces_info
@@ -25,6 +25,14 @@
25
25
  "options": "-cpu host -nographic"
26
26
  },
27
27
  "images": [
28
+ {
29
+ "filename": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
30
+ "version": "9.4",
31
+ "md5sum": "7c5040c044a989c524d40824cebb4a4d",
32
+ "filesize": 591724544,
33
+ "download_url": "https://vault.almalinux.org/9.4/cloud/x86_64/images/",
34
+ "direct_download_url": "https://vault.almalinux.org/9.4/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2"
35
+ },
28
36
  {
29
37
  "filename": "AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2",
30
38
  "version": "9.2",
@@ -33,6 +41,14 @@
33
41
  "download_url": "https://vault.almalinux.org/9.2/cloud/x86_64/images/",
34
42
  "direct_download_url": "https://vault.almalinux.org/9.2/cloud/x86_64/images/AlmaLinux-9-GenericCloud-9.2-20230513.x86_64.qcow2"
35
43
  },
44
+ {
45
+ "filename": "AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2",
46
+ "version": "8.9",
47
+ "md5sum": "1afc48c798960f0c6ebb65428c0ea973",
48
+ "filesize": 697434112,
49
+ "download_url": "https://vault.almalinux.org/8.9/cloud/x86_64/images/",
50
+ "direct_download_url": "https://vault.almalinux.org/8.9/cloud/x86_64/images/AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2"
51
+ },
36
52
  {
37
53
  "filename": "AlmaLinux-8-GenericCloud-8.8-20230524.x86_64.qcow2",
38
54
  "version": "8.8",
@@ -59,6 +75,13 @@
59
75
  }
60
76
  ],
61
77
  "versions": [
78
+ {
79
+ "name": "9.4",
80
+ "images": {
81
+ "hda_disk_image": "AlmaLinux-9-GenericCloud-9.4-20240805.x86_64.qcow2",
82
+ "cdrom_image": "almalinux-cloud-init-data.iso"
83
+ }
84
+ },
62
85
  {
63
86
  "name": "9.2",
64
87
  "images": {
@@ -66,6 +89,13 @@
66
89
  "cdrom_image": "almalinux-cloud-init-data.iso"
67
90
  }
68
91
  },
92
+ {
93
+ "name": "8.9",
94
+ "images": {
95
+ "hda_disk_image": "AlmaLinux-8-GenericCloud-8.9-20231128.x86_64.qcow2",
96
+ "cdrom_image": "almalinux-cloud-init-data.iso"
97
+ }
98
+ },
69
99
  {
70
100
  "name": "8.8",
71
101
  "images": {