diff --git a/docs/api/examples/get_vpcsuuid.txt b/docs/api/examples/get_vpcsuuid.txt index 1abe5fd9..57b93cbf 100644 --- a/docs/api/examples/get_vpcsuuid.txt +++ b/docs/api/examples/get_vpcsuuid.txt @@ -18,5 +18,5 @@ X-ROUTE: /vpcs/{uuid} "project_uuid": "a1e920ca-338a-4e9f-b363-aa607b09dd80", "script_file": null, "startup_script": null, - "uuid": "f8155d67-c0bf-4229-be4c-97edaaae7b0b" + "uuid": "c9e15d9f-cff3-402a-b9c9-57f4d008832f" } diff --git a/docs/api/examples/post_vpcs.txt b/docs/api/examples/post_vpcs.txt index 26ee627f..cbd49f85 100644 --- a/docs/api/examples/post_vpcs.txt +++ b/docs/api/examples/post_vpcs.txt @@ -21,5 +21,5 @@ X-ROUTE: /vpcs "project_uuid": "a1e920ca-338a-4e9f-b363-aa607b09dd80", "script_file": null, "startup_script": null, - "uuid": "5a9aac64-5b62-41bd-955a-fcef90a2fac5" + "uuid": "f5016337-fa62-4e82-95da-9f66f68e6e8f" } diff --git a/docs/api/virtualbox.rst b/docs/api/virtualbox.rst new file mode 100644 index 00000000..9a6cb762 --- /dev/null +++ b/docs/api/virtualbox.rst @@ -0,0 +1,47 @@ +/virtualbox +--------------------------------------------- + +.. contents:: + +POST /virtualbox +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Create a new VirtualBox VM instance + +Response status codes +********************** +- **400**: Invalid project UUID +- **201**: VirtualBox VM instance created +- **409**: Conflict + +Input +******* +.. raw:: html + + + + + + + + + +
Name Mandatory Type Description
linked_clone boolean either the VM is a linked clone or not
name string VirtualBox VM instance name
project_uuid string Project UUID
uuid string VirtualBox VM instance UUID
vbox_id integer VirtualBox VM instance ID (for project created before GNS3 1.3)
vmname string VirtualBox VM name (in VirtualBox itself)
+ +Output +******* +.. raw:: html + + + + + + + +
Name Mandatory Type Description
console integer console TCP port
name string VirtualBox VM instance name
project_uuid string Project UUID
uuid string VirtualBox VM instance UUID
+ +Sample session +*************** + + +.. literalinclude:: examples/post_virtualbox.txt + diff --git a/docs/api/virtualboxuuidstart.rst b/docs/api/virtualboxuuidstart.rst new file mode 100644 index 00000000..570a64f7 --- /dev/null +++ b/docs/api/virtualboxuuidstart.rst @@ -0,0 +1,25 @@ +/virtualbox/{uuid}/start +--------------------------------------------- + +.. contents:: + +POST /virtualbox/**{uuid}**/start +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Start a VirtualBox VM instance + +Parameters +********** +- **uuid**: VirtualBox VM instance UUID + +Response status codes +********************** +- **400**: Invalid VirtualBox VM instance UUID +- **404**: VirtualBox VM instance doesn't exist +- **204**: VirtualBox VM instance started + +Sample session +*************** + + +.. literalinclude:: examples/post_virtualboxuuidstart.txt + diff --git a/docs/api/virtualboxuuidstop.rst b/docs/api/virtualboxuuidstop.rst new file mode 100644 index 00000000..21fd9809 --- /dev/null +++ b/docs/api/virtualboxuuidstop.rst @@ -0,0 +1,25 @@ +/virtualbox/{uuid}/stop +--------------------------------------------- + +.. contents:: + +POST /virtualbox/**{uuid}**/stop +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Stop a VirtualBox VM instance + +Parameters +********** +- **uuid**: VirtualBox VM instance UUID + +Response status codes +********************** +- **400**: Invalid VirtualBox VM instance UUID +- **404**: VirtualBox VM instance doesn't exist +- **204**: VirtualBox VM instance stopped + +Sample session +*************** + + +.. literalinclude:: examples/post_virtualboxuuidstop.txt + diff --git a/docs/api/vpcs.rst b/docs/api/vpcs.rst index 225990bb..4790ad9e 100644 --- a/docs/api/vpcs.rst +++ b/docs/api/vpcs.rst @@ -9,6 +9,7 @@ Create a new VPCS instance Response status codes ********************** +- **400**: Invalid project UUID - **201**: VPCS instance created - **409**: Conflict @@ -18,9 +19,11 @@ Input - + + +
Name Mandatory Type Description
console integer console TCP port
console ['integer', 'null'] console TCP port
name string VPCS device name
project_uuid string Project UUID
script_file ['string', 'null'] VPCS startup script
startup_script ['string', 'null'] Content of the VPCS startup script
uuid string VPCS device UUID
vpcs_id integer VPCS device instance ID (for project created before GNS3 1.3)
@@ -34,6 +37,8 @@ Output console ✔ integer console TCP port name ✔ string VPCS device name project_uuid ✔ string Project UUID + script_file ['string', 'null'] VPCS startup script + startup_script ['string', 'null'] Content of the VPCS startup script uuid ✔ string VPCS device UUID diff --git a/docs/api/vpcsuuid.rst b/docs/api/vpcsuuid.rst new file mode 100644 index 00000000..f2489f1c --- /dev/null +++ b/docs/api/vpcsuuid.rst @@ -0,0 +1,60 @@ +/vpcs/{uuid} +--------------------------------------------- + +.. contents:: + +GET /vpcs/**{uuid}** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Get a VPCS instance + +Parameters +********** +- **uuid**: VPCS instance UUID + +Response status codes +********************** +- **200**: VPCS instance started +- **404**: VPCS instance doesn't exist + +Sample session +*************** + + +.. literalinclude:: examples/get_vpcsuuid.txt + + +PUT /vpcs/**{uuid}** +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Update a VPCS instance + +Response status codes +********************** +- **200**: VPCS instance updated +- **409**: Conflict + +Input +******* +.. raw:: html + + + + + + + +
Name Mandatory Type Description
console ['integer', 'null'] console TCP port
name ['string', 'null'] VPCS device name
script_file ['string', 'null'] VPCS startup script
startup_script ['string', 'null'] Content of the VPCS startup script
+ +Output +******* +.. raw:: html + + + + + + + + + +
Name Mandatory Type Description
console integer console TCP port
name string VPCS device name
project_uuid string Project UUID
script_file ['string', 'null'] VPCS startup script
startup_script ['string', 'null'] Content of the VPCS startup script
uuid string VPCS device UUID
+ diff --git a/scripts/documentation.sh b/scripts/documentation.sh index 0ee22a9a..fb7af59c 100755 --- a/scripts/documentation.sh +++ b/scripts/documentation.sh @@ -23,6 +23,8 @@ set -e echo "WARNING: This script should be run at the root directory of the project" +export PYTEST_BUILD_DOCUMENTATION=1 + py.test -v python3 gns3server/web/documentation.py cd docs diff --git a/tests/api/base.py b/tests/api/base.py index c2b6d299..638d53cc 100644 --- a/tests/api/base.py +++ b/tests/api/base.py @@ -25,7 +25,7 @@ import socket import pytest from aiohttp import web import aiohttp - +import os from gns3server.web.route import Route # TODO: get rid of * @@ -93,7 +93,7 @@ class Query: response.json = None else: response.json = {} - if kwargs.get('example'): + if kwargs.get('example') and os.environ.get("PYTEST_BUILD_DOCUMENTATION") == "1": self._dump_example(method, response.route, body, response) return response