summaryrefslogtreecommitdiffstats
path: root/docs/testing/user/userguide/09-api.rst
diff options
context:
space:
mode:
authorRex Lee <limingjiang@huawei.com>2018-04-13 01:29:33 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-04-13 01:29:33 +0000
commit408ea589283fa8181679d5d0b999bcd6785e6086 (patch)
treec6349ee0aac4178608df6a25cea5881d90af8186 /docs/testing/user/userguide/09-api.rst
parent64c5642f0c5152ae5de728466ab3f6be4c0e24d5 (diff)
parentb24dc4e0c48aa7d9aa98c3e06d6d2cd2c6bed1d6 (diff)
Merge "[docs] Move user guide chapters to make room for new chapter." into stable/fraser
Diffstat (limited to 'docs/testing/user/userguide/09-api.rst')
-rw-r--r--docs/testing/user/userguide/09-api.rst769
1 files changed, 769 insertions, 0 deletions
diff --git a/docs/testing/user/userguide/09-api.rst b/docs/testing/user/userguide/09-api.rst
new file mode 100644
index 000000000..f0ae3980b
--- /dev/null
+++ b/docs/testing/user/userguide/09-api.rst
@@ -0,0 +1,769 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Huawei Technologies Co.,Ltd and others.
+
+=====================
+Yardstick Restful API
+=====================
+
+
+Abstract
+========
+
+Yardstick support restful API since Danube.
+
+
+Available API
+=============
+
+/yardstick/env/action
+---------------------
+
+Description: This API is used to prepare Yardstick test environment.
+For Euphrates, it supports:
+
+1. Prepare yardstick test environment, including setting the
+ ``EXTERNAL_NETWORK`` environment variable, load Yardstick VM images and
+ create flavors;
+2. Start an InfluxDB Docker container and config Yardstick output to InfluxDB;
+3. Start a Grafana Docker container and config it with the InfluxDB.
+
+Which API to call will depend on the parameters.
+
+
+Method: POST
+
+
+Prepare Yardstick test environment
+Example::
+
+ {
+ 'action': 'prepare_env'
+ }
+
+This is an asynchronous API. You need to call ``/yardstick/asynctask`` API to
+get the task result.
+
+
+Start and config an InfluxDB docker container
+Example::
+
+ {
+ 'action': 'create_influxdb'
+ }
+
+This is an asynchronous API. You need to call ``/yardstick/asynctask`` API to
+get the task result.
+
+
+Start and config a Grafana docker container
+Example::
+
+ {
+ 'action': 'create_grafana'
+ }
+
+This is an asynchronous API. You need to call ``/yardstick/asynctask`` API to
+get the task result.
+
+
+/yardstick/asynctask
+--------------------
+
+Description: This API is used to get the status of asynchronous tasks
+
+
+Method: GET
+
+
+Get the status of asynchronous tasks
+Example::
+
+ http://<SERVER IP>:<PORT>/yardstick/asynctask?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
+
+The returned status will be 0(running), 1(finished) and 2(failed).
+
+NOTE::
+
+ <SERVER IP>: The ip of the host where you start your yardstick container
+ <PORT>: The outside port of port mapping which set when you start start yardstick container
+
+
+/yardstick/testcases
+--------------------
+
+Description: This API is used to list all released Yardstick test cases.
+
+
+Method: GET
+
+
+Get a list of released test cases
+Example::
+
+ http://<SERVER IP>:<PORT>/yardstick/testcases
+
+
+/yardstick/testcases/release/action
+-----------------------------------
+
+Description: This API is used to run a Yardstick released test case.
+
+
+Method: POST
+
+
+Run a released test case
+Example::
+
+ {
+ 'action': 'run_test_case',
+ 'args': {
+ 'opts': {},
+ 'testcase': 'opnfv_yardstick_tc002'
+ }
+ }
+
+This is an asynchronous API. You need to call ``/yardstick/results`` to get the
+result.
+
+
+/yardstick/testcases/samples/action
+-----------------------------------
+
+Description: This API is used to run a Yardstick sample test case.
+
+
+Method: POST
+
+
+Run a sample test case
+Example::
+
+ {
+ 'action': 'run_test_case',
+ 'args': {
+ 'opts': {},
+ 'testcase': 'ping'
+ }
+ }
+
+This is an asynchronous API. You need to call ``/yardstick/results`` to get
+the result.
+
+
+/yardstick/testcases/<testcase_name>/docs
+-----------------------------------------
+
+Description: This API is used to the documentation of a certain released test
+case.
+
+
+Method: GET
+
+
+Get the documentation of a certain test case
+Example::
+
+ http://<SERVER IP>:<PORT>/yardstick/taskcases/opnfv_yardstick_tc002/docs
+
+
+/yardstick/testsuites/action
+----------------------------
+
+Description: This API is used to run a Yardstick test suite.
+
+
+Method: POST
+
+
+Run a test suite
+Example::
+
+ {
+ 'action': 'run_test_suite',
+ 'args': {
+ 'opts': {},
+ 'testsuite': 'opnfv_smoke'
+ }
+ }
+
+This is an asynchronous API. You need to call /yardstick/results to get the
+result.
+
+
+/yardstick/tasks/<task_id>/log
+------------------------------
+
+Description: This API is used to get the real time log of test case execution.
+
+
+Method: GET
+
+
+Get real time of test case execution
+Example::
+
+ http://<SERVER IP>:<PORT>/yardstick/tasks/14795be8-f144-4f54-81ce-43f4e3eab33f/log?index=0
+
+
+/yardstick/results
+------------------
+
+Description: This API is used to get the test results of tasks. If you call
+/yardstick/testcases/samples/action API, it will return a task id. You can use
+the returned task id to get the results by using this API.
+
+
+Method: GET
+
+
+Get test results of one task
+Example::
+
+ http://<SERVER IP>:<PORT>/yardstick/results?task_id=3f3f5e03-972a-4847-a5f8-154f1b31db8c
+
+This API will return a list of test case result
+
+
+/api/v2/yardstick/openrcs
+-------------------------
+
+Description: This API provides functionality of handling OpenStack credential
+file (openrc). For Euphrates, it supports:
+
+1. Upload an openrc file for an OpenStack environment;
+2. Update an openrc;
+3. Get openrc file information;
+4. Delete an openrc file.
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Upload an openrc file for an OpenStack environment
+Example::
+
+ {
+ 'action': 'upload_openrc',
+ 'args': {
+ 'file': file,
+ 'environment_id': environment_id
+ }
+ }
+
+
+METHOD: POST
+
+
+Update an openrc file
+Example::
+
+ {
+ 'action': 'update_openrc',
+ 'args': {
+ 'openrc': {
+ "EXTERNAL_NETWORK": "ext-net",
+ "OS_AUTH_URL": "http://192.168.23.51:5000/v3",
+ "OS_IDENTITY_API_VERSION": "3",
+ "OS_IMAGE_API_VERSION": "2",
+ "OS_PASSWORD": "console",
+ "OS_PROJECT_DOMAIN_NAME": "default",
+ "OS_PROJECT_NAME": "admin",
+ "OS_USERNAME": "admin",
+ "OS_USER_DOMAIN_NAME": "default"
+ },
+ 'environment_id': environment_id
+ }
+ }
+
+
+/api/v2/yardstick/openrcs/<openrc_id>
+-------------------------------------
+
+Description: This API provides functionality of handling OpenStack credential file (openrc). For Euphrates, it supports:
+
+1. Get openrc file information;
+2. Delete an openrc file.
+
+
+METHOD: GET
+
+Get openrc file information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+
+Delete openrc file
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/openrcs/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/pods
+----------------------
+
+Description: This API provides functionality of handling Yardstick pod file
+(pod.yaml). For Euphrates, it supports:
+
+1. Upload a pod file;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Upload a pod.yaml file
+Example::
+
+ {
+ 'action': 'upload_pod_file',
+ 'args': {
+ 'file': file,
+ 'environment_id': environment_id
+ }
+ }
+
+
+/api/v2/yardstick/pods/<pod_id>
+-------------------------------
+
+Description: This API provides functionality of handling Yardstick pod file (pod.yaml). For Euphrates, it supports:
+
+1. Get pod file information;
+2. Delete an openrc file.
+
+METHOD: GET
+
+Get pod file information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+Delete openrc file
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/pods/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/images
+------------------------
+
+Description: This API is used to do some work related to Yardstick VM images.
+For Euphrates, it supports:
+
+1. Load Yardstick VM images;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Load VM images
+Example::
+
+ {
+ 'action': 'load_image',
+ 'args': {
+ 'name': 'yardstick-image'
+ }
+ }
+
+
+/api/v2/yardstick/images/<image_id>
+-----------------------------------
+
+Description: This API is used to do some work related to Yardstick VM images. For Euphrates, it supports:
+
+1. Get image's information;
+2. Delete images
+
+METHOD: GET
+
+Get image information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+Delete images
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/images/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/tasks
+-----------------------
+
+Description: This API is used to do some work related to yardstick tasks. For
+Euphrates, it supports:
+
+1. Create a Yardstick task;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a Yardstick task
+Example::
+
+ {
+ 'action': 'create_task',
+ 'args': {
+ 'name': 'task1',
+ 'project_id': project_id
+ }
+ }
+
+
+/api/v2/yardstick/tasks/<task_id>
+--------------------------------
+
+Description: This API is used to do some work related to yardstick tasks. For Euphrates, it supports:
+
+1. Add a environment to a task
+2. Add a test case to a task;
+3. Add a test suite to a task;
+4. run a Yardstick task;
+5. Get a tasks' information;
+6. Delete a task.
+
+
+METHOD: PUT
+
+Add a environment to a task
+
+Example::
+
+ {
+ 'action': 'add_environment',
+ 'args': {
+ 'environment_id': 'e3cadbbb-0419-4fed-96f1-a232daa0422a'
+ }
+ }
+
+
+METHOD: PUT
+
+Add a test case to a task
+Example::
+
+ {
+ 'action': 'add_case',
+ 'args': {
+ 'case_name': 'opnfv_yardstick_tc002',
+ 'case_content': case_content
+ }
+ }
+
+
+
+METHOD: PUT
+
+Add a test suite to a task
+Example::
+
+ {
+ 'action': 'add_suite',
+ 'args': {
+ 'suite_name': 'opnfv_smoke',
+ 'suite_content': suite_content
+ }
+ }
+
+
+METHOD: PUT
+
+Run a task
+
+Example::
+
+ {
+ 'action': 'run'
+ }
+
+
+
+METHOD: GET
+
+Get a task's information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+METHOD: DELETE
+
+Delete a task
+
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/tasks/5g6g3e02-155a-4847-a5f8-154f1b31db8c
+
+
+/api/v2/yardstick/testcases
+---------------------------
+
+Description: This API is used to do some work related to Yardstick testcases.
+For Euphrates, it supports:
+
+1. Upload a test case;
+2. Get all released test cases' information;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Upload a test case
+Example::
+
+ {
+ 'action': 'upload_case',
+ 'args': {
+ 'file': file
+ }
+ }
+
+
+METHOD: GET
+
+
+Get all released test cases' information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testcases
+
+
+/api/v2/yardstick/testcases/<case_name>
+---------------------------------------
+
+Description: This API is used to do some work related to yardstick testcases. For Euphrates, it supports:
+
+1. Get certain released test case's information;
+2. Delete a test case.
+
+METHOD: GET
+
+
+Get certain released test case's information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testcases/opnfv_yardstick_tc002
+
+
+METHOD: DELETE
+
+
+Delete a certain test case
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testcases/opnfv_yardstick_tc002
+
+
+/api/v2/yardstick/testsuites
+----------------------------
+
+Description: This API is used to do some work related to yardstick test suites.
+For Euphrates, it supports:
+
+1. Create a test suite;
+2. Get all test suites;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a test suite
+Example::
+
+ {
+ 'action': 'create_suite',
+ 'args': {
+ 'name': <suite_name>,
+ 'testcases': [
+ 'opnfv_yardstick_tc002'
+ ]
+ }
+ }
+
+
+METHOD: GET
+
+
+Get all test suite
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testsuites
+
+
+/api/v2/yardstick/testsuites
+----------------------------
+
+Description: This API is used to do some work related to yardstick test suites. For Euphrates, it supports:
+
+1. Get certain test suite's information;
+2. Delete a test case.
+
+METHOD: GET
+
+
+Get certain test suite's information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testsuites/<suite_name>
+
+
+METHOD: DELETE
+
+
+Delete a certain test suite
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/testsuites/<suite_name>
+
+
+/api/v2/yardstick/projects
+--------------------------
+
+Description: This API is used to do some work related to Yardstick test
+projects. For Euphrates, it supports:
+
+1. Create a Yardstick project;
+2. Get all projects;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a Yardstick project
+Example::
+
+ {
+ 'action': 'create_project',
+ 'args': {
+ 'name': 'project1'
+ }
+ }
+
+
+METHOD: GET
+
+
+Get all projects' information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/projects
+
+
+/api/v2/yardstick/projects
+--------------------------
+
+Description: This API is used to do some work related to yardstick test projects. For Euphrates, it supports:
+
+1. Get certain project's information;
+2. Delete a project.
+
+METHOD: GET
+
+
+Get certain project's information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/projects/<project_id>
+
+
+METHOD: DELETE
+
+
+Delete a certain project
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/projects/<project_id>
+
+
+/api/v2/yardstick/containers
+----------------------------
+
+Description: This API is used to do some work related to Docker containers.
+For Euphrates, it supports:
+
+1. Create a Grafana Docker container;
+2. Create an InfluxDB Docker container;
+
+Which API to call will depend on the parameters.
+
+
+METHOD: POST
+
+
+Create a Grafana Docker container
+Example::
+
+ {
+ 'action': 'create_grafana',
+ 'args': {
+ 'environment_id': <environment_id>
+ }
+ }
+
+
+METHOD: POST
+
+
+Create an InfluxDB Docker container
+Example::
+
+ {
+ 'action': 'create_influxdb',
+ 'args': {
+ 'environment_id': <environment_id>
+ }
+ }
+
+
+/api/v2/yardstick/containers/<container_id>
+-------------------------------------------
+
+Description: This API is used to do some work related to Docker containers. For Euphrates, it supports:
+
+1. Get certain container's information;
+2. Delete a container.
+
+METHOD: GET
+
+
+Get certain container's information
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/containers/<container_id>
+
+
+METHOD: DELETE
+
+
+Delete a certain container
+Example::
+
+ http://<SERVER IP>:<PORT>/api/v2/yardstick/containers/<container_id>