This is an old revision of the document!
1. Add Provider
Register a new resource provider (e.g. OpenStack) into reservation system. See pkgcloud lib for list of supported providers.
Request parameters
| Parameters | Types | Description |
|---|---|---|
| provider-type | Enumeration | Name of the resource provider |
| endpoint | URI | Target URL endpoint for the resource provider |
| username | String | User name |
| password | String | Password |
| region | String | Specified region for the provider (Optional) |
| tenant.id | String | Id of the tenant |
| tenant.name | String | Name of the tenant |
Response parameters
| Parameters | Types | Description |
|---|---|---|
| provider-id | String | Id of the new resource provider |
| result | Enumeration | Result message (e.g. OK, ERROR} |
Example request
{
"provider-type": "openstack",
"endpoint": "http://10.0.2.15:5000/v2.0/tokens",
"username": "admin",
"password": "******",
"tenant": {
"id": "0d36689a21e24a15a9c543ec8dd86510",
"name": "admin"
}
}
Example response
{
"provider-id": "1bc96b9c-c316-4854-aa10-9d2bea35508f",
"result": "ok"
}
2. Create Reservation
Make a request to the reservation system to reserve resources
Request parameters
| Parameters | Types | Description |
|---|---|---|
| zone | String | Id to an availability zone (Optional) |
| start | DateTime | Timestamp when the consumption of reserved resources can begin (Optional) |
| end | DateTime | Timestamp when the consumprtion of reserved resources should end (Optional) |
| capacity.cores | int16 | Amount of cores to be reserved (Default: 0) |
| capacity.ram | int32 | Amount of RAM (in MB) to be reserved (Default: 0) |
| capacity.instances | int16 | Amount of instances to be reserved (Default: 0) |
| capacity.networks | int16 | Amount of networks to be reserved (Default: 0) |
| capacity.ports | int16 | Amount of ports to be reserved (Default: 0) |
| capacity.routers | int16 | Amount of routers to be reserved (Default: 0) |
| capacity.subnets | int16 | Amount of subnets to be reserved (Default: 0) |
| capacity.addresses | int32 | Amount of public IP addresses to be reserved (Default: 0) |
| capacity.gigabytes | int32 | Amount of gigabytes to be reserved (Default: 0) |
| capacity.snapshots | int16 | Amount of snapshots to be reserved (Default: 0) |
| capacity.volumes | int16 | Amount of volumes to be reserved (Default: 0) |
| elements | ResourceElement | Amount of pre-existing resource elements (e.g. resource reservation) to be reserved |
Response parameters
| Parameters | Types | Description |
|---|---|---|
| reservation-id | String | Id of the reservation |
| result | Enumeration | Result message (e.g. OK, ERROR, CONFLICT) |
| message | String | Output message (e.g. "reservation request accepted" |
Example request
{
"capacity": {
"cores": "5",
"ram": 0
"instances": 0
"networks": 0,
"ports": 0
"addresses": "3",
"gigabytes": "10,
"snapshots": 0,
"volumes": 0
},
"elements": []
}
Example response
{
"reservation-id": "f6f7d56a-4740-48fe-b197-42a7001beb95",
"result": "ok",
"message": "reservation request accepted"
}