Merge branch '1.4'

pull/393/head
Julien Duponchelle 8 years ago
commit bc3016eec5

@ -0,0 +1,2 @@
[paths]
source = gns3server

1
.gitignore vendored

@ -27,6 +27,7 @@ pip-log.txt
# Unit test / coverage reports
.coverage
.tox
.cache
nosetests.xml
# Translations

@ -1,32 +1,14 @@
language: python
python:
- "3.3"
- "3.4"
before_install:
- sudo add-apt-repository ppa:gns3/ppa -y
- sudo apt-get update -q
- sudo apt-get install dynamips
- '3.4'
- '3.5'
sudo: false
cache: pip
install:
- pip install -rdev-requirements.txt
- python setup.py install
- python setup.py install
- pip install -rdev-requirements.txt
- pip install coveralls
script:
- py.test -v -s tests --cov gns3server --cov-report term-missing
#branches:
# only:
# - master
notifications:
email:
- julien@gns3.net
# irc:
# channels:
# - "chat.freenode.net#gns3"
# on_success: change
# on_failure: always
- py.test -v -s tests --cov gns3server --cov-report term-missing
after_success:
- coveralls --data_file .coverage --base_dir gns3server
- coveralls

@ -1 +1,2 @@
Jeremy Grossmann
Jeremy Grossmann
Julien Duponchelle

@ -1,5 +1,26 @@
# Change Log
## 1.4.0 12/01/2016
* Release 1.4.0
## 1.4.0rc3 05/01/2016
* API documentation update
* Fix race condition when killing iouyap
* Catch exception if we can't change process priority on Windows
* Adds a handler for getting the Qemu related capabilities of the server. Currently includes just a check for KVM architectures.
* Fixed showing of Qemu hdb_disk_interface - it showed hda_disk_interface instead, which resulted in an odd visual glitch in the GUI.
* Made the gns3server.bat successfully start the server independent of the CWD at the time of running. It's now relative to the location of the .bat file itself.
* Add more informations in the debug status page
* Fix status link in GNS3 homepage
* Fix tests on Windows
* Fix missing boot priority order
* A debug status page embed in the server
* Fix test on Windows
* Update links for new website.
* Contributing instructions
## 1.3.13 11/12/2015
* Update links for new website.
@ -15,6 +36,76 @@
* Fix asyncio error when closing the app
* Release UDP ports when closing a Qemu VM. Fixes #323.
## 1.4.0rc2 10/12/2015
* Add log about wher iou capture packet
* Replace by another TCP port if port is already used
* Fix ProcessLookupError in Qemu
* Increase vmrun timeout to 120 seconds. Ref #360.
* Fixes termination notification to indicate the right process name (IOU vs iouyap). Ref #359.
* Fixes error with non initialized uBridge. Fixes #367.
* Remove debug that can crash qemu
* Support VM usage for qemu
* Raise an error if psutil version is invalid
## 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
@ -28,6 +119,60 @@
* 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.
@ -35,10 +180,46 @@
* 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.
@ -56,6 +237,61 @@
* 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

@ -20,16 +20,19 @@ 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 goes here.
Bug fixes or small improvements pull requests go here.
unstable
1.x (1.4 for example)
********
*Never* use this branch for production. Major new features pull requests goes here.
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:
* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
@ -41,10 +44,10 @@ You must be connected to the Internet in order to install the dependencies.
Dependencies:
- Python 3.3 or above
- Python 3.4 or above
- aiohttp
- setuptools
- netifaces
- psutil
- jsonschema
The following commands will install some of these dependencies:
@ -52,7 +55,6 @@ The following commands will install some of these dependencies:
.. code:: bash
sudo apt-get install python3-setuptools
sudo apt-get install python3-netifaces
Finally these commands will install the server as well as the rest of the dependencies:
@ -69,12 +71,24 @@ To run tests use:
py.test -v
Run as daemon
***************
Run as daemon (Unix only)
**************************
You will found init sample script 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 the init script require the creation of a GNS3 user. You can change it to another user.
.. code:: bash
sudo adduser gns3
upstart
~~~~~~~
@ -88,13 +102,51 @@ You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf
sudo service gns3 start
systemd
~~~~~~~~
You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service
.. code:: bash
sudo chown root /lib/systemd/system/gns3.service
sudo systemctl start gns3
Windows
-------
Please use our all-in-one installer.
If you install it via source you need to install also:
https://sourceforge.net/projects/pywin32/
Please use our `all-in-one installer <https://community.gns3.com/community/software/download>`_ to install the stable build.
If you install via source you need to first install:
- Python (3.3 or above) - https://www.python.org/downloads/windows/
- Pywin32 - https://sourceforge.net/projects/pywin32/
Then you can call
.. code:: bash
python setup.py install
to install the remaining dependencies.
To run the tests, you also need to call
.. code:: bash
pip install pytest pytest-capturelog
before actually running the tests with
.. code:: bash
python setup.py test
or with
.. code:: bash
py.test -v
Mac OS X
--------
@ -113,6 +165,33 @@ and homebrew: http://brew.sh/.
python3 setup.py install
gns3server
SSL
---
If you want enable SSL support on GNS3 you can generate a self signed certificate:
.. code:: bash
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:
.. code:: bash
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:
.. code:: ini
[Server]
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
certkey=/Users/noplay/.config/GNS3/ssl/server.key
ssl=True
Running tests
*************

@ -5,9 +5,10 @@ DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80 HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/becc8bf8-1936-4076-b7dd-ee83ba078907'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0813062d-a796-44ef-a5ed-e690c633012e'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/becc8bf8-1936-4076-b7dd-ee83ba078907 HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0813062d-a796-44ef-a5ed-e690c633012e HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/779f3f81-60ab-4d26-860c-75f915b1d70b/adapters/1/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8759140f-eb6f-4f3b-9a7f-86c79ec747b9/adapters/1/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/779f3f81-60ab-4d26-860c-75f915b1d70b/adapters/1/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8759140f-eb6f-4f3b-9a7f-86c79ec747b9/adapters/1/ports/0/nio HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/6537c17b-2e47-46f9-b96b-6fc66382709f'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1b1a72b7-97ea-4598-8c02-2edc285f7987'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/6537c17b-2e47-46f9-b96b-6fc66382709f HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1b1a72b7-97ea-4598-8c02-2edc285f7987 HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b54e4616-058f-413d-a589-0b7c5da20aa3/adapters/1/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b5c23125-ea22-4008-a89e-72565ae9f746/adapters/1/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b54e4616-058f-413d-a589-0b7c5da20aa3/adapters/1/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b5c23125-ea22-4008-a89e-72565ae9f746/adapters/1/ports/0/nio HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/387fb016-f1fc-4844-a25e-97c08ef77274/adapters/0/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3f79083e-3da8-433e-9e9b-fe72a602ab4e/adapters/0/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/387fb016-f1fc-4844-a25e-97c08ef77274/adapters/0/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3f79083e-3da8-433e-9e9b-fe72a602ab4e/adapters/0/ports/0/nio HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6bc73868-fea6-449b-af5c-e7b746e4129d'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f9f4ab8-1b77-4eee-b0fb-e8d299b843a7'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6bc73868-fea6-449b-af5c-e7b746e4129d HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f9f4ab8-1b77-4eee-b0fb-e8d299b843a7 HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}

@ -1,13 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f7d1d6ad-422b-486a-8d23-1ff46cd8bc4b/adapters/0/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6666f3a7-d805-4572-a35c-bc15213f0b52/adapters/0/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f7d1d6ad-422b-486a-8d23-1ff46cd8bc4b/adapters/0/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6666f3a7-d805-4572-a35c-bc15213f0b52/adapters/0/ports/0/nio HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio

@ -5,60 +5,68 @@ GET /v1/interfaces HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 718
CONTENT-LENGTH: 1012
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/interfaces
[
{
"id": "lo0",
"name": "lo0"
},
{
"id": "gif0",
"name": "gif0"
},
{
"id": "stf0",
"name": "stf0"
"id": "bridge0",
"ip_address": "",
"name": "bridge0"
},
{
"id": "en0",
"ip_address": "",
"name": "en0"
},
{
"id": "en1",
"ip_address": "192.168.84.114",
"name": "en1"
},
{
"id": "en2",
"ip_address": "",
"name": "en2"
},
{
"id": "fw0",
"ip_address": "",
"name": "fw0"
},
{
"id": "en2",
"name": "en2"
"id": "lo0",
"ip_address": "127.0.0.1",
"name": "lo0"
},
{
"id": "p2p0",
"ip_address": "",
"name": "p2p0"
},
{
"id": "bridge0",
"name": "bridge0"
},
{
"id": "vboxnet0",
"ip_address": "172.16.43.1",
"name": "vboxnet0"
},
{
"id": "vboxnet1",
"ip_address": "192.168.59.3",
"name": "vboxnet1"
},
{
"id": "vboxnet2",
"ip_address": "",
"name": "vboxnet2"
},
{
"id": "vboxnet3",
"ip_address": "192.168.99.1",
"name": "vboxnet3"
}
]

@ -0,0 +1,21 @@
curl -i -X GET 'http://localhost:8000/v1/iou/vms'
GET /v1/iou/vms HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 72
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/iou/vms
[
{
"filename": "iou.bin",
"path": "iou.bin"
}
]

@ -0,0 +1,31 @@
curl -i -X GET 'http://localhost:8000/v1/projects'
GET /v1/projects HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 656
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects
[
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo/00010203-0405-0607-0809-0a0b0c0d0e0b",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0b",
"temporary": false
},
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo/00010203-0405-0607-0809-0a0b0c0d0e0f",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0f",
"temporary": false
}
]

@ -5,17 +5,18 @@ GET /v1/projects/00010203-0405-0607-0809-0a0b0c0d0e02 HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmphbzo0jp9",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpchvw88rg",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmphbzo0jp9/00010203-0405-0607-0809-0a0b0c0d0e02",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpchvw88rg/00010203-0405-0607-0809-0a0b0c0d0e02",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e02",
"temporary": false
}

@ -0,0 +1,25 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/files'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/files HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 204
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/files
[
{
"md5sum": "ad0234829205b9033196ba818f7a872b",
"path": "test.txt"
},
{
"md5sum": "098f6bcd4621d373cade4e832627b4f6",
"path": "vm-1/dynamips/test.bin"
}
]

@ -1,29 +1,33 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ede1bba5-0723-4fd8-9e89-bdfffe5f5c8f'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/82f6e25c-6960-421d-9567-a7453642935b'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ede1bba5-0723-4fd8-9e89-bdfffe5f5c8f HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/82f6e25c-6960-421d-9567-a7453642935b HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 386
CONTENT-LENGTH: 610
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
{
"console": 2000,
"console": 2001,
"ethernet_adapters": 2,
"initial_config": null,
"iourc_path": null,
"l1_keepalives": false,
"md5sum": null,
"name": "PC TEST 1",
"nvram": 128,
"path": "iou.bin",
"private_config": null,
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 256,
"serial_adapters": 2,
"startup_config": null,
"use_default_iou_values": true,
"vm_id": "ede1bba5-0723-4fd8-9e89-bdfffe5f5c8f"
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/82f6e25c-6960-421d-9567-a7453642935b",
"vm_id": "82f6e25c-6960-421d-9567-a7453642935b"
}

@ -0,0 +1,18 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/9ff2d283-1365-4422-93e7-e14c56b809cb/configs'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/9ff2d283-1365-4422-93e7-e14c56b809cb/configs HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 40
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/configs
{
"startup_config_content": "TEST"
}

@ -1,17 +0,0 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/821b0dc3-4cc0-4899-8184-75bfc22db584/initial_config'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/821b0dc3-4cc0-4899-8184-75bfc22db584/initial_config HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 25
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/initial_config
{
"content": "TEST"
}

@ -1,35 +1,56 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e3935d2d-2bf9-4cde-8c7e-0bd1d74c3dad'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/84777300-eef4-4a3a-9135-d7009bdb0722'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e3935d2d-2bf9-4cde-8c7e-0bd1d74c3dad HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/84777300-eef4-4a3a-9135-d7009bdb0722 HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 597
CONTENT-LENGTH: 1353
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
{
"acpi_shutdown": false,
"adapter_type": "e1000",
"adapters": 1,
"console": 2000,
"boot_priority": "c",
"cdrom_image": "",
"cdrom_image_md5sum": null,
"console": 2001,
"console_type": "telnet",
"cpu_throttling": 0,
"cpus": 1,
"hda_disk_image": "",
"hda_disk_image_md5sum": null,
"hda_disk_interface": "ide",
"hdb_disk_image": "",
"hdb_disk_image_md5sum": null,
"hdb_disk_interface": "ide",
"hdc_disk_image": "",
"hdc_disk_image_md5sum": null,
"hdc_disk_interface": "ide",
"hdd_disk_image": "",
"hdd_disk_image_md5sum": null,
"hdd_disk_interface": "ide",
"initrd": "",
"initrd_md5sum": null,
"kernel_command_line": "",
"kernel_image": "",
"kernel_image_md5sum": null,
"legacy_networking": false,
"mac_address": "00:00:ab:07:22:00",
"name": "PC TEST 1",
"options": "",
"platform": "x86_64",
"process_priority": "low",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 256,
"vm_id": "e3935d2d-2bf9-4cde-8c7e-0bd1d74c3dad"
"usage": "",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/84777300-eef4-4a3a-9135-d7009bdb0722",
"vm_id": "84777300-eef4-4a3a-9135-d7009bdb0722"
}

@ -1,27 +1,30 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f49ff215-0872-4bf7-90c8-3d9ecc2b2f2b'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/63b9b470-5a07-4cfe-b9d5-ae5d5518b988'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f49ff215-0872-4bf7-90c8-3d9ecc2b2f2b HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/63b9b470-5a07-4cfe-b9d5-ae5d5518b988 HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 361
CONTENT-LENGTH: 415
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2001,
"console": 2002,
"enable_remote_console": false,
"headless": false,
"name": "VMTEST",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_id": "f49ff215-0872-4bf7-90c8-3d9ecc2b2f2b",
"vm_directory": null,
"vm_id": "63b9b470-5a07-4cfe-b9d5-ae5d5518b988",
"vmname": "VMTEST"
}

@ -1,22 +1,25 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/3ff6ff9e-93de-45ae-a7ec-e296d406ffe1'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547'
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/3ff6ff9e-93de-45ae-a7ec-e296d406ffe1 HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547 HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 220
CONTENT-LENGTH: 422
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
{
"console": 2009,
"console": 2010,
"name": "PC TEST 1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"vm_id": "3ff6ff9e-93de-45ae-a7ec-e296d406ffe1"
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547",
"vm_id": "7e24fcc2-e38c-43e8-a7bb-fc22d7b91547"
}

@ -1,24 +1,33 @@
curl -i -X GET 'http://localhost:8000/v1/qemu/binaries'
curl -i -X GET 'http://localhost:8000/v1/qemu/binaries' -d '{"archs": ["i386"]}'
GET /v1/qemu/binaries HTTP/1.1
{
"archs": [
"i386"
]
}
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 134
CONTENT-LENGTH: 212
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/qemu/binaries
[
{
"path": "/tmp/1",
"path": "/tmp/x86_64",
"version": "2.2.0"
},
{
"path": "/tmp/2",
"path": "/tmp/alpha",
"version": "2.1.0"
},
{
"path": "/tmp/i386",
"version": "2.1.0"
}
]

@ -0,0 +1,20 @@
curl -i -X GET 'http://localhost:8000/v1/qemu/capabilities'
GET /v1/qemu/capabilities HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 39
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/qemu/capabilities
{
"kvm": [
"x86_64"
]
}

@ -5,14 +5,15 @@ GET /v1/version HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 49
CONTENT-LENGTH: 50
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/version
{
"local": true,
"version": "1.3.1.rc2"
"version": "1.4.0dev13"
}

@ -5,9 +5,10 @@ POST /v1/config/reload HTTP/1.1
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/config/reload

@ -7,17 +7,18 @@ POST /v1/projects HTTP/1.1
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp_6lclsv7",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp_6lclsv7/187543e2-5d46-4108-a623-cfdd31fa300e",
"project_id": "187543e2-5d46-4108-a623-cfdd31fa300e",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn/054e6ecb-1e9d-4c74-ad08-1209264bd96d",
"project_id": "054e6ecb-1e9d-4c74-ad08-1209264bd96d",
"temporary": false
}

@ -5,9 +5,10 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/close

@ -5,9 +5,10 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/commit

@ -1,40 +1,38 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms' -d '{"ethernet_adapters": 0, "initial_config_content": "hostname test", "iourc_content": "test", "l1_keepalives": true, "name": "PC TEST 1", "nvram": 512, "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-4450/test_iou_create_with_params0/iou.bin", "ram": 1024, "serial_adapters": 4, "use_default_iou_values": true}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms' -d '{"name": "PC TEST 1", "path": "iou.bin", "startup_config_content": "hostname test", "vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms HTTP/1.1
{
"ethernet_adapters": 0,
"initial_config_content": "hostname test",
"iourc_content": "test",
"l1_keepalives": true,
"name": "PC TEST 1",
"nvram": 512,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-4450/test_iou_create_with_params0/iou.bin",
"ram": 1024,
"serial_adapters": 4,
"use_default_iou_values": true
"path": "iou.bin",
"startup_config_content": "hostname test",
"vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 466
CONTENT-LENGTH: 626
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms
{
"console": 2000,
"ethernet_adapters": 0,
"initial_config": "initial-config.cfg",
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmps796q8lx/iourc",
"l1_keepalives": true,
"console": 2001,
"ethernet_adapters": 2,
"iourc_path": null,
"l1_keepalives": false,
"md5sum": null,
"name": "PC TEST 1",
"nvram": 512,
"nvram": 128,
"path": "iou.bin",
"private_config": null,
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 1024,
"serial_adapters": 4,
"ram": 256,
"serial_adapters": 2,
"startup_config": "startup-config.cfg",
"use_default_iou_values": true,
"vm_id": "69f5842a-d4e5-45fe-a500-1010c72f1748"
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/afa904bc-8968-4e7c-87b6-11d92174f1e6",
"vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"
}

@ -1,21 +1,22 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/04648c72-4339-471e-aa12-57b42d7ea18b/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/eea449ce-e25b-4beb-b50f-fcd77241a97b/adapters/1/ports/0/nio' -d '{"ethernet_device": "bridge0", "type": "nio_generic_ethernet"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/04648c72-4339-471e-aa12-57b42d7ea18b/adapters/1/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/eea449ce-e25b-4beb-b50f-fcd77241a97b/adapters/1/ports/0/nio HTTP/1.1
{
"ethernet_device": "eth0",
"ethernet_device": "bridge0",
"type": "nio_generic_ethernet"
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 69
CONTENT-LENGTH: 72
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{
"ethernet_device": "eth0",
"ethernet_device": "bridge0",
"type": "nio_generic_ethernet"
}

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6056b617-d0c4-4683-bc9e-d0130beec951/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/14a4f240-54e7-47f7-b9e7-3640528415fe/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6056b617-d0c4-4683-bc9e-d0130beec951/adapters/0/ports/0/start_capture HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/14a4f240-54e7-47f7-b9e7-3640528415fe/adapters/0/ports/0/start_capture HTTP/1.1
{
"capture_file_name": "test.pcap",
"data_link_type": "DLT_EN10MB"
@ -8,13 +8,14 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6056b617-d0c4-468
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 158
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
{
"pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp367810hd/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
"pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
}

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0fb3c393-7cda-4abc-ad76-a9e7af04abea/adapters/0/ports/0/stop_capture' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/992e1579-2232-4aac-93ef-970c3bb67966/adapters/0/ports/0/stop_capture' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0fb3c393-7cda-4abc-ad76-a9e7af04abea/adapters/0/ports/0/stop_capture HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/992e1579-2232-4aac-93ef-970c3bb67966/adapters/0/ports/0/stop_capture HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/b32c38db-3692-4719-b94f-2b3f664cd06f/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/7f23517b-b45e-4e7b-b908-c501c36abe16/reload' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/b32c38db-3692-4719-b94f-2b3f664cd06f/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/7f23517b-b45e-4e7b-b908-c501c36abe16/reload HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/reload

@ -1,13 +1,16 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/55209a6f-8fe0-49d1-a884-b7cd09547b5c/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/2923f599-894a-4b18-a9eb-17a389298f84/start' -d '{"iourc_content": "test"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/55209a6f-8fe0-49d1-a884-b7cd09547b5c/start HTTP/1.1
{}
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/2923f599-894a-4b18-a9eb-17a389298f84/start HTTP/1.1
{
"iourc_content": "test"
}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/start

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/d893bd2c-d84e-4f89-ad84-f3bdfaf460b6/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ff05b41f-cd2b-4b33-90be-9362430b68ae/stop' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/d893bd2c-d84e-4f89-ad84-f3bdfaf460b6/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ff05b41f-cd2b-4b33-90be-9362430b68ae/stop HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/stop

@ -5,11 +5,12 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp HTTP/1.1
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 25
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/ports/udp
{

@ -1,40 +1,61 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "/tmp/hda", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42", "ram": 1024}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "linux.img", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64", "ram": 1024}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
{
"hda_disk_image": "/tmp/hda",
"hda_disk_image": "linux.img",
"name": "PC TEST 1",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 1024
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 606
CONTENT-LENGTH: 1363
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms
{
"acpi_shutdown": false,
"adapter_type": "e1000",
"adapters": 1,
"console": 2000,
"boot_priority": "c",
"cdrom_image": "",
"cdrom_image_md5sum": null,
"console": 2001,
"console_type": "telnet",
"cpu_throttling": 0,
"hda_disk_image": "/tmp/hda",
"cpus": 1,
"hda_disk_image": "linux.img",
"hda_disk_image_md5sum": null,
"hda_disk_interface": "ide",
"hdb_disk_image": "",
"hdb_disk_image_md5sum": null,
"hdb_disk_interface": "ide",
"hdc_disk_image": "",
"hdc_disk_image_md5sum": null,
"hdc_disk_interface": "ide",
"hdd_disk_image": "",
"hdd_disk_image_md5sum": null,
"hdd_disk_interface": "ide",
"initrd": "",
"initrd_md5sum": null,
"kernel_command_line": "",
"kernel_image": "",
"kernel_image_md5sum": null,
"legacy_networking": false,
"mac_address": "00:00:ab:50:58:00",
"name": "PC TEST 1",
"options": "",
"platform": "x86_64",
"process_priority": "low",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 1024,
"vm_id": "8c325041-39a8-4c31-b921-b66dadadc353"
"usage": "",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/b949f2e2-d338-4b51-aea9-270196ed5058",
"vm_id": "b949f2e2-d338-4b51-aea9-270196ed5058"
}

@ -1,21 +1,22 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e791569e-7f95-4a1d-9f8d-b48611afeef3/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/82435d91-3cb5-4a44-abff-34a4ae46b24f/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e791569e-7f95-4a1d-9f8d-b48611afeef3/adapters/1/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/82435d91-3cb5-4a44-abff-34a4ae46b24f/adapters/1/ports/0/nio HTTP/1.1
{
"ethernet_device": "eth0",
"type": "nio_generic_ethernet"
}
HTTP/1.1 201
HTTP/1.1 409
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 69
CONTENT-LENGTH: 89
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{
"ethernet_device": "eth0",
"type": "nio_generic_ethernet"
"message": "NIO of type nio_generic_ethernet is not supported",
"status": 409
}

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e6de45b1-048b-498b-9875-de76762532e9/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/3275bdce-9b75-445f-8168-0103cd524182/reload' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e6de45b1-048b-498b-9875-de76762532e9/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/3275bdce-9b75-445f-8168-0103cd524182/reload HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/reload

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d7152d7c-7f23-4d92-9ee1-fae132a50b3b/resume' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/2d03502f-6b3f-4551-b924-b74fd5d6cdf5/resume' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d7152d7c-7f23-4d92-9ee1-fae132a50b3b/resume HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/2d03502f-6b3f-4551-b924-b74fd5d6cdf5/resume HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/resume

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/031c1e57-577c-4ff4-91d1-da6fe0816fdd/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/04afa03a-3d9b-4aa7-945f-8f3077b6790e/start' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/031c1e57-577c-4ff4-91d1-da6fe0816fdd/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/04afa03a-3d9b-4aa7-945f-8f3077b6790e/start HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/start

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/79ca17e8-0194-4682-bb2a-0bdd9f7d1e1a/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/f5bfbadc-9a09-4090-a624-89be68858746/stop' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/79ca17e8-0194-4682-bb2a-0bdd9f7d1e1a/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/f5bfbadc-9a09-4090-a624-89be68858746/stop HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/stop

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/7e24f49b-51ea-410f-bc94-16fc58071493/suspend' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/bb00b1e0-f19d-4ce8-b99a-82c1518fa33e/suspend' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/7e24f49b-51ea-410f-bc94-16fc58071493/suspend HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/bb00b1e0-f19d-4ce8-b99a-82c1518fa33e/suspend HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/suspend

@ -9,23 +9,26 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 355
CONTENT-LENGTH: 409
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2000,
"console": 2001,
"enable_remote_console": false,
"headless": false,
"name": "VM1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_id": "fd208626-81e5-449e-b145-fd6993f5097c",
"vm_directory": null,
"vm_id": "39cc5964-d0be-487b-9f0c-8fbea600e452",
"vmname": "VM1"
}

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5463a797-0eb0-41d2-8b32-1efbd7a353cc/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/556aba72-c19a-4fc3-a350-9454791687f4/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5463a797-0eb0-41d2-8b32-1efbd7a353cc/adapters/0/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/556aba72-c19a-4fc3-a350-9454791687f4/adapters/0/ports/0/nio HTTP/1.1
{
"lport": 4242,
"rhost": "127.0.0.1",
@ -10,11 +10,12 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5463a797-0
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 89
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f24209c8-671e-428a-9561-db4775f6b8a7/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/1a517572-9b86-441a-8347-1d28b01d9a41/reload' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f24209c8-671e-428a-9561-db4775f6b8a7/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/1a517572-9b86-441a-8347-1d28b01d9a41/reload HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/reload

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/70df82f6-e868-4ab3-9be9-d456871f41dc/resume' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/7f5648e4-0ce8-49b3-b470-f2b821a5fe3e/resume' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/70df82f6-e868-4ab3-9be9-d456871f41dc/resume HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/7f5648e4-0ce8-49b3-b470-f2b821a5fe3e/resume HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/resume

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/354d48fe-cab6-41d8-8cc1-64716e02c3a8/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/ee1fef8f-cbe1-4590-8c47-fbd12f7f6beb/start' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/354d48fe-cab6-41d8-8cc1-64716e02c3a8/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/ee1fef8f-cbe1-4590-8c47-fbd12f7f6beb/start HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/start

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/90733316-a02a-490b-b8c4-e6ea4a32296a/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5e8543c3-45a7-4668-824f-01eaeb848898/stop' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/90733316-a02a-490b-b8c4-e6ea4a32296a/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5e8543c3-45a7-4668-824f-01eaeb848898/stop HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/stop

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/0f257aa5-d61d-4ee9-872a-898462f7ecdf/suspend' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/95f620da-c0e5-4404-81fc-10f3e18786cb/suspend' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/0f257aa5-d61d-4ee9-872a-898462f7ecdf/suspend HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/95f620da-c0e5-4404-81fc-10f3e18786cb/suspend HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/suspend

@ -7,18 +7,21 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms HTTP/1.1
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 220
CONTENT-LENGTH: 422
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms
{
"console": 2009,
"console": 2010,
"name": "PC TEST 1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"vm_id": "68c6af80-0a82-406e-b051-24c95bd728f4"
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/d1808514-893b-4aa5-86c2-c4dea88ff895",
"vm_id": "d1808514-893b-4aa5-86c2-c4dea88ff895"
}

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4125e37f-2bf1-435c-a86c-ae1fce4c916a/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbf2e4d7-d60e-4e03-95bc-1bd53b74689a/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4125e37f-2bf1-435c-a86c-ae1fce4c916a/adapters/0/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbf2e4d7-d60e-4e03-95bc-1bd53b74689a/adapters/0/ports/0/nio HTTP/1.1
{
"lport": 4242,
"rhost": "127.0.0.1",
@ -10,11 +10,12 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4125e37f-2bf1-43
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 89
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4c5c5174-07bf-4f2a-93ab-cec244e24852/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/1a1b95de-cc91-4a90-870b-5c7c8965eb5d/reload' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4c5c5174-07bf-4f2a-93ab-cec244e24852/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/1a1b95de-cc91-4a90-870b-5c7c8965eb5d/reload HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/reload

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/43ac3ea8-78a7-405e-ad5e-653293c48e66/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/184c6dcc-a8fd-4cc9-b333-86cc24f2e98e/start' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/43ac3ea8-78a7-405e-ad5e-653293c48e66/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/184c6dcc-a8fd-4cc9-b333-86cc24f2e98e/start HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/start

@ -1,13 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/59df4b41-6a23-4c99-9370-600b3a2cff23/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/bc34aac0-6c5e-4b91-b2ea-47b76d4b26f1/stop' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/59df4b41-6a23-4c99-9370-600b3a2cff23/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/bc34aac0-6c5e-4b91-b2ea-47b76d4b26f1/stop HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/stop

@ -0,0 +1,23 @@
curl -i -X POST 'http://localhost:8000/v1/qemu/img' -d '{"cluster_size": 64, "format": "qcow2", "lazy_refcounts": "off", "path": "/tmp/hda.qcow2", "preallocation": "metadata", "qemu_img": "/tmp/qemu-img", "refcount_bits": 12, "size": 100}'
POST /v1/qemu/img HTTP/1.1
{
"cluster_size": 64,
"format": "qcow2",
"lazy_refcounts": "off",
"path": "/tmp/hda.qcow2",
"preallocation": "metadata",
"qemu_img": "/tmp/qemu-img",
"refcount_bits": 12,
"size": 100
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/qemu/img

@ -1,19 +1,20 @@
curl -i -X POST 'http://localhost:8000/v1/version' -d '{"version": "1.3.1.rc2"}'
curl -i -X POST 'http://localhost:8000/v1/version' -d '{"version": "1.4.0dev13"}'
POST /v1/version HTTP/1.1
{
"version": "1.3.1.rc2"
"version": "1.4.0dev13"
}
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 30
CONTENT-LENGTH: 31
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/version
{
"version": "1.3.1.rc2"
"version": "1.4.0dev13"
}

@ -1,18 +1,19 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/b32aab45-411c-4171-9f20-357eaa00d54c' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-4450/test_update_path_project_non_l0"}'
curl -i -X PUT 'http://localhost:8000/v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"}'
PUT /v1/projects/b32aab45-411c-4171-9f20-357eaa00d54c HTTP/1.1
PUT /v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74 HTTP/1.1
{
"name": "second_name",
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-4450/test_update_path_project_non_l0"
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"
}
HTTP/1.1 403
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 100
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}
{

@ -1,40 +1,44 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/3812eced-e777-4f35-8c7e-e6736e34fcfd' -d '{"console": 2001, "ethernet_adapters": 4, "initial_config_content": "hostname test", "iourc_content": "test", "l1_keepalives": true, "name": "test", "nvram": 2048, "ram": 512, "serial_adapters": 0, "use_default_iou_values": true}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6438493a-152d-4cb0-b8d2-fcfe1f6bf540' -d '{"console": 2002, "ethernet_adapters": 4, "iourc_content": "test", "l1_keepalives": true, "name": "test", "nvram": 2048, "ram": 512, "serial_adapters": 0, "startup_config_content": "hostname test", "use_default_iou_values": true}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/3812eced-e777-4f35-8c7e-e6736e34fcfd HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6438493a-152d-4cb0-b8d2-fcfe1f6bf540 HTTP/1.1
{
"console": 2001,
"console": 2002,
"ethernet_adapters": 4,
"initial_config_content": "hostname test",
"iourc_content": "test",
"l1_keepalives": true,
"name": "test",
"nvram": 2048,
"ram": 512,
"serial_adapters": 0,
"startup_config_content": "hostname test",
"use_default_iou_values": true
}
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 461
CONTENT-LENGTH: 685
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
{
"console": 2001,
"console": 2002,
"ethernet_adapters": 4,
"initial_config": "initial-config.cfg",
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpws7fdl5e/iourc",
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyrljan4a/iourc",
"l1_keepalives": true,
"md5sum": null,
"name": "test",
"nvram": 2048,
"path": "iou.bin",
"private_config": null,
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 512,
"serial_adapters": 0,
"startup_config": "startup-config.cfg",
"use_default_iou_values": true,
"vm_id": "3812eced-e777-4f35-8c7e-e6736e34fcfd"
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/6438493a-152d-4cb0-b8d2-fcfe1f6bf540",
"vm_id": "6438493a-152d-4cb0-b8d2-fcfe1f6bf540"
}

@ -1,40 +1,61 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e5b90e65-6f6a-4d44-b2d8-3a5c3a4a626b' -d '{"console": 2001, "hdb_disk_image": "/tmp/hdb", "name": "test", "ram": 1024}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/578b6391-e461-4f17-86f6-dd556d2f4dde' -d '{"console": 2002, "hdb_disk_image": "linux.img", "name": "test", "ram": 1024}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e5b90e65-6f6a-4d44-b2d8-3a5c3a4a626b HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/578b6391-e461-4f17-86f6-dd556d2f4dde HTTP/1.1
{
"console": 2001,
"hdb_disk_image": "/tmp/hdb",
"console": 2002,
"hdb_disk_image": "linux.img",
"name": "test",
"ram": 1024
}
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 601
CONTENT-LENGTH: 1358
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
{
"acpi_shutdown": false,
"adapter_type": "e1000",
"adapters": 1,
"console": 2001,
"boot_priority": "c",
"cdrom_image": "",
"cdrom_image_md5sum": null,
"console": 2002,
"console_type": "telnet",
"cpu_throttling": 0,
"cpus": 1,
"hda_disk_image": "",
"hdb_disk_image": "/tmp/hdb",
"hda_disk_image_md5sum": null,
"hda_disk_interface": "ide",
"hdb_disk_image": "linux.img",
"hdb_disk_image_md5sum": null,
"hdb_disk_interface": "ide",
"hdc_disk_image": "",
"hdc_disk_image_md5sum": null,
"hdc_disk_interface": "ide",
"hdd_disk_image": "",
"hdd_disk_image_md5sum": null,
"hdd_disk_interface": "ide",
"initrd": "",
"initrd_md5sum": null,
"kernel_command_line": "",
"kernel_image": "",
"kernel_image_md5sum": null,
"legacy_networking": false,
"mac_address": "00:00:ab:4d:de:00",
"name": "test",
"options": "",
"platform": "x86_64",
"process_priority": "low",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 1024,
"vm_id": "e5b90e65-6f6a-4d44-b2d8-3a5c3a4a626b"
"usage": "",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/578b6391-e461-4f17-86f6-dd556d2f4dde",
"vm_id": "578b6391-e461-4f17-86f6-dd556d2f4dde"
}

@ -1,30 +1,33 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/514963f5-93f8-4d18-bcd6-7d50ef7164a6' -d '{"console": 2010, "name": "test"}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/aa45d68c-c68e-4296-9550-641b522a73c2' -d '{"console": 2011, "name": "test"}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/514963f5-93f8-4d18-bcd6-7d50ef7164a6 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/aa45d68c-c68e-4296-9550-641b522a73c2 HTTP/1.1
{
"console": 2010,
"console": 2011,
"name": "test"
}
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 359
CONTENT-LENGTH: 413
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2010,
"console": 2011,
"enable_remote_console": false,
"headless": false,
"name": "test",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_id": "514963f5-93f8-4d18-bcd6-7d50ef7164a6",
"vm_directory": null,
"vm_id": "aa45d68c-c68e-4296-9550-641b522a73c2",
"vmname": "VMTEST"
}

@ -1,26 +1,29 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4905e649-6e81-446d-a60b-fd8b058a85e8' -d '{"console": 2011, "name": "test", "startup_script": "ip 192.168.1.1"}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/608a4cd0-476c-40ba-95db-0c81effc8e9c' -d '{"console": 2012, "name": "test", "startup_script": "ip 192.168.1.1"}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4905e649-6e81-446d-a60b-fd8b058a85e8 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/608a4cd0-476c-40ba-95db-0c81effc8e9c HTTP/1.1
{
"console": 2011,
"console": 2012,
"name": "test",
"startup_script": "ip 192.168.1.1"
}
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 236
CONTENT-LENGTH: 438
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
{
"console": 2011,
"console": 2012,
"name": "test",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": "ip 192.168.1.1",
"startup_script_path": "startup.vpc",
"vm_id": "4905e649-6e81-446d-a60b-fd8b058a85e8"
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/608a4cd0-476c-40ba-95db-0c81effc8e9c",
"vm_id": "608a4cd0-476c-40ba-95db-0c81effc8e9c"
}

@ -0,0 +1,8 @@
Docker
---------------------
.. toctree::
:glob:
:maxdepth: 2
docker/*

@ -0,0 +1,13 @@
/v1/docker/images
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/docker/images
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get all available Docker images
Response status codes
**********************
- **200**: Success

@ -0,0 +1,49 @@
/v1/projects/{project_id}/docker/images
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/docker/images
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new Docker container
Parameters
**********
- **project_id**: UUID for the project
Response status codes
**********************
- **400**: Invalid request
- **201**: Instance created
- **409**: Conflict
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
</table>

@ -0,0 +1,20 @@
/v1/projects/{project_id}/docker/images/{id}
----------------------------------------------------------------------------------------------------------------------
.. contents::
DELETE /v1/projects/**{project_id}**/docker/images/**{id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Delete a Docker container
Parameters
**********
- **id**: ID for the container
- **project_id**: UUID for the project
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance deleted

@ -0,0 +1,40 @@
/v1/projects/{project_id}/docker/images/{id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/docker/images/**{id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Add a NIO to a Docker container
Parameters
**********
- **id**: ID of the container
- **adapter_number**: Adapter where the nio should be added
- **project_id**: UUID for the project
- **port_number**: Port on the adapter
Response status codes
**********************
- **400**: Invalid request
- **201**: NIO created
- **404**: Instance doesn't exist
DELETE /v1/projects/**{project_id}**/docker/images/**{id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Remove a NIO from a Docker container
Parameters
**********
- **id**: ID of the container
- **adapter_number**: Adapter where the nio should be added
- **project_id**: UUID for the project
- **port_number**: Port on the adapter
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: NIO deleted

@ -0,0 +1,50 @@
/v1/projects/{project_id}/docker/images/{id}/reload
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/docker/images/**{id}**/reload
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Restart a Docker container
Parameters
**********
- **id**: ID of the container
- **project_id**: UUID of the project
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance restarted
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
</table>

@ -0,0 +1,50 @@
/v1/projects/{project_id}/docker/images/{id}/start
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/docker/images/**{id}**/start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start a Docker container
Parameters
**********
- **id**: ID of the container
- **project_id**: UUID of the project
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance started
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
</table>

@ -0,0 +1,50 @@
/v1/projects/{project_id}/docker/images/{id}/stop
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/docker/images/**{id}**/stop
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stop a Docker container
Parameters
**********
- **id**: ID of the container
- **project_id**: UUID of the project
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance stopped
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
</table>

@ -0,0 +1,50 @@
/v1/projects/{project_id}/docker/images/{id}/suspend
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/docker/images/**{id}**/suspend
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pause a Docker container
Parameters
**********
- **id**: ID of the container
- **project_id**: UUID of the project
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance paused
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>console</td> <td> </td> <td>string</td> <td>console name</td> </tr>
<tr><td>imagename</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>startcmd</td> <td> </td> <td>string</td> <td>Docker CMD entry</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>Docker VM instance identifier</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>adapter_type</td> <td> </td> <td>string</td> <td>Docker adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>integer</td> <td>number of adapters</td> </tr>
<tr><td>cid</td> <td> </td> <td>string</td> <td>Docker container ID</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>Docker image name</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Docker container name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Docker container instance UUID</td> </tr>
</table>

@ -9,8 +9,8 @@ Get a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
Response status codes
**********************
@ -38,8 +38,8 @@ Update a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
Response status codes
**********************
@ -60,6 +60,7 @@ Ethernet switch port
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>ethertype</td> <td> </td> <td>enum</td> <td>Possible values: , 0x8100, 0x88A8, 0x9100, 0x9200</td> </tr>
<tr><td>port</td> <td>&#10004;</td> <td>integer</td> <td>Port number</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: access, dot1q, qinq</td> </tr>
<tr><td>vlan</td> <td>&#10004;</td> <td>integer</td> <td>VLAN number</td> </tr>
@ -95,8 +96,8 @@ Delete a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
Response status codes
**********************

@ -9,9 +9,9 @@ Add a NIO to a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************
@ -47,6 +47,17 @@ Linux Ethernet Network Input/Output
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_linux_ethernet</td> </tr>
</table>
NAT
^^^^^^^^^^^^^^^^^^^^^^
NAT Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_nat</td> </tr>
</table>
NULL
^^^^^^^^^^^^^^^^^^^^^^
NULL Network Input/Output
@ -117,7 +128,7 @@ Body
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
<tr><td>nio</td> <td>&#10004;</td> <td>UDP, Ethernet, LinuxEthernet, TAP, UNIX, VDE, NULL</td> <td></td> </tr>
<tr><td>nio</td> <td>&#10004;</td> <td>UDP, Ethernet, LinuxEthernet, NAT, TAP, UNIX, VDE, NULL</td> <td></td> </tr>
<tr><td>port_settings</td> <td> </td> <td>object</td> <td>Ethernet switch</td> </tr>
</table>
@ -128,9 +139,9 @@ Remove a NIO from a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************

@ -9,9 +9,9 @@ Start a packet capture on a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************

@ -9,9 +9,9 @@ Stop a packet capture on a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************

@ -0,0 +1,13 @@
/v1/dynamips/vms
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/dynamips/vms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the list of Dynamips VMS
Response status codes
**********************
- **200**: List of Dynamips VM retrieved

@ -0,0 +1,13 @@
/v1/dynamips/vms/{path}
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/dynamips/vms/**{path}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Upload Dynamips image.
Response status codes
**********************
- **204**: Image uploaded

@ -23,6 +23,7 @@ Input
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
@ -35,6 +36,7 @@ Input
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td>&#10004;</td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
@ -73,6 +75,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>['integer', 'null']</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
@ -85,6 +88,7 @@ Output
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
@ -110,6 +114,7 @@ Output
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>

@ -24,6 +24,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>['integer', 'null']</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
@ -36,6 +37,7 @@ Output
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
@ -61,6 +63,7 @@ Output
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
@ -90,6 +93,7 @@ Input
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
@ -101,6 +105,7 @@ Input
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
@ -110,7 +115,6 @@ Input
<tr><td>nvram</td> <td> </td> <td>integer</td> <td>amount of NVRAM in KB</td> </tr>
<tr><td>platform</td> <td> </td> <td>string</td> <td>platform</td> </tr>
<tr><td>power_supplies</td> <td> </td> <td>array</td> <td>Power supplies status</td> </tr>
<tr><td>private_config</td> <td> </td> <td>string</td> <td>path to the IOS private configuration file</td> </tr>
<tr><td>private_config_base64</td> <td> </td> <td>string</td> <td>private configuration base64 encoded</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>string</td> <td>Content of IOS private configuration file</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>amount of RAM in MB</td> </tr>
@ -123,7 +127,6 @@ Input
<tr><td>slot5</td> <td> </td> <td></td> <td>Network module slot 5</td> </tr>
<tr><td>slot6</td> <td> </td> <td></td> <td>Network module slot 6</td> </tr>
<tr><td>sparsemem</td> <td> </td> <td>boolean</td> <td>sparse memory feature</td> </tr>
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>string</td> <td>Content of IOS startup configuration file</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
@ -138,6 +141,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>['integer', 'null']</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
@ -150,6 +154,7 @@ Output
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
@ -175,6 +180,7 @@ Output
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>

@ -9,9 +9,9 @@ Add a NIO to a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Adapter where the nio should be added
- **port_number**: Port on the adapter
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
@ -27,9 +27,9 @@ Remove a NIO from a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Adapter from where the nio should be removed
- **port_number**: Port on the adapter
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

@ -9,9 +9,9 @@ Start a packet capture on a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Adapter to start a packet capture
- **port_number**: Port on the adapter
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

@ -9,9 +9,9 @@ Stop a packet capture on a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Adapter to stop a packet capture
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

@ -19,7 +19,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>private_config_content</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Content of the private configuration file</td> </tr>
<tr><td>startup_config_content</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Content of the startup configuration file</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the private configuration file</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the startup configuration file</td> </tr>
</table>

@ -0,0 +1,8 @@
File
---------------------
.. toctree::
:glob:
:maxdepth: 2
file/*

@ -0,0 +1,24 @@
/v1/files/stream
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/files/stream
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stream a file from the server
Response status codes
**********************
- **200**: File retrieved
- **409**: Can't access to file
- **404**: File doesn't exist
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>location</td> <td>&#10004;</td> <td>['string']</td> <td>File path</td> </tr>
</table>

@ -0,0 +1,19 @@
/v1/iou/vms
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/iou/vms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the list of IOU VMS
Response status codes
**********************
- **200**: List of IOU VM retrieved
Sample session
***************
.. literalinclude:: ../../examples/get_iouvms.txt

@ -0,0 +1,13 @@
/v1/iou/vms/{path}
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/iou/vms/**{path}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Upload IOU image.
Response status codes
**********************
- **204**: Image uploaded

@ -25,14 +25,18 @@ Input
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>console</td> <td> </td> <td>['integer', 'null']</td> <td>console TCP port</td> </tr>
<tr><td>ethernet_adapters</td> <td> </td> <td>integer</td> <td>How many ethernet adapters are connected to the IOU</td> </tr>
<tr><td>initial_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Initial configuration of the IOU</td> </tr>
<tr><td>iourc_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the iourc file, if a file exist on servers this variable is ignored. It's mostly for compatibility with < 1.3 releases</td> </tr>
<tr><td>iourc_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the iourc file. Ignored if Null</td> </tr>
<tr><td>l1_keepalives</td> <td> </td> <td>['boolean', 'null']</td> <td>Always up ethernet interface</td> </tr>
<tr><td>md5sum</td> <td> </td> <td>['string', 'null']</td> <td>Checksum of iou binary</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>IOU VM name</td> </tr>
<tr><td>nvram</td> <td> </td> <td>['integer', 'null']</td> <td>Allocated NVRAM KB</td> </tr>
<tr><td>path</td> <td>&#10004;</td> <td>string</td> <td>Path of iou binary</td> </tr>
<tr><td>private_config</td> <td> </td> <td>['string', 'null']</td> <td>Path to the private-config of IOU</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Private-config of IOU</td> </tr>
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>Allocated RAM MB</td> </tr>
<tr><td>serial_adapters</td> <td> </td> <td>integer</td> <td>How many serial adapters are connected to the IOU</td> </tr>
<tr><td>startup_config</td> <td> </td> <td>['string', 'null']</td> <td>Path to the startup-config of IOU</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Startup-config of IOU</td> </tr>
<tr><td>use_default_iou_values</td> <td> </td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>IOU VM identifier</td> </tr>
</table>
@ -45,16 +49,19 @@ Output
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>console</td> <td>&#10004;</td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>ethernet_adapters</td> <td>&#10004;</td> <td>integer</td> <td>How many ethernet adapters are connected to the IOU</td> </tr>
<tr><td>initial_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the initial config content relative to project directory</td> </tr>
<tr><td>iourc_path</td> <td> </td> <td>['string', 'null']</td> <td>Path of the iourc file used by remote servers</td> </tr>
<tr><td>l1_keepalives</td> <td>&#10004;</td> <td>boolean</td> <td>Always up ethernet interface</td> </tr>
<tr><td>md5sum</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Checksum of iou binary</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>IOU VM name</td> </tr>
<tr><td>nvram</td> <td>&#10004;</td> <td>integer</td> <td>Allocated NVRAM KB</td> </tr>
<tr><td>path</td> <td>&#10004;</td> <td>string</td> <td>Path of iou binary</td> </tr>
<tr><td>private_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the private-config content relative to project directory</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>Allocated RAM MB</td> </tr>
<tr><td>serial_adapters</td> <td>&#10004;</td> <td>integer</td> <td>How many serial adapters are connected to the IOU</td> </tr>
<tr><td>startup_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the startup-config content relative to project directory</td> </tr>
<tr><td>use_default_iou_values</td> <td>&#10004;</td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>IOU VM UUID</td> </tr>
</table>

@ -26,16 +26,19 @@ Output
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>console</td> <td>&#10004;</td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>ethernet_adapters</td> <td>&#10004;</td> <td>integer</td> <td>How many ethernet adapters are connected to the IOU</td> </tr>
<tr><td>initial_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the initial config content relative to project directory</td> </tr>
<tr><td>iourc_path</td> <td> </td> <td>['string', 'null']</td> <td>Path of the iourc file used by remote servers</td> </tr>
<tr><td>l1_keepalives</td> <td>&#10004;</td> <td>boolean</td> <td>Always up ethernet interface</td> </tr>
<tr><td>md5sum</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Checksum of iou binary</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>IOU VM name</td> </tr>
<tr><td>nvram</td> <td>&#10004;</td> <td>integer</td> <td>Allocated NVRAM KB</td> </tr>
<tr><td>path</td> <td>&#10004;</td> <td>string</td> <td>Path of iou binary</td> </tr>
<tr><td>private_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the private-config content relative to project directory</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>Allocated RAM MB</td> </tr>
<tr><td>serial_adapters</td> <td>&#10004;</td> <td>integer</td> <td>How many serial adapters are connected to the IOU</td> </tr>
<tr><td>startup_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the startup-config content relative to project directory</td> </tr>
<tr><td>use_default_iou_values</td> <td>&#10004;</td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>IOU VM UUID</td> </tr>
</table>
@ -70,14 +73,16 @@ Input
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>console</td> <td> </td> <td>['integer', 'null']</td> <td>console TCP port</td> </tr>
<tr><td>ethernet_adapters</td> <td> </td> <td>['integer', 'null']</td> <td>How many ethernet adapters are connected to the IOU</td> </tr>
<tr><td>initial_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Initial configuration of the IOU</td> </tr>
<tr><td>iourc_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the iourc file, if a file exist on servers this variable is ignored. It's mostly for compatibility with < 1.3 releases</td> </tr>
<tr><td>iourc_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the iourc file. Ignored if Null</td> </tr>
<tr><td>l1_keepalives</td> <td> </td> <td>['boolean', 'null']</td> <td>Always up ethernet interface</td> </tr>
<tr><td>md5sum</td> <td> </td> <td>['string', 'null']</td> <td>Checksum of iou binary</td> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>IOU VM name</td> </tr>
<tr><td>nvram</td> <td> </td> <td>['integer', 'null']</td> <td>Allocated NVRAM KB</td> </tr>
<tr><td>path</td> <td> </td> <td>['string', 'null']</td> <td>Path of iou binary</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Private-config of IOU</td> </tr>
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>Allocated RAM MB</td> </tr>
<tr><td>serial_adapters</td> <td> </td> <td>['integer', 'null']</td> <td>How many serial adapters are connected to the IOU</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Startup-config of IOU</td> </tr>
<tr><td>use_default_iou_values</td> <td> </td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
</table>
@ -89,16 +94,19 @@ Output
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>console</td> <td>&#10004;</td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>ethernet_adapters</td> <td>&#10004;</td> <td>integer</td> <td>How many ethernet adapters are connected to the IOU</td> </tr>
<tr><td>initial_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the initial config content relative to project directory</td> </tr>
<tr><td>iourc_path</td> <td> </td> <td>['string', 'null']</td> <td>Path of the iourc file used by remote servers</td> </tr>
<tr><td>l1_keepalives</td> <td>&#10004;</td> <td>boolean</td> <td>Always up ethernet interface</td> </tr>
<tr><td>md5sum</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Checksum of iou binary</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>IOU VM name</td> </tr>
<tr><td>nvram</td> <td>&#10004;</td> <td>integer</td> <td>Allocated NVRAM KB</td> </tr>
<tr><td>path</td> <td>&#10004;</td> <td>string</td> <td>Path of iou binary</td> </tr>
<tr><td>private_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the private-config content relative to project directory</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>Allocated RAM MB</td> </tr>
<tr><td>serial_adapters</td> <td>&#10004;</td> <td>integer</td> <td>How many serial adapters are connected to the IOU</td> </tr>
<tr><td>startup_config</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Path of the startup-config content relative to project directory</td> </tr>
<tr><td>use_default_iou_values</td> <td>&#10004;</td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>IOU VM UUID</td> </tr>
</table>

@ -9,9 +9,9 @@ Add a NIO to a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Network adapter where the nio is located
- **port_number**: Port where the nio should be added
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
@ -33,9 +33,9 @@ Remove a NIO from a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Network adapter where the nio is located
- **port_number**: Port from where the nio should be removed
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

@ -9,9 +9,9 @@ Start a packet capture on a IOU VM instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Adapter to start a packet capture
- **port_number**: Port on the adapter
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

@ -9,9 +9,9 @@ Stop a packet capture on a IOU VM instance
Parameters
**********
- **project_id**: UUID for the project
- **adapter_number**: Adapter to stop a packet capture
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

@ -1,15 +1,15 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/initial_config
/v1/projects/{project_id}/iou/vms/{vm_id}/configs
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/initial_config
GET /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/configs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the initial config content
Retrieve the startup and private configs content
Response status codes
**********************
- **200**: Initial config retrieved
- **200**: Configs retrieved
- **400**: Invalid request
- **404**: Instance doesn't exist
@ -19,12 +19,13 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>content</td> <td>&#10004;</td> <td>['string', 'null']</td> <td>Content of the initial configuration file</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the private configuration file</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the startup configuration file</td> </tr>
</table>
Sample session
***************
.. literalinclude:: ../../examples/get_projectsprojectidiouvmsvmidinitialconfig.txt
.. literalinclude:: ../../examples/get_projectsprojectidiouvmsvmidconfigs.txt

@ -0,0 +1,15 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/configs/save
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/configs/save
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Save the startup and private configs content
Response status codes
**********************
- **200**: Configs saved
- **400**: Invalid request
- **404**: Instance doesn't exist

@ -18,6 +18,15 @@ Response status codes
- **404**: Instance doesn't exist
- **204**: Instance started
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>iourc_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the iourc file. Ignored if Null</td> </tr>
</table>
Sample session
***************

@ -3,6 +3,21 @@
.. contents::
GET /v1/projects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
List projects opened on the server
Response status codes
**********************
- **200**: Project list
Sample session
***************
.. literalinclude:: ../../examples/get_projects.txt
POST /v1/projects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new project on the server
@ -31,7 +46,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>location</td> <td>&#10004;</td> <td>string</td> <td>Base directory where the project should be created on remote server</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Project name</td> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>Project name</td> </tr>
<tr><td>path</td> <td> </td> <td>string</td> <td>Directory of the project on the server</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>temporary</td> <td>&#10004;</td> <td>boolean</td> <td>If project is a temporary project</td> </tr>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save