TO DO:
1.Figure out all functionalities we need and define functions for them.
2. Full list of parameters for each function. (check with Mike and Mario).
3.Specify which parameters are required to be passed in from user in REST API for each functionThis document defines the REST API implemented by nds-webservices to manage NDS Labs Environments.
Resources | Activities | Parameters | HTTP verb mapping | Return value | ||||
---|---|---|---|---|---|---|---|---|
NDS Lab Environment | Create a NDS Lab Environment. |
| POST users/lab_environment/:lab_id | { "success":true, "lab_id": { "master1_ip":, "master2_ip": }, "ssh_key_url": } | ||||
List all NDS Lab Environments | GET users/lab_environment | { "success":true, { "lab_name":, "lab_status": { "master1_ip": "master2_ip": } "service1": "service2:" "owners":
}
} | ||||||
Stop a NDS Lab Environment. |
| PUT users/lab_environment/:lab_id/status | Destroy a NDS Lab Environment. |
| DELETE users/lab_environment/:lab_id { "success":true } | |||
Destroy a | volume associated with a specificNDS Lab Environment. |
| DELETE | users/lab_environment/:lab_id/volume/:volume_id{ "success":true, "deleted_volume":, "associated_lab": } | ServicesList services in a specific NDS Lab Environment. |
| GET users/lab_environment/:lab_id/services | { "success":true, { "service1_name":, "status": }, { "service2_name":, "status": } } |
Start services in a specific NDS Lab Environment. |
| POST users/lab_environment/:lab_id/services/:service_id {status: activate} | { "success":true, "associated_lab":, { "started_service1":, "status": } { "started_service2":, "status": } } | |||||
Stop services in a specific NDS Lab Environment. (Stop containers) |
| PUT users/lab_environment/:lab_id/services/:service_id {status: dead} | Delete services in a specific NDS Lab Environment. (Remove docker containers (and images)) Do we need this functionality? |
| DELETE users/lab_environment/:lab_id/services/:service_id | { "success":true, "associated_lab":, { "deleted_service1":, "status": }, { "deleted_service2":, "status": } } |