Compare commits

..

1298 Commits

Author SHA1 Message Date
976154fd0b 1.4.2 2016-02-17 19:38:34 +01:00
dea68bcb28 Fix missing format in IOU export 2016-02-11 09:15:48 +01:00
1fb4d191c9 Fix number of arguments to the UDP errors on VBOX 2016-02-11 09:02:38 +01:00
167a0b8435 Add verification when UDP tunnel is created in a VirtualBox VM. Ref #899. 2016-02-10 19:08:34 -07:00
5842487cd0 Fixes VMware linked clone cleanup bug. Fixes #420. 2016-02-10 11:26:40 -07:00
942d07c8ce Removed docker support from 1.4 (drop unused code) 2016-02-08 13:40:14 +01:00
3fc64bced2 Fix a crash if you create a file named IOS in the image dir
Fix #419
2016-02-05 10:29:27 +01:00
373113545f Code cleanup 2016-02-05 10:07:13 +01:00
5bee927481 Disallow creating project with " in the path
It's not supported by dynamips.

Fix https://github.com/GNS3/gns3-gui/issues/987
2016-02-04 11:47:48 +01:00
4f61443b20 Always look at the registry to find vmrun.exe on Windows. 2016-02-03 19:08:41 -07:00
4673424da7 Check for VMware VIX library version. Fixes #413. 2016-02-03 18:15:33 -07:00
40261ec99c Fixes VDE not working #345. 2016-02-03 16:26:15 -07:00
3e4423f663 Merge pull request #418 from GNS3/no_spice
Do not list qemu binary with -spice in the name
2016-02-03 13:45:03 -08:00
88e8c36d1c Merge pull request #416 from GNS3/command_line
Send command line used to start the VM to client
2016-02-03 11:10:37 -08:00
537122daba Do not list qemu binary with -spice in the name
It's create confusion and you can enable spice with the -spice
options.

Fix https://github.com/GNS3/gns3-gui/issues/981
2016-02-03 16:40:39 +01:00
fd22cd8361 Send command line used to start the VM to client
Add a command_line attribute to the VM object with
the command line used to start the VM.

Now /start return the object in order to get
this new attribute. And the HTTP status code
is 200 instead of 204 because 204 disallow body.

Support:
* Qemu
* Dynamips
* IOU

Ref https://github.com/GNS3/gns3-gui/issues/513
2016-02-02 18:25:17 +01:00
71c3bda0a5 Fix crash if you have a { in your user name
Fix #414
2016-02-02 10:05:08 +01:00
53d60bc71a 1.4.2dev1 2016-02-01 17:48:10 +01:00
ce7ac0505a 1.4.1 2016-02-01 17:46:05 +01:00
bf316f35cc VMware raise error if version is not found
Fix #972
2016-02-01 14:26:55 +01:00
29089f1884 Cleanup an old kvm-ok test 2016-01-28 17:54:29 +01:00
889ea14973 For topologies before 1.4 manage qemu missing
If qemu is missing for topologies before 1.4 we try
to search it in the path.

Ref #921
2016-01-28 16:24:24 +01:00
2e05290206 Fixes issue with packet capture on VMware VMs. Fixes #396. 2016-01-26 14:45:55 -07:00
39ddc4e8c1 Fixes concurrency issue when closing multiple VMware linked clone VMs. Fixes #410. 2016-01-26 14:23:01 -07:00
a279bfe1d9 Fixes "can only use tap interfaces that both already exist and are up". Fixes #399. 2016-01-26 13:48:58 -07:00
35e045a22e Merge pull request #412 from GNS3/stats_stream
Send machine stats via the notification stream
2016-01-26 08:52:16 -08:00
58b998600e Send machine stats via the notification stream
Fix #252
2016-01-26 16:35:00 +01:00
119a2a3b66 Add test for unicode char in images path
Ref #401
2016-01-26 15:32:40 +01:00
ee2104ba35 Check for /dev/kvm instead of kvm-ok
Fix #411
2016-01-26 13:58:29 +01:00
425a05ecd8 Bump to 1.4.1dev2 2016-01-26 13:50:13 +01:00
cd9cb3eb6a Merge pull request #408 from GNS3/asa8_warning
Show a warning when starting ASA8
2016-01-22 10:53:19 -08:00
5617ddc4cc Show a warning when starting ASA8 2016-01-22 19:46:05 +01:00
e9c2a76f43 Fix error when setting Qemu VM boot to 'cd' (HDD or CD/DVD-ROM)
Fix #400
2016-01-20 13:19:33 +01:00
65a05791ce Merge pull request #394 from boenrobot/vmware_VMsFolder_fix
VMware default VM location
2016-01-19 19:02:06 -08:00
a9eae691f6 Fixed the VMware default VM location on Windows, so that it doesn't assume the "Documents" folder is within the %USERPROFILE% folder, and also support Windows Server's folder (which is "My Virtual Machines" instead of "Virtual Machines"). 2016-01-18 00:48:24 +02:00
0a4a01fed0 Merge pull request #393 from GNS3/avoid_losing_config
Improve dynamips startup_config dump
2016-01-17 09:45:00 -08:00
2938b97bd4 Improve dynamips startup_config dump
Two change:
1) Dump the config when you stop the node. This avoid scenar
2) Disallow empty startup config. If it's empty send ! it's
avoid dynamips crash

Fix #914
2016-01-15 18:02:52 +01:00
f83e878d89 Dump environnement to server debug log
Ref https://github.com/GNS3/gns3-gui/issues/921
2016-01-15 10:11:32 +01:00
8225bad76b Fix usage of qemu 0.10 on Windows
Fix #392
2016-01-14 17:40:58 +01:00
ba4128f57b Show hostname when the hostname is missing in the iourc.txt 2016-01-13 16:37:50 +01:00
bc3016eec5 Merge branch '1.4' 2016-01-13 11:39:00 +01:00
a8c03f754b 1.4.1dev1 2016-01-13 09:22:28 +01:00
e3beea0378 1.4.0 2016-01-12 17:40:47 +01:00
bcd9851eee 1.4.0dev14 2016-01-06 14:32:39 +01:00
e599c28c1c 1.4.0rc3 2016-01-05 18:43:58 +01:00
afb5b6d6e8 API documentation update 2016-01-04 17:04:15 +01:00
e73f81c9a3 Merge pull request #388 from GNS3/boenrobot-addCapabilities
Add  qemu capabilities
2016-01-04 16:34:33 +01:00
d184b65800 Improve PR #386
* Add more test
* Check to kvmi-ok is asynchronous
2016-01-04 16:30:06 +01:00
fba049767a Merge branch 'addCapabilities' of https://github.com/boenrobot/gns3-server into boenrobot-addCapabilities 2016-01-04 12:09:44 +01:00
fab8b3f46f Fix race condition when killing iouyap
Fix #387
2016-01-04 10:42:46 +01:00
137cf59e97 Catch exception if we can't change process priority on Windows
Fix #380
2016-01-03 21:24:18 +01:00
d00efbfb0f Adds a handler for getting the Qemu related capabilities of the server. Currently includes just a check for KVM architectures. 2016-01-03 19:38:16 +02:00
061a6e3b25 Merge pull request #385 from boenrobot/qemuHdbInterfaceFix
Fixed showing of Qemu hdb_disk_interface
2016-01-01 13:17:19 -08:00
a4d9f95c9b Fixed showing of Qemu hdb_disk_interface - it showed hda_disk_interface instead, which resulted in an odd visual glitch in the GUI. 2016-01-01 02:44:23 +02:00
38622c4da3 Merge pull request #381 from boenrobot/noCwdBat
CWD independance
2015-12-24 14:56:45 -08:00
e5e96ee8b4 Made the gns3server.bat successfully start the server independent of the CWD at the time of running. It's now relative to the location of the .bat file itself. 2015-12-24 16:45:02 +02:00
31046358cc Add more informations in the debug status page
* Number of VM in a project
* Number of client connected
2015-12-22 15:19:38 +01:00
a0987bbc92 Fix status link in GNS3 homepage 2015-12-22 14:58:51 +01:00
61cf91d83c Fix tests on Windows
Fix #377
2015-12-22 13:16:30 +01:00
28533cfdac Cleanup 2015-12-22 12:51:43 +01:00
095ef7994a Support building any branch 2015-12-21 11:35:29 +01:00
8312a54615 Fix missing boot priority order 2015-12-21 10:17:22 +01:00
286cd7a3ac A debug status page embed in the server 2015-12-18 14:38:26 +01:00
c2d313f5a7 Lock py.test versions 2015-12-16 14:58:16 +01:00
48678506f7 Ignore py.test .cache directory 2015-12-16 14:48:03 +01:00
7ce17cc48f Install dependencies before setup.py install
This fix issues with aiohttp recent versions not supported
on Python 3.4.0
2015-12-16 14:46:26 +01:00
480ca037cd Fix test on Windows
Sadly python crash on my Windows and I can't run the full test
suite.

Fix #377
2015-12-14 16:06:51 +01:00
ad4501838b Merge branch 'master' into unstable 2015-12-11 14:35:08 +01:00
ce5a29b29a 1.4.0dev13 2015-12-11 14:34:13 +01:00
a2f0745e81 1.3.14dev1 2015-12-11 14:33:37 +01:00
38745be5fe 1.3.13 2015-12-11 09:21:20 +01:00
a827f6b2de 1.3.12 2015-12-11 09:18:27 +01:00
55034dd24f Update links for new website. 2015-12-10 15:00:16 -07:00
55dc0d587d 1.4.0rc2 2015-12-10 19:41:28 +01:00
a9e1801e7d Merge pull request #374 from GNS3/patch_used_port
Replace by another TCP port if port is already used
2015-12-09 21:24:04 -08:00
1e97a544e6 1.4.0dev12 2015-12-08 16:27:37 +01:00
7dfb386a66 Add log about wher iou capture packet 2015-12-08 16:11:40 +01:00
2aaad4749b Replace by another TCP port if port is already used
Another version of #370

This time we replace a free TCP port if port is used and raise
a warning to the user.
2015-12-07 12:26:46 +01:00
f3b71dcdef Fix ProcessLookupError in Qemu
Fix #373
2015-12-07 10:50:34 +01:00
a67b218bde Increase vmrun timeout to 120 seconds. Ref #360. 2015-12-05 18:37:34 -07:00
1071b6366f Fixes termination notification to indicate the right process name (IOU vs iouyap). Ref #359. 2015-12-05 18:24:08 -07:00
19d5c1c05b Fixes error with non initialized uBridge. Fixes #367. 2015-12-05 17:36:55 -07:00
a6826fe0bf Remove debug that can crash qemu
Fix #365
2015-12-01 19:30:39 +01:00
42a4df5079 Support VM usage for qemu
Ref https://github.com/GNS3/gns3-gui/issues/829
2015-12-01 10:54:51 +01:00
e626c0b55c Raise an error if psutil version is invalid
Fix #361
2015-12-01 09:42:36 +01:00
02cabfbffa Contributing instructions 2015-11-30 14:15:54 +01:00
535afdba5e 1.4.0rc1 2015-11-12 17:52:15 +01:00
5b347fe48f Raise error if server received windows path 2015-11-12 15:38:47 +01:00
58e7fa2f01 Update sentry key
Fix #357
2015-11-12 11:25:23 +01:00
c7cc155b78 Merge branch 'master' into unstable 2015-11-12 10:55:19 +01:00
11cf2294da Remove NIO FIFO and Mcast (unused). Fixes #348. 2015-11-11 16:20:28 -07:00
3f4da9050c Support VPCS 0.6.1 2015-11-11 21:57:58 +01:00
63edcc1c34 Fix duplicate of -no-kvm options
Fix #356
2015-11-10 16:25:02 +01:00
caade47e16 Fix tests about images paths security 2015-11-10 15:21:10 +01:00
390c88d7cd Raise an error if user send a non local path to remote server 2015-11-09 19:02:10 +01:00
669295131b Fix qemu tests on Linux 2015-11-09 15:01:02 +01:00
ab4c8665e4 Fix backup projects and a qemu broken tests 2015-11-09 14:17:19 +01:00
ac16ee5bc6 Fix minor issues 2015-11-09 12:32:36 +01:00
da240f21ba Apply pep8 fix 2015-11-09 12:28:00 +01:00
f01a6dcaaf Fix qemu tests 2015-11-09 12:23:50 +01:00
1248584841 Cleanup unused and duplicates 2015-11-09 12:14:25 +01:00
58d2a5d4b0 Support VPCS 0.6.1
Fix #347
2015-11-09 10:26:16 +01:00
bd47c21514 Sets console end port to 7000. Fixes #343. 2015-11-08 18:14:55 -07:00
c3e99bfc1d Drop netifaces (replaced by psutil). Fixes #344. 2015-11-08 13:34:27 -07:00
9ca72f3bbc Correctly display log messages. 2015-11-08 12:01:25 -07:00
e4735308f8 Merge remote-tracking branch 'origin/master' 2015-11-07 12:18:05 -07:00
13a3e8f324 Tentative fix for "WinError 64 The specified network name is no longer available" issues. 2015-11-07 12:17:53 -07:00
6fbc84c0dc Return relative path for dynamips images
Fix https://github.com/GNS3/gns3-gui/issues/775
2015-11-05 16:47:37 +01:00
7ee12edb5c Fix add existing IOS not working
Fix https://github.com/GNS3/gns3-gui/issues/775
2015-11-05 16:28:11 +01:00
7e7c8a5450 Correctly enable faulthandler for dev version 2015-11-05 10:50:37 +01:00
d9f94e653b Allow vpcs 0.8b 2015-11-04 14:37:27 +01:00
f1e9262c94 Avoid test crash if GNS3 is running on the same computer 2015-11-03 21:06:30 +01:00
12f027a882 Allow to return an empty project name because it's allowed in creation 2015-11-03 17:11:58 +01:00
7967a922bc Merge branch 'master' into unstable 2015-11-03 12:39:01 +01:00
bd54c55ae1 Fix minor errors reported by codacy.com 2015-11-03 12:34:22 +01:00
a9d0951bb6 Test with python 3.5 2015-11-03 10:59:03 +01:00
ef5ce99125 1.4.0dev11 2015-11-02 21:30:22 +01:00
f313ac10c3 1.4.0b5 2015-11-02 10:55:32 -07:00
69c38c6414 Use pytest 2.8 so it's work with Python 3.5 without warning 2015-11-02 16:35:12 +01:00
82540e5366 Fixes wait for named pipe creation. 2015-11-01 20:52:07 -07:00
32f9baf682 Fixes Windows named pipe issue. Fixes #340. 2015-11-01 18:51:12 -07:00
a961387af9 Add doc on how to got code coverage 2015-10-31 21:27:10 +01:00
6edb41ded7 Merge branch 'master' into unstable 2015-10-30 15:17:17 +01:00
42c8fb7c29 Raise an error when you use a port outside the ranges
Fix #739
2015-10-30 15:15:28 +01:00
c2a08a391c Fix crash in IOU config export
Fix #335
2015-10-21 14:28:39 +02:00
7d82a77ba7 Freeze requirements for aiohttp because 0.18 doesn't support Python
3.4.0
2015-10-20 08:39:15 +02:00
db2aa56e98 1.4.0dev10 2015-10-19 19:13:58 +02:00
d5dba699c5 1.4.0b4 2015-10-19 11:09:18 -06:00
ce4727e51a Support for modifications to a base Qemu VM (not a linked clone). 2015-10-18 19:19:27 -06:00
2fbc391319 Force canceling all task when shutdown server
https://bugs.python.org/issue24080

Fix #705
2015-10-16 20:42:13 +02:00
d979f08c93 Update api documentation 2015-10-16 19:05:29 +02:00
504a4af4ab Enforce console port for VNC
Ref https://github.com/GNS3/gns3-gui/issues/721
2015-10-16 18:16:07 +02:00
6e36687347 Fixes issue when loading a project using VMware vmnet interfaces. Fixes #319. 2015-10-14 21:39:17 -06:00
57bbd63085 Support for NAT connection with cloud for VMware VMs. Fixes #322. 2015-10-12 17:07:39 -06:00
b53f0e89ce Change message when VMware is not installed on Linux. Ref #326. 2015-10-12 16:27:31 -06:00
ac75977ae0 Send a warning notification if there is not enough RAM left to start a VM. Implements #329. 2015-10-12 15:57:37 -06:00
c700804014 Merge branch 'master' into unstable 2015-10-12 17:09:33 +02:00
91c2bd7e98 Asyncio qemu fix and raise error if coroutine not used 2015-10-12 17:06:50 +02:00
0a536278fc Fix asyncio error when closing the app
Fix #310, https://github.com/GNS3/gns3-gui/issues/705
2015-10-12 16:16:44 +02:00
5cb2b33a99 Removes VMware lock check. Fixes #328. 2015-10-11 16:41:55 -06:00
133b01b2a6 Merge remote-tracking branch 'origin/unstable' into unstable 2015-10-11 15:51:05 -06:00
ee6ef9f3d5 Wait for pipe file to be created before starting the remote console for VMware and VirtualBox VMs. Fixes #331. 2015-10-11 15:50:50 -06:00
ccd45c2f45 Merge branch 'master' into unstable 2015-10-08 11:30:16 +02:00
a6286db7b1 Release UDP ports when closing a Qemu VM. Fixes #323. 2015-10-07 20:48:36 -06:00
6cd790880c 1.3.12dev1 2015-10-07 18:26:18 +02:00
b19bfa0270 1.3.11 release 2015-10-07 18:24:03 +02:00
9c23093510 Merge branch 'master' into unstable 2015-10-07 16:44:50 +02:00
98ac295e2e Escape other usage of glob
Fix #332
2015-10-07 16:42:34 +02:00
c50c735e86 Merge branch 'master' into unstable 2015-10-07 13:51:28 +02:00
acd5c992ba Fix Dynamips identifier is already used by another router
Fix #327
2015-10-07 13:50:40 +02:00
9b740e85d0 Fix Dynamips identifier is already used by another router
Fix #327
2015-10-07 11:34:27 +02:00
da7f910482 glob.escape is available with Python 3.4 2015-10-07 10:27:42 +02:00
4c13f8e6ea Merge branch 'master' into unstable 2015-10-07 10:27:06 +02:00
4232ea8a00 Protect dynamips against bad glob
Fix #332
2015-10-07 10:26:37 +02:00
ec7a9615ac Fix issue with Qemu networking following merge 2015-10-07 09:01:17 +02:00
5e3ce48a52 Merge branch 'master' into unstable 2015-10-06 19:19:56 +02:00
3d7d8682ee OVA file support 2015-10-06 17:50:54 +02:00
034ac392b7 Support listing images in subdirectories
It's a part of the OVA support:
https://github.com/GNS3/gns3-gui/issues/700
2015-10-05 11:07:15 +02:00
bfe9c117ba Fix tests 2015-10-05 09:14:55 +02:00
fc5afa6676 Catch ProcessLookupError in Qemu VM. 2015-10-04 14:20:44 -06:00
3f86df5169 Fixes uncalled coroutine. 2015-10-04 07:00:47 -06:00
970f22a83e Use the correct UDP tunnel Qemu syntax for version > 1.1.0 when legacy networking is enabled. 2015-10-04 06:41:39 -06:00
dd7f6eb021 Fix crash 2015-10-02 15:04:42 +02:00
d19b3f15ed VMware player linux support
Fix #326
2015-10-02 11:04:54 +02:00
80d99ec395 Fixes some minor issues. 2015-09-29 14:15:01 -06:00
8560521028 Merge remote-tracking branch 'origin/master' 2015-09-29 06:58:33 -06:00
e63e3280a1 Prevent launching a packet capture with a non-ASCII path when using Dynamips. 2015-09-29 06:56:01 -06:00
9737783eb6 Do not require a TAP interface to already exist. Fixes #321. 2015-09-26 10:09:50 -06:00
09aa31fb43 Do not automatically delete Dynamips bootflash file because they are necessary to restore VLANs on the c3600 platform. 2015-09-23 13:42:37 +02:00
d01a8bfb34 Bump version to 1.4.0.dev9 2015-09-22 16:07:21 -06:00
6ca0154435 Prepare 1.4.0b3 2015-09-22 17:37:44 +02:00
e7ea9e8047 Merge branch 'master' into unstable 2015-09-22 14:40:13 +02:00
bfe3b12342 Fix dynamips configuration lost when you delete a node
Fix #316
2015-09-22 14:39:21 +02:00
bf0813b4b9 Merge branch 'master' into unstable 2015-09-22 13:46:08 +02:00
c43960fbfd Clarify error message when we got UTF-8 chars in the iourc file
Fix #307
2015-09-22 13:45:10 +02:00
6a6beb752a Merge remote-tracking branch 'origin/master' into unstable 2015-09-22 11:03:41 +02:00
2c3d7510be Fixes version mismatch issue. 2015-09-20 13:28:37 -06:00
5bcabc705f Use custom VMnet interfaces without host adapter when uBridge is not used. Fixes #673. 2015-09-20 13:19:57 -06:00
c5ce6af872 Bump version to 1.4.0dev8 2015-09-18 15:41:34 -06:00
b90df5806d Automatically add the -no-kvm option if -icount is detected to help with the migration of ASA VMs created before version 1.4 2015-09-18 15:40:56 -06:00
a016c458a6 1.4.0 beta2 2015-09-17 16:46:22 +02:00
b1f3210a4c Fix a crash at vmware stop
Fix https://github.com/GNS3/gns3-gui/issues/665
2015-09-17 15:51:46 +02:00
bb080fa96a Fix a crash when starting a VMware vm
Fix #314
2015-09-17 15:46:06 +02:00
e236f63162 Add how to add vmnet interfaces explantion in the error message 2015-09-17 15:18:55 +02:00
3e71529702 Fix path of VMinventory for fusion
Fix #313
2015-09-17 11:04:24 +02:00
802d0628bd Force close the keep alive when sending a 401
Work around a Qt issue where Qt
timeout instead of handling the 401
this happen only for the first query send by the
client.
2015-09-16 15:53:38 +02:00
958274e8f6 Do not automatically delete Dynamips bootflash file because they are necessary to restore VLANs on the c3600 platform. 2015-09-16 06:09:14 -06:00
5136083853 Wait that an user press a key to stop gns3vmnet.exe on Windows. 2015-09-16 05:26:17 -06:00
e374e52745 Bump version to 1.4.0dev7. 2015-09-14 15:19:57 -06:00
47abba3c9c Fixes tests. 2015-09-14 15:16:54 -06:00
59f5de5de2 Throw an error if ubridge as incorrect permissions. Fixes #312. 2015-09-14 15:05:25 -06:00
a9ac0d3380 This may fix "The semaphore timeout period has expired" error on Windows. #311. 2015-09-13 15:47:43 -06:00
65fa4036c6 Fixes bug with VMware VM connections + moves some uBridge code to BaseVM. 2015-09-13 14:52:25 -06:00
0ee31361c0 Support for packet capture on VMware VM links. 2015-09-13 09:40:09 -06:00
c7b17039cb Update docker-py version 2015-09-11 17:18:57 +02:00
22e4fec2e2 Fix ProcessLookupError on _checkAlive Qemu
Fix #308
2015-09-11 14:16:56 +02:00
cc7fe1a477 VMware Fusion support with uBridge. 2015-09-10 03:44:56 -06:00
46698924fd Merge remote-tracking branch 'origin/unstable' into unstable 2015-09-09 02:39:06 -06:00
8e29ad4493 Updates vmnet script to support Windows. 2015-09-09 02:38:11 -06:00
5aa9d4d7b9 Do not block on .lock for VMware OSX 2015-09-08 21:31:21 +02:00
1e722254f7 Merge remote-tracking branch 'origin/unstable' into unstable 2015-09-08 03:03:38 -06:00
8031cf1030 Require Dynamips version 0.2.16 to change the default QinQ Ethernet type. 2015-09-08 03:03:11 -06:00
92e05e144a Merge branch 'docker' into unstable 2015-09-08 11:00:59 +02:00
0fa300cb99 Initial Docker support from Google Summer of Code 2015-09-08 10:57:28 +02:00
9ee1d9d71a fixed the way docker containers are terminated 2015-09-08 10:54:27 +02:00
0ab95ae043 basic docker container support 2015-09-08 10:54:27 +02:00
6dd381a745 Merge branch 'Bevaz-qinq_ethertype' into unstable 2015-09-08 02:29:30 -06:00
0ddef78127 Merge branch 'qinq_ethertype' of https://github.com/Bevaz/gns3-server into Bevaz-qinq_ethertype 2015-09-08 02:27:21 -06:00
2a0f1586c8 Merge remote-tracking branch 'origin/master' 2015-09-08 02:08:32 -06:00
2c5b2a19f6 Check for valid FR or ATM switch mappings. Fixes #300. 2015-09-08 02:07:06 -06:00
a779fa7462 Check for valid FR or ATM switch mappings. Fixes #300. 2015-09-08 02:00:39 -06:00
c992cabb28 VirtualBox VMs can only be started if powered off. Fixes #299. 2015-09-08 01:20:46 -06:00
4d6626e849 Support of VPCS 0.8
Fix #306
2015-09-07 17:35:21 +02:00
4efec03448 Allows VMware VMs to use vmnet interfaces for connections without using uBridge. Fixes #295. 2015-09-05 14:38:11 -06:00
476e033a78 Fixes path to vmnet-cli on Mac OS X. 2015-09-05 11:30:26 -06:00
a70775a238 Updates vmnet script to support Mac OS X. 2015-09-05 11:20:25 -06:00
5fa5e7227d Prepare next release 2015-09-04 21:33:48 +02:00
2689b6b7bb Prepare 1.3.10 2015-09-04 18:22:59 +02:00
c16d237176 Fix test 2015-09-04 09:13:57 +02:00
3cf609303d Slack support for Travis 2015-09-04 09:05:44 +02:00
fda33c56de Catch exception when a process cannot be killed. Fixes #296. 2015-09-03 16:18:27 -06:00
5388d43695 Fix closing project when multiple project is open
Fix #305
2015-09-03 17:41:27 +02:00
986ab649d7 Fix project not closing
Fix #303
2015-09-03 16:46:34 +02:00
b1ef49672e Qemu user options are at the end. It's allow user to add his own net
interfaces
2015-08-27 18:46:02 +02:00
d853ffe791 Change the way we look for Qemu path
Fix #302
2015-08-27 18:27:17 +02:00
c361d27531 Lock qemu vm during start / stop operations
Fix #301
2015-08-27 16:06:11 +02:00
699647dbda In the error message explain how to turn off KVM support 2015-08-26 17:17:40 +02:00
4cc66a3801 Fix when you stop qemu on windows you have an error
Fix #625
2015-08-26 17:01:16 +02:00
8085080e41 Merge branch 'master' into unstable 2015-08-26 14:36:55 +02:00
fea7a8a9ab Fix Qemu cannot be used on Windows
Fix #291
2015-08-26 13:47:12 +02:00
70f62cd5eb Allow to start server with python -m gns3server 2015-08-25 22:31:45 +02:00
796ca86df9 Fix random failures in tests on OSX and Windows 2015-08-25 10:13:49 +02:00
f0f901a15d Should solve the BufferError by avoiding using thread
Fix #293
2015-08-24 19:59:11 +02:00
34e64fe5d8 Catch UnicodeEncodeError when passing unicode char as qemu options
Fix #292
2015-08-24 18:09:01 +02:00
1a04417e84 1.4.0dev6 2015-08-24 17:16:46 +02:00
1283f8bde8 EthernetSwitch: Allow to choose ethertype for QinQ outer tag. 2015-08-20 09:42:30 +03:00
eb5f9c48f2 Backport: fixes NAT NIO for Qemu VMs (do not launch any legacy scripts) 2015-08-14 22:16:02 -06:00
98112f7fac Fixes NAT NIO for Qemu VMs (do not launch any legacy scripts) 2015-08-14 22:15:01 -06:00
a16d6ac88f Lower VMware requirements to Workstation version 10 and Player version 6. 2015-08-14 20:35:04 -06:00
83a7e25389 Fixes Unicode error. Fixes #290. 2015-08-13 20:15:50 -06:00
ab3700854c Don't delete Dynamips ROM files. They are used to restore the nvram. 2015-08-10 21:23:05 -06:00
2ce01fafc0 Don't delete Dynamips ROM files. They are used to restore the nvram. 2015-08-10 21:22:21 -06:00
764e0df29a Adds pywin32 dependency in setup.py for Windows. 2015-08-10 18:36:25 -06:00
31b91e1ccb 1.4.0beta1 2015-08-07 18:39:59 +02:00
0018658f60 Fix ram setting for Qemu 2015-08-07 17:08:22 +02:00
55f7c79918 Explicit set qemu memory as MB 2015-08-07 17:03:06 +02:00
323674ba5c Turn off KVM for non x86 architectures
Fix #289
2015-08-07 16:49:45 +02:00
8b46a1a4ab Fix tests 2015-08-07 09:21:09 +02:00
05ab18f295 Send an error when vmware executable cannot be found on Linux. Fixes #288. 2015-08-06 23:05:10 -06:00
5121753232 Support for CPUs setting for Qemu VMs. 2015-08-05 17:17:55 -06:00
217945339e Bump version to 1.4.0dev5. 2015-08-04 11:59:35 -06:00
f161bf42fa Bump version to 1.4.0alpha4. 2015-08-04 11:58:34 -06:00
e46ecdc37c Bump version to 1.4.0dev5. 2015-08-04 11:53:59 -06:00
2e6c438208 1.4.0alpha4 2015-08-04 11:51:25 -06:00
1613999689 Quote command in qemu debug logs so you can copy/paste them 2015-08-04 17:06:42 +02:00
e91a7cebd4 Merge branch 'master' into unstable 2015-08-03 19:29:32 +02:00
39c1d2d2dd Prepare 1.3.10 2015-08-03 19:25:56 +02:00
d942f52f7d 1.3.9 2015-08-03 18:52:22 +02:00
dbc4f05465 Fix tests 2015-08-03 12:10:36 +02:00
0923ed5d85 Support for Qemu disk interfaces, cd/dvd-rom image and boot priority. Fixes #278. 2015-08-02 23:02:02 -06:00
7bccf9e554 Check for VMware Player version >= 7 and VMware Workstation >= 11. Fixes #286. 2015-08-01 13:49:02 -06:00
bb69f02da6 Catch GeneratorExit exception when trying to create a Ghost IOS image. 2015-08-01 11:50:16 -06:00
06a6287dff Backport: removes code that deletes IOS router instance files. 2015-07-31 14:37:23 -06:00
7c1dd75ad7 1.4.0dev4 2015-07-31 15:33:22 +02:00
87ec90cdaf Removes code that deletes IOS router instance files. 2015-07-30 18:50:59 -06:00
c2807c39f9 1.4.0alpha3 2015-07-29 18:17:03 +02:00
1fd2332796 PEP8 2015-07-28 17:57:36 +02:00
78ef6e3032 Validation schema for qemu-img 2015-07-28 17:50:57 +02:00
1eecae2027 Changelog 1.4.0alpha3 2015-07-28 17:26:54 +02:00
058a13ce87 Merge branch 'master' into unstable 2015-07-28 16:50:31 +02:00
003c2f5f0b New crash report key 2015-07-28 16:48:22 +02:00
e92d9ca5ff Raise error if qemu image already exist when creating disk 2015-07-28 16:15:01 +02:00
54448ab936 Prevent user to create a qemu to a different directory on non local
server
2015-07-28 16:07:13 +02:00
1ebc287b5f VMnet manager on Linux: check that VMware has been installed. 2015-07-27 17:10:20 -06:00
f761fb77f8 Fixes UnicodeDecodeError when reading a VMware file. 2015-07-27 16:29:02 -06:00
a721d7d910 Fixes KeyError: "ethernet0.connectiontype". Fixes #276. 2015-07-27 15:50:09 -06:00
1419b7c8dc Fixes replace errors. Fixes #284. 2015-07-27 15:31:42 -06:00
c2ba3f923e 1.3.9dev1 2015-07-27 20:11:49 +02:00
bdb23d6d3b 1.3.8 2015-07-27 12:10:01 -06:00
2ed0ef770e Catch ProcessLookupError when updating iouyap config. Fixes #255. 2015-07-27 11:41:13 -06:00
5986849b67 Catch ProcessLookupError when updating iouyap config. Fixes #255. 2015-07-27 11:40:01 -06:00
5b0c36c0d6 API for creating a qemu disk image 2015-07-27 19:18:36 +02:00
5d8c90d138 Rename qemu image type to qemu image format 2015-07-27 17:32:27 +02:00
b94a4e2308 Add code for creating qemu image on server side
Ref https://github.com/GNS3/gns3-gui/issues/558
2015-07-27 16:27:14 +02:00
fcd4fda68e Prevent starting different hypervisors that leverage hardware virtualization (VT-x/AMD-V). Fixes #548. 2015-07-26 19:21:30 -06:00
eb5e019a26 Fixes IOS adapters and WICS cannot be removed. Fixes #282. 2015-07-26 15:52:43 -06:00
76fe0cb316 Fixes IOS adapters and WICS cannot be removed. Fixes #282. 2015-07-26 15:51:55 -06:00
4aeb451ffd Makes sure the loop is running when closing the app. 2015-07-26 15:28:14 -06:00
5f5d9347b9 Makes sure the loop is running when closing the app. 2015-07-26 15:27:47 -06:00
31b168aa42 Catch Permission denied when writing to VMX file while closing VMware VM. Fixes #277. 2015-07-25 17:09:10 -06:00
382747a2f2 Catch GeneratorExit exception. Fixes #231. 2015-07-25 16:55:37 -06:00
64bf935222 Fixes missing chipset info for VirtualBox VM (maybe some older VirtualBox version don't have it). Fixes #254. 2015-07-25 16:54:31 -06:00
7b001e4d36 Catch GeneratorExit exception. Fixes #231. 2015-07-25 16:46:23 -06:00
b1b602db3b Merge remote-tracking branch 'origin/master' 2015-07-25 16:39:45 -06:00
cf5af8a6f7 Fixes missing chipset info for VirtualBox VM (maybe some older VirtualBox version don't have it). Fixes #254. 2015-07-25 16:39:38 -06:00
8a257b3b2e Changes how to look for the vmrun.exe location. 2015-07-24 16:50:36 -06:00
c3c971921d Update documentation 2015-07-24 10:15:15 +02:00
d9f1a7c7d3 API for listing current projects
Fix #274
2015-07-24 10:09:16 +02:00
cbe593f4a4 Fix virtualbox test crash on Linux 2015-07-23 12:06:35 +02:00
c0befe8a8a Merge branch 'master' into unstable 2015-07-23 11:38:23 +02:00
4814bc6c65 Fix IOURC upload 2015-07-23 11:36:11 +02:00
cbc859a03b Merge remote-tracking branch 'origin/master' into unstable 2015-07-23 11:35:15 +02:00
0f369bc40b ifconfig is not available on travis new architecture 2015-07-23 10:58:34 +02:00
631ad76149 Switch from travis legacy architecture to the new one 2015-07-23 10:56:15 +02:00
3f25bfcb27 Fix qemu tests 2015-07-23 10:46:43 +02:00
e07c3215f5 Merge remote-tracking branch 'origin/unstable' into unstable
Conflicts:
	gns3server/version.py
2015-07-22 20:56:43 -06:00
9b3b5f1884 Bump version to 1.4.0dev3 2015-07-22 20:55:54 -06:00
2655d426c2 Backport: option to drop nvram & disk files for IOS routers in order to save disk space. 2015-07-22 16:02:08 -06:00
cc820f2584 Changelog 2015-07-22 20:47:42 +02:00
1b499571b1 Deactivate uBridge process monitoring (process returns 1 on Windows when stopping). 2015-07-22 12:03:40 -06:00
8e236a7045 Prevent using different hypervisors that leverage hardware virtualization.
- Implemented for Qemu when a VMware or VirtualBox VM with hardware virtualization is already running.
- Implemented for VirtualBox only when a Qemu VM with KVM is already running.
2015-07-21 22:58:28 -06:00
f1bbacecd6 Backport: Remove timeout to wait for connections to finish. 2015-07-21 18:00:31 -06:00
accaa2159b Remove timeout to wait for connections to finish. 2015-07-21 18:00:03 -06:00
fc0409286b Check for uBridge version and catch uBridge errors. 2015-07-21 17:58:53 -06:00
f0649b4ac3 Remove default FLASH when no hda disk for Qemu VMs. Fixes #535. 2015-07-21 16:45:44 -06:00
8cc46f66c6 Fixes indentation mistakes. 2015-07-21 16:04:55 -06:00
a8142a04f8 Merge remote-tracking branch 'origin/master' 2015-07-21 16:02:52 -06:00
19425b1e9c Backport: Fixes RuntimeError: Event loop is closed. 2015-07-21 16:02:44 -06:00
abd9c1dc48 Use the registry to find vmrun if the default VMware install path does not exist. 2015-07-21 15:59:29 -06:00
1b066bef92 Merge pull request #272 from GNS3/backup_upload_images_projects
Backup upload images projects
2015-07-21 11:21:12 -07:00
6bf7a6aa38 Fix after jeremy feedback 2015-07-21 20:19:29 +02:00
15a7401654 Merge branch 'master' into unstable 2015-07-21 18:52:21 +02:00
fc14deee1b Restore images & projects tarballs 2015-07-21 16:14:03 +02:00
270017d945 Allow user to backup projects and images 2015-07-21 14:20:58 +02:00
23a03a24de Merge pull request #271 from lykinsbd/master
Update gns3.conf.upstart
2015-07-20 22:44:40 -07:00
439e0df058 Bind host on 0.0.0.0 when checking for a free UDP port. 2015-07-20 19:27:14 -06:00
d5c0584d25 Bind host on 0.0.0.0 when checking for a free UDP port. Fixes #265. 2015-07-20 19:22:20 -06:00
6ee94331d4 Fixes RuntimeError: Event loop is closed. Fixes #266. 2015-07-20 16:02:28 -06:00
c94dc1ec07 Update gns3.conf.upstart
Fixing start-stop-daemon syntax so that it accepts the aruments
2015-07-20 10:42:34 -05:00
dfd6af3c22 Merge remote-tracking branch 'origin/unstable' into unstable 2015-07-19 22:55:27 -06:00
1f890b4cad Implements uBridge hypervisor. 2015-07-19 22:55:10 -06:00
639f6bc68c New crash report key 2015-07-18 22:17:14 +02:00
5125ddcde4 Fix gns3server.utils.images in md5sum NameError: name 'log' is not
Fix #268
2015-07-16 18:56:36 +02:00
ddddac426b Fix invalid umask
Fix #264
2015-07-15 13:58:08 +02:00
6d678898ef Client disconnect should not be logged as an error 2015-07-13 14:51:42 +02:00
ccd29ab500 Take VMware file encoding into account. Fixes #261. 2015-07-12 20:58:58 -06:00
f08817f335 Merge remote-tracking branch 'origin/unstable' into unstable 2015-07-12 19:03:22 -06:00
e785baaa29 Take VMware file encoding into account. Fixes #261. 2015-07-12 19:03:15 -06:00
6048222797 Adjust AUTHORS. 2015-07-12 17:25:03 -06:00
9e2a22fc8e 1.4.0dev2 2015-07-10 15:52:53 +02:00
9cfc7c0423 Typo in version number 2015-07-09 19:05:47 +02:00
65410e23e2 1.4.0 alpha1 2015-07-09 19:05:12 +02:00
1e04e1e123 Fixes bug with vmrun VIX path. 2015-07-09 10:32:23 -06:00
f2e5b8756a Changelog for 1.4.0 alpha1
Fix #260
2015-07-09 17:48:02 +02:00
5705ace70c Update documentation 2015-07-09 16:16:43 +02:00
c3eb6a440f Fix vmware and interfaces tests 2015-07-09 16:12:33 +02:00
a461cb71c6 Allow to send the iourc when starting the VM
Ref https://github.com/GNS3/gns3-server/issues/255
2015-07-09 16:06:52 +02:00
dd6c377b15 Fix test on Linux
Fix #258
2015-07-09 15:39:14 +02:00
2fc63601bf Merge remote-tracking branch 'origin/unstable' into unstable 2015-07-08 21:39:14 -06:00
27532cd037 Add debug to help resolve https://community.gns3.com/thread/9193 2015-07-08 21:38:58 -06:00
32e0d49e1e VMware VMs always have a working directory (to store the ubrige.ini and ubrige.log files). 2015-07-08 17:48:34 -06:00
870029123c Netifaces is not used on Windows. Fixes #257. 2015-07-08 14:51:21 -06:00
37f4ff2f63 Do not monitor the ubridge process because it creates an issue on Windows. 2015-07-08 13:00:54 -06:00
8455d8a155 Merge remote-tracking branch 'origin/unstable' into unstable 2015-07-07 12:48:31 -06:00
205f624730 Fixes GUI crash on unset vmrun_path variable. Fixes #507. 2015-07-07 07:58:48 -06:00
78d847e9ac ubridge source Ethernet interface must be quoted on Windows. 2015-07-06 18:32:01 -06:00
dfe95cce63 Fix qemu binary lookup in frozen OSX application
https://github.com/GNS3/gns3-gui/issues/496
2015-07-05 21:53:47 +02:00
33d6fbde21 Fix server tests 2015-07-05 21:14:05 +02:00
83929119be Return stdout when a process crash for IOU, Dynamips, uBridge and VPCS. 2015-07-04 14:08:03 -06:00
9235c3a913 Adds -no-kvm to the ASA template and ignore -no-kvm on platforms other than Linux. Should resolve #472. 2015-07-03 23:35:42 -06:00
442aa31065 Make sure VNC ports are between 5900 and 6000. Fixes #490. 2015-07-03 16:06:25 -06:00
8e652778f9 Remove running VBoxManage as another user option (root for instance). See #248. 2015-07-03 14:37:07 -06:00
65953847f6 Fix an error in frozen ressources loading 2015-07-03 20:29:49 +02:00
f3f152cd2a Use the ressource system in order to locate the templates directory 2015-07-03 20:03:37 +02:00
3cacf400ff Fix SSL instructions 2015-07-03 15:04:19 +02:00
c6bbc34a56 Allow user to change the configuration file
Fix #251
2015-07-03 11:10:12 +02:00
06e193231c Fix double loading of config from working directory 2015-07-03 10:53:41 +02:00
e93f1330b8 Fix dynamips tests 2015-07-03 10:47:30 +02:00
1f116fc992 Fix tests 2015-07-03 10:43:48 +02:00
731d24f497 Get Windows interfaces for VMware support. 2015-07-02 20:10:20 -06:00
3ed95148b2 CORS support 2015-07-02 19:12:55 +02:00
caf7af7ad5 Support server config in current working directory 2015-07-01 17:30:52 +02:00
472faa97c5 Due to the migration to cx_freeze darwin and windows share
the same path for resources
2015-07-01 17:25:53 +02:00
4171aebfdb List only valid existing IOS images (for IOS router wizard). 2015-06-30 17:37:46 -06:00
be85d95ff7 Checks if IOS image exist at startup and not during node creation. Fixes #240. 2015-06-29 16:30:57 -06:00
3b3929803b Force turn off KVM for the CI 2015-06-26 17:13:32 +02:00
6e3ebb714d Return vm_directory for VirtualBox and VMware
Fix #246
2015-06-26 17:09:19 +02:00
feefb075d4 Make the qemu event crash more future proof 2015-06-26 15:10:41 +02:00
90b0dfebbd Merge branch 'master' into unstable 2015-06-26 14:42:43 +02:00
e8805d3fdc When a qemu VM crash send the log to the client.
Fix #243
2015-06-26 14:41:58 +02:00
2ccb30eeb5 Fix Incorrect vboxmanage sudo command
Fix #247
2015-06-26 10:47:52 +02:00
ccd3224490 Add a vm_directory field to Dynamips / VPCS / IOU
Fix #246
2015-06-25 11:17:32 +02:00
3bb1509f41 Fix the tests after the removal of the KVM flag from VM 2015-06-25 09:54:42 +02:00
2b36746d52 Return the working directory of a Qemu VM 2015-06-25 09:53:16 +02:00
d9745644cd Check for /dev/kvm. Fixes #245. 2015-06-24 23:03:04 -06:00
ed95bcee97 Moves KVM setting to Qemu server preferences. Fixes #244. 2015-06-24 22:47:30 -06:00
f20ee06181 VNC console support for Qemu VMs. 2015-06-24 19:09:17 -06:00
26df776f4c Move configuration to the GNS3 directory 2015-06-24 11:57:42 +02:00
08b5aec656 Fix Crash report sending errors when no reliable Internet connection 2015-06-23 19:28:08 +02:00
7f6a064ac1 Fixes versions. 2015-06-23 07:34:25 -06:00
3a3b2c22e3 Fix version number 2015-06-23 10:24:19 +02:00
82e2a16b27 Merge branch 'master' into unstable 2015-06-23 09:47:01 +02:00
389788cfdc 1.3.8 dev 2015-06-22 20:19:38 +02:00
26fc8236c9 1.3.7 2015-06-22 19:06:25 +02:00
8bd2453bf8 Allow null md5 in request schema 2015-06-19 16:38:22 +02:00
a8e69d9a0b Do not use the md5 from cache for a missing image 2015-06-19 16:36:25 +02:00
4aadfa3b67 Test all IOU requirements at VM startup
This allow user to create the node and upload the image after
2015-06-19 16:35:19 +02:00
5c4a49a8c7 Do not raise a 404 if we send the checksum of the images 2015-06-19 16:18:43 +02:00
f398d15025 Completes #239 (Makes VMX keys reading case insensitive). 2015-06-18 17:53:08 -06:00
797b45b1f9 Merge pull request #239 from GNS3/vmx_case_insensitive
Makes VMX keys reading case insensitive.
2015-06-18 14:08:40 -07:00
11e96e6521 ACPI shutdown support for VMware VMs. Fixes #436. 2015-06-18 15:02:31 -06:00
0a48fbe7e4 Fix coveralls configuration 2015-06-18 16:33:24 +02:00
a577fe9fdb Make VMX reading case insensitive
Fix #237
2015-06-18 16:28:13 +02:00
4a53c7789d Renable coverall in travis 2015-06-18 15:59:57 +02:00
6d1f060791 Reloads ubridge when connecting or disconnecting VMware VM links. 2015-06-17 17:36:52 -06:00
d779392d7f Find vmrun on Windows. 2015-06-17 17:05:58 -06:00
f041697311 Compute a md5sum of images for futur purpose
Fix #234
2015-06-17 17:11:25 +02:00
0f15e4b56a Fix merge issue 2015-06-17 14:16:36 +02:00
b1f740c952 Merge branch 'master' into unstable 2015-06-17 14:09:32 +02:00
4216c5d2ed Prevent install on Python 2
Fix #236
2015-06-17 14:08:22 +02:00
afa4ba9b55 Crash report key for 1.3.7 2015-06-17 09:30:56 +02:00
7980ae9ab1 Update version_info. 2015-06-16 15:00:25 -06:00
3495035dbf Bump version to 1.3.7.dev1 2015-06-16 14:39:20 -06:00
a2d4c2427d 1.3.6 2015-06-16 21:56:44 +02:00
0dae4b6930 1.3.6dev1 2015-06-16 19:32:53 +02:00
947a732bfb Remove netifaces dependencies due to IOUVM 2015-06-16 19:14:09 +02:00
d88c5648de 1.3.5 2015-06-16 18:56:50 +02:00
94fbd3fac9 Ignore invalid characters when reading the output of a process
It should happend only when user try to use another binary and
the code of VPCS, dynamips... Will detect it's not the
correct binary.

For example we detect this error after an user used SupperPutty
instead of VPCS.

Fix #235
2015-06-16 15:48:59 +02:00
e2ef78a7c4 Ignore invalid characters when reading the output of a process
It should happend only when user try to use another binary and
the code of VPCS, dynamips... Will detect it's not the
correct binary.

For example we detect this error after an user used SupperPutty
instead of VPCS.

Fix #235
2015-06-16 15:48:09 +02:00
87efc4d55a Adds gns3-netifaces to dependencies only if netifaces isn't already installed
otherwise this requires a compilation and therefore the Python development files.
2015-06-14 17:27:07 -06:00
8bcf749cd5 Adds an IP address for each interface returned by the interfaces API method. 2015-06-12 17:54:02 -06:00
f39f7be503 Add log when we didn't close a project due to another client 2015-06-12 15:14:30 +02:00
4e16433a08 Limit file size during upload
Fix #86
2015-06-12 10:10:46 +02:00
04aac2f3dc Convert old -enable-kvm to kvm settings for Qemu
Fix #233
2015-06-12 09:40:38 +02:00
6e88ba4c25 Cleanup SSL certificate support
Fix #208
2015-06-11 17:07:13 +02:00
04e62e429c Merge branch 'master' into unstable 2015-06-11 16:55:09 +02:00
07eab6e766 Fix tests 2015-06-11 09:18:02 +02:00
a2833cf276 Turn on / off authentication 2015-06-10 23:14:18 +02:00
75267f9d53 Merge branch 'master' into unstable 2015-06-10 16:30:30 +02:00
2da0b36ee7 Support a platform parameter for Qemu
I'm sure we will discover a distribution with a different
naming conventions...

Fix #220
2015-06-10 15:49:24 +02:00
fb79543342 Build documentation 2015-06-10 14:35:53 +02:00
b0fb2fcc6d Fix test 2015-06-10 14:33:44 +02:00
b36c5f25d2 Improve memory consumption of file upload with the HTML form
Fix #86
2015-06-10 14:20:06 +02:00
c10e692ca2 systemd start script and use netifaces from pip
Fix #59, #229
2015-06-09 17:29:01 +02:00
7c7f8fe3ed Fix ethernet interfaces tests if eth0 doesn't exists
Also on Windows and MacOS it return error if we try
to use a non existing interfaces.

Fix #230
2015-06-09 16:35:21 +02:00
bd4b6396a8 Ensure in test we didn't load the local configuration 2015-06-09 16:32:36 +02:00
36d5049c61 More debug for the interfaces up crash debug 2015-06-09 10:10:06 +02:00
079715bc18 Ensure no colored output on Windows
Fix #228
2015-06-09 10:05:00 +02:00
525940ee15 Add a stupid is_interface_up test in order to see why it's crash on
travis

Related to #230
2015-06-09 09:56:08 +02:00
352fa3480b Fix qemu tests on travis 2015-06-09 09:55:51 +02:00
669ec42985 Add a test for KVM support 2015-06-09 09:28:39 +02:00
d518ac45f5 Enable KVM acceleration option. 2015-06-08 14:51:06 -06:00
c7ea8517a1 Do not stop saving IOS router or IOU configs when there is an exception while a project is committed. 2015-06-08 11:32:00 -06:00
5a32d8a779 Merge remote-tracking branch 'origin/master' 2015-06-08 11:28:58 -06:00
9f1705a4f1 Do not stop saving IOS router configs when there is an exception while a project is committed. 2015-06-08 11:28:48 -06:00
815b7d226c Sync with IOU tools (nvram import/export). 2015-06-08 10:07:54 -06:00
65e7f61f96 Fixes issues when setting MAC address for a Qemu VM or IOS router. 2015-06-07 22:18:41 -06:00
042472f02c Check interface is up before connecting a NIO (Linux only). Fixes #277. 2015-06-07 13:51:33 -06:00
81d417a2b3 Fixes too many arguments to socket.getaddrinfo() 2015-06-07 09:25:54 -06:00
81e56e035b IPv6 support. 2015-06-06 21:37:34 -06:00
9f97b52f5f Merge remote-tracking branch 'origin/unstable' into unstable 2015-06-06 15:15:25 -06:00
ca331ae2a5 Import/Export support for IOU nvrams. 2015-06-06 15:15:03 -06:00
1739acb67e Install qt5 for travis 2015-06-06 13:43:02 +02:00
e63b9ff0e6 Option to drop nvram & disk files for IOS routers in order to save disk space. 2015-06-05 14:54:22 -06:00
02650fa490 Create a private config file if expected
Fix #217
2015-06-05 16:23:52 +02:00
fff3e1474f Distribute our own version of netifaces working with python 3
Fix #97
2015-06-05 15:59:43 +02:00
d9de1718b7 Fix crash if a private config exist in IOS but no private config file
Fix #217
2015-06-05 15:30:30 +02:00
b1d21c7c32 Drop python 3.3 from Travis 2015-06-04 10:51:49 +02:00
ebfe003885 Tool to quickly add and remove VMware vmnet interfaces on Linux. 2015-06-03 20:00:08 -06:00
b118f9a078 Replace RuntimeError by SystemExit. 2015-06-03 19:58:58 -06:00
37ddff9f07 Support for base MAC address for Qemu VMs. 2015-06-03 14:52:49 -06:00
1c803f7afb Remove unneeded dependency line in setup.py 2015-06-03 12:10:29 -06:00
9f15fdbc2b Fixes #181 (drop Python 3.3). 2015-06-03 12:08:11 -06:00
d8fb33dba2 Fix merge conflict 2015-06-03 18:58:17 +02:00
a1204dca0a Merge branch 'master' into unstable 2015-06-03 18:34:46 +02:00
78891ae00e Basic Auth support 2015-06-03 15:38:34 +02:00
b344def887 Fix crash when virtualbox list of VMS return an empty line
Fix #206
2015-06-03 11:59:53 +02:00
743f1392b5 ACPI shutdown support for Qemu VMs. 2015-06-02 22:33:38 -06:00
933bc5a7b0 ACPI shutdown support for VirtualBox VMs. 2015-06-02 16:30:35 -06:00
a1bc815f63 Update crash report key 2015-06-02 20:27:33 +02:00
668cc3f0a5 1.3.5dev1 2015-06-02 20:05:31 +02:00
42a8c7147a 1.3.4 release 2015-06-02 19:48:04 +02:00
a0fe9bb498 Control vm command has to be used instead of modify vm. Fixes #205. 2015-06-02 09:00:37 -06:00
57f9d875ca Fix AttributeError: 'NIONAT' object has no attribute 'lport' for
VirtualBox

Fix #205
2015-06-02 16:27:48 +02:00
a2e51ac090 Avoid duplicate paths in qemu binary list
Fix #204
2015-06-02 15:35:14 +02:00
887f9b298e 1.3.4 Changelog 2015-06-02 14:44:49 +02:00
d99047ce72 Drop useless dependencie
Fix #203
2015-06-02 14:40:29 +02:00
edff447483 Catch exception in snapshot dialog. 2015-06-01 21:54:08 -06:00
ad27fdf8b9 Bump version to 1.3.4.dev2 2015-06-01 16:29:49 -06:00
9df290f192 Check if port or adapter is connected before starting/stopping a packet capture. Fixes #196. 2015-06-01 15:42:17 -06:00
05aafb9538 Revert "Start virtualbox VM one by one" because it doesn't fix the issue
This reverts commit da72a9501a.
2015-06-01 16:16:34 +02:00
da72a9501a Start virtualbox VM one by one
Related to #190
2015-06-01 11:40:42 +02:00
a60389427b Support for VMware linked clones. 2015-05-30 20:26:38 -06:00
ada94d486a Get server resource independant of working directory 2015-05-28 13:24:45 +02:00
85c185604e Merge branch 'master' into unstable 2015-05-28 12:18:24 +02:00
a2dfeab315 Load faulthandler module only for dev build 2015-05-28 12:17:56 +02:00
16cad8426a Enable faulthandler only for dev build 2015-05-28 12:17:25 +02:00
a79249aa9e Fix tests after merge 2015-05-28 12:05:19 +02:00
9442042d7a Merge branch 'master' into unstable 2015-05-28 12:04:01 +02:00
57a069b027 Support cacert.pem in the new frozen package 2015-05-28 11:31:23 +02:00
98e01ff21d Serial console implementation for VMware VMs. 2015-05-27 21:06:18 -06:00
c782784bf5 Merge pull request #187 from boenrobot/qemuImg
Dedicated Qemu-img method and API call.
2015-05-27 17:02:40 -06:00
9ef4628cbc Added a method for getting qemu-img binaries, and moved the qemu folder into a separate method. 2015-05-28 00:11:36 +03:00
0476f2932e Prevent users to add links to running Qemu VMs and start a capture on running VirtualBox VMs. 2015-05-27 13:56:27 -06:00
91c0f05a4e Fixes bug: couldn't set PCMCIA disk1 size for IOS routers. 2015-05-27 10:17:46 -06:00
74ee73581a Fix crash if you pass an invalid hostname
Fix #198
2015-05-27 17:34:01 +02:00
a86bac4214 Catch VPCS kill errors
Fix #199
2015-05-27 17:21:15 +02:00
8abf22ef24 Skip network interfaces on Travis 2015-05-27 16:45:39 +02:00
7cad25eb1a Raise a VirtualBox error if adapter doesn't exists
Fix #195
2015-05-27 16:38:57 +02:00
ecf4e91e55 Ignore VirtualBox VM Name with a carriage return in name
Add tests for get_list of VirtualBox

Fix #200
2015-05-27 16:21:18 +02:00
ea67f4aeb9 Test ok on Windows 2015-05-27 11:12:39 +02:00
c98bcedd39 Cleanup the temporary project after modules have been notified of the
path change
2015-05-26 15:20:14 +02:00
528bb7a7c6 Do not return error if we can't remove the old project directory 2015-05-26 13:27:12 +02:00
d31420b3e1 Script for starting gns3server in development mode on Windows 2015-05-26 13:06:08 +02:00
50d7a4f335 Catch encoding errors in windows logger 2015-05-26 13:05:37 +02:00
4216724d0b Give a reason for travis skip test 2015-05-26 12:00:13 +02:00
117630c887 Test ok on Windows 2015-05-26 11:55:30 +02:00
f1ab682be9 Do not crash if module ioucon is loaded by tests on Windows 2015-05-26 11:55:30 +02:00
c03c66ec48 Fix tests crash on travis 2015-05-26 11:35:06 +02:00
dfd18f9483 Travis install netifaces 2015-05-26 10:56:35 +02:00
289b68e5c1 Use setter for the qemu_path (allow to pass only the binary name) 2015-05-26 10:06:10 +02:00
a7dd0d3c51 Fixes TAP connection when using VPCS. 2015-05-26 10:06:10 +02:00
e62dd1a572 Fix tests on Windows 2015-05-26 10:06:10 +02:00
1f931d56c7 Fix test suite on Windows 2015-05-26 10:06:10 +02:00
d999f0a08d Drop coveralls because it's create trouble to tests run on Windows 2015-05-26 10:05:53 +02:00
24e84a3dd8 Test interfaces (it seem it's crash on Travis) 2015-05-26 10:05:53 +02:00
29ec07d166 Fix crash launching qemu on OSX from another location.
It's append only when frozen an you launch the server by hand.

Fix #194
2015-05-26 10:05:53 +02:00
b62efa3bae I'm stupid... Remove fake segfault 2015-05-26 10:05:53 +02:00
c5171b887f Add the fault handler in order to try to get a proper crash stack 2015-05-26 10:05:21 +02:00
f169455ad4 Adds NAT NIO in device schema validation so they can return an error that it is not supported. 2015-05-26 10:04:22 +02:00
aeda0bec16 Merge pull request #189 from GNS3/project_files_api
API for list & download files of a project
2015-05-26 09:49:25 +02:00
6f9f004ebb API for list & download files of a project 2015-05-26 09:49:12 +02:00
8636d3e337 Use setter for the qemu_path (allow to pass only the binary name) 2015-05-26 09:48:36 +02:00
c43b26d787 Merge remote-tracking branch 'origin/master' 2015-05-25 19:07:23 -06:00
08f82e02a0 Fixes TAP connection when using VPCS. 2015-05-25 19:07:12 -06:00
3c4a60cd0a Check for VMware lock file. 2015-05-25 15:49:28 -06:00
3729a10783 VMware vmnets management almost complete. 2015-05-21 21:48:59 -06:00
33bca1a85c Fix tests on Windows 2015-05-21 12:01:37 +02:00
4d50d00b3e Fix test suite on Windows 2015-05-21 11:46:55 +02:00
21cc41fd16 Drop coveralls because it's create trouble to tests run on Windows 2015-05-21 11:05:04 +02:00
f8d95291fa Test interfaces (it seem it's crash on Travis) 2015-05-21 10:45:07 +02:00
0287b4607d Base for supporting VMnet adapters. 2015-05-20 19:05:26 -06:00
9fa873751d Fix crash launching qemu on OSX from another location.
It's append only when frozen an you launch the server by hand.

Fix #194
2015-05-18 11:58:56 +02:00
8c9758d16b I'm stupid... Remove fake segfault 2015-05-17 23:10:50 +02:00
0c5b753211 Add the fault handler in order to try to get a proper crash stack 2015-05-17 12:47:04 +02:00
cb7b9e8190 Adapters for VMware VMs. 2015-05-15 19:09:48 -06:00
221a35baae Adds NAT NIO in device schema validation so they can return an error that it is not supported. 2015-05-14 20:54:38 -06:00
0ac27c40da Merge remote-tracking branch 'origin/unstable' into unstable 2015-05-14 20:12:08 -06:00
a386c5382c Starting VMware VM networking support. 2015-05-14 20:11:57 -06:00
743187bb2e Merge branch 'master' into unstable 2015-05-14 19:29:30 +02:00
5bb870dc0f New crash report key 2015-05-14 19:28:26 +02:00
76be91d544 1.3.4dev1 2015-05-14 19:23:21 +02:00
078b72cafd Version 1.3.3 2015-05-14 18:57:30 +02:00
b2457e0b3b Check for empty iourc path. 2015-05-13 16:05:54 -06:00
2531a05adc Merge remote-tracking branch 'origin/master' 2015-05-13 15:54:03 -06:00
dd9f62158f Fixes bugs with IOS router configs. Fixes #354. 2015-05-13 15:53:58 -06:00
a3c0f0754e Fix crash 2015-05-13 23:27:51 +02:00
25a6616cd0 Some wording changes. 2015-05-13 13:53:42 -06:00
157bc18ebd Use a temporary directory as egg cache
We have use with broken permission on their
system. We try to workaround the issue.

Fix #182
2015-05-13 14:29:03 +02:00
3704911c2d Fix tests 2015-05-13 10:19:50 +02:00
1e38b11f34 Catch crash error in IOU in case of permission denied
Fix #186
2015-05-13 10:16:24 +02:00
5df5a6da18 Fix qemu tests 2015-05-12 09:32:42 +02:00
8e168dfbe0 Completes VMware VMs searching process. 2015-05-10 17:21:31 -06:00
c6e00bb4ac Merge pull request #169 from GNS3/upload_images
Upload images API
2015-05-10 21:07:22 +02:00
bb4ebbfe64 Upload images API
Conflicts:
	requirements.txt
	setup.py
2015-05-10 21:06:31 +02:00
61fb641215 Merge pull request #168 from GNS3/listen
A notification stream with process monitoring.
2015-05-09 17:15:58 -06:00
2a462de7f3 Merge remote-tracking branch 'origin/unstable' into unstable 2015-05-08 18:30:48 -06:00
13eb461dfe Update default VMware VM location path for OSX. 2015-05-08 18:30:41 -06:00
924f604fe5 Merge pull request #184 from boenrobot/setupAndReadmeFix
Readme + setup.py/requrements.txt sync
2015-05-08 18:23:16 -06:00
91ff6e5ae9 Updated compilation instructions for Windows.
Synced up requirements.txt and setup.py dependencies.
2015-05-09 03:18:32 +03:00
00fa1cc370 Merge branch 'master' into unstable 2015-05-08 14:45:07 +02:00
c197b39a68 Find VMware VMs using the inventory and alternatively using the default vm location (for VMware player). 2015-05-07 16:50:37 -06:00
bebdadc465 Bump version to 1.3.3.dev3 2015-05-07 11:52:17 -06:00
b0ce091a4c 1.3.3rc1 2015-05-07 16:03:51 +02:00
d21469a916 Return an error if an adapter slot doesn't exist on an IOS router. 2015-05-06 17:22:07 -06:00
b57a023394 NIO NAT support for VirtualBox VMs. 2015-05-06 15:21:39 -06:00
a929dfea38 Merge remote-tracking branch 'origin/master' 2015-05-06 14:59:35 -06:00
fcff2d0813 NIO NAT support for QEMU VMs (user mode back-end is used). 2015-05-06 14:59:01 -06:00
ed39afbf3d Throw an error if user put an invalid port range in config file
Fix #117
2015-05-06 10:40:51 +02:00
3ba4789ba6 New crash report key
Fix #180
2015-05-06 09:55:14 +02:00
17b93e6a89 Bump version to 1.3.3dev2 2015-05-05 14:49:03 -06:00
4b21135ba7 Turn off configuration parser interpolation 2015-05-05 11:53:33 +02:00
a3f00e1f45 Catch configuration file parsing errors
Fix #176
2015-05-05 11:44:35 +02:00
b7dac1bec4 Force closing the event loop to avoid warning with Python 3.4.3
Fix #177
2015-05-05 11:33:47 +02:00
18c4154376 Catch error when you can't mark a project as no longer temporary
Fix #172
2015-05-05 10:51:51 +02:00
22efc7488f Catch BrokenPipeError for OSX frozen server
Fix #166
2015-05-05 10:46:09 +02:00
9eeb8910fb Match how IOU initial-config is set for VPCS VM. 2015-05-04 21:54:56 -06:00
71e2586e17 Refactors how startup-config and private-config are handled for IOS routers. 2015-05-04 18:42:32 -06:00
ee2dada88b Fix tests 2015-05-04 21:29:28 +02:00
c4054cf810 Catch the "WinError 0 The operation completed successfully" exception at a higher level. 2015-05-04 12:14:04 -06:00
d2d91ebdea Fix temporary project not cleanup with save as 2015-05-04 14:04:57 +02:00
0dea63c9ea If image is not found in VM directory look in images folder 2015-05-04 10:57:08 +02:00
3467b42ab5 Ordered MAC addresses for QEMU based VMs. 2015-05-03 13:18:18 -06:00
65103e9332 Merge remote-tracking branch 'origin/master' 2015-05-03 11:41:09 -06:00
f6bc823b58 Fixes #171. 2015-05-03 11:40:55 -06:00
a260377f0e List all available VMware VMs. 2015-05-01 18:47:46 -06:00
151788e48a Force utf-8 configuraton files reading
Fix #170
2015-05-01 17:49:16 +02:00
e9ec5c8a37 A notification stream with process monitoring 2015-05-01 13:20:30 +02:00
57f5e7a7d9 Merge branch 'master' into unstable 2015-05-01 13:20:09 +02:00
c3c6b29854 Merge commit '359abb0286fe25d60ac2155bbed869d068a15868' into unstable 2015-05-01 13:18:17 +02:00
827d04bed4 Merge commit 'd18293ae7c54684aba101ca3931f2331b8ea050e' into unstable
Second master to unstable bad merge commit
2015-05-01 11:57:14 +02:00
ba658a4712 Merge commit '929c337e8bf33f060c884368628b279550248925' into unstable
It's the bad unstable => master commit
2015-05-01 11:56:19 +02:00
b3f2a6ac2a Fix tests and build documentation 2015-05-01 11:24:56 +02:00
e6eab1fb25 Aiohttp 0.15.1
Conflicts:
	requirements.txt
	setup.py
2015-05-01 10:57:28 +02:00
6b70fa9794 Do not list file starting with a . in upload handler 2015-05-01 10:55:08 +02:00
ab60d7929b Basic VMware support (start & stop a VM). 2015-04-30 19:05:37 -06:00
359abb0286 Revert "Merge branch 'unstable'"
This reverts commit 929c337e8b, reversing
changes made to b9bc73fd01.
2015-04-30 16:43:30 +02:00
d18293ae7c Fixes list images in VirtualBox. 2015-04-29 22:17:17 -06:00
929c337e8b Merge branch 'unstable'
Conflicts:
	gns3server/modules/virtualbox/__init__.py
	gns3server/version.py
	tests/modules/test_manager.py
2015-04-29 16:29:45 -06:00
f8f6f5dc5d Merge branch 'master' into unstable
Conflicts:
	gns3server/modules/virtualbox/__init__.py
	gns3server/version.py
2015-04-29 14:25:44 +02:00
b9bc73fd01 Do not crash when closing a project if VirtualBox is not accessible
Fix #164
2015-04-29 14:24:27 +02:00
e75fbc9d73 Catch connection reset errors
Fix #162
2015-04-29 11:15:32 +02:00
0311a0086e Fixes typo. 2015-04-28 22:16:15 -06:00
461e3ce53f 1.3.3dev1 2015-04-28 21:49:48 +02:00
1b4613fbaf Version 1.3.2 2015-04-28 21:06:04 +02:00
30ff5510d9 Merge remote-tracking branch 'origin/master' 2015-04-28 12:02:33 -06:00
cc03017739 Cleanup the VirtualBox Media Manager after closing a project. Fixes #145. 2015-04-28 12:02:21 -06:00
bad740d32a Fix test on Linux 2015-04-28 15:31:00 +02:00
5f6d1bfdd6 Merge branch 'master' into unstable
Conflicts:
	tests/modules/test_manager.py
2015-04-28 10:46:59 +02:00
a884af983f Avoid Cygwin warning with VPCS on Windows. 2015-04-27 22:23:27 -06:00
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
8503472c77 Close VirtualBox VM linked clone disks after the VM is unregistered. Fixes #145. 2015-04-27 17:10:32 -06:00
e7ae1776f4 Final fixes for windows test suite 2015-04-27 23:28:12 +02:00
3f26ada081 Comment broken test 2015-04-27 23:20:01 +02:00
77f54848e3 Fix some tests on Windows 2015-04-27 23:12:13 +02:00
bf3444933e Fix test qemu now raise 409 if nio_ethernet 2015-04-27 22:54:24 +02:00
f208b472a1 TAP interface support for QEMU VMs. Fixes #153. 2015-04-27 14:38:15 -06:00
b6a935aeb8 Return an explicit error when a NIO type is not supported by a VM. 2015-04-27 14:19:17 -06:00
324a4f73d0 Do not erase the IOU config 2015-04-27 18:22:54 +02:00
d5ae4750e9 Do not load IOU handler on Windows during tests
Fix #159
2015-04-27 16:21:56 +02:00
4df95efdec Skip IOU test on Windows
Fix #159
2015-04-27 15:09:42 +02:00
834a554fea Fix VPCS tests 2015-04-27 10:14:46 +02:00
271cb527d4 Explicit utf-8 decoding. 2015-04-26 21:19:39 -06:00
6edf1e3649 Check NIO exists when stopping an IOU capture. 2015-04-26 21:15:15 -06:00
017997e0a3 Fixes c7200 NPE setting. 2015-04-26 18:35:12 -06:00
3e6996903f Fixes VPCS process termination. 2015-04-26 12:57:06 -06:00
da2b895c99 Catch FileNotFoundError exception in os.getcwd() 2015-04-26 12:49:29 -06:00
683a512917 Fixes #150. 2015-04-25 15:20:15 -06:00
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
d68bf1c263 Removes unnecessary sleep in VirtualBox VM. 2015-04-25 09:36:28 -06:00
fa544ef888 Fixes #270. Relative paths management with empty ones. 2015-04-24 17:27:32 -06:00
ee1e5b8204 Merge pull request #156 from GNS3/daemon
Server daemonization support.
2015-04-24 16:38:59 -06:00
8f6e5b4ad8 Merge branch 'unstable' into daemon
Conflicts:
	gns3server/main.py
2015-04-24 16:37:56 -06:00
24bfd8ab53 New crash report key and doesn't send report for developers 2015-04-24 18:30:31 +02:00
14cc01bb8b Merge pull request #152 from GNS3/api_list_images
API in order to get the list of IOU, Dynamips, Qemu images.
2015-04-23 17:20:15 -06:00
40ce22222e Merge branch 'unstable' into api_list_images
Conflicts:
	gns3server/handlers/api/iou_handler.py
2015-04-23 17:19:37 -06:00
7e991cc404 Merge pull request #154 from GNS3/wireshark_remote_capture
Support for Wireshark remote packet captures.
2015-04-23 16:17:44 -06:00
83f2509cfe Cleanup exceptions 2015-04-23 16:56:46 +02:00
6b862b8397 Correctly show the host in templates
Fix #157
2015-04-23 14:32:10 +02:00
fac0f5ecd9 Proper daemon support 2015-04-23 11:10:02 +02:00
3680c40e23 Catch COM errors when connecting to WMI. 2015-04-23 00:03:44 -06:00
30f6263146 Don't assume the PATH environment variable exists. 2015-04-22 21:42:36 -06:00
161adb781b Use UUIDs instead of the VM names for VirtualBox pipe paths. 2015-04-22 20:29:52 -06:00
2e39265da1 Merge branch 'master' into unstable 2015-04-22 17:34:17 +02:00
9c549b175f Add --log options for daemon support 2015-04-22 17:28:58 +02:00
fc289fd868 Basic upstart script 2015-04-22 17:13:39 +02:00
bf618d321c Max 100 thread executor 2015-04-22 10:39:43 +02:00
8b879c0614 Support wireshark remote capture 2015-04-20 19:27:07 +02:00
cf0adf56a8 Merge branch 'master' into unstable 2015-04-20 19:26:27 +02:00
531e95463c Add qemu-kvm to the list of binary 2015-04-20 10:12:17 +02:00
3926390d30 Fix tests broken by a previous commit 2015-04-18 09:22:37 +02:00
343e007809 Ignore the "OSError: [WinError 0] The operation completed successfully" exception in Windows. 2015-04-16 20:17:06 -06:00
c6dbf296cf Merge remote-tracking branch 'origin/master' 2015-04-16 13:24:48 -06:00
dfdc18b20c Merge branch 'master' into unstable 2015-04-16 18:38:59 +02:00
bca90bc563 API in order to get the list of IOU, Dynamips, Qemu images 2015-04-16 18:32:12 +02:00
b5e01f7560 Fix IOU licence check flag 2015-04-16 09:51:02 +02:00
4136c29b0f Config paths are not used when updating Dynamips or IOU VM settings. 2015-04-15 19:50:40 -06:00
aeab9780d8 Fixes initial-configs that were not restored when opening a project containing IOU VMs. 2015-04-15 19:49:40 -06:00
5a4ffae6a2 Merge branch 'master' into unstable 2015-04-15 16:44:09 +02:00
e367f95f96 Drop darwin specific tests 2015-04-15 16:42:26 +02:00
789e24795e Merge branch 'master' into unstable 2015-04-15 16:29:54 +02:00
26a7f83db2 Remove the workaround for dynamips OSX 2015-04-15 15:58:31 +02:00
def453c116 Restore "iourc_path" until I speak with jeremy about it 2015-04-15 15:50:34 +02:00
997f7cbd6f Fix noise in logs 2015-04-15 15:40:07 +02:00
750958bd12 Fix tests 2015-04-15 14:33:51 +02:00
aab4a7243b Merge remote-tracking branch 'origin/master' 2015-04-14 18:21:42 -06:00
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
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
6ec081c774 Include tests in Pypi package
Require by gentoo maintainer
2015-04-14 14:53:01 +02:00
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
45ca995dea Fix crash if VirtualBox doesn't return API version
Fix #136
2015-04-14 14:32:44 +02:00
af942dc419 Fix a crash in VirtualBox vm creation
Fix #138
2015-04-14 14:24:13 +02:00
1d5dc2ecf0 1.4.0 dev1 2015-04-13 10:48:14 +02:00
443842e9b8 Allocate random names for Dynamips NIOs. 2015-04-12 18:14:45 -06:00
78bc6e29a8 Explicitly delete Dynamips NIOs and unmap VCs for ATM and Frame-Relay switches. 2015-04-12 18:09:53 -06:00
de5e8f852d Cleaner and generic way to set Qemu & IOU VM settings. 2015-04-12 15:09:37 -06:00
c99998d73c Fix version 2015-04-12 11:08:30 +02:00
c4963abcba 1.3.2 dev1 2015-04-11 13:59:22 +02:00
1ba9a2fcfa Prepare 1.3.1 2015-04-11 09:34:20 +02:00
eac751948e Prepare RC4 2015-04-09 10:57:25 +02:00
b2e53a94d4 Initial config file content can be empty 2015-04-09 10:53:18 +02:00
2d507fd17a Fix crash if IOU initial config is emtpy
Fix #147
2015-04-09 10:27:50 +02:00
202032f334 Fix error messages in JSON schema 2015-04-09 10:24:11 +02:00
1d997d9da5 Return more informations about bad requests for crash reports 2015-04-09 10:22:25 +02:00
2b6945664b Allow less strict dependencies
Fix #146
2015-04-09 09:50:26 +02:00
9b79cce488 Dev4 version 2015-04-09 09:22:04 +02:00
2d0f73454f Missing project name in documentation 2015-04-09 09:21:49 +02:00
7e8b0a48ab Merge remote-tracking branch 'origin/master' 2015-04-08 11:17:49 -06:00
7d7972afb3 Some spring cleaning. 2015-04-08 11:17:34 -06:00
f799fc1ab7 Prepare 1.3.1rc3 2015-04-07 16:16:19 +02:00
3b4a060ae9 Fix missing IOU documentation
Fix #143
2015-04-07 16:09:27 +02:00
db6db31b60 Add missing project name in curl documentation 2015-04-07 15:28:18 +02:00
1c4a059982 Look in old IOU images location in order to smooth transition
Fix #141
2015-04-07 15:25:53 +02:00
4189089e1b Prepare 1.3.1rc2 2015-04-06 21:34:32 +02:00
7efb7c2978 Do not overwrite initial-config IOU if client send an empty
Fix #140
2015-04-06 21:30:57 +02:00
d16a389d1f Fix documentation about /ports/udp 2015-04-06 11:57:05 +02:00
e3239b7e36 Prepare 1.3.1rc1 2015-04-05 11:47:56 +02:00
1c4202187a Fixes TAP interface use with VPCS. 2015-04-03 19:11:28 -06:00
631d7a1e25 Avoid disconnecting valid VirtualBox VM adapter backends. 2015-04-03 19:08:29 -06:00
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
b46e2cf013 Fix issues with macos X dynamips not freeing UDP port
Fix #133
2015-04-03 13:32:07 +02:00
1acc9398d5 Fix encoding error when saving dynamips configuration
Fix #134
2015-04-03 12:13:07 +02:00
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
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
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
49f36a83bd Test path with chinese charcaters in Qemu
Refs #120
2015-04-01 18:24:36 +02:00
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
90d55fcb8a Raise a DynamipsError if we can't access to VM status
Fix #129
2015-04-01 17:39:37 +02:00
4cd5ec5613 Check name of the VBoxManage executable
Fix #118
2015-04-01 17:36:22 +02:00
b2d8a8d810 Exclude docs and tests package from distribution
Fix #131
2015-04-01 16:41:11 +02:00
026fe3df9b Catch error when qemu additional options are invalid
Fix #119
2015-03-31 22:14:08 +02:00
220d585dcc Fix ClientDisconnectedError
Fix #124
2015-03-31 22:05:50 +02:00
93344e9427 Fix crash when NIO doesn't exist
Fix #122
2015-03-31 22:00:05 +02:00
6d6cfacdc8 Turn off crash report if raven not available
Fix #121
2015-03-31 21:52:00 +02:00
36f5fd2865 Fix crash when IOU script file is incorrect
Fix #125
2015-03-31 21:50:47 +02:00
47ffdbd4ed Bump version to 1.3.1.dev1 2015-03-30 13:09:05 -06:00
ddf0194e8e 1.3.0 release 2015-03-30 10:10:03 -06:00
9bf875699f Fix coveralls 2015-03-30 17:24:03 +02:00
420a1c2da2 Fix rare crash in tests for travis and fix coverage 2015-03-30 17:03:49 +02:00
da00aa030a Fix missing /v1 in api documentation
Fix #116
2015-03-30 11:05:54 +02:00
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
056ff14437 Fixes unicode decode error when saving IOS router configs. Fixes #115. 2015-03-28 18:09:53 -06:00
3c917c59fb Fix error when missing adapter
Fix #112
2015-03-27 16:20:31 +01:00
4a0879f2d1 Branches inscrtructions 2015-03-27 10:32:29 +01:00
533ce78b90 Fix crash if we call stop on dynamips on non started process
Fix #111
2015-03-27 10:08:03 +01:00
be199b77a5 Homepage cleanup 2015-03-27 10:04:16 +01:00
bff164afcb Merge pull request #106 from aka001/homepage_added
Added homepage
2015-03-27 09:46:42 +01:00
81ce86a8a7 Fixes use_default_iou_values param was not set. 2015-03-26 16:47:55 -06:00
1df8f61035 Merge remote-tracking branch 'origin/master' 2015-03-26 15:11:41 -06:00
c7034c25ef Fixes issue when IOURC environment variable is set to None. 2015-03-26 15:11:36 -06:00
2e72bc2d3a Fix tests 2015-03-26 17:43:00 +01:00
64152c1af8 Fix a crash in CI, making log impossible to read 2015-03-26 15:49:51 +01:00
879ed9e4e6 Fixes issue when exporting IOS router configs. 2015-03-25 14:58:04 -06:00
ec6a761e04 Fixes check if VPCS process is running. 2015-03-25 14:43:51 -06:00
7d8ff54c78 Merge remote-tracking branch 'origin/master' 2015-03-25 14:37:10 -06:00
588088ca93 Fixes bug when remove_nio() is not a coroutine for ATM and FR switches. 2015-03-24 22:15:49 -06:00
07067d6765 Fixes how to test if iou and iouyap are running. 2015-03-24 22:04:48 -06:00
980e63e667 Allocate a random port for Qemu monitor. Fixes issue with pre 1.3 projects. 2015-03-23 22:52:02 -06:00
7b1a707967 Bump version to 1.3.0.dev3 2015-03-23 21:22:10 -06:00
73310105a8 Fixes default chassis bug. 2015-03-23 21:13:22 -06:00
1c0c300ded Bump version to 1.3.0.dev3 2015-03-23 18:37:42 -06:00
51659b6087 Bump version to 1.3.0rc2 2015-03-23 15:41:10 -06:00
a25b17fe95 Removed merge conflict 2015-03-24 02:42:38 +05:30
6d0d945d6c Changelog 2015-03-23 20:25:44 +01:00
b5aabd4cc5 Fixes initial-config not loading for IOU L2. 2015-03-23 12:30:27 -06:00
cde5c3d994 Fix tests 2015-03-23 15:56:18 +01:00
f4c7212e33 Update sentry key for the RC2
This allow to revoke crash report for old releases
2015-03-23 15:24:57 +01:00
f451ed144e Prevent error when suspend/resume is not supported in QEMU VM. 2015-03-22 20:40:19 -06:00
a77023d1ee Bump version to 1.3.0.dev2 2015-03-21 22:47:12 -06:00
24300b2502 Adds project id when requesting UDP port. 2015-03-21 22:27:40 -06:00
153914bf97 Make sure used ports in a project are cleaned up when closing it. 2015-03-21 17:19:12 -06:00
2d6d153262 Save configs when project is committed. 2015-03-21 14:52:17 -06:00
628dfef0d3 Initialize chassis when creating an IOS router. Fixes #107. 2015-03-21 13:58:52 -06:00
17d5b3a7bc Remove unnecessary locks. 2015-03-20 19:19:49 -06:00
5b08677537 Merge pull request #104 from GNS3/dynamips_hypervisor_lock
Asyncio lock for Dynamips hypervisor.
2015-03-21 00:24:54 +00:00
257735255c Added homepage 2015-03-20 17:09:53 +05:30
01bcbe2fd9 Lock the dynamips reader an writer
Fix #103
2015-03-20 10:21:40 +01:00
7473dec5ad Bump version to 1.3.0.dev1 2015-03-19 19:56:31 -06:00
29b7f0e164 Merge branch 'asyncio' 2015-03-19 17:46:30 +01:00
533baf0445 1.3.0rc1 2015-03-19 17:46:03 +01:00
253ab4e2b5 PEP8 2015-03-19 17:42:43 +01:00
ddb8a9f06e Fix an issue in IOU relative path looking 2015-03-19 15:36:06 +01:00
f31071d510 Bump version to 1.3.0rc1.dev3 2015-03-18 15:40:02 -06:00
8415117d2d Save IOS router configs when saving the project (done right this time). 2015-03-18 15:34:31 -06:00
f6b122cdfa Look in legacy IOU images dir when looking for relative IOU image path. 2015-03-17 19:28:43 -06:00
44c8396997 Bump version to 1.3.0rc1.dev2 2015-03-17 19:08:18 -06:00
fb0490d8e3 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-17 18:53:36 -06:00
163d1e375d Save IOS configs when a project is committed. 2015-03-17 18:53:24 -06:00
6330e99ff1 More robust IOUVM support 2015-03-17 22:18:55 +01:00
386b311755 Fix iou key verification for large hostid 2015-03-17 20:15:01 +01:00
4a9f578784 Support IOURC update 2015-03-17 19:00:14 +01:00
8ca9c2121a Do not crash if iourc file is missing 2015-03-17 18:34:23 +01:00
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
42f51ddc00 Modify README.rst to specify how to run tests. 2015-03-17 21:10:28 +05:30
66cdf39ea2 Support uploading iourc 2015-03-17 16:31:45 +01:00
64eb54ae3d Merge pull request #101 from aka001/modified_README
Modified README
2015-03-17 15:42:55 +01:00
964ea0f577 Fix random behavior in tests 2015-03-17 15:40:58 +01:00
dc1c12b7d0 Modified README 2015-03-17 20:04:20 +05:30
bb7eda63af Support more all QEMU status
Fix #98
2015-03-17 11:02:14 +01:00
54bccb0628 Restore configuration live reload
Closes #94
2015-03-17 10:22:18 +01:00
2de817214f Do not hide non-executable file in the UploadHandler. 2015-03-16 19:16:15 -06:00
93a5f4be79 Temporarily deactivate IOS router saveconfigs. 2015-03-16 17:36:23 -06:00
87d12452f9 Disable the netifaces dependency which creates issues. 2015-03-16 16:35:02 -06:00
46fe973a96 Save IOS router configs when the user saves a project. 2015-03-16 16:33:37 -06:00
cc9b575b77 Bind UDP tunnels to the correct source address. Fixes #96. 2015-03-16 12:45:21 -06:00
bcb1ce02ab Refactor config management in tests 2015-03-16 15:03:41 +01:00
e54649accd Fix dynamips tests 2015-03-16 14:42:00 +01:00
c05edfe415 Fix test manager 2015-03-16 12:08:23 +01:00
cf247a9301 Fix iou tests and add tests 2015-03-16 11:52:22 +01:00
3a6a04b8e5 Fix version test 2015-03-16 10:18:37 +01:00
21587fda5a Removes confreg setting for IOS routers. 2015-03-14 16:31:15 -06:00
30ed89847b Adds netifaces module in the setup dependencies. 2015-03-14 15:40:00 -06:00
6d56da03e5 Fixes tests. 2015-03-14 13:16:27 -06:00
25b778aec0 Bump version to 1.3.0rc1.dev1 2015-03-13 22:42:25 -06:00
a90805135d Bump version to 1.3.0beta2 2015-03-13 22:02:28 -06:00
95f9431b59 Update CHANGELOG 2015-03-13 22:00:19 -06:00
cf92bfe81e Alternative local server shutdown (mostly intended for Windows). 2015-03-13 18:57:27 -06:00
4ccca5dc99 Support RAM setting for VirtualBox VMs. 2015-03-13 17:13:36 -06:00
a81d2274cd Adds info either the server is started as a local server in VersionHandler response. 2015-03-13 15:15:27 -06:00
221befa73e Option to record curl requests into a file (to replay them later). 2015-03-13 14:43:39 -06:00
db69b93100 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-13 11:46:03 -06:00
81420c60c7 Changes words in upload template. 2015-03-13 11:46:02 -06:00
f7d3af4a59 Fixes hostid retrieval. 2015-03-13 11:45:38 -06:00
c596147b59 List the iourc file in upload handler. 2015-03-12 20:56:10 -06:00
5637b7be86 Bump version to 1.3.0beta2.dev1 2015-03-12 18:51:22 -06:00
500b7112f5 Assert host and port are not None when creating the Server instance. 2015-03-12 18:50:38 -06:00
36daa3627e Ignore exception in asyncio loop on Windows when the local server gets a signal. 2015-03-12 18:48:07 -06:00
03796ca729 Server handler to shutdown a local server. 2015-03-12 18:44:05 -06:00
6d901e8295 Fixes issue when VBoxManage returns an error. 2015-03-12 16:53:22 -06:00
4f7b896a6a Fixes tests. 2015-03-11 23:09:01 -06:00
38fa3e9a86 Update CHANGELOG. 2015-03-11 22:33:51 -06:00
34c4649d0b Bump version to 1.3beta1 2015-03-11 22:09:43 -06:00
54c2d34185 Optional IOU license key check. 2015-03-11 18:59:57 -06:00
aebcd9f08b Relative path support of IOU, IOS and Qemu images. 2015-03-11 15:04:11 -06:00
c41bec0516 Do not give attachment warning for generic attachments in VirtualBox. 2015-03-11 12:05:22 -06:00
223f3ee705 Should fix ProcessLookupError exceptions. 2015-03-11 10:53:09 -06:00
1610067eee Support for HDC and HDD disk images in Qemu. 2015-03-10 11:50:30 -06:00
062e5a5986 Fixes bug when starting a packet capture in VirtualBox with the project path containing spaces. 2015-03-10 11:05:52 -06:00
4c68fd0d52 Renames server.conf and server.ini to gns3_server.conf and gns3_server.ini respectively. 2015-03-10 11:00:32 -06:00
03dfd177f9 Use TCP instead of Telnet to communicate with Qemu monitor. 2015-03-10 00:34:57 -06:00
5910b4b0be Have the server look in the right place for relative image paths. 2015-03-09 21:57:21 -06:00
ad5548f70b Convert more that IOU pre 1.3 projects but also other modules on remote servers. 2015-03-09 21:46:23 -06:00
5ca65093e4 Fixes bugs when checking if this is a local project. 2015-03-09 12:45:02 -06:00
4f1674f50c Bump version to 1.3.0beta1.dev2 2015-03-09 11:38:02 -06:00
95766fa30d Let the server know about the project name and convert old IOU projects on remote servers. 2015-03-08 19:13:01 -06:00
2934232afb Convert legacy IOU directories on remote servers. 2015-03-08 17:45:29 -06:00
b1eccc0ace Properly restore configs for Dynamips routers. 2015-03-08 14:13:19 -06:00
c3014632a4 Fixes rename bug for linked clones in VirtualBox. 2015-03-08 12:32:36 -06:00
2b34e35027 Pypi doesn't like Python 3.5... yet
Upload failed (400): Invalid classifier "Programming Language :: Python :: 3.5"
2015-03-07 20:19:52 -07:00
0d379f428e Makes absolute path checks work on Windows. 2015-03-07 18:16:46 -07:00
be1e0fa1f2 Upload IOURC file via the web interface 2015-03-07 14:38:38 +01:00
ed2e4e43f2 Support the options use_default_iou_values
Fix #92
2015-03-07 14:27:09 +01:00
d126db1fe9 The upload interfaces allow user to choose an image type 2015-03-07 13:52:40 +01:00
1b68a54234 Look for qemu images in ~/GNS3/images 2015-03-07 11:56:51 +01:00
ee578d3c12 Fixes Qemu networking. 2015-03-06 20:08:00 -07:00
d87ebb3ed2 Fixes suspend and resume for Qemu. 2015-03-06 15:16:19 -07:00
f188bc43e1 Includes SSL cacert file path in the warnings. 2015-03-06 11:25:25 -07:00
053fd9cc0c Adds warnings if the cacert.pem file cannot be found. 2015-03-06 11:20:28 -07:00
b58f9e10f9 Bump version to 1.3.0beta1.dev1 2015-03-06 10:34:02 -07:00
e37392c482 Correctly recover id when closing VMS
Fixes #91
2015-03-06 15:48:16 +01:00
d657f94c18 Fix crash when you start capture on a non running IOU 2015-03-06 14:48:46 +01:00
18f3859e87 Fixes Telnet server initialization issue in VirtualBox. Fixes #88. 2015-03-05 21:20:02 -07:00
a64dfdd694 Disconnect network cable if adapter is not attached in VirtualBox vNIC. 2015-03-05 19:11:33 -07:00
2bae814eb1 Remove redundant code for Dynamips hypervisor connections. 2015-03-05 18:00:17 -07:00
c012e8ddb3 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-05 16:11:50 -07:00
b5e8aaf682 Support for Raven to send crash report from a frozen state. 2015-03-05 16:11:43 -07:00
2679c03fe2 Drop cloud from config 2015-03-05 23:15:06 +01:00
a3e4b81837 Drop cloud for the moment 2015-03-05 23:13:54 +01:00
01ab91722b Proper format of crash report 2015-03-05 20:12:56 +01:00
a4da6c6a74 Add more informations in crash reports 2015-03-05 20:05:46 +01:00
1d0ffe4b2e Add more informations to crash reports 2015-03-05 17:44:01 +01:00
83c1ada63e Drop unused cloud code, this cleanup the dependencies 2015-03-05 17:15:16 +01:00
3407ba802e Rename vlan dat file for IOU 2015-03-05 17:00:25 +01:00
7a6136ed14 Fixes adapter bug with VirtualBox. 2015-03-04 18:24:15 -07:00
bae5b6edb4 Fix version notation in changelog 2015-03-03 18:48:28 +01:00
94bcd1cf11 Bump to version 1.3.0alpha1 2015-03-03 10:47:02 -07:00
b9d057854c Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-03 10:43:52 -07:00
69f8b7de6a Bump to version 1.3alpha1 2015-03-03 10:43:44 -07:00
4c2dbbbebc Changelog 2015-03-03 18:43:17 +01:00
80fd857658 Fix tests 2015-03-03 14:37:34 +01:00
10296f4f19 Do not send garbage to console in case of sentry not available 2015-03-03 13:05:10 +01:00
16dc0d1a8a Send crash report synchronous to avoid lost of events 2015-03-03 12:41:30 +01:00
6208cb997d Fixes Qemu adapters support. 2015-03-02 19:59:44 -07:00
6e89f2c7c7 Remove console_host from IOU and Qemu handlers. 2015-03-02 19:17:13 -07:00
3472f19519 Use console_host from the PortManager. 2015-03-02 18:19:11 -07:00
a6869379c3 Fixes console restoration when loading a VirtualBox project. 2015-03-02 17:28:28 -07:00
f269ec9527 Fixes Qemu networking. 2015-03-02 16:34:28 -07:00
7ace6fc7e9 Fixes old projects loading issue with Qemu. 2015-03-02 14:37:48 -07:00
466c6142af Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-03-02 13:04:35 -07:00
b673b898a8 Fixes problem when trying to convert VirtualBox projects without cloned VMs. 2015-03-02 13:04:30 -07:00
91ccd6167c API for reloading server config 2015-03-02 20:46:05 +01:00
a9afaa028c Garbage collect VM when closing a project 2015-03-02 17:17:28 +01:00
66860655b9 If a VM is already loaded, we return a VM instead of creating it twice
Partial fix for #81
2015-03-02 15:35:36 +01:00
914ea0326c Fix tests 2015-03-02 15:26:57 +01:00
16f6fe9d3b Send criticals errors to Sentry
Fixes #77
2015-03-02 09:05:32 +01:00
46b0ead329 Close connections for auto-reload. 2015-03-01 21:13:51 -07:00
c48ca212bd Stop Dynamips hypervisors used by devices before the project is closed.
This is to avoid locked files by hypervisors preventing temporary project working directories to be deleted.
2015-03-01 19:20:33 -07:00
3ef529fb0e Temporally fixes Dynamips console listening issues. 2015-03-01 18:53:03 -07:00
518b037d54 Fixes connect call failed for Dynamips hypervisor #78. 2015-03-01 14:25:09 -07:00
7223005acd Restore device IDs and fixes race condition when converting an old project. 2015-03-01 13:05:51 -07:00
5ae8728ee6 Fixes ATM switch. 2015-03-01 10:41:27 -07:00
0c767e1c0e Bump to version 1.3.dev3 2015-02-28 21:39:52 -07:00
dfce18a48f Fixes migration issues for pre-1.3 projects. 2015-02-28 18:55:53 -07:00
0f10d25c0b Optional AUX console port allocation for Dynamips VMs. 2015-02-28 16:20:27 -07:00
7fe2d6c367 Support to deactivate sparsemem or mmap globally for Dynamips VMs. 2015-02-28 15:53:21 -07:00
d762c43314 Include the images directory when converting an old project. 2015-02-28 15:00:00 -07:00
708f66b608 Fixes asyncio Lock instantiation issues on Windows.
Because the event loop is essentially a global variable, asyncio Lock objects that get instantiated early could grab a reference to the wrong loop (Selector instead of Proactor).
2015-02-27 22:12:43 -07:00
666064f1ae Revert commit: Remove lock for Ghost IOS (problem on Windows). 2015-02-27 22:01:37 -07:00
70d5dea256 Remove lock for Ghost IOS (problem on Windows). 2015-02-27 19:36:45 -07:00
ba95567886 Some info message and fixes ghost IOS activation/deactivation. 2015-02-27 19:35:31 -07:00
84870bf736 Some changes with config files on Windows. 2015-02-27 18:08:34 -07:00
0e8b8fa66f Update hypervisors working dir when the project is moved. 2015-02-27 16:51:17 -07:00
b55719186e Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-27 13:27:40 -07:00
1d6d2a39f0 Allow signals to be processed on Windows. 2015-02-27 12:51:39 -07:00
d0c386860e Fix curl sample generation in the documentation 2015-02-27 18:47:08 +01:00
ebd72d1149 Add a curl sample sessions 2015-02-27 18:39:20 +01:00
ae7bf828cd Fix tests on MacOS 2015-02-27 18:30:22 +01:00
38326f7d72 Add changelog file 2015-02-27 16:13:30 +01:00
f6448bb05d Turn off collored log output on windows 2015-02-27 15:27:13 +01:00
ebb865d973 Export vpcs config path 2015-02-27 13:38:57 +01:00
985c23a40e Explicitly import handlers so freezing application can find and include the right modules.
Do not import IOU on Windows to avoid importing unknown modules like fcntl on that platform.
2015-02-26 19:31:18 -07:00
58d92f1584 Fixes Dynamips console/aux ports restoration when loading a project. 2015-02-26 16:15:44 -07:00
62afef06af After an iou reload you can write on the console 2015-02-26 15:47:47 +01:00
5e59145948 If you type reload inside iou you are no longer disconnected 2015-02-26 15:09:15 +01:00
29e8d91745 Do not output debug for ioucon standard telnet commands 2015-02-26 13:07:26 +01:00
5a58f6efc8 Fix a crash with Python 3.4 when you stop IOU
http://bugs.python.org/issue23140
2015-02-26 11:29:57 +01:00
aa40e6097e Fix tests 2015-02-26 10:45:37 +01:00
c07b8c746e Drop poll from Qemu 2015-02-26 10:18:52 +01:00
0eaad579c2 IOU + VirtualBox conversion of old projects. 2015-02-25 18:55:35 -07:00
85518a3cd6 Fixes race condition when generating an ghost IOS file. 2015-02-25 17:38:55 -07:00
9dc713f31d Fixes race condition when deleting empty legacy project files dir. 2015-02-25 17:38:36 -07:00
473eb0280e Support for relative path in Dynamips. 2015-02-25 17:19:37 -07:00
de1be0961f Do not return an error when creating the same project multiple times (for now). 2015-02-25 17:19:12 -07:00
54fc873be5 Prevent multiple projects with the same ID to be created. 2015-02-25 16:05:57 -07:00
349d9d4540 Fixes small issues when deleting Dynamips devices. 2015-02-25 11:52:52 -07:00
f12d3f07f7 Drop the old -files in the project 2015-02-25 18:23:41 +01:00
8434a286b6 Fix IOU old project import
Fixes #69
2015-02-25 16:35:13 +01:00
818676ce5e Support relative path in iou 2015-02-25 16:26:17 +01:00
47f8ac00c0 Remove debug 2015-02-25 16:04:18 +01:00
4ea25739e5 Correctly check if qemu is running
Fixes #71
Related to #70
2015-02-25 15:46:05 +01:00
0713724a97 Properly handle when client cancel's query 2015-02-25 11:42:02 +01:00
7c2329d870 Garbage collect the lock 2015-02-25 11:19:16 +01:00
545acd1f06 Limitation documentation 2015-02-25 10:29:20 +01:00
36bb510ac1 Add api limitations in the documentation 2015-02-25 09:47:55 +01:00
3528efb1e0 Fixes packet capture for devices when spaces are present in the output file. 2015-02-24 23:12:09 -07:00
550cc7f508 Rename vms_lock to vm_locks. 2015-02-24 21:02:37 -07:00
6bb7ab20b3 Fixes vm concurrency and support for devices. 2015-02-24 15:26:03 -07:00
46b348e46a VM concurrency 2015-02-24 21:53:38 +01:00
9153b42b9d Fix crash in crash report 2015-02-24 20:22:10 +01:00
250bb38d7c Crash report with Sentry 2015-02-24 17:40:01 +01:00
67be24a412 Fix doc generation 2015-02-24 11:39:17 +01:00
fd03b36258 Fix tests 2015-02-24 10:07:22 +01:00
1ca445d5f5 Fix dynampis resume API 2015-02-24 10:02:06 +01:00
e910167a85 Quick change warning -> debug 2015-02-23 22:19:03 -07:00
49f3c9295f Some debug messages to help with port allocation debugging. 2015-02-23 19:59:19 -07:00
42c07cee1a Properly release UDP ports when closing a project or deleting a link. 2015-02-23 19:00:34 -07:00
3d3300e83a Rename console methods in port manager to use the generic tcp term in the name.
Fixes bug when a console port is allocated to a Ghost VM instance and not released.
Warnings at exit when TCP/UDP ports are still allocated.
2015-02-23 17:42:55 -07:00
182d2e465e Use projects_path & images_path. 2015-02-23 17:08:34 -07:00
fb9f5d3c14 List only executable files in upload handler. 2015-02-23 15:56:40 -07:00
8b19029d97 List only executable files in upload handler. 2015-02-23 15:56:10 -07:00
0e8c184987 Recursive listing of the images directory & fixes bug when uploading no files. 2015-02-23 15:49:05 -07:00
4d1f08c96e Turn off Qemu graphics if no display is available
Fixes #66
2015-02-23 20:21:00 +01:00
cad708f4ab Add warning unstable at the beginning of the API 2015-02-23 18:00:59 +01:00
4ffb2c8c20 Fix tests 2015-02-23 17:32:55 +01:00
89b7d62ec6 Some code cleanup 2015-02-23 17:28:17 +01:00
c9314ec509 autopep8 et upload files 2015-02-23 17:21:39 +01:00
259f6249e2 Fix tests 2015-02-23 16:09:52 +01:00
f7cd09d5fb Display an upload form (upload is not yet ready) 2015-02-23 11:28:33 +01:00
210aa6f12a Bit of cleaning. 2015-02-22 19:56:52 -07:00
da11343647 Fixes aiohttp.errors.ClientDisconnectedError errors when SIGINT is received. 2015-02-22 12:36:44 -07:00
565a7b35a6 Default NVRAM and Idle-PC for some IOS images. 2015-02-21 17:24:39 -07:00
9a745ed3f4 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-20 16:53:57 -07:00
af700e9bcb Idle-PC and auto idle-pc for Dynamips. 2015-02-20 16:53:51 -07:00
cecf2f5014 Async qemu monitor reading 2015-02-21 00:15:56 +01:00
45a48cfcc1 Embeded debugging shell 2015-02-20 22:40:20 +01:00
a0f4c6d021 Repare live reload 2015-02-20 22:23:09 +01:00
71357fa7ab Fix tests 2015-02-20 17:45:27 +01:00
47be57dca7 Fix qemu close 2015-02-20 17:31:02 +01:00
15036837bb No project for qemu binaries list 2015-02-20 16:54:23 +01:00
8aa5514890 Qemu binary list 2015-02-20 14:39:13 +01:00
90f71e7581 Idle-PC proposals for Dynamips. 2015-02-19 19:14:30 -07:00
b393948b67 Fixes iouyap shutdown. 2015-02-19 16:58:44 -07:00
8d02f464c5 Dynamips import/export configs. 2015-02-19 16:04:15 -07:00
3797e27de5 Update documentation 2015-02-19 20:23:27 +01:00
48f5c7c8b3 All params for qemu 2015-02-19 20:22:30 +01:00
d0244824bf Get a working Qemu handler. Next step add all parameters 2015-02-19 19:43:45 +01:00
b03b9226ff So we have running code for a qemu module
Now the handlers. The telnet code is not yet async
2015-02-19 16:46:57 +01:00
25bcbfb073 Allocation of console port in base vm 2015-02-19 11:45:43 +01:00
4a3e6632c1 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-18 18:40:16 -07:00
380c4d8211 Fixes capture directory path. 2015-02-18 18:40:01 -07:00
3d1363150e Fixes ghost file path. 2015-02-18 18:24:35 -07:00
610dee957d Use HTTP error 409 instead of 500 for VMError. 2015-02-18 17:48:02 -07:00
d65617657c Fix old project directories renames 2015-02-18 16:13:09 +01:00
3cb7213427 Fix crash in VPCS 2015-02-18 15:18:18 +01:00
0977af1c00 Add a dedicated glossary page 2015-02-18 11:06:13 +01:00
03b6563864 Initial config path for IOU 2015-02-17 18:12:43 +01:00
dd1833c4f0 iourc_path is set from server settings file 2015-02-17 16:40:45 +01:00
0e98497a99 Add an endpoint for exporting the initial config file 2015-02-17 14:52:51 +01:00
57348d0508 Better organisation of the API documentation 2015-02-17 10:37:09 +01:00
5170428913 Fix a capture crash 2015-02-17 10:01:15 +01:00
70ad9fff26 Documentation update 2015-02-17 09:46:18 +01:00
dc4df68c7a Keep Dynamips logs. 2015-02-16 21:30:31 -07:00
e6fd471dd5 Save Dynamips VM configs when closing a project. 2015-02-16 18:21:10 -07:00
516b882122 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-16 16:53:56 -07:00
3e95bb9748 Adapter settings and configs for Dynamips VMs. 2015-02-16 16:53:50 -07:00
6c3a926ce3 Capture is OK on server side 2015-02-16 20:08:04 +01:00
ff7f014423 Fix test 2015-02-16 19:14:45 +01:00
018e3c1451 Fix IOU closing 2015-02-16 17:40:13 +01:00
15f89776d3 All current iou code is async 2015-02-16 17:20:07 +01:00
d323234520 Harmonisation of slot, adapter notion 2015-02-16 10:19:50 +01:00
3ceb43fa62 Fix tests 2015-02-16 10:11:46 +01:00
605afa1d33 Fix bad execption name in IOU 2015-02-16 10:05:54 +01:00
78ffe313fd Dynamips VM & device deletion and ghost support. 2015-02-15 22:13:24 -07:00
26f7195288 Dynamips devices packet capture. 2015-02-15 17:45:53 -07:00
f99e834c37 Dynamips devices support (packet capture to complete). 2015-02-15 12:18:12 -07:00
4f38d96522 Dynamips devices. 2015-02-13 20:01:18 -07:00
094339304c Packet capture for Dynamips VMs. 2015-02-13 15:41:56 -07:00
6ac6c7d796 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-13 15:11:19 -07:00
a5ac7c5481 Dynamips NIO connections. 2015-02-13 15:11:14 -07:00
e082cd8b1a Update the remote IOU initial config 2015-02-13 22:16:43 +01:00
83edc649d2 Rename NVRAM to the correct application id before start the server 2015-02-13 20:57:20 +01:00
a9a3bb1c38 Pep8 2015-02-13 20:57:09 +01:00
d86e880ff7 Definitions of port and adapter 2015-02-13 18:40:40 +01:00
49f012cf4c Turn off documentation sidebar because it's broken 2015-02-13 18:27:08 +01:00
2cab5293c7 Add the notion of adapters and slot in the api 2015-02-13 18:09:50 +01:00
821eb5e92b Repare config file loading 2015-02-13 17:34:22 +01:00
ee019caa37 Support l1_keepalives in IOU 2015-02-13 16:57:35 +01:00
1550ca01e6 IOU support nio ethernet 2015-02-13 16:41:18 +01:00
3e1875b069 Set console host from port manager 2015-02-13 14:46:00 +01:00
68427eaddf Auto PEP8 cleanup 2015-02-13 14:43:28 +01:00
a4669689e7 Fix tests due to test reading the local config file 2015-02-13 11:15:11 +01:00
b419001813 Fix test on Travis with Python 3.3 2015-02-13 11:02:56 +01:00
0a5aaedc7c Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-12 19:15:47 -07:00
8f089c45f5 Fixes a few problems in Dynamips implementation. 2015-02-12 19:15:35 -07:00
f99d825346 Support network for IOU 2015-02-12 22:29:34 +01:00
9160d3caf4 Remove old directories to avoid editing them by mistake... 2015-02-12 22:29:34 +01:00
3471b03ef9 Clarify JSON schema validation errors 2015-02-12 22:29:33 +01:00
8b61aa9ae7 Set ram, ethernet adapters, serial adapters 2015-02-12 22:29:33 +01:00
05df7001a3 Successfully create an iou device from the GUI via HTTP 2015-02-12 22:29:33 +01:00
4689024b50 Add a --live options to control livereload
Because the livereload bug due to timezone issues with Vagrant
2015-02-12 22:29:33 +01:00
ebc214d6fa Fix tests and rename path to iou_path 2015-02-12 22:29:33 +01:00
fb69c693f6 Start iouyap 2015-02-12 22:29:33 +01:00
faa7472670 IOUCON start when vm start 2015-02-12 22:29:33 +01:00
986c63f344 HTTP api start iou process
Now we need to start ioucon
2015-02-12 22:29:32 +01:00
2e99ef69a9 Modules support start iou process (not ioucon and iouyap) 2015-02-12 22:29:32 +01:00
79a57ca420 New Dynamips integration part 3 2015-02-11 19:21:34 -07:00
37945585b9 New Dynamips integration part 2 2015-02-10 21:50:02 -07:00
f0add73d80 Cleanup 2015-02-10 17:27:54 +01:00
a6da2406a0 Fix tests 2015-02-10 17:24:38 +01:00
46cbcd6132 New Dynamips integration part 1 2015-02-09 18:24:13 -07:00
648850c411 Server listen to 0.0.0.0 by default. 2015-02-09 13:42:50 -07:00
30c452e938 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-02-09 13:41:36 -07:00
98586b93ee Add timeout on stopping a VPCS just in case. 2015-02-09 13:41:31 -07:00
2f85d71f32 Correctly override the config from command line
The tests was long write but allow me to found some typos
bugs.
2015-02-09 21:30:22 +01:00
e1a80a9fab Remove debug 2015-02-09 19:58:23 +01:00
b31af0abcd Sub directory project-files 2015-02-09 11:26:42 +01:00
e99c0f6ac5 I hope it's fix tests on Travis Python 3.3 2015-02-09 11:19:56 +01:00
bf29e0319e Test logger and PEP8 2015-02-09 10:38:34 +01:00
64c197c719 Fix tests 2015-02-09 10:18:37 +01:00
0d7d0a05c3 Handle old projects. 2015-02-08 18:10:04 -07:00
2a3b37a3bd VirtualBox packet capture. 2015-02-08 14:44:56 -07:00
d499402491 VirtualBox implementation complete. 2015-02-06 17:31:13 -07:00
e81dcd4bba Add /projects before /project 2015-02-06 17:42:25 +01:00
27cbfbbdc6 Useless requirement 2015-02-06 12:35:31 +01:00
571044b3e8 Fix server close tests 2015-02-06 11:31:54 +01:00
5c3969ae79 Fix tests creating garbage project in ~/GNS3/project 2015-02-06 11:15:27 +01:00
8118d7762f Parallel execution when closing VMs. 2015-02-05 14:24:06 -07:00
f2ff933b20 Fixes console and close in VirtualBox VM. 2015-02-05 11:58:10 -07:00
ab122d969e Allow empty project directory 2015-02-05 17:57:51 +01:00
5a0c224292 Allow user to change project path on local server 2015-02-05 17:52:37 +01:00
9f7b8574c8 Useless print 2015-02-05 17:15:40 +01:00
30f10a559e Fix crash in debug log 2015-02-05 16:34:18 +01:00
0abf2e82d6 Improve server debug logging 2015-02-05 15:35:52 +01:00
2786d0f044 Update aiohttp 0.14.4 2015-02-05 15:04:59 +01:00
41a8872819 Refactor VPCS script file loading
This allow to support moving the project on disk
2015-02-05 14:20:01 +01:00
869405738e Code cleanup 2015-02-05 13:55:53 +01:00
b92e065add Fix binary location change for VPCS 2015-02-05 12:00:34 +01:00
dae48b2de4 Update temporary status if project change location
This avoid race condition during file move.
2015-02-05 11:44:51 +01:00
8367a9eb30 Remove unused files (we can restore them later via git history) 2015-02-05 11:00:42 +01:00
ed41384e22 Add PyPi badge 2015-02-05 10:49:27 +01:00
2df3525ffe Add code coverage 2015-02-05 10:46:27 +01:00
132c06a2d4 Add travis icon on README 2015-02-05 10:41:55 +01:00
4e690a6d06 Update required aiohttp version to 0.14.4 2015-02-04 17:59:16 -07:00
c12d3ff739 Update documentation. 2015-02-04 17:48:33 -07:00
291fac7084 Add project_id in all VM calls. 2015-02-04 17:13:35 -07:00
b680138073 Merge remote-tracking branch 'origin/asyncio' into asyncio
Conflicts:
	gns3server/modules/project.py
	tests/modules/test_project.py
2015-02-04 13:52:46 -07:00
1bea78194c Explicit ID names, remove {uuid} from URLs and add vms in URLs for VMs. 2015-02-04 13:48:29 -07:00
c5c219ffe1 Allow modification of path from the client 2015-02-04 21:17:00 +01:00
568e203580 Increase timeout time for test in order to avoid false negative 2015-02-04 17:33:58 +01:00
2ace014a3c Cleanup old temporary project at startup 2015-02-04 17:18:53 +01:00
ca354ae7f2 Doc API V1 2015-02-04 10:31:31 +01:00
08158884a4 Add api versionning 2015-02-04 10:24:59 +01:00
119bebee25 Documentation. 2015-02-03 18:44:04 -07:00
59c82e26df Use project_id instead of project_uuid for the API. 2015-02-03 18:40:13 -07:00
d2699f051d Change URL for projects: /project becomes /projects and project_id is used instead of uuid. 2015-02-03 18:23:11 -07:00
aeb83a7945 Support %h in VPCS config file 2015-02-03 21:48:20 +01:00
a12f753136 Update documentation 2015-02-03 21:27:15 +01:00
f572f3fc95 You can't modify startup script remotely 2015-02-03 20:29:28 +01:00
0ce344b1d2 PEP8 2015-02-03 10:49:21 +01:00
d199778745 Fixes tests. 2015-02-02 19:41:26 -07:00
81f9252554 Fixes nasty bug when close a cloned VirtualBox VM. 2015-02-02 18:56:13 -07:00
66569f26a4 Make sure to wait for the unload coroutine to finish when the server is shutting down. 2015-02-02 17:01:25 -07:00
df72369b0e Fix VirtualBox VM close. 2015-02-02 17:00:29 -07:00
33d5882a4a Add traceback info when catching an exception to help with debugging. 2015-02-02 15:36:13 -07:00
471fbe576c Ignore OSError when checking for config file changes. 2015-02-02 15:00:56 -07:00
45ca493ecf Use module settings from the config file. 2015-02-02 14:52:58 -07:00
2c3fe2ad4b Repare debug log 2015-02-02 21:28:42 +01:00
aecd7dedba Fixes app name for the config file on Linux. 2015-02-02 13:13:56 -07:00
0ae8d8031a Override configuration from command line even in case of config reload 2015-02-02 15:08:46 +01:00
6abf420ce1 Support configuration live reload 2015-02-02 15:01:48 +01:00
21020a2753 Fix server configuration path 2015-02-02 10:49:46 +01:00
a3a304bd12 Load port ranges from the config file. 2015-02-01 20:43:55 -07:00
57b35d5758 Fix tests + PEP8 + documentation 2015-02-01 17:22:31 -07:00
0c90393b5b Send explicit error message when client is checking for the server version. 2015-02-01 16:55:08 -07:00
8d471a89a8 Check for OSError when starting the server. 2015-02-01 15:56:10 -07:00
334835c985 PEP8 + documentation. 2015-01-31 14:34:49 -07:00
8a00d30e23 Change ports to adapters in VirtualBox API entry points. 2015-01-31 12:07:30 -07:00
22369ade49 Rename port_id to port_number for VPCS and adapter_id for VirtualBox to avoid confusion. 2015-01-31 12:01:23 -07:00
e7c9139045 Rename /udp entry point to /ports/udp. 2015-01-31 11:58:34 -07:00
fa978b6a28 Send all VirtualBox settings when creating the VM. 2015-01-30 19:36:05 -07:00
6e29e7711c Update dependencies. 2015-01-30 15:40:00 -07:00
58fd9043ed Clean dependencies 2015-01-30 17:55:46 +01:00
8bc26420b7 If not script file is setted we use the default from VPCS 2015-01-30 14:57:25 +01:00
4b62d4d82c py.test timeout and capture log 2015-01-28 15:57:11 +01:00
f682e1c474 Complete documentation 2015-01-27 15:06:55 +01:00
29a4a0634d Add console debug 2015-01-27 11:39:31 +01:00
e60366c5bb Change URL to get all VirtualBox VMs. 2015-01-26 20:29:02 -07:00
776bfea3d7 Clean enable debug mode 2015-01-26 17:40:41 +01:00
6764c6e866 Useless debug 2015-01-26 16:39:09 +01:00
9abf323e7d Send GNS 3 server version in header and upgrade aiohttp 2015-01-26 14:40:31 +01:00
df8bdcc152 Catch exceptions from rmtree 2015-01-26 13:54:44 +01:00
4518404706 Run rmtree in a different thread 2015-01-26 12:10:30 +01:00
1bfb201368 Enable code live reload only in debug mode 2015-01-26 09:51:29 +01:00
c409819382 Add missing documentations and add julien email to travis build 2015-01-26 09:40:48 +01:00
70faf76c10 PEP8, documentation update, test fix 2015-01-26 09:36:26 +01:00
50fea669b5 Network handler for UDP port allocation and server network interfaces. 2015-01-24 15:32:58 -07:00
c002bbfb23 Minimal SSL support. 2015-01-24 12:11:51 -07:00
365af02f37 Packet capture support for VirtualBox. 2015-01-23 18:33:49 -07:00
ff63530f52 Get all available VirtualBox VMs on the server. 2015-01-23 17:57:54 -07:00
499a8f10ae Update tests. 2015-01-23 16:38:59 -07:00
6460e94311 More VirtualBox implementation. 2015-01-23 16:38:46 -07:00
bc3d63081b Unload should not delete VMs, just close them. 2015-01-23 16:36:58 -07:00
6e7a5ca8bd Adds debug and quiet command line args. 2015-01-23 13:10:57 -07:00
39e3ca91a9 Fixes module unload & adds host, port and allow-remote-console command line args. 2015-01-23 13:01:23 -07:00
59f940625a Flag --local 2015-01-23 18:37:29 +01:00
8e249b670d Set a location by default 2015-01-23 17:39:17 +01:00
7bed9f56bc Avoid crash when closing vms
Otherwise the size of dict change and Python raise
an exception.
2015-01-23 17:33:58 +01:00
017c5ac9f6 Allow changing location only for local usage 2015-01-23 16:58:14 +01:00
4f2764c0b4 Fixes module unload. 2015-01-23 08:44:00 -07:00
4848eeabad Add missing curl example 2015-01-23 16:21:26 +01:00
77ee6501b9 Update documentation documentation 2015-01-23 16:20:12 +01:00
977ff0fb57 Build documentation 2015-01-23 16:19:17 +01:00
547adf0dc6 Get project 2015-01-23 16:18:40 +01:00
0e76527ce2 Update a project 2015-01-23 16:13:58 +01:00
abc885049f Temporary project 2015-01-23 16:02:26 +01:00
7bf121c6da When we remove a VM, the VM is removed from the project. 2015-01-23 14:37:21 +01:00
3f5c2390cd Close a project 2015-01-23 14:07:10 +01:00
986a7f55ef Delete a project 2015-01-23 11:48:20 +01:00
9a0b260c56 Small change in order to avoid a PEP8 warning 2015-01-23 11:30:49 +01:00
f97c2b2cbe Delete a VM, mark it as destroyable 2015-01-23 11:28:58 +01:00
28308b10bc Add missing documentation 2015-01-23 10:11:40 +01:00
0d503b779e Explicitly close VM when the server is shutdown. 2015-01-22 23:40:51 -07:00
e61e976368 Adapters support for VirtualBox. 2015-01-22 21:31:26 -07:00
2a8823b856 Use the Proactor event loop on Windows. 2015-01-22 21:11:57 -07:00
05c0efe39b More VirtualBox work. 2015-01-22 19:07:09 -07:00
d9b02efbfa Rename destroy to close or unload (more friendly). 2015-01-22 19:06:17 -07:00
2681defe27 Moves NIO creation to the base manager. 2015-01-22 18:04:24 -07:00
6ec4dea9b9 Fixes reload call in VPCS handler. 2015-01-22 15:04:44 -07:00
1fea7593ef Update README 2015-01-22 14:39:20 -07:00
2c50bb607f VPCS Mac address / project 2015-01-22 18:47:27 +01:00
72c6182062 Typo 2015-01-22 17:04:14 +01:00
6644c640db Attribute mac address 2015-01-22 16:12:21 +01:00
08b2dc6369 Cleanup VMS when leaving 2015-01-22 11:49:22 +01:00
e12e6044dc Delete VPCS 2015-01-22 11:34:10 +01:00
545a3d2b58 PEP8 2015-01-22 10:57:08 +01:00
55052c9bca Add missing documentations 2015-01-22 10:56:02 +01:00
8d3ea60404 VPCS reload 2015-01-22 10:55:11 +01:00
1a43ff118c Fix tests and clean. 2015-01-21 19:30:24 -07:00
3b7d08a80e Suspend and resume for VirtualBox. 2015-01-21 19:28:52 -07:00
87bd0d1869 VirtualBox VM almost done. 2015-01-21 19:26:39 -07:00
f231b06833 No need for start_vm and stop_vm in the manager. 2015-01-21 17:41:35 -07:00
beb27b3f69 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-01-21 15:21:20 -07:00
0b1b27db8f Add module name to base manager. 2015-01-21 15:21:15 -07:00
0249a21409 Build doc 2015-01-21 22:33:41 +01:00
97cefa23fb Move fixtures to conftest 2015-01-21 22:32:33 +01:00
f3e07d5ad9 Fix random failure related to ports 2015-01-21 22:21:01 +01:00
8d9da999e6 Update examples only when launching test with documentation.sh 2015-01-21 22:09:52 +01:00
ef4ecbfb6a Improve VPCS port change test 2015-01-21 22:09:52 +01:00
7ce1cf3f84 Return correct status codes and fix tests. 2015-01-21 14:01:15 -07:00
368d1ff70b Update VPCS instance 2015-01-21 21:46:16 +01:00
7abb426d04 Get informations about a VPCS instance 2015-01-21 17:21:17 +01:00
ce9fd3cb25 Test start / stop. And check if the mocked function is really called 2015-01-21 17:11:21 +01:00
87a089457f Update script file 2015-01-21 16:43:34 +01:00
f99538ccef Cleanup test 2015-01-21 15:50:35 +01:00
df31b2ad5a Fix project path 2015-01-21 11:33:24 +01:00
ba91cbaac0 Remove find_unused_port from the attic. 2015-01-20 19:10:08 -07:00
7a19c9062e Pass *args to VM_CLASS.
Move Config the the base manager.
More checks for projects (UUID,  makedirs).
Return error 500 when a VMError exception is raised.
Some more progress to VirtualBox.
2015-01-20 19:02:22 -07:00
3530b85b56 Fix virtualbox test 2015-01-20 23:40:03 +01:00
061d3223a7 Merge remote-tracking branch 'origin/asyncio' into asyncio 2015-01-20 15:28:45 -07:00
17f6223fb1 Try to fix VirtualBox create test. 2015-01-20 15:28:40 -07:00
fc66e4592a VPCS is trully async 2015-01-20 23:27:28 +01:00
984d47f9c8 Test work without vpcs binary 2015-01-20 22:50:26 +01:00
0eaa7be86a PEP 8 Enforcer. 2015-01-20 22:13:58 +01:00
649d4e5143 Allow user to set console port 2015-01-20 20:54:46 +01:00
57c3463edc Ignore vpcs.hist 2015-01-20 20:11:39 +01:00
f2289874af Raise exception if we try to reserve an already reserve port 2015-01-20 20:09:20 +01:00
fa57485f11 Support script file 2015-01-20 19:56:18 +01:00
c30f7ce9a1 Fix tests 2015-01-20 19:23:35 +01:00
54eb8d9e81 Drop decorator for async test 2015-01-20 18:55:17 +01:00
db31afeb63 Merge branch 'master' into asyncio
Conflicts:
	gns3server/old_modules/qemu/qemu_vm.py
	gns3server/version.py
2015-01-20 16:45:09 +01:00
bbee5f90a0 Yet another PEP 8 :) 2015-01-20 16:37:18 +01:00
7cf409c392 Kill VPCS process when the server exit 2015-01-20 16:24:46 +01:00
531265eced Get a stable example between tests for project creation 2015-01-20 15:35:46 +01:00
78237e9fb6 Bold parameter in documentation in order to improve readability 2015-01-20 15:31:27 +01:00
f5ac73d1ca Fix documentation generation 2015-01-20 15:27:28 +01:00
0b97509a74 Do not color logger message 2015-01-20 15:18:57 +01:00
4488cc3960 Colored logs 2015-01-20 15:10:38 +01:00
db41076ce5 Use the project working directory for VPCS VM 2015-01-20 14:31:47 +01:00
f5ed9fbcf1 PEP 8 clean thanks to auto pep8 2015-01-20 13:24:00 +01:00
7f185663d1 VPCS Device => VPCS VM 2015-01-20 13:12:26 +01:00
68d0e5f42d PEP8 2015-01-20 13:04:20 +01:00
0695e75e77 Fix tests 2015-01-20 12:46:15 +01:00
927e6b540d Fix tests 2015-01-20 09:58:58 +01:00
7fff25a9a9 UUID support for VMs.
Basic VirtualBox support (create, start and stop).
Some refactoring for BaseVM class.
Updated CURL command in tests.
2015-01-19 18:30:57 -07:00
fe22576ae2 Some quick cleaning. 2015-01-19 14:43:35 -07:00
345b471c47 Drop unused code 2015-01-19 17:58:01 +01:00
78015b800e Install vpcs on travis 2015-01-19 17:56:38 +01:00
ed973dbcf2 Project handler use ProjectManager 2015-01-19 17:12:36 +01:00
f0094cc0d0 Project Manager 2015-01-19 17:07:32 +01:00
240d83411c Create a project entity 2015-01-19 16:23:41 +01:00
a9a09cc0bc Temporaru drop old tornado logging 2015-01-19 15:05:44 +01:00
a06d935ef4 Drop tornado 2015-01-19 14:21:08 +01:00
f0880c4a37 Drop queue codes because it's too specific 2015-01-19 13:47:20 +01:00
2c3b0061a2 Cleanup travis build 2015-01-19 11:58:22 +01:00
9e5a2fcc42 Skip .tox directory during tests 2015-01-19 11:37:24 +01:00
7de95cd60a Fix tests 2015-01-19 11:28:51 +01:00
73a481e510 Refactor port manager 2015-01-19 11:22:24 +01:00
ae8e2f4199 Prepare VirtualBox module. 2015-01-18 16:26:56 -07:00
b6212fc885 Improve Port Manager to handle UDP ports. 2015-01-18 15:41:53 -07:00
1900966751 Update documentation script to use Python3. 2015-01-18 13:58:19 -07:00
1cfce6ac5e Merge remote-tracking branch 'origin/asyncio' into asyncio
Conflicts:
	gns3server/handlers/vpcs_handler.py
	tests/api/test_version.py
	tests/api/test_vpcs.py
2015-01-18 12:23:42 -07:00
d142a9a885 Rename vpcs_id to id. Must be an integer in the route definition. 2015-01-18 12:12:11 -07:00
c47081f363 Bump version to 1.2.3 2015-01-16 17:58:09 -07:00
3793789732 Fixes broken -netdev + legacy virtio in Qemu support. 2015-01-16 17:44:07 -07:00
869ad026ff Do not add a show source in documenation 2015-01-16 21:59:51 +01:00
9f82f3826b Default doc style 2015-01-16 21:58:02 +01:00
2c9a802cca Default documentation theme 2015-01-16 21:53:04 +01:00
878532325a Nature 2015-01-16 21:48:03 +01:00
42920e5059 Haiku theme 2015-01-16 21:44:56 +01:00
77db08c39e Remove NIO from VPCS 2015-01-16 21:39:58 +01:00
8e307c8cbb Use PATH environnement variable for searching binary 2015-01-16 20:23:43 +01:00
4c010b466d Bump version to 1.2.3.dev1 2015-01-16 10:43:44 -07:00
bf6f62e629 Serialize NIO 2015-01-16 17:09:45 +01:00
0cdc1c3042 VCPS create NIO work and tested 2015-01-16 16:20:10 +01:00
aff834f565 Oops bad merge 2015-01-16 10:18:02 +01:00
7a767a6b92 Merge 1.2.2 into asyncio
Conflicts:
	gns3server/version.py
2015-01-16 09:43:58 +01:00
701a1626f7 Bump version to 1.2.2 2015-01-15 17:44:09 -07:00
2ee49fed57 Some cleaning. 2015-01-15 17:43:06 -07:00
9e83329f14 Rename Device to VM. 2015-01-15 16:50:36 -07:00
c1ef406311 A basic implementation of port manager 2015-01-15 16:59:01 +01:00
3abcac43ab Test the stop method 2015-01-15 14:27:33 +01:00
6bb2b88f1a It's was hard but i have finally a beginning of test for start VPCS 2015-01-15 13:02:43 +01:00
0afea48e63 Merge branch 'asyncio' of github.com:GNS3/gns3-server into asyncio 2015-01-15 10:15:30 +01:00
77686b35c2 Drop zmq and tornado from Readme 2015-01-15 10:13:12 +01:00
e6e83ffa8a Update the VM name in VirtualBox for linked clones. 2015-01-14 16:48:32 -07:00
5618556b42 Updates dependencies in setup.py 2015-01-14 15:05:33 -07:00
6c35cc304e Dirty stop start for VPCS 2015-01-14 18:52:02 +01:00
482fdf9031 Drop documentation it's already in script directory 2015-01-14 17:38:03 +01:00
1431c66c54 Documentation generation 2015-01-14 12:32:56 +01:00
aab944fb6c Move old test to old_tests directory 2015-01-14 11:43:23 +01:00
efad58a2af Enable travis for all branches 2015-01-14 10:39:46 +01:00
f1a9cc9f01 PEP8 2015-01-14 10:37:49 +01:00
1af5513c86 Update dependencies 2015-01-14 10:33:01 +01:00
369cd06279 Merge latest changes from the POC. 2015-01-13 18:26:32 -07:00
6d20a122f8 Adds tests and documentation script. 2015-01-13 17:26:24 -07:00
61344a1669 New base server. 2015-01-13 17:05:26 -07:00
5e665cc67a Update dependencies in setup.py 2015-01-13 13:39:06 -07:00
2bfe098866 Bump version to 1.2.2.dev2 2015-01-12 16:30:09 -07:00
2ef45781ad Checks connection failure to Qemu monitor. 2015-01-11 18:24:13 -07:00
14cc6d414f Merge pull request #63 from Raizo62/master
Add snapshot named reset to linked cloned Vbox
2015-01-11 17:16:16 -07:00
cbbb89f69c Add snapshot named reset to linked cloned Vbox 2015-01-11 12:22:59 +00:00
29896151e7 Support spaces in the controller name of VirtualBox clones. 2015-01-06 15:31:50 -07:00
7f6f7022b0 Support to run VirtualBox as another user. 2015-01-05 16:18:33 -07:00
c77ebca036 Merge pull request #62 from shmygov/qemunio
Dynamically configure network connections of running QEMU VMs
2015-01-05 15:46:09 -07:00
881cc6f592 Fixes wrong IOS config paths. 2015-01-04 18:51:55 -07:00
5265818365 Support for IOURC file on the server side. 2015-01-04 15:59:00 -07:00
d1e186317c Console switching from local/remote to remote/local while a VirtualBox VM is running. 2015-01-04 14:56:17 -07:00
a6fd457cff Bump the maximum network adapters to 32 for Qemu. 2015-01-03 16:16:07 -07:00
4eedc9c74c Dynamically configure network connections of running QEMU VMs (including new QEMU versions) 2015-01-03 05:04:52 +03:00
ccb4ccd612 Return QEMU monitor responses as Match Objects (more flexibility for future uses) 2014-12-29 01:59:45 +03:00
c775b05d33 Dynamically configure network connections of running QEMU VMs 2014-12-29 01:43:56 +03:00
9cedb1cc99 Add sleep after write to QEMU monitor (to work with new QEMU versions) 2014-12-27 12:44:10 +03:00
1f615430ae Checks for broken symbolic links. 2014-12-24 17:19:42 -07:00
2de1a97076 Merge remote-tracking branch 'origin/master' 2014-12-24 15:47:07 -07:00
747c0ee7a3 More checks on minimum RAM for IOS routers and updates default values to match the latest IOS image requirements. 2014-12-24 15:46:59 -07:00
d9f44edcaf Fixes incompatibility for IOS startup-config and private-config paths created on Windows and loaded from a project on Linux/Mac OS X. 2014-12-23 15:29:27 -07:00
e9991affc3 Merge pull request #60 from shmygov/suspendqemu
QEMU VM suspend/resume and reload
2014-12-23 12:27:18 -07:00
84511d7b39 QEMU VM suspend/resume and reload 2014-12-23 14:42:58 +03:00
3590985c07 Add QEMU monitor port to control running QEMU VMs 2014-12-23 14:42:58 +03:00
7785c03eac Ignore Unicode errors when executing vboxmanage. 2014-12-19 15:47:12 -07:00
7f37f649da Catch OSError exception for subprocess calls. 2014-12-11 12:15:24 -07:00
acb5103119 Merge remote-tracking branch 'origin/master' 2014-12-09 19:17:53 -07:00
823344bf44 Get Windows interface list from the registry if the COM service fails. 2014-12-09 19:17:25 -07:00
ecf7ebc26b Merge pull request #58 from dlintott/fix_gns3-gui_158
Remove extra line that was over-writing the auto Idle-PC value
2014-12-09 16:16:05 -07:00
317a37147e Remove extra line that was over-writing the auto Idle-PC value
Fixes GNS3/gns3-gui#158
2014-12-09 19:39:22 +00:00
0f238c5bb7 Merge pull request #54 from planctechnologies/dev
Qemu cloud improvements
2014-12-09 12:36:38 -07:00
93934cf554 Merge pull request #55 from dlintott/fix_broken_test
Update test with correct hypervisor IP
2014-12-09 12:36:01 -07:00
6a81390808 Update test with correct hypervisor IP 2014-12-09 13:49:45 +00:00
f1503ae655 Handle initrd and kernel paths in qemu 2014-12-08 20:14:55 -07:00
20592f72c0 Fixes UID bit test. 2014-12-08 14:54:06 -07:00
00f49e337d Merge branch 'master' into dev 2014-12-08 14:22:31 -07:00
fc04a94dce Bump version to 1.2.2.dev1 2014-12-05 13:53:30 -07:00
9ec1373d36 dms terminates instance if id matches 2014-11-24 16:49:01 -07:00
b220cffcf4 Updating dms to look for cloud_region instead of region 2014-11-24 16:40:55 -07:00
7ef8dd794a Copy updated cloud/ module from gns3-gui 2014-11-24 16:24:57 -07:00
b9a4531544 Ensuring dead_time is an integer 2014-11-24 15:35:09 -07:00
cfdff773c4 deadtime -> dead_time 2014-11-24 15:08:58 -07:00
ef8c6b603c Add debugging to deadman process 2014-11-24 14:32:06 -07:00
465 changed files with 32968 additions and 22533 deletions

2
.coveragerc Normal file
View File

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

11
.gitignore vendored
View File

@ -1,5 +1,8 @@
*.py[cod]
#py.test
.cache
# C extensions
*.so
@ -24,6 +27,7 @@ pip-log.txt
# Unit test / coverage reports
.coverage
.tox
.cache
nosetests.xml
# Translations
@ -40,3 +44,10 @@ nosetests.xml
# Gedit Backup Files
*~
#Documentation build
docs/_build
#VPCS
vpcs.hist
startup.vpcs

View File

@ -1,29 +1,14 @@
language: python
env:
- TOX_ENV=py33
- TOX_ENV=py34
before_install:
- sudo add-apt-repository ppa:gns3/ppa -y
- sudo apt-get update -q
python:
- '3.4'
- '3.5'
sudo: false
cache: pip
install:
- pip install tox
- sudo apt-get install vpcs dynamips
- python setup.py install
- pip install -rdev-requirements.txt
- pip install coveralls
script:
- tox -e $TOX_ENV
branches:
only:
- master
notifications:
email: false
irc:
channels:
- "chat.freenode.net#gns3"
on_success: change
on_failure: always
- py.test -v -s tests --cov gns3server --cov-report term-missing
after_success:
- coveralls

View File

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

586
CHANGELOG Normal file
View File

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

50
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,50 @@
# Contributing to GNS3
We welcome contributions and bugs reports from everyone.
We are friendly so don't be afraid to ask questions.
## Bug reports
Before reporting an issue:
* check our website over at https://gns3.com
* check if an issue already exists on https://github.com/GNS3/gns3-gui
* check if an issue already exists on https://github.com/GNS3/gns3-server
Please post on our community website if you are unsure you found a bug,
you will get faster support and be able to exchange with more users.
If you are unsure which project you should create an issue for, just do
it on https://github.com/GNS3/gns3-gui we will take care of the triage.
For bugs specific to the GNS3 VM, please report on https://github.com/GNS3/gns3-vm
## Asking for new features
The best is to start a discussion on the community website in order to get feedback
from the whole community.
## Contributing code
We welcome code contribution from everyone including beginners.
Don't be afraid to submit a half finished or mediocre contribution and we will help you.
Don't hesitate to share your plans before starting working on a contribution, we can help
you to find the best approach.
### Contributors License Agreements
We at GNS3 are eager to work with you. For small changeslittle bugfixes, correcting typos, and the likeplease just submit pull requests to any of our projects. For larger changes, though, we have to ask you to jump through a little hoop.
In particular, in order for us to accept any major patches from you, you will have to electronically sign a statement that indicates two things:
- You are willingly licensing your contributions under the terms of the open source license of the project that youre contributing to.
- You are legally able to license your contributions as stated.
The reason we do this is to ensure, to the extent possible, that we dont “taint” the projects we manage with contributions that turn out to be improper. This protects everyone who wants to use the projects, including you!
More information there: https://github.com/GNS3/cla
### Pull requests
Creating a pull request is the easiest way to contribute code. Do not hesitate to create one early when contributing for new feature in order to get our feedback.

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]

View File

@ -1,13 +1,41 @@
GNS3-server
===========
.. image:: https://travis-ci.org/GNS3/gns3-server.svg?branch=master
:target: https://travis-ci.org/GNS3/gns3-server
.. image:: https://img.shields.io/pypi/v/gns3-server.svg
:target: https://pypi.python.org/pypi/gns3-server
This is the GNS3 server repository.
The GNS3 server manages emulators such as Dynamips, VirtualBox or Qemu/KVM.
Clients like the GNS3 GUI controls the server using a JSON-RPC API over Websockets.
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 go here.
1.x (1.4 for example)
********
Next major release
*Never* use this branch for production. Pull requests for major new features go here.
Linux
-----
GNS3 is perhaps packaged for your distribution:
* Gentoo: https://packages.gentoo.org/package/net-misc/gns3-server
Linux (Debian based)
--------------------
@ -16,20 +44,17 @@ You must be connected to the Internet in order to install the dependencies.
Dependencies:
- Python 3.3 or above
- Setuptools
- PyZMQ library
- Netifaces library
- Tornado
- Jsonschema
- Python 3.4 or above
- aiohttp
- setuptools
- psutil
- jsonschema
The following commands will install some of these dependencies:
.. code:: bash
sudo apt-get install python3-setuptools
sudo apt-get install python3-zmq
sudo apt-get install python3-netifaces
Finally these commands will install the server as well as the rest of the dependencies:
@ -39,10 +64,89 @@ 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 (Unix only)
**************************
You will found init sample script for various systems
inside the init directory.
Usefull options:
* --daemon: start process as a daemon
* --log logfile: store output in a logfile
* --pid pidfile: store the pid of the running process in a file and prevent double execution
All the init script require the creation of a GNS3 user. You can change it to another user.
.. code:: bash
sudo adduser gns3
upstart
~~~~~~~
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
systemd
~~~~~~~~
You need to copy init/gns3.service.systemd to /lib/systemd/system/gns3.service
.. code:: bash
sudo chown root /lib/systemd/system/gns3.service
sudo systemctl start gns3
Windows
-------
Please use our all-in-one installer.
Please use our `all-in-one installer <https://community.gns3.com/community/software/download>`_ to install the stable build.
If you install via source you need to first install:
- Python (3.3 or above) - https://www.python.org/downloads/windows/
- Pywin32 - https://sourceforge.net/projects/pywin32/
Then you can call
.. code:: bash
python setup.py install
to install the remaining dependencies.
To run the tests, you also need to call
.. code:: bash
pip install pytest pytest-capturelog
before actually running the tests with
.. code:: bash
python setup.py test
or with
.. code:: bash
py.test -v
Mac OS X
--------
@ -61,4 +165,44 @@ and homebrew: http://brew.sh/.
python3 setup.py install
gns3server
SSL
---
If you want enable SSL support on GNS3 you can generate a self signed certificate:
.. code:: bash
bash gns3server/cert_utils/create_cert.sh
This command will put the files in ~/.config/GNS3/ssl
After you can start the server in SSL mode with:
.. code:: bash
python gns3server/main.py --certfile ~/.config/GNS3/ssl/server.cert --certkey ~/.config/GNS3/ssl/server.key --ssl
Or in your gns3_server.conf by adding in the Server section:
.. code:: ini
[Server]
certfile=/Users/noplay/.config/GNS3/ssl/server.cert
certkey=/Users/noplay/.config/GNS3/ssl/server.key
ssl=True
Running tests
*************
Just run:
.. code:: bash
py.test -vv
If you want test coverage:
.. code:: bash
py.test --cov=gns3server

View File

@ -1,5 +0,0 @@
export OS_USERNAME=username
export OS_PASSWORD=""
export OS_TENANT_NAME=000000
export OS_AUTH_URL=https://identity.api.rackspacecloud.com/v2.0/
export OS_REGION_NAME=ord

View File

@ -1,243 +0,0 @@
""" Create a new GNS3 Server Rackspace image with the provided options. """
import argparse
import getpass
import os
import sys
import uuid
from fabric.api import env
from fabric.contrib.files import exists
from github import Github
from novaclient.v1_1 import client
from string import Template
from time import sleep
POLL_SEC = 20
GNS3_REPO = 'gns3/gns3-server'
PLANC_REPO = 'planctechnologies/gns3-server'
OS_AUTH_URL = 'https://identity.api.rackspacecloud.com/v2.0/'
UBUNTU_BASE_ID = '5cc098a5-7286-4b96-b3a2-49f4c4f82537'
def main():
"""
Get the user options and perform the image creation.
Creates a new instance, installs the required software, creates an image
from the instance, and then deletes the instance.
"""
github = Github()
args = get_cli_args()
if args.username:
username = args.username
else:
if 'OS_USERNAME' in os.environ:
username = os.environ.get('OS_USERNAME')
else:
username = raw_input('Enter Rackspace username: ')
if args.password:
password = args.password
else:
if 'OS_PASSWORD' in os.environ:
password = os.environ.get('OS_PASSWORD')
else:
password = getpass.getpass('Enter Rackspace password: ')
if args.tenant:
tenant = args.tenant
else:
if 'OS_TENANT_NAME' in os.environ:
tenant = os.environ.get('OS_TENANT_NAME')
else:
tenant = raw_input('Enter Rackspace Tenant ID: ')
if args.region:
region = args.region
else:
if 'OS_REGION_NAME' in os.environ:
region = os.environ.get('OS_REGION_NAME')
else:
region = raw_input('Enter Rackspace Region Name: ')
if args.source == 'release':
# get the list of releases, present them to the user, save the url
repo = github.get_repo(GNS3_REPO)
keyword = "tag"
i = 1
branch_opts = {}
for tag in repo.get_tags():
branch_opts[i] = tag.name
i += 1
elif args.source == 'dev':
# get the list of dev branches, present them to the user, save the url
repo = github.get_repo(PLANC_REPO)
keyword = "branch"
i = 1
branch_opts = {}
for branch in repo.get_branches():
branch_opts[i] = branch.name
i += 1
prompt_text = "Select a %s" % keyword
selected_branch = prompt_user_select(branch_opts, prompt_text)
if args.image_name:
image_name = args.image_name
else:
image_name = "gns3-%s-%s-%s" % (args.source, selected_branch,
uuid.uuid4().hex[0:4])
if args.on_boot:
on_boot = True
else:
on_boot = False
startup_script = create_script(repo.svn_url, selected_branch, on_boot)
server_name = uuid.uuid4().hex
instance = create_instance(username, password, tenant, region, server_name,
startup_script)
passwd = uuid.uuid4().hex
instance.change_password(passwd)
# wait for the password change to be processed. Continuing while
# a password change is processing will cause image creation to fail.
sleep(POLL_SEC*6)
env.host_string = str(instance.accessIPv4)
env.user = "root"
env.password = passwd
sys.stdout.write("Installing software...")
sys.stdout.flush()
while True:
if exists('/tmp/gns-install-complete'):
break
sleep(POLL_SEC)
sys.stdout.write(".")
sys.stdout.flush()
print("Done.")
image_id = create_image(username, password, tenant, region, instance,
image_name)
instance.delete()
def prompt_user_select(opts, text="Please select"):
""" Ask the user to select an option from the provided list. """
print("%s" % text)
print("=" * len(text))
for o in opts:
print("(%s)\t%s" % (o, opts[o]))
while True:
selected = raw_input("Select: ")
try:
return opts[int(selected)]
except (KeyError, ValueError):
print("Invalid selection. Try again")
def create_instance(username, password, tenant, region, server_name, script,
auth_url=OS_AUTH_URL):
""" Create a new instance. """
sys.stdout.write("Creating instance...")
sys.stdout.flush()
nc = client.Client(username, password, tenant, auth_url,
region_name=region)
server = nc.servers.create(server_name, UBUNTU_BASE_ID, 2,
config_drive=True, userdata=script)
while True:
server = nc.servers.get(server.id)
if server.status == 'ACTIVE':
break
sleep(POLL_SEC)
sys.stdout.write(".")
sys.stdout.flush()
print("Done.")
return server
def create_script(git_url, git_branch, on_boot):
""" Create the start-up script. """
script_template = Template(open('script_template', 'r').read())
params = {'git_url': git_url, 'git_branch': git_branch, 'rc_local': ''}
if on_boot:
params['rc_local'] = "echo '/usr/local/bin/gns3-server' >> /etc/rc.local"
return script_template.substitute(params)
def create_image(username, password, tenant, region, server,
image_name, auth_url=OS_AUTH_URL):
""" Create a Rackspace image based on the server instance. """
nc = client.Client(username, password, tenant, auth_url,
region_name=region)
sys.stdout.write("Creating image %s..." % image_name)
sys.stdout.flush()
image_id = server.create_image(image_name)
while True:
server = nc.servers.get(server.id)
if getattr(server, 'OS-EXT-STS:task_state') is None:
break
sleep(POLL_SEC)
sys.stdout.write(".")
sys.stdout.flush()
print("Done.")
return image_id
def get_cli_args():
""" Parse the CLI input. """
parser = argparse.ArgumentParser(
description='Create a new GNS3 image',
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument(
'--rackspace_username', dest='username', action='store')
parser.add_argument(
'--rackspace_password', dest='password', action='store')
parser.add_argument(
'--rackspace_tenant', dest='tenant', action='store')
parser.add_argument(
'--rackspace_region', dest='region', action='store')
parser.add_argument(
'--source', dest='source', action='store', choices=['release', 'dev'],
default='release', help='specify the gns3-server source location')
parser.add_argument(
'--branch', dest='branch', action='store',
help='specify the branch/tag')
parser.add_argument(
'--start-on-boot', dest='on_boot', action='store_true',
default=False, help='start the GNS3-server when the image boots')
parser.add_argument(
'--image-name', dest='image_name', action='store',
help='the name of the image to be created')
return parser.parse_args()
if __name__ == "__main__":
main()

View File

@ -1,3 +0,0 @@
fabric
pygithub
python-novaclient

View File

@ -1,10 +0,0 @@
create_image.py:
- uses fabric, which doesn't support Python 3
- prompts for Rackspace credentials if environment variables not set
- see .novarc for example env variables
- note that the novaclient library uses the Rackspace password and -not-
the API key
- use '--help' for help with arguments

View File

@ -1,19 +0,0 @@
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
apt-get -y update
apt-get -o Dpkg::Options::="--force-confnew" --force-yes -fuy dist-upgrade
apt-get -y install git
apt-get -y install python3-setuptools
apt-get -y install python3-netifaces
apt-get -y install python3-pip
mkdir -p /opt/gns3
pushd /opt/gns3
git clone --branch ${git_branch} ${git_url}
cd gns3-server
pip3 install -r dev-requirements.txt
python3 ./setup.py install
${rc_local}
touch /tmp/gns-install-complete

View File

@ -1,4 +1,8 @@
-rrequirements.txt
pytest
ws4py
sphinx==1.2.3
pytest==2.8.2
pep8==1.5.7
pytest-capturelog==0.7
pytest-cov==2.2.0
pytest-timeout==0.5

177
docs/Makefile Normal file
View File

@ -0,0 +1,177 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/GNS3.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/GNS3.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/GNS3"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/GNS3"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

View File

@ -0,0 +1,14 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80 HTTP/1.1
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,72 @@
curl -i -X GET 'http://localhost:8000/v1/interfaces'
GET /v1/interfaces HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 1012
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/interfaces
[
{
"id": "bridge0",
"ip_address": "",
"name": "bridge0"
},
{
"id": "en0",
"ip_address": "",
"name": "en0"
},
{
"id": "en1",
"ip_address": "192.168.84.114",
"name": "en1"
},
{
"id": "en2",
"ip_address": "",
"name": "en2"
},
{
"id": "fw0",
"ip_address": "",
"name": "fw0"
},
{
"id": "lo0",
"ip_address": "127.0.0.1",
"name": "lo0"
},
{
"id": "p2p0",
"ip_address": "",
"name": "p2p0"
},
{
"id": "vboxnet0",
"ip_address": "172.16.43.1",
"name": "vboxnet0"
},
{
"id": "vboxnet1",
"ip_address": "192.168.59.3",
"name": "vboxnet1"
},
{
"id": "vboxnet2",
"ip_address": "",
"name": "vboxnet2"
},
{
"id": "vboxnet3",
"ip_address": "192.168.99.1",
"name": "vboxnet3"
}
]

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/config/reload' -d '{}'
POST /v1/config/reload HTTP/1.1
{}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/config/reload

View File

@ -0,0 +1,24 @@
curl -i -X POST 'http://localhost:8000/v1/projects' -d '{"name": "test"}'
POST /v1/projects HTTP/1.1
{
"name": "test"
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn/054e6ecb-1e9d-4c74-ad08-1209264bd96d",
"project_id": "054e6ecb-1e9d-4c74-ad08-1209264bd96d",
"temporary": false
}

View File

@ -0,0 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/close HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/close

View File

@ -0,0 +1,14 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/commit HTTP/1.1
{}
HTTP/1.1 204
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/commit

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,18 @@
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
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 25
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/ports/udp
{
"udp_port": 10000
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,34 @@
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 /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms HTTP/1.1
{
"linked_clone": false,
"name": "VM1",
"vmname": "VM1"
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 409
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2001,
"enable_remote_console": false,
"headless": false,
"name": "VM1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"ram": 0,
"use_any_adapter": false,
"vm_directory": null,
"vm_id": "39cc5964-d0be-487b-9f0c-8fbea600e452",
"vmname": "VM1"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,27 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms' -d '{"name": "PC TEST 1"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms HTTP/1.1
{
"name": "PC TEST 1"
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 422
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms
{
"console": 2010,
"name": "PC TEST 1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpqqnauky9/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/d1808514-893b-4aa5-86c2-c4dea88ff895",
"vm_id": "d1808514-893b-4aa5-86c2-c4dea88ff895"
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,22 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"}'
PUT /v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74 HTTP/1.1
{
"name": "second_name",
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"
}
HTTP/1.1 403
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 100
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}
{
"message": "You are not allowed to modify the project directory location",
"status": 403
}

View File

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

View File

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

View File

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

View File

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

8
docs/api/v1/config.rst Normal file
View File

@ -0,0 +1,8 @@
Config
---------------------
.. toctree::
:glob:
:maxdepth: 2
config/*

View File

@ -0,0 +1,20 @@
/v1/config/reload
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/config/reload
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Check if version is the same as the server
Response status codes
**********************
- **201**: Config reload
- **403**: Config reload refused
Sample session
***************
.. literalinclude:: ../../examples/post_configreload.txt

View File

@ -0,0 +1,8 @@
Dynamips device
---------------------
.. toctree::
:glob:
:maxdepth: 2
dynamips_device/*

View File

@ -0,0 +1,43 @@
/v1/projects/{project_id}/dynamips/devices
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/devices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new Dynamips device 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>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>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>device_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips device instance name</td> </tr>
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
</table>

View File

@ -0,0 +1,107 @@
/v1/projects/{project_id}/dynamips/devices/{device_id}
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
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>device_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips device instance name</td> </tr>
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
</table>
PUT /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Update a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
Response status codes
**********************
- **200**: Instance updated
- **400**: Invalid request
- **404**: Instance doesn't exist
- **409**: Conflict
Input
*******
Types
+++++++++
EthernetSwitchPort
^^^^^^^^^^^^^^^^^^^^^^
Ethernet switch port
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>ethertype</td> <td> </td> <td>enum</td> <td>Possible values: , 0x8100, 0x88A8, 0x9100, 0x9200</td> </tr>
<tr><td>port</td> <td>&#10004;</td> <td>integer</td> <td>Port number</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: access, dot1q, qinq</td> </tr>
<tr><td>vlan</td> <td>&#10004;</td> <td>integer</td> <td>VLAN number</td> </tr>
</table>
Body
+++++++++
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Dynamips device instance name</td> </tr>
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>device_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips device instance name</td> </tr>
<tr><td>ports</td> <td> </td> <td>array</td> <td></td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
</table>
DELETE /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Delete a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Instance deleted

View File

@ -0,0 +1,151 @@
/v1/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/nio
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/nio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Add a NIO to a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
Response status codes
**********************
- **400**: Invalid request
- **201**: NIO created
- **404**: Instance doesn't exist
Input
*******
Types
+++++++++
Ethernet
^^^^^^^^^^^^^^^^^^^^^^
Generic Ethernet Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>ethernet_device</td> <td>&#10004;</td> <td>string</td> <td>Ethernet device name e.g. eth0</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_generic_ethernet</td> </tr>
</table>
LinuxEthernet
^^^^^^^^^^^^^^^^^^^^^^
Linux Ethernet Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>ethernet_device</td> <td>&#10004;</td> <td>string</td> <td>Ethernet device name e.g. eth0</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_linux_ethernet</td> </tr>
</table>
NAT
^^^^^^^^^^^^^^^^^^^^^^
NAT Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_nat</td> </tr>
</table>
NULL
^^^^^^^^^^^^^^^^^^^^^^
NULL Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_null</td> </tr>
</table>
TAP
^^^^^^^^^^^^^^^^^^^^^^
TAP Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>tap_device</td> <td>&#10004;</td> <td>string</td> <td>TAP device name e.g. tap0</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_tap</td> </tr>
</table>
UDP
^^^^^^^^^^^^^^^^^^^^^^
UDP Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>lport</td> <td>&#10004;</td> <td>integer</td> <td>Local port</td> </tr>
<tr><td>rhost</td> <td>&#10004;</td> <td>string</td> <td>Remote host</td> </tr>
<tr><td>rport</td> <td>&#10004;</td> <td>integer</td> <td>Remote port</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_udp</td> </tr>
</table>
UNIX
^^^^^^^^^^^^^^^^^^^^^^
UNIX Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>local_file</td> <td>&#10004;</td> <td>string</td> <td>path to the UNIX socket file (local)</td> </tr>
<tr><td>remote_file</td> <td>&#10004;</td> <td>string</td> <td>path to the UNIX socket file (remote)</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_unix</td> </tr>
</table>
VDE
^^^^^^^^^^^^^^^^^^^^^^
VDE Network Input/Output
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>control_file</td> <td>&#10004;</td> <td>string</td> <td>path to the VDE control file</td> </tr>
<tr><td>local_file</td> <td>&#10004;</td> <td>string</td> <td>path to the VDE control file</td> </tr>
<tr><td>type</td> <td>&#10004;</td> <td>enum</td> <td>Possible values: nio_vde</td> </tr>
</table>
Body
+++++++++
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>mappings</td> <td> </td> <td>object</td> <td></td> </tr>
<tr><td>nio</td> <td>&#10004;</td> <td>UDP, Ethernet, LinuxEthernet, NAT, TAP, UNIX, VDE, NULL</td> <td></td> </tr>
<tr><td>port_settings</td> <td> </td> <td>object</td> <td>Ethernet switch</td> </tr>
</table>
DELETE /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/nio
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Remove a NIO from a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: NIO deleted

View File

@ -0,0 +1,31 @@
/v1/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/start_capture
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/start_capture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start a packet capture on a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
Response status codes
**********************
- **200**: Capture started
- **400**: Invalid request
- **404**: Instance doesn't exist
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>

View File

@ -0,0 +1,21 @@
/v1/projects/{project_id}/dynamips/devices/{device_id}/ports/{port_number:\d+}/stop_capture
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/devices/**{device_id}**/ports/**{port_number:\d+}**/stop_capture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stop a packet capture on a Dynamips device instance
Parameters
**********
- **device_id**: UUID for the instance
- **project_id**: UUID for the project
- **port_number**: Port on the device
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Capture stopped

View File

@ -0,0 +1,8 @@
Dynamips vm
---------------------
.. toctree::
:glob:
:maxdepth: 2
dynamips_vm/*

View File

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

View File

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

View File

@ -0,0 +1,123 @@
/v1/projects/{project_id}/dynamips/vms
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new Dynamips VM 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>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
<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>
<tr><td>dynamips_id</td> <td> </td> <td>integer</td> <td>ID to use with Dynamips</td> </tr>
<tr><td>exec_area</td> <td> </td> <td>integer</td> <td>exec area value</td> </tr>
<tr><td>idlemax</td> <td> </td> <td>integer</td> <td>idlemax value</td> </tr>
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td>&#10004;</td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
<tr><td>mmap</td> <td> </td> <td>boolean</td> <td>MMAP feature</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips VM instance name</td> </tr>
<tr><td>npe</td> <td> </td> <td>enum</td> <td>Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2</td> </tr>
<tr><td>nvram</td> <td> </td> <td>integer</td> <td>amount of NVRAM in KB</td> </tr>
<tr><td>platform</td> <td>&#10004;</td> <td>string</td> <td>platform</td> </tr>
<tr><td>power_supplies</td> <td> </td> <td>array</td> <td>Power supplies status</td> </tr>
<tr><td>private_config</td> <td> </td> <td>string</td> <td>path to the IOS private configuration file</td> </tr>
<tr><td>private_config_base64</td> <td> </td> <td>string</td> <td>private configuration base64 encoded</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>string</td> <td>Content of IOS private configuration file</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>amount of RAM in MB</td> </tr>
<tr><td>sensors</td> <td> </td> <td>array</td> <td>Temperature sensors</td> </tr>
<tr><td>slot0</td> <td> </td> <td></td> <td>Network module slot 0</td> </tr>
<tr><td>slot1</td> <td> </td> <td></td> <td>Network module slot 1</td> </tr>
<tr><td>slot2</td> <td> </td> <td></td> <td>Network module slot 2</td> </tr>
<tr><td>slot3</td> <td> </td> <td></td> <td>Network module slot 3</td> </tr>
<tr><td>slot4</td> <td> </td> <td></td> <td>Network module slot 4</td> </tr>
<tr><td>slot5</td> <td> </td> <td></td> <td>Network module slot 5</td> </tr>
<tr><td>slot6</td> <td> </td> <td></td> <td>Network module slot 6</td> </tr>
<tr><td>sparsemem</td> <td> </td> <td>boolean</td> <td>sparse memory feature</td> </tr>
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>string</td> <td>Content of IOS startup configuration file</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>Dynamips VM instance identifier</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic2</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>['integer', 'null']</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
<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>
<tr><td>dynamips_id</td> <td>&#10004;</td> <td>integer</td> <td>ID to use with Dynamips</td> </tr>
<tr><td>exec_area</td> <td> </td> <td>integer</td> <td>exec area value</td> </tr>
<tr><td>idlemax</td> <td> </td> <td>integer</td> <td>idlemax value</td> </tr>
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
<tr><td>mmap</td> <td> </td> <td>boolean</td> <td>MMAP feature</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips VM instance name</td> </tr>
<tr><td>npe</td> <td> </td> <td>enum</td> <td>Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2</td> </tr>
<tr><td>nvram</td> <td> </td> <td>integer</td> <td>amount of NVRAM in KB</td> </tr>
<tr><td>platform</td> <td> </td> <td>string</td> <td>platform</td> </tr>
<tr><td>power_supplies</td> <td> </td> <td>array</td> <td>Power supplies status</td> </tr>
<tr><td>private_config</td> <td> </td> <td>string</td> <td>path to the IOS private configuration file</td> </tr>
<tr><td>private_config_base64</td> <td> </td> <td>string</td> <td>private configuration base64 encoded</td> </tr>
<tr><td>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 in MB</td> </tr>
<tr><td>sensors</td> <td> </td> <td>array</td> <td>Temperature sensors</td> </tr>
<tr><td>slot0</td> <td> </td> <td></td> <td>Network module slot 0</td> </tr>
<tr><td>slot1</td> <td> </td> <td></td> <td>Network module slot 1</td> </tr>
<tr><td>slot2</td> <td> </td> <td></td> <td>Network module slot 2</td> </tr>
<tr><td>slot3</td> <td> </td> <td></td> <td>Network module slot 3</td> </tr>
<tr><td>slot4</td> <td> </td> <td></td> <td>Network module slot 4</td> </tr>
<tr><td>slot5</td> <td> </td> <td></td> <td>Network module slot 5</td> </tr>
<tr><td>slot6</td> <td> </td> <td></td> <td>Network module slot 6</td> </tr>
<tr><td>sparsemem</td> <td> </td> <td>boolean</td> <td>sparse memory feature</td> </tr>
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic2</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
</table>

View File

@ -0,0 +1,205 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get a Dynamips VM 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>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>['integer', 'null']</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
<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>
<tr><td>dynamips_id</td> <td>&#10004;</td> <td>integer</td> <td>ID to use with Dynamips</td> </tr>
<tr><td>exec_area</td> <td> </td> <td>integer</td> <td>exec area value</td> </tr>
<tr><td>idlemax</td> <td> </td> <td>integer</td> <td>idlemax value</td> </tr>
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
<tr><td>mmap</td> <td> </td> <td>boolean</td> <td>MMAP feature</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips VM instance name</td> </tr>
<tr><td>npe</td> <td> </td> <td>enum</td> <td>Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2</td> </tr>
<tr><td>nvram</td> <td> </td> <td>integer</td> <td>amount of NVRAM in KB</td> </tr>
<tr><td>platform</td> <td> </td> <td>string</td> <td>platform</td> </tr>
<tr><td>power_supplies</td> <td> </td> <td>array</td> <td>Power supplies status</td> </tr>
<tr><td>private_config</td> <td> </td> <td>string</td> <td>path to the IOS private configuration file</td> </tr>
<tr><td>private_config_base64</td> <td> </td> <td>string</td> <td>private configuration base64 encoded</td> </tr>
<tr><td>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 in MB</td> </tr>
<tr><td>sensors</td> <td> </td> <td>array</td> <td>Temperature sensors</td> </tr>
<tr><td>slot0</td> <td> </td> <td></td> <td>Network module slot 0</td> </tr>
<tr><td>slot1</td> <td> </td> <td></td> <td>Network module slot 1</td> </tr>
<tr><td>slot2</td> <td> </td> <td></td> <td>Network module slot 2</td> </tr>
<tr><td>slot3</td> <td> </td> <td></td> <td>Network module slot 3</td> </tr>
<tr><td>slot4</td> <td> </td> <td></td> <td>Network module slot 4</td> </tr>
<tr><td>slot5</td> <td> </td> <td></td> <td>Network module slot 5</td> </tr>
<tr><td>slot6</td> <td> </td> <td></td> <td>Network module slot 6</td> </tr>
<tr><td>sparsemem</td> <td> </td> <td>boolean</td> <td>sparse memory feature</td> </tr>
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic2</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
</table>
PUT /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Update a Dynamips VM 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>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>integer</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
<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>
<tr><td>exec_area</td> <td> </td> <td>integer</td> <td>exec area value</td> </tr>
<tr><td>idlemax</td> <td> </td> <td>integer</td> <td>idlemax value</td> </tr>
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
<tr><td>mmap</td> <td> </td> <td>boolean</td> <td>MMAP feature</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Dynamips VM instance name</td> </tr>
<tr><td>npe</td> <td> </td> <td>enum</td> <td>Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2</td> </tr>
<tr><td>nvram</td> <td> </td> <td>integer</td> <td>amount of NVRAM in KB</td> </tr>
<tr><td>platform</td> <td> </td> <td>string</td> <td>platform</td> </tr>
<tr><td>power_supplies</td> <td> </td> <td>array</td> <td>Power supplies status</td> </tr>
<tr><td>private_config_base64</td> <td> </td> <td>string</td> <td>private configuration base64 encoded</td> </tr>
<tr><td>private_config_content</td> <td> </td> <td>string</td> <td>Content of IOS private configuration file</td> </tr>
<tr><td>ram</td> <td> </td> <td>integer</td> <td>amount of RAM in MB</td> </tr>
<tr><td>sensors</td> <td> </td> <td>array</td> <td>Temperature sensors</td> </tr>
<tr><td>slot0</td> <td> </td> <td></td> <td>Network module slot 0</td> </tr>
<tr><td>slot1</td> <td> </td> <td></td> <td>Network module slot 1</td> </tr>
<tr><td>slot2</td> <td> </td> <td></td> <td>Network module slot 2</td> </tr>
<tr><td>slot3</td> <td> </td> <td></td> <td>Network module slot 3</td> </tr>
<tr><td>slot4</td> <td> </td> <td></td> <td>Network module slot 4</td> </tr>
<tr><td>slot5</td> <td> </td> <td></td> <td>Network module slot 5</td> </tr>
<tr><td>slot6</td> <td> </td> <td></td> <td>Network module slot 6</td> </tr>
<tr><td>sparsemem</td> <td> </td> <td>boolean</td> <td>sparse memory feature</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>string</td> <td>Content of IOS startup configuration file</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic2</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
</table>
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>auto_delete_disks</td> <td> </td> <td>boolean</td> <td>automatically delete nvram and disk files</td> </tr>
<tr><td>aux</td> <td> </td> <td>['integer', 'null']</td> <td>auxiliary console TCP port</td> </tr>
<tr><td>chassis</td> <td> </td> <td>string</td> <td>router chassis model</td> </tr>
<tr><td>clock_divisor</td> <td> </td> <td>integer</td> <td>clock divisor</td> </tr>
<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>
<tr><td>dynamips_id</td> <td>&#10004;</td> <td>integer</td> <td>ID to use with Dynamips</td> </tr>
<tr><td>exec_area</td> <td> </td> <td>integer</td> <td>exec area value</td> </tr>
<tr><td>idlemax</td> <td> </td> <td>integer</td> <td>idlemax value</td> </tr>
<tr><td>idlepc</td> <td> </td> <td>string</td> <td>Idle-PC value</td> </tr>
<tr><td>idlesleep</td> <td> </td> <td>integer</td> <td>idlesleep value</td> </tr>
<tr><td>image</td> <td> </td> <td>string</td> <td>path to the IOS image</td> </tr>
<tr><td>image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>checksum of the IOS image</td> </tr>
<tr><td>iomem</td> <td> </td> <td>integer</td> <td>I/O memory percentage</td> </tr>
<tr><td>mac_addr</td> <td> </td> <td>string</td> <td>base MAC address</td> </tr>
<tr><td>midplane</td> <td> </td> <td>enum</td> <td>Possible values: std, vxr</td> </tr>
<tr><td>mmap</td> <td> </td> <td>boolean</td> <td>MMAP feature</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>Dynamips VM instance name</td> </tr>
<tr><td>npe</td> <td> </td> <td>enum</td> <td>Possible values: npe-100, npe-150, npe-175, npe-200, npe-225, npe-300, npe-400, npe-g2</td> </tr>
<tr><td>nvram</td> <td> </td> <td>integer</td> <td>amount of NVRAM in KB</td> </tr>
<tr><td>platform</td> <td> </td> <td>string</td> <td>platform</td> </tr>
<tr><td>power_supplies</td> <td> </td> <td>array</td> <td>Power supplies status</td> </tr>
<tr><td>private_config</td> <td> </td> <td>string</td> <td>path to the IOS private configuration file</td> </tr>
<tr><td>private_config_base64</td> <td> </td> <td>string</td> <td>private configuration base64 encoded</td> </tr>
<tr><td>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 in MB</td> </tr>
<tr><td>sensors</td> <td> </td> <td>array</td> <td>Temperature sensors</td> </tr>
<tr><td>slot0</td> <td> </td> <td></td> <td>Network module slot 0</td> </tr>
<tr><td>slot1</td> <td> </td> <td></td> <td>Network module slot 1</td> </tr>
<tr><td>slot2</td> <td> </td> <td></td> <td>Network module slot 2</td> </tr>
<tr><td>slot3</td> <td> </td> <td></td> <td>Network module slot 3</td> </tr>
<tr><td>slot4</td> <td> </td> <td></td> <td>Network module slot 4</td> </tr>
<tr><td>slot5</td> <td> </td> <td></td> <td>Network module slot 5</td> </tr>
<tr><td>slot6</td> <td> </td> <td></td> <td>Network module slot 6</td> </tr>
<tr><td>sparsemem</td> <td> </td> <td>boolean</td> <td>sparse memory feature</td> </tr>
<tr><td>startup_config</td> <td> </td> <td>string</td> <td>path to the IOS startup configuration file</td> </tr>
<tr><td>startup_config_base64</td> <td> </td> <td>string</td> <td>startup configuration base64 encoded</td> </tr>
<tr><td>system_id</td> <td> </td> <td>string</td> <td>system ID</td> </tr>
<tr><td>vm_directory</td> <td> </td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>Dynamips router instance UUID</td> </tr>
<tr><td>wic0</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic1</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
<tr><td>wic2</td> <td> </td> <td></td> <td>Network module WIC slot 0</td> </tr>
</table>
DELETE /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Delete a Dynamips VM 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

View File

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

View File

@ -0,0 +1,32 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/start_capture
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/start_capture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start a packet capture on a Dynamips VM instance
Parameters
**********
- **adapter_number**: Adapter to start a packet capture
- **port_number**: Port on the adapter
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **200**: Capture started
- **400**: Invalid request
- **404**: Instance doesn't exist
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>

View File

@ -0,0 +1,22 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/adapters/{adapter_number:\d+}/ports/{port_number:\d+}/stop_capture
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/adapters/**{adapter_number:\d+}**/ports/**{port_number:\d+}**/stop_capture
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stop a packet capture on a Dynamips VM instance
Parameters
**********
- **adapter_number**: Adapter to stop a packet capture
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
**********************
- **400**: Invalid request
- **404**: Instance doesn't exist
- **204**: Capture stopped

View File

@ -0,0 +1,15 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/auto_idlepc
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/auto_idlepc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the idlepc proposals
Response status codes
**********************
- **200**: Best Idle-pc value found
- **400**: Invalid request
- **404**: Instance doesn't exist

View File

@ -0,0 +1,25 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/configs
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/configs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the startup and private configs content
Response status codes
**********************
- **200**: Configs 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>private_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the private configuration file</td> </tr>
<tr><td>startup_config_content</td> <td> </td> <td>['string', 'null']</td> <td>Content of the startup configuration file</td> </tr>
</table>

View File

@ -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

View File

@ -0,0 +1,15 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/idlepc_proposals
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/idlepc_proposals
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Retrieve the idlepc proposals
Response status codes
**********************
- **200**: Idle-PCs retrieved
- **400**: Invalid request
- **404**: Instance doesn't exist

View File

@ -0,0 +1,20 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/reload
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/reload
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Reload a Dynamips VM 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

View File

@ -0,0 +1,20 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/resume
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/resume
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Resume a suspended Dynamips VM 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 resumed

View File

@ -0,0 +1,20 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/start
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/start
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start a Dynamips VM 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

View File

@ -0,0 +1,20 @@
/v1/projects/{project_id}/dynamips/vms/{vm_id}/stop
----------------------------------------------------------------------------------------------------------------------
.. contents::
POST /v1/projects/**{project_id}**/dynamips/vms/**{vm_id}**/stop
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Stop a Dynamips VM 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

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