Commit Graph

1462 Commits

Author SHA1 Message Date
grossmj
f3f7921525 Add generic function to install resource files 2023-05-07 21:57:44 +08:00
grossmj
f08ce9d3f1 Check for colon in project name. Fixes #2203 2023-03-19 18:26:26 +10:00
grossmj
f347e21100 Fix Docker tests 2023-03-19 17:56:07 +10:00
grossmj
267c4cbbbb Merge branch '2.2' into 3.0
# Conflicts:
#	README.md
#	gns3server/compute/base_node.py
#	gns3server/compute/dynamips/__init__.py
#	gns3server/compute/dynamips/hypervisor.py
#	gns3server/compute/qemu/__init__.py
#	gns3server/compute/qemu/qemu_vm.py
#	gns3server/controller/__init__.py
#	gns3server/crash_report.py
#	gns3server/handlers/api/controller/node_handler.py
#	gns3server/schemas/qemu_template.py
#	gns3server/static/web-ui/index.html
#	gns3server/static/web-ui/main.11410ae4eaf4d4c08cd0.js
#	gns3server/version.py
#	requirements.txt
2023-03-17 17:44:32 +10:00
grossmj
7968ee7ff2 Check swtpm version and start swtpm before qemu 2023-02-26 20:51:24 +10:00
grossmj
d867e1f1c1 Fix tests 2023-02-17 21:25:19 +08:00
grossmj
af9b883c08 Fix and adjustments after merge 2023-01-10 12:09:36 +08:00
grossmj
f09594ae4c Merge branch '2.2' into 3.0
# Conflicts:
#	README.md
#	README.rst
#	tests/handlers/api/compute/test_nat.py
2023-01-10 11:52:58 +08:00
grossmj
5a3b502024 Fix NIO update UDP test 2023-01-10 11:39:18 +08:00
grossmj
997e0ad6ee Fix more tests 2023-01-10 11:22:12 +08:00
grossmj
eb3fc1bb3a Fix more tests 2023-01-10 11:09:27 +08:00
grossmj
e9c95ff299 Fix tests 2023-01-10 10:07:26 +08:00
grossmj
72e3d8f0c1 Fix tests after merge 2023-01-05 12:57:00 +08:00
grossmj
27d9063e56 Merge 2.2 2023-01-05 12:38:00 +08:00
grossmj
ae200d9add Add Trusted Platform Module (TPM) support for Qemu VMs 2023-01-04 12:13:19 +08:00
Jeremy Grossmann
04ba3b6549
Merge pull request #2154 from GNS3/fix/2069
Use a stock BusyBox for the Docker integration
2023-01-01 16:18:37 +05:45
grossmj
e5c8ae4bde Use a stock BusyBox for the Docker integration 2023-01-01 17:04:48 +08:00
grossmj
5bccf4841d Overwrite built-in appliance files when starting a more recent version of the server 2023-01-01 15:57:41 +08:00
grossmj
17e0b2e259 Stricter checks to create/update an Ethernet switch and add tests 2022-12-24 08:20:51 +08:00
grossmj
93449c942f Fix tests 2022-12-22 09:24:17 +08:00
grossmj
263febecbc Merge branch '2.2' into 3.0
# Conflicts:
#	.github/workflows/testing.yml
#	CHANGELOG
#	appveyor.yml
#	dev-requirements.txt
#	gns3server/compute/base_node.py
#	gns3server/controller/__init__.py
#	gns3server/controller/appliance_manager.py
#	gns3server/crash_report.py
#	gns3server/static/web-ui/index.html
#	gns3server/utils/get_resource.py
#	gns3server/version.py
#	gns3server/web/route.py
#	requirements.txt
#	tests/handlers/api/compute/test_qemu.py
#	win-requirements.txt
2022-11-09 20:30:28 +08:00
grossmj
2e550d839e Fix tests 2022-11-07 20:33:02 +08:00
grossmj
9ff302592c Upgrade to aiohttp 3.8.3 2022-10-12 21:40:23 +08:00
grossmj
2976e220dc Return a boolean directly from API endpoint for project locked status 2022-09-03 23:08:13 +02:00
grossmj
27debfff8d API endpoint to get the locked status of a project 2022-09-03 22:58:44 +02:00
grossmj
ca3bf592d6 Global project lock and unlock 2022-08-30 22:49:47 +02:00
grossmj
46b022f726 Restore missing loop 2022-08-27 23:45:30 +02:00
grossmj
8f296e54f4 Add back loop 2022-08-27 23:41:52 +02:00
grossmj
fc7d5be736 Use pytest-asyncio auto mode 2022-08-27 21:10:17 +02:00
grossmj
600c18f04b Remove pytest.ini from tests dir 2022-08-27 21:00:31 +02:00
grossmj
d1c8f33fc5 Upgrade dev dependencies and fix issues after upgrading to pytest-aiohttp v1.0.4 2022-08-27 19:16:02 +02:00
grossmj
86c44cd6e7 Upgrade dev dependencies and fix tests to support pytest-asyncio strict mode 2022-08-24 21:03:16 +02:00
grossmj
bfbac2e93a Use generic symbol names 2022-07-25 12:33:40 +02:00
Jeremy Grossmann
da626d334f
Merge branch '3.0' into iou-user-loader-libraries 2022-07-20 16:44:48 +02:00
grossmj
80f5ca0c3f Checks for valid hostname on server side for Dynamips, IOU, Qemu and Docker nodes 2022-07-17 11:51:29 +02:00
grossmj
f5e1956dfa Support user defined loader/libraries to run IOU 2022-07-16 11:38:51 +02:00
grossmj
f4b67f2e59 Allow auth token to be passed as a URL param 2022-07-11 14:19:47 +02:00
grossmj
149d086fd8 Reactivate project importation 2022-07-05 23:01:44 +02:00
grossmj
410f062721 Fix config option to disable built-in templates. 2022-06-21 17:17:44 +02:00
grossmj
d8b928f1c1 Fix tests. 2022-06-21 16:52:25 +02:00
grossmj
d303d13045 Merge branch '2.2' into 3.0
# Conflicts:
#	gns3server/compute/base_node.py
#	gns3server/compute/docker/docker_vm.py
#	gns3server/compute/iou/iou_vm.py
#	gns3server/controller/template_manager.py
#	gns3server/handlers/api/compute/docker_handler.py
#	gns3server/handlers/api/compute/dynamips_vm_handler.py
#	gns3server/handlers/api/compute/iou_handler.py
#	gns3server/handlers/api/compute/qemu_handler.py
#	gns3server/handlers/api/compute/virtualbox_handler.py
#	gns3server/handlers/api/compute/vmware_handler.py
#	gns3server/handlers/api/compute/vpcs_handler.py
#	gns3server/handlers/api/controller/node_handler.py
#	gns3server/version.py
#	requirements.txt
#	tests/controller/test_controller.py
#	tests/controller/test_project.py
#	tests/handlers/api/controller/test_node.py
2022-06-21 16:45:25 +02:00
grossmj
ec3c36d6da Fix Docker tests 2022-06-19 21:18:54 +02:00
grossmj
bdd703a0dc Support to reset all console connections. Ref https://github.com/GNS3/gns3-server/issues/1619 2022-06-15 15:30:44 +02:00
grossmj
67bf14776f Config option to disable built-in templates 2022-06-15 14:48:52 +02:00
grossmj
527d4bb3ea Run Xtigervnc with MIT-SHM extension disabled for Docker VNC console support. Fixes #2071 2022-06-08 00:05:24 +08:00
grossmj
7d49b80e6b Add controller endpoints to get VirtualBox VMs, VMware VMs and Docker images 2022-06-07 00:38:59 +08:00
Jeremy Grossmann
3b7dfe5929
Merge pull request #2055 from GNS3/remove-qemu-binaries-requirement
Remove Qemu binary requirement
2022-06-06 14:51:07 +08:00
grossmj
162af5bb7a Checks for compression levels + tests 2022-06-01 20:26:59 +07:00
grossmj
2535e5508d Remove Qemu binary requirement 2022-04-19 18:21:39 +07:00
grossmj
3106c8a6a2 Do not cache to md5sum file in some situations 2022-04-18 17:13:52 +07:00
grossmj
e50bed5bee Support delete Qemu disk image from API
Return the real disk image name in the 'hdx_disk_image_backed' property for Qemu VMs
2022-04-14 17:01:54 +07:00
grossmj
fda2a37b98 Handle creating Qemu disk images and resizing 2022-04-07 16:21:47 +08:00
grossmj
888c773dc0 Finish to clean up local setting usage. Ref #1460 2022-03-31 12:05:47 +08:00
grossmj
900d4f79ee "Local" command line parameter is only for stopping
a server that has been started by the desktop GUI
2022-03-30 18:38:34 +08:00
grossmj
9b39bfb845 Detect image type instead of requesting it from user 2022-03-20 16:20:17 +10:00
grossmj
74c675d5b0 Drop Windows support 2022-01-19 22:28:36 +10:30
grossmj
10fdd8fcf4 Add connect endpoint for computes
Param to connect to compute after creation
Report compute unauthorized HTTP errors to client
2021-12-24 13:05:39 +10:30
grossmj
87c1df1639 Fix compute Docker test. Fixes #2003 2021-12-15 13:30:38 +10:30
grossmj
16fcf6141e Fix tests 2021-12-08 00:43:54 +10:30
grossmj
af9860f965 Fix compute Docker test 2021-12-02 22:15:23 +10:30
grossmj
5797de8f2d Fix tests 2021-12-02 19:14:55 +10:30
grossmj
38388f7ae5 Secure controller to compute communication using HTTP basic authentication 2021-11-18 18:37:10 +10:30
grossmj
717a400a11 Fix tests 2021-11-01 17:05:27 +10:30
grossmj
442a23836e Fix version output test 2021-10-21 21:48:53 +10:30
grossmj
bb15b13a9d Return the current controller hostname/IP from any compute 2021-10-21 21:38:36 +10:30
Jeremy Grossmann
16ac9358df
Merge pull request #1986 from GNS3/remove-qemu-legacy-networking
Remove Qemu legacy networking support
2021-10-20 15:44:31 +10:30
grossmj
eab4c8c770 Remove Qemu legacy networking support 2021-10-19 15:32:27 +10:30
grossmj
a31e5615a4 Add a custom version to an appliance 2021-10-19 15:15:10 +10:30
grossmj
88d98cf02e Fix tests and workaround issue with flake8 2021-10-18 22:12:10 +10:30
grossmj
13ff7df9fa Validate appliance files with Pydantic 2021-10-18 21:46:50 +10:30
grossmj
04934691df Appliance management refactoring:
* Install an appliance based on selected version
* Each template have unique name and version
* Allow to download an appliance file
2021-10-18 18:04:30 +10:30
Jeremy Grossmann
9ac6bd1e59
Merge pull request #1908 from GNS3/busybox-docker
Use a stock BusyBox for the Docker Integration
2021-10-16 19:47:24 +10:30
grossmj
d8bceaad5d Merge branch '3.0' into image-management-refactoring
# Conflicts:
#	gns3server/api/routes/controller/permissions.py
2021-09-20 17:06:46 +09:30
grossmj
c8ed96d91b Add isolate and unisolate endpoints. Ref https://github.com/GNS3/gns3-gui/issues/3190 2021-09-15 18:04:43 +09:30
grossmj
43ca53a089 Fix tests 2021-09-09 16:54:16 +09:30
grossmj
a324459152 Merge branch '2.2' into 3.0
# Conflicts:
#	gns3server/compute/qemu/qemu_vm.py
#	gns3server/handlers/api/compute/server_handler.py
#	gns3server/utils/path.py
#	gns3server/version.py
#	requirements.txt
#	tests/compute/qemu/test_qemu_vm.py
#	tests/compute/test_manager.py
2021-09-09 16:36:17 +09:30
grossmj
611570a863 Fix qemu-img rebase code to support Qemu 6.1. Ref https://github.com/GNS3/gns3-server/pull/1962 2021-09-05 22:18:46 +09:30
grossmj
ed336da304 Qemu 6.1 support
Handle the deprecated use of backing file without explicit backing format issue.
2021-09-05 18:34:37 +09:30
grossmj
4eb8491cfa Fix tests. Fixes #1950 2021-09-01 19:31:37 +09:30
grossmj
d606553e20 Allow images to be stored in subdirs and used by templates. 2021-08-30 16:53:41 +09:30
grossmj
75bb06563a Fix tests 2021-08-30 13:04:24 +09:30
grossmj
332fa47b50 Option to prune images when deleting template. 2021-08-23 10:27:10 +09:30
grossmj
bf9a3aee20 Associate images when creating or updating a template. 2021-08-22 15:16:02 +09:30
grossmj
4d9e4e1059 Add prune images endpoint.
Use many-to-many relationship between images and templates.
2021-08-20 15:58:41 +09:30
grossmj
07d4892faf Check if user has the right to add a permission 2021-08-19 14:47:48 +09:30
grossmj
4c6135fe88 Add /permissions/prune to delete orphaned permissions 2021-08-17 21:55:59 +09:30
grossmj
9df586d5d5 Check a permission matches an existing route before it is allowed to be created. 2021-08-17 16:14:15 +09:30
grossmj
cfaafedb09 Merge branch '3.0' into busybox-docker 2021-08-11 18:36:30 +09:30
Jeremy Grossmann
f13b4e89b7
Merge branch '3.0' into image-management-refactoring 2021-08-10 05:46:22 -07:00
grossmj
36b9f8bdfd Fix tests 2021-08-10 15:58:13 +09:30
grossmj
6dd0f4d4d3 Allow logged in user to change some of its data. Administrators can lock users using the is_active field. 2021-08-09 16:36:18 +09:30
grossmj
6ec028ea4e Merge branch '2.2' into 3.0
# Conflicts:
#	gns3server/compute/builtin/nodes/cloud.py
#	gns3server/compute/vmware/vmware_vm.py
#	gns3server/controller/link.py
#	gns3server/controller/snapshot.py
#	gns3server/handlers/api/compute/dynamips_vm_handler.py
#	gns3server/handlers/api/compute/iou_handler.py
#	gns3server/handlers/api/compute/qemu_handler.py
#	gns3server/handlers/api/controller/link_handler.py
#	gns3server/schemas/link.py
#	gns3server/utils/path.py
#	gns3server/version.py
#	requirements.txt
2021-06-12 14:36:32 +09:30
grossmj
d556c08def Revert "Skip test"
This reverts commit 8acb2fe3
2021-06-08 12:27:20 +09:30
grossmj
8acb2fe37e Skip test 2021-06-08 12:18:27 +09:30
grossmj
095a022033 Fix tests. Ref https://github.com/GNS3/gns3-gui/issues/2461 2021-06-07 14:23:52 +09:30
grossmj
515bd50261 Start refactoring for images management 2021-06-06 16:52:47 +09:30
grossmj
dc914eb0f9 Fix tests. 2021-06-03 19:11:11 +09:30
grossmj
4e33d29af8 Change RBAC field names from builtin to is_builtin 2021-06-03 16:24:38 +09:30
grossmj
d65b49acaa Add user permissions + RBAC tests. 2021-06-03 15:40:12 +09:30
grossmj
fbc47598d9 Basic functional RBAC support. 2021-05-27 17:28:44 +09:30
grossmj
6d4da98b8e Base API and tables for RBAC support. 2021-05-25 18:34:59 +09:30
grossmj
2bf16f1e5f Change method to prevent forbidden directory traversal. Ref #1894 2021-05-16 14:29:56 +09:30
grossmj
f3d81fa450 Clean files and catch file path escape. Ref #1894 2021-05-15 22:35:44 +09:30
grossmj
09ac7fd7fb Merge branch '2.2' into 3.0
# Conflicts:
#	gns3server/compute/base_manager.py
#	gns3server/handlers/api/compute/dynamips_vm_handler.py
#	gns3server/handlers/api/compute/iou_handler.py
#	gns3server/handlers/api/compute/project_handler.py
#	gns3server/handlers/api/compute/qemu_handler.py
#	gns3server/handlers/api/controller/node_handler.py
#	gns3server/handlers/api/controller/project_handler.py
#	gns3server/handlers/index_handler.py
#	tests/handlers/api/compute/test_project.py
#	tests/handlers/api/compute/test_qemu.py
#	tests/handlers/api/controller/test_node.py
#	tests/handlers/api/controller/test_project.py
2021-05-15 20:46:34 +09:30
grossmj
9a6978902d Fix tests. 2021-05-15 19:43:36 +09:30
grossmj
8810249d36 Add user groups support. 2021-05-15 15:10:02 +09:30
grossmj
956b9056c1 Fix issues with latest version of sqlalchemy 2021-05-08 15:37:51 +09:30
grossmj
10164e262d Enable SQL foreign key support for SQLite 2021-05-06 17:21:45 +09:30
grossmj
ad7d8e2e7d Fix tests. 2021-04-28 15:56:11 +09:30
grossmj
a02aede1b0 Use uuid5 to create new compute_id. Fixes #1641 #1887 2021-04-21 13:47:32 +09:30
grossmj
0465cb87f6 Protect the API and add alternative authentication endpoint. 2021-04-20 11:59:02 +09:30
grossmj
e28452f09a Secure users API and handle manual password recovery. 2021-04-19 09:40:04 +09:30
grossmj
c03226e368 Add default super admin account in controller db. 2021-04-18 17:39:47 +09:30
grossmj
cefab8d362 Rename __json__() to asdict() 2021-04-17 23:34:28 +09:30
grossmj
6b8ce8219c Fix tests. 2021-04-15 18:30:22 +09:30
grossmj
9c850e0f2b Move schemas between compute and controller subpackages 2021-04-15 18:12:08 +09:30
grossmj
c59fc375f2 Remove traceng code. 2021-04-13 19:03:23 +09:30
grossmj
71725aade6 Rename ssl and auth configuration file settings.
Add enable SSL config validator.
Strict configuration file validation: any error will prevent the server to start.
Core server logic moved to a Server class.
2021-04-12 23:26:42 +09:30
grossmj
1b5a5de4bc Generate new config for each test. Fixes tests. 2021-04-12 19:37:59 +09:30
grossmj
30ebae207f Use Pydantic to validate the server config file. 2021-04-12 17:02:23 +09:30
grossmj
478119b40d Comment out problematic test 2021-04-10 13:13:28 +09:30
grossmj
802959f9ab Merge branch 'master' into 3.0
# Conflicts:
#	dev-requirements.txt
#	gns3server/controller/__init__.py
#	gns3server/controller/appliance_manager.py
#	gns3server/controller/compute.py
#	gns3server/controller/topology.py
#	gns3server/handlers/api/compute/ethernet_switch_handler.py
#	gns3server/handlers/api/controller/link_handler.py
#	gns3server/handlers/api/controller/symbol_handler.py
#	gns3server/version.py
#	requirements.txt
#	tests/controller/test_export_project.py
#	tests/handlers/api/compute/test_qemu.py
#	tests/web/test_response.py
#	win-requirements.txt
2021-04-10 12:46:40 +09:30
grossmj
87a26d5da0 Fix tests and comment problematic ones that rely on AsyncioMagicMock 2021-04-09 11:57:29 +09:30
grossmj
170e83e589 Fix tests and update requirements 2021-04-05 17:43:35 +09:30
grossmj
5217dbf3a3 Fix tests 2021-04-05 14:39:50 +09:30
grossmj
566e326b57 Save computes to database 2021-04-05 14:21:41 +09:30
grossmj
91920e5a5b Fix issue with tests + some cleaning. 2021-03-31 09:58:52 +10:30
grossmj
0fea3f969e Use aiosqlite and add service for templates 2021-03-28 21:17:29 +10:30
grossmj
d730c591b3 Refactor template management to use database. 2021-03-28 11:15:08 +10:30
grossmj
7542b28793 Revert "Fix tests"
This reverts commit 4d0cb32b
2021-03-24 13:05:50 +10:30
grossmj
4d0cb32bd0 Fix tests 2021-03-24 12:39:22 +10:30
grossmj
58c1b01439 Add default JWT secret key and fix tests. 2020-12-18 16:51:54 +10:30
grossmj
bde706d19a Generate JWT secret key if none is configured in the config file.
Change location of the database.
2020-12-16 18:24:21 +10:30
grossmj
509e762cda Fix slow tests. 2020-12-07 18:53:40 +10:30
grossmj
d47dcb0d6f User authentication with tests. 2020-12-07 16:52:36 +10:30
grossmj
bf7cf862af Refactor tests and start work on database integration. 2020-12-02 18:39:08 +10:30
grossmj
c043830e3f Move endpoints to routes & preparations to use a database. 2020-11-19 15:21:03 +10:30
grossmj
d58407c735 Fix tests. 2020-11-13 15:32:25 +10:30
grossmj
7837081eba Fix running tests with Python 3.9 2020-11-11 17:38:06 +10:30
grossmj
acc5c7ebfa Update package versions.
Do not use Path in schemas (causes issues with empty paths).
Change how notifications are handled.
Run tests with Python 3.9
2020-11-11 17:18:41 +10:30
grossmj
7314b41d8f Fix tests. 2020-11-02 22:45:01 +10:30
grossmj
30d6f1fa2a Make Swagger Ui the default for API documentation 2020-11-02 12:47:59 +10:30
grossmj
359f9a7384 Move to version 3 of the REST API.
Rename packet capture endpoints.
2020-11-02 12:05:32 +10:30
grossmj
81439c750a Use pydantic for data validation (instead of jsonschema)
Fix/improve various pydantic shema models.
2020-10-31 15:07:12 +10:30
grossmj
13da8aa8f5 Do not automatically connect to local compute. 2020-10-22 16:47:11 +10:30
grossmj
a92c47b310 Add HTTP client to reuse the aiohttp session where needed.
Remove unnecessary aiohttp exceptions.
2020-10-22 16:19:44 +10:30
grossmj
554404e6e7 Try to run tests for Windows and macOS. 2020-10-20 10:50:46 +10:30
grossmj
0500b28aea Fix changing to ProactorEventLoop in tests. 2020-10-20 00:57:06 +10:30
grossmj
bd4bf53084 Use ProactorEventLoop with pytest-asyncio 2020-10-20 00:46:46 +10:30
grossmj
25494ca098 Fix project import to work with FastAPI. 2020-10-19 22:39:30 +10:30