Cristi
83558d4d9f
Enhancement: Re-write current Telnet server implementation using telnetlib3 library
2026-03-24 13:23:45 +02:00
YueGuobin
ce90b2b92c
fix(docker): handle container name conflict automatically
...
When a Docker container with the same name already exists (e.g., from a
previous crashed GNS3 session), Docker returns a 409 Conflict error
when trying to create a new container with that name. This causes the
project open operation to fail.
This fix adds automatic cleanup of stale containers when encountering
a name conflict:
- Added DockerHttp409Error exception class
- Updated http_query to detect 409 status codes
- Modified create() to remove conflicting containers and retry
Fixes the issue where opening a project fails with:
"Docker has returned an error: 409 Conflict. The container name
'/GNS3.xxx' is already in use by container 'xxx'"
2026-02-27 23:35:11 +08:00
grossmj
c5b9f379fe
Merge remote-tracking branch 'origin/2.2' into 3.0
...
# Conflicts:
# Dockerfile
# dev-requirements.txt
# gns3server/compute/qemu/qemu_vm.py
# gns3server/version.py
# requirements.txt
2026-02-20 16:28:53 +08:00
Dale Arbogast
3dd4184193
fix: busybox static link detection on Alpine/musl
...
On musl-based systems (Alpine), ldd returns exit code 0 for static
binaries, unlike glibc which returns 1. This causes install_busybox()
to reject all busybox binaries as "dynamically linked" on Alpine.
Fix by also accepting binaries whose executable name contains "static"
(i.e. busybox-static, busybox.static), which are the first two
candidates checked by the function. The generic "busybox" fallback
still relies on the ldd return code check.
2026-02-19 16:44:01 -05:00
grossmj
69a695c9e6
Merge branch '2.2' into 3.0
...
# Conflicts:
# dev-requirements.txt
# gns3server/appliances/infix.gns3a
# gns3server/crash_report.py
# gns3server/run.py
# gns3server/utils/asyncio/__init__.py
# gns3server/version.py
# requirements.txt
# setup.py
2026-01-24 19:27:39 +08:00
grossmj
58d1e8f0c5
Set default location of udhcpc in "/etc/network/udhcpc". Fixes #2582
2026-01-17 18:01:42 +08:00
grossmj
60c10e7ecc
Merge remote-tracking branch 'origin/2.2' into 3.0
...
# Conflicts:
# .github/workflows/testing.yml
# CHANGELOG
# README.md
# gns3server/appliances/infix.gns3a
# gns3server/compute/docker/__init__.py
# gns3server/compute/docker/docker_vm.py
# gns3server/crash_report.py
# gns3server/version.py
# gns3server/web/web_server.py
# setup.py
# tests/controller/test_project.py
2025-11-29 11:42:02 +10:00
grossmj
f2aaf5ab38
Docker API version requirements and process to handle older daemons
2025-11-17 22:26:18 +10:00
grossmj
3a24318694
Use docker_name property when creating a container
2025-11-17 11:11:11 +10:00
grossmj
bae6221991
Set name of container in Docker
2025-11-17 10:59:05 +10:00
Thomas Schmidt
a7108e1592
use GNS3 node name as vnc Desktop name
...
Most VNC clients use the Desktop name in their window title.
Currently this defaults to user@host which means all docker vnc
connections have identical window names of e.g.
SSVNC: gns3@gns3server
This uses the node name instead.
2025-05-22 13:13:47 +02:00
grossmj
d9dcc2738d
Merge remote-tracking branch 'origin/2.2' into 3.0
...
# Conflicts:
# CHANGELOG
# Dockerfile
# README.md
# gns3server/appliances/infix.gns3a
# gns3server/compute/docker/docker_vm.py
# gns3server/compute/qemu/qemu_vm.py
# gns3server/controller/gns3vm/virtualbox_gns3_vm.py
# gns3server/crash_report.py
# gns3server/static/web-ui/index.html
# gns3server/static/web-ui/main.9bcf455e62558dedfd48.js
# gns3server/version.py
2025-04-21 20:13:31 +07:00
grossmj
ffd628902c
Fix Docker logs decoding. Ref #2522
2025-04-18 13:58:56 +07:00
grossmj
ca34053125
Add delay after starting a Docker container and adding connections in uBridge. Ref #2522
2025-04-18 13:50:20 +07:00
grossmj
d06f93e772
Fix TypeError when reading Docker container logs. Ref #2522
2025-04-18 13:47:29 +07:00
grossmj
0e8d969cd2
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/compute/docker/__init__.py
# gns3server/compute/docker/docker_vm.py
# requirements.txt
2025-04-16 17:53:44 +07:00
grossmj
0e89ff56a8
Replace "Docker hub" by "Docker repository" because it is possible to use different repositories
2025-04-16 17:42:40 +07:00
grossmj
4758431c76
Improvements for built-in disks
...
* Checksum is updated in the database for updated disks.
* It is not possible to prune them.
2025-01-02 23:10:51 +07:00
grossmj
ec9dbd20b8
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/compute/base_node.py
# gns3server/compute/docker/docker_vm.py
# gns3server/compute/qemu/qemu_vm.py
# gns3server/crash_report.py
# gns3server/version.py
2024-11-07 23:18:42 +10:00
grossmj
f3749e83ec
Catch error when cannot resize Docker container TTY.
2024-11-07 14:52:59 +10:00
grossmj
fb06eb3c0c
Remove old debug message
2024-10-31 13:07:09 +10:00
grossmj
c4fcb43e78
Merge branch '2.2' into 3.0
...
# Conflicts:
# .github/workflows/testing.yml
# CHANGELOG
# README.md
# dev-requirements.txt
# gns3server/compute/docker/docker_vm.py
# gns3server/controller/export_project.py
# gns3server/controller/import_project.py
# gns3server/controller/project.py
# gns3server/crash_report.py
# gns3server/static/web-ui/index.html
# gns3server/static/web-ui/main.df8c319a3da6fb0e3629.js
# gns3server/version.py
# requirements.txt
# setup.py
# tests/compute/docker/test_docker_vm.py
# tests/controller/test_import_project.py
2024-10-31 12:54:35 +10:00
grossmj
48b7e6ca50
Fix run Docker containers with user namespaces enabled. Fixes #2414
2024-10-26 19:03:05 +10:00
grossmj
6e66b26b88
Fix errors in init.sh. Fixes #2431
2024-10-22 12:18:28 +10:00
grossmj
8af71ee291
Formatting
2024-10-01 17:35:11 +07:00
grossmj
c0be6875c2
Fix issues with recent busybox versions
...
* `busybox --install` does not exist
* `sleep` does not take float values (e.g. 0.5).
2024-10-01 17:31:29 +07:00
Jeremy Grossmann
af6f34b2ca
Revert "Backport auxiliary console support for Qemu, Docker and Dynamips nodes"
2024-09-23 13:10:58 +07:00
grossmj
7619080a50
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/compute/base_node.py
# gns3server/compute/docker/docker_vm.py
# gns3server/compute/dynamips/nodes/c1700.py
# gns3server/compute/dynamips/nodes/c2600.py
# gns3server/compute/dynamips/nodes/c2691.py
# gns3server/compute/dynamips/nodes/c3600.py
# gns3server/compute/dynamips/nodes/c3725.py
# gns3server/compute/dynamips/nodes/c3745.py
# gns3server/compute/dynamips/nodes/c7200.py
# gns3server/compute/dynamips/nodes/router.py
# gns3server/compute/qemu/qemu_vm.py
# gns3server/controller/node.py
# gns3server/handlers/api/compute/docker_handler.py
# gns3server/handlers/api/compute/dynamips_vm_handler.py
# gns3server/handlers/api/compute/qemu_handler.py
# gns3server/schemas/docker.py
# gns3server/schemas/docker_template.py
# gns3server/schemas/dynamips_template.py
# gns3server/schemas/dynamips_vm.py
# gns3server/schemas/node.py
# gns3server/schemas/qemu.py
# gns3server/schemas/qemu_template.py
2024-09-22 22:01:06 +07:00
grossmj
c41c11eb34
Backport auxiliary console support for Qemu, Docker and Dynamips nodes
2024-09-22 18:29:04 +07:00
grossmj
22f022cc22
Fix for running Docker containers with user namespaces enabled
2024-09-19 10:40:22 +07:00
grossmj
a1666dd247
Fix MAC address support for Docker containers
2024-09-18 18:02:35 +07:00
grossmj
3214f52e9e
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/compute/docker/docker_vm.py
# gns3server/handlers/api/compute/docker_handler.py
# gns3server/schemas/docker.py
# gns3server/schemas/docker_template.py
# tests/compute/docker/test_docker_vm.py
2024-09-18 17:29:06 +07:00
grossmj
3792901dc7
Support for configuring MAC address in Docker containers
2024-09-18 16:30:22 +07:00
grossmj
3f7f5a3cda
Fix to access resources_path and install_builtin_appliances settings
2024-07-09 12:28:39 +02:00
grossmj
59ad5c55ec
Merge branch '2.2' into 3.0
...
# Conflicts:
# CHANGELOG
# gns3server/config_samples/gns3_server.conf
# gns3server/controller/__init__.py
# gns3server/crash_report.py
# gns3server/static/web-ui/index.html
# gns3server/static/web-ui/main.b65e52314df938ebe652.js
# gns3server/version.py
2024-07-09 12:14:44 +02:00
grossmj
ca1d99b112
Add 'install_builtin_appliances' and 'resources_path' settings in the server config
2024-07-08 18:06:33 +02:00
grossmj
d3860ba84b
Merge branch '2.2' into 3.0
...
# Conflicts:
# CHANGELOG
# dev-requirements.txt
# gns3server/compute/qemu/__init__.py
# gns3server/compute/vmware/__init__.py
# gns3server/controller/snapshot.py
# gns3server/crash_report.py
# gns3server/handlers/api/compute/atm_switch_handler.py
# gns3server/run.py
# gns3server/static/web-ui/26.77d4bfd104f37c42e028.js
# gns3server/static/web-ui/index.html
# gns3server/static/web-ui/runtime.415291667f70565cd8ef.js
# gns3server/utils/__init__.py
# gns3server/utils/images.py
# gns3server/utils/interfaces.py
# gns3server/version.py
# gns3server/web/web_server.py
# pytest.ini
# requirements.txt
# scripts/update-bundled-web-ui.sh
# setup.py
# tests/api/routes/compute/test_dynamips_nodes.py
# tests/compute/builtin/nodes/test_cloud.py
# tests/compute/docker/test_docker.py
# tests/compute/docker/test_docker_vm.py
# tests/compute/dynamips/test_dynamips_manager.py
# tests/compute/dynamips/test_dynamips_router.py
# tests/compute/iou/test_iou_vm.py
# tests/compute/qemu/test_qcow2.py
# tests/compute/qemu/test_qemu_manager.py
# tests/compute/qemu/test_qemu_vm.py
# tests/compute/test_base_node.py
# tests/compute/test_manager.py
# tests/compute/test_project.py
# tests/compute/traceng/test_traceng_vm.py
# tests/compute/virtualbox/test_virtualbox_manager.py
# tests/compute/virtualbox/test_virtualbox_vm.py
# tests/compute/vmware/test_vmware_manager.py
# tests/compute/vmware/test_vmware_vm.py
# tests/compute/vpcs/test_vpcs_vm.py
# tests/conftest.py
# tests/controller/gns3vm/test_remote_gns3_vm.py
# tests/controller/gns3vm/test_virtualbox_gns3_vm.py
# tests/controller/gns3vm/test_vmware_gns3_vm.py
# tests/controller/test_export_project.py
# tests/controller/test_gns3vm.py
# tests/controller/test_import_project.py
# tests/test_config.py
# tests/utils/test_asyncio.py
# tests/utils/test_images.py
# tests/web/test_response.py
2024-05-16 17:53:39 +07:00
grossmj
448b94f701
Add more details to error message when busybox is not installed. Fixes https://github.com/GNS3/gns3-gui/issues/3569
2024-04-23 17:54:06 +07:00
grossmj
5b1ba5a57c
Fix cannot stop Docker VM while console connection is still active.
2024-04-04 22:57:33 +07:00
grossmj
bc1a8c99d1
Fix cannot stop Docker VM while console connection is still active.
2024-04-04 22:17:21 +07:00
grossmj
998898a471
Fix CPU fractional values for Docker VMs.
2024-04-03 17:15:10 +07:00
grossmj
800920e3df
Merge branch '2.2' into 3.0
...
# Conflicts:
# .github/workflows/testing.yml
# gns3server/compute/docker/__init__.py
# gns3server/compute/docker/docker_vm.py
# gns3server/run.py
# requirements.txt
# setup.py
# tests/compute/docker/test_docker_vm.py
2024-02-21 12:24:30 +08:00
grossmj
1a53c9aabf
Backport from v3: install Docker resources in a writable location at runtime.
2024-02-14 16:13:45 +08:00
grossmj
1f5085608c
Use Docker API v1.24 to get version.
2024-02-14 15:40:19 +08:00
grossmj
09ff807055
Install Docker resources in writable location
2023-11-13 11:23:26 +10:00
grossmj
c11b3c3911
Fix tests after merge
2023-09-06 23:42:50 +07:00
grossmj
1ec056c1a6
Merge branch '2.2' into 3.0
...
# Conflicts:
# gns3server/compute/docker/docker_vm.py
# gns3server/controller/__init__.py
# gns3server/controller/appliance_manager.py
# gns3server/web/route.py
# requirements.txt
# tests/compute/docker/test_docker_vm.py
2023-09-06 23:30:00 +07:00
grossmj
d6e1ee5dbb
Prevent X11 socket file to be modified by Docker container
2023-08-27 18:30:37 +10:00
grossmj
f3b6825e40
Test if busybox is not dynamically linked
2023-08-11 14:10:25 +10:00
grossmj
1cb433c5bc
New packaging relying only pyproject.toml
2023-08-10 22:44:37 +10:00