1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-24 15:58:08 +00:00

Merge branch '1.4' into 1.5

This commit is contained in:
Julien Duponchelle 2016-01-06 14:35:48 +01:00
commit 1f756c0d4f
88 changed files with 512 additions and 536 deletions

View File

@ -1,5 +1,23 @@
# Change Log
## 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.

View File

@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}

View File

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/468f944e-e195-4a5d-b192-8c954f46d028'
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/468f944e-e195-4a5d-b192-8c954f46d028 HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/0813062d-a796-44ef-a5ed-e690c633012e HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}

View File

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/85c30dd1-bb4f-4826-aa67-74574ffc400a/adapters/1/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8759140f-eb6f-4f3b-9a7f-86c79ec747b9/adapters/1/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/85c30dd1-bb4f-4826-aa67-74574ffc400a/adapters/1/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/8759140f-eb6f-4f3b-9a7f-86c79ec747b9/adapters/1/ports/0/nio HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/d18deaf3-f59a-423d-8de6-0fab7b3ac21e'
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/d18deaf3-f59a-423d-8de6-0fab7b3ac21e HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/1b1a72b7-97ea-4598-8c02-2edc285f7987 HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}

View File

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/56a77fc8-cdb4-417b-aacd-dc8cbd47736a/adapters/1/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b5c23125-ea22-4008-a89e-72565ae9f746/adapters/1/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/56a77fc8-cdb4-417b-aacd-dc8cbd47736a/adapters/1/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b5c23125-ea22-4008-a89e-72565ae9f746/adapters/1/ports/0/nio HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/1e9000cf-f12d-48d7-8d17-814c048fd2dd/adapters/0/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3f79083e-3da8-433e-9e9b-fe72a602ab4e/adapters/0/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/1e9000cf-f12d-48d7-8d17-814c048fd2dd/adapters/0/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/3f79083e-3da8-433e-9e9b-fe72a602ab4e/adapters/0/ports/0/nio HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/c8f5fb77-a38c-44dc-8cc3-effc463c96b4'
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/c8f5fb77-a38c-44dc-8cc3-effc463c96b4 HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6f9f4ab8-1b77-4eee-b0fb-e8d299b843a7 HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}

View File

@ -1,6 +1,6 @@
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/01e74a7c-c765-4273-bef3-fdfe7cc1ddfa/adapters/0/ports/0/nio'
curl -i -X DELETE 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6666f3a7-d805-4572-a35c-bc15213f0b52/adapters/0/ports/0/nio'
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/01e74a7c-c765-4273-bef3-fdfe7cc1ddfa/adapters/0/ports/0/nio HTTP/1.1
DELETE /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/6666f3a7-d805-4572-a35c-bc15213f0b52/adapters/0/ports/0/nio HTTP/1.1
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

@ -7,27 +7,17 @@ GET /v1/interfaces HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 6181
CONTENT-LENGTH: 1012
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/interfaces
[
{
"id": "lo0",
"ip_address": "127.0.0.1",
"name": "lo0"
},
{
"id": "gif0",
"id": "bridge0",
"ip_address": "",
"name": "gif0"
},
{
"id": "stf0",
"ip_address": "",
"name": "stf0"
"name": "bridge0"
},
{
"id": "en0",
@ -39,34 +29,34 @@ X-ROUTE: /v1/interfaces
"ip_address": "192.168.84.114",
"name": "en1"
},
{
"id": "en2",
"ip_address": "",
"name": "en2"
},
{
"id": "fw0",
"ip_address": "",
"name": "fw0"
},
{
"id": "en2",
"ip_address": "",
"name": "en2"
"id": "lo0",
"ip_address": "127.0.0.1",
"name": "lo0"
},
{
"id": "p2p0",
"ip_address": "",
"name": "p2p0"
},
{
"id": "bridge0",
"ip_address": "",
"name": "bridge0"
},
{
"id": "vboxnet0",
"ip_address": "",
"ip_address": "172.16.43.1",
"name": "vboxnet0"
},
{
"id": "vboxnet1",
"ip_address": "",
"ip_address": "192.168.59.3",
"name": "vboxnet1"
},
{
@ -78,255 +68,5 @@ X-ROUTE: /v1/interfaces
"id": "vboxnet3",
"ip_address": "192.168.99.1",
"name": "vboxnet3"
},
{
"id": "vmnet1",
"ip_address": "172.16.16.1",
"name": "vmnet1"
},
{
"id": "vmnet2",
"ip_address": "172.16.0.1",
"name": "vmnet2"
},
{
"id": "vmnet3",
"ip_address": "172.16.1.1",
"name": "vmnet3"
},
{
"id": "vmnet4",
"ip_address": "172.16.2.1",
"name": "vmnet4"
},
{
"id": "vmnet5",
"ip_address": "172.16.3.1",
"name": "vmnet5"
},
{
"id": "vmnet6",
"ip_address": "172.16.4.1",
"name": "vmnet6"
},
{
"id": "vmnet7",
"ip_address": "172.16.5.1",
"name": "vmnet7"
},
{
"id": "vmnet8",
"ip_address": "192.168.229.1",
"name": "vmnet8"
},
{
"id": "vmnet9",
"ip_address": "172.16.6.1",
"name": "vmnet9"
},
{
"id": "vmnet10",
"ip_address": "172.16.7.1",
"name": "vmnet10"
},
{
"id": "vmnet11",
"ip_address": "172.16.8.1",
"name": "vmnet11"
},
{
"id": "vmnet12",
"ip_address": "172.16.9.1",
"name": "vmnet12"
},
{
"id": "vmnet13",
"ip_address": "172.16.10.1",
"name": "vmnet13"
},
{
"id": "vmnet14",
"ip_address": "172.16.11.1",
"name": "vmnet14"
},
{
"id": "vmnet15",
"ip_address": "172.16.12.1",
"name": "vmnet15"
},
{
"id": "vmnet16",
"ip_address": "172.16.13.1",
"name": "vmnet16"
},
{
"id": "vmnet17",
"ip_address": "172.16.14.1",
"name": "vmnet17"
},
{
"id": "vmnet18",
"ip_address": "172.16.15.1",
"name": "vmnet18"
},
{
"id": "vmnet19",
"ip_address": "172.16.17.1",
"name": "vmnet19"
},
{
"id": "vmnet20",
"ip_address": "172.16.18.1",
"name": "vmnet20"
},
{
"id": "vmnet21",
"ip_address": "172.16.19.1",
"name": "vmnet21"
},
{
"id": "vmnet22",
"ip_address": "172.16.20.1",
"name": "vmnet22"
},
{
"id": "vmnet23",
"ip_address": "172.16.21.1",
"name": "vmnet23"
},
{
"id": "vmnet24",
"ip_address": "172.16.22.1",
"name": "vmnet24"
},
{
"id": "vmnet25",
"ip_address": "172.16.23.1",
"name": "vmnet25"
},
{
"id": "vmnet26",
"ip_address": "172.16.24.1",
"name": "vmnet26"
},
{
"id": "vmnet27",
"ip_address": "172.16.25.1",
"name": "vmnet27"
},
{
"id": "vmnet28",
"ip_address": "172.16.26.1",
"name": "vmnet28"
},
{
"id": "vmnet29",
"ip_address": "172.16.27.1",
"name": "vmnet29"
},
{
"id": "vmnet30",
"ip_address": "172.16.28.1",
"name": "vmnet30"
},
{
"id": "vmnet31",
"ip_address": "172.16.29.1",
"name": "vmnet31"
},
{
"id": "vmnet32",
"ip_address": "172.16.30.1",
"name": "vmnet32"
},
{
"id": "vmnet33",
"ip_address": "172.16.31.1",
"name": "vmnet33"
},
{
"id": "vmnet34",
"ip_address": "172.16.32.1",
"name": "vmnet34"
},
{
"id": "vmnet35",
"ip_address": "172.16.33.1",
"name": "vmnet35"
},
{
"id": "vmnet36",
"ip_address": "172.16.34.1",
"name": "vmnet36"
},
{
"id": "vmnet37",
"ip_address": "172.16.35.1",
"name": "vmnet37"
},
{
"id": "vmnet38",
"ip_address": "172.16.36.1",
"name": "vmnet38"
},
{
"id": "vmnet39",
"ip_address": "172.16.37.1",
"name": "vmnet39"
},
{
"id": "vmnet40",
"ip_address": "172.16.38.1",
"name": "vmnet40"
},
{
"id": "vmnet41",
"ip_address": "172.16.39.1",
"name": "vmnet41"
},
{
"id": "vmnet42",
"ip_address": "172.16.40.1",
"name": "vmnet42"
},
{
"id": "vmnet43",
"ip_address": "172.16.41.1",
"name": "vmnet43"
},
{
"id": "vmnet44",
"ip_address": "172.16.42.1",
"name": "vmnet44"
},
{
"id": "vmnet45",
"ip_address": "172.16.43.1",
"name": "vmnet45"
},
{
"id": "vmnet46",
"ip_address": "172.16.44.1",
"name": "vmnet46"
},
{
"id": "vmnet47",
"ip_address": "172.16.45.1",
"name": "vmnet47"
},
{
"id": "vmnet48",
"ip_address": "172.16.46.1",
"name": "vmnet48"
},
{
"id": "vmnet49",
"ip_address": "172.16.47.1",
"name": "vmnet49"
},
{
"id": "vmnet50",
"ip_address": "172.16.48.1",
"name": "vmnet50"
}
]

View File

@ -10,7 +10,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 72
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/iou/vms
[

View File

@ -10,22 +10,22 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 656
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects
[
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmppth7jfny",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmppth7jfny/00010203-0405-0607-0809-0a0b0c0d0e0f",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0f",
"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/tmppth7jfny",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmppth7jfny/00010203-0405-0607-0809-0a0b0c0d0e0b",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0b",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpmwnekqxo/00010203-0405-0607-0809-0a0b0c0d0e0f",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e0f",
"temporary": false
}
]

View File

@ -10,13 +10,13 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpytbnsctl",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpchvw88rg",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpytbnsctl/00010203-0405-0607-0809-0a0b0c0d0e02",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpchvw88rg/00010203-0405-0607-0809-0a0b0c0d0e02",
"project_id": "00010203-0405-0607-0809-0a0b0c0d0e02",
"temporary": false
}

View File

@ -10,7 +10,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 204
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/files
[

View File

@ -1,33 +1,33 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/1c801186-7a6d-4e92-9a10-9d61e8bdc25a'
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/1c801186-7a6d-4e92-9a10-9d61e8bdc25a HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/82f6e25c-6960-421d-9567-a7453642935b HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 721
CONTENT-LENGTH: 610
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
{
"console": 2000,
"console": 2001,
"ethernet_adapters": 2,
"iourc_path": null,
"l1_keepalives": false,
"md5sum": "e573e8f5c93c6c00783f20c7a170aa6c",
"md5sum": null,
"name": "PC TEST 1",
"nvram": 128,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_iou_get0/iou.bin",
"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/tmph6drru9t/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/1c801186-7a6d-4e92-9a10-9d61e8bdc25a",
"vm_id": "1c801186-7a6d-4e92-9a10-9d61e8bdc25a"
"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

@ -1,6 +1,6 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/46c8a3b3-12a2-42ff-9542-0d9e43dea734/configs'
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/46c8a3b3-12a2-42ff-9542-0d9e43dea734/configs HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/9ff2d283-1365-4422-93e7-e14c56b809cb/configs HTTP/1.1
@ -10,7 +10,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 40
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/configs
{

View File

@ -1,16 +1,16 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/a5c7b71e-03a5-4fe8-a7c5-ec5bd6e60a62'
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/a5c7b71e-03a5-4fe8-a7c5-ec5bd6e60a62 HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/84777300-eef4-4a3a-9135-d7009bdb0722 HTTP/1.1
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 1336
CONTENT-LENGTH: 1353
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
{
@ -20,7 +20,7 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
"boot_priority": "c",
"cdrom_image": "",
"cdrom_image_md5sum": null,
"console": 2000,
"console": 2001,
"console_type": "telnet",
"cpu_throttling": 0,
"cpus": 1,
@ -42,14 +42,15 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
"kernel_image": "",
"kernel_image_md5sum": null,
"legacy_networking": false,
"mac_address": "00:00:ab:0a:62:00",
"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/tmp3zzynydr/qemu-system-x86_64",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 256,
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpbbmb6tc1/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/a5c7b71e-03a5-4fe8-a7c5-ec5bd6e60a62",
"vm_id": "a5c7b71e-03a5-4fe8-a7c5-ec5bd6e60a62"
"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

@ -1,6 +1,6 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/2210fd53-0ea3-4c66-8de0-9cceedb471fe'
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/2210fd53-0ea3-4c66-8de0-9cceedb471fe HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/63b9b470-5a07-4cfe-b9d5-ae5d5518b988 HTTP/1.1
@ -10,14 +10,14 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 415
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2001,
"console": 2002,
"enable_remote_console": false,
"headless": false,
"name": "VMTEST",
@ -25,6 +25,6 @@ X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
"ram": 0,
"use_any_adapter": false,
"vm_directory": null,
"vm_id": "2210fd53-0ea3-4c66-8de0-9cceedb471fe",
"vm_id": "63b9b470-5a07-4cfe-b9d5-ae5d5518b988",
"vmname": "VMTEST"
}

View File

@ -1,6 +1,6 @@
curl -i -X GET 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/521f3776-d6d0-42a3-ac6d-7dc0c19d7fad'
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/521f3776-d6d0-42a3-ac6d-7dc0c19d7fad HTTP/1.1
GET /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/7e24fcc2-e38c-43e8-a7bb-fc22d7b91547 HTTP/1.1
@ -10,16 +10,16 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 422
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
{
"console": 2009,
"console": 2010,
"name": "PC TEST 1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpbbmb6tc1/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/521f3776-d6d0-42a3-ac6d-7dc0c19d7fad",
"vm_id": "521f3776-d6d0-42a3-ac6d-7dc0c19d7fad"
"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

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

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

@ -10,10 +10,10 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 50
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/version
{
"local": true,
"version": "1.4.0.dev9"
"version": "1.4.0dev13"
}

View File

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

View File

@ -12,13 +12,13 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 297
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects
{
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpz4njup0u",
"location": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn",
"name": "test",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpz4njup0u/2547d75b-6059-4cff-a2ff-ac78ad5b98c7",
"project_id": "2547d75b-6059-4cff-a2ff-ac78ad5b98c7",
"path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpp319gdgn/054e6ecb-1e9d-4c74-ad08-1209264bd96d",
"project_id": "054e6ecb-1e9d-4c74-ad08-1209264bd96d",
"temporary": false
}

View File

@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/close

View File

@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/commit

View File

@ -1,38 +1,38 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms' -d '{"name": "PC TEST 1", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_iou_create_startup_config0/iou.bin", "startup_config_content": "hostname test", "vm_id": "57ca3a20-ffd9-4b99-b35c-038552374f05"}'
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": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_iou_create_startup_config0/iou.bin",
"path": "iou.bin",
"startup_config_content": "hostname test",
"vm_id": "57ca3a20-ffd9-4b99-b35c-038552374f05"
"vm_id": "afa904bc-8968-4e7c-87b6-11d92174f1e6"
}
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 755
CONTENT-LENGTH: 626
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms
{
"console": 2000,
"console": 2001,
"ethernet_adapters": 2,
"iourc_path": null,
"l1_keepalives": false,
"md5sum": "e573e8f5c93c6c00783f20c7a170aa6c",
"md5sum": null,
"name": "PC TEST 1",
"nvram": 128,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_iou_create_startup_config0/iou.bin",
"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/tmph6drru9t/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/57ca3a20-ffd9-4b99-b35c-038552374f05",
"vm_id": "57ca3a20-ffd9-4b99-b35c-038552374f05"
"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

@ -1,8 +1,8 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/3ae4cab0-1bd0-4382-9192-5b78868d1626/adapters/1/ports/0/nio' -d '{"ethernet_device": "lo0", "type": "nio_generic_ethernet"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/eea449ce-e25b-4beb-b50f-fcd77241a97b/adapters/1/ports/0/nio' -d '{"ethernet_device": "bridge0", "type": "nio_generic_ethernet"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/3ae4cab0-1bd0-4382-9192-5b78868d1626/adapters/1/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/eea449ce-e25b-4beb-b50f-fcd77241a97b/adapters/1/ports/0/nio HTTP/1.1
{
"ethernet_device": "lo0",
"ethernet_device": "bridge0",
"type": "nio_generic_ethernet"
}
@ -10,13 +10,13 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/3ae4cab0-1bd0-438
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 68
CONTENT-LENGTH: 72
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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": "lo0",
"ethernet_device": "bridge0",
"type": "nio_generic_ethernet"
}

View File

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/98a1fa54-ff5e-4119-85a5-20a7b5fdac31/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/14a4f240-54e7-47f7-b9e7-3640528415fe/adapters/0/ports/0/start_capture' -d '{"capture_file_name": "test.pcap", "data_link_type": "DLT_EN10MB"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/98a1fa54-ff5e-4119-85a5-20a7b5fdac31/adapters/0/ports/0/start_capture HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/14a4f240-54e7-47f7-b9e7-3640528415fe/adapters/0/ports/0/start_capture HTTP/1.1
{
"capture_file_name": "test.pcap",
"data_link_type": "DLT_EN10MB"
@ -13,9 +13,9 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 158
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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/tmph6drru9t/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
"pcap_file_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp2yt9sd1l/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/captures/test.pcap"
}

View File

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/68c9da1c-6960-4c6e-aea1-e4f76e313341/adapters/0/ports/0/stop_capture' -d '{}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/992e1579-2232-4aac-93ef-970c3bb67966/adapters/0/ports/0/stop_capture' -d '{}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/68c9da1c-6960-4c6e-aea1-e4f76e313341/adapters/0/ports/0/stop_capture HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/992e1579-2232-4aac-93ef-970c3bb67966/adapters/0/ports/0/stop_capture HTTP/1.1
{}
@ -9,6 +9,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

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

View File

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/f932ec58-f509-44e6-8b30-aa0de3cc98e8/start' -d '{"iourc_content": "test"}'
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/f932ec58-f509-44e6-8b30-aa0de3cc98e8/start HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/2923f599-894a-4b18-a9eb-17a389298f84/start HTTP/1.1
{
"iourc_content": "test"
}
@ -11,6 +11,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}/start

View File

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

View File

@ -10,7 +10,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 25
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/ports/udp
{

View File

@ -1,10 +1,10 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_qemu_create_with_params0/linux.img", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp3zzynydr/qemu-system-x86_64", "ram": 1024}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms' -d '{"hda_disk_image": "linux.img", "name": "PC TEST 1", "qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64", "ram": 1024}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
{
"hda_disk_image": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_qemu_create_with_params0/linux.img",
"hda_disk_image": "linux.img",
"name": "PC TEST 1",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmp3zzynydr/qemu-system-x86_64",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 1024
}
@ -12,10 +12,10 @@ POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms HTTP/1.1
HTTP/1.1 201
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 1473
CONTENT-LENGTH: 1363
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms
{
@ -25,12 +25,12 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms
"boot_priority": "c",
"cdrom_image": "",
"cdrom_image_md5sum": null,
"console": 2000,
"console": 2001,
"console_type": "telnet",
"cpu_throttling": 0,
"cpus": 1,
"hda_disk_image": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_qemu_create_with_params0/linux.img",
"hda_disk_image_md5sum": "c4ca4238a0b923820dcc509a6f75849b",
"hda_disk_image": "linux.img",
"hda_disk_image_md5sum": null,
"hda_disk_interface": "ide",
"hdb_disk_image": "",
"hdb_disk_image_md5sum": null,
@ -47,14 +47,15 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms
"kernel_image": "",
"kernel_image_md5sum": null,
"legacy_networking": false,
"mac_address": "00:00:ab:71:f2:00",
"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/tmp3zzynydr/qemu-system-x86_64",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 1024,
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpbbmb6tc1/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/72f88dce-6c67-4e46-b42d-81a8c4f371f2",
"vm_id": "72f88dce-6c67-4e46-b42d-81a8c4f371f2"
"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

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/270ea3e8-d916-440b-bc8c-5ce63bbc71b5/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/82435d91-3cb5-4a44-abff-34a4ae46b24f/adapters/1/ports/0/nio' -d '{"ethernet_device": "eth0", "type": "nio_generic_ethernet"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/270ea3e8-d916-440b-bc8c-5ce63bbc71b5/adapters/1/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/82435d91-3cb5-4a44-abff-34a4ae46b24f/adapters/1/ports/0/nio HTTP/1.1
{
"ethernet_device": "eth0",
"type": "nio_generic_ethernet"
@ -13,7 +13,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 89
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

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

View File

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

View File

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

View File

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

View File

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

View File

@ -14,14 +14,14 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 409
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2000,
"console": 2001,
"enable_remote_console": false,
"headless": false,
"name": "VM1",
@ -29,6 +29,6 @@ X-ROUTE: /v1/projects/{project_id}/virtualbox/vms
"ram": 0,
"use_any_adapter": false,
"vm_directory": null,
"vm_id": "7d54caf7-ab92-4a5f-8795-1ebdfcc6994b",
"vm_id": "39cc5964-d0be-487b-9f0c-8fbea600e452",
"vmname": "VM1"
}

View File

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5815ff12-a889-492e-97ca-be06a45f03ce/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/556aba72-c19a-4fc3-a350-9454791687f4/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/5815ff12-a889-492e-97ca-be06a45f03ce/adapters/0/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/556aba72-c19a-4fc3-a350-9454791687f4/adapters/0/ports/0/nio HTTP/1.1
{
"lport": 4242,
"rhost": "127.0.0.1",
@ -15,7 +15,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 89
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

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

View File

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

View File

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

View File

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

View File

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

View File

@ -12,16 +12,16 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 422
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms
{
"console": 2009,
"console": 2010,
"name": "PC TEST 1",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": null,
"startup_script_path": null,
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpbbmb6tc1/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/a0f4ad58-4583-4ec1-9790-4841ca5f6d56",
"vm_id": "a0f4ad58-4583-4ec1-9790-4841ca5f6d56"
"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

@ -1,6 +1,6 @@
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4d4e08b5-7efa-4890-bf58-a81cd087964e/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
curl -i -X POST 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbf2e4d7-d60e-4e03-95bc-1bd53b74689a/adapters/0/ports/0/nio' -d '{"lport": 4242, "rhost": "127.0.0.1", "rport": 4343, "type": "nio_udp"}'
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/4d4e08b5-7efa-4890-bf58-a81cd087964e/adapters/0/ports/0/nio HTTP/1.1
POST /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/fbf2e4d7-d60e-4e03-95bc-1bd53b74689a/adapters/0/ports/0/nio HTTP/1.1
{
"lport": 4242,
"rhost": "127.0.0.1",
@ -15,7 +15,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 89
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
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

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

View File

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

View File

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

View File

@ -18,6 +18,6 @@ ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 0
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/qemu/img

View File

@ -1,8 +1,8 @@
curl -i -X POST 'http://localhost:8000/v1/version' -d '{"version": "1.4.0.dev9"}'
curl -i -X POST 'http://localhost:8000/v1/version' -d '{"version": "1.4.0dev13"}'
POST /v1/version HTTP/1.1
{
"version": "1.4.0.dev9"
"version": "1.4.0dev13"
}
@ -12,9 +12,9 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 31
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/version
{
"version": "1.4.0.dev9"
"version": "1.4.0dev13"
}

View File

@ -1,9 +1,9 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/51887c6f-8fde-40e7-8904-d4e54fcdb7b4' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_update_path_project_non_l0"}'
curl -i -X PUT 'http://localhost:8000/v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74' -d '{"name": "second_name", "path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"}'
PUT /v1/projects/51887c6f-8fde-40e7-8904-d4e54fcdb7b4 HTTP/1.1
PUT /v1/projects/9d7dccbb-0fc0-40d0-9420-912733dcbf74 HTTP/1.1
{
"name": "second_name",
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_update_path_project_non_l0"
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-of-noplay/pytest-110/test_update_path_project_non_l0"
}
@ -13,7 +13,7 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 100
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}
{

View File

@ -1,8 +1,8 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/790ce54d-8d28-4e33-9a5a-27cae20fc0f2' -d '{"console": 2001, "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}'
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/790ce54d-8d28-4e33-9a5a-27cae20fc0f2 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/6438493a-152d-4cb0-b8d2-fcfe1f6bf540 HTTP/1.1
{
"console": 2001,
"console": 2002,
"ethernet_adapters": 4,
"iourc_content": "test",
"l1_keepalives": true,
@ -18,27 +18,27 @@ PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/iou/vms/790ce54d-8d28-4e33
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 799
CONTENT-LENGTH: 685
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/iou/vms/{vm_id}
{
"console": 2001,
"console": 2002,
"ethernet_adapters": 4,
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpcnfdf4ax/iourc",
"iourc_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpyrljan4a/iourc",
"l1_keepalives": true,
"md5sum": "e573e8f5c93c6c00783f20c7a170aa6c",
"md5sum": null,
"name": "test",
"nvram": 2048,
"path": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_iou_update0/iou.bin",
"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/tmph6drru9t/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/iou/790ce54d-8d28-4e33-9a5a-27cae20fc0f2",
"vm_id": "790ce54d-8d28-4e33-9a5a-27cae20fc0f2"
"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

@ -1,9 +1,9 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b2e10803-4587-4ff9-9efe-d9e761965dba' -d '{"console": 2001, "hdb_disk_image": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_qemu_update0/linux.img", "name": "test", "ram": 1024}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/578b6391-e461-4f17-86f6-dd556d2f4dde' -d '{"console": 2002, "hdb_disk_image": "linux.img", "name": "test", "ram": 1024}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b2e10803-4587-4ff9-9efe-d9e761965dba HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/578b6391-e461-4f17-86f6-dd556d2f4dde HTTP/1.1
{
"console": 2001,
"hdb_disk_image": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_qemu_update0/linux.img",
"console": 2002,
"hdb_disk_image": "linux.img",
"name": "test",
"ram": 1024
}
@ -12,10 +12,10 @@ PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/qemu/vms/b2e10803-4587-4ff
HTTP/1.1 200
ACCESS-CONTROL-ALLOW-ORIGIN: *
CONNECTION: keep-alive
CONTENT-LENGTH: 1456
CONTENT-LENGTH: 1358
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
{
@ -25,15 +25,15 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
"boot_priority": "c",
"cdrom_image": "",
"cdrom_image_md5sum": null,
"console": 2001,
"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": "/private/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/pytest-54/test_qemu_update0/linux.img",
"hdb_disk_image_md5sum": "c4ca4238a0b923820dcc509a6f75849b",
"hdb_disk_image": "linux.img",
"hdb_disk_image_md5sum": null,
"hdb_disk_interface": "ide",
"hdc_disk_image": "",
"hdc_disk_image_md5sum": null,
@ -47,14 +47,15 @@ X-ROUTE: /v1/projects/{project_id}/qemu/vms/{vm_id}
"kernel_image": "",
"kernel_image_md5sum": null,
"legacy_networking": false,
"mac_address": "00:00:ab:5d:ba:00",
"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/tmp3zzynydr/qemu-system-x86_64",
"qemu_path": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmph3pfurip/qemu-system-x86_64",
"ram": 1024,
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpbbmb6tc1/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/qemu/b2e10803-4587-4ff9-9efe-d9e761965dba",
"vm_id": "b2e10803-4587-4ff9-9efe-d9e761965dba"
"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

@ -1,8 +1,8 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f4886c2a-98fb-471b-bba3-89ea75ad8c27' -d '{"console": 2010, "name": "test"}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/aa45d68c-c68e-4296-9550-641b522a73c2' -d '{"console": 2011, "name": "test"}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/f4886c2a-98fb-471b-bba3-89ea75ad8c27 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/virtualbox/vms/aa45d68c-c68e-4296-9550-641b522a73c2 HTTP/1.1
{
"console": 2010,
"console": 2011,
"name": "test"
}
@ -13,14 +13,14 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 413
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
{
"acpi_shutdown": false,
"adapter_type": "Intel PRO/1000 MT Desktop (82540EM)",
"adapters": 0,
"console": 2010,
"console": 2011,
"enable_remote_console": false,
"headless": false,
"name": "test",
@ -28,6 +28,6 @@ X-ROUTE: /v1/projects/{project_id}/virtualbox/vms/{vm_id}
"ram": 0,
"use_any_adapter": false,
"vm_directory": null,
"vm_id": "f4886c2a-98fb-471b-bba3-89ea75ad8c27",
"vm_id": "aa45d68c-c68e-4296-9550-641b522a73c2",
"vmname": "VMTEST"
}

View File

@ -1,8 +1,8 @@
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/c13cc286-c384-4d39-8fbb-24ce2d9a6024' -d '{"console": 2011, "name": "test", "startup_script": "ip 192.168.1.1"}'
curl -i -X PUT 'http://localhost:8000/v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/608a4cd0-476c-40ba-95db-0c81effc8e9c' -d '{"console": 2012, "name": "test", "startup_script": "ip 192.168.1.1"}'
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/c13cc286-c384-4d39-8fbb-24ce2d9a6024 HTTP/1.1
PUT /v1/projects/a1e920ca-338a-4e9f-b363-aa607b09dd80/vpcs/vms/608a4cd0-476c-40ba-95db-0c81effc8e9c HTTP/1.1
{
"console": 2011,
"console": 2012,
"name": "test",
"startup_script": "ip 192.168.1.1"
}
@ -14,16 +14,16 @@ CONNECTION: keep-alive
CONTENT-LENGTH: 438
CONTENT-TYPE: application/json
DATE: Thu, 08 Jan 2015 16:09:15 GMT
SERVER: Python/3.4 GNS3/1.4.0.dev9
SERVER: Python/3.5 GNS3/1.4.0dev13
X-ROUTE: /v1/projects/{project_id}/vpcs/vms/{vm_id}
{
"console": 2011,
"console": 2012,
"name": "test",
"project_id": "a1e920ca-338a-4e9f-b363-aa607b09dd80",
"startup_script": "ip 192.168.1.1",
"startup_script_path": "startup.vpc",
"status": "stopped",
"vm_directory": "/var/folders/3s/r2wbv07n7wg4vrsn874lmxxh0000gn/T/tmpbbmb6tc1/a1e920ca-338a-4e9f-b363-aa607b09dd80/project-files/vpcs/c13cc286-c384-4d39-8fbb-24ce2d9a6024",
"vm_id": "c13cc286-c384-4d39-8fbb-24ce2d9a6024"
"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"
}

View File

@ -9,8 +9,8 @@ Add a NIO to a Docker container
Parameters
**********
- **adapter_number**: Adapter where the nio should be added
- **id**: ID of the container
- **adapter_number**: Adapter where the nio should be added
- **project_id**: UUID for the project
- **port_number**: Port on the adapter
@ -27,8 +27,8 @@ Remove a NIO from a Docker container
Parameters
**********
- **adapter_number**: Adapter where the nio should be added
- **id**: ID of the container
- **adapter_number**: Adapter where the nio should be added
- **project_id**: UUID for the project
- **port_number**: Port on the adapter

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -46,7 +46,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>location</td> <td>&#10004;</td> <td>string</td> <td>Base directory where the project should be created on remote server</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Project name</td> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>Project name</td> </tr>
<tr><td>path</td> <td> </td> <td>string</td> <td>Directory of the project on the server</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>temporary</td> <td>&#10004;</td> <td>boolean</td> <td>If project is a temporary project</td> </tr>

View File

@ -23,7 +23,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>location</td> <td>&#10004;</td> <td>string</td> <td>Base directory where the project should be created on remote server</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Project name</td> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>Project name</td> </tr>
<tr><td>path</td> <td> </td> <td>string</td> <td>Directory of the project on the server</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>temporary</td> <td>&#10004;</td> <td>boolean</td> <td>If project is a temporary project</td> </tr>
@ -68,7 +68,7 @@ Output
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>location</td> <td>&#10004;</td> <td>string</td> <td>Base directory where the project should be created on remote server</td> </tr>
<tr><td>name</td> <td> </td> <td>string</td> <td>Project name</td> </tr>
<tr><td>name</td> <td> </td> <td>['string', 'null']</td> <td>Project name</td> </tr>
<tr><td>path</td> <td> </td> <td>string</td> <td>Directory of the project on the server</td> </tr>
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project UUID</td> </tr>
<tr><td>temporary</td> <td>&#10004;</td> <td>boolean</td> <td>If project is a temporary project</td> </tr>

View File

@ -26,7 +26,7 @@ Input
<tr><td>acpi_shutdown</td> <td> </td> <td>['boolean', 'null']</td> <td>ACPI shutdown support</td> </tr>
<tr><td>adapter_type</td> <td> </td> <td>['string', 'null']</td> <td>QEMU adapter type</td> </tr>
<tr><td>adapters</td> <td> </td> <td>['integer', 'null']</td> <td>number of adapters</td> </tr>
<tr><td>boot_priority</td> <td> </td> <td>enum</td> <td>Possible values: c, d</td> </tr>
<tr><td>boot_priority</td> <td> </td> <td>enum</td> <td>Possible values: c, d, n, cn, cd</td> </tr>
<tr><td>cdrom_image</td> <td> </td> <td>string</td> <td>QEMU cdrom image path</td> </tr>
<tr><td>cdrom_image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>QEMU cdrom image checksum</td> </tr>
<tr><td>console</td> <td> </td> <td>['integer', 'null']</td> <td>console TCP port</td> </tr>
@ -51,6 +51,7 @@ Input
<tr><td>kernel_image</td> <td> </td> <td>string</td> <td>QEMU kernel image path</td> </tr>
<tr><td>kernel_image_md5sum</td> <td> </td> <td>['string', 'null']</td> <td>QEMU kernel image checksum</td> </tr>
<tr><td>legacy_networking</td> <td> </td> <td>['boolean', 'null']</td> <td>Use QEMU legagy networking commands (-net syntax)</td> </tr>
<tr><td>linked_clone</td> <td> </td> <td>boolean</td> <td>either the VM is a linked clone or not</td> </tr>
<tr><td>mac_address</td> <td> </td> <td>['string', 'null']</td> <td>QEMU MAC address</td> </tr>
<tr><td>name</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM instance name</td> </tr>
<tr><td>options</td> <td> </td> <td>['string', 'null']</td> <td>Additional QEMU options</td> </tr>
@ -58,6 +59,7 @@ Input
<tr><td>process_priority</td> <td> </td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low, null</td> </tr>
<tr><td>qemu_path</td> <td> </td> <td>['string', 'null']</td> <td>Path to QEMU</td> </tr>
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>amount of RAM in MB</td> </tr>
<tr><td>usage</td> <td> </td> <td>string</td> <td>How to use the qemu VM</td> </tr>
<tr><td>vm_id</td> <td> </td> <td></td> <td>QEMU VM identifier</td> </tr>
</table>
@ -103,6 +105,7 @@ Output
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project uuid</td> </tr>
<tr><td>qemu_path</td> <td>&#10004;</td> <td>string</td> <td>path to QEMU</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>amount of RAM in MB</td> </tr>
<tr><td>usage</td> <td>&#10004;</td> <td>string</td> <td>How to use the qemu VM</td> </tr>
<tr><td>vm_directory</td> <td>&#10004;</td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM uuid</td> </tr>
</table>

View File

@ -60,6 +60,7 @@ Output
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project uuid</td> </tr>
<tr><td>qemu_path</td> <td>&#10004;</td> <td>string</td> <td>path to QEMU</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>amount of RAM in MB</td> </tr>
<tr><td>usage</td> <td>&#10004;</td> <td>string</td> <td>How to use the qemu VM</td> </tr>
<tr><td>vm_directory</td> <td>&#10004;</td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM uuid</td> </tr>
</table>
@ -128,6 +129,7 @@ Input
<tr><td>process_priority</td> <td> </td> <td>enum</td> <td>Possible values: realtime, very high, high, normal, low, very low, null</td> </tr>
<tr><td>qemu_path</td> <td> </td> <td>['string', 'null']</td> <td>Path to QEMU</td> </tr>
<tr><td>ram</td> <td> </td> <td>['integer', 'null']</td> <td>amount of RAM in MB</td> </tr>
<tr><td>usage</td> <td> </td> <td>string</td> <td>How to use the qemu VM</td> </tr>
</table>
Output
@ -172,6 +174,7 @@ Output
<tr><td>project_id</td> <td>&#10004;</td> <td>string</td> <td>Project uuid</td> </tr>
<tr><td>qemu_path</td> <td>&#10004;</td> <td>string</td> <td>path to QEMU</td> </tr>
<tr><td>ram</td> <td>&#10004;</td> <td>integer</td> <td>amount of RAM in MB</td> </tr>
<tr><td>usage</td> <td>&#10004;</td> <td>string</td> <td>How to use the qemu VM</td> </tr>
<tr><td>vm_directory</td> <td>&#10004;</td> <td>string</td> <td></td> </tr>
<tr><td>vm_id</td> <td>&#10004;</td> <td>string</td> <td>QEMU VM uuid</td> </tr>
</table>

View File

@ -10,8 +10,8 @@ Add a NIO to a Qemu VM instance
Parameters
**********
- **adapter_number**: Network adapter where the nio is located
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
@ -34,8 +34,8 @@ Remove a NIO from a Qemu VM instance
Parameters
**********
- **adapter_number**: Network adapter where the nio is located
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

View File

@ -13,6 +13,15 @@ Response status codes
- **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>archs</td> <td> </td> <td>array</td> <td>Architectures to filter binaries by</td> </tr>
</table>
Sample session
***************

View File

@ -0,0 +1,28 @@
/v1/qemu/capabilities
----------------------------------------------------------------------------------------------------------------------
.. contents::
GET /v1/qemu/capabilities
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Get a list of Qemu capabilities on this server
Response status codes
**********************
- **200**: Success
Output
*******
.. raw:: html
<table>
<tr> <th>Name</th> <th>Mandatory</th> <th>Type</th> <th>Description</th> </tr>
<tr><td>kvm</td> <td> </td> <td>array</td> <td>Architectures that KVM is enabled for</td> </tr>
</table>
Sample session
***************
.. literalinclude:: ../../examples/get_qemucapabilities.txt

View File

@ -10,8 +10,8 @@ Add a NIO to a VirtualBox VM instance
Parameters
**********
- **adapter_number**: Adapter where the nio should be added
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
@ -34,8 +34,8 @@ Remove a NIO from a VirtualBox VM instance
Parameters
**********
- **adapter_number**: Adapter from where the nio should be removed
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

View File

@ -10,8 +10,8 @@ Start a packet capture on a VirtualBox VM instance
Parameters
**********
- **adapter_number**: Adapter to start a packet capture
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

View File

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

View File

@ -10,8 +10,8 @@ Add a NIO to a VMware VM instance
Parameters
**********
- **adapter_number**: Adapter where the nio should be added
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes
@ -28,8 +28,8 @@ Remove a NIO from a VMware VM instance
Parameters
**********
- **adapter_number**: Adapter from where the nio should be removed
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

View File

@ -10,8 +10,8 @@ Start a packet capture on a VMware VM instance
Parameters
**********
- **adapter_number**: Adapter to start a packet capture
- **project_id**: UUID for the project
- **port_number**: Port on the adapter (always 0)
- **project_id**: UUID for the project
- **vm_id**: UUID for the instance
Response status codes

View File

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

View File

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

View File

@ -25,7 +25,9 @@ from ...schemas.nio import NIO_SCHEMA
from ...schemas.qemu import QEMU_CREATE_SCHEMA
from ...schemas.qemu import QEMU_UPDATE_SCHEMA
from ...schemas.qemu import QEMU_OBJECT_SCHEMA
from ...schemas.qemu import QEMU_BINARY_FILTER_SCHEMA
from ...schemas.qemu import QEMU_BINARY_LIST_SCHEMA
from ...schemas.qemu import QEMU_CAPABILITY_LIST_SCHEMA
from ...schemas.qemu import QEMU_IMAGE_CREATE_SCHEMA
from ...schemas.vm import VM_LIST_IMAGES_SCHEMA
from ...modules.qemu import Qemu
@ -300,10 +302,11 @@ class QEMUHandler:
404: "Instance doesn't exist"
},
description="Get a list of available Qemu binaries",
input=QEMU_BINARY_FILTER_SCHEMA,
output=QEMU_BINARY_LIST_SCHEMA)
def list_binaries(request, response):
binaries = yield from Qemu.binary_list()
binaries = yield from Qemu.binary_list(request.json.get("archs", None))
response.json(binaries)
@classmethod
@ -321,6 +324,21 @@ class QEMUHandler:
binaries = yield from Qemu.img_binary_list()
response.json(binaries)
@Route.get(
r"/qemu/capabilities",
status_codes={
200: "Success"
},
description="Get a list of Qemu capabilities on this server",
output=QEMU_CAPABILITY_LIST_SCHEMA
)
def get_capabilities(request, response):
capabilities = {"kvm": []}
kvms = yield from Qemu.get_kvm_archs()
if kvms:
capabilities["kvm"] = kvms
response.json(capabilities)
@classmethod
@Route.post(
r"/qemu/img",

View File

@ -676,7 +676,10 @@ class IOUVM(BaseVM):
except asyncio.TimeoutError:
if self._iouyap_process.returncode is None:
log.warn("IOUYAP process {} is still running... killing it".format(self._iouyap_process.pid))
try:
self._iouyap_process.kill()
except ProcessLookupError:
pass
self._iouyap_process = None
self._started = False

View File

@ -21,6 +21,7 @@ Qemu server module.
import asyncio
import os
import platform
import sys
import re
import subprocess
@ -38,6 +39,33 @@ class Qemu(BaseManager):
_VM_CLASS = QemuVM
@staticmethod
@asyncio.coroutine
def get_kvm_archs():
"""
Gets a list of architectures for which KVM is available on this server.
:returns: List of architectures for which KVM is available on this server.
"""
kvm = []
try:
process = yield from asyncio.create_subprocess_exec("kvm-ok")
yield from process.wait()
except OSError:
return kvm
if process.returncode == 0:
arch = platform.machine()
if arch == "x86_64":
kvm.append("x86_64")
kvm.append("i386")
elif arch == "i386":
kvm.append("i386")
else:
kvm.append(platform.machine())
return kvm
@staticmethod
def paths_list():
"""
@ -82,7 +110,7 @@ class Qemu(BaseManager):
return paths
@staticmethod
def binary_list():
def binary_list(archs=None):
"""
Gets QEMU binaries list available on the host.
@ -96,9 +124,17 @@ class Qemu(BaseManager):
if (f.startswith("qemu-system") or f.startswith("qemu-kvm") or f == "qemu" or f == "qemu.exe") and \
os.access(os.path.join(path, f), os.X_OK) and \
os.path.isfile(os.path.join(path, f)):
if archs is not None:
for arch in archs:
if f.endswith(arch) or f.endswith("{}.exe".format(arch)) or f.endswith("{}w.exe".format(arch)):
qemu_path = os.path.join(path, f)
version = yield from Qemu.get_qemu_version(qemu_path)
qemus.append({"path": qemu_path, "version": version})
else:
qemu_path = os.path.join(path, f)
version = yield from Qemu.get_qemu_version(qemu_path)
qemus.append({"path": qemu_path, "version": version})
except OSError:
continue

View File

@ -601,6 +601,21 @@ QEMU_OBJECT_SCHEMA = {
"vm_directory"]
}
QEMU_BINARY_FILTER_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Request validation for a list of qemu capabilities",
"properties": {
"archs": {
"description": "Architectures to filter binaries by",
"type": "array",
"items": {
"enum": QEMU_PLATFORMS
}
}
},
"additionalProperties": False,
}
QEMU_BINARY_LIST_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Request validation for a list of qemu binaries",
@ -626,6 +641,21 @@ QEMU_BINARY_LIST_SCHEMA = {
"additionalProperties": False,
}
QEMU_CAPABILITY_LIST_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Request validation for a list of qemu capabilities",
"properties": {
"kvm": {
"description": "Architectures that KVM is enabled for",
"type": "array",
"items": {
"enum": QEMU_PLATFORMS
}
}
},
"additionalProperties": False,
}
QEMU_IMAGE_CREATE_SCHEMA = {
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Create a new qemu image. Options can be specific to a format. Read qemu-img manual for more information",

View File

@ -200,11 +200,24 @@ def test_qemu_list_binaries(server, vm):
{"path": "/tmp/2", "version": "2.1.0"}]
with asyncio_patch("gns3server.modules.qemu.Qemu.binary_list", return_value=ret) as mock:
response = server.get("/qemu/binaries".format(project_id=vm["project_id"]), example=True)
assert mock.called
assert mock.called_with(None)
assert response.status == 200
assert response.json == ret
def test_qemu_list_binaries_filter(server, vm):
ret = [
{"path": "/tmp/x86_64", "version": "2.2.0"},
{"path": "/tmp/alpha", "version": "2.1.0"},
{"path": "/tmp/i386", "version": "2.1.0"}
]
with asyncio_patch("gns3server.modules.qemu.Qemu.binary_list", return_value=ret) as mock:
response = server.get("/qemu/binaries".format(project_id=vm["project_id"]), body={"archs": ["i386"]}, example=True)
assert response.status == 200
assert mock.called_with(["i386"])
assert response.json == ret
def test_vms(server, tmpdir, fake_qemu_vm):
with patch("gns3server.modules.Qemu.get_images_directory", return_value=str(tmpdir), example=True):
@ -312,3 +325,9 @@ def test_create_img_absolute_local(server):
response = server.post("/qemu/img", body=body, example=True)
assert response.status == 201
def test_capabilities(server):
with asyncio_patch("gns3server.modules.Qemu.get_kvm_archs", return_value=["x86_64"]):
response = server.get("/qemu/capabilities", example=True)
assert response.json["kvm"] == ["x86_64"]

View File

@ -20,6 +20,7 @@ import stat
import asyncio
import sys
import pytest
import platform
from gns3server.modules.qemu import Qemu
from gns3server.modules.qemu.qemu_error import QemuError
@ -58,18 +59,32 @@ def test_binary_list(loop):
os.chmod(path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR)
with asyncio_patch("gns3server.modules.qemu.subprocess_check_output", return_value="QEMU emulator version 2.2.0, Copyright (c) 2003-2008 Fabrice Bellard") as mock:
qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list()))
if sys.platform.startswith("win"):
version = ""
else:
version = "2.2.0"
qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list()))
assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version} in qemus
assert {"path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version} in qemus
assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version} in qemus
assert {"path": os.path.join(os.environ["PATH"], "hello"), "version": version} not in qemus
qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list(["x86"])))
assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version} in qemus
assert {"path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version} not in qemus
assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version} not in qemus
assert {"path": os.path.join(os.environ["PATH"], "hello"), "version": version} not in qemus
qemus = loop.run_until_complete(asyncio.async(Qemu.binary_list(["x86", "x42"])))
assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x86"), "version": version} in qemus
assert {"path": os.path.join(os.environ["PATH"], "qemu-kvm"), "version": version} not in qemus
assert {"path": os.path.join(os.environ["PATH"], "qemu-system-x42"), "version": version} in qemus
assert {"path": os.path.join(os.environ["PATH"], "hello"), "version": version} not in qemus
def test_img_binary_list(loop):
@ -160,3 +175,21 @@ def test_create_image_exist(loop, tmpdir, fake_qemu_img_binary):
with pytest.raises(QemuError):
loop.run_until_complete(asyncio.async(Qemu.instance().create_disk(fake_qemu_img_binary, "hda.qcow2", options)))
assert not process.called
def test_get_kvm_archs_no_kvm(loop):
with asyncio_patch("asyncio.create_subprocess_exec", side_effect=FileNotFoundError('kvm-ok')):
archs = loop.run_until_complete(asyncio.async(Qemu.get_kvm_archs()))
assert archs == []
def test_get_kvm_archs_kvm_ok(loop):
process = MagicMock()
with asyncio_patch("asyncio.create_subprocess_exec", return_value=process):
process.returncode = 0
archs = loop.run_until_complete(asyncio.async(Qemu.get_kvm_archs()))
if platform.machine() == 'x86_64':
assert archs == ['x86_64', 'i386']
else:
assert archs == platform.machine()

View File

@ -50,6 +50,11 @@ class _asyncio_patch:
future = asyncio.Future()
if "return_value" in self.kwargs:
future.set_result(self.kwargs["return_value"])
elif "side_effect" in self.kwargs:
if isinstance(self.kwargs["side_effect"], Exception):
future.set_exception(self.kwargs["side_effect"])
else:
raise NotImplementedError
else:
future.set_result(True)
return future