Compare commits

...
173 Commits
Author SHA1 Message Date
Julien Duponchelle 1b4613fbaf Version 1.3.2 2015-04-28 21:06:04 +02:00
grossmj 30ff5510d9 Merge remote-tracking branch 'origin/master' 2015-04-28 12:02:33 -06:00
grossmj cc03017739 Cleanup the VirtualBox Media Manager after closing a project. Fixes #145. 2015-04-28 12:02:21 -06:00
Julien Duponchelle bad740d32a Fix test on Linux 2015-04-28 15:31:00 +02:00
grossmj a884af983f Avoid Cygwin warning with VPCS on Windows. 2015-04-27 22:23:27 -06:00
Jeremy Grossmann 4f021054e0 Merge pull request #158 from GNS3/keep_iou_config
Do not erase the IOU initial-config if there is one when creating the IOU VM.
2015-04-27 18:37:17 -06:00
Jeremy 8503472c77 Close VirtualBox VM linked clone disks after the VM is unregistered. Fixes #145. 2015-04-27 17:10:32 -06:00
Julien Duponchelle e7ae1776f4 Final fixes for windows test suite 2015-04-27 23:28:12 +02:00
Julien Duponchelle 3f26ada081 Comment broken test 2015-04-27 23:20:01 +02:00
Julien Duponchelle 77f54848e3 Fix some tests on Windows 2015-04-27 23:12:13 +02:00
Julien Duponchelle bf3444933e Fix test qemu now raise 409 if nio_ethernet 2015-04-27 22:54:24 +02:00
Jeremy f208b472a1 TAP interface support for QEMU VMs. Fixes #153. 2015-04-27 14:38:15 -06:00
Jeremy b6a935aeb8 Return an explicit error when a NIO type is not supported by a VM. 2015-04-27 14:19:17 -06:00
Julien Duponchelle 324a4f73d0 Do not erase the IOU config 2015-04-27 18:22:54 +02:00
Julien Duponchelle d5ae4750e9 Do not load IOU handler on Windows during tests
Fix #159
2015-04-27 16:21:56 +02:00
Julien Duponchelle 4df95efdec Skip IOU test on Windows
Fix #159
2015-04-27 15:09:42 +02:00
Julien Duponchelle 834a554fea Fix VPCS tests 2015-04-27 10:14:46 +02:00
grossmj 271cb527d4 Explicit utf-8 decoding. 2015-04-26 21:19:39 -06:00
grossmj 6edf1e3649 Check NIO exists when stopping an IOU capture. 2015-04-26 21:15:15 -06:00
grossmj 017997e0a3 Fixes c7200 NPE setting. 2015-04-26 18:35:12 -06:00
grossmj 3e6996903f Fixes VPCS process termination. 2015-04-26 12:57:06 -06:00
grossmj da2b895c99 Catch FileNotFoundError exception in os.getcwd() 2015-04-26 12:49:29 -06:00
grossmj 683a512917 Fixes #150. 2015-04-25 15:20:15 -06:00
grossmj 80a0e0ebf7 Explicit utf-8 encoding where necessary to avoid Unicode errors on Windows (we require/set an utf-8 locale on other systems). 2015-04-25 11:58:34 -06:00
grossmj d68bf1c263 Removes unnecessary sleep in VirtualBox VM. 2015-04-25 09:36:28 -06:00
Jeremy fa544ef888 Fixes #270. Relative paths management with empty ones. 2015-04-24 17:27:32 -06:00
Julien Duponchelle 24bfd8ab53 New crash report key and doesn't send report for developers 2015-04-24 18:30:31 +02:00
Julien Duponchelle 6b862b8397 Correctly show the host in templates
Fix #157
2015-04-23 14:32:10 +02:00
grossmj 3680c40e23 Catch COM errors when connecting to WMI. 2015-04-23 00:03:44 -06:00
grossmj 30f6263146 Don't assume the PATH environment variable exists. 2015-04-22 21:42:36 -06:00
grossmj 161adb781b Use UUIDs instead of the VM names for VirtualBox pipe paths. 2015-04-22 20:29:52 -06:00
Julien Duponchelle 9c549b175f Add --log options for daemon support 2015-04-22 17:28:58 +02:00
Julien Duponchelle fc289fd868 Basic upstart script 2015-04-22 17:13:39 +02:00
Julien Duponchelle 531e95463c Add qemu-kvm to the list of binary 2015-04-20 10:12:17 +02:00
Julien Duponchelle 3926390d30 Fix tests broken by a previous commit 2015-04-18 09:22:37 +02:00
grossmj 343e007809 Ignore the "OSError: [WinError 0] The operation completed successfully" exception in Windows. 2015-04-16 20:17:06 -06:00
grossmj c6dbf296cf Merge remote-tracking branch 'origin/master' 2015-04-16 13:24:48 -06:00
Julien Duponchelle b5e01f7560 Fix IOU licence check flag 2015-04-16 09:51:02 +02:00
grossmj 4136c29b0f Config paths are not used when updating Dynamips or IOU VM settings. 2015-04-15 19:50:40 -06:00
grossmj aeab9780d8 Fixes initial-configs that were not restored when opening a project containing IOU VMs. 2015-04-15 19:49:40 -06:00
Julien Duponchelle e367f95f96 Drop darwin specific tests 2015-04-15 16:42:26 +02:00
Julien Duponchelle 26a7f83db2 Remove the workaround for dynamips OSX 2015-04-15 15:58:31 +02:00
Julien Duponchelle def453c116 Restore "iourc_path" until I speak with jeremy about it 2015-04-15 15:50:34 +02:00
Julien Duponchelle 997f7cbd6f Fix noise in logs 2015-04-15 15:40:07 +02:00
Julien Duponchelle 750958bd12 Fix tests 2015-04-15 14:33:51 +02:00
grossmj aab4a7243b Merge remote-tracking branch 'origin/master' 2015-04-14 18:21:42 -06:00
Julien Duponchelle aa2472fb30 Rewrote image search
This code is more generic and support all cases. Previously
we had bug where the user lost his image path if the image
was not located in image directory.
2015-04-14 18:46:55 +02:00
Julien Duponchelle e51a129216 Prevent parallel execution of VBox commands
In theory it should not be a problem.
But It's create issues like this one:

Fix: https://github.com/GNS3/gns3-gui/issues/261
2015-04-14 15:00:45 +02:00
Julien Duponchelle 6ec081c774 Include tests in Pypi package
Require by gentoo maintainer
2015-04-14 14:53:01 +02:00
Julien Duponchelle 55fed02299 Fix a crash when in some cases you can't access to VBOX state
Fix #137
2015-04-14 14:35:48 +02:00
Julien Duponchelle 45ca995dea Fix crash if VirtualBox doesn't return API version
Fix #136
2015-04-14 14:32:44 +02:00
Julien Duponchelle af942dc419 Fix a crash in VirtualBox vm creation
Fix #138
2015-04-14 14:24:13 +02:00
grossmj 443842e9b8 Allocate random names for Dynamips NIOs. 2015-04-12 18:14:45 -06:00
grossmj 78bc6e29a8 Explicitly delete Dynamips NIOs and unmap VCs for ATM and Frame-Relay switches. 2015-04-12 18:09:53 -06:00
grossmj de5e8f852d Cleaner and generic way to set Qemu & IOU VM settings. 2015-04-12 15:09:37 -06:00
Julien Duponchelle c99998d73c Fix version 2015-04-12 11:08:30 +02:00
Julien Duponchelle c4963abcba 1.3.2 dev1 2015-04-11 13:59:22 +02:00
Julien Duponchelle 1ba9a2fcfa Prepare 1.3.1 2015-04-11 09:34:20 +02:00
Julien Duponchelle eac751948e Prepare RC4 2015-04-09 10:57:25 +02:00
Julien Duponchelle b2e53a94d4 Initial config file content can be empty 2015-04-09 10:53:18 +02:00
Julien Duponchelle 2d507fd17a Fix crash if IOU initial config is emtpy
Fix #147
2015-04-09 10:27:50 +02:00
Julien Duponchelle 202032f334 Fix error messages in JSON schema 2015-04-09 10:24:11 +02:00
Julien Duponchelle 1d997d9da5 Return more informations about bad requests for crash reports 2015-04-09 10:22:25 +02:00
Julien Duponchelle 2b6945664b Allow less strict dependencies
Fix #146
2015-04-09 09:50:26 +02:00
Julien Duponchelle 9b79cce488 Dev4 version 2015-04-09 09:22:04 +02:00
Julien Duponchelle 2d0f73454f Missing project name in documentation 2015-04-09 09:21:49 +02:00
grossmj 7e8b0a48ab Merge remote-tracking branch 'origin/master' 2015-04-08 11:17:49 -06:00
grossmj 7d7972afb3 Some spring cleaning. 2015-04-08 11:17:34 -06:00
Julien Duponchelle f799fc1ab7 Prepare 1.3.1rc3 2015-04-07 16:16:19 +02:00
Julien Duponchelle 3b4a060ae9 Fix missing IOU documentation
Fix #143
2015-04-07 16:09:27 +02:00
Julien Duponchelle db6db31b60 Add missing project name in curl documentation 2015-04-07 15:28:18 +02:00
Julien Duponchelle 1c4a059982 Look in old IOU images location in order to smooth transition
Fix #141
2015-04-07 15:25:53 +02:00
Julien Duponchelle 4189089e1b Prepare 1.3.1rc2 2015-04-06 21:34:32 +02:00
Julien Duponchelle 7efb7c2978 Do not overwrite initial-config IOU if client send an empty
Fix #140
2015-04-06 21:30:57 +02:00
Julien Duponchelle d16a389d1f Fix documentation about /ports/udp 2015-04-06 11:57:05 +02:00
Julien Duponchelle e3239b7e36 Prepare 1.3.1rc1 2015-04-05 11:47:56 +02:00
grossmj 1c4202187a Fixes TAP interface use with VPCS. 2015-04-03 19:11:28 -06:00
grossmj 631d7a1e25 Avoid disconnecting valid VirtualBox VM adapter backends. 2015-04-03 19:08:29 -06:00
Jeremy Grossmann 19c5fdb1fd Merge pull request #135 from GNS3/fix_virtualbox_adapters
Fixes missing adapters in VBox Virtual Machines.
2015-04-04 00:13:58 +00:00
Julien Duponchelle b46e2cf013 Fix issues with macos X dynamips not freeing UDP port
Fix #133
2015-04-03 13:32:07 +02:00
Julien Duponchelle 1acc9398d5 Fix encoding error when saving dynamips configuration
Fix #134
2015-04-03 12:13:07 +02:00
Julien Duponchelle 8fc256da6d Fix missing adapters in VBox Virtual Machines
If you have 4 network adapter and attach only ethernet 1 and 4.
You will see eth0, eth1, eth2 and eth3 with eth0 and eth3 attached.

https://github.com/GNS3/gns3-gui/issues/255
2015-04-03 12:08:18 +02:00
Julien Duponchelle b330b2c157 The upload web page return a 200 in case of error
Otherwise IE doesn't display error messages...

Fix #132
2015-04-01 21:46:23 +02:00
Julien Duponchelle 990f243f15 Do not crash if dynamips config contain non ascii chars
But I don't know why user can want to do that.

Fix #123
2015-04-01 19:55:11 +02:00
Julien Duponchelle 49f36a83bd Test path with chinese charcaters in Qemu
Refs #120
2015-04-01 18:24:36 +02:00
Julien Duponchelle a3c8201bcc Do not crash if no console port is available for VBox
I don't know how user manage to fall in this situation.

Fix #127
2015-04-01 17:59:58 +02:00
Julien Duponchelle 90d55fcb8a Raise a DynamipsError if we can't access to VM status
Fix #129
2015-04-01 17:39:37 +02:00
Julien Duponchelle 4cd5ec5613 Check name of the VBoxManage executable
Fix #118
2015-04-01 17:36:22 +02:00
Julien Duponchelle b2d8a8d810 Exclude docs and tests package from distribution
Fix #131
2015-04-01 16:41:11 +02:00
Julien Duponchelle 026fe3df9b Catch error when qemu additional options are invalid
Fix #119
2015-03-31 22:14:08 +02:00
Julien Duponchelle 220d585dcc Fix ClientDisconnectedError
Fix #124
2015-03-31 22:05:50 +02:00
Julien Duponchelle 93344e9427 Fix crash when NIO doesn't exist
Fix #122
2015-03-31 22:00:05 +02:00
Julien Duponchelle 6d6cfacdc8 Turn off crash report if raven not available
Fix #121
2015-03-31 21:52:00 +02:00
Julien Duponchelle 36f5fd2865 Fix crash when IOU script file is incorrect
Fix #125
2015-03-31 21:50:47 +02:00
Jeremy 47ffdbd4ed Bump version to 1.3.1.dev1 2015-03-30 13:09:05 -06:00
Jeremy ddf0194e8e 1.3.0 release 2015-03-30 10:10:03 -06:00
Julien Duponchelle 9bf875699f Fix coveralls 2015-03-30 17:24:03 +02:00
Julien Duponchelle 420a1c2da2 Fix rare crash in tests for travis and fix coverage 2015-03-30 17:03:49 +02:00
Julien Duponchelle da00aa030a Fix missing /v1 in api documentation
Fix #116
2015-03-30 11:05:54 +02:00
grossmj ee8362d89a Fixes issue when asyncio read is cancelled and data is still sent by Dynamips hypervisor. Fixes #113. 2015-03-28 19:23:01 -06:00
grossmj 056ff14437 Fixes unicode decode error when saving IOS router configs. Fixes #115. 2015-03-28 18:09:53 -06:00
Julien Duponchelle 3c917c59fb Fix error when missing adapter
Fix #112
2015-03-27 16:20:31 +01:00
Julien Duponchelle 4a0879f2d1 Branches inscrtructions 2015-03-27 10:32:29 +01:00
Julien Duponchelle 533ce78b90 Fix crash if we call stop on dynamips on non started process
Fix #111
2015-03-27 10:08:03 +01:00
Julien Duponchelle be199b77a5 Homepage cleanup 2015-03-27 10:04:16 +01:00
Julien Duponchelle bff164afcb Merge pull request #106 from aka001/homepage_added
Added homepage
2015-03-27 09:46:42 +01:00
Jeremy 81ce86a8a7 Fixes use_default_iou_values param was not set. 2015-03-26 16:47:55 -06:00
Jeremy 1df8f61035 Merge remote-tracking branch 'origin/master' 2015-03-26 15:11:41 -06:00
Jeremy c7034c25ef Fixes issue when IOURC environment variable is set to None. 2015-03-26 15:11:36 -06:00
Julien Duponchelle 2e72bc2d3a Fix tests 2015-03-26 17:43:00 +01:00
Julien Duponchelle 64152c1af8 Fix a crash in CI, making log impossible to read 2015-03-26 15:49:51 +01:00
Jeremy 879ed9e4e6 Fixes issue when exporting IOS router configs. 2015-03-25 14:58:04 -06:00
Jeremy ec6a761e04 Fixes check if VPCS process is running. 2015-03-25 14:43:51 -06:00
Jeremy 7d8ff54c78 Merge remote-tracking branch 'origin/master' 2015-03-25 14:37:10 -06:00
grossmj 588088ca93 Fixes bug when remove_nio() is not a coroutine for ATM and FR switches. 2015-03-24 22:15:49 -06:00
grossmj 07067d6765 Fixes how to test if iou and iouyap are running. 2015-03-24 22:04:48 -06:00
grossmj 980e63e667 Allocate a random port for Qemu monitor. Fixes issue with pre 1.3 projects. 2015-03-23 22:52:02 -06:00
grossmj 7b1a707967 Bump version to 1.3.0.dev3 2015-03-23 21:22:10 -06:00
grossmj 73310105a8 Fixes default chassis bug. 2015-03-23 21:13:22 -06:00
Jeremy 1c0c300ded Bump version to 1.3.0.dev3 2015-03-23 18:37:42 -06:00
Jeremy 51659b6087 Bump version to 1.3.0rc2 2015-03-23 15:41:10 -06:00
Akash Agrawall a25b17fe95 Removed merge conflict 2015-03-24 02:42:38 +05:30
Julien Duponchelle 6d0d945d6c Changelog 2015-03-23 20:25:44 +01:00
Jeremy b5aabd4cc5 Fixes initial-config not loading for IOU L2. 2015-03-23 12:30:27 -06:00
Julien Duponchelle cde5c3d994 Fix tests 2015-03-23 15:56:18 +01:00
Julien Duponchelle f4c7212e33 Update sentry key for the RC2
This allow to revoke crash report for old releases
2015-03-23 15:24:57 +01:00
grossmj f451ed144e Prevent error when suspend/resume is not supported in QEMU VM. 2015-03-22 20:40:19 -06:00
grossmj a77023d1ee Bump version to 1.3.0.dev2 2015-03-21 22:47:12 -06:00
grossmj 24300b2502 Adds project id when requesting UDP port. 2015-03-21 22:27:40 -06:00
grossmj 153914bf97 Make sure used ports in a project are cleaned up when closing it. 2015-03-21 17:19:12 -06:00
grossmj 2d6d153262 Save configs when project is committed. 2015-03-21 14:52:17 -06:00
grossmj 628dfef0d3 Initialize chassis when creating an IOS router. Fixes #107. 2015-03-21 13:58:52 -06:00
Jeremy 17d5b3a7bc Remove unnecessary locks. 2015-03-20 19:19:49 -06:00
Jeremy Grossmann 5b08677537 Merge pull request #104 from GNS3/dynamips_hypervisor_lock
Asyncio lock for Dynamips hypervisor.
2015-03-21 00:24:54 +00:00
Akash Agrawall 257735255c Added homepage 2015-03-20 17:09:53 +05:30
Julien Duponchelle 01bcbe2fd9 Lock the dynamips reader an writer
Fix #103
2015-03-20 10:21:40 +01:00
grossmj 7473dec5ad Bump version to 1.3.0.dev1 2015-03-19 19:56:31 -06:00
Julien Duponchelle 29b7f0e164 Merge branch 'asyncio' 2015-03-19 17:46:30 +01:00
Julien Duponchelle 533baf0445 1.3.0rc1 2015-03-19 17:46:03 +01:00
Julien Duponchelle 253ab4e2b5 PEP8 2015-03-19 17:42:43 +01:00
Julien Duponchelle ddb8a9f06e Fix an issue in IOU relative path looking 2015-03-19 15:36:06 +01:00
Jeremy f31071d510 Bump version to 1.3.0rc1.dev3 2015-03-18 15:40:02 -06:00
Jeremy 8415117d2d Save IOS router configs when saving the project (done right this time). 2015-03-18 15:34:31 -06:00
Jeremy f6b122cdfa Look in legacy IOU images dir when looking for relative IOU image path. 2015-03-17 19:28:43 -06:00
Jeremy 44c8396997 Bump version to 1.3.0rc1.dev2 2015-03-17 19:08:18 -06:00
Jeremy fb0490d8e3 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-17 18:53:36 -06:00
Jeremy 163d1e375d Save IOS configs when a project is committed. 2015-03-17 18:53:24 -06:00
Julien Duponchelle 6330e99ff1 More robust IOUVM support 2015-03-17 22:18:55 +01:00
Julien Duponchelle 386b311755 Fix iou key verification for large hostid 2015-03-17 20:15:01 +01:00
Julien Duponchelle 4a9f578784 Support IOURC update 2015-03-17 19:00:14 +01:00
Julien Duponchelle 8ca9c2121a Do not crash if iourc file is missing 2015-03-17 18:34:23 +01:00
Julien Duponchelle b5f134dbb2 Merge pull request #102 from vivek425ster/master
Modify README.rst to specify how to run tests.
2015-03-17 16:56:18 +01:00
Vivek Jain 42f51ddc00 Modify README.rst to specify how to run tests. 2015-03-17 21:10:28 +05:30
Julien Duponchelle 66cdf39ea2 Support uploading iourc 2015-03-17 16:31:45 +01:00
Julien Duponchelle 64eb54ae3d Merge pull request #101 from aka001/modified_README
Modified README
2015-03-17 15:42:55 +01:00
Julien Duponchelle 964ea0f577 Fix random behavior in tests 2015-03-17 15:40:58 +01:00
Akash Agrawall dc1c12b7d0 Modified README 2015-03-17 20:04:20 +05:30
Julien Duponchelle bb7eda63af Support more all QEMU status
Fix #98
2015-03-17 11:02:14 +01:00
Julien Duponchelle 54bccb0628 Restore configuration live reload
Closes #94
2015-03-17 10:22:18 +01:00
Jeremy 2de817214f Do not hide non-executable file in the UploadHandler. 2015-03-16 19:16:15 -06:00
Jeremy 93a5f4be79 Temporarily deactivate IOS router saveconfigs. 2015-03-16 17:36:23 -06:00
Jeremy 87d12452f9 Disable the netifaces dependency which creates issues. 2015-03-16 16:35:02 -06:00
Jeremy 46fe973a96 Save IOS router configs when the user saves a project. 2015-03-16 16:33:37 -06:00
Jeremy cc9b575b77 Bind UDP tunnels to the correct source address. Fixes #96. 2015-03-16 12:45:21 -06:00
Julien Duponchelle bcb1ce02ab Refactor config management in tests 2015-03-16 15:03:41 +01:00
Julien Duponchelle e54649accd Fix dynamips tests 2015-03-16 14:42:00 +01:00
Julien Duponchelle c05edfe415 Fix test manager 2015-03-16 12:08:23 +01:00
Julien Duponchelle cf247a9301 Fix iou tests and add tests 2015-03-16 11:52:22 +01:00
Julien Duponchelle 3a6a04b8e5 Fix version test 2015-03-16 10:18:37 +01:00
grossmj 21587fda5a Removes confreg setting for IOS routers. 2015-03-14 16:31:15 -06:00
grossmj 30ed89847b Adds netifaces module in the setup dependencies. 2015-03-14 15:40:00 -06:00
grossmj 6d56da03e5 Fixes tests. 2015-03-14 13:16:27 -06:00
grossmj 25b778aec0 Bump version to 1.3.0rc1.dev1 2015-03-13 22:42:25 -06:00
223 changed files with 3168 additions and 1883 deletions

No files matched your search

+1 -1
View File
@@ -29,4 +29,4 @@ notifications:
# on_failure: always
after_success:
- coveralls
- coveralls --data_file .coverage --base_dir gns3server
+108
View File
@@ -1,5 +1,113 @@
# Change Log
## 1.3.2 28/04/2015
* Cleanup the VirtualBox Media Manager after closing a project.
* Avoid Cygwin warning with VPCS on Windows.
* Close VirtualBox VM linked clone disks after the VM is unregistered.
* TAP interface support for QEMU VMs.
* Return an explicit error when a NIO type is not supported by a VM.
* Do not erase the IOU config
* Explicit utf-8 decoding.
* Check NIO exists when stopping an IOU capture.
* Fixes c7200 NPE setting.
* Fixes VPCS process termination.
* Catch FileNotFoundError exception in os.getcwd()
* Explicit utf-8 encoding where necessary to avoid Unicode errors on Windows (we require/set an utf-8 locale on other systems).
* Fixes #270. Relative paths management with empty ones.
* New crash report key and doesn't send report for developers
* Catch COM errors when connecting to WMI.
* Don't assume the PATH environment variable exists.
* Use UUIDs instead of the VM names for VirtualBox pipe paths.
* Add --log options for daemon support
* Basic upstart script
* Add qemu-kvm to the list of binary
* Fix IOU licence check flag
* Config paths are not used when updating Dynamips or IOU VM settings.
* Fixes initial-configs that were not restored when opening a project containing IOU VMs.
* Prevent parallel execution of VBox commands
* Fix a crash when in some cases you can't access to VBOX state
* Fix crash if VirtualBox doesn't return API version
* Fix a crash in VirtualBox vm creation
* Allocate random names for Dynamips NIOs.
* Explicitly delete Dynamips NIOs and unmap VCs for ATM and Frame-Relay switches.
## 1.3.1 11/04/2015
* Release
## 1.3.1rc4 09/04/2015
* Initial config file content can be empty (fix export issues)
* Fix crash if IOU initial config is emtpy
* Return more informations about bad requests for crash reports
* Allow less strict dependencies for easier install
* Missing project name in documentation
* Some spring cleaning
## 1.3.1rc3 07/04/2015
* Fix missing IOU documentation
* Add missing project name in curl documentation
* Look in old IOU images location in order to smooth transition
## 1.3.1rc2 06/04/2015
* Do not overwrite initial-config IOU if client send an empty
* Fix documentation about /ports/udp
## 1.3.1rc1 05/04/2015
* Fix issues with macos X dynamips not freeing UDP port
* Fix encoding error when saving dynamips configuration
* The upload web page return a 200 in case of error (IE compatibility)
* Do not crash if dynamips config contain non ascii chars
* Test path with chinese charcaters in Qemu
* Do not crash if no console port is available for VBox
* Raise a DynamipsError if we can't access to VM status
* Check name of the VBoxManage executable
* Exclude docs and tests package from distribution
* Catch error when qemu additional options are invalid
* Fix ClientDisconnectedError
* Fix crash when NIO doesn't exist
* Turn off crash report if raven not available
* Fix crash when IOU script file is incorrect
## 1.3.0 30/03/2015
* Fix issue when asyncio read is cancelled and data is still sent by Dynamips hypervisor.
* Fix unicode decode error when saving IOS router configs.
* Fix error when missing adapter in Dynamips IOS router.
* Fix crash if we call stop on dynamips on non started process.
* Fix use_default_iou_values param was not set.
* Fix issue when IOURC environment variable is set to None.
* Fix issue when exporting IOS router configs.
* Fix check if VPCS process is running.
* Fix bug when remove_nio() is not a coroutine for ATM and FR switches.
* Fix how to test if iou and iouyap are running.
* Allocate a random port for Qemu monitor. Fixes issue with pre 1.3 projects.
* Fix default chassis bug.
## 1.3.0rc2 23/03/2015
* Update sentry key
* Prevent error when suspend/resume is not supported in QEMU VM.
* Adds project id when requesting UDP port.
* Make sure used ports in a project are cleaned up when closing it.
* Save configs when project is committed.
* Initialize chassis when creating an IOS router. Fixes #107.
* Lock the dynamips reader an writer
## 1.3.0rc1 19/03/2015
* Save IOS router config when saving the project
* Look in legacy IOU images directory
* Support IOURC upload
* Configuration on UNIX
* Support all QEMU status
* Bind tunnel UDP to the correct source index
## 1.3.0beta2 13/03/2015
* Fixed issue when VBoxManage returns an error.
+2 -2
View File
@@ -4,8 +4,8 @@ include INSTALL
include LICENSE
include MANIFEST.in
include tox.ini
recursive-exclude tests *
recursive-include docs *
recursive-include tests *
recursive-exclude docs *
recursive-include gns3server *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
+48
View File
@@ -14,6 +14,25 @@ Clients like the GNS3 GUI controls the server using a HTTP REST API.
You will need the GNS3 GUI (gns3-gui repository) to control the server.
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.
unstable
********
*Never* use this branch for production. Major new features pull requests goes here.
Linux
-----
GNS3 is perhaps packaged for your distribution:
* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
Linux (Debian based)
--------------------
@@ -43,11 +62,40 @@ Finally these commands will install the server as well as the rest of the depend
sudo python3 setup.py install
gns3server
To run tests use:
.. code:: bash
py.test -v
Run as daemon
***************
You will found init sample script for various systems
inside the init directory.
upstart
~~~~~~~
For ubuntu < 15.04
You need to copy init/gns3.conf.upstart to /etc/init/gns3.conf
.. code:: bash
sudo chown root /etc/init/gns3.conf
sudo service gns3 start
Windows
-------
Please use our all-in-one installer.
If you install it via source you need to install also:
https://sourceforge.net/projects/pywin32/
Mac OS X
--------
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80 HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80 HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ac98c05c-dbf1-4157-8f4c-6a0319a0bcdc'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/becc8bf8-1936-4076-b7dd-ee83ba078907'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ac98c05c-dbf1-4157-8f4c-6a0319a0bcdc HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/becc8bf8-1936-4076-b7dd-ee83ba078907 HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/acf7667f-91d4-4be5-9eec-f453783bb983/adapters/1/ports/0/nio'
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'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/acf7667f-91d4-4be5-9eec-f453783bb983/adapters/1/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/779f3f81-60ab-4d26-860c-75f915b1d70b/adapters/1/ports/0/nio HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/da298f63-4d5b-44a7-8672-ec6642009725'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/6537c17b-2e47-46f9-b96b-6fc66382709f'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/da298f63-4d5b-44a7-8672-ec6642009725 HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/6537c17b-2e47-46f9-b96b-6fc66382709f HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/75fa07c2-fb3d-4a19-815d-2dee5aa5325c/adapters/1/ports/0/nio'
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'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/75fa07c2-fb3d-4a19-815d-2dee5aa5325c/adapters/1/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b54e4616-058f-413d-a589-0b7c5da20aa3/adapters/1/ports/0/nio HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/c99f4293-b8b1-40a6-8535-014c4afc2fe7/adapters/0/ports/0/nio'
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'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/c99f4293-b8b1-40a6-8535-014c4afc2fe7/adapters/0/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/387fb016-f1fc-4844-a25e-97c08ef77274/adapters/0/ports/0/nio HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/879f1789-bde0-4e64-ac68-f61a9b114347'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6bc73868-fea6-449b-af5c-e7b746e4129d'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/879f1789-bde0-4e64-ac68-f61a9b114347 HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6bc73868-fea6-449b-af5c-e7b746e4129d HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
@@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/5238c683-bb17-49f2-8796-a60668fc5955/adapters/0/ports/0/nio'
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'
DELETE /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/5238c683-bb17-49f2-8796-a60668fc5955/adapters/0/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/f7d1d6ad-422b-486a-8d23-1ff46cd8bc4b/adapters/0/ports/0/nio HTTP/1.1
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
+16 -4
View File
@@ -1,15 +1,15 @@
curl -i -X GET 'http://localhost:8000/interfaces'
curl -i -X GET 'http://localhost:8000/v1/interfaces'
GET /interfaces HTTP/1.1
GET /v1/interfaces HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 520
CONTENT-LENGTH: 718
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/interfaces
[
@@ -48,5 +48,17 @@ X-ROUTE: /v1/interfaces
{
"id": "bridge0",
"name": "bridge0"
},
{
"id": "vboxnet0",
"name": "vboxnet0"
},
{
"id": "vboxnet1",
"name": "vboxnet1"
},
{
"id": "vboxnet2",
"name": "vboxnet2"
}
]
+7 -6
View File
@@ -1,20 +1,21 @@
curl -i -X GET 'http://localhost:8000/projects/00010203-0405-0607-0809-0a0b0c0d0e02'
curl -i -X GET 'http://localhost:8000/v1/projects/00010203-0405-0607-0809-0a0b0c0d0e02'
GET /projects/00010203-0405-0607-0809-0a0b0c0d0e02 HTTP/1.1
GET /v1/projects/00010203-0405-0607-0809-0a0b0c0d0e02 HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 277
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpju7ztx9a",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpju7ztx9a/00010203-0405-0607-0809-0a0b0c0d0e02",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmphbzo0jp9",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmphbzo0jp9/00010203-0405-0607-0809-0a0b0c0d0e02",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e02",
"temporary": false
}
@@ -1,27 +1,29 @@
curl -i -X GET 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/c5c0075d-0b10-4401-8bed-d9897814237c'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ede1bba5-0723-4fd8-9e89-bdfffe5f5c8f'
GET /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/c5c0075d-0b10-4401-8bed-d9897814237c HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/ede1bba5-0723-4fd8-9e89-bdfffe5f5c8f HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 409
CONTENT-LENGTH: 386
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
{
"console": 2000,
"ethernet_adapters": 2,
"initial_config": null,
"iourc_path": null,
"l1_keepalives": false,
"name": "PC TEST 1",
"nvram": 128,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-3783/test_iou_get0/iou.bin",
"path": "iou.bin",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 256,
"serial_adapters": 2,
"vm_id": "c5c0075d-0b10-4401-8bed-d9897814237c"
"use_default_iou_values": true,
"vm_id": "ede1bba5-0723-4fd8-9e89-bdfffe5f5c8f"
}
@@ -1,6 +1,6 @@
curl -i -X GET 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/f7220f9c-3334-43e3-9ef4-37f09ba6fcab/initial_config'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/821b0dc3-4cc0-4899-8184-75bfc22db584/initial_config'
GET /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/f7220f9c-3334-43e3-9ef4-37f09ba6fcab/initial_config HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/821b0dc3-4cc0-4899-8184-75bfc22db584/initial_config HTTP/1.1
@@ -9,7 +9,7 @@ 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.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/initial_config
{
@@ -1,15 +1,15 @@
curl -i -X GET 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/4532d770-23a0-4858-bbab-d8a8b3a17deb'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e3935d2d-2bf9-4cde-8c7e-0bd1d74c3dad'
GET /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/4532d770-23a0-4858-bbab-d8a8b3a17deb HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e3935d2d-2bf9-4cde-8c7e-0bd1d74c3dad HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 566
CONTENT-LENGTH: 597
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
{
@@ -19,16 +19,17 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
"cpu_throttling": 0,
"hda_disk_image": "",
"hdb_disk_image": "",
"hdc_disk_image": "",
"hdd_disk_image": "",
"initrd": "",
"kernel_command_line": "",
"kernel_image": "",
"legacy_networking": false,
"monitor": 2001,
"name": "PC TEST 1",
"options": "",
"process_priority": "low",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph25p8xei/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"ram": 256,
"vm_id": "4532d770-23a0-4858-bbab-d8a8b3a17deb"
"vm_id": "e3935d2d-2bf9-4cde-8c7e-0bd1d74c3dad"
}
@@ -1,15 +1,15 @@
curl -i -X GET 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f526503a-8d24-4513-a5e3-1ebf4159aa70'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f49ff215-0872-4bf7-90c8-3d9ecc2b2f2b'
GET /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f526503a-8d24-4513-a5e3-1ebf4159aa70 HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f49ff215-0872-4bf7-90c8-3d9ecc2b2f2b HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 347
CONTENT-LENGTH: 361
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
{
@@ -20,7 +20,8 @@ X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
"headless": false,
"name": "VMTEST",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_id": "f526503a-8d24-4513-a5e3-1ebf4159aa70",
"vm_id": "f49ff215-0872-4bf7-90c8-3d9ecc2b2f2b",
"vmname": "VMTEST"
}
@@ -1,6 +1,6 @@
curl -i -X GET 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f3c227f-86f5-4f54-bc4b-74597744b904'
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/3ff6ff9e-93de-45ae-a7ec-e296d406ffe1'
GET /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f3c227f-86f5-4f54-bc4b-74597744b904 HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/3ff6ff9e-93de-45ae-a7ec-e296d406ffe1 HTTP/1.1
@@ -9,7 +9,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 220
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
{
@@ -18,5 +18,5 @@ X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"vm_id": "6f3c227f-86f5-4f54-bc4b-74597744b904"
"vm_id": "3ff6ff9e-93de-45ae-a7ec-e296d406ffe1"
}
+3 -3
View File
@@ -1,6 +1,6 @@
curl -i -X GET 'http://localhost:8000/qemu/binaries'
curl -i -X GET 'http://localhost:8000/v1/qemu/binaries'
GET /qemu/binaries HTTP/1.1
GET /v1/qemu/binaries HTTP/1.1
@@ -9,7 +9,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 134
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/qemu/binaries
[
+6 -5
View File
@@ -1,17 +1,18 @@
curl -i -X GET 'http://localhost:8000/version'
curl -i -X GET 'http://localhost:8000/v1/version'
GET /version HTTP/1.1
GET /v1/version HTTP/1.1
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 29
CONTENT-LENGTH: 49
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/version
{
"version": "1.3.dev1"
"local": true,
"version": "1.3.1.rc2"
}
+13
View File
@@ -0,0 +1,13 @@
curl -i -X POST 'http://localhost:8000/v1/config/reload' -d '{}'
POST /v1/config/reload HTTP/1.1
{}
HTTP/1.1 201
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/config/reload
-17
View File
@@ -1,17 +0,0 @@
curl -i -X POST 'http://localhost:8000/ports/udp' -d '{}'
POST /ports/udp HTTP/1.1
{}
HTTP/1.1 201
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.dev1
X-ROUTE: /v1/ports/udp
{
"udp_port": 10000
}
+11 -8
View File
@@ -1,20 +1,23 @@
curl -i -X POST 'http://localhost:8000/projects' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects' -d '{"name": "test"}'
POST /projects HTTP/1.1
{}
POST /v1/projects HTTP/1.1
{
"name": "test"
}
HTTP/1.1 201
CONNECTION: keep-alive
CONTENT-LENGTH: 277
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp4s49s4hy",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp4s49s4hy/119348c0-fa80-4386-bf1e-b00755c9c6b4",
"project_id": "119348c0-fa80-4386-bf1e-b00755c9c6b4",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp_6lclsv7",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp_6lclsv7/187543e2-5d46-4108-a623-cfdd31fa300e",
"project_id": "187543e2-5d46-4108-a623-cfdd31fa300e",
"temporary": false
}
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/close
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/commit
@@ -1,36 +1,40 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms' -d '{"ethernet_adapters": 0, "initial_config_content": "hostname test", "l1_keepalives": true, "name": "PC TEST 1", "nvram": 512, "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-3783/test_iou_create_with_params0/iou.bin", "ram": 1024, "serial_adapters": 4}'
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}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms HTTP/1.1
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-3783/test_iou_create_with_params0/iou.bin",
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-4450/test_iou_create_with_params0/iou.bin",
"ram": 1024,
"serial_adapters": 4
"serial_adapters": 4,
"use_default_iou_values": true
}
HTTP/1.1 201
CONNECTION: keep-alive
CONTENT-LENGTH: 440
CONTENT-LENGTH: 466
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
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,
"name": "PC TEST 1",
"nvram": 512,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-3783/test_iou_create_with_params0/iou.bin",
"path": "iou.bin",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 1024,
"serial_adapters": 4,
"vm_id": "3c02aa01-46d2-4a62-97d6-dc5829afdf39"
"use_default_iou_values": true,
"vm_id": "69f5842a-d4e5-45fe-a500-1010c72f1748"
}
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/7f758868-46e1-4ef5-accc-f8e939a12471/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/04648c72-4339-471e-aa12-57b42d7ea18b/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/7f758868-46e1-4ef5-accc-f8e939a12471/adapters/1/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/04648c72-4339-471e-aa12-57b42d7ea18b/adapters/1/ports/0/nio HTTP/1.1
{
"ethernet_device": "eth0",
"type": "nio_generic_ethernet"
@@ -12,7 +12,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 69
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/c40daea2-2b38-4d14-a872-13c5f991cbc3/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/6056b617-d0c4-4683-bc9e-d0130beec951/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/c40daea2-2b38-4d14-a872-13c5f991cbc3/adapters/0/ports/0/start_capture HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6056b617-d0c4-4683-bc9e-d0130beec951/adapters/0/ports/0/start_capture HTTP/1.1
{
"capture_file_name": "test.pcap",
"data_link_type": "DLT_EN10MB"
@@ -12,9 +12,9 @@ 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.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
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/tmpn_q77wz2/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
"pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp367810hd/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
}
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/550b8f35-e258-4354-a74c-cd35a48c08ed/adapters/0/ports/0/stop_capture' -d '{}'
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 '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/550b8f35-e258-4354-a74c-cd35a48c08ed/adapters/0/ports/0/stop_capture HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0fb3c393-7cda-4abc-ad76-a9e7af04abea/adapters/0/ports/0/stop_capture HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/d1b38099-46a3-4405-a354-85faeb76bd0e/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/b32c38db-3692-4719-b94f-2b3f664cd06f/reload' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/d1b38099-46a3-4405-a354-85faeb76bd0e/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/b32c38db-3692-4719-b94f-2b3f664cd06f/reload HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/reload
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/fc1ea907-eb0b-4857-9ad2-759f780afdb4/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/55209a6f-8fe0-49d1-a884-b7cd09547b5c/start' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/fc1ea907-eb0b-4857-9ad2-759f780afdb4/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/55209a6f-8fe0-49d1-a884-b7cd09547b5c/start HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/start
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0228866f-a286-44e2-9688-a8cab4e75cc3/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/d893bd2c-d84e-4f89-ad84-f3bdfaf460b6/stop' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0228866f-a286-44e2-9688-a8cab4e75cc3/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/d893bd2c-d84e-4f89-ad84-f3bdfaf460b6/stop HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/stop
@@ -0,0 +1,17 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/ports/udp HTTP/1.1
{}
HTTP/1.1 201
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}/ports/udp
{
"udp_port": 10000
}
@@ -1,20 +1,20 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "hda", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph25p8xei/qemu_x42", "ram": 1024}'
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}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
{
"hda_disk_image": "hda",
"hda_disk_image": "/tmp/hda",
"name": "PC TEST 1",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph25p8xei/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"ram": 1024
}
HTTP/1.1 201
CONNECTION: keep-alive
CONTENT-LENGTH: 570
CONTENT-LENGTH: 606
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms
{
@@ -22,18 +22,19 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms
"adapters": 1,
"console": 2000,
"cpu_throttling": 0,
"hda_disk_image": "hda",
"hda_disk_image": "/tmp/hda",
"hdb_disk_image": "",
"hdc_disk_image": "",
"hdd_disk_image": "",
"initrd": "",
"kernel_command_line": "",
"kernel_image": "",
"legacy_networking": false,
"monitor": 2001,
"name": "PC TEST 1",
"options": "",
"process_priority": "low",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph25p8xei/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"ram": 1024,
"vm_id": "4e47d2c8-d591-4508-9c3e-00e366f7c22d"
"vm_id": "8c325041-39a8-4c31-b921-b66dadadc353"
}
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e4ac8960-f709-4e28-bc6c-3b2593b622e9/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/e791569e-7f95-4a1d-9f8d-b48611afeef3/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e4ac8960-f709-4e28-bc6c-3b2593b622e9/adapters/1/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e791569e-7f95-4a1d-9f8d-b48611afeef3/adapters/1/ports/0/nio HTTP/1.1
{
"ethernet_device": "eth0",
"type": "nio_generic_ethernet"
@@ -12,7 +12,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 69
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/2a143130-2445-4a4b-9ba2-f49071eed5f4/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e6de45b1-048b-498b-9875-de76762532e9/reload' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/2a143130-2445-4a4b-9ba2-f49071eed5f4/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e6de45b1-048b-498b-9875-de76762532e9/reload HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/reload
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/9272bffc-7a73-449a-aa71-96c48b1e5a3d/resume' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d7152d7c-7f23-4d92-9ee1-fae132a50b3b/resume' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/9272bffc-7a73-449a-aa71-96c48b1e5a3d/resume HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d7152d7c-7f23-4d92-9ee1-fae132a50b3b/resume HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/resume
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e4f04682-d749-49c8-be3e-8c4752483cc1/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/031c1e57-577c-4ff4-91d1-da6fe0816fdd/start' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e4f04682-d749-49c8-be3e-8c4752483cc1/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/031c1e57-577c-4ff4-91d1-da6fe0816fdd/start HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/start
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1cb28121-2b13-4c53-a0fc-ab8c6d028d0f/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/79ca17e8-0194-4682-bb2a-0bdd9f7d1e1a/stop' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1cb28121-2b13-4c53-a0fc-ab8c6d028d0f/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/79ca17e8-0194-4682-bb2a-0bdd9f7d1e1a/stop HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/stop
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/777077ba-025a-49dc-9773-cedc425bdb6d/suspend' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/7e24f49b-51ea-410f-bc94-16fc58071493/suspend' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/777077ba-025a-49dc-9773-cedc425bdb6d/suspend HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/7e24f49b-51ea-410f-bc94-16fc58071493/suspend HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}/suspend
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms' -d '{"linked_clone": false, "name": "VM1", "vmname": "VM1"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms' -d '{"linked_clone": false, "name": "VM1", "vmname": "VM1"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
{
"linked_clone": false,
"name": "VM1",
@@ -10,10 +10,10 @@ POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
HTTP/1.1 201
CONNECTION: keep-alive
CONTENT-LENGTH: 341
CONTENT-LENGTH: 355
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
{
@@ -24,7 +24,8 @@ X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
"headless": false,
"name": "VM1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_id": "1404a6c5-c0f5-4bc6-bb94-477d7e631781",
"vm_id": "fd208626-81e5-449e-b145-fd6993f5097c",
"vmname": "VM1"
}
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/bd0d175c-2055-4315-86d1-07494696d42e/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/5463a797-0eb0-41d2-8b32-1efbd7a353cc/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/bd0d175c-2055-4315-86d1-07494696d42e/adapters/0/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5463a797-0eb0-41d2-8b32-1efbd7a353cc/adapters/0/ports/0/nio HTTP/1.1
{
"lport": 4242,
"rhost": "127.0.0.1",
@@ -14,7 +14,7 @@ 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.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4c9fdef4-8990-44a1-8a98-1b7c510821ee/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f24209c8-671e-428a-9561-db4775f6b8a7/reload' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4c9fdef4-8990-44a1-8a98-1b7c510821ee/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f24209c8-671e-428a-9561-db4775f6b8a7/reload HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/reload
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f6487814-a3a9-4e82-867c-83662c7bed48/resume' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/70df82f6-e868-4ab3-9be9-d456871f41dc/resume' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f6487814-a3a9-4e82-867c-83662c7bed48/resume HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/70df82f6-e868-4ab3-9be9-d456871f41dc/resume HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/resume
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/bedd61d4-b264-47d9-b290-920d5ba70f6d/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/354d48fe-cab6-41d8-8cc1-64716e02c3a8/start' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/bedd61d4-b264-47d9-b290-920d5ba70f6d/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/354d48fe-cab6-41d8-8cc1-64716e02c3a8/start HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/start
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/a1960146-9be9-4f54-b594-67a6ab40f436/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/90733316-a02a-490b-b8c4-e6ea4a32296a/stop' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/a1960146-9be9-4f54-b594-67a6ab40f436/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/90733316-a02a-490b-b8c4-e6ea4a32296a/stop HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/stop
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4d16597f-fa75-430a-9b94-faf7f93bb0a3/suspend' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/0f257aa5-d61d-4ee9-872a-898462f7ecdf/suspend' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4d16597f-fa75-430a-9b94-faf7f93bb0a3/suspend HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/0f257aa5-d61d-4ee9-872a-898462f7ecdf/suspend HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}/suspend
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms' -d '{"name": "PC TEST 1"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms' -d '{"name": "PC TEST 1"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms HTTP/1.1
{
"name": "PC TEST 1"
}
@@ -11,7 +11,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 220
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms
{
@@ -20,5 +20,5 @@ X-ROUTE: /v1/projects/{project_id}/vpcs/vms
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"vm_id": "b0d1df2e-ebd1-4783-bb62-871e24f01543"
"vm_id": "68c6af80-0a82-406e-b051-24c95bd728f4"
}
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/385d80e1-193c-4b38-bf55-5185ffd6b473/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/4125e37f-2bf1-435c-a86c-ae1fce4c916a/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/385d80e1-193c-4b38-bf55-5185ffd6b473/adapters/0/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4125e37f-2bf1-435c-a86c-ae1fce4c916a/adapters/0/ports/0/nio HTTP/1.1
{
"lport": 4242,
"rhost": "127.0.0.1",
@@ -14,7 +14,7 @@ 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.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
{
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/b12c5612-147d-4229-86ca-103174ba8fd1/reload' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4c5c5174-07bf-4f2a-93ab-cec244e24852/reload' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/b12c5612-147d-4229-86ca-103174ba8fd1/reload HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4c5c5174-07bf-4f2a-93ab-cec244e24852/reload HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/reload
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/01037fd2-9533-42db-bd19-df5b21e47fcf/start' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/43ac3ea8-78a7-405e-ad5e-653293c48e66/start' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/01037fd2-9533-42db-bd19-df5b21e47fcf/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/43ac3ea8-78a7-405e-ad5e-653293c48e66/start HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/start
@@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/20eefc85-f1b6-4e36-9601-cd0dc91faaa0/stop' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/59df4b41-6a23-4c99-9370-600b3a2cff23/stop' -d '{}'
POST /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/20eefc85-f1b6-4e36-9601-cd0dc91faaa0/stop HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/59df4b41-6a23-4c99-9370-600b3a2cff23/stop HTTP/1.1
{}
@@ -8,6 +8,6 @@ HTTP/1.1 204
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}/stop
+6 -6
View File
@@ -1,19 +1,19 @@
curl -i -X POST 'http://localhost:8000/version' -d '{"version": "1.3.dev1"}'
curl -i -X POST 'http://localhost:8000/v1/version' -d '{"version": "1.3.1.rc2"}'
POST /version HTTP/1.1
POST /v1/version HTTP/1.1
{
"version": "1.3.dev1"
"version": "1.3.1.rc2"
}
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 29
CONTENT-LENGTH: 30
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/version
{
"version": "1.3.dev1"
"version": "1.3.1.rc2"
}
+5 -4
View File
@@ -1,8 +1,9 @@
curl -i -X PUT 'http://localhost:8000/projects/ef58b29e-59df-42c0-9492-5a766a13cb62' -d '{"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-3783/test_update_path_project_non_l0"}'
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"}'
PUT /projects/ef58b29e-59df-42c0-9492-5a766a13cb62 HTTP/1.1
PUT /v1/projects/b32aab45-411c-4171-9f20-357eaa00d54c HTTP/1.1
{
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-3783/test_update_path_project_non_l0"
"name": "second_name",
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-4450/test_update_path_project_non_l0"
}
@@ -11,7 +12,7 @@ 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.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}
{
@@ -1,36 +1,40 @@
curl -i -X PUT 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/324dab07-d86c-4a3b-8390-7a8e9a506006' -d '{"console": 2001, "ethernet_adapters": 4, "initial_config_content": "hostname test", "l1_keepalives": true, "name": "test", "nvram": 2048, "ram": 512, "serial_adapters": 0}'
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}'
PUT /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/324dab07-d86c-4a3b-8390-7a8e9a506006 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/3812eced-e777-4f35-8c7e-e6736e34fcfd HTTP/1.1
{
"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
"serial_adapters": 0,
"use_default_iou_values": true
}
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 423
CONTENT-LENGTH: 461
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
{
"console": 2001,
"ethernet_adapters": 4,
"initial_config": "initial-config.cfg",
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpws7fdl5e/iourc",
"l1_keepalives": true,
"name": "test",
"nvram": 2048,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-3783/test_iou_update0/iou.bin",
"path": "iou.bin",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 512,
"serial_adapters": 0,
"vm_id": "324dab07-d86c-4a3b-8390-7a8e9a506006"
"use_default_iou_values": true,
"vm_id": "3812eced-e777-4f35-8c7e-e6736e34fcfd"
}
@@ -1,9 +1,9 @@
curl -i -X PUT 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/a68a00de-a264-4cc0-821c-301af5059ea4' -d '{"console": 2002, "hdb_disk_image": "hdb", "name": "test", "ram": 1024}'
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}'
PUT /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/a68a00de-a264-4cc0-821c-301af5059ea4 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/e5b90e65-6f6a-4d44-b2d8-3a5c3a4a626b HTTP/1.1
{
"console": 2002,
"hdb_disk_image": "hdb",
"console": 2001,
"hdb_disk_image": "/tmp/hdb",
"name": "test",
"ram": 1024
}
@@ -11,29 +11,30 @@ PUT /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/a68a00de-a264-4cc0-8
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 565
CONTENT-LENGTH: 601
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
{
"adapter_type": "e1000",
"adapters": 1,
"console": 2002,
"console": 2001,
"cpu_throttling": 0,
"hda_disk_image": "",
"hdb_disk_image": "hdb",
"hdb_disk_image": "/tmp/hdb",
"hdc_disk_image": "",
"hdd_disk_image": "",
"initrd": "",
"kernel_command_line": "",
"kernel_image": "",
"legacy_networking": false,
"monitor": 2001,
"name": "test",
"options": "",
"process_priority": "low",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph25p8xei/qemu_x42",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyasp9636/qemu_x42",
"ram": 1024,
"vm_id": "a68a00de-a264-4cc0-821c-301af5059ea4"
"vm_id": "e5b90e65-6f6a-4d44-b2d8-3a5c3a4a626b"
}
@@ -1,6 +1,6 @@
curl -i -X PUT 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4a6375b9-14b8-406c-ae8e-df6d242088f9' -d '{"console": 2010, "name": "test"}'
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"}'
PUT /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4a6375b9-14b8-406c-ae8e-df6d242088f9 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/514963f5-93f8-4d18-bcd6-7d50ef7164a6 HTTP/1.1
{
"console": 2010,
"name": "test"
@@ -9,10 +9,10 @@ PUT /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/4a6375b9-14b8-
HTTP/1.1 200
CONNECTION: keep-alive
CONTENT-LENGTH: 345
CONTENT-LENGTH: 359
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
{
@@ -23,7 +23,8 @@ X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
"headless": false,
"name": "test",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_id": "4a6375b9-14b8-406c-ae8e-df6d242088f9",
"vm_id": "514963f5-93f8-4d18-bcd6-7d50ef7164a6",
"vmname": "VMTEST"
}
@@ -1,6 +1,6 @@
curl -i -X PUT 'http://localhost:8000/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/39951883-cbfb-4aff-9cbc-06895749e571' -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/4905e649-6e81-446d-a60b-fd8b058a85e8' -d '{"console": 2011, "name": "test", "startup_script": "ip 192.168.1.1"}'
PUT /projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/39951883-cbfb-4aff-9cbc-06895749e571 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4905e649-6e81-446d-a60b-fd8b058a85e8 HTTP/1.1
{
"console": 2011,
"name": "test",
@@ -13,7 +13,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 236
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.3.dev1
SERVER: Python/3.4 GNS3/1.3.1.rc2
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
{
@@ -22,5 +22,5 @@ X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": "ip 192.168.1.1",
"startup_script_path": "startup.vpc",
"vm_id": "39951883-cbfb-4aff-9cbc-06895749e571"
"vm_id": "4905e649-6e81-446d-a60b-fd8b058a85e8"
}
+8
View File
@@ -0,0 +1,8 @@
Config
---------------------
.. toctree::
:glob:
:maxdepth: 2
config/*
@@ -1,19 +1,20 @@
/v1/ports/udp
/v1/config/reload
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/ports/udp
POST /v1/config/reload
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allocate an UDP port on the server
Check if version is the same as the server
Response status codes
**********************
- **201**: UDP port allocated
- **201**: Config reload
- **403**: Config reload refused
Sample session
***************
.. literalinclude:: ../../examples/post_portsudp.txt
.. literalinclude:: ../../examples/post_configreload.txt
@@ -23,7 +23,7 @@ Input
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>device_id</td> <td> </td> <td>string</td> <td>Dynamips device instance identifier</td> </tr>
<tr><td>device_id</td> <td> </td> <td></td> <td>Dynamips device instance identifier</td> </tr>
<tr><td>device_type</td> <td>&#10004;</td> <td>string</td> <td>Dynamips device type</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips device name</td> </tr>
</table>
@@ -10,8 +10,8 @@ Add a NIO to a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************
@@ -129,8 +129,8 @@ Remove a NIO from a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************
@@ -10,8 +10,8 @@ Start a packet capture on a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************
@@ -10,8 +10,8 @@ Stop a packet capture on a Dynamips device instance
Parameters
**********
- **project_id**: UUID for the project
- **device_id**: UUID for the instance
- **port_number**: Port on the device
- **device_id**: UUID for the instance
Response status codes
**********************
@@ -26,7 +26,6 @@ Input
<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>
<tr><td>confreg</td> <td> </td> <td>string</td> <td>configuration register</td> </tr>
<tr><td>console</td> <td> </td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>disk0</td> <td> </td> <td>integer</td> <td>disk0 size in MB</td> </tr>
<tr><td>disk1</td> <td> </td> <td>integer</td> <td>disk1 size in MB</td> </tr>
@@ -74,10 +73,9 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</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>
<tr><td>confreg</td> <td> </td> <td>string</td> <td>configuration register</td> </tr>
<tr><td>console</td> <td> </td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>disk0</td> <td> </td> <td>integer</td> <td>disk0 size in MB</td> </tr>
<tr><td>disk1</td> <td> </td> <td>integer</td> <td>disk1 size in MB</td> </tr>
@@ -24,10 +24,9 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</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>
<tr><td>confreg</td> <td> </td> <td>string</td> <td>configuration register</td> </tr>
<tr><td>console</td> <td> </td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>disk0</td> <td> </td> <td>integer</td> <td>disk0 size in MB</td> </tr>
<tr><td>disk1</td> <td> </td> <td>integer</td> <td>disk1 size in MB</td> </tr>
@@ -94,7 +93,6 @@ Input
<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>
<tr><td>confreg</td> <td> </td> <td>string</td> <td>configuration register</td> </tr>
<tr><td>console</td> <td> </td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>disk0</td> <td> </td> <td>integer</td> <td>disk0 size in MB</td> </tr>
<tr><td>disk1</td> <td> </td> <td>integer</td> <td>disk1 size in MB</td> </tr>
@@ -140,10 +138,9 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</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>
<tr><td>confreg</td> <td> </td> <td>string</td> <td>configuration register</td> </tr>
<tr><td>console</td> <td> </td> <td>integer</td> <td>console TCP port</td> </tr>
<tr><td>disk0</td> <td> </td> <td>integer</td> <td>disk0 size in MB</td> </tr>
<tr><td>disk1</td> <td> </td> <td>integer</td> <td>disk1 size in MB</td> </tr>
@@ -10,9 +10,9 @@ Add a NIO to a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter where the nio should be added
- **port_number**: Port on the adapter
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -28,9 +28,9 @@ Remove a NIO from a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter from where the nio should be removed
- **port_number**: Port on the adapter
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -10,9 +10,9 @@ Start a packet capture on a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter to start a packet capture
- **port_number**: Port on the adapter
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -10,9 +10,9 @@ Stop a packet capture on a Dynamips VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter to stop a packet capture
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -0,0 +1,15 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/configs/save
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/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
+8
View File
@@ -0,0 +1,8 @@
Iou
---------------------
.. toctree::
:glob:
:maxdepth: 2
iou/*
@@ -0,0 +1,66 @@
/v1/projects/{project_id}/iou/vms
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new IOU instance
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>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>l1_keepalives</td> <td> </td> <td>['boolean', 'null']</td> <td>Always up ethernet interface</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>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>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>
Output
*******
.. raw:: html
<table>
<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>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>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>use_default_iou_values</td> <td>&#10004;</td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>IOU VM UUID</td> </tr>
</table>
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvms.txt
@@ -0,0 +1,132 @@
/v1/projects/{project_id}/iou/vms/{vm_id}
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/iou/vms/**{vm_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **200**: Success
- **400**: Invalid request
- **404**: Instance doesn't exist
Output
*******
.. raw:: html
<table>
<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>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>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>use_default_iou_values</td> <td>&#10004;</td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>IOU VM UUID</td> </tr>
</table>
Sample session
***************
.. literalinclude:: ../../examples/get_projectsprojectidiouvmsvmid.txt
PUT /v1/projects/**{project_id}**/iou/vms/**{vm_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Update a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **200**: Instance updated
- **400**: Invalid request
- **404**: Instance doesn't exist
- **409**: Conflict
Input
*******
.. raw:: html
<table>
<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>l1_keepalives</td> <td> </td> <td>['boolean', 'null']</td> <td>Always up ethernet interface</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>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>use_default_iou_values</td> <td> </td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<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>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>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>use_default_iou_values</td> <td>&#10004;</td> <td>['boolean', 'null']</td> <td>Use default IOU values</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>IOU VM UUID</td> </tr>
</table>
Sample session
***************
.. literalinclude:: ../../examples/put_projectsprojectidiouvmsvmid.txt
DELETE /v1/projects/**{project_id}**/iou/vms/**{vm_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Delete a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance deleted
Sample session
***************
.. literalinclude:: ../../examples/delete_projectsprojectidiouvmsvmid.txt
@@ -0,0 +1,52 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/nio
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **201**: NIO created
- **404**: Instance doesn't exist
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
DELETE /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/nio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: NIO deleted
Sample session
***************
.. literalinclude:: ../../examples/delete_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdnio.txt
@@ -0,0 +1,39 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
- **vm_id**: UUID for the instance
Response status codes
**********************
- **200**: Capture started
- **400**: Invalid request
- **404**: Instance doesn't exist
- **409**: VM not started
Input
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>capture_file_name</td> <td>&#10004;</td> <td>string</td> <td>Capture file name</td> </tr>
<tr><td>data_link_type</td> <td>&#10004;</td> <td>string</td> <td>PCAP data link type</td> </tr>
</table>
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstartcapture.txt
@@ -0,0 +1,29 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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)
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Capture stopped
- **409**: VM not started
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvmsvmidadaptersadapternumberdportsportnumberdstopcapture.txt
@@ -0,0 +1,30 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/initial_config
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/initial_config
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the initial config content
Response status codes
**********************
- **200**: Initial config retrieved
- **400**: Invalid request
- **404**: Instance doesn't exist
Output
*******
.. raw:: html
<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>
</table>
Sample session
***************
.. literalinclude:: ../../examples/get_projectsprojectidiouvmsvmidinitialconfig.txt
@@ -0,0 +1,26 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/reload
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/reload
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Reload a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance reloaded
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvmsvmidreload.txt
@@ -0,0 +1,26 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/start
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance started
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvmsvmidstart.txt
@@ -0,0 +1,26 @@
/v1/projects/{project_id}/iou/vms/{vm_id}/stop
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/iou/vms/**{vm_id}**/stop
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stop a IOU instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance stopped
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidiouvmsvmidstop.txt
@@ -0,0 +1,24 @@
/v1/projects/{project_id}/ports/udp
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/ports/udp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allocate an UDP port on the server
Parameters
**********
- **project_id**: The UUID of the project
Response status codes
**********************
- **201**: UDP port allocated
- **404**: The project doesn't exist
Sample session
***************
.. literalinclude:: ../../examples/post_projectsprojectidportsudp.txt
+2
View File
@@ -18,6 +18,7 @@ Input
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>Project name</td> </tr>
<tr><td>path</td> <td> </td> <td>['string', 'null']</td> <td>Project directory</td> </tr>
<tr><td>project_id</td> <td> </td> <td>['string', 'null']</td> <td>Project UUID</td> </tr>
<tr><td>temporary</td> <td> </td> <td>boolean</td> <td>If project is a temporary project</td> </tr>
@@ -30,6 +31,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>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>
@@ -23,6 +23,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>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>
@@ -55,6 +56,7 @@ Input
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>Project name</td> </tr>
<tr><td>path</td> <td> </td> <td>['string', 'null']</td> <td>Path of the project on the server (work only with --local)</td> </tr>
<tr><td>temporary</td> <td> </td> <td>boolean</td> <td>If project is a temporary project</td> </tr>
</table>
@@ -66,6 +68,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>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>
@@ -29,17 +29,18 @@ Input
<tr><td>cpu_throttling</td> <td> </td> <td>['integer', 'null']</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
<tr><td>hda_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hda disk image path</td> </tr>
<tr><td>hdb_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hdb disk image path</td> </tr>
<tr><td>hdc_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hdc disk image path</td> </tr>
<tr><td>hdd_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hdd disk image path</td> </tr>
<tr><td>initrd</td> <td> </td> <td>['string', 'null']</td> <td>QEMU initrd path</td> </tr>
<tr><td>kernel_command_line</td> <td> </td> <td>['string', 'null']</td> <td>QEMU kernel command line</td> </tr>
<tr><td>kernel_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU kernel image path</td> </tr>
<tr><td>legacy_networking</td> <td> </td> <td>['boolean', 'null']</td> <td>Use QEMU legagy networking commands (-net syntax)</td> </tr>
<tr><td>monitor</td> <td> </td> <td>['integer', 'null']</td> <td>monitor TCP port</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM instance name</td> </tr>
<tr><td>options</td> <td> </td> <td>['string', 'null']</td> <td>Additional QEMU options</td> </tr>
<tr><td>process_priority</td> <td> </td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low, null</td> </tr>
<tr><td>qemu_path</td> <td>&#10004;</td> <td>string</td> <td>Path to QEMU</td> </tr>
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>amount of RAM in MB</td> </tr>
<tr><td>vm_id</td> <td> </td> <td>['string', 'null']</td> <td>QEMU VM UUID</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>QEMU VM identifier</td> </tr>
</table>
Output
@@ -54,11 +55,12 @@ Output
<tr><td>cpu_throttling</td> <td>&#10004;</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
<tr><td>hda_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
<tr><td>hdb_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdb disk image path</td> </tr>
<tr><td>hdc_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdc disk image path</td> </tr>
<tr><td>hdd_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdd disk image path</td> </tr>
<tr><td>initrd</td> <td>&#10004;</td> <td>string</td> <td>QEMU initrd path</td> </tr>
<tr><td>kernel_command_line</td> <td>&#10004;</td> <td>string</td> <td>QEMU kernel command line</td> </tr>
<tr><td>kernel_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU kernel image path</td> </tr>
<tr><td>legacy_networking</td> <td>&#10004;</td> <td>boolean</td> <td>Use QEMU legagy networking commands (-net syntax)</td> </tr>
<tr><td>monitor</td> <td>&#10004;</td> <td>integer</td> <td>monitor TCP port</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM instance name</td> </tr>
<tr><td>options</td> <td>&#10004;</td> <td>string</td> <td>Additional QEMU options</td> </tr>
<tr><td>process_priority</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low</td> </tr>
@@ -30,11 +30,12 @@ Output
<tr><td>cpu_throttling</td> <td>&#10004;</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
<tr><td>hda_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
<tr><td>hdb_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdb disk image path</td> </tr>
<tr><td>hdc_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdc disk image path</td> </tr>
<tr><td>hdd_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdd disk image path</td> </tr>
<tr><td>initrd</td> <td>&#10004;</td> <td>string</td> <td>QEMU initrd path</td> </tr>
<tr><td>kernel_command_line</td> <td>&#10004;</td> <td>string</td> <td>QEMU kernel command line</td> </tr>
<tr><td>kernel_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU kernel image path</td> </tr>
<tr><td>legacy_networking</td> <td>&#10004;</td> <td>boolean</td> <td>Use QEMU legagy networking commands (-net syntax)</td> </tr>
<tr><td>monitor</td> <td>&#10004;</td> <td>integer</td> <td>monitor TCP port</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM instance name</td> </tr>
<tr><td>options</td> <td>&#10004;</td> <td>string</td> <td>Additional QEMU options</td> </tr>
<tr><td>process_priority</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low</td> </tr>
@@ -79,11 +80,12 @@ Input
<tr><td>cpu_throttling</td> <td> </td> <td>['integer', 'null']</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
<tr><td>hda_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hda disk image path</td> </tr>
<tr><td>hdb_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hdb disk image path</td> </tr>
<tr><td>hdc_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hdc disk image path</td> </tr>
<tr><td>hdd_disk_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU hdd disk image path</td> </tr>
<tr><td>initrd</td> <td> </td> <td>['string', 'null']</td> <td>QEMU initrd path</td> </tr>
<tr><td>kernel_command_line</td> <td> </td> <td>['string', 'null']</td> <td>QEMU kernel command line</td> </tr>
<tr><td>kernel_image</td> <td> </td> <td>['string', 'null']</td> <td>QEMU kernel image path</td> </tr>
<tr><td>legacy_networking</td> <td> </td> <td>['boolean', 'null']</td> <td>Use QEMU legagy networking commands (-net syntax)</td> </tr>
<tr><td>monitor</td> <td> </td> <td>['integer', 'null']</td> <td>monitor TCP port</td> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>QEMU VM instance name</td> </tr>
<tr><td>options</td> <td> </td> <td>['string', 'null']</td> <td>Additional QEMU options</td> </tr>
<tr><td>process_priority</td> <td> </td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low, null</td> </tr>
@@ -103,11 +105,12 @@ Output
<tr><td>cpu_throttling</td> <td>&#10004;</td> <td>integer</td> <td>Percentage of CPU allowed for QEMU</td> </tr>
<tr><td>hda_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hda disk image path</td> </tr>
<tr><td>hdb_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdb disk image path</td> </tr>
<tr><td>hdc_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdc disk image path</td> </tr>
<tr><td>hdd_disk_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU hdd disk image path</td> </tr>
<tr><td>initrd</td> <td>&#10004;</td> <td>string</td> <td>QEMU initrd path</td> </tr>
<tr><td>kernel_command_line</td> <td>&#10004;</td> <td>string</td> <td>QEMU kernel command line</td> </tr>
<tr><td>kernel_image</td> <td>&#10004;</td> <td>string</td> <td>QEMU kernel image path</td> </tr>
<tr><td>legacy_networking</td> <td>&#10004;</td> <td>boolean</td> <td>Use QEMU legagy networking commands (-net syntax)</td> </tr>
<tr><td>monitor</td> <td>&#10004;</td> <td>integer</td> <td>monitor TCP port</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM instance name</td> </tr>
<tr><td>options</td> <td>&#10004;</td> <td>string</td> <td>Additional QEMU options</td> </tr>
<tr><td>process_priority</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low</td> </tr>
@@ -10,9 +10,9 @@ Add a NIO to a Qemu.instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Network adapter where the nio is located
- **port_number**: Port where the nio should be added
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -34,9 +34,9 @@ Remove a NIO from a Qemu.instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Network adapter where the nio is located
- **port_number**: Port from where the nio should be removed
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
+8
View File
@@ -0,0 +1,8 @@
Server
---------------------
.. toctree::
:glob:
:maxdepth: 2
server/*
+14
View File
@@ -0,0 +1,14 @@
/v1/server/shutdown
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/server/shutdown
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shutdown the local server
Response status codes
**********************
- **201**: Server is shutting down
- **403**: Server shutdown refused
+3
View File
@@ -17,6 +17,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>local</td> <td> </td> <td>boolean</td> <td>Either this is a local server</td> </tr>
<tr><td>version</td> <td>&#10004;</td> <td>string</td> <td>Version number human readable</td> </tr>
</table>
@@ -42,6 +43,7 @@ Input
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>local</td> <td> </td> <td>boolean</td> <td>Either this is a local server</td> </tr>
<tr><td>version</td> <td>&#10004;</td> <td>string</td> <td>Version number human readable</td> </tr>
</table>
@@ -51,6 +53,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>local</td> <td> </td> <td>boolean</td> <td>Either this is a local server</td> </tr>
<tr><td>version</td> <td>&#10004;</td> <td>string</td> <td>Version number human readable</td> </tr>
</table>
@@ -30,6 +30,7 @@ Input
<tr><td>headless</td> <td> </td> <td>boolean</td> <td>headless mode</td> </tr>
<tr><td>linked_clone</td> <td>&#10004;</td> <td>boolean</td> <td>either the VM is a linked clone or not</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance name</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>Amount of RAM</td> </tr>
<tr><td>use_any_adapter</td> <td> </td> <td>boolean</td> <td>allow GNS3 to use any VirtualBox adapter</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>VirtualBox VM instance identifier</td> </tr>
<tr><td>vmname</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM name (in VirtualBox itself)</td> </tr>
@@ -48,6 +49,7 @@ Output
<tr><td>headless</td> <td> </td> <td>boolean</td> <td>headless mode</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>Amount of RAM</td> </tr>
<tr><td>use_any_adapter</td> <td> </td> <td>boolean</td> <td>allow GNS3 to use any VirtualBox adapter</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance UUID</td> </tr>
<tr><td>vmname</td> <td> </td> <td>string</td> <td>VirtualBox VM name (in VirtualBox itself)</td> </tr>
@@ -31,6 +31,7 @@ Output
<tr><td>headless</td> <td> </td> <td>boolean</td> <td>headless mode</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>Amount of RAM</td> </tr>
<tr><td>use_any_adapter</td> <td> </td> <td>boolean</td> <td>allow GNS3 to use any VirtualBox adapter</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance UUID</td> </tr>
<tr><td>vmname</td> <td> </td> <td>string</td> <td>VirtualBox VM name (in VirtualBox itself)</td> </tr>
@@ -71,6 +72,7 @@ Input
<tr><td>enable_remote_console</td> <td> </td> <td>boolean</td> <td>enable the remote console</td> </tr>
<tr><td>headless</td> <td> </td> <td>boolean</td> <td>headless mode</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>VirtualBox VM instance name</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>Amount of RAM</td> </tr>
<tr><td>use_any_adapter</td> <td> </td> <td>boolean</td> <td>allow GNS3 to use any VirtualBox adapter</td> </tr>
<tr><td>vmname</td> <td> </td> <td>string</td> <td>VirtualBox VM name (in VirtualBox itself)</td> </tr>
</table>
@@ -88,6 +90,7 @@ Output
<tr><td>headless</td> <td> </td> <td>boolean</td> <td>headless mode</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance name</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>Amount of RAM</td> </tr>
<tr><td>use_any_adapter</td> <td> </td> <td>boolean</td> <td>allow GNS3 to use any VirtualBox adapter</td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>VirtualBox VM instance UUID</td> </tr>
<tr><td>vmname</td> <td> </td> <td>string</td> <td>VirtualBox VM name (in VirtualBox itself)</td> </tr>
@@ -10,9 +10,9 @@ Add a NIO to a VirtualBox VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter where the nio should be added
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -34,9 +34,9 @@ Remove a NIO from a VirtualBox VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter from where the nio should be removed
- **port_number**: Port on the adapter (always)
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -10,9 +10,9 @@ Start a packet capture on a VirtualBox VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter to start a packet capture
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -10,9 +10,9 @@ Stop a packet capture on a VirtualBox VM instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Adapter to stop a packet capture
- **port_number**: Port on the adapter (always 0)
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -10,9 +10,9 @@ Add a NIO to a VPCS instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Network adapter where the nio is located
- **port_number**: Port where the nio should be added
- **vm_id**: UUID for the instance
Response status codes
**********************
@@ -34,9 +34,9 @@ Remove a NIO from a VPCS instance
Parameters
**********
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
- **adapter_number**: Network adapter where the nio is located
- **port_number**: Port from where the nio should be removed
- **vm_id**: UUID for the instance
Response status codes
**********************
+5 -4
View File
@@ -39,10 +39,11 @@ The next step is to create a project.
.. code-block:: shell-session
# curl -X POST "http://localhost:8000/v1/projects" -d "{}"
# curl -X POST "http://localhost:8000/v1/projects" -d '{"name": "test"}'
{
"project_id": "42f9feee-3217-4104-981e-85d5f0a806ec",
"temporary": false
"temporary": false,
"name": "Test"
}
With this project id we can now create two VPCS VM.
@@ -69,12 +70,12 @@ two UDP ports.
.. code-block:: shell-session
# curl -X POST "http://localhost:8000/v1/ports/udp" -d '{}'
# curl -X POST "http://localhost:8000/v1/projects/42f9feee-3217-4104-981e-85d5f0a806ec/ports/udp" -d '{}'
{
"udp_port": 10000
}
# curl -X POST "http://localhost:8000/v1/ports/udp" -d '{}'
# curl -X POST "http://localhost:8000/v1/projects/42f9feee-3217-4104-981e-85d5f0a806ec/ports/udp" -d '{}'
{
"udp_port": 10001
}
+45 -3
View File
@@ -45,9 +45,6 @@ class Config(object):
# Monitor configuration files for changes
self._watched_files = {}
# Override config from command line even if we modify the config file and live reload it.
self._override_config = {}
if sys.platform.startswith("win"):
appname = "GNS3"
@@ -90,9 +87,37 @@ class Config(object):
os.path.join("/etc/xdg", appname + ".conf"),
filename]
self.clear()
self._watch_config_file()
def clear(self):
"""Restart with a clean config"""
self._config = configparser.ConfigParser()
# Override config from command line even if we modify the config file and live reload it.
self._override_config = {}
self.read_config()
def _watch_config_file(self):
asyncio.get_event_loop().call_later(1, self._check_config_file_change)
def _check_config_file_change(self):
"""
Check if configuration file has changed on the disk
"""
changed = False
for file in self._watched_files:
try:
if os.stat(file).st_mtime != self._watched_files[file]:
changed = True
except OSError:
continue
if changed:
self.read_config()
for section in self._override_config:
self.set_section_config(section, self._override_config[section])
self._watch_config_file()
def reload(self):
"""
Reload configuration
@@ -151,9 +176,26 @@ class Config(object):
if not self._config.has_section(section):
self._config.add_section(section)
for key in content:
if isinstance(content[key], bool):
content[key] = str(content[key]).lower()
self._config.set(section, key, content[key])
self._override_config[section] = content
def set(self, section, key, value):
"""
Set a config value.
It's not dumped on the disk.
If the section doesn't exists the section is created
"""
conf = self.get_section_config(section)
if isinstance(value, bool):
conf[key] = str(value)
else:
conf[key] = value
self.set_section_config(section, conf)
@staticmethod
def instance(files=None):
"""
+14 -2
View File
@@ -15,12 +15,18 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import raven
import os
import sys
import struct
import platform
try:
import raven
RAVEN_AVAILABLE = True
except ImportError:
# raven is not installed with deb package in order to simplify packaging
RAVEN_AVAILABLE = False
from .version import __version__
from .config import Config
@@ -34,7 +40,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "sync+https://50af75d8641d4ea7a4ea6b38c7df6cf9:41d54936f8f14e558066262e2ec8bbeb@app.getsentry.com/38482"
DSN = "sync+https://22979234ab4749ceabce08e6da4c1476:1432c8c7a43d410b9b5bb33f8e55b2a6@app.getsentry.com/38482"
if hasattr(sys, "frozen"):
cacert = os.path.join(os.getcwd(), "cacert.pem")
if os.path.isfile(cacert):
@@ -47,6 +53,11 @@ class CrashReport:
self._client = None
def capture_exception(self, request=None):
if not RAVEN_AVAILABLE:
return
if os.path.exists(".git"):
log.warning("A .git directory exist crash report is turn off for developers")
return
server_config = Config.instance().get_section_config("Server")
if server_config.getboolean("report_errors"):
if self._client is None:
@@ -74,6 +85,7 @@ class CrashReport:
report = self._client.captureException()
except Exception as e:
log.error("Can't send crash report to Sentry: {}".format(e))
return
log.info("Crash report sent with event ID: {}".format(self._client.get_ident(report)))
@classmethod
+5 -2
View File
@@ -28,6 +28,9 @@ from gns3server.handlers.api.vpcs_handler import VPCSHandler
from gns3server.handlers.api.config_handler import ConfigHandler
from gns3server.handlers.api.server_handler import ServerHandler
from gns3server.handlers.upload_handler import UploadHandler
from gns3server.handlers.index_handler import IndexHandler
if sys.platform.startswith("linux") or hasattr(sys, "_called_from_test"):
from gns3server.handlers.api.iou_handler import IOUHandler
if sys.platform.startswith("linux") or hasattr(sys, "_called_from_test") or os.environ.get("PYTEST_BUILD_DOCUMENTATION") == "1":
# IOU runs only on Linux but testsuite work on UNIX platform
if not sys.platform.startswith("win"):
from gns3server.handlers.api.iou_handler import IOUHandler
Loaded 100 of 223 files, more files were not shown because too many files have changed in this diff. Show more