vmpooler/docs/postman/vmpooler FULL API.postman_collection.json
Samuel Beaulieu 987b777d50
Adding a postman collection with a generic environment file
The full API is modeled in postman and includes placeholders and variables that are taken from
an environment file, and also dynamically generated based on the API responses
2022-07-25 09:17:31 -05:00

1059 lines
No EOL
21 KiB
JSON

{
"info": {
"_postman_id": "02b9b224-1d71-4d97-a1bc-43141a7ea1bd",
"name": "vmpooler FULL API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "tokens",
"item": [
{
"name": "Get a list of issued tokens",
"request": {
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{ldap_user}}",
"type": "string"
},
{
"key": "password",
"value": "{{ldap_pass}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "{{url}}/{{api_prefix}}/token/",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"token",
""
]
}
},
"response": []
},
{
"name": "Generate a new authentication token",
"request": {
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{ldap_user}}",
"type": "string"
},
{
"key": "password",
"value": "{{ldap_pass}}",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"url": {
"raw": "{{url}}/token/",
"host": [
"{{url}}"
],
"path": [
"token",
""
]
}
},
"response": []
},
{
"name": "Get information about an existing token (including associated VMs)",
"request": {
"auth": {
"type": "noauth"
},
"method": "GET",
"header": [],
"url": {
"raw": "{{url}}/{{api_prefix}}/token/{{token}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"token",
"{{token}}"
]
}
},
"response": []
},
{
"name": "Delete an authentication token",
"event": [
{
"listen": "prerequest",
"script": {
"exec": [
""
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{ldap_user}}",
"type": "string"
},
{
"key": "password",
"value": "{{ldap_pass}}",
"type": "string"
}
]
},
"method": "DELETE",
"header": [],
"url": {
"raw": "{{url}}/{{api_prefix}}/token/{{tokentodelete}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"token",
"{{tokentodelete}}"
]
}
},
"response": []
}
]
},
{
"name": "create vm",
"item": [
{
"name": "ondemand",
"item": [
{
"name": "1) ondemandvm",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var jsonData = pm.response.json();",
"pm.collectionVariables.set(\"job_id\", jsonData.request_id);",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"{{ondemand_pool_name}}\":1}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/ondemandvm/",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"ondemandvm",
""
]
}
},
"response": []
},
{
"name": "2) check ondemandvm",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var jsonData = pm.response.json();",
"var poolname = pm.environment.get(\"ondemand_pool_name\");",
"if (jsonData[poolname].hostname) {",
" pm.collectionVariables.set(\"vm_hostname\", jsonData[poolname].hostname[0]);",
" console.log(\"saving returned hostname to vm_hostname = \" + jsonData[poolname].hostname[0])",
"}"
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/ondemandvm/{{job_id}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"ondemandvm",
"{{job_id}}"
]
}
},
"response": []
},
{
"name": "3) delete ondemandvm",
"request": {
"method": "DELETE",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/ondemandvm/{{job_id}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"ondemandvm",
"{{job_id}}"
]
}
},
"response": []
}
]
},
{
"name": "pooled",
"item": [
{
"name": "1) pooled vm allocation",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var jsonData = pm.response.json();",
"var poolname = pm.environment.get(\"pooled_pool_name\");",
"pm.collectionVariables.set(\"vm_hostname\", jsonData[poolname].hostname);",
"console.log(\"saving returned hostname to vm_hostname = \" + jsonData[poolname].hostname)"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"{{pooled_pool_name}}\":1}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
""
]
}
},
"response": []
},
{
"name": "1) pooled vm allocation using params",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var jsonData = pm.response.json();",
"var poolname = pm.environment.get(\"pooled_pool_name\");",
"pm.collectionVariables.set(\"vm_hostname\", jsonData[poolname].hostname);",
"console.log(\"saving returned hostname to vm_hostname = \" + jsonData[poolname].hostname)"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"{{pooled_pool_name}}\":1}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/ubuntu-2004-64",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"ubuntu-2004-64"
],
"query": [
{
"key": "",
"value": "",
"disabled": true
}
]
}
},
"response": []
},
{
"name": "2) Schedule a checked-out VM for deletion",
"request": {
"method": "DELETE",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}"
]
}
},
"response": []
}
]
}
]
},
{
"name": "other vm requests",
"item": [
{
"name": "Retrieve a list of available VM pools",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm"
]
}
},
"response": []
},
{
"name": "Query metadata information for a checked-out VM",
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}"
]
}
},
"response": []
},
{
"name": "Modify a checked-out VM",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"lifetime\":\"2\"}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}"
]
}
},
"response": [
{
"name": "lifetime",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"lifetime\":\"2\"}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}"
]
}
},
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": null
},
{
"name": "tags",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"tags\":{\"department\":\"engineering\",\"user\":\"jdoe\"}}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}"
]
}
},
"_postman_previewlanguage": null,
"header": null,
"cookie": [],
"body": null
}
]
},
{
"name": "2) Add an additional disk to a running VM",
"event": [
{
"listen": "test",
"script": {
"exec": [
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}/disk/{{additional_disk_size}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}",
"disk",
"{{additional_disk_size}}"
]
}
},
"response": []
},
{
"name": "2) Create a snapshot of a running VM Copy",
"event": [
{
"listen": "test",
"script": {
"exec": [
"var jsonData = pm.response.json();",
"var hostname = pm.collectionVariables.get(\"vm_hostname\")",
"var hostname_notfqdn = hostname.split('.')[0]",
"pm.collectionVariables.set(\"snapshot_uuid\", jsonData[hostname_notfqdn].snapshot);",
"console.log(\"saving returned snapshot uuid to snapshot_uuid = \" + jsonData[hostname_notfqdn].snapshot)"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}/snapshot/",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}",
"snapshot",
""
]
}
},
"response": []
},
{
"name": "3) Revert a VM back to a snapshot",
"event": [
{
"listen": "test",
"script": {
"exec": [
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/vm/{{vm_hostname}}/snapshot/{{snapshot_uuid}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"vm",
"{{vm_hostname}}",
"snapshot",
"{{snapshot_uuid}}"
]
}
},
"response": []
}
]
},
{
"name": "pool management",
"item": [
{
"name": "1) Change pool size without having to restart the service.",
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"{{pool_management}}\":\"new_size\"}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/config/poolsize/",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"config",
"poolsize",
""
]
}
},
"response": []
},
{
"name": "2) Delete an overridden pool size. This results in the values from VMPooler's config being used. Copy",
"request": {
"method": "DELETE",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"url": {
"raw": "{{url}}/{{api_prefix}}/config/poolsize/{{pool_management}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"config",
"poolsize",
"{{pool_management}}"
]
}
},
"response": []
},
{
"name": "1) Change the template configured for a pool, and replenish the pool with instances built from the new template. Copy",
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"{{pool_management}}\":\"templates/new_template\"}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/config/pooltemplate/",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"config",
"pooltemplate",
""
]
}
},
"response": []
},
{
"name": "2) Delete an overridden pool template. This results in the values from VMPooler's config being used.",
"request": {
"method": "DELETE",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/config/pooltemplate/{{pool_management}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"config",
"pooltemplate",
"{{pool_management}}"
]
}
},
"response": []
},
{
"name": "poolreset: Clear all pending and ready instances in a pool, and deploy replacements",
"request": {
"method": "POST",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "default"
}
],
"body": {
"mode": "raw",
"raw": "{\"{{pool_management}}\":\"1\"}"
},
"url": {
"raw": "{{url}}/{{api_prefix}}/poolreset",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"poolreset"
]
}
},
"response": []
}
],
"description": "API to manage pool configuration \"live\". For example you can replace an existing pool size or template, in which case the new value will 'override' the pool config loaded at startup (on disk)"
},
{
"name": "status: A \"live\" status endpoint, representing the current state of the service",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/status",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"status"
]
}
},
"response": []
},
{
"name": "poolstat",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/poolstat?pool={{pooled_pool_name}}",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"poolstat"
],
"query": [
{
"key": "pool",
"value": "{{pooled_pool_name}}"
},
{
"key": "pool",
"value": "{{ondemand_pool_name}}",
"disabled": true
}
]
}
},
"response": []
},
{
"name": "totalrunning",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/totalrunning",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"totalrunning"
]
}
},
"response": []
},
{
"name": "config returns the \"live\" pool configurations",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/config",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"config"
]
}
},
"response": []
},
{
"name": "full_config returns the full configuration, config, providers, pools etc",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/full_config",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"full_config"
]
}
},
"response": []
},
{
"name": "summary: Returns a summary, or report, for the timespan between from and to (inclusive) parameters Copy",
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "X-AUTH-TOKEN",
"value": "{{token}}",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{url}}/{{api_prefix}}/summary?from=YYYY-MM-DD&to=YYYY-MM-DD",
"host": [
"{{url}}"
],
"path": [
"{{api_prefix}}",
"summary"
],
"query": [
{
"key": "from",
"value": "YYYY-MM-DD"
},
{
"key": "to",
"value": "YYYY-MM-DD"
}
]
}
},
"response": []
}
],
"variable": [
{
"key": "job_id",
"value": ""
},
{
"key": "vm_hostname",
"value": ""
},
{
"key": "snapshot_uuid",
"value": ""
}
]
}