# Change Log ## 1.4.0rc1 12/11/2015 * Raise error if server received windows path * Update sentry key * Remove NIO FIFO and Mcast (unused). Fixes #348. * Support VPCS 0.6.1 * Fix duplicate of -no-kvm options * Raise an error if user send a non local path to remote server * Fix minor issues * Apply pep8 fix * Sets console end port to 7000. Fixes #343. * Drop netifaces (replaced by psutil). Fixes #344. * Correctly display log messages. * Tentative fix for "WinError 64 The specified network name is no longer available" issues. * Return relative path for dynamips images * Fix add existing IOS not working * Correctly enable faulthandler for dev version * Avoid test crash if GNS3 is running on the same computer * Allow to return an empty project name because it's allowed in creation * Test with python 3.5 * Add doc on how to got code coverage ## 1.4.0b5 02/11/2015 * Freeze requirements for aiohttp because 0.18 doesn't support Python 3.4. * Fix crash in IOU config export. * Raise an error when you use a port outside the ranges. Fixes #739. * Fixes Windows named pipe issue. Fixes #340. ## 1.4.0b4 19/10/2015 * Support for modifications to a base Qemu VM (not a linked clone). * Force canceling all task when shutdown server * Update api documentation * Enforce console port for VNC * Fixes issue when loading a project using VMware vmnet interfaces. Fixes #319. * Support for NAT connection with cloud for VMware VMs. Fixes #322. * Change message when VMware is not installed on Linux. Ref #326. * Send a warning notification if there is not enough RAM left to start a VM. Implements #329. * Asyncio Qemu fix and raise error if coroutine not used * Fix asyncio error when closing the app * Removes VMware lock check. Fixes #328. * Wait for pipe file to be created before starting the remote console for VMware and VirtualBox VMs. Fixes #331. * Release UDP ports when closing a Qemu VM. Fixes #323. * Escape other usage of glob * Fix Dynamips identifier is already used by another router * Protect Dynamips against bad glob. * Fix issue with Qemu networking following merge. * OVA file support * Support listing images in subdirectories. * Catch ProcessLookupError in Qemu VM. * Fixes uncalled coroutine. * Use the correct UDP tunnel Qemu syntax for version > 1.1.0 when legacy networking is enabled. * VMware player linux support. * Prevent launching a packet capture with a non-ASCII path when using Dynamips. * Do not require a TAP interface to already exist. Fixes #321. * Do not automatically delete Dynamips bootflash file because they are necessary to restore VLANs on the c3600 platform. # 1.3.11 07/10/2015 * Escape other usage of glob * Fix Dynamips identifier is already used by another router * Protect dynamips against bad glob * Catch ProcessLookupError in Qemu VM. * Use the correct UDP tunnel Qemu syntax for version > 1.1.0 when legacy networking is enabled. * Prevent launching a packet capture with a non-ASCII path when using Dynamips. * Do not automatically delete Dynamips bootflash file because they are necessary to restore VLANs on the c3600 platform. * Fix dynamips configuration lost when you delete a node * Clarify error message when we got UTF-8 chars in the iourc file * Check for valid FR or ATM switch mappings. Fixes #300. ## 1.4.0b3 22/09/2015 * Fix dynamips configuration lost when you delete a node * Clarify error message when we got UTF-8 chars in the iourc file * Use custom VMnet interfaces without host adapter when uBridge is not used. Fixes #673. * Automatically add the -no-kvm option if -icount is detected to help with the migration of ASA VMs created before version 1.4 * Check for valid FR or ATM switch mappings. Fixes #300. * Catch exception when a process cannot be killed. Fixes #296. ## 1.4.0beta2 17/09/2015 * Fix a crash at vmware stop * Fix a crash when starting a VMware vm * Add how to add vmnet interfaces explantion in the error message * Fix path of VMinventory for fusion * Force close the keep alive when sending a 401 * Do not automatically delete Dynamips bootflash file because they are necessary to restore VLANs on the c3600 platform. * Wait that an user press a key to stop gns3vmnet.exe on Windows. * Throw an error if ubridge as incorrect permissions. Fixes #312. * This may fix "The semaphore timeout period has expired" error on Windows. #311. * Fixes bug with VMware VM connections + moves some uBridge code to BaseVM. * Support for packet capture on VMware VM links. * Fix ProcessLookupError on _checkAlive Qemu * VMware Fusion support with uBridge. * Updates vmnet script to support Windows. * Do not block on .lock for VMware OSX * Require Dynamips version 0.2.16 to change the default QinQ Ethernet type. * Initial Docker support from Google Summer of Code (not enabled) * Check for valid FR or ATM switch mappings. Fixes #300. * VirtualBox VMs can only be started if powered off. Fixes #299. * Support of VPCS 0.8 * Allows VMware VMs to use vmnet interfaces for connections without using uBridge. Fixes #295. * Fixes path to vmnet-cli on Mac OS X. * Updates vmnet script to support Mac OS X. * Fix closing project when multiple project is open * Fix project not closing * Qemu user options are at the end. It's allow user to add his own net interfaces * Change the way we look for Qemu path * Lock qemu vm during start / stop operations * In the error message explain how to turn off KVM support * Fix when you stop qemu on windows you have an error * Fix Qemu cannot be used on Windows * Allow to start server with python -m gns3server * Should solve the BufferError by avoiding using thread * Catch UnicodeEncodeError when passing unicode char as qemu options * EthernetSwitch: Allow to choose ethertype for QinQ outer tag. * Backport: fixes NAT NIO for Qemu VMs (do not launch any legacy scripts) * Fixes NAT NIO for Qemu VMs (do not launch any legacy scripts) * Lower VMware requirements to Workstation version 10 and Player version 6. * Fixes Unicode error. Fixes #290. * Don't delete Dynamips ROM files. They are used to restore the nvram. * Adds pywin32 dependency in setup.py for Windows. ## 1.3.10 04/09/2015 * Catch exception when a process cannot be killed. Fixes #296. * Backport: fixes NAT NIO for Qemu VMs (do not launch any legacy scripts) * Fixes Unicode error. Fixes #290. * Don't delete Dynamips ROM files. They are used to restore the nvram. ## 1.4.0beta1 07/08/2015 * Fix ram setting for Qemu * Explicit set qemu memory as MB * Turn off KVM for non x86 architectures * Send an error when vmware executable cannot be found on Linux. Fixes #288. * Support for CPUs setting for Qemu VMs. ## 1.4.0alpha4 04/08/2015 * Quote command in qemu debug logs so you can copy/paste them * Support for Qemu disk interfaces, cd/dvd-rom image and boot priority. Fixes #278. * Check for VMware Player version >= 7 and VMware Workstation >= 11. Fixes #286. * Catch GeneratorExit exception when trying to create a Ghost IOS image. * Backport: removes code that deletes IOS router instance files. ## 1.3.9 03/08/2015 * Backport: removes code that deletes IOS router instance files. ## 1.4.0alpha3 28/07/2015 * Raise error if qemu image already exist when creating disk * Prevent user to create a qemu to a different directory on non local server * VMnet manager on Linux: check that VMware has been installed. * Fixes UnicodeDecodeError when reading a VMware file. * Fixes KeyError: "ethernet0.connectiontype". Fixes #276. * Fixes replace errors. Fixes #284. * Catch ProcessLookupError when updating iouyap config. Fixes #255. * API for creating a qemu disk image * Prevent starting different hypervisors that leverage hardware virtualization (VT-x/AMD-V). Fixes #548. * Fixes IOS adapters and WICS cannot be removed. Fixes #282. * Makes sure the loop is running when closing the app. * Catch Permission denied when writing to VMX file while closing VMware VM. Fixes #277. * Catch GeneratorExit exception. Fixes #231. * Fixes missing chipset info for VirtualBox VM (maybe some older VirtualBox version don't have it). Fixes #254. * Changes how to look for the vmrun.exe location. * Update documentation * API for listing current projects ## 1.3.8 27/07/2015 * Catch ProcessLookupError when updating iouyap config. Fixes #255. * Fixes IOS adapters and WICS cannot be removed. Fixes #282. * Makes sure the loop is running when closing the app. * Catch GeneratorExit exception. Fixes #231. * Fixes missing chipset info for VirtualBox VM. Fixes #254. * Fixes IOURC upload. * Restore images & projects tarballs * Allow users to backup projects and images. * Update gns3.conf.upstart. * Fix incorrect vboxmanage sudo command. * Backport from 1.4: option to drop nvram & disk files for IOS routers in order to save disk space. * Backport from 1.4: Remove timeout to wait for connections to finish. * Backport from 1.4: Fixes RuntimeError: Event loop is closed. * Backport from 1.4: Bind host on 0.0.0.0 when checking for a free UDP port. ## 1.4.0alpha2 22/07/2015 * Deactivate uBridge process monitoring (process returns 1 on Windows when stopping). * Prevent using different hypervisors that leverage hardware virtualization. - Implemented for Qemu when a VMware or VirtualBox VM with hardware virtualization is already running. - Implemented for VirtualBox only when a Qemu VM with KVM is already running. * Check for uBridge version and catch uBridge errors. * Remove default FLASH when no hda disk for Qemu VMs. Fixes #535. * Use the registry to find vmrun if the default VMware install path does not exist. * Bind host on 0.0.0.0 when checking for a free UDP port. * Fixes RuntimeError: Event loop is closed. Fixes #266. * Update gns3.conf.upstart * Implements uBridge hypervisor. * Take VMware file encoding into account. Fixes #261. ## 1.4.0alpha1 09/07/2015 * Update API documentation * Allow to send the iourc when starting the VM * Return stdout when a process crash for IOU, Dynamips, uBridge and VPCS. * Adds -no-kvm to the ASA template and ignore -no-kvm on platforms other than Linux. Should resolve #472. * Allow user to change the configuration file * Fix double loading of config from working directory * CORS support * Support server config in current working directory * List only valid existing IOS images (for IOS router wizard). * Checks if IOS image exist at startup and not during node creation. Fixes #240. * When a qemu VM crash send the log to the client. * Add a vm_directory field * Check for /dev/kvm. Fixes #245. * Moves KVM setting to Qemu server preferences. Fixes #244. * VNC console support for Qemu VMs. * Test all IOU requirements at VM startup * ACPI shutdown support for VMware VMs. Fixes #436. * Compute a md5sum of images for futur purpose * Adds gns3-netifaces to dependencies only if netifaces isn't already installed otherwise this requires a compilation and therefore the Python development files. * Adds an IP address for each interface returned by the interfaces API method. * Add log when we didn't close a project due to another client * Limit file size during upload * Convert old -enable-kvm to kvm settings for Qemu * Cleanup SSL certificate support * Improve memory consumption of file upload with the HTML form * systemd start script * Enable KVM acceleration option. * Check interface is up before connecting a NIO (Linux only). Fixes #277. * IPv6 support. * Import/Export support for IOU nvrams. * Install qt5 for travis * Option to drop nvram & disk files for IOS routers in order to save disk space. * Drop python 3.3 * Support for base MAC address for Qemu VMs. * ACPI shutdown support for Qemu VMs. * ACPI shutdown support for VirtualBox VMs. * Upload images API * A notification stream with process monitoring * VMware support ## 1.3.7 22/06/2015 * Prevent install on Python 2 ## 1.3.6 16/06/2015 * Fix an issue with 1.4dev compatibility ## 1.3.5 16/06/15 * Ignore invalid characters when reading the output of a process * Turn on / off authentication * Ensure no colored output on Windows * Do not stop saving IOS router configs when there is an exception while a project is committed. * Create a private config file if expected * Distribute our own version of netifaces working with python 3 * Fix crash if a private config exist in IOS but no private config file * Basic Auth support * Fix crash when virtualbox list of VMS return an empty line ## 1.3.4 02/06/15 * Drop useless dependencie dateutil * Check if port or adapter is connected before starting/stopping a packet capture. Fixes #196. * Prevent users to add links to running Qemu VMs and start a capture on running VirtualBox VMs. * Fixes bug: couldn't set PCMCIA disk1 size for IOS routers. * Fix crash if you pass an invalid hostname * Catch VPCS kill errors * Raise a VirtualBox error if adapter doesn't exists * Ignore VirtualBox VM Name with a carriage return in name * Cleanup the temporary project after modules have been notified of the path change * Do not return error if we can't remove the old project directory * Catch encoding errors in windows logger * Use setter for the qemu_path (allow to pass only the binary name) * Fixes TAP connection when using VPCS. * Fix crash launching qemu on OSX from another location. * Adds NAT NIO in device schema validation so they can return an error that it is not supported. ## 1.3.3 14/05/15 * Check for empty iourc path. * Fixes bugs with IOS router configs. Fixes #354. * Use a temporary directory as egg cache * Catch crash error in IOU in case of permission denied ## 1.3.3rc1 07/05/2015 * Return an error if an adapter slot doesn't exist on an IOS router. * NIO NAT support for VirtualBox VMs. * NIO NAT support for QEMU VMs (user mode back-end is used). * Throw an error if user put an invalid port range in config file * Turn off configuration parser interpolation * Catch configuration file parsing errors * Force closing the event loop to avoid warning with Python 3.4.3 * Catch error when you can't mark a project as no longer temporary * Catch BrokenPipeError for OSX frozen server * Match how IOU initial-config is set for VPCS VM. * Refactors how startup-config and private-config are handled for IOS routers. * Catch the "WinError 0 The operation completed successfully" exception at a higher level. * Fix temporary project not cleanup with save as * If image is not found in VM directory look in images folder * Ordered MAC addresses for QEMU based VMs. * Merge remote-tracking branch 'origin/master' * Force utf-8 configuraton files reading * Do not list file starting with a . in upload handler * Do not crash when closing a project if VirtualBox is not accessible * Catch connection reset errors ## 1.3.2 28/04/2015 * Cleanup the VirtualBox Media Manager after closing a project. * Avoid Cygwin warning with VPCS on Windows. * Close VirtualBox VM linked clone disks after the VM is unregistered. * TAP interface support for QEMU VMs. * Return an explicit error when a NIO type is not supported by a VM. * Do not erase the IOU config * Explicit utf-8 decoding. * Check NIO exists when stopping an IOU capture. * Fixes c7200 NPE setting. * Fixes VPCS process termination. * Catch FileNotFoundError exception in os.getcwd() * Explicit utf-8 encoding where necessary to avoid Unicode errors on Windows (we require/set an utf-8 locale on other systems). * Fixes #270. Relative paths management with empty ones. * New crash report key and doesn't send report for developers * Catch COM errors when connecting to WMI. * Don't assume the PATH environment variable exists. * Use UUIDs instead of the VM names for VirtualBox pipe paths. * Add --log options for daemon support * Basic upstart script * Add qemu-kvm to the list of binary * Fix IOU licence check flag * Config paths are not used when updating Dynamips or IOU VM settings. * Fixes initial-configs that were not restored when opening a project containing IOU VMs. * Prevent parallel execution of VBox commands * Fix a crash when in some cases you can't access to VBOX state * Fix crash if VirtualBox doesn't return API version * Fix a crash in VirtualBox vm creation * Allocate random names for Dynamips NIOs. * Explicitly delete Dynamips NIOs and unmap VCs for ATM and Frame-Relay switches. ## 1.3.1 11/04/2015 * Release ## 1.3.1rc4 09/04/2015 * Initial config file content can be empty (fix export issues) * Fix crash if IOU initial config is emtpy * Return more informations about bad requests for crash reports * Allow less strict dependencies for easier install * Missing project name in documentation * Some spring cleaning ## 1.3.1rc3 07/04/2015 * Fix missing IOU documentation * Add missing project name in curl documentation * Look in old IOU images location in order to smooth transition ## 1.3.1rc2 06/04/2015 * Do not overwrite initial-config IOU if client send an empty * Fix documentation about /ports/udp ## 1.3.1rc1 05/04/2015 * Fix issues with macos X dynamips not freeing UDP port * Fix encoding error when saving dynamips configuration * The upload web page return a 200 in case of error (IE compatibility) * Do not crash if dynamips config contain non ascii chars * Test path with chinese charcaters in Qemu * Do not crash if no console port is available for VBox * Raise a DynamipsError if we can't access to VM status * Check name of the VBoxManage executable * Exclude docs and tests package from distribution * Catch error when qemu additional options are invalid * Fix ClientDisconnectedError * Fix crash when NIO doesn't exist * Turn off crash report if raven not available * Fix crash when IOU script file is incorrect ## 1.3.0 30/03/2015 * Fix issue when asyncio read is cancelled and data is still sent by Dynamips hypervisor. * Fix unicode decode error when saving IOS router configs. * Fix error when missing adapter in Dynamips IOS router. * Fix crash if we call stop on dynamips on non started process. * Fix use_default_iou_values param was not set. * Fix issue when IOURC environment variable is set to None. * Fix issue when exporting IOS router configs. * Fix check if VPCS process is running. * Fix bug when remove_nio() is not a coroutine for ATM and FR switches. * Fix how to test if iou and iouyap are running. * Allocate a random port for Qemu monitor. Fixes issue with pre 1.3 projects. * Fix default chassis bug. ## 1.3.0rc2 23/03/2015 * Update sentry key * Prevent error when suspend/resume is not supported in QEMU VM. * Adds project id when requesting UDP port. * Make sure used ports in a project are cleaned up when closing it. * Save configs when project is committed. * Initialize chassis when creating an IOS router. Fixes #107. * Lock the dynamips reader an writer ## 1.3.0rc1 19/03/2015 * Save IOS router config when saving the project * Look in legacy IOU images directory * Support IOURC upload * Configuration on UNIX * Support all QEMU status * Bind tunnel UDP to the correct source index ## 1.3.0beta2 13/03/2015 * Fixed issue when VBoxManage returns an error. * Server handler to shutdown a local server. * List the iourc file in upload handler. * Fixed hostid error. * Support RAM setting for VirtualBox VMs. * Alternative local server shutdown (intended for Windows). * Request user permission to kill the local server if it cannot be stopped. ## 1.3.0beta1 11/03/2015 * Optional IOU license key check. * Relative path support of IOU, IOS and Qemu images. * Do not give attachment warning for generic attachments in VirtualBox. * Support for HDC and HDD disk images in Qemu. * Fixed bug when starting a packet capture in VirtualBox with the project path containing spaces. * Renames server.conf and server.ini to gns3_server.conf and gns3_server.ini respectively. * Use TCP instead of Telnet to communicate with Qemu monitor. * Have the server look in the right place for relative image paths. * Fixed bugs when checking if this is a local project. * Concert old projects on remote servers. * Properly restore configs for Dynamips routers. * Fixed rename bug for linked clones in VirtualBox. * Makes absolute path checks work on Windows. * Upload IOURC file via the web interface * Upload interface allows users to choose an image type. * Fixed Qemu networking. * Fixed suspend and resume for Qemu VMs. * Fixed crash when you start capture on a non running IOU. * Fixed Telnet server initialization issue in VirtualBox. * Disconnect network cable if adapter is not attached in VirtualBox vNIC. ## 1.3.0alpha1 03/03/2015 * HTTP Rest API instead of WebSocket * API documentation * Create a dedicated configuration file for the server: server.conf * Temporary projects are real project * Use UUID instead of id ## 1.2.3 2015/01/17 * Fixed broken -netdev + legacy virtio in Qemu support. * Ping and traceroute added to the IOU VM. ## 1.2.2 2015/01/16 ### Small improvements / new features * Auxiliary console support for IOS routers. * Suspend / resume support for Qemu. * Dynamically configure network connections of running Qemu VMs (only with recent Qemu versions). * VPCS multi-host support (useful for old .net labs). * Possibility to run VirtualBox as another user (Linux/OSX only). * Support for IOURC file on the server side. * Bumped the maximum network adapters to 32 for Qemu (depending on Qemu version you cannot go above 8 or even 28, Qemu will just not start). * Added snapshot named 'reset' to linked cloned VirtualBox VMs. * More network interface options to the Qemu VM configuration interface as well as descriptions for all NICs. * More checks on minimum RAM for IOS routers and updates default values to match the latest IOS image requirements. * Fixed bug when importing Host node with UDP NIOs. ## 1.2.1 2014/12/04 * Early support for IOSv and IOSv-L2 (with Qemu for now, which is slow on Windows/Mac OS X). * Support for CPU throttling and process priority for Qemu. * Fixed C7200 IO cards insert/remove issues and makes C7200-IO-FE the default. * Updated the IOU VM with iouyap version 0.95 (packet capture). ## 1.2 2014/11/20 * New VirtualBox support * New Telnet server for VirtualBox. * Add detection of qemu and qemu.exe binaries. * New host node (cloud with all available Ethernet & TAP interfaces added). * Option to allow console connections to any local IP address when using the local server. * VirtualBox linked clones support (experimental, still some problems with temporary projects). ## 1.1 2014/10/23 * Serial console for local VirtualBox.