The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM

Overview

GNS3-server

This is the GNS3 server repository.

The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM. Clients like the GNS3 GUI and the GNS3 Web UI control the server using a HTTP REST API.

Software dependencies

In addition of Python dependencies listed in a section below, other software may be required, recommended or optional.

  • uBridge is required, it interconnects the nodes.
  • Dynamips is required for running IOS routers (using real IOS images) as well as the internal switches and hubs.
  • VPCS is recommended, it is a builtin node simulating a very simple computer to perform connectitivy tests using ping, traceroute etc.
  • Qemu is strongly recommended on Linux, as most node types are based on Qemu, for example Cisco IOSv and Arista vEOS.
  • libvirt is recommended (Linux only), as it's needed for the NAT cloud.
  • Docker is optional (Linux only), some nodes are based on Docker.
  • mtools is recommended to support data transfer to/from QEMU VMs using virtual disks.
  • i386-libraries of libc and libcrypto are optional (Linux only), they are only needed to run IOU based nodes.

Branches

master

master is the next stable release, you can test it in your day to day activities. Bug fixes or small improvements pull requests go here.

2.x (2.3 for example)

Next major release

Never use this branch for production. Pull requests for major new features go here.

Linux

GNS3 is perhaps packaged for your distribution:

Linux (Debian based)

The following instructions have been tested with Ubuntu and Mint. You must be connected to the Internet in order to install the dependencies.

Dependencies:

  • Python 3.6, setuptools and the ones listed here

The following commands will install some of these dependencies:

sudo apt-get install python3-setuptools

Finally these commands will install the server as well as the rest of the dependencies:

cd gns3-server-master
sudo python3 setup.py install
gns3server

To run tests use:

py.test -v

Docker container

For development you can run the GNS3 server in a container

bash scripts/docker_dev_server.sh

Run as daemon (Unix only)

You will find init sample scripts for various systems inside the init directory.

Usefull options:

  • --daemon: start process as a daemon
  • --log logfile: store output in a logfile
  • --pid pidfile: store the pid of the running process in a file and prevent double execution

All init scripts require the creation of a GNS3 user. You can change it to another user.

sudo adduser gns3

upstart

For ubuntu < 15.04

You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf

sudo chown root /etc/init/gns3.conf
sudo service gns3 start

systemd

You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service

sudo chown root /lib/systemd/system/gns3.service
sudo systemctl start gns3

Windows

Please use our all-in-one installer to install the stable build.

If you install via source you need to first install:

Then you can call

python setup.py install

to install the remaining dependencies.

To run the tests, you also need to call

pip install pytest pytest-capturelog

before actually running the tests with

python setup.py test

or with

py.test -v

Mac OS X

Please use our DMG package for a simple installation.

If you want to test the current git version or contribute to the project, you can follow these instructions with virtualenwrapper: http://virtualenvwrapper.readthedocs.org/ and homebrew: http://brew.sh/.

brew install python3
mkvirtualenv gns3-server --python=/usr/local/bin/python3.5
python3 setup.py install
gns3server

SSL

If you want enable SSL support on GNS3 you can generate a self signed certificate:

bash gns3server/cert_utils/create_cert.sh

This command will put the files in ~/.config/GNS3/ssl

After you can start the server in SSL mode with:

python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl

Or in your gns3_server.conf by adding in the Server section:

[Server]
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
certkey=/Users/noplay/.config/GNS3/ssl/server.key
ssl=True

Running tests

Just run:

py.test -vv

If you want test coverage:

py.test --cov-report term-missing --cov=gns3server

Security issues

Please contact us using contact form available here: http://docs.gns3.com/1ON9JBXSeR7Nt2-Qum2o3ZX0GU86BZwlmNSUgvmqNWGY/index.html

Comments
  • After upgrade to v2.1.3 'Unable to create UDP NIO' when trying to open previous projects

    After upgrade to v2.1.3 'Unable to create UDP NIO' when trying to open previous projects

    From gns3 community forum: https://gns3.com/qa/-unable-to-create-udp-nio-when-t

    Found an similar issue here that was solved then: https://github.com/GNS3/gns3-server/issues/825


    Hi GNS3 team, right now i have a problem with GNS3 2.1.3

    before i update the GNS3, i was on 2.1.1 version, and it worked perfectly.

    Today i updated it to 2.1.3 version, and after that, i cannot open any of my previous projects.

    when i try to open a previous project, a message appear.

    2018-01-24 21:08:19 CRITICAL topology.py:222 Dynamips error when running command 'nio create_udp udp-1e8bae55-4645-420c-b8b4-0ad5d9b2a429 10001 127.0.0.1 10000 ': unable to create UDP NIO PORT=5900 2018-01-24 21:09:34 CRITICAL topology.py:222 Dynamips error when running command 'nio create_udp udp-687795f3-9760-4a9c-bc43-5801f1ddf358 10001 127.0.0.1 10000 ': unable to create UDP NIO

    image

    tried to change the UDP tunneling port range minimum to 10001 but still no result.

    the UDP tunneling port range is in default number, min 10000 and max 20000

    btw, i am using Linux Mint 18.3 sylvia

    can you guys help me solve the problem?

    thanks before.

    opened by AJNOURI 42
  • No data returned from 127.0.0.1:51477, uBridge process running: True

    No data returned from 127.0.0.1:51477, uBridge process running: True

    From GNS3 community forum: https://gns3.com/discussions/ubridge-process-running-true


    Hi Opening GNS3'project (2.1.0, Win10 x64) after one month i see suddenly this stupid error:

    No data returned from 127.0.0.1:51477, uBridge process running: True

    What is that ? I'm not able to open my project because of that.


    Noticed prior tickets with the same errors: https://github.com/GNS3/gns3-server/issues/275 https://github.com/GNS3/gns3-server/issues/976

    Bug 
    opened by AJNOURI 40
  • QEMU connection to cloud broken

    QEMU connection to cloud broken

    GNS3 V1.3.1, OS: linux debian jessie, Mac OS X 10.9.5

    GNS3 allows the connection of a NIO ethernet cloud interface to a qemu instance. But qemu doesn't have that ability. GNS3 instead creates a user networking connection (-netdev user), what has nothing to do with the intended connection. So please remove this, it's irritating.

    [Added: Furthermore] GNS3 disallows the NIO TAP connection, but according to the documentation a -netdev tap is possible with qemu. So in future releases this connection type can be supported.

    Enhancement 
    opened by ghost 40
  • How do I troubleshoot a node that does not accept console connections?

    How do I troubleshoot a node that does not accept console connections?

    From time to time some of my nodes do not accept console connections anymore. The only solution I was able to find is to restart the node which is time consuming if you use some of the newer Cisco appliances that require a lot of memory and CPU

    If you try to connect from an adjacent node in the topology that has IP connectivity to that node that works ...so the node is not dead is it just the console connection that is gone

    opened by 1001QAdotNET 32
  • MSR 0xe1 to 0x0 / `ret == cpu->kvm_msr_buf->nmsrs' failed.

    MSR 0xe1 to 0x0 / `ret == cpu->kvm_msr_buf->nmsrs' failed.

    Hey guys,

    since i moved from bare-metal server to VM i get an error when i try to start a qemu-vm (IOU just fine).


    **=> QEMU process has stopped, return code: -6 Start QEMU with /usr/local/bin/qemu-system-x86_64 -name vsr-1 -m 1024M -smp cpus=1 -enable-kvm -machine smm=off -boot order=c -drive file=....

    Execution log: qemu-system-x86_64: error: failed to set MSR 0xe1 to 0x0 qemu-system-x86_64: /root/qemu/target/i386/kvm.c:2659: kvm_buf_set_msrs: Assertion `ret == cpu->kvm_msr_buf->nmsrs' failed.**


    gns3-error

    • my System is Ubuntu 20.04 LTS (Ryzen 9 - 3950X) running in a VM (ESXi 7.0)
    • I tried it with qemu 4.2.0 and 5.0.50

    gns3-vm-settings

    I read already many things about that (often in connection mit older qemu versions) but no solution so far.. :-(

    Should i open a qemu bug report?

    opened by fre4ki 31
  • telnet console randomly stops responding

    telnet console randomly stops responding

    Telnet console randomly stops responding requiring a reboot of the device to get it to respond. Networking between devices seems to still work when this happens however and I can even telnet or ssh into the device whose console no longer works. Below is log output. I am running Ubuntu 18.04 x86_64 with 32GB of ram.

    2018-05-20 13:55:07 ERROR base_events.py:1266 Fatal read error on socket transport protocol: <asyncio.streams.StreamReaderProtocol object at 0x7f08c580a4e0> transport: <_SelectorSocketTransport fd=43 read=polling write=<polling, bufsize=2493>> Traceback (most recent call last): File "/usr/lib/python3.6/asyncio/selector_events.py", line 723, in _read_ready data = self._sock.recv(self.max_size) TimeoutError: [Errno 110] Connection timed out 2018-05-20 13:55:07 ERROR base_events.py:1266 Fatal read error on socket transport protocol: <asyncio.streams.StreamReaderProtocol object at 0x7f08c695b6a0> transport: <_SelectorSocketTransport fd=48 read=polling write=<polling, bufsize=2493>> Traceback (most recent call last): File "/usr/lib/python3.6/asyncio/selector_events.py", line 723, in _read_ready data = self._sock.recv(self.max_size) TimeoutError: [Errno 110] Connection timed out 2018-05-20 13:55:07 ERROR base_events.py:1266 Task exception was never retrieved future: <Task finished coro=<AsyncioTelnetServer.run() done, defined at /usr/share/gns3/gns3-server/lib/python3.6/site-packages/gns3server/utils/asyncio/telnet_server.py:188> exception=TimeoutError(110, 'Connection timed out')> Traceback (most recent call last): File "/usr/share/gns3/gns3-server/lib/python3.6/site-packages/gns3server/utils/asyncio/telnet_server.py", line 197, in run yield from self._process(network_reader, network_writer, connection) File "/usr/share/gns3/gns3-server/lib/python3.6/site-packages/gns3server/utils/asyncio/telnet_server.py", line 259, in _process data = coro.result() File "/usr/lib/python3.6/asyncio/streams.py", line 634, in read yield from self._wait_for_data('read') File "/usr/lib/python3.6/asyncio/streams.py", line 464, in _wait_for_data yield from self._waiter File "/usr/lib/python3.6/asyncio/selector_events.py", line 723, in _read_ready data = self._sock.recv(self.max_size) TimeoutError: [Errno 110] Connection timed out

    Bug Waiting for more information 
    opened by PatrickBostwick 31
  • 1.5: No TCP connectivity between docker container and qemu/dynamips

    1.5: No TCP connectivity between docker container and qemu/dynamips

    GNS3 version latest 1.5.0dev1 on Linux (64-bit) with Python 3.4.2 Qt 5.3.2.

    I've got a very strange issue and currently I'm completely puzzled.

    I want to exchange data between docker container and non-docker VMs, e.g. dynamips or qemu.

    I set up the following project: docker_project

    alpine-socat's Dockerfile:

    FROM alpine:3.3
    RUN apk add --update socat
    

    ubuntu-socat's Dockerfile:

    FROM ubuntu:14.04
    RUN apt-get update && \
        apt-get install -y socat && \
        apt-get clean && \
        rm -rf /var/lib/apt/lists/*
    

    Extreme simple, isn't it? I start the docker container with the cmd "sh".

    MicroCore-1 is a qemu VM, R1 a 3725 dynamips router.

    After configuring the interfaces with their IP address, I have full connectivity with ping. Every device can ping every other.

    But I can't setup a TCP connection between the docker VMs and the other network elements. I'm starting a socat TCP-LISTEN:1234 - on the docker container and then try to connect from the other devices via telnet <destination IP> 1234, but it fails (timeout). Also doing telnet from the docker containers to dynamips/qemu VM fails. Between the docker containers I have no problems, between dynamips and qemu also no problem.

    I made a wireshark trace on R1: wireshark You see that R1 sends out a SYN, which is answered by a SYN-ACK. But R1 doesn't seem to process the SYN-ACK, it re-sends the SYN. The same happens on the qemu-VM.

    Any ideas ?

    Bug 
    opened by ghost 29
  • Use a stock BusyBox for the Docker Integration

    Use a stock BusyBox for the Docker Integration

    For the Docker integration GNS3 injects its special busybox binary https://github.com/GNS3/busybox into the docker container. That gives us full control over the injected binary.

    But that has some drawbacks:

    • The binary is available only for the x86_64 architecture, it doesn't work on processors of other types. This is also the subject of issue https://github.com/GNS3/gns3-server/issues/970.
    • The binary is quite old and mainly unmaintained, it might have some security bugs.
    • Distributions prefer full source packages, they typically don't welcome binary blobs.

    For example Alpine solves this by replacing the busybox binary by their own static busybox binary for non-x86_64 architectures, see https://gitlab.alpinelinux.org/alpine/aports/-/blob/3.13-stable/community/gns3-server/APKBUILD#L28. I think some other distributions behave similar.

    I suggest to switch to "normal" busybox binaries. That could be the static busybox package, provided by the distribution. Alternatively the busybox binary can be extracted out of the official busybox docker image: docker run --rm -v "<absolute local path>:/host" -u "$(id -u):$(id -g)" busybox sh -c 'cp -L /bin/busybox /host/ && touch -r /bin/busybox /host/busybox'

    The main difficulty with this are the special options for udhcpc, that the GNS3-busybox is using, see https://github.com/GNS3/busybox/blob/gns3_build/gns3_build/README.md. I managed to apply these options also to the stock busybox by using a wrapper script for udhcpc:

    diff --git a/gns3server/compute/docker/resources/bin/udhcpc b/gns3server/compute/docker/resources/bin/udhcpc
    new file mode 100755
    index 00000000..fe1410a6
    --- /dev/null
    +++ b/gns3server/compute/docker/resources/bin/udhcpc
    @@ -0,0 +1,8 @@
    +#!/gns3/bin/busybox sh
    +
    +SCRIPT="/gns3/etc/udhcpc/default.script"
    +EXTRA=""
    +
    +[ "$(cat "/proc/$PPID/comm" 2>/dev/null)" = ifup ] && EXTRA="-t 3 -T 2 -A 1 -b"
    +
    +exec /tmp/gns3/bin/udhcpc -s "$SCRIPT" $EXTRA "$@"
    

    I made one modification: I changed the paraneter -T/--timeout from 1 to 2, but that be easily reverted.

    Enhancement 
    opened by b-ehlers 28
  • Validate the GNS3 VM network settings

    Validate the GNS3 VM network settings

    From the community forum:

    https://gns3.com/qa/gns-virtual-2-1-8-not-starting


    disabled antivirus and firewall, deleted vm image and re imported it still wont start, getting this errors:

    Cannot connect to compute 'GNS3 VM (GNS3 VM)' with request GET /qemu/capabilities

    just wont let me add an image rebooted the VM in VMware still the same issue , gns vm is greyed out

    image


    • GNS3 2.1.8
    • Windows 10
    • vmware pro workstation version 12.5.9 build-7535481
    Enhancement 
    opened by AJNOURI 28
  • VPCS and loobpack adapters not working together

    VPCS and loobpack adapters not working together

    If you connect VPCS to a loopback adapter, vpcs receive back the packet send by VPCS. This VPCS can't work because when you set an ip VPCS think another device use the same ip on the network.

    Bug 
    opened by julien-duponchelle 28
  • Cannot Start containers

    Cannot Start containers

    I recently upgraded to GNS3 2.2.32 and I am no longer able to start any containers that were working previously because of the following error exec /gns3/init.sh: no such file or directory

    I downgraded to the previous version 2.2.31 and I still getting the same error.

    Here is the log from the gns3_server.log Traceback (most recent call last): File "/usr/lib/python3.10/site-packages/gns3server/web/route.py", line 198, in control_schema await func(request, response) File "/usr/lib/python3.10/site-packages/gns3server/handlers/api/compute/docker_handler.py", line 89, in start await container.start() File "/usr/lib/python3.10/site-packages/gns3server/compute/docker/docker_vm.py", line 497, in start raise DockerError(logdata) gns3server.compute.docker.docker_error.DockerError: exec /gns3/init.sh: no such file or directory exec /gns3/init.sh: no such file or directory

    In /usr/lib/python3.10/site-packages/gns3server/compute/docker/docker_vm.py line 367 there is * params["Entrypoint"].insert(0, "/gns3/init.sh") # FIXME /gns3/init.sh is not found?*

    Does this need to be fixed in the container?

    Bug 
    opened by EarlRamirez 27
  • multiple option

    multiple option "--host", or listen IPv4 and IPv6

    Hi

    When i start gns3server (the last v2) with the command gns3server -A -L --host 172.16.10.1 --host 172.16.20.1, i believe that gns3server uses only the last "172.16.20.1"

    My real goal is to listen on both IPv4 (0.0.0.0) and IPv6 (::)

    But, if i use the command gns3server -A -L --host ::, gns3server listens only on IPv6

    opened by Raizo62 2
  • Problems with GNS3, and VirtualBox 7. Project corrupted

    Problems with GNS3, and VirtualBox 7. Project corrupted

    I upgrade Virtualbox to version 7 and I got a lot of problems. I have some MV added. it I try to open an project a got this kind of error:

    Screenshot_20221023_085950

    I tried to find a solution "differential disk" are unregistered in Virtualbox, so MV cant start. Another example:

    Working in a proyect: uuid2

    If a close the project, differential disk are missing:

    uuid

    opened by txutxifel 0
  • Error : request GET /qemu/capabilities and request GET /qemu/binaries

    Error : request GET /qemu/capabilities and request GET /qemu/binaries

    Having issue when I tried on adding new template recently. Having same issue on MAC and Windows virtual box workstation. Screenshot 2022-10-19 at 11 16 46 PM Screenshot 2022-10-19 at 11 18 47 PM

    Gns3vm and local server connection is working fine. Gns3 vm is connecting to internet. Only think I suspect, the qemu/binaries directory not found on my VM. Can anyone explain to me how its works? Thank you

    opened by CarlsonHue 3
  • Disk full condition can wipe out a project file

    Disk full condition can wipe out a project file

    This is GNS3 2.2.34 (from the GNS3 PPA) on Ubuntu 18.04.6 LTS.

    I ran out of disk space on the gns3 partition while I had one project open in the GUI. I switched to another project (hoping to delete one of the nodes there), but couldn't open the project because of the disk full condition. So I switched the GUI back to the first project.

    The .gns3, .gns3.backup, and .gns3.tmp files for the second project (that I tried to open and failed), are now all zero-length files.

    opened by BrentBaccala 1
  • VMware networking integration FAILS to work in GNS3

    VMware networking integration FAILS to work in GNS3

    Community link: https://gns3.com/community/discussions/vmware-networking-integration-fails-to-work-in-gns3

    ISSUE:

    --> GNS3 connects VMnets in order: top down / lowest to highest (whichever way of putting it makes more sense to you) REGARDLESS of which vmnet has been assigned to a VM inside Vmware Workstation.

    DETAILS:

    The issue is that

    1. on startup of a VM in a GNS3 topology, GNS3 reaches into VMware and changes the vmnet assignment to whichever the next available vmnet is.

    For example: You assign vmnet 4 to a VM in Vmware Workstation and when you spin up the VM in a GNS3 topology, GNS3 reassigns the VM's interface to the first available vmnet (starting the assignments at vmnet 2 or whichever your lowest vmnet number is).

    As you spin up more VM-s in GNS3, these will get assigned to vmnet 3, vmnet 4, vmnet 5, etc. regardless of which vmnet was originally assigned in vmware.

    Changing the vmnet BACK manually inside vmware WS to original assignment results in NO connectivity inside GNS3 between GNS3 appliances and Vmware VM-s in your desired vmnet because --> GNS3 does not notice this manual reassignment.

    (desired = the one that you originally set in Vmware WS).

    EXPECTED resolution:

    • GNS3 should leave vmnet assignments unchanged (in other words, NOT change what I have set in Vmware WS)

    Can this be done?

    Waiting for more information 
    opened by papparpi 22
Releases(v2.2.36)
  • v2.2.36(Jan 4, 2023)

    • Install web-ui v2.2.36
    • Add Trusted Platform Module (TPM) support for Qemu VMs
    • Require Dynamips 0.2.23 and bind Dynamips hypervisor on 127.0.0.1
    • Delete the built-in appliance directory before installing updated files
    • Use a stock BusyBox for the Docker integration
    • Overwrite built-in appliance files when starting a more recent version of the server
    • Fix reset console. Fixes #1619
    • Only use importlib_resources for Python <= 3.9. Fixes #2147
    • Support when the user field defined in Docker container is an ID. Fixes #2134
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0a3(Dec 27, 2022)

    • Add web-ui v3.0.0a3
    • Add config option to change the server name. Ref #2149
    • Option to disable image discovery and do not scan parent directory
    • Allow raw images by default. Fixes https://github.com/GNS3/gns3-server/issues/2097
    • Fix bug when creating Dynamips router with chassis setting
    • Stricter checks to create/update an Ethernet switch and add tests
    • Fix schema for removing WICs from Cisco routers. Fixes #3392
    • Fix issues with VMnet interface on macOS >= 11.0. Ref #3381
    • Use importlib_resources instead of pkg_resources and install built-in appliances in config dir.
    • Fix console vnc don't use configured ports in some case. Fixes #2111
    • Add missing VMware settings in gns3_server.conf
    • Make version PEP 440 compliant
    • Support for Python 3.11
    • Allow for more dependency versions at patch level
    • Replace deprecated distro.linux_distribution() call
    • Update gns3.service.systemd
    • Fix some issues with HTTP notification streams
    • gns3.service.openrc: make openrc script posix compliant
    • fix: use exact match to find interface in windows to avoid get wrong interface
    Source code(tar.gz)
    Source code(zip)
  • v2.2.35.1(Nov 10, 2022)

  • v2.2.35(Nov 8, 2022)

    • Release web-ui v2.2.35
    • Fix issues with VMnet interface on macOS >= 11.0. Ref #3381
    • Use importlib_resources instead of pkg_resources and install built-in appliances in config dir.
    • Fix console vnc don't use configured ports in some case. Fixes #2111
    • Add missing VMware settings in gns3_server.conf
    • Make version PEP 440 compliant
    • Support for Python 3.11
    • Allow for more dependency versions at patch level
    • Replace deprecated distro.linux_distribution() call
    • Update gns3.service.systemd
    • gns3.service.openrc: make openrc script posix compliant
    • fix: use exact match to find interface in windows to avoid get wrong interface
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0a2(Sep 6, 2022)

    • Add web-ui v3.0.0a2
    • Upgrade FastAPI to v0.82.0
    • API endpoint to get the locked status of a project
    • Global project lock and unlock
    • Update appliance files
    • Require name for custom adapters. Fixes #2098
    • Allow empty adapter slots for Dynamips templates. Ref https://github.com/GNS3/gns3-gui/issues/3373
    • Use original $PATH in init.sh for Docker containers. Ref #2069
    Source code(tar.gz)
    Source code(zip)
  • v2.2.34(Aug 28, 2022)

    • Use original $PATH in init.sh for Docker containers. Ref #2069
    • Support pytest-asyncio 0.19.0
    • Upgrade dev dependencies and fix issues after upgrading to pytest-aiohttp v1.0.4
    • Update compute.py to automatically reconnect to remote compute
    Source code(tar.gz)
    Source code(zip)
  • v3.0.0a1(Aug 4, 2022)

    • Bundle gns3-web-ui v3.0.0a1
    • Use default symbol theme if none is provided when loading appliances
    • Allow default symbol theme to be configured in config file
    • Optionally allow Qemu raw images
    • Ignore image detection for IOU user libraries in image directory
    • Don't show optional token param in API docs
    • Fix check for 32-bit in ELF header
    • Checks for valid hostname on server side for Dynamips, IOU, Qemu and Docker nodes
    • Only check files (not directories) when looking for new images on file system.
    • Support user defined loader/libraries to run IOU
    • Make 'vendor_url' and 'maintainer_email' optional for template validation.
    • Allow auth token to be passed as a URL param
    • HTTP middleware create issues when streaming project archive
    • Add zstandard compression support for project export
    • Make sure that the temporary image file is removed after uploading an image
    • Do not cache to md5sum file in some situations
    • Detect new images added to the default image directory. * Images can be present before the server starts or while it is running * Images are recorded in the database
    • Support delete Qemu disk image from API Return the real disk image name in the 'hdx_disk_image_backed' property for Qemu VMs
    • Handle creating Qemu disk images and resizing
    • Finish to clean up local setting usage. Ref #1460
    • "Local" command line parameter is only for stopping a server that has been started by the desktop GUI
    • Fix AsyncSession handling after breaking changes in FastAPI 0.74.0 See https://github.com/tiangolo/fastapi/releases/tag/0.74.0 for details.
    • Detect image type instead of requesting it from user
    • Drop Python 3.6 support and require Python >= 3.7
    • Drop Windows support
    • Add connect endpoint for computes Param to connect to compute after creation Report compute unauthorized HTTP errors to client
    • Replace CORS origins by origin regex
    • Change default config settings
    • Update Docker image for tests
    • Fix calls to static methods in server.py
    • Do not require the local server param to open a .gns3 file. Fixes https://github.com/GNS3/gns3-gui/issues/2421 Ref #1460
    • Do not automatically install appliance after uploading image
    • Ignore OSError when closing websocket
    • Allow empty compute_id. Ref #1657
    • Secure controller to compute communication using HTTP basic authentication
    • Secure websocket endpoints
    • Fix issue when updating a template
    • Allocate compute when compute_id is unset
    • Return the current controller hostname/IP from any compute
    • Remove Qemu legacy networking support
    • Add a custom version to an appliance
    • Appliance management refactoring: * Install an appliance based on selected version * Each template have unique name and version * Allow to download an appliance file
    • Finalize image management refactoring and auto install appliance if possible
    • Sqlite doesn't allow BigInteger to be used as an primary key with autoincrement
    • Add isolate and unisolate endpoints. Ref https://github.com/GNS3/gns3-gui/issues/3190
    • Small db tables adjustments
    • Add index for "name" field in role table
    • Allow images to be stored in subdirs and used by templates.
    • Option to prune images when deleting template.
    • Associate images when creating or updating a template.
    • Add prune images endpoint. Use many-to-many relationship between images and templates.
    • Check if user has the right to add a permission
    • Only use the necessary HTTP methods for default permissions
    • Add /permissions/prune to delete orphaned permissions
    • Check a permission matches an existing route before it is allowed to be created.
    • Remove busybox and copy system busybox in setup.py
    • Save image size + start to automatic template creation based on image checksum.
    • Upgrade dependencies
    • Fix "-machine accel=tcg" check
    • Allow logged in user to change some of its data. Administrators can lock users using the is_active field.
    • Symbols endpoints (except upload) don't require authentication.
    • Update to the udhcpc wrapper script. Ref #1890
    • Fix link style merge
    • Start refactoring for images management
    • Allow controller to be reloaded using the API. Fixes #1743
    • Use a stock BusyBox for the Docker Integration
    • Move "/{project_id}/templates/{template_id}" endpoint.
    • Add last login info for users.
    • Change RBAC field names from builtin to is_builtin
    • Add user permissions + RBAC tests.
    • Add description for user permission.
    • Save/restore appliances Etag.
    • Allow to set the initial super admin username / password in server config file. Ref #1857
    • Require authentication for get_user_memberships endpoint.
    • Change method to prevent forbidden directory traversal. Ref #1894
    • Add user groups support.
    • Add delete cascade on foreign keys for appliance table
    • Enable SQL foreign key support for SQLite
    • Add missing CORS origins.
    • Show topology path when check topology schema fails.
    • Protect controller notification endpoints. Ref #1888 (WebSocket endpoint is not secured, it takes an optional token).
    • Use uuid5 to create new compute_id. Fixes #1641 #1887
    • Protect the API and add alternative authentication endpoint.
    • Secure users API and handle manual password recovery.
    • Add default super admin account in controller db.
    • Complete type annotations for API endpoints.
    • Detect the app is exiting and avoid reconnecting to computes.
    • Move schemas between compute and controller subpackages
    • Remove traceng code.
    • Move error responses to API routers.
    • Wait for local compute to be started. Don't reconnect to local compute when server is being stopped.
    • 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.
    • Generate new config for each test. Fixes tests.
    • Use Pydantic to validate the server config file.
    • Add symbol dimensions endpoint and SSL support for packet capture with remote HTTPS server.
    • Save computes to database
    • Generate a new list in template schema defaults.
    • Generate JWT secret key if none is configured in the config file. Change location of the database.
    • User authentication with tests.
    • Refactor tests and start work on database integration.
    • Move endpoints to routes & preparations to use a database.
    • Providing the path to create a project is now deprecated.
    • Add back script to create a self-signed SSL certificate.
    • Make sure all HTTP exceptions return JSON with a "message" field instead of "detail"
    • Make Swagger Ui the default for API documentation
    • Move to version 3 of the REST API. Rename packet capture endpoints.
    • Use pydantic for data validation (instead of jsonschema) Fix/improve various pydantic schema models.
    • Automate API documentation publishing.
    • Publish API documentation generated by FastAPI.
    • Overwrite uvicorn loggers.
    • Do not automatically connect to local compute.
    • Add HTTP client to reuse the aiohttp session where needed. Remove unnecessary aiohttp exceptions.
    • Warn not to use the private compute API. Fixes #1593.
    • Migrate PCAP streaming code to work with FastAPI.
    • Refactor WebSocket console code to work with FastAPI. Fix endpoint routes.
    • Use dependencies and group common HTTP responses in endpoints.
    • Migration to FastAPI
    • Prioritize the config disk over HD-D for Qemu VMs. Fixes https://github.com/GNS3/gns3-gui/issues/3036
    • Create config disk property false by default for Qemu templates
    • Set default disk interface type to "none". Fail-safe: use "ide" if an image is set but no interface type is configured. Use the HDA disk interface type if none has been configured for HDD.
    • Add explicit option to automatically create or not the config disk. Off by default.
    • Auxiliary console support for Qemu. Ref #2873 Improvements for auxiliary console support for Docker and Dynamips.
    • Fix AUX console not allocated for Dynamips IOS routers.
    • Disallow to rename a running node. Fixes https://github.com/GNS3/gns3-gui/issues/2499
    • Support to reset all console connections. Ref https://github.com/GNS3/gns3-server/issues/1619
    • Support to reset links. Fixes https://github.com/GNS3/gns3-server/issues/1620
    • Add maxcpus property for Qemu VMs. Ref #1674
    • QEMU config disk support
    • Read folder structure correctly for custom symbols. Fixes https://github.com/GNS3/gns3-gui/issues/2856
    • 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
    • Resource constraints for Docker VMs.
    • Update IOUtools. Ref #1627
    • Use parent directory as working directory for project duplication and snapshots. Fixes https://github.com/GNS3/gns3-gui/issues/2909
    • Support for "usage" for "Cloud" nodes. Fixes https://github.com/GNS3/gns3-gui/issues/2887 Allow "usage" for all builtin nodes (not exposed in Ui).
    Source code(tar.gz)
    Source code(zip)
  • v2.2.33.1(Jun 21, 2022)

  • v2.2.33(Jun 20, 2022)

    • Release web-ui v2.2.33
    • Upgrade sentry-sdk and psutil
    • Remove parameter "Name" not useful to create a Docker container
    • Support to reset all console connections. Ref https://github.com/GNS3/gns3-server/issues/1619
    • Config option to disable built-in templates
    • Add hostname entry to sample network config for Docker nodes. Fixes #2039
    • Run Xtigervnc with MIT-SHM extension disabled for Docker VNC console support. Fixes #2071
    • Added OpenRC init script
    Source code(tar.gz)
    Source code(zip)
  • v2.2.32(Apr 27, 2022)

    • Docker: load custom interface files from /etc/network/interfaces (commented by default). Ref #2052
    • Release web UI 2.2.32
    • Create /etc/network/interfaces.d in Docker container. Fixes #2052
    • Prettify Docker '/etc/network/interfaces' file. Ref #2040
    • Use public DSNs for Sentry
    • Fix VMware Fusion VM does not start on macOS >= 11. Fixes #2027
    • Include conf file in MANIFEST.in Ref #2044
    Source code(tar.gz)
    Source code(zip)
  • v2.2.31(Feb 26, 2022)

  • v2.2.30(Feb 25, 2022)

    • Support GNS3 variables in Docker environment variables. Fixes #2033
    • Release web UI 2.2.30
    • Set setuptools to v60.6.0
    • qemu_vm.py Linked node test.
    • Fix dead link in README.rst Fixes #2022
    Source code(tar.gz)
    Source code(zip)
  • v2.2.29(Jan 8, 2022)

  • v2.2.28(Dec 15, 2021)

  • v2.2.27(Nov 12, 2021)

  • v2.2.26(Oct 8, 2021)

    • Release web UI 2.2.26
    • Sort symbols by theme. Fixes https://github.com/GNS3/gns3-gui/issues/3230
    • Fix memory percentage left warning. Fixes #1966
    • Update affinity symbols. Fixes https://github.com/GNS3/gns3-gui/issues/3232
    Source code(tar.gz)
    Source code(zip)
  • v2.2.25(Sep 14, 2021)

    • Release web UI 2.2.25
    • Fix issue preventing to use custom nested symbols. Fixes #1969
    • Updated affinity symbols
    • Fix qemu-img rebase code to support Qemu 6.1. Ref https://github.com/GNS3/gns3-server/pull/1962
    • Reinstate qemu-img rebase
    • Return disk usage for partition that contains the default project directory. Fixes #1947
    • Explicitly require setuptools, utils/get_resource.py imports pkg_resources
    Source code(tar.gz)
    Source code(zip)
  • v2.2.24(Aug 25, 2021)

    • Release web UI 2.2.24
    • Fix issue when searching for image with relative path. Fixes #1925
    • Fix wrong error when NAT interface is not allowed. Fixes #1943
    • Fix incorrect Qemu binary selected when importing template. Fixes https://github.com/GNS3/gns3-gui/issues/3216
    • Fix error when updating a link style. Fixes https://github.com/GNS3/gns3-gui/issues/2461
    • Some fixes for early support for Python3.10 The loop parameter has been removed from most of asyncio‘s high-level API following deprecation in Python 3.8.
    • Early support for Python3.10 Fixes #1940
    • Bump pywin32 from 300 to 301
    Source code(tar.gz)
    Source code(zip)
  • v2.2.23(Aug 5, 2021)

    • Release web UI 2.2.23
    • Fix hostname inconsistencies during script execution
    • Add option --without-kvm
    • Add a reload server endpoint. Fixes #1926
    • Handle -no-kvm param deprecated in Qemu >= v5.2
    • Fix binary websocket access to the console
    • Change how to generate random MAC addresses
    • setup.py: prevent installing tests directory
    • Support cloning of encrypted qcow2 base image files
    • Fix VMware VM support on Linux and Windows. Fixes #1919
    Source code(tar.gz)
    Source code(zip)
  • v2.2.22(Jun 10, 2021)

    • Fix VMware support on macOS BigSur
    • Link style support. Fixes https://github.com/GNS3/gns3-gui/issues/2461
    • Release web UI version 2.2.22
    • Preserve auto_start/auto_open/auto_close when restoring snapshot
    • Fix uBridge errors for cloud nodes not visible in logs. Fixes #1895
    • Prevent directory traversal. Fixes #1894
    Source code(tar.gz)
    Source code(zip)
  • v2.2.21(May 10, 2021)

  • v2.2.20(Apr 9, 2021)

    • Release Web UI version 2.2.20
    • Fix packet capture with HTTPS remote server. Fixes #1882
    • Sync appliance files and remove old ones after sync with online repo. Fixes #1876
    • Upgrade dependencies
    • Fix export for missing files
    • Fix issue when trying to export temporary Dynamips files.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.19(Mar 5, 2021)

    • Launch projects marked for auto open after SIGHUP is received
    • Release Web UI 2.2.19
    • Fix console type error when creating Ethernet switch node. Fixes #1873
    • Upgrade Jinja to version 2.11.3. Fixes #1865
    Source code(tar.gz)
    Source code(zip)
  • v2.2.18(Feb 16, 2021)

    • SIGHUP: remove projects with an empty project directory.
    • Release Web UI 2.2.18
    • Catch OSError exception in psutil. Fixes https://github.com/GNS3/gns3-gui/issues/3127
    • Expose 'auto_open' and 'auto_start' properties in API when creating project. Fixes https://github.com/GNS3/gns3-gui/issues/3119
    • Add mtools package information. Ref https://github.com/GNS3/gns3-gui/issues/3076
    • Fix warning: 'ide-drive' is deprecated when using recent version of Qemu. Fixes https://github.com/GNS3/gns3-gui/issues/3101
    • Fix bug when starting of vpcs stopped with "quit". Fixes https://github.com/GNS3/gns3-gui/issues/3110
    • Fix WinError 0 handling
    • Stop uBridge if VPCS node has been terminated. Ref https://github.com/GNS3/gns3-gui/issues/3110
    • Allow cloned QEMU disk images to be resized before the node starts, by cloning the disk image in response to a resize request instead of waiting until the node starts.
    • Fix(readme): update python version from 3.5.3 to 3.6
    • Use HDD disk image as startup QEMU config disk
    • Create config disk property false by default for Qemu templates
    • Set default disk interface type to "none".
    • Add explicit option to automatically create or not the config disk. Off by default.
    • QEMU config disk support
    Source code(tar.gz)
    Source code(zip)
  • v2.2.17(Dec 4, 2020)

    • Close and remove projects deleted from disks after SIGHUP signal is received.
    • Release Web Ui 2.2.17
    • New config file options to configure the VNC console port range.
    • Use asyncio.all_tasks instead of deprecated method for Python 3.9 compatibility.
    Source code(tar.gz)
    Source code(zip)
  • v2.2.16(Nov 5, 2020)

    • Release Web UI version 2.2.16
    • Fix wrong defaults for images_path, configs_path, appliances_path. Fixes #1829
    • Use EnvironmentFile for Systemd service. Ref https://github.com/GNS3/gns3-gui/issues/3048
    • Fix SSL support for controller and local compute. Fixes #1826
    • Prevent WIC to be added/removed while Dynamips router is running. Fixes https://github.com/GNS3/gns3-gui/issues/3082
    • Fix bug with application id allocation for IOU nodes. Fixes #3079
    • Allow commas in image paths and VM name for Qemu VMs. Fixes https://github.com/GNS3/gns3-gui/issues/3065
    • Option to allocate or not the vCPUs and RAM settings for the GNS3 VM. Fixes https://github.com/GNS3/gns3-gui/issues/3069
    Source code(tar.gz)
    Source code(zip)
  • v2.2.15(Oct 7, 2020)

    • Fix symbol retrieval issue. Ref #1824
    • Fixes update() missing 2 required positional arguments: 'name' and 'value'. Fixes #1821 #1825
    • Fix Hyper-V based GNS3 VM WMI issue. Fixes #1822
    • Release Web-Ui version 2020.4.0-beta.1
    Source code(tar.gz)
    Source code(zip)
  • v2.2.14(Sep 14, 2020)

    • Release Web-Ui version 2020.3.0-beta.4
    • Add '-smp sockets=1' by default for Qemu VMs. Ref https://github.com/GNS3/gns3-gui/issues/3047
    • Implement full restart if user reload a Qemu VM which has been updated. Fixes https://github.com/GNS3/gns3-gui/issues/3038
    Source code(tar.gz)
    Source code(zip)
  • v2.2.13(Sep 4, 2020)

  • v2.2.12(Aug 7, 2020)

    • Release Web-Ui version 2020.3.0-beta.2
    • Catch exception when psutil returns OSError
    • Downgrade psutil to version 5.6.7
    • Use parent directory as working directory for project duplication and snapshots. Fixes https://github.com/GNS3/gns3-gui/issues/2909
    • Fix Key Error "vendor_id" is missing when configuring GNS3 VM with VirtualBox. Fixes https://github.com/GNS3/gns3-gui/issues/3018
    Source code(tar.gz)
    Source code(zip)
Owner
GNS3
GNS3 repositories https://www.gns3.com
GNS3
A pythonic interface to high-throughput virtual screening software

pyscreener A pythonic interface to high-throughput virtual screening software Overview This repository contains the source of pyscreener, both a libra

56 Dec 15, 2022
A fast and easy python virtual environment creator for linux with some pre-installed libraries.

python-venv-creator A fast and easy python virtual environment created for linux with some optional pre-installed libraries. Dependencies: The followi

2 Apr 19, 2022
a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)

pyenv-virtualenv pyenv-virtualenv is a pyenv plugin that provides features to manage virtualenvs and conda environments for Python on UNIX-like system

pyenv 5.3k Jan 08, 2023
Simple Python version management

Simple Python Version Management: pyenv pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UN

pyenv 30.1k Jan 04, 2023
Define requirements inside your python code and scriptenv makes them ready to import.

scriptenv Define requirements inside your python code and scriptenv makes them ready to import. Getting Started Install scriptenv $ pip install script

Stefan Hoelzl 6 Nov 04, 2022
macOS development environment setup: Setting up a new developer machine can be an ad-hoc, manual, and time-consuming process.

dev-setup Motivation Setting up a new developer machine can be an ad-hoc, manual, and time-consuming process. dev-setup aims to simplify the process w

Donne Martin 5.9k Jan 02, 2023
to-requirements.txt allows to automatically add and delete modules to requirements.txt installing them using pip.

to-requirements.txt | Automatically update requirements.txt to-requirements.txt allows to automatically add and delete modules to requirements.txt ins

Ilya 16 Dec 29, 2022
Python virtualenvs in Debian packages

dh-virtualenv Contents Overview Presentations, Blogs & Other Resources Using dh-virtualenv How does it work? Running tests Building the package in a D

Spotify 1.5k Jan 02, 2023
Manage python virtual environments on the working notebook server

notebook-environments Manage python virtual environments on the working notebook server. Installation It is recommended to use this package together w

Vladislav Punko 44 Nov 02, 2022
Ready-to-run Docker images containing Jupyter applications

Jupyter Docker Stacks are a set of ready-to-run Docker images containing Jupyter applications and interactive computing tools.

Project Jupyter 7k Jan 03, 2023
Virtual Python Environment builder

virtualenv A tool for creating isolated virtual python environments. Installation Documentation Changelog Issues PyPI Github Code of Conduct Everyone

Python Packaging Authority 4.3k Dec 30, 2022
An experimental technique for efficiently exploring neural architectures.

SMASH: One-Shot Model Architecture Search through HyperNetworks An experimental technique for efficiently exploring neural architectures. This reposit

Andy Brock 478 Aug 04, 2022
This tool is used to install `pyenv` and friends.

pyenv installer This tool installs pyenv and friends. It is inspired by rbenv-installer. Prerequisites In general, compiling your own Python interpret

pyenv 3.5k Jan 03, 2023
Fish shell tool for managing Python virtual environments

VirtualFish VirtualFish is a Python virtual environment manager for the Fish shell. You can get started by reading the documentation. (It’s quite shor

Justin Mayer 968 Dec 24, 2022
PyDynamica is a freely available agent-based economy simulation

PyDynamica PyDynamica is a pure python implementation of Sociodynamica, a virtual environment to simulate a simple economy with minimal dependencies.

4 Sep 10, 2022
Python Development Workflow for Humans.

Pipenv: Python Development Workflow for Humans [ ~ Dependency Scanning by PyUp.io ~ ] Pipenv is a tool that aims to bring the best of all packaging wo

Python Packaging Authority 23.5k Jan 01, 2023
A simple but powerful Python packer to run any project with any virtualenv dependencies anywhwere.

PyEmpaq A simple but powerful Python packer to run any project with any virtualenv dependencies anywhwere. With PyEmpaq you can convert any Python pro

Facundo Batista 23 Sep 22, 2022
A PipEnv Environment Switcher

Pipes Pipenv Environment Switcher ⚡ Overview Pipes is a Pipenv companion CLI tool that provides a quick way to jump between your pipenv powered projec

Gui Talarico 131 Sep 04, 2022
The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM

GNS3-server This is the GNS3 server repository. The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM. Clients like the GNS3 GUI

GNS3 644 Dec 30, 2022
Run a command in the named virtualenv.

Vex Run a command in the named virtualenv. vex is an alternative to virtualenv's source wherever/bin/activate and deactivate, and virtualenvwrapper's

Sasha Hart 374 Dec 21, 2022