- Virtual Machine Management
- Targeting Virtual Machines
- Querying Virtual Machines
- Starting a Virtual Machine
- Stopping a Virtual Machine
- Suspending a Virtual Machine
- Refreshing a Virtual Machine
- Retiring a Virtual Machine
- Resetting a Virtual Machine
- Rebooting guest in Virtual Machine
- Shutting Down Guest in a Virtual Machine
- Scanning a Virtual Machine
- Setting Server of a Virtual Machine
- Setting Owner of a Virtual Machine
- Adding an Event to a Virtual Machine
- Editing a Virtual Machine
- Deleting a Virtual Machine
Virtual Machine Management
Management of virtual machines adds support of the following actions:
Action | Description |
---|---|
start | Starts a virtual machine |
stop | Stops a virtual machine |
suspend | Suspends a virtual machine |
refresh | Refreshes a virtual machine |
request_retire | Retires a virtual machine |
reset | Resets a virtual machine |
reboot_guest | Reboots guest in virtual machine |
shutdown_guest | Shuts down guest in virtual machine |
scan | Scans a virtual machine (Perform SmartState Analysis) |
set_miq_server | Sets the server of a virtual machine |
set_owner | Sets the owner of a virtual machine |
add_event | Adding an event to a virtual machine |
edit | Edits a virtual machine |
delete | Deletes a virtual machine in the appliance |
Targeting Virtual Machines
These actions can be triggered on individual virtual machine resources:
/api/vms/:id
As simply as POSTing the following action to a virtual machine.
{
"action" : "start"
}
Requests can also be made on multiple vms by targetting the primary collection:
/api/vms
{
"action" : "start",
"resources" : [
{ "href" : "http://localhost:3000/api/vms/11" },
{ "href" : "http://localhost:3000/api/vms/12" },
...
]
}
Querying Virtual Machines
Virtual machines are queried via the primary collection URL:
/api/vms
Filtering, sorting and paging as mentioned on the Querying page.
When querying vms, expanding the resources themselves as well as the following subcollections:
accounts |
software |
For example:
GET /api/vms?expand=resources,accounts,software
Or querying an individual virtual machine
GET /api/vms/:id?expand=accounts,software
Starting a Virtual Machine
{
"action" : "start"
}
Stopping a Virtual Machine
{
"action" : "stop"
}
Suspending a Virtual Machine
{
"action" : "suspend"
}
Refreshing a Virtual Machine
{
"action" : "refresh"
}
Retiring a Virtual Machine
{
"action" : "request_retire"
}
Resetting a Virtual Machine
{
"action" : "reset"
}
Rebooting guest in Virtual Machine
{
"action" : "reboot_guest"
}
Shutting Down Guest in a Virtual Machine
{
"action" : "shutdown_guest"
}
Scanning a Virtual Machine
{
"action" : "scan"
}
Setting Server of a Virtual Machine
{
"action" : "set_miq_server",
"resource" : {
"miq_server" : { "href" : "http://localhost:3000/api/servers/5" }
}
}
{
"action" : "set_miq_server",
"resource" : {
"miq_server" : { "id" : "6" }
}
}
To remove the server from the virtual machine, pass in an empty reference as follows:
{
"action" : "set_miq_server",
"resource" : {
"miq_server" : {}
}
}
Setting Owner of a Virtual Machine
{
"action" : "set_owner",
"resource" : {
"owner" : "admin"
}
}
Adding an Event to a Virtual Machine
{
"action" : "add_event",
"resource" : {
"event_type" : "...",
"event_message" : "...",
"event_time" : "UTC Time"
}
}
Note:
event_time above is optional. If skipped, current time will be used.
Editing a Virtual Machine
Basic information of virtual machines can be edited. This includes the following:
VM Info | Attribute |
---|---|
description | description |
custom attributes | custom_1 … custom_9 |
parent resource | parent_resource - resource href reference |
child resources | child_resources - array of resource href references |
Virtual machine resources can be edited as follows:
POST /api/vms/:id
{
"action" : "edit",
"resource" : {
"description" : "Updated VM Description",
"custom_1" : "custom_attribute_1",
"parent_resource" : { "href" : "http://localhost:3000/api/vms/11" },
"child_resources" : [
{ "href" : "http://localhost:3000/api/vms/101" },
{ "href" : "http://localhost:3000/api/vms/102" },
{ "href" : "http://localhost:3000/api/vms/103" },
{ "href" : "http://localhost:3000/api/vms/104" }
]
}
}
Virtual machines can also be edited in bulk as follows:
POST /api/vms
{
"action" : "edit",
"resources" : [
{
"href" : "http://localhost:3000/api/vms/11",
"custom_9" : "vm_class_a"
},
{
"href" : "http://localhost:3000/api/vms/12",
"custom_9" : "vm_class_a"
},
{
"href" : "http://localhost:3000/api/vms/13",
"custom_9" : "vm_class_a"
}
]
}
Deleting a Virtual Machine
{
"action" : "delete"
}
Or simply doing the following:
DELETE /api/vms/:id
See the main REST API examples section for additional virtual machine management examples.