YueGuobin
efe6913d69
Fix: Add exponential backoff to compute reconnection attempts
...
When a remote compute is unreachable, the controller now uses exponential
backoff for reconnection attempts: 5s, 10s, 20s, 40s, 80s, then caps at
300s (5 minutes). Previously it retried every 5 seconds indefinitely.
User-initiated operations (open project, start node) still trigger an
immediate connection attempt, so recovery is not delayed in practice.
Related: #2704
2026-05-07 11:17:55 +08:00
YueGuobin
4444da9ffa
Fix: Check compute connection status before project deletion
...
This commit addresses issue #2703 where deleting a project with nodes
on remote compute nodes would result in long waits with no feedback
if those computes were unreachable.
Changes:
1. Compute connection status updates on connection failure
- When a compute fails to connect, update connected=False and last_error
- Send compute.updated notification to UI so users can see status
- This allows Web UI to display real-time connection status
2. Project deletion checks compute status before attempting deletion
- Check all computes used by the project are connected
- If any compute is disconnected, immediately reject deletion
- Provide clear error message indicating which computes are offline
- This prevents long timeouts and gives users immediate feedback
Benefits:
- Immediate feedback instead of 120-second timeouts
- Clear error messages about which computes are disconnected
- Prevents orphaned resources on offline computes
- Improves user experience by avoiding silent waits
Related: #2703
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 00:05:10 +08:00
grossmj
0a118dc9e7
Cancel tasks if controller cannot be started
2026-02-16 19:16:06 +08:00
grossmj
0826b9c259
Fix controller not reporting an error if invalid options are passed to Qemu command line. Fixes #2517
2025-04-17 19:00:52 +07:00
grossmj
d4a9a21af9
Upgrade dependencies
2024-12-28 18:21:18 +07:00
grossmj
512407939d
Increase timeout to run compute HTTP queries. Fixes #3453
2024-12-22 22:29:56 +07:00
grossmj
ca48efa5be
Upgrade SQLAlchemy to v2.0.18 and fix async_timeout warning
2023-08-11 22:52:29 +10:00
grossmj
21049d73a5
Allow computes to be dynamically or manually allocated
2023-06-21 22:28:09 +09:30
grossmj
426c16e296
Merge branch '2.2' into 3.0
...
# Conflicts:
# .github/workflows/testing.yml
# CHANGELOG
# appveyor.yml
# dev-requirements.txt
# gns3server/controller/compute.py
# gns3server/crash_report.py
# gns3server/version.py
# gns3server/web/route.py
# pytest.ini
# requirements.txt
# tests/compute/dynamips/test_dynamips_router.py
# tests/compute/test_base_node.py
# tests/compute/vmware/test_vmware_manager.py
# tests/compute/vmware/test_vmware_vm.py
# tests/controller/gns3vm/test_virtualbox_gns3_vm.py
2022-08-30 11:53:12 +02:00
John Fleming
7277d526e3
Update compute.py
...
Remove check for open project. Without this check a remote can be rebooted and will be usable once the main server polls it again. Without this the main server would need to open a project that already uses the remote server or restart the main server's gns3 process.
2022-07-18 18:43:57 -04: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
7d49b80e6b
Add controller endpoints to get VirtualBox VMs, VMware VMs and Docker images
2022-06-07 00:38:59 +08: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
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
38388f7ae5
Secure controller to compute communication using HTTP basic authentication
2021-11-18 18:37:10 +10:30
grossmj
8810249d36
Add user groups support.
2021-05-15 15:10:02 +09:30
grossmj
cefab8d362
Rename __json__() to asdict()
2021-04-17 23:34:28 +09:30
grossmj
bad3ef7003
Detect the app is exiting and avoid reconnecting to computes.
2021-04-17 18:33:20 +09:30
grossmj
c021e21309
Use black with -l 120 param.
2021-04-13 18:46:50 +09:30
grossmj
f928738bd5
Use pyupgrade with --py36-plus param.
2021-04-13 18:37:58 +09:30
grossmj
6b0d0de1bc
Wait for local compute to be started.
...
Don't reconnect to local compute when server is being stopped.
2021-04-13 15:41:59 +09:30
grossmj
30ebae207f
Use Pydantic to validate the server config file.
2021-04-12 17:02:23 +09:30
grossmj
360a819e91
Set PyQt5 version to 5.15.2 on Windows
2021-04-06 22:12:34 +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
a5d89b428a
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/controller/__init__.py
# gns3server/controller/compute.py
# gns3server/schemas/gns3vm.py
# gns3server/utils/application_id.py
# gns3server/version.py
# gns3server/web/web_server.py
2020-11-05 17:15:25 +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
b6a021dabd
Fix SSL support for controller and local compute. Fixes #1826
2020-10-27 23:25:19 +10:30
grossmj
80d14a98fb
Some cleaning in compute.py
2020-10-23 19:42:21 +10:30
grossmj
087bbd1a0b
Fix tests.
2020-10-22 20:37:34 +10:30
grossmj
a08ddce033
Revert compute.py
2020-10-22 20:05:37 +10:30
grossmj
97a91f1899
Overwrite uvicorn loggers.
2020-10-22 19:56:53 +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
eb3cb8a41f
Migration to FastAPI
2020-10-02 16:07:50 +09:30
grossmj
3dc4ea46d6
Add total RAM, CPUs and disk size to servers summary as well as disk usage in percent. Fixes https://github.com/GNS3/gns3-server/issues/1532
2020-07-19 14:16:07 +09:30
grossmj
62130c116a
Fix crash when project sets 'auto_open' option and a remote GNS3 VM is used. Fixes https://github.com/GNS3/gns3-gui/issues/3014
2020-07-09 20:13:21 +09:30
grossmj
a796f1e42e
Possible fix for problem connecting to the GNS3 VM. Ref https://github.com/GNS3/gns3-gui/issues/2969 #1760
2020-06-01 19:40:53 +09:30
grossmj
b24bb42a66
Allow controller to reconnect to compute if communication is lost. Ref #1634
2020-03-19 18:02:01 +10:30
grossmj
e962717448
Fix bug when GNS3 VM were not saved. Fix tests.
2019-04-14 17:42:20 +07:00
grossmj
6dc58b28fd
Some adjustments with compute WebSocket handling. Ref https://github.com/GNS3/gns3-server/issues/1564
2019-04-14 16:48:12 +07:00
grossmj
dde01317e0
Fix packet filter not working for Ethernet switch and Ethernet hub. Fixes https://github.com/GNS3/gns3-gui/issues/2754
2019-04-02 01:12:06 +07:00
grossmj
03401a477e
Fix issue when images are not uploaded from appliance wizard. Ref https://github.com/GNS3/gns3-gui/issues/2738
2019-03-18 15:33:37 +07:00
grossmj
3a73d01547
Fix exception when emitting event from controller. Ref https://github.com/GNS3/gns3-gui/issues/2737
2019-03-15 13:14:55 +07:00
grossmj
af80b0bb6e
Use aiofiles where relevant.
2019-03-06 23:00:01 +07:00
grossmj
7fe8f7e716
Fix long-polling request for project notifications.
2019-02-23 21:08:52 +07:00
grossmj
f76b329cba
Fix ConnectionResetError issues and switch to aiohttp version 3.4.4. Fixes #1474 .
2018-12-03 19:14:22 +08:00