Red Hat Virtualization-4.0-REST API Guide-en-US
Red Hat Virtualization-4.0-REST API Guide-en-US
4.0
REST API Guide
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons
Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is
available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must
provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,
Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity
logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other
countries.
Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and
other countries.
Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to
or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks
or trademarks/service marks of the OpenStack Foundation, in the United States and other countries
and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or
sponsored by the OpenStack Foundation, or the OpenStack community.
Abstract
This guide describes the Red Hat Virtualization Manager Representational State Transfer
Application Programming Interface. This guide is generated from documentation comments in the
ovirt-engine-api-model code, and is currently partially complete. Updated versions of this
documentation will be published as new content becomes available.
Table of Contents
Table of Contents
.CHAPTER
. . . . . . . . .1.. .INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
...........
1.1. REPRESENTATIONAL STATE TRANSFER 13
1.2. API PREREQUISITES 13
.CHAPTER
. . . . . . . . .2.. .AUTHENTICATION
. . . . . . . . . . . . . . . . AND
. . . . .SECURITY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
...........
2.1. TLS/SSL CERTIFICATION 15
2.2. AUTHENTICATION 17
.CHAPTER
. . . . . . . . .3.. .QUICK
. . . . . .START
. . . . . . .EXAMPLE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
...........
3.1. EXAMPLE: ACCESS API ENTRY POINT 22
3.2. EXAMPLE: LIST DATA CENTERS 24
3.3. EXAMPLE: LIST HOST CLUSTERS 25
3.4. EXAMPLE: LIST LOGICAL NETWORKS 26
3.5. EXAMPLE: LIST HOSTS 27
3.6. EXAMPLE: CREATE NFS DATA STORAGE 28
3.7. EXAMPLE: CREATE NFS ISO STORAGE 30
3.8. EXAMPLE: ATTACH STORAGE DOMAINS TO DATA CENTER 31
3.9. EXAMPLE: CREATE VIRTUAL MACHINE 32
3.10. EXAMPLE: CREATE A VIRTUAL MACHINE NIC 34
3.11. EXAMPLE: CREATE VIRTUAL DISK 35
3.12. EXAMPLE: ATTACH ISO IMAGE TO VIRTUAL MACHINE 36
3.13. EXAMPLE: START THE VIRTUAL MACHINE 37
. . . . . . . . . .4.. .REQUESTS
CHAPTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .39
...........
.CHAPTER
. . . . . . . . .5.. .SERVICES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
...........
5.1. AFFINITYGROUP 65
5.2. AFFINITYGROUPVM 66
5.3. AFFINITYGROUPVMS 67
5.4. AFFINITYGROUPS 68
5.5. AFFINITYLABEL 69
5.6. AFFINITYLABELHOST 70
5.7. AFFINITYLABELHOSTS 71
5.8. AFFINITYLABELVM 72
5.9. AFFINITYLABELVMS 72
5.10. AFFINITYLABELS 73
5.11. ASSIGNEDAFFINITYLABEL 74
5.12. ASSIGNEDAFFINITYLABELS 75
5.13. ASSIGNEDCPUPROFILE 76
5.14. ASSIGNEDCPUPROFILES 77
5.15. ASSIGNEDDISKPROFILE 78
5.16. ASSIGNEDDISKPROFILES 78
5.17. ASSIGNEDNETWORK 79
5.18. ASSIGNEDNETWORKS 80
5.19. ASSIGNEDPERMISSIONS 81
5.20. ASSIGNEDROLES 83
5.21. ASSIGNEDTAG 84
5.22. ASSIGNEDTAGS 85
5.23. ASSIGNEDVNICPROFILE 87
5.24. ASSIGNEDVNICPROFILES 87
5.25. ATTACHEDSTORAGEDOMAIN 88
5.26. ATTACHEDSTORAGEDOMAINS 90
5.27. BALANCE 91
1
Red Hat Virtualization 4.0 REST API Guide
5.27. BALANCE 91
5.28. BALANCES 92
5.29. BOOKMARK 93
5.30. BOOKMARKS 95
5.31. CLUSTER 96
5.32. CLUSTERLEVEL 100
5.33. CLUSTERLEVELS 101
5.34. CLUSTERS 102
5.35. COPYABLE 103
5.36. CPUPROFILE 104
5.37. CPUPROFILES 105
5.38. DATACENTER 106
5.39. DATACENTERS 108
5.40. DISK 111
5.41. DISKATTACHMENT 114
5.42. DISKATTACHMENTS 116
5.43. DISKPROFILE 117
5.44. DISKPROFILES 119
5.45. DISKSNAPSHOT 120
5.46. DISKSNAPSHOTS 120
5.47. DISKS 121
5.48. DOMAIN 123
5.49. DOMAINGROUP 124
5.50. DOMAINGROUPS 124
5.51. DOMAINUSER 125
5.52. DOMAINUSERS 126
5.53. DOMAINS 127
5.54. ENGINEKATELLOERRATA 128
5.55. EVENT 130
5.56. EVENTS 131
5.57. EXTERNALCOMPUTERESOURCE 135
5.58. EXTERNALCOMPUTERESOURCES 136
5.59. EXTERNALDISCOVEREDHOST 136
5.60. EXTERNALDISCOVEREDHOSTS 137
5.61. EXTERNALHOST 137
5.62. EXTERNALHOSTGROUP 138
5.63. EXTERNALHOSTGROUPS 138
5.64. EXTERNALHOSTPROVIDER 139
5.65. EXTERNALHOSTPROVIDERS 141
5.66. EXTERNALHOSTS 142
5.67. EXTERNALPROVIDER 142
5.68. EXTERNALPROVIDERCERTIFICATE 143
5.69. EXTERNALPROVIDERCERTIFICATES 144
5.70. EXTERNALVMIMPORTS 144
5.71. FENCEAGENT 145
5.72. FENCEAGENTS 147
5.73. FILE 147
5.74. FILES 148
5.75. FILTER 149
5.76. FILTERS 150
5.77. GLUSTERBRICK 151
5.78. GLUSTERBRICKS 153
5.79. GLUSTERHOOK 159
5.80. GLUSTERHOOKS 161
2
Table of Contents
3
Red Hat Virtualization 4.0 REST API Guide
4
Table of Contents
5
Red Hat Virtualization 4.0 REST API Guide
. . . . . . . . . .6.. .TYPES
CHAPTER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .405
............
6.1. ACCESSPROTOCOL ENUM 405
6.2. ACTION STRUCT 405
6.3. AFFINITYGROUP STRUCT 410
6.4. AFFINITYLABEL STRUCT 411
6.5. AGENT STRUCT 412
6.6. AGENTCONFIGURATION STRUCT 413
6.7. API STRUCT 414
6.8. APISUMMARY STRUCT 415
6.9. APISUMMARYITEM STRUCT 416
6.10. APPLICATION STRUCT 416
6.11. ARCHITECTURE ENUM 417
6.12. AUTHORIZEDKEY STRUCT 417
6.13. AUTONUMASTATUS ENUM 418
6.14. BALANCE STRUCT 418
6.15. BIOS STRUCT 419
6.16. BLOCKSTATISTIC STRUCT 419
6.17. BONDING STRUCT 419
6.18. BOOKMARK STRUCT 420
6.19. BOOT STRUCT 421
6.20. BOOTDEVICE ENUM 421
6.21. BOOTMENU STRUCT 421
6.22. BOOTPROTOCOL ENUM 421
6.23. BRICKPROFILEDETAIL STRUCT 422
6.24. CDROM STRUCT 423
6.25. CERTIFICATE STRUCT 424
6.26. CLOUDINIT STRUCT 424
6.27. CLUSTER STRUCT 425
6.28. CLUSTERLEVEL STRUCT 432
6.29. CONFIGURATION STRUCT 433
6.30. CONFIGURATIONTYPE ENUM 434
6.31. CONSOLE STRUCT 435
6.32. CORE STRUCT 435
6.33. CPU STRUCT 435
6.34. CPUMODE ENUM 436
6.35. CPUPROFILE STRUCT 436
6.36. CPUTOPOLOGY STRUCT 437
6.37. CPUTUNE STRUCT 437
6.38. CPUTYPE STRUCT 438
6.39. CREATIONSTATUS ENUM 438
6.40. CUSTOMPROPERTY STRUCT 438
6.41. DATACENTER STRUCT 439
6.42. DATACENTERSTATUS ENUM 441
6.43. DEVICE STRUCT 442
6.44. DISK STRUCT 443
6.45. DISKATTACHMENT STRUCT 448
6.46. DISKFORMAT ENUM 449
6.47. DISKINTERFACE ENUM 449
6.48. DISKPROFILE STRUCT 450
6
Table of Contents
7
Red Hat Virtualization 4.0 REST API Guide
8
Table of Contents
9
Red Hat Virtualization 4.0 REST API Guide
10
Table of Contents
.APPENDIX
. . . . . . . . . A.
. . .PRIMITIVE
. . . . . . . . . TYPES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .682
............
A.1. STRING PRIMITIVE 682
A.2. BOOLEAN PRIMITIVE 682
A.3. INTEGER PRIMITIVE 682
A.4. DECIMAL PRIMITIVE 683
A.5. DATE PRIMITIVE 683
11
Red Hat Virtualization 4.0 REST API Guide
12
CHAPTER 1. INTRODUCTION
CHAPTER 1. INTRODUCTION
The Red Hat Virtualization Manager provides a Representational State Transfer (REST) API. The
API provides software developers and system administrators with control over their Red Hat
Virtualization environment outside of the standard web interface. The API is useful for developers
and administrators to integrate the functionality of a Red Hat Virtualization environment with custom
scripts or external applications that access the API via the standard Hypertext Transfer Protocol
(HTTP).
Broad client support - Any programming language, framework, or system with support for HTTP
protocol can use the API.
Resource-based model - The resource-based REST model provides a natural way to manage a
virtualization platform.
This documentation acts as a reference for the Red Hat Virtualization API. It aims to provide
developers and administrators with instructions and examples to help harness the functionality of
their Red Hat Virtualization environment through the API, either directly or using the provided SDKs.
A networked installation of Red Hat Virtualization Manager, which includes the API.
A client or programming library that initiates and receives HTTP requests from the API server.
For example:
13
Red Hat Virtualization 4.0 REST API Guide
Knowledge of Hypertext Transfer Protocol (HTTP), the protocol used for REST API interactions.
The Internet Engineering Task Force provides a Request for Comments (RFC) explaining the
Hypertext Transfer Protocol at http://www.ietf.org/rfc/rfc2616.txt.
Knowledge of Extensible Markup Language (XML) or JavaScript Object Notation (JSON), which
the API uses to construct resource representations. The W3C provides a full specification on
XML at http://www.w3.org/TR/xml. ECMA International provide a free publication on JSON at
http://www.ecma-international.org.
14
CHAPTER 2. AUTHENTICATION AND SECURITY
The Red Hat Virtualization API requires Hypertext Transfer Protocol Secure (HTTPS) [1] for secure
interaction with client software, such as the SDK and CLI components. This involves obtaining the
CA certificate used by the server, and importing it into the certificate store of your client.
You can obtain the CA certificate from the Red Hat Virtualization Manager and transfer it to the client
machine using one of these methods:
Method 1
The preferred method for obtaining the CA certificate is to use the openssl s_client
command line tool to perform a real TLS handshake with the server, and then extract the
certificates that it presents. Run a command like this:
$ openssl s_client \
-connect myengine.example.com:443 \
-showcerts \
< /dev/null
This command will connect to the server and display output similar to the following:
CONNECTED(00000003)
depth=1 C = US, O = Example Inc., CN = myengine.example.com.23416
verify error:num=19:self signed certificate in certificate chain
---
Certificate chain
0 s:/C=US/O=Example Inc./CN=myengine.example.com
i:/C=US/O=Example Inc./CN=myengine.example.com.23416
-----BEGIN CERTIFICATE-----
MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
SVlJe7e5FTEtHJGTAeWWM6dGbsFhip5VXM0gfqg=
-----END CERTIFICATE-----
1 s:/C=US/O=Example Inc./CN=myengine.example.com.23416
i:/C=US/O=Example Inc./CN=myengine.example.com.23416
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
Pkyg1rQHR6ebGQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
15
Red Hat Virtualization 4.0 REST API Guide
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
Pkyg1rQHR6ebGQ==
-----END CERTIFICATE-----
Important
This is the most reliable method to obtain the CA certificate used by the server.
The rest of the methods described here will work in most cases, but they will not
obtain the correct CA certificate if it has been manually replaced by the
administrator of the server.
Method 2
If you cannot use the openssl s_client method described above, you can instead use a
command line tool to download the CA certificate from the Red Hat Virtualization Manager.
Examples of command line tools include curl and wget, both of which are available on
multiple platforms.
If using curl:
$ curl \
--output ca.crt \
'http://myengine.example.com/ovirt-engine/services/pki-resource?
resource=ca-certificate&format=X509-PEM-CA'
If using wget:
$ wget \
--output-document ca.crt \
'http://myengine.example.com/ovirt-engine/services/pki-resource?
resource=ca-certificate&format=X509-PEM-CA'
Method 3
Use a web browser to navigate to the certificate located at:
https://myengine.example.com/ovirt-engine/services/pki-resource?
resource=ca-certificate&format=X509-PEM-CA
Depending on the chosen browser, the certificate either downloads or imports into the
browser’s keystore.
2. If the browser imports the certificate: export it from the browser’s certification
options and save it as ca.crt.
Method 4
Log in to the Red Hat Virtualization Manager, export the certificate from the truststore, and
copy it to your client machine.
16
CHAPTER 2. AUTHENTICATION AND SECURITY
2. Export the certificate from the truststore using the Java keytool management
utility:
# keytool \
-keystore /etc/pki/ovirt-engine/.truststore \
-storepass mypass \
-exportcert \
-alias cacert \
-rfc \
-file ca.crt
3. Copy the certificate to the client machine using the scp command:
Each of these methods results in a certificate file named ca.crt on your client machine. You must
then import this file into the certificate store of the client.
Importing a certificate to a client relies on how the client stores and interprets certificates. See your
client documentation for more information on importing a certificate.
2.2. AUTHENTICATION
Any user with a Red Hat Virtualization Manager account has access to the API. All requests must be
authenticated using either OAuth or basic authentication, as described below.
Since version 4.0 of Red Hat Virtualization the preferred authentication mechanism is OAuth 2.0, as
described in RFC 6749.
OAuth is a sophisticated protocol, with several mechanisms for obtaining authorization and access
tokens. For use with the Red Hat Virtualization API, the only supported one is the Resource Owner
Password Credentials Grant, as described in section 4.3 of RFC 6749.
You must first obtain a token, sending the user name and password to the Red Hat Virtualization
Manager single sign-on service:
The request body must contain the grant_type, scope, username, and password parameters:
17
Red Hat Virtualization 4.0 REST API Guide
Name Value
grant_type password
scope ovirt-app-api
username admin@internal
password mypassword
These parameters must be URL-encoded. For example, the @ character in the user name needs to
be encoded as %40. The resulting request body will be something like this:
grant_type=password&scope=ovirt-app-
api&username=admin%40internal&password=mypassword
Important
The scope parameter is described as optional in the OAuth RFC, but when using it with
the Red Hat Virtualization API it is mandatory, and its value must be ovirt-app-api.
If the user name and password are valid, the Red Hat Virtualization Manager single sign-on service
will respond with a JSON document similar to this one:
{
"access_token": "fqbR1ftzh8wBCviLxJcYuV5oSDI=",
"token_type": "bearer",
"scope": "...",
...
}
For API authentication purposes, the only relevant name/value pair is the access_token. Do not
manipulate this in any way; use it exactly as provided by the SSO service.
Once the token has been obtained, it can be used to perform requests to the API by including it in
the HTTP Authorization header, and using the Bearer scheme. For example, to get the list of
virtual machines, send a request like this:
The token can be used multiple times, for multiple requests, but it will eventually expire. When it
expires, the server will reject the request with the 401 HTTP response code:
18
CHAPTER 2. AUTHENTICATION AND SECURITY
When this happens, a new token is needed, as the Red Hat Virtualization Manager single sign-on
service does not currently support refreshing tokens. A new token can be requested using the same
method described above.
Important
Each request uses HTTP Basic Authentication [2] to encode the credentials. If a request does not
include an appropriate Authorization header, the server sends a 401 Authorization
Required response:
Request are issued with an Authorization header for the specified realm. Encode an appropriate
Red Hat Virtualization Manager domain and user in the supplied credentials with the
username@domain:password convention.
The following table shows the process for encoding credentials in Base64.
Item Value
Domain internal
Password mypassword
19
Red Hat Virtualization 4.0 REST API Guide
HTTP/1.1 200 OK
Important
Important
Some Base64 libraries break the result into multiple lines and terminate each line with a
newline character. This breaks the header and causes a faulty request. The
Authorization header requires the encoded credentials on a single line within the
header.
The API also provides authentication session support. Send an initial request with authentication
details, then send all subsequent requests using a session cookie to authenticate.
HTTP/1.1 200 OK
...
2. Send all subsequent requests with the Prefer: persistent-auth and Cookie headers
with the JSESSIONID= value. The Authorization header is no longer needed when
using an authenticated session.
20
CHAPTER 2. AUTHENTICATION AND SECURITY
HTTP/1.1 200 OK
...
3. When the session is no longer required, perform a request to the sever without the
Prefer: persistent-auth header.
HTTP/1.1 200 OK
...
[2] Basic Authentication is described in RFC 2617 HTTP Authentication: Basic and Digest Access
Authentication.
21
Red Hat Virtualization 4.0 REST API Guide
This chapter provides an example to demonstrate the REST API’s ability to setup a basic Red Hat
Virtualization environment and create a virtual machine. In addition to the standard prerequisites,
this example requires the following:
An ISO file containing a desired virtual machine operating system to install. This chapter uses
CentOS 7 for our installation ISO example; and
Red Hat Virtualization’s engine-iso-uploader tool to upload your chosen operating system
ISO file.
This example uses curl to demonstrate API requests with a client application. Note that any
application capable of HTTP requests can substitute for curl.
Important
For simplicity, the HTTP request headers in this example omit the Host and
Authorization headers. However, these fields are mandatory and require data specific
to your installation of Red Hat Virtualization.
Important
All the curl examples use admin@internal as the user name, mypassword as the
password, /etc/pki/ovirt-engine/ca.pem as the certificate location and
myengine.example.com as the host name. These are just examples, Make sure to
replace them with valid values for your environment.
Note
Red Hat Virtualization generates an unique identifier for the id attribute for each
resource. Identifier codes in this example might appear different to the identifier codes in
your Red Hat Virtualization environment.
Note
In many examples of this section some of the attributes of results returned by the API
have been omitted, to make them shorter. You can always use the reference to find the
complete list of attributes. For example, if you want to see the complete list of attributes of
the Cluster type, just go here.
The following request retrieves a representation of the main entry point for version 4 of of the API:
22
CHAPTER 3. QUICK START EXAMPLE
Same request, but using the /v4 URL prefix instead of the Version header:
curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--request GET \
--header 'Version: 4' \
--header 'Accept: application/xml' \
--user 'admin@internal:mypassword' \
https://myengine.example.com/ovirt-engine/api
<api>
<link href="/ovirt-engine/api/clusters" rel="clusters"/>
<link href="/ovirt-engine/api/datacenters" rel="datacenters"/>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.0.0-0.0.el7</full_version>
<major>4</major>
<minor>0</minor>
<revision>0</revision>
</version>
</product_info>
<special_objects>
<blank_template href="..." id="..."/>
<root_tag href="..." id="..."/>
</special_objects>
<summary>
<hosts>
<active>23</active>
<total>30</total>
</hosts>
<storage_domains>
<active>5</active>
<total>6</total>
</storage_domains>
<users>
<active>12</active>
<total>102</total>
</users>
<vms>
<active>253</active>
23
Red Hat Virtualization 4.0 REST API Guide
<total>545</total>
</vms>
</summary>
<time>2016-10-06T15:38:18.548+02:00</time>
</api>
Important
When neither the header nor the URL prefix are used, the server will automatically select
a version. The default is version 4. You can change the default version using the
ENGINE_API_DEFAULT_VERSION configuration parameter:
Changing this parameter affects all users of the API that don’t specify the version
explicitly.
The entry point provides a user with links to the collections in a virtualization environment. The rel
attribute of each collection link provides a reference point for each link. The next step in this
example examines the data center collection, which is available through the datacenters link.
The entry point also contains other data such as product_info, special_objects and summary. This
data is covered in chapters outside this example.
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--request GET \
--header 'Version: 4' \
--header 'Accept: application/xml' \
--user 'admin@internal:mypassword' \
https://myengine.example.com/ovirt-engine/api/datacenters
<data_centers>
<data_center href="/ovirt-engine/api/datacenters/001" id="001">
<name>Default</name>
<description>The default Data Center</description>
24
CHAPTER 3. QUICK START EXAMPLE
<link href="/ovirt-engine/api/datacenters/001/clusters"
rel="clusters"/>
<link href="/ovirt-engine/api/datacenters/001/storagedomains"
rel="storagedomains"/>
...
<local>false</local>
<quota_mode>disabled</quota_mode>
<status>up</status>
<supported_versions>
<version>
<major>4</major>
<minor>0</minor>
</version>
</supported_versions>
<version>
<major>4</major>
<minor>0</minor>
</version>
</data_center>
...
</data_centers>
Note the id of your Default data center. It identifies this data center in relation to other resources
of your virtual environment.
The data center also contains a link to the service that manages the storage domains attached to
the data center:
<link href="/ovirt-engine/api/datacenters/001/storagedomains"
rel="storagedomains"/>
That service is used to attach storage domains from the main storagedomains collection, which
this example covers later.
Red Hat Virtualization creates a Default hosts cluster on installation. This example uses the
Default cluster to group resources in your Red Hat Virtualization environment.
curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--request GET \
--header 'Version: 4' \
--header 'Accept: application/xml' \
--user 'admin@internal:mypassword' \
https://myengine.example.com/ovirt-engine/api/clusters
25
Red Hat Virtualization 4.0 REST API Guide
<clusters>
<cluster href="/ovirt-engine/api/clusters/002" id="002">
<name>Default</name>
<description>The default server cluster</description>
<link href="/ovirt-engine/api/clusters/002/networks" rel="networks"/>
<link href="/ovirt-engine/api/clusters/002" rel="permissions"/>
...
<cpu>
<architecture>x86_64</architecture>
<type>Intel Conroe Family</type>
</cpu>
<version>
<major>4</major>
<minor>0</minor>
</version>
<data_center href="/ovirt-engine/api/datacenters/001" id="001"/>
</cluster>
...
</clusters>
Note the id of your Default host cluster. It identifies this host cluster in relation to other resources
of your virtual environment.
The Default cluster is associated with the Default data center through a relationship using the
id and href attributes of the data_center link:
The networks link is a reference to the service that manages the networks associated to this
cluster. The next section examines the networks collection in more detail.
This network is associated with our Default cluster and is a member of the Default data center.
This example uses the ovirtmgmt network to connect our virtual machines.
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--request GET \
--header 'Version: 4' \
26
CHAPTER 3. QUICK START EXAMPLE
<networks>
<network href="/ovirt-engine/api/networks/003" id="003">
<name>ovirtmgmt</name>
<description>Management Network</description>
<link href="/ovirt-engine/api/networks/003/permissions"
rel="permissions"/>
<link href="/ovirt-engine/api/networks/003/vnicprofiles"
rel="vnicprofiles"/>
<link href="/ovirt-engine/api/networks/003/networklabels"
rel="networklabels"/>
<mtu>0</mtu>
<stp>false</stp>
<usages>
<usage>vm</usage>
</usages>
<data_center href="/ovirt-engine/api/datacenters/001" id="001"/>
</network>
...
</networks>
The ovirtmgmt network is attached to the Default data center through a relationship using the
data center’s id.
The ovirtmgmt network is also attached to the Default cluster through a relationship in the
cluster’s network sub-collection.
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--request GET \
--header 'Version: 4' \
--header 'Accept: application/xml' \
--user 'admin@internal:mypassword' \
https://myengine.example.com/ovirt-engine/api/hosts
<hosts>
<host href="/ovirt-engine/api/hosts/004" id="004">
27
Red Hat Virtualization 4.0 REST API Guide
<name>myhost</name>
<link href="/ovirt-engine/api/hosts/004/nics" rel="nics"/>
...
<address>node40.example.com</address>
<cpu>
<name>Intel Core Processor (Haswell, no TSX)</name>
<speed>3600</speed>
<topology>
<cores>1</cores>
<sockets>2</sockets>
<threads>1</threads>
</topology>
</cpu>
<memory>8371830784</memory>
<os>
<type>RHEL</type>
<version>
<full_version>7 - 2.1511.el7.centos.2.10</full_version>
<major>7</major>
</version>
</os>
<port>54321</port>
<status>up</status>
<cluster href="/ovirt-engine/api/clusters/002" id="002"/>
</host>
...
</hosts>
Note the id of your host. It identifies this host in relation to other resources of your virtual
environment.
This host is a member of the Default cluster and accessing the nics sub-collection shows this
host has a connection to the ovirtmgmt network.
An NFS data storage domain is an exported NFS share attached to a data center and provides
storage for virtualized guest images. Creation of a new storage domain requires a POST request,
with the storage domain representation included, sent to the URL of the storage domain collection.
You can enable the wipe after delete option by default on the storage domain. To configure this
specify wipe_after_delete in the POST request. This option can be edited after the domain is
created, but doing so will not change the wipe after delete property of disks that already exist.
<storage_domain>
<name>mydata</name>
<type>data</type>
28
CHAPTER 3. QUICK START EXAMPLE
<description>My data</description>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/exports/mydata</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<storage_domain>
<name>mydata</name>
<description>My data</description>
<type>data</type>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/exports/mydata</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
' \
https://myengine.example.com/ovirt-engine/api/storagedomains
The server uses host myhost to create a NFS data storage domain called mydata with an export
path of mynfs.example.com:/exports/mydata. The API also returns the following
representation of the newly created storage domain resource (of type StorageDomain):
29
Red Hat Virtualization 4.0 REST API Guide
</storage_domain>
<storage_domain>
<name>myisos</name>
<description>My ISOs</description>
<type>iso</type>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/exports/myisos</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<storage_domain>
<name>myisos</name>
<description>My ISOs</description>
<type>iso</type>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/exports/myisos</path>
</storage>
<host>
<name>myhost</name>
30
CHAPTER 3. QUICK START EXAMPLE
</host>
</storage_domain>
' \
https://myengine.example.com/ovirt-engine/api/storagedomains
The server uses host myhost to create a NFS ISO storage domain called myisos with an export
path of mynfs.example.com:/exports/myisos. The API also returns the following
representation of the newly created storage domain resource (of type StorageDomain):
The following example attaches the mydata and myisos storage domains to the Default data
center.
<storage_domain>
<name>mydata</name>
</storage_domain>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<storage_domain>
31
Red Hat Virtualization 4.0 REST API Guide
<name>mydata</name>
</storage_domain>
' \
https://myengine.example.com/ovirt-
engine/api/datacenters/001/storagedomains
<storage_domain>
<name>myisos</name>
</storage_domain>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<storage_domain>
<name>myisos</name>
</storage_domain>
' \
https://myengine.example.com/ovirt-
engine/api/datacenters/001/storagedomains
The request should be contain an object of type Vm describing the virtual machine to create:
<vm>
<name>myvm</name>
<description>My VM</description>
<cluster>
<name>Default</name>
32
CHAPTER 3. QUICK START EXAMPLE
</cluster>
<template>
<name>Blank</name>
</template>
<memory>536870912</memory>
<os>
<boot>
<devices>
<device>hd</device>
</devices>
</boot>
</os>
</vm>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<vm>
<name>myvm</name>
<description>My VM</description>
<cluster>
<name>Default</name>
</cluster>
<template>
<name>Blank</name>
</template>
<memory>536870912</memory>
<os>
<boot>
<devices>
<device>hd</device>
</devices>
</boot>
</os>
</vm>
' \
https://myengine.example.com/ovirt-engine/api/vms
33
Red Hat Virtualization 4.0 REST API Guide
<cores>1</cores>
<sockets>1</sockets>
<threads>1</threads>
</topology>
</cpu>
<memory>1073741824</memory>
<os>
<boot>
<devices>
<device>hd</device>
</devices>
</boot>
<type>other</type>
</os>
<type>desktop</type>
<cluster href="/ovirt-engine/api/clusters/002" id="002"/>
<status>down</status>
<original_template href="/ovirt-engine/api/templates/000" id="00"/>
<template href="/ovirt-engine/api/templates/000" id="000"/>
</vm>
The request body should contain an object of type Nic describing the NIC to be created:
<nic>
<name>mynic</name>
<description>My network interface card</description>
</nic>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<nic>
<name>mynic</name>
34
CHAPTER 3. QUICK START EXAMPLE
The request body should be an object of type DiskAttachment describing the disk and how it will be
attached to the virtual machine:
<disk_attachment>
<bootable>false</bootable>
<interface>virtio</interface>
<active>true</active>
<disk>
<description>My disk</description>
<format>cow</format>
<name>mydisk</name>
<provisioned_size>8589934592</provisioned_size>
<storage_domains>
<storage_domain>
<name>mydata</name>
</storage_domain>
</storage_domains>
</disk>
</disk_attachment>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<disk_attachment>
<bootable>false</bootable>
<interface>virtio</interface>
<active>true</active>
<disk>
<description>My disk</description>
<format>cow</format>
<name>mydisk</name>
<provisioned_size>8589934592</provisioned_size>
35
Red Hat Virtualization 4.0 REST API Guide
<storage_domains>
<storage_domain>
<name>mydata</name>
</storage_domain>
</storage_domains>
</disk>
</disk_attachment>
' \
https://myengine.example.com/ovirt-engine/api/vms/007/diskattachments
The storage_domains attribute tells the API to store the disk on the mydata storage domain.
ISO images must be available in the myisos ISO domain for the virtual machines to use. Red Hat
Virtualization provides an uploader tool that ensures that the ISO images are uploaded into the
correct directory path with the correct user permissions.
Once the ISO is uploaded, an API can be used to request the list of files from the ISO storage
domain:
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request GET \
--header 'Version: 4' \
--header 'Accept: application/xml' \
https://myengine.example.com/ovirt-engine/api/storagedomains/006/files
The server returns the following list of objects of type File, one for each available ISO (or floppy)
image:
<files>
<file href="..." id="CentOS-7-x86_64-Minimal.iso">
<name>CentOS-7-x86_64-Minimal.iso</name>
</file>
...
</files>
PUT /ovirt-engine/api/vms/007/cdroms/00000000-0000-0000-0000-
000000000000 HTTP/1.1
36
CHAPTER 3. QUICK START EXAMPLE
Accept: application/xml
Content-type: application/xml
The request body should be an object of type Cdrom containing an inner file attribute to indicate
the identifier of the ISO (or floppy) image:
<cdrom>
<file id="CentOS-7-x86_64-Minimal.iso"/>
</cdrom>
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request PUT \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<cdrom>
<file id="CentOS-7-x86_64-Minimal.iso"/>
</cdrom>
' \
https://myengine.example.com/ovirt-engine/api/vms/007/cdroms/00000000-
0000-0000-0000-000000000000
For more details see the documentation of the service that manages virtual machine CD-ROMS.
<action>
<vm>
<os>
<boot>
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
</action>
37
Red Hat Virtualization 4.0 REST API Guide
# curl \
--cacert '/etc/pki/ovirt-engine/ca.pem' \
--user 'admin@internal:mypassword' \
--request POST \
--header 'Version: 4' \
--header 'Content-Type: application/xml' \
--header 'Accept: application/xml' \
--data '
<action>
<vm>
<os>
<boot>
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
</action>
' \
https://myengine.example.com/ovirt-engine/api/vms/007/start
The additional request body sets the virtual machine’s boot device to CD-ROM for this boot only.
This enables the virtual machine to install the operating system from the attached ISO image. The
boot device reverts back to disk for all future boots.
38
CHAPTER 4. REQUESTS
CHAPTER 4. REQUESTS
This section enumerates all the requests that are available in the API.
POST /affinitylabels
GET /affinitylabels
GET /affinitylabels/{label:id}
PUT /affinitylabels/{label:id}
DELETE /affinitylabels/{label:id}
POST /affinitylabels/{label:id}/hosts
GET /affinitylabels/{label:id}/hosts
DELETE /affinitylabels/{label:id}/hosts/{host:id}
GET /affinitylabels/{label:id}/hosts/{host:id}
POST /affinitylabels/{label:id}/vms
GET /affinitylabels/{label:id}/vms
DELETE /affinitylabels/{label:id}/vms/{vm:id}
GET /affinitylabels/{label:id}/vms/{vm:id}
POST /bookmarks
GET /bookmarks
GET /bookmarks/{bookmark:id}
PUT /bookmarks/{bookmark:id}
DELETE /bookmarks/{bookmark:id}
GET /clusterlevels
GET /clusterlevels/{level:id}
POST /clusters
GET /clusters
GET /clusters/{cluster:id}
PUT /clusters/{cluster:id}
DELETE /clusters/{cluster:id}
POST /clusters/{cluster:id}/affinitygroups
GET /clusters/{cluster:id}/affinitygroups
GET /clusters/{cluster:id}/affinitygroups/{group:id}
PUT /clusters/{cluster:id}/affinitygroups/{group:id}
39
Red Hat Virtualization 4.0 REST API Guide
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}
POST /clusters/{cluster:id}/affinitygroups/{group:id}/vms
GET /clusters/{cluster:id}/affinitygroups/{group:id}/vms
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}/vms/{vm:id}
POST /clusters/{cluster:id}/cpuprofiles
GET /clusters/{cluster:id}/cpuprofiles
GET /clusters/{cluster:id}/cpuprofiles/{profile:id}
DELETE /clusters/{cluster:id}/cpuprofiles/{profile:id}
GET /clusters/{cluster:id}/glusterhooks
GET /clusters/{cluster:id}/glusterhooks/{hook:id}
DELETE /clusters/{cluster:id}/glusterhooks/{hook:id}
POST /clusters/{cluster:id}/glusterhooks/{hook:id}/disable
POST /clusters/{cluster:id}/glusterhooks/{hook:id}/enable
POST /clusters/{cluster:id}/glusterhooks/{hook:id}/resolve
POST /clusters/{cluster:id}/glustervolumes
GET /clusters/{cluster:id}/glustervolumes
GET /clusters/{cluster:id}/glustervolumes/{volume:id}
DELETE /clusters/{cluster:id}/glustervolumes/{volume:id}
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/getprofilestatistics
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
DELETE /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/activate
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/migrate
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/stopmigrate
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
DELETE /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/replace
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics/{statistic:id}
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/rebalance
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/resetalloptions
40
CHAPTER 4. REQUESTS
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/resetoption
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/setoption
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/start
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/startprofile
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/statistics
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/statistics/{statistic:id}
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/stop
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/stopprofile
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/stoprebalance
GET /clusters/{cluster:id}/networkfilters
GET /clusters/{cluster:id}/networkfilters/{networkfilter:id}
POST /clusters/{cluster:id}/networks
GET /clusters/{cluster:id}/networks
GET /clusters/{cluster:id}/networks/{network:id}
DELETE /clusters/{cluster:id}/networks/{network:id}
PUT /clusters/{cluster:id}/networks/{network:id}
POST /clusters/{cluster:id}/permissions
GET /clusters/{cluster:id}/permissions
GET /clusters/{cluster:id}/permissions/{permission:id}
DELETE /clusters/{cluster:id}/permissions/{permission:id}
POST /clusters/{cluster:id}/resetemulatedmachine
POST /cpuprofiles
GET /cpuprofiles
GET /cpuprofiles/{profile:id}
PUT /cpuprofiles/{profile:id}
DELETE /cpuprofiles/{profile:id}
POST /cpuprofiles/{profile:id}/permissions
GET /cpuprofiles/{profile:id}/permissions
GET /cpuprofiles/{profile:id}/permissions/{permission:id}
DELETE /cpuprofiles/{profile:id}/permissions/{permission:id}
POST /datacenters
GET /datacenters
41
Red Hat Virtualization 4.0 REST API Guide
GET /datacenters/{datacenter:id}
PUT /datacenters/{datacenter:id}
DELETE /datacenters/{datacenter:id}
POST /datacenters/{datacenter:id}/clusters
GET /datacenters/{datacenter:id}/clusters
GET /datacenters/{datacenter:id}/clusters/{cluster:id}
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms/{vm:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}/disable
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}/enable
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}/resolve
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/getprofilestatistics
42
CHAPTER 4. REQUESTS
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/activate
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/migrate
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/stopmigrate
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/replace
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/rebalance
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/resetalloptions
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/resetoption
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/setoption
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/start
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/startprofile
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/statistics
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/statistics/{statistic:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/stop
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/stopprofile
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/stoprebalance
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networkfilters
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networkfilters/{networkfilter:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/networks
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networks
43
Red Hat Virtualization 4.0 REST API Guide
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networks/{network:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/networks/{network:id}
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}/networks/{network:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions/{permission:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/resetemulatedmachine
POST /datacenters/{datacenter:id}/iscsibonds
GET /datacenters/{datacenter:id}/iscsibonds
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}
PUT /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}
PUT /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels/{label:id}
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels/{label:id}
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions/{permission:id}
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
44
CHAPTER 4. REQUESTS
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
POST
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/storageserverconnections
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/storageserverconnections
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/storageserverconnections/{storageconnection:id}
PUT
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/storageserverconnections/{storageconnection:id}
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/storageserverconnections/{storageconnection:id}
POST /datacenters/{datacenter:id}/networks
GET /datacenters/{datacenter:id}/networks
GET /datacenters/{datacenter:id}/networks/{network:id}
PUT /datacenters/{datacenter:id}/networks/{network:id}
DELETE /datacenters/{datacenter:id}/networks/{network:id}
POST /datacenters/{datacenter:id}/networks/{network:id}/networklabels
GET /datacenters/{datacenter:id}/networks/{network:id}/networklabels
GET /datacenters/{datacenter:id}/networks/{network:id}/networklabels/{label:id}
DELETE /datacenters/{datacenter:id}/networks/{network:id}/networklabels/{label:id}
POST /datacenters/{datacenter:id}/networks/{network:id}/permissions
GET /datacenters/{datacenter:id}/networks/{network:id}/permissions
GET /datacenters/{datacenter:id}/networks/{network:id}/permissions/{permission:id}
DELETE /datacenters/{datacenter:id}/networks/{network:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles
GET /datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles
GET /datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles/{profile:id}
DELETE /datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles/{profile:id}
45
Red Hat Virtualization 4.0 REST API Guide
POST /datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
GET /datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
GET
/datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions/{permission:id}
DELETE
/datacenters/{datacenter:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/permissions
GET /datacenters/{datacenter:id}/permissions
GET /datacenters/{datacenter:id}/permissions/{permission:id}
DELETE /datacenters/{datacenter:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/qoss
GET /datacenters/{datacenter:id}/qoss
GET /datacenters/{datacenter:id}/qoss/{qos:id}
PUT /datacenters/{datacenter:id}/qoss/{qos:id}
DELETE /datacenters/{datacenter:id}/qoss/{qos:id}
POST /datacenters/{datacenter:id}/quotas
GET /datacenters/{datacenter:id}/quotas
GET /datacenters/{datacenter:id}/quotas/{quota:id}
PUT /datacenters/{datacenter:id}/quotas/{quota:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}
POST /datacenters/{datacenter:id}/quotas/{quota:id}/permissions
GET /datacenters/{datacenter:id}/quotas/{quota:id}/permissions
GET /datacenters/{datacenter:id}/quotas/{quota:id}/permissions/{permission:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits/{limit:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits/{limit:id}
POST /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits/{limit:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits/{limit:id}
POST /datacenters/{datacenter:id}/storagedomains
46
CHAPTER 4. REQUESTS
GET /datacenters/{datacenter:id}/storagedomains
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}
DELETE /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/activate
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/deactivate
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}
DELETE /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/copy
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/export
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/move
POST
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions
GET
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:id}
DELETE
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:id}
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/statistics
GET
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/statistics/{statistic:id}
POST /diskprofiles
GET /diskprofiles
GET /diskprofiles/{diskprofile:id}
PUT /diskprofiles/{diskprofile:id}
DELETE /diskprofiles/{diskprofile:id}
POST /diskprofiles/{diskprofile:id}/permissions
GET /diskprofiles/{diskprofile:id}/permissions
GET /diskprofiles/{diskprofile:id}/permissions/{permission:id}
DELETE /diskprofiles/{diskprofile:id}/permissions/{permission:id}
POST /disks
GET /disks
GET /disks/{disk:id}
47
Red Hat Virtualization 4.0 REST API Guide
DELETE /disks/{disk:id}
POST /disks/{disk:id}/copy
POST /disks/{disk:id}/export
POST /disks/{disk:id}/move
POST /disks/{disk:id}/permissions
GET /disks/{disk:id}/permissions
GET /disks/{disk:id}/permissions/{permission:id}
DELETE /disks/{disk:id}/permissions/{permission:id}
GET /disks/{disk:id}/statistics
GET /disks/{disk:id}/statistics/{statistic:id}
GET /domains
GET /domains/{domain:id}
GET /domains/{domain:id}/groups
GET /domains/{domain:id}/groups/{group:id}
GET /domains/{domain:id}/users
GET /domains/{domain:id}/users/{user:id}
POST /events
GET /events
POST /events/undelete
GET /events/{event:id}
DELETE /events/{event:id}
POST /externalhostproviders
GET /externalhostproviders
GET /externalhostproviders/{provider:id}
PUT /externalhostproviders/{provider:id}
DELETE /externalhostproviders/{provider:id}
GET /externalhostproviders/{provider:id}/certificates
GET /externalhostproviders/{provider:id}/certificates/{certificate:id}
GET /externalhostproviders/{provider:id}/computeresources
GET /externalhostproviders/{provider:id}/computeresources/{resource:id}
GET /externalhostproviders/{provider:id}/discoveredhosts
48
CHAPTER 4. REQUESTS
GET /externalhostproviders/{provider:id}/discoveredhosts/{host:id}
GET /externalhostproviders/{provider:id}/hostgroups
GET /externalhostproviders/{provider:id}/hostgroups/{group:id}
GET /externalhostproviders/{provider:id}/hosts
GET /externalhostproviders/{provider:id}/hosts/{host:id}
POST /externalhostproviders/{provider:id}/importcertificates
POST /externalhostproviders/{provider:id}/testconnectivity
POST /externalvmimports
POST /groups
GET /groups
GET /groups/{group:id}
DELETE /groups/{group:id}
POST /groups/{group:id}/permissions
GET /groups/{group:id}/permissions
GET /groups/{group:id}/permissions/{permission:id}
DELETE /groups/{group:id}/permissions/{permission:id}
GET /groups/{group:id}/roles
GET /groups/{group:id}/roles/{role:id}
DELETE /groups/{group:id}/roles/{role:id}
PUT /groups/{group:id}/roles/{role:id}
POST /groups/{group:id}/roles/{role:id}/permits
GET /groups/{group:id}/roles/{role:id}/permits
GET /groups/{group:id}/roles/{role:id}/permits/{permit:id}
DELETE /groups/{group:id}/roles/{role:id}/permits/{permit:id}
POST /groups/{group:id}/tags
GET /groups/{group:id}/tags
GET /groups/{group:id}/tags/{tag:id}
DELETE /groups/{group:id}/tags/{tag:id}
POST /hosts
GET /hosts
GET /hosts/{host:id}
PUT /hosts/{host:id}
49
Red Hat Virtualization 4.0 REST API Guide
DELETE /hosts/{host:id}
POST /hosts/{host:id}/activate
POST /hosts/{host:id}/affinitylabels
GET /hosts/{host:id}/affinitylabels
GET /hosts/{host:id}/affinitylabels/{label:id}
DELETE /hosts/{host:id}/affinitylabels/{label:id}
POST /hosts/{host:id}/approve
POST /hosts/{host:id}/commitnetconfig
POST /hosts/{host:id}/deactivate
GET /hosts/{host:id}/devices
GET /hosts/{host:id}/devices/{device:id}
POST /hosts/{host:id}/enrollcertificate
POST /hosts/{host:id}/fence
POST /hosts/{host:id}/fenceagents
GET /hosts/{host:id}/fenceagents
GET /hosts/{host:id}/fenceagents/{agent:id}
PUT /hosts/{host:id}/fenceagents/{agent:id}
DELETE /hosts/{host:id}/fenceagents/{agent:id}
POST /hosts/{host:id}/forceselectspm
GET /hosts/{host:id}/hooks
GET /hosts/{host:id}/hooks/{hook:id}
POST /hosts/{host:id}/install
POST /hosts/{host:id}/iscsidiscover
POST /hosts/{host:id}/iscsilogin
GET /hosts/{host:id}/katelloerrata
GET /hosts/{host:id}/katelloerrata/{katelloerratum:id}
POST /hosts/{host:id}/networkattachments
GET /hosts/{host:id}/networkattachments
GET /hosts/{host:id}/networkattachments/{attachment:id}
PUT /hosts/{host:id}/networkattachments/{attachment:id}
DELETE /hosts/{host:id}/networkattachments/{attachment:id}
GET /hosts/{host:id}/nics
50
CHAPTER 4. REQUESTS
GET /hosts/{host:id}/nics/{nic:id}
POST /hosts/{host:id}/nics/{nic:id}/networkattachments
GET /hosts/{host:id}/nics/{nic:id}/networkattachments
GET /hosts/{host:id}/nics/{nic:id}/networkattachments/{attachment:id}
PUT /hosts/{host:id}/nics/{nic:id}/networkattachments/{attachment:id}
DELETE /hosts/{host:id}/nics/{nic:id}/networkattachments/{attachment:id}
POST /hosts/{host:id}/nics/{nic:id}/networklabels
GET /hosts/{host:id}/nics/{nic:id}/networklabels
GET /hosts/{host:id}/nics/{nic:id}/networklabels/{label:id}
DELETE /hosts/{host:id}/nics/{nic:id}/networklabels/{label:id}
GET /hosts/{host:id}/nics/{nic:id}/statistics
GET /hosts/{host:id}/nics/{nic:id}/statistics/{statistic:id}
POST /hosts/{host:id}/nics/{nic:id}/updatevirtualfunctionsconfiguration
POST /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowedlabels
GET /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowedlabels
GET /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowedlabels/{label:id}
DELETE /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowedlabels/{label:id}
POST /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowednetworks
GET /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowednetworks
GET /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowednetworks/{network:id}
DELETE /hosts/{host:id}/nics/{nic:id}/virtualfunctionallowednetworks/{network:id}
GET /hosts/{host:id}/numanodes
GET /hosts/{host:id}/numanodes/{node:id}
GET /hosts/{host:id}/numanodes/{node:id}/statistics
GET /hosts/{host:id}/numanodes/{node:id}/statistics/{statistic:id}
POST /hosts/{host:id}/permissions
GET /hosts/{host:id}/permissions
GET /hosts/{host:id}/permissions/{permission:id}
DELETE /hosts/{host:id}/permissions/{permission:id}
POST /hosts/{host:id}/refresh
POST /hosts/{host:id}/setupnetworks
GET /hosts/{host:id}/statistics
51
Red Hat Virtualization 4.0 REST API Guide
GET /hosts/{host:id}/statistics/{statistic:id}
GET /hosts/{host:id}/storage
GET /hosts/{host:id}/storage/{storage:id}
POST /hosts/{host:id}/storageconnectionextensions
GET /hosts/{host:id}/storageconnectionextensions
GET /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
PUT /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
DELETE /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
POST /hosts/{host:id}/tags
GET /hosts/{host:id}/tags
GET /hosts/{host:id}/tags/{tag:id}
DELETE /hosts/{host:id}/tags/{tag:id}
GET /hosts/{host:id}/unmanagednetworks
GET /hosts/{host:id}/unmanagednetworks/{unmanagednetwork:id}
DELETE /hosts/{host:id}/unmanagednetworks/{unmanagednetwork:id}
POST /hosts/{host:id}/unregisteredstoragedomainsdiscover
POST /hosts/{host:id}/upgrade
GET /icons
GET /icons/{icon:id}
POST /imagetransfers
GET /imagetransfers
GET /imagetransfers/{imagetransfer:id}
POST /imagetransfers/{imagetransfer:id}/extend
POST /imagetransfers/{imagetransfer:id}/finalize
POST /imagetransfers/{imagetransfer:id}/pause
POST /imagetransfers/{imagetransfer:id}/resume
POST /instancetypes
GET /instancetypes
GET /instancetypes/{instancetype:id}
PUT /instancetypes/{instancetype:id}
DELETE /instancetypes/{instancetype:id}
POST /instancetypes/{instancetype:id}/graphicsconsoles
52
CHAPTER 4. REQUESTS
GET /instancetypes/{instancetype:id}/graphicsconsoles
GET /instancetypes/{instancetype:id}/graphicsconsoles/{console:id}
DELETE /instancetypes/{instancetype:id}/graphicsconsoles/{console:id}
POST /instancetypes/{instancetype:id}/nics
GET /instancetypes/{instancetype:id}/nics
GET /instancetypes/{instancetype:id}/nics/{nic:id}
PUT /instancetypes/{instancetype:id}/nics/{nic:id}
DELETE /instancetypes/{instancetype:id}/nics/{nic:id}
POST /instancetypes/{instancetype:id}/watchdogs
GET /instancetypes/{instancetype:id}/watchdogs
GET /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
PUT /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
DELETE /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
POST /jobs
GET /jobs
GET /jobs/{job:id}
POST /jobs/{job:id}/clear
POST /jobs/{job:id}/end
POST /jobs/{job:id}/steps
GET /jobs/{job:id}/steps
GET /jobs/{job:id}/steps/{step:id}
POST /jobs/{job:id}/steps/{step:id}/end
GET /jobs/{job:id}/steps/{step:id}/statistics
GET /jobs/{job:id}/steps/{step:id}/statistics/{statistic:id}
GET /katelloerrata
GET /katelloerrata/{katelloerratum:id}
POST /macpools
GET /macpools
GET /macpools/{macpool:id}
PUT /macpools/{macpool:id}
DELETE /macpools/{macpool:id}
GET /networkfilters
53
Red Hat Virtualization 4.0 REST API Guide
GET /networkfilters/{networkfilter:id}
POST /networks
GET /networks
GET /networks/{network:id}
PUT /networks/{network:id}
DELETE /networks/{network:id}
POST /networks/{network:id}/networklabels
GET /networks/{network:id}/networklabels
GET /networks/{network:id}/networklabels/{label:id}
DELETE /networks/{network:id}/networklabels/{label:id}
POST /networks/{network:id}/permissions
GET /networks/{network:id}/permissions
GET /networks/{network:id}/permissions/{permission:id}
DELETE /networks/{network:id}/permissions/{permission:id}
POST /networks/{network:id}/vnicprofiles
GET /networks/{network:id}/vnicprofiles
GET /networks/{network:id}/vnicprofiles/{profile:id}
DELETE /networks/{network:id}/vnicprofiles/{profile:id}
POST /networks/{network:id}/vnicprofiles/{profile:id}/permissions
GET /networks/{network:id}/vnicprofiles/{profile:id}/permissions
GET /networks/{network:id}/vnicprofiles/{profile:id}/permissions/{permission:id}
DELETE /networks/{network:id}/vnicprofiles/{profile:id}/permissions/{permission:id}
POST /openstackimageproviders
GET /openstackimageproviders
GET /openstackimageproviders/{provider:id}
PUT /openstackimageproviders/{provider:id}
DELETE /openstackimageproviders/{provider:id}
GET /openstackimageproviders/{provider:id}/certificates
GET /openstackimageproviders/{provider:id}/certificates/{certificate:id}
GET /openstackimageproviders/{provider:id}/images
GET /openstackimageproviders/{provider:id}/images/{image:id}
POST /openstackimageproviders/{provider:id}/images/{image:id}/import
54
CHAPTER 4. REQUESTS
POST /openstackimageproviders/{provider:id}/importcertificates
POST /openstackimageproviders/{provider:id}/testconnectivity
POST /openstacknetworkproviders
GET /openstacknetworkproviders
GET /openstacknetworkproviders/{provider:id}
PUT /openstacknetworkproviders/{provider:id}
DELETE /openstacknetworkproviders/{provider:id}
GET /openstacknetworkproviders/{provider:id}/certificates
GET /openstacknetworkproviders/{provider:id}/certificates/{certificate:id}
POST /openstacknetworkproviders/{provider:id}/importcertificates
GET /openstacknetworkproviders/{provider:id}/networks
GET /openstacknetworkproviders/{provider:id}/networks/{network:id}
POST /openstacknetworkproviders/{provider:id}/networks/{network:id}/import
POST /openstacknetworkproviders/{provider:id}/networks/{network:id}/subnets
GET /openstacknetworkproviders/{provider:id}/networks/{network:id}/subnets
GET /openstacknetworkproviders/{provider:id}/networks/{network:id}/subnets/{subnet:id}
DELETE /openstacknetworkproviders/{provider:id}/networks/{network:id}/subnets/{subnet:id}
POST /openstacknetworkproviders/{provider:id}/testconnectivity
POST /openstackvolumeproviders
GET /openstackvolumeproviders
GET /openstackvolumeproviders/{provider:id}
PUT /openstackvolumeproviders/{provider:id}
DELETE /openstackvolumeproviders/{provider:id}
POST /openstackvolumeproviders/{provider:id}/authenticationkeys
GET /openstackvolumeproviders/{provider:id}/authenticationkeys
GET /openstackvolumeproviders/{provider:id}/authenticationkeys/{key:id}
PUT /openstackvolumeproviders/{provider:id}/authenticationkeys/{key:id}
DELETE /openstackvolumeproviders/{provider:id}/authenticationkeys/{key:id}
GET /openstackvolumeproviders/{provider:id}/certificates
GET /openstackvolumeproviders/{provider:id}/certificates/{certificate:id}
POST /openstackvolumeproviders/{provider:id}/importcertificates
POST /openstackvolumeproviders/{provider:id}/testconnectivity
55
Red Hat Virtualization 4.0 REST API Guide
GET /openstackvolumeproviders/{provider:id}/volumetypes
GET /openstackvolumeproviders/{provider:id}/volumetypes/{type:id}
GET /operatingsystems
GET /operatingsystems/{operatingsystem:id}
POST /permissions
GET /permissions
GET /permissions/{permission:id}
DELETE /permissions/{permission:id}
POST /roles
GET /roles
GET /roles/{role:id}
DELETE /roles/{role:id}
PUT /roles/{role:id}
POST /roles/{role:id}/permits
GET /roles/{role:id}/permits
GET /roles/{role:id}/permits/{permit:id}
DELETE /roles/{role:id}/permits/{permit:id}
POST /schedulingpolicies
GET /schedulingpolicies
GET /schedulingpolicies/{policy:id}
PUT /schedulingpolicies/{policy:id}
DELETE /schedulingpolicies/{policy:id}
POST /schedulingpolicies/{policy:id}/balances
GET /schedulingpolicies/{policy:id}/balances
GET /schedulingpolicies/{policy:id}/balances/{balance:id}
DELETE /schedulingpolicies/{policy:id}/balances/{balance:id}
POST /schedulingpolicies/{policy:id}/filters
GET /schedulingpolicies/{policy:id}/filters
GET /schedulingpolicies/{policy:id}/filters/{filter:id}
DELETE /schedulingpolicies/{policy:id}/filters/{filter:id}
POST /schedulingpolicies/{policy:id}/weights
GET /schedulingpolicies/{policy:id}/weights
56
CHAPTER 4. REQUESTS
GET /schedulingpolicies/{policy:id}/weights/{weight:id}
DELETE /schedulingpolicies/{policy:id}/weights/{weight:id}
GET /schedulingpolicyunits
GET /schedulingpolicyunits/{unit:id}
DELETE /schedulingpolicyunits/{unit:id}
POST /storageconnections
GET /storageconnections
GET /storageconnections/{storageconnection:id}
PUT /storageconnections/{storageconnection:id}
DELETE /storageconnections/{storageconnection:id}
POST /storagedomains
GET /storagedomains
GET /storagedomains/{storagedomain:id}
PUT /storagedomains/{storagedomain:id}
DELETE /storagedomains/{storagedomain:id}
POST /storagedomains/{storagedomain:id}/diskprofiles
GET /storagedomains/{storagedomain:id}/diskprofiles
GET /storagedomains/{storagedomain:id}/diskprofiles/{profile:id}
DELETE /storagedomains/{storagedomain:id}/diskprofiles/{profile:id}
POST /storagedomains/{storagedomain:id}/disks
GET /storagedomains/{storagedomain:id}/disks
GET /storagedomains/{storagedomain:id}/disks/{disk:id}
DELETE /storagedomains/{storagedomain:id}/disks/{disk:id}
POST /storagedomains/{storagedomain:id}/disks/{disk:id}/copy
POST /storagedomains/{storagedomain:id}/disks/{disk:id}/export
POST /storagedomains/{storagedomain:id}/disks/{disk:id}/move
POST /storagedomains/{storagedomain:id}/disks/{disk:id}/permissions
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/permissions
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:id}
DELETE /storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:id}
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/statistics
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/statistics/{statistic:id}
57
Red Hat Virtualization 4.0 REST API Guide
GET /storagedomains/{storagedomain:id}/disksnapshots
GET /storagedomains/{storagedomain:id}/disksnapshots/{snapshot:id}
DELETE /storagedomains/{storagedomain:id}/disksnapshots/{snapshot:id}
GET /storagedomains/{storagedomain:id}/files
GET /storagedomains/{storagedomain:id}/files/{file:id}
GET /storagedomains/{storagedomain:id}/images
GET /storagedomains/{storagedomain:id}/images/{image:id}
POST /storagedomains/{storagedomain:id}/images/{image:id}/import
POST /storagedomains/{storagedomain:id}/isattached
POST /storagedomains/{storagedomain:id}/permissions
GET /storagedomains/{storagedomain:id}/permissions
GET /storagedomains/{storagedomain:id}/permissions/{permission:id}
DELETE /storagedomains/{storagedomain:id}/permissions/{permission:id}
POST /storagedomains/{storagedomain:id}/refreshluns
POST /storagedomains/{storagedomain:id}/storageconnections
GET /storagedomains/{storagedomain:id}/storageconnections
GET /storagedomains/{storagedomain:id}/storageconnections/{connection:id}
DELETE /storagedomains/{storagedomain:id}/storageconnections/{connection:id}
GET /storagedomains/{storagedomain:id}/templates
GET /storagedomains/{storagedomain:id}/templates/{template:id}
DELETE /storagedomains/{storagedomain:id}/templates/{template:id}
GET /storagedomains/{storagedomain:id}/templates/{template:id}/disks
GET /storagedomains/{storagedomain:id}/templates/{template:id}/disks/{disk:id}
POST /storagedomains/{storagedomain:id}/templates/{template:id}/import
POST /storagedomains/{storagedomain:id}/templates/{template:id}/register
POST /storagedomains/{storagedomain:id}/updateovfstore
GET /storagedomains/{storagedomain:id}/vms
GET /storagedomains/{storagedomain:id}/vms/{vm:id}
DELETE /storagedomains/{storagedomain:id}/vms/{vm:id}
GET /storagedomains/{storagedomain:id}/vms/{vm:id}/diskattachments
GET /storagedomains/{storagedomain:id}/vms/{vm:id}/diskattachments/{attachment:id}
GET /storagedomains/{storagedomain:id}/vms/{vm:id}/disks
58
CHAPTER 4. REQUESTS
GET /storagedomains/{storagedomain:id}/vms/{vm:id}/disks/{disk:id}
POST /storagedomains/{storagedomain:id}/vms/{vm:id}/import
POST /storagedomains/{storagedomain:id}/vms/{vm:id}/register
POST /tags
GET /tags
GET /tags/{tag:id}
PUT /tags/{tag:id}
DELETE /tags/{tag:id}
POST /templates
GET /templates
GET /templates/{template:id}
PUT /templates/{template:id}
DELETE /templates/{template:id}
GET /templates/{template:id}/cdroms
GET /templates/{template:id}/cdroms/{cdrom:id}
GET /templates/{template:id}/diskattachments
GET /templates/{template:id}/diskattachments/{attachment:id}
DELETE /templates/{template:id}/diskattachments/{attachment:id}
POST /templates/{template:id}/export
POST /templates/{template:id}/graphicsconsoles
GET /templates/{template:id}/graphicsconsoles
GET /templates/{template:id}/graphicsconsoles/{console:id}
DELETE /templates/{template:id}/graphicsconsoles/{console:id}
POST /templates/{template:id}/nics
GET /templates/{template:id}/nics
GET /templates/{template:id}/nics/{nic:id}
PUT /templates/{template:id}/nics/{nic:id}
DELETE /templates/{template:id}/nics/{nic:id}
POST /templates/{template:id}/permissions
GET /templates/{template:id}/permissions
GET /templates/{template:id}/permissions/{permission:id}
DELETE /templates/{template:id}/permissions/{permission:id}
59
Red Hat Virtualization 4.0 REST API Guide
POST /templates/{template:id}/tags
GET /templates/{template:id}/tags
GET /templates/{template:id}/tags/{tag:id}
DELETE /templates/{template:id}/tags/{tag:id}
POST /templates/{template:id}/watchdogs
GET /templates/{template:id}/watchdogs
GET /templates/{template:id}/watchdogs/{watchdog:id}
PUT /templates/{template:id}/watchdogs/{watchdog:id}
DELETE /templates/{template:id}/watchdogs/{watchdog:id}
POST /users
GET /users
GET /users/{user:id}
DELETE /users/{user:id}
POST /users/{user:id}/permissions
GET /users/{user:id}/permissions
GET /users/{user:id}/permissions/{permission:id}
DELETE /users/{user:id}/permissions/{permission:id}
GET /users/{user:id}/roles
GET /users/{user:id}/roles/{role:id}
DELETE /users/{user:id}/roles/{role:id}
PUT /users/{user:id}/roles/{role:id}
POST /users/{user:id}/roles/{role:id}/permits
GET /users/{user:id}/roles/{role:id}/permits
GET /users/{user:id}/roles/{role:id}/permits/{permit:id}
DELETE /users/{user:id}/roles/{role:id}/permits/{permit:id}
POST /users/{user:id}/sshpublickeys
GET /users/{user:id}/sshpublickeys
GET /users/{user:id}/sshpublickeys/{key:id}
PUT /users/{user:id}/sshpublickeys/{key:id}
DELETE /users/{user:id}/sshpublickeys/{key:id}
POST /users/{user:id}/tags
GET /users/{user:id}/tags
60
CHAPTER 4. REQUESTS
GET /users/{user:id}/tags/{tag:id}
DELETE /users/{user:id}/tags/{tag:id}
POST /vmpools
GET /vmpools
GET /vmpools/{pool:id}
PUT /vmpools/{pool:id}
DELETE /vmpools/{pool:id}
POST /vmpools/{pool:id}/allocatevm
POST /vmpools/{pool:id}/permissions
GET /vmpools/{pool:id}/permissions
GET /vmpools/{pool:id}/permissions/{permission:id}
DELETE /vmpools/{pool:id}/permissions/{permission:id}
POST /vms
GET /vms
GET /vms/{vm:id}
PUT /vms/{vm:id}
DELETE /vms/{vm:id}
POST /vms/{vm:id}/affinitylabels
GET /vms/{vm:id}/affinitylabels
GET /vms/{vm:id}/affinitylabels/{label:id}
DELETE /vms/{vm:id}/affinitylabels/{label:id}
GET /vms/{vm:id}/applications
GET /vms/{vm:id}/applications/{application:id}
POST /vms/{vm:id}/cancelmigration
GET /vms/{vm:id}/cdroms
GET /vms/{vm:id}/cdroms/{cdrom:id}
PUT /vms/{vm:id}/cdroms/{cdrom:id}
POST /vms/{vm:id}/clone
POST /vms/{vm:id}/commitsnapshot
POST /vms/{vm:id}/detach
POST /vms/{vm:id}/diskattachments
GET /vms/{vm:id}/diskattachments
61
Red Hat Virtualization 4.0 REST API Guide
GET /vms/{vm:id}/diskattachments/{attachment:id}
DELETE /vms/{vm:id}/diskattachments/{attachment:id}
PUT /vms/{vm:id}/diskattachments/{attachment:id}
POST /vms/{vm:id}/export
POST /vms/{vm:id}/freezefilesystems
POST /vms/{vm:id}/graphicsconsoles
GET /vms/{vm:id}/graphicsconsoles
GET /vms/{vm:id}/graphicsconsoles/{console:id}
DELETE /vms/{vm:id}/graphicsconsoles/{console:id}
POST /vms/{vm:id}/hostdevices
GET /vms/{vm:id}/hostdevices
GET /vms/{vm:id}/hostdevices/{device:id}
DELETE /vms/{vm:id}/hostdevices/{device:id}
GET /vms/{vm:id}/katelloerrata
GET /vms/{vm:id}/katelloerrata/{katelloerratum:id}
POST /vms/{vm:id}/logon
POST /vms/{vm:id}/maintenance
POST /vms/{vm:id}/migrate
POST /vms/{vm:id}/nics
GET /vms/{vm:id}/nics
GET /vms/{vm:id}/nics/{nic:id}
PUT /vms/{vm:id}/nics/{nic:id}
DELETE /vms/{vm:id}/nics/{nic:id}
POST /vms/{vm:id}/nics/{nic:id}/activate
POST /vms/{vm:id}/nics/{nic:id}/deactivate
GET /vms/{vm:id}/nics/{nic:id}/reporteddevices
GET /vms/{vm:id}/nics/{nic:id}/reporteddevices/{reporteddevice:id}
GET /vms/{vm:id}/nics/{nic:id}/statistics
GET /vms/{vm:id}/nics/{nic:id}/statistics/{statistic:id}
POST /vms/{vm:id}/numanodes
GET /vms/{vm:id}/numanodes
GET /vms/{vm:id}/numanodes/{node:id}
62
CHAPTER 4. REQUESTS
PUT /vms/{vm:id}/numanodes/{node:id}
DELETE /vms/{vm:id}/numanodes/{node:id}
POST /vms/{vm:id}/permissions
GET /vms/{vm:id}/permissions
GET /vms/{vm:id}/permissions/{permission:id}
DELETE /vms/{vm:id}/permissions/{permission:id}
POST /vms/{vm:id}/previewsnapshot
POST /vms/{vm:id}/reboot
POST /vms/{vm:id}/reordermacaddresses
GET /vms/{vm:id}/reporteddevices
GET /vms/{vm:id}/reporteddevices/{reporteddevice:id}
GET /vms/{vm:id}/sessions
GET /vms/{vm:id}/sessions/{session:id}
POST /vms/{vm:id}/shutdown
POST /vms/{vm:id}/snapshots
GET /vms/{vm:id}/snapshots
GET /vms/{vm:id}/snapshots/{snapshot:id}
DELETE /vms/{vm:id}/snapshots/{snapshot:id}
GET /vms/{vm:id}/snapshots/{snapshot:id}/cdroms
GET /vms/{vm:id}/snapshots/{snapshot:id}/cdroms/{cdrom:id}
GET /vms/{vm:id}/snapshots/{snapshot:id}/disks
GET /vms/{vm:id}/snapshots/{snapshot:id}/disks/{disk:id}
GET /vms/{vm:id}/snapshots/{snapshot:id}/nics
GET /vms/{vm:id}/snapshots/{snapshot:id}/nics/{nic:id}
POST /vms/{vm:id}/snapshots/{snapshot:id}/restore
POST /vms/{vm:id}/start
GET /vms/{vm:id}/statistics
GET /vms/{vm:id}/statistics/{statistic:id}
POST /vms/{vm:id}/stop
POST /vms/{vm:id}/suspend
POST /vms/{vm:id}/tags
GET /vms/{vm:id}/tags
63
Red Hat Virtualization 4.0 REST API Guide
GET /vms/{vm:id}/tags/{tag:id}
DELETE /vms/{vm:id}/tags/{tag:id}
POST /vms/{vm:id}/thawfilesystems
POST /vms/{vm:id}/ticket
POST /vms/{vm:id}/undosnapshot
POST /vms/{vm:id}/watchdogs
GET /vms/{vm:id}/watchdogs
GET /vms/{vm:id}/watchdogs/{watchdog:id}
PUT /vms/{vm:id}/watchdogs/{watchdog:id}
DELETE /vms/{vm:id}/watchdogs/{watchdog:id}
POST /vnicprofiles
GET /vnicprofiles
GET /vnicprofiles/{profile:id}
PUT /vnicprofiles/{profile:id}
DELETE /vnicprofiles/{profile:id}
POST /vnicprofiles/{profile:id}/permissions
GET /vnicprofiles/{profile:id}/permissions
GET /vnicprofiles/{profile:id}/permissions/{permission:id}
DELETE /vnicprofiles/{profile:id}/permissions/{permission:id}
64
CHAPTER 5. SERVICES
CHAPTER 5. SERVICES
This section enumerates all the services that are available in the API.
5.1. AFFINITYGROUP
This service manages a single affinity group.
Name Summary
<affinity_group id="00000000-0000-0000-0000-000000000000">
<name>AF_GROUP_001</name>
<cluster id="00000000-0000-0000-0000-000000000000"/>
<positive>true</positive>
<enforcing>true</enforcing>
</affinity_group>
DELETE /ovirt-engine/api/clusters/000-000/affinitygroups/123-456
65
Red Hat Virtualization 4.0 REST API Guide
5.2. AFFINITYGROUPVM
Name Summary
66
CHAPTER 5. SERVICES
5.3. AFFINITYGROUPVMS
This service manages a collection of all virtual machines assigned to an affinity group.
Name Summary
For example to add the virtual machine 000-000 to affinity group 123-456 send a request to:
POST /ovirt-engine/api/clusters/000-000/affinitygroups/123-456/vms
<vm id="000-000"/>
vm Vm In/Out
67
Red Hat Virtualization 4.0 REST API Guide
5.3.2.1. max
Sets the maximum number of virtual machines to return. If not specified all the virtual machines are
returned.
5.4. AFFINITYGROUPS
Affinity groups service manages virtual machine relationships and dependencies.
Name Summary
Post a request like in the example below to create a new affinity group:
POST /ovirt-engine/api/clusters/000-000/affinitygroups
<affinity_group>
<name>AF_GROUP_001</name>
<positive>true</positive>
<enforcing>true</enforcing>
</affinity_group>
68
CHAPTER 5. SERVICES
5.4.2.1. max
Sets the maximum number of affinity groups to return. If not specified all the affinity groups are
returned.
5.5. AFFINITYLABEL
Name Summary
remove Removes a label from system and clears all assignments of the removed label.
69
Red Hat Virtualization 4.0 REST API Guide
Removes a label from system and clears all assignments of the removed label.
Updates a label.
5.6. AFFINITYLABELHOST
This service represents a host that has a specific label when accessed through the
affinitylabels/hosts subcollection.
Name Summary
get Retrieves details about a host that has this label assigned.
70
CHAPTER 5. SERVICES
5.7. AFFINITYLABELHOSTS
This service represents list of hosts that have a specific label when accessed through the
affinitylabels/hosts subcollection.
Name Summary
71
Red Hat Virtualization 4.0 REST API Guide
5.8. AFFINITYLABELVM
This service represents a vm that has a specific label when accessed through the affinitylabels/vms
subcollection.
Name Summary
vm Vm Out
5.9. AFFINITYLABELVMS
This service represents list of vms that have a specific label when accessed through the
affinitylabels/vms subcollection.
72
CHAPTER 5. SERVICES
Name Summary
vm Vm In/Out
5.10. AFFINITYLABELS
Name Summary
73
Red Hat Virtualization 4.0 REST API Guide
Name Summary
Creates a new label. The label is automatically attached to all entities mentioned in the vms or hosts
lists.
5.10.2.1. max
Sets the maximum number of labels to return. If not specified all the labels are returned.
5.11. ASSIGNEDAFFINITYLABEL
This service represents one label to entity assignment when accessed using the entities/affinitylabels
subcollection.
74
CHAPTER 5. SERVICES
Name Summary
Removes the label from an entity. Does not touch the label itself.
5.12. ASSIGNEDAFFINITYLABELS
This service is used to list and manipulate affinity labels that are assigned to supported entities
when accessed using entities/affinitylabels.
Name Summary
75
Red Hat Virtualization 4.0 REST API Guide
5.13. ASSIGNEDCPUPROFILE
Name Summary
get
remove
76
CHAPTER 5. SERVICES
5.14. ASSIGNEDCPUPROFILES
Name Summary
add
list
5.14.2.1. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
77
Red Hat Virtualization 4.0 REST API Guide
5.15. ASSIGNEDDISKPROFILE
Name Summary
get
remove
5.16. ASSIGNEDDISKPROFILES
Name Summary
add
78
CHAPTER 5. SERVICES
Name Summary
list
5.16.2.1. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
5.17. ASSIGNEDNETWORK
Name Summary
get
remove
79
Red Hat Virtualization 4.0 REST API Guide
Name Summary
update
5.18. ASSIGNEDNETWORKS
80
CHAPTER 5. SERVICES
Name Summary
add
list
5.18.2.1. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
5.19. ASSIGNEDPERMISSIONS
Represents a permission sub-collection, scoped by user, group or some entity type.
81
Red Hat Virtualization 4.0 REST API Guide
Name Summary
For example, to assign the UserVmManager role to the virtual machine with id 123 to the user with
id 456 send a request like this:
POST /ovirt-engine/api/vms/123/permissions
<permission>
<role>
<name>UserVmManager</name>
</role>
<user id="456"/>
</permission>
To assign the SuperUser role to the system to the user with id 456 send a request like this:
POST /ovirt-engine/api/permissions
<permission>
<role>
<name>SuperUser</name>
</role>
<user id="456"/>
</permission>
If you want to assign permission to the group instead of the user please replace the user element
with the group element with proper id of the group. For example to assign the UserRole role to
the cluster with id 123 to the group with id 789 send a request like this:
POST /ovirt-engine/api/clusters/123/permissions
<permission>
<role>
<name>UserRole</name>
</role>
<group id="789"/>
82
CHAPTER 5. SERVICES
</permission>
For example to list all the permissions of the cluster with id 123 send a request like this:
GET /ovirt-engine/api/clusters/123/permissions
<permissions>
<permission id="456">
<cluster id="123"/>
<role id="789"/>
<user id="451"/>
</permission>
<permission id="654">
<cluster id="123"/>
<role id="789"/>
<group id="127"/>
</permission>
</permissions>
5.20. ASSIGNEDROLES
Represents a roles sub-collection, for example scoped by user.
83
Red Hat Virtualization 4.0 REST API Guide
Name Summary
list
5.20.1.1. max
Sets the maximum number of roles to return. If not specified all the roles are returned.
5.21. ASSIGNEDTAG
Name Summary
For example to retrieve the information about the tag with the id 456 which is assigned to virtual
machine with id 123 send a request like this:
GET /ovirt-engine/api/vms/123/tags/456
84
CHAPTER 5. SERVICES
For example to unassign the tag with id 456 from virtual machine with id 123 send a request like
this:
DELETE /ovirt-engine/api/vms/123/tags/456
5.22. ASSIGNEDTAGS
A service to manage collection of assignment of tags to specific entities in system.
Name Summary
85
Red Hat Virtualization 4.0 REST API Guide
For example to assign tag mytag to virtual machine with the id 123 send a request like this:
POST /ovirt-engine/api/vms/123/tags
<tag>
<name>mytag</name>
</tag>
For example to list all the tags of the virtual machine with id 123 send a request like this:
GET /ovirt-engine/api/vms/123/tags
<tags>
<tag href="/ovirt-engine/api/tags/222" id="222">
<name>mytag</name>
<description>mytag</description>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</tag>
</tags>
86
CHAPTER 5. SERVICES
5.22.2.1. max
Sets the maximum number of tags to return. If not specified all the tags are returned.
5.23. ASSIGNEDVNICPROFILE
Name Summary
get
remove
5.24. ASSIGNEDVNICPROFILES
87
Red Hat Virtualization 4.0 REST API Guide
Name Summary
add
list
5.24.2.1. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
5.25. ATTACHEDSTORAGEDOMAIN
Name Summary
88
CHAPTER 5. SERVICES
Name Summary
get
remove
This operation activates an attached storage domain. Once the storage domain is activated it is
ready for use with the data center.
POST /ovirt-engine/api/datacenters/123/storagedomains/456/activate
The activate action does not take any action specific parameters, so the request body should
contain an empty action:
<action/>
This operation deactivates an attached storage domain. Once the storage domain is deactivated it
will not be used with the data center.
POST /ovirt-engine/api/datacenters/123/storagedomains/456/deactivate
The deactivate action does not take any action specific parameters, so the request body should
contain an empty action:
<action/>
89
Red Hat Virtualization 4.0 REST API Guide
5.26. ATTACHEDSTORAGEDOMAINS
Name Summary
add
list
90
CHAPTER 5. SERVICES
5.26.2.1. max
Sets the maximum number of storage domains to return. If not specified all the storage domains are
returned.
5.27. BALANCE
Name Summary
get
remove
91
Red Hat Virtualization 4.0 REST API Guide
5.28. BALANCES
Name Summary
add
list
92
CHAPTER 5. SERVICES
5.28.2.1. max
Sets the maximum number of balances to return. If not specified all the balances are returned.
5.29. BOOKMARK
A service to manage a bookmark.
Name Summary
Get a bookmark.
GET /ovirt-engine/api/bookmarks/123
93
Red Hat Virtualization 4.0 REST API Guide
Remove a bookmark.
DELETE /ovirt-engine/api/bookmarks/123
Update a bookmark.
PUT /ovirt-engine/api/bookmarks/123
<bookmark>
<name>new_example_vm</name>
<value>vm: name=new_example*</value>
</bookmark>
94
CHAPTER 5. SERVICES
5.30. BOOKMARKS
Name Summary
POST /ovirt-engine/api/bookmarks
<bookmark>
<name>new_example_vm</name>
<value>vm: name=new_example*</value>
</bookmark>
95
Red Hat Virtualization 4.0 REST API Guide
GET /ovirt-engine/api/bookmarks
<bookmarks>
<bookmark href="/ovirt-engine/api/bookmarks/123" id="123">
<name>database</name>
<value>vm: name=database*</value>
</bookmark>
<bookmark href="/ovirt-engine/api/bookmarks/456" id="456">
<name>example</name>
<value>vm: name=example*</value>
</bookmark>
</bookmarks>
5.30.2.1. max
Sets the maximum number of bookmarks to return. If not specified all the bookmarks are returned.
5.31. CLUSTER
A service to manage specific cluster.
Name Summary
96
CHAPTER 5. SERVICES
Name Summary
resetemulate
dmachine
GET /ovirt-engine/api/clusters/123
97
Red Hat Virtualization 4.0 REST API Guide
<gluster_service>false</gluster_service>
<ha_reservation>false</ha_reservation>
<ksm>
<enabled>true</enabled>
<merge_across_nodes>true</merge_across_nodes>
</ksm>
<maintenance_reason_required>false</maintenance_reason_required>
<memory_policy>
<over_commit>
<percent>100</percent>
</over_commit>
<transparent_hugepages>
<enabled>true</enabled>
</transparent_hugepages>
</memory_policy>
<migration>
<auto_converge>inherit</auto_converge>
<bandwidth>
<assignment_method>auto</assignment_method>
</bandwidth>
<compressed>inherit</compressed>
</migration>
<optional_reason>false</optional_reason>
<required_rng_sources>
<required_rng_source>random</required_rng_source>
</required_rng_sources>
<scheduling_policy href="/ovirt-engine/api/schedulingpolicies/456"
id="456"/>
<threads_as_cores>false</threads_as_cores>
<trusted_service>false</trusted_service>
<tunnel_migration>false</tunnel_migration>
<version>
<major>4</major>
<minor>0</minor>
</version>
<virt_service>true</virt_service>
<data_center href="/ovirt-engine/api/datacenters/111" id="111"/>
</cluster>
98
CHAPTER 5. SERVICES
DELETE /ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000
PUT /ovirt-engine/api/clusters/123
<cluster>
<cpu>
<type>Intel Haswell-noTSX Family</type>
</cpu>
</cluster>
99
Red Hat Virtualization 4.0 REST API Guide
5.32. CLUSTERLEVEL
Provides information about a specific cluster level. See the ClusterLevels service for more
information.
Name Summary
get Provides the information about the capabilities of the specific cluster level managed
by this service.
Provides the information about the capabilities of the specific cluster level managed by this service.
For example, to find what CPU types are supported by level 3.6 you can send a request like this:
GET /ovirt-engine/api/clusterlevels/3.6
That will return a ClusterLevel object containing the supported CPU types, and other information
which describes the cluster level:
<cluster_level id="3.6">
<cpu_types>
<cpu_type>
<name>Intel Conroe Family</name>
<level>3</level>
<architecture>x86_64</architecture>
</cpu_type>
...
</cpu_types>
<permits>
<permit id="1">
<name>create_vm</name>
<administrative>false</administrative>
100
CHAPTER 5. SERVICES
</permit>
...
</permits>
</cluster_level>
5.33. CLUSTERLEVELS
Provides information about the capabilities of different cluster levels supported by the engine.
Version 4.0 of the engine supports levels 4.0 and 3.6. Each of these levels support different sets of
CPU types, for example. This service provides that information.
Name Summary
GET /ovirt-engine/api/clusterlevels
<cluster_levels>
<cluster_level id="4.0">
...
</cluster_level>
...
</cluster_levels>
101
Red Hat Virtualization 4.0 REST API Guide
5.34. CLUSTERS
Name Summary
list
This requires the name, cpu.type and data_center attributes. Identify the data center with either
the id or name attributes.
POST /ovirt-engine/api/clusters
<cluster>
<name>mycluster</name>
<cpu>
<type>Intel Penryn Family</type>
</cpu>
<data_center id="123"/>
</cluster>
102
CHAPTER 5. SERVICES
5.34.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.34.2.2. max
Sets the maximum number of clusters to return. If not specified all the clusters are returned.
5.35. COPYABLE
Name Summary
copy
103
Red Hat Virtualization 4.0 REST API Guide
5.36. CPUPROFILE
Name Summary
get
remove
update
104
CHAPTER 5. SERVICES
5.37. CPUPROFILES
Name Summary
add
list
105
Red Hat Virtualization 4.0 REST API Guide
5.37.2.1. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
5.38. DATACENTER
Name Summary
GET /ovirt-engine/api/datacenters/123
106
CHAPTER 5. SERVICES
DELETE /ovirt-engine/api/datacenters/123
Without any special parameters, the storage domains attached to the data center are detached and
then removed from the storage. If something fails when performing this operation, for example if
there is no host available to remove the storage domains from the storage, the complete operation
will fail.
If the force parameter is true then the operation will always succeed, even if something fails while
removing one storage domain, for example. The failure is just ignored and the data center is
removed from the database anyway.
107
Red Hat Virtualization 4.0 REST API Guide
5.38.2.1. force
Indicates if the operation should succeed, and the storage domain removed from the database, even
if something fails during the operation.
PUT /ovirt-engine/api/datacenters/123
<data_center>
<name>myupdatedname</name>
<description>An updated description for the data center</description>
</data_center>
5.39. DATACENTERS
108
CHAPTER 5. SERVICES
Name Summary
Creation of a new data center requires the name and local elements. For example, to create a
data center named mydc that uses shared storage (NFS, iSCSI or fibre channel) send a request like
this:
POST /ovirt-engine/api/datacenters
<data_center>
<name>mydc</name>
<local>false</local>
</data_center>
GET /ovirt-engine/api/datacenters
curl \
109
Red Hat Virtualization 4.0 REST API Guide
--request GET \
--cacert /etc/pki/ovirt-engine/ca.pem \
--header "Version: 4" \
--header "Accept: application/xml" \
--user "admin@internal:mypassword" \
https://myengine.example.com/ovirt-engine/api/datacenters
Note the id code of your Default data center. This code identifies this data center in relation to
other resources of your virtual environment.
The data center also contains a link to the storage domains collection. The data center uses this
collection to attach storage domains from the storage domains main collection.
110
CHAPTER 5. SERVICES
5.39.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.39.2.2. max
Sets the maximum number of data centers to return. If not specified all the data centers are returned.
5.40. DISK
Name Summary
export
get
111
Red Hat Virtualization 4.0 REST API Guide
Name Summary
remove
For example, copy of a disk can be facilitated using the following request:
POST /ovirt-engine/api/disks/123/copy
<action>
<storage_domain id="456"/>
<disk>
<name>mydisk</name>
</disk>
</action>
disk Disk In
storage_ StorageDom In
domain ain
112
CHAPTER 5. SERVICES
storage_ StorageDom In
domain ain
For example, to move the disk with identifier 123 to a storage domain with identifier 456 send the
following request:
POST /ovirt-engine/api/disks/123/move
<action>
<storage_domain id="456"/>
</action>
113
Red Hat Virtualization 4.0 REST API Guide
storage_ StorageDom In
domain ain
5.41. DISKATTACHMENT
Name Summary
get Returns the details of the attachment, including the bootable flag and link to the
disk.
update Update the disk attachment and the disk properties within it.
Returns the details of the attachment, including the bootable flag and link to the disk.
GET /ovirt-engine/api/vms/123/diskattachments/456
114
CHAPTER 5. SERVICES
<disk_attachment href="/ovirt-engine/api/vms/123/diskattachments/456"
id="456">
<active>true</active>
<bootable>true</bootable>
<interface>virtio</interface>
<disk href="/ovirt-engine/api/disks/456" id="456"/>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</disk_attachment>
This will only detach the disk from the virtual machine, but won’t remove it from the system, unless
the detach_only parameter is false.
DELETE /ovirt-engine/api/vms/123/diskattachments/456?detach_only=true
5.41.2.1. detach_only
Indicates if the disk should only be detached from the virtual machine, but not removed from the
system. The default value is true, which won’t remove the disk from the system.
Update the disk attachment and the disk properties within it.
115
Red Hat Virtualization 4.0 REST API Guide
PUT /vms/{vm:id}/disksattachments/{attachment:id}
<disk_attachment>
<bootable>true</bootable>
<interface>ide</interface>
<active>true</active>
<disk>
<name>mydisk</name>
<provisioned_size>1024</provisioned_size>
...
</disk>
</disk_attachment>
5.42. DISKATTACHMENTS
This service manages the set of disks attached to a virtual machine. Each attached disk is
represented by a DiskAttachment, containing the bootable flag, the disk interface and the reference
to the disk.
Name Summary
list List the disk that are attached to the virtual machine.
Adds a new disk attachment to the virtual machine. The attachment parameter can contain just a
reference, if the disk already exists:
<disk_attachment>
<bootable>true</bootable>
<interface>ide</interface>
<active>true</active>
<disk id="123"/>
</disk_attachment>
116
CHAPTER 5. SERVICES
Or it can contain the complete representation of the disk, if the disk doesn’t exist yet:
<disk_attachment>
<bootable>true</bootable>
<interface>ide</interface>
<active>true</active>
<disk>
<name>mydisk</name>
<provisioned_size>1024</provisioned_size>
...
</disk>
</disk_attachment>
In this case the disk will be created and then attached to the virtual machine.
In both cases, use the following URL for a virtual machine with an id 345:
POST /ovirt-engine/api/vms/345/diskattachments
Important
The server accepts requests that don’t contain the active attribute, but the effect is
undefined. In some cases the disk will be automatically activated and in other cases it
won’t. To avoid issues it is strongly recommended to always include the active attribute
with the desired value.
5.43. DISKPROFILE
117
Red Hat Virtualization 4.0 REST API Guide
Name Summary
get
remove
update
118
CHAPTER 5. SERVICES
5.44. DISKPROFILES
Name Summary
add
list
5.44.2.1. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
119
Red Hat Virtualization 4.0 REST API Guide
5.45. DISKSNAPSHOT
Name Summary
get
remove
5.46. DISKSNAPSHOTS
Name Summary
list
120
CHAPTER 5. SERVICES
5.46.1.1. max
Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
5.47. DISKS
Name Summary
When creating a new floating Disk, the API requires the storage_domain, provisioned_size
and format attributes.
To create a new floating disk with specified provisioned_size, format and name on a storage
domain with an id e9fedf39-5edc-4e0a-8628-253f1b9c5693, send a request as follows:
POST /ovirt-engine/api/disks
<disk>
<storage_domains>
121
Red Hat Virtualization 4.0 REST API Guide
<storage_domain id="e9fedf39-5edc-4e0a-8628-253f1b9c5693"/>
</storage_domains>
<name>disk1</name>
<provisioned_size>1048576</provisioned_size>
<format>cow</format>
</disk>
GET /ovirt-engine/api/disks
You will get a XML response which will look like this one:
<disks>
<disk id="123">
<actions>...</actions>
<name>MyDisk</name>
<description>MyDisk description</description>
<link href="/ovirt-engine/api/disks/123/permissions"
rel="permissions"/>
<link href="/ovirt-engine/api/disks/123/statistics"
rel="statistics"/>
<actual_size>5345845248</actual_size>
<alias>MyDisk alias</alias>
...
<status>ok</status>
<storage_type>image</storage_type>
<wipe_after_delete>false</wipe_after_delete>
<disk_profile id="123"/>
<quota id="123"/>
<storage_domains>...</storage_domains>
</disk>
...
</disks>
122
CHAPTER 5. SERVICES
5.47.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.47.2.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
5.48. DOMAIN
Name Summary
Usage:
GET /ovirt-engine/api/domains/5678
123
Red Hat Virtualization 4.0 REST API Guide
5.49. DOMAINGROUP
Name Summary
get
5.50. DOMAINGROUPS
124
CHAPTER 5. SERVICES
Name Summary
list
5.50.1.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.50.1.2. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
5.51. DOMAINUSER
Name Summary
125
Red Hat Virtualization 4.0 REST API Guide
Usage:
GET /ovirt-engine/api/domains/5678/users/1234
5.52. DOMAINUSERS
A service to list all domain users in the system.
Name Summary
Usage:
GET /ovirt-engine/api/domains/5678/users
126
CHAPTER 5. SERVICES
<users>
<user href="/ovirt-engine/api/domains/5678/users/1234" id="1234">
<name>admin</name>
<namespace>*</namespace>
<principal>admin</principal>
<user_name>admin@internal-authz</user_name>
<domain href="/ovirt-engine/api/domains/5678" id="5678">
<name>internal-authz</name>
</domain>
<groups/>
</user>
</users>
5.52.1.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.52.1.2. max
Sets the maximum number of users to return. If not specified all the users are returned.
5.53. DOMAINS
127
Red Hat Virtualization 4.0 REST API Guide
Name Summary
Usage:
GET /ovirt-engine/api/domains
<domains>
<domain href="/ovirt-engine/api/domains/5678" id="5678">
<name>internal-authz</name>
<link href="/ovirt-engine/api/domains/5678/users" rel="users"/>
<link href="/ovirt-engine/api/domains/5678/groups" rel="groups"/>
<link href="/ovirt-engine/api/domains/5678/users?search={query}"
rel="users/search"/>
<link href="/ovirt-engine/api/domains/5678/groups?search={query}"
rel="groups/search"/>
</domain>
</domains>
5.53.1.1. max
Sets the maximum number of domains to return. If not specified all the domains are returned.
5.54. ENGINEKATELLOERRATA
A service to manage Katello errata assigned to the engine. The information is retrieved from Katello.
128
CHAPTER 5. SERVICES
Name Summary
GET /ovirt-engine/api/katelloerrata
<katello_errata>
<katello_erratum href="/ovirt-engine/api/katelloerrata/123" id="123">
<name>RHBA-2013:XYZ</name>
<description>The description of the erratum</description>
<title>some bug fix update</title>
<type>bugfix</type>
<issued>2013-11-20T02:00:00.000+02:00</issued>
<solution>Few guidelines regarding the solution</solution>
<summary>Updated packages that fix one bug are now available for
XYZ</summary>
<packages>
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
</packages>
</katello_erratum>
...
</katello_errata>
5.54.1.1. max
Sets the maximum number of errata to return. If not specified all the errata are returned.
5.55. EVENT
129
Red Hat Virtualization 4.0 REST API Guide
5.55. EVENT
Name Summary
Get an event.
GET /ovirt-engine/api/events/123
Note that the number of fields changes according to the information that resides on the event. For
example, for storage domain related events you will get the storage domain reference, as well as
the reference for the data center this storage domain resides in.
130
CHAPTER 5. SERVICES
DELETE /ovirt-engine/api/events/123
5.56. EVENTS
Name Summary
undelete
This is intended for integration with external systems that detect or produce events relevant for the
administrator of the system. For example, an external monitoring tool may be able to detect that a
file system is full inside the guest operating system of a virtual machine. This event can be added to
the internal audit log sending a request like this:
POST /ovirt-engine/api/events
<event>
<description>File system /home is full</description>
<severity>alert</severity>
<origin>mymonitor</origin>
<custom_id>1467879754</custom_id>
</event>
131
Red Hat Virtualization 4.0 REST API Guide
Events can also be linked to specific objects. For example, the above event could be linked to the
specific virtual machine where it happened, using the vm link:
POST /ovirt-engine/api/events
<event>
<description>File system /home is full</description>
<severity>alert</severity>
<origin>mymonitor</origin>
<custom_id>1467879754</custom_id>
<vm id="aae98225-5b73-490d-a252-899209af17e9"/>
</event>
Note
When using links, like the vm in the previous example, only the id attribute is accepted.
The name attribute, if provided, is simply ignored.
GET /ovirt-engine/api/events
<events>
<event href="/ovirt-engine/api/events/2" id="2">
<description>User admin@internal-authz logged out.</description>
<code>31</code>
<correlation_id>1e892ea9</correlation_id>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T12:14:34.541+02:00</time>
<user href="/ovirt-engine/api/users/57d91d48-00da-0137-0138-
000000000244" id="57d91d48-00da-0137-0138-000000000244"/>
</event>
<event href="/ovirt-engine/api/events/1" id="1">
<description>User admin logged in.</description>
<code>30</code>
<correlation_id>1fbd81f4</correlation_id>
<custom_id>-1</custom_id>
132
CHAPTER 5. SERVICES
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T11:54:35.229+02:00</time>
<user href="/ovirt-engine/api/users/57d91d48-00da-0137-0138-
000000000244" id="57d91d48-00da-0137-0138-000000000244"/>
</event>
</events>
from Integer In Indicates the identifier of the the first event that
should be returned.
5.56.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.56.2.2. from
Indicates the identifier of the the first event that should be returned. The identifiers of events are
strictly increasing, so when this parameter is used only the events with that identifiers equal or
greater than the given value will be returned. For example, the following request will return only the
events with identifiers greater or equal than 123:
133
Red Hat Virtualization 4.0 REST API Guide
GET /ovirt-engine/api/events?from=123
This parameter is optional, and if not specified then the first event returned will be most recently
generated.
5.56.2.3. max
Sets the maximum number of events to return. If not specified all the events are returned.
5.56.2.4. search
The events service provides search queries similar to other resource services.
GET /ovirt-engine/api/events?search=severity%3Dnormal
To the above request we get a list of events which severity is equal to normal:
<events>
<event href="/ovirt-engine/api/events/2" id="2">
<description>User admin@internal-authz logged out.</description>
<code>31</code>
<correlation_id>1fbd81f4</correlation_id>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T11:54:35.229+02:00</time>
<user href="/ovirt-engine/api/users/57d91d48-00da-0137-0138-
000000000244" id="57d91d48-00da-0137-0138-000000000244"/>
</event>
<event href="/ovirt-engine/api/events/1" id="1">
<description>Affinity Rules Enforcement Manager
started.</description>
<code>10780</code>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T11:52:18.861+02:00</time>
</event>
</events>
A virtualization environment generates a large amount of events after a period of time. However, the
API only displays a default number of events for one search query. To display more than the default,
the API separates results into pages with the page command in a search query. The following
search query tells the API to paginate results using a page value in combination with the sortby
clause:
134
CHAPTER 5. SERVICES
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%201
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%202
5.57. EXTERNALCOMPUTERESOURCE
Name Summary
get
5.58. EXTERNALCOMPUTERESOURCES
135
Red Hat Virtualization 4.0 REST API Guide
Name Summary
list
5.58.1.1. max
Sets the maximum number of resources to return. If not specified all the resources are returned.
5.59. EXTERNALDISCOVEREDHOST
Name Summary
get
136
CHAPTER 5. SERVICES
5.60. EXTERNALDISCOVEREDHOSTS
Name Summary
list
5.60.1.1. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
5.61. EXTERNALHOST
Name Summary
get
137
Red Hat Virtualization 4.0 REST API Guide
5.62. EXTERNALHOSTGROUP
Name Summary
get
5.63. EXTERNALHOSTGROUPS
Name Summary
list
138
CHAPTER 5. SERVICES
5.63.1.1. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
5.64. EXTERNALHOSTPROVIDER
Name Summary
get
importcertif
icates
remove
testconnecti
vity
update
139
Red Hat Virtualization 4.0 REST API Guide
certific Certificate[] In
ates
140
CHAPTER 5. SERVICES
5.65. EXTERNALHOSTPROVIDERS
Name Summary
add
list
141
Red Hat Virtualization 4.0 REST API Guide
5.65.2.1. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
5.66. EXTERNALHOSTS
Name Summary
list
5.66.1.1. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
5.67. EXTERNALPROVIDER
142
CHAPTER 5. SERVICES
Name Summary
importcertif
icates
testconnecti
vity
certific Certificate[] In
ates
5.68. EXTERNALPROVIDERCERTIFICATE
Name Summary
get
143
Red Hat Virtualization 4.0 REST API Guide
5.69. EXTERNALPROVIDERCERTIFICATES
Name Summary
list
5.69.1.1. max
Sets the maximum number of certificates to return. If not specified all the certificates are returned.
5.70. EXTERNALVMIMPORTS
144
CHAPTER 5. SERVICES
Name Summary
add This operation is used to import a virtual machine from external hypervisor, such as
KVM, XEN or VMware.
This operation is used to import a virtual machine from external hypervisor, such as KVM, XEN or
VMware.
For example import of a virtual machine from VMware can be facilitated using the following request:
POST /externalvmimports
<external_vm_import>
<vm>
<name>my_vm</name>
</vm>
<cluster id="360014051136c20574f743bdbd28177fd" />
<storage_domain id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
<name>vm_name_as_is_in_vmware</name>
<sparse>true</sparse>
<username>vmware_user</username>
<password>123456</password>
<provider>VMWARE</provider>
<url>vpx://wmware_user@vcenter-host/DataCenter/Cluster/esxi-host?
no_verify=1</url>
<drivers_iso id="virtio-win-1.6.7.iso" />
</external_vm_import>
5.71. FENCEAGENT
145
Red Hat Virtualization 4.0 REST API Guide
Name Summary
get
remove
update
146
CHAPTER 5. SERVICES
5.72. FENCEAGENTS
Name Summary
add
list
5.72.2.1. max
Sets the maximum number of agents to return. If not specified all the agents are returned.
147
Red Hat Virtualization 4.0 REST API Guide
5.73. FILE
Name Summary
get
5.74. FILES
This services is specifically targeted to ISO storage domains, which contain ISO images and virtual
floppy disks (VFDs) that an administrator uploads.
The addition of a CDROM device to a virtual machine requires an ISO image from the files of an
ISO storage domain.
Name Summary
list
148
CHAPTER 5. SERVICES
5.74.1.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.74.1.2. max
Sets the maximum number of files to return. If not specified all the files are returned.
5.75. FILTER
Name Summary
get
remove
149
Red Hat Virtualization 4.0 REST API Guide
5.76. FILTERS
Name Summary
add
list
150
CHAPTER 5. SERVICES
5.76.2.1. max
Sets the maximum number of filters to return. If not specified all the filters are returned.
5.77. GLUSTERBRICK
This service manages a single gluster brick.
Name Summary
Retrieves status details of brick from underlying gluster volume with header All-Content set to
true. This is the equivalent of running gluster volume status <volumename>
<brickname> detail.
For example, to get the details of brick 234 of gluster volume 123, send a request like this:
GET /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks/234
151
Red Hat Virtualization 4.0 REST API Guide
<brick id="234">
<name>host1:/rhgs/data/brick1</name>
<brick_dir>/rhgs/data/brick1</brick_dir>
<server_id>111</server_id>
<status>up</status>
<device>/dev/mapper/RHGS_vg1-lv_vmaddldisks</device>
<fs_name>xfs</fs_name>
<gluster_clients>
<gluster_client>
<bytes_read>2818417648</bytes_read>
<bytes_written>1384694844</bytes_written>
<client_port>1011</client_port>
<host_name>client2</host_name>
</gluster_client>
</gluster_clients>
<memory_pools>
<memory_pool>
<name>data-server:fd_t</name>
<alloc_count>1626348</alloc_count>
<cold_count>1020</cold_count>
<hot_count>4</hot_count>
<max_alloc>23</max_alloc>
<max_stdalloc>0</max_stdalloc>
<padded_size>140</padded_size>
<pool_misses>0</pool_misses>
</memory_pool>
</memory_pools>
<mnt_options>rw,seclabel,noatime,nodiratime,attr2,inode64,sunit=512,swidt
h=2048,noquota</mnt_options>
<pid>25589</pid>
<port>49155</port>
</brick>
Removes a brick.
Removes a brick from the underlying gluster volume and deletes entries from database. This can be
used only when removing a single brick without data migration. To remove multiple bricks and with
data migration, use migrate instead.
For example, to delete brick 234 from gluster volume 123, send a request like this:
152
CHAPTER 5. SERVICES
DELETE /ovirt-
engine/api/clusters/567/glustervolumes/123/glusterbricks/234
Important
This operation has been deprecated since version 3.5 of the engine and will be removed
in the future. Use add brick(s) and migrate brick(s) instead.
force Boolean In
5.78. GLUSTERBRICKS
This service manages the gluster bricks in a gluster volume
Name Summary
activate Activate the bricks post data migration of remove brick operation.
153
Red Hat Virtualization 4.0 REST API Guide
Name Summary
stopmigrate Stops migration of data from bricks for a remove brick operation.
Used to activate brick(s) once the data migration from bricks is complete but user no longer wishes
to remove bricks. The bricks that were previously marked for removal will now be used as normal
bricks.
For example, to retain the bricks that on glustervolume 123 from which data was migrated, send a
request like this:
POST /ovirt-
engine/api/clusters/567/glustervolumes/123/glusterbricks/activate
<action>
<bricks>
<brick>
<name>host1:/rhgs/brick1</name>
</brick>
</bricks>
</action>
154
CHAPTER 5. SERVICES
Used to expand a gluster volume by adding bricks. For replicated volume types, the parameter
replica_count needs to be passed. In case the replica count is being increased, then the number
of bricks needs to be equivalent to the number of replica sets.
For example, to add bricks to gluster volume 123, send a request like this:
POST /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks
<bricks>
<brick>
<server_id>111</server_id>
<brick_dir>/export/data/brick3</brick_dir>
</brick>
</bricks>
For example, to list bricks of gluster volume 123, send a request like this:
155
Red Hat Virtualization 4.0 REST API Guide
GET /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks
<bricks>
<brick id="234">
<name>host1:/rhgs/data/brick1</name>
<brick_dir>/rhgs/data/brick1</brick_dir>
<server_id>111</server_id>
<status>up</status>
</brick>
<brick id="233">
<name>host2:/rhgs/data/brick1</name>
<brick_dir>/rhgs/data/brick1</brick_dir>
<server_id>222</server_id>
<status>up</status>
</brick>
</bricks>
5.78.3.1. max
Sets the maximum number of bricks to return. If not specified all the bricks are returned.
Removing bricks is a two-step process, where the data on bricks to be removed, is first migrated to
remaining bricks. Once migration is completed the removal of bricks is confirmed via the API
remove. If at any point, the action needs to be cancelled stopmigrate has to be called.
For instance, to delete a brick from a gluster volume with id 123, send a request:
POST /ovirt-
engine/api/clusters/567/glustervolumes/123/glusterbricks/migrate
<action>
<bricks>
156
CHAPTER 5. SERVICES
<brick>
<name>host1:/rhgs/brick1</name>
</brick>
</bricks>
</action>
The migration process can be tracked from the job id returned from the API using job and steps in
job using step
The recommended way to remove bricks without data loss is to first migrate the data using
stopmigrate and then removing them. If migrate was not called on bricks prior to remove, the bricks
are removed without data migration which may lead to data loss.
For example, to delete the bricks from gluster volume 123, send a request like this:
DELETE /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks
<bricks>
<brick>
<name>host:brick_directory</name>
</brick>
</bricks>
157
Red Hat Virtualization 4.0 REST API Guide
To cancel data migration that was started as part of the 2-step remove brick process in case the
user wishes to continue using the bricks. The bricks that were marked for removal will function as
normal bricks post this operation.
For example, to stop migration of data from the bricks of gluster volume 123, send a request like
this:
POST /ovirt-
engine/api/clusters/567/glustervolumes/123/glusterbricks/stopmigrate
<bricks>
<brick>
<name>host:brick_directory</name>
</brick>
</bricks>
5.78.6.1. bricks
List of bricks for which data migration needs to be stopped. This list should match the arguments
passed to migrate.
158
CHAPTER 5. SERVICES
5.79. GLUSTERHOOK
Name Summary
disable Resolves status conflict of hook among servers in cluster by disabling Gluster hook
in all servers of the cluster.
enable Resolves status conflict of hook among servers in cluster by disabling Gluster hook
in all servers of the cluster.
get
remove Removes the this Gluster hook from all servers in cluster and deletes it from the
database.
Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all servers of
the cluster. This updates the hook status to DISABLED in database.
Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all servers of
the cluster. This updates the hook status to DISABLED in database.
159
Red Hat Virtualization 4.0 REST API Guide
Removes the this Gluster hook from all servers in cluster and deletes it from the database.
For ADD resolves by copying hook stored in engine database to all servers where the hook is
missing. The engine maintains a list of all servers where hook is missing.
For COPY resolves conflict in hook content by copying hook stored in engine database to all servers
where the hook is missing. The engine maintains a list of all servers where the content is conflicting.
If a host id is passed as parameter, the hook content from the server is used as the master to copy
to other servers in cluster.
160
CHAPTER 5. SERVICES
host Host In
resoluti String In
on_type
5.80. GLUSTERHOOKS
Name Summary
list
5.80.1.1. max
Sets the maximum number of hooks to return. If not specified all the hooks are returned.
5.81. GLUSTERVOLUME
161
Red Hat Virtualization 4.0 REST API Guide
Name Summary
162
CHAPTER 5. SERVICES
For example, to get details of a gluster volume with identifier 123 in cluster 456, send a request like
this:
GET /ovirt-engine/api/clusters/456/glustervolumes/123
<gluster_volume id="123">
<name>data</name>
<link href="/ovirt-
engine/api/clusters/456/glustervolumes/123/glusterbricks"
rel="glusterbricks"/>
<disperse_count>0</disperse_count>
<options>
<option>
<name>storage.owner-gid</name>
<value>36</value>
</option>
<option>
<name>performance.io-cache</name>
<value>off</value>
</option>
<option>
<name>cluster.data-self-heal-algorithm</name>
<value>full</value>
</option>
</options>
<redundancy_count>0</redundancy_count>
<replica_count>3</replica_count>
<status>up</status>
<stripe_count>0</stripe_count>
<transport_types>
<transport_type>tcp</transport_type>
</transport_types>
<volume_type>replicate</volume_type>
</gluster_volume>
For example, to get profile statistics for a gluster volume with identifier 123 in cluster 456, send a
request like this:
163
Red Hat Virtualization 4.0 REST API Guide
POST /ovirt-
engine/api/clusters/456/glustervolumes/123/getprofilestatistics
Rebalancing a gluster volume helps to distribute the data evenly across all the bricks. After
expanding or shrinking a gluster volume (without migrating data), we need to rebalance the data
among the bricks. In a non-replicated volume, all bricks should be online to perform the rebalance
operation. In a replicated volume, at least one of the bricks in the replica should be online.
For example, to rebalance a gluster volume with identifier 123 in cluster 456, send a request like
this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/rebalance
fix_layo Boolean In If set to true, rebalance will only fix the layout so
ut that new data added to the volume is distributed
across all the hosts.
5.81.3.1. fix_layout
If set to true, rebalance will only fix the layout so that new data added to the volume is distributed
across all the hosts. But it will not migrate/rebalance the existing data. Default is false.
164
CHAPTER 5. SERVICES
5.81.3.2. force
Indicates if the rebalance should be force started. The rebalance command can be executed with
the force option even when the older clients are connected to the cluster. However, this could lead to
a data loss situation. Default is false.
For example, to remove a volume with identifier 123 in cluster 456, send a request like this:
DELETE /ovirt-engine/api/clusters/456/glustervolumes/123
For example, to reset all options in a gluster volume with identifier 123 in cluster 456, send a
request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/resetalloptions
For example, to reset a particular option option1 in a gluster volume with identifier 123 in cluster
456, send a request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/resetoption
165
Red Hat Virtualization 4.0 REST API Guide
<action>
<option name="option1"/>
</action>
force Boolean In
For example, to set option1 with value value1 in a gluster volume with identifier 123 in cluster
456, send a request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/setoption
<action>
<option name="option1" value="value1"/>
</action>
166
CHAPTER 5. SERVICES
A Gluster Volume should be started to read/write data. For example, to start a gluster volume with
identifier 123 in cluster 456, send a request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/start
5.81.8.1. force
Indicates if the volume should be force started. If a gluster volume is started already but few/all
bricks are down then force start can be used to bring all the bricks up. Default is false.
For example, to start profiling a gluster volume with identifier 123 in cluster 456, send a request like
this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/startprofile
167
Red Hat Virtualization 4.0 REST API Guide
For example, to stop a gluster volume with identifier 123 in cluster 456, send a request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/stop
force Boolean In
For example, to stop profiling a gluster volume with identifier 123 in cluster 456, send a request like
this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/stopprofile
For example, to stop rebalancing a gluster volume with identifier 123 in cluster 456, send a request
like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/stoprebalance
168
CHAPTER 5. SERVICES
5.82. GLUSTERVOLUMES
Name Summary
The volume is created based on properties of the volume parameter. The properties name,
volume_type and bricks are required.
For example, to add a volume with name myvolume to the cluster 123, send the following request:
POST /ovirt-engine/api/clusters/123/glustervolumes
<gluster_volume>
<name>myvolume</name>
<volume_type>replicate</volume_type>
<replica_count>3</replica_count>
<bricks>
<brick>
<server_id>server1</server_id>
<brick_dir>/exp1</brick_dir>
</brick>
<brick>
<server_id>server2</server_id>
<brick_dir>/exp1</brick_dir>
</brick>
<brick>
<server_id>server3</server_id>
169
Red Hat Virtualization 4.0 REST API Guide
<brick_dir>/exp1</brick_dir>
</brick>
<bricks>
</gluster_volume>
volume GlusterVolu In/Out The gluster volume definition from which to create
me the volume is passed as input and the newly
created volume is returned.
For example, to list all Gluster Volumes in cluster 456, send a request like this:
GET /ovirt-engine/api/clusters/456/glustervolumes
5.82.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
170
CHAPTER 5. SERVICES
5.82.2.2. max
Sets the maximum number of volumes to return. If not specified all the volumes are returned.
5.83. GRAPHICSCONSOLE
Name Summary
remove
current Boolean In Use the following query to obtain the current run-
time configuration of the graphics console.
5.83.1.1. current
Use the following query to obtain the current run-time configuration of the graphics console.
GET /ovit-engine/api/vms/{vm:id}/graphicsconsoles/{console:id}?
current=true
171
Red Hat Virtualization 4.0 REST API Guide
5.84. GRAPHICSCONSOLES
Name Summary
add
list Lists all the configured graphics consoles of the virtual machine.
172
CHAPTER 5. SERVICES
current Boolean In Use the following query to obtain the current run-
time configuration of the graphics consoles.
5.84.2.1. current
Use the following query to obtain the current run-time configuration of the graphics consoles.
GET /ovirt-engine/api/vms/123/graphicsconsoles?current=true
5.84.2.2. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
5.85. GROUP
Name Summary
get
remove
173
Red Hat Virtualization 4.0 REST API Guide
5.86. GROUPS
Name Summary
list
Add group from a directory service. Please note that domain name is name of the authorization
provider.
For example, to add the Developers group from the internal-authz authorization provider
send a request like this:
POST /ovirt-engine/api/groups
<group>
<name>Developers</name>
<domain>
<name>internal-authz</name>
</domain>
</group>
174
CHAPTER 5. SERVICES
5.86.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.86.2.2. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
5.87. HOST
Name Summary
activate Activate the host for use, such as running virtual machines.
approve Approve a pre-installed Hypervisor host for usage in the virtualization environment.
175
Red Hat Virtualization 4.0 REST API Guide
Name Summary
commitnetcon Marks the network configuration as good and persists it inside the host.
fig
iscsidiscove Discover iSCSI targets on the host, using the initiator details.
r
iscsilogin Login to iSCSI targets on the host, using the target details.
setupnetwork This method is used to change the configuration of the network interfaces of a host.
s
unregistered
storagedomai
nsdiscover
176
CHAPTER 5. SERVICES
Name Summary
This action also accepts an optional cluster element to define the target cluster for this host.
cluster Cluster In
Marks the network configuration as good and persists it inside the host.
An API user commits the network configuration to persist a host network interface attachment or
detachment, or persist the creation and deletion of a bonded interface.
177
Red Hat Virtualization 4.0 REST API Guide
Important
Networking configuration is only committed after the engine has established that host
connectivity is not lost as a result of the configuration changes. If host connectivity is lost,
the host requires a reboot and automatically reverts to the previous networking
configuration.
For example, to commit the network configuration of host with id 123 send a request like this:
POST /ovirt-engine/api/hosts/123/commitnetconfig
<action/>
reason String In
5.87.4.1. stop_gluster_service
178
CHAPTER 5. SERVICES
Indicates if the gluster service should be stopped as part of deactivating the host. It can be used
while performing maintenance operations on the gluster host. Default value for this variable is
false.
Enroll certificate of the host. Useful in case you get a warning that it is about to, or already expired.
For example, let’s assume you want to start the host. This can be done via:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<action>
<fence_type>start</fence_type>
</action>
' \
"${url}/hosts/123/fence"
179
Red Hat Virtualization 4.0 REST API Guide
fence_ty String In
pe
POST /ovirt-engine/api/hosts/123/forceselectspm
<action/>
180
CHAPTER 5. SERVICES
Install VDSM and related software on the host. The host type defines additional parameters for the
action.
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--request PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Version: 4" \
--user "admin@internal:..." \
--data '
{
"root_password": "myrootpassword"
}
' \
"https://engine.example.com/ovirt-engine/api/hosts/123"
Example of installing a host, using curl and JSON, with hosted engine components:
curl \
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--request PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Version: 4" \
--user "admin@internal:..." \
--data '
{
"root_password": "myrootpassword"
}
' \
"https://engine.example.com/ovirt-engine/api/hosts/123?
deploy_hosted_engine=true"
181
Red Hat Virtualization 4.0 REST API Guide
deploy_h Boolean In When set to true it means this host should deploy
osted_en also hosted engine components.
gine
undeploy Boolean In When set to true it means this host should un-
_hosted_ deploy hosted engine components and this host
engine will not function as part of the High Availability
cluster.
5.87.9.1. deploy_hosted_engine
When set to true it means this host should deploy also hosted engine components. Missing value
is treated as true i.e deploy. Omitting this parameter means false and will perform no operation in
hosted engine area.
5.87.9.2. undeploy_hosted_engine
When set to true it means this host should un-deploy hosted engine components and this host will
not function as part of the High Availability cluster. Missing value is treated as true i.e un-deploy
Omitting this parameter means false and will perform no operation in hosted engine area.
182
CHAPTER 5. SERVICES
183
Red Hat Virtualization 4.0 REST API Guide
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request DELETE \
--header "Version: 4" \
"${url}/hosts/1ff7a191-2f3b-4eff-812b-9f91a30c3acc"
This method is used to change the configuration of the network interfaces of a host.
For example, lets assume that you have a host with three network interfaces eth0, eth1 and eth2
and that you want to configure a new bond using eth0 and eth1, and put a VLAN on top of it. Using
a simple shell script and the curl command line HTTP client that can be done as follows:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<action>
<modified_bonds>
<host_nic>
<name>bond0</name>
<bonding>
<options>
<option>
184
CHAPTER 5. SERVICES
<name>mode</name>
<value>4</value>
</option>
<option>
<name>miimon</name>
<value>100</value>
</option>
</options>
<slaves>
<host_nic>
<name>eth1</name>
</host_nic>
<host_nic>
<name>eth2</name>
</host_nic>
</slaves>
</bonding>
</host_nic>
</modified_bonds>
<modified_network_attachments>
<network_attachment>
<network>
<name>myvlan</name>
</network>
<host_nic>
<name>bond0</name>
</host_nic>
<ip_address_assignments>
<assignment_method>static</assignment_method>
<ip_address_assignment>
<ip>
<address>192.168.122.10</address>
<netmask>255.255.255.0</netmask>
</ip>
</ip_address_assignment>
</ip_address_assignments>
</network_attachment>
</modified_network_attachments>
</action>
' \
"${url}/hosts/1ff7a191-2f3b-4eff-812b-9f91a30c3acc/setupnetworks"
Note that this is valid for version 4 of the API. In previous versions some elements were represented
as XML attributes instead of XML elements. In particular the options and ip elements were
represented as follows:
Using the Python SDK the same can be done with the following code:
host.setupnetworks(
params.Action(
modified_bonds=params.HostNics(
host_nic=[
185
Red Hat Virtualization 4.0 REST API Guide
params.HostNIC(
name="bond0",
bonding=params.Bonding(
options=params.Options(
option=[
params.Option(name="mode", value="4"),
params.Option(name="miimon", value="100"),
],
),
slaves=params.Slaves(
host_nic=[
params.HostNIC(name="eth1"),
params.HostNIC(name="eth2"),
],
),
),
),
],
),
modified_network_attachments=params.NetworkAttachments(
network_attachment=[
params.NetworkAttachment(
network=params.Network(name="myvlan"),
host_nic=params.HostNIC(name="bond0"),
ip_address_assignments=params.IpAddressAssignments(
ip_address_assignment=[
params.IpAddressAssignment(
assignment_method="static",
ip=params.IP(
address="192.168.122.10",
netmask="255.255.255.0",
),
),
],
),
),
],
),
),
)
Important
To make sure that the network configuration has been saved in the host, and that it will be
applied when the host is rebooted, remember to call commitnetconfig.
186
CHAPTER 5. SERVICES
check_co Boolean In
nnectivi
ty
connecti Integer In
vity_tim
eout
modified HostNic[] In
_bonds
modified NetworkLab In
_labels el[]
modified NetworkAtta In
_network chment[]
_attachm
ents
removed_ HostNic[] In
bonds
removed_ NetworkLab In
labels el[]
removed_ NetworkAtta In
network_ chment[]
attachme
nts
synchron NetworkAtta In
ized_net chment[]
work_att
achments
187
Red Hat Virtualization 4.0 REST API Guide
iscsi IscsiDetails In
For example, to update a the kernel command line of a host send a request like this:
PUT /ovirt-engine/api/hosts/123
<host>
<os>
<custom_kernel_cmdline>vfio_iommu_type1.allow_unsafe_interrupts=1</custom
_kernel_cmdline>
</os>
</host>
188
CHAPTER 5. SERVICES
5.88. HOSTDEVICE
A service to access a particular device of a host.
Name Summary
GET /ovirt-engine/api/hosts/123/devices/456
189
Red Hat Virtualization 4.0 REST API Guide
5.89. HOSTDEVICES
A service to access host devices.
Name Summary
5.89.1.1. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
5.90. HOSTHOOK
Name Summary
get
190
CHAPTER 5. SERVICES
5.91. HOSTHOOKS
Name Summary
list
5.91.1.1. max
Sets the maximum number of hooks to return. If not specified all the hooks are returned.
5.92. HOSTNIC
A service to manage a network interface of a host.
Name Summary
get
191
Red Hat Virtualization 4.0 REST API Guide
Name Summary
updatevirtua The action updates virtual function configuration in case the current resource
lfunctionsco represents an SR-IOV enabled NIC.
nfiguration
The action updates virtual function configuration in case the current resource represents an SR-IOV
enabled NIC. The input should be consisted of at least one of the following properties:
allNetworksAllowed
numberOfVirtualFunctions
virtual_ HostNicVirtu In
function alFunctions
s_config Configuratio
uration n
5.93. HOSTNICS
192
CHAPTER 5. SERVICES
Name Summary
list
5.93.1.1. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
5.94. HOSTNUMANODE
Name Summary
get
193
Red Hat Virtualization 4.0 REST API Guide
5.95. HOSTNUMANODES
Name Summary
list
5.95.1.1. max
Sets the maximum number of nodes to return. If not specified all the nodes are returned.
5.96. HOSTSTORAGE
A service to manage host storages.
Name Summary
GET /ovirt-engine/api/hosts/123/storage
194
CHAPTER 5. SERVICES
<host_storages>
<host_storage id="123">
...
</host_storage>
...
</host_storages>
5.96.1.1. report_status
Indicates if the status of the LUNs in the storage should be checked. Checking the status of the LUN
is an heavy weight operation and this data is not always needed by the user. This parameter will
give the option to not perform the status check of the LUNs.
<host_storage id="123">
<logical_units>
<logical_unit id="123">
<lun_mapping>0</lun_mapping>
<paths>1</paths>
<product_id>lun0</product_id>
<serial>123</serial>
<size>10737418240</size>
<status>used</status>
<vendor_id>LIO-ORG</vendor_id>
<volume_group_id>123</volume_group_id>
</logical_unit>
</logical_units>
<type>iscsi</type>
<host id="123"/>
</host_storage>
<host_storage id="123">
<logical_units>
<logical_unit id="123">
<lun_mapping>0</lun_mapping>
195
Red Hat Virtualization 4.0 REST API Guide
<paths>1</paths>
<product_id>lun0</product_id>
<serial>123</serial>
<size>10737418240</size>
<vendor_id>LIO-ORG</vendor_id>
<volume_group_id>123</volume_group_id>
</logical_unit>
</logical_units>
<type>iscsi</type>
<host id="123"/>
</host_storage>
5.97. HOSTS
Name Summary
The host is created based on the attributes of the host parameter. The name, address and
root_password properties are required.
POST /ovirt-engine/api/hosts
<host>
<name>myhost</name>
<address>myhost.example.com</address>
<root_password>myrootpassword</root_password>
</host>
Note
196
CHAPTER 5. SERVICES
POST /ovirt-engine/api/hosts?deploy_hosted_engine=true
deploy_h Boolean In When set to true it means this host should deploy
osted_en also hosted engine components.
gine
host Host In/Out The host definition from which to create the new
host is passed as parameter, and the newly
created host is returned.
undeploy Boolean In When set to true it means this host should un-
_hosted_ deploy hosted engine components and this host
engine will not function as part of the High Availability
cluster.
5.97.1.1. deploy_hosted_engine
When set to true it means this host should deploy also hosted engine components. Missing value
is treated as true i.e deploy. Omitting this parameter means false and will perform no operation in
hosted engine area.
5.97.1.2. undeploy_hosted_engine
When set to true it means this host should un-deploy hosted engine components and this host will
not function as part of the High Availability cluster. Missing value is treated as true i.e un-deploy.
Omitting this parameter means false and will perform no operation in hosted engine area.
GET /ovirt-engine/api/hosts
<hosts>
<host href="/ovirt-engine/api/hosts/123" id="123">
...
</host>
197
Red Hat Virtualization 4.0 REST API Guide
5.97.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.97.2.2. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
5.98. ICON
198
CHAPTER 5. SERVICES
Name Summary
Get an icon.
GET /ovirt-engine/api/icons/123
<icon id="123">
<data>Some binary data here</data>
<media_type>image/png</media_type>
</icon>
5.99. ICONS
Name Summary
GET /ovirt-engine/api/icons
<icons>
199
Red Hat Virtualization 4.0 REST API Guide
<icon id="123">
<data>...</data>
<media_type>image/png</media_type>
</icon>
...
</icons>
5.99.1.1. max
Sets the maximum number of icons to return. If not specified all the icons are returned.
5.100. IMAGE
Name Summary
get
import
200
CHAPTER 5. SERVICES
5.100.2.1. cluster
Cluster where the image should be imported. Has effect only in case import_as_template
parameter is set to true.
5.100.2.2. template
Name of the template, which should be created. Has effect only in case import_as_template
parameter is set to true.
5.101. IMAGETRANSFER
This service provides a mechanism to control an image transfer. The client will have to create a
transfer by using add of the Section 5.102, “ImageTransfers” service, stating the image to transfer
data to/from.
transfers_service = system_service.image_transfers_service()
transfer = transfers_service.add(
201
Red Hat Virtualization 4.0 REST API Guide
types.ImageTransfer(
image=types.Image(
id='52cb593f-837c-4633-a444-35a0a0383706'
)
)
)
Transfers have phases, which govern the flow of the upload/download. A client implementing such a
flow should poll/check the transfer’s phase and act accordingly. All the possible phases can be
found in ImageTransferPhase.
After adding a new transfer, its phase will be initializing. The client will have to poll on the transfer’s
phase until it changes. When the phase becomes transferring, the session is ready to start the
transfer.
For example:
transfer_service = transfers_service.image_transfer_service(transfer.id)
while transfer.phase == types.ImageTransferPhase.INITIALIZING:
time.sleep(3)
transfer = transfer_service.get()
At that stage, if the transfer’s phase is paused_system, then the session was not successfully
established. One possible reason for that is that the ovirt-imageio-daemon is not running in the host
that was selected for transfer. The transfer can be resumed by calling resume of the service that
manages it.
If the session was successfully established - the returned transfer entity will contain the proxy_url
and signed_ticket attributes, which the client needs to use in order to transfer the required data. The
client can choose whatever technique and tool for sending the HTTPS request with the image’s
data.
signed_ticket is the content that needs to be added to the Authentication header in the
HTTPS request, in order to perform a trusted communication.
upload_headers = {
'Authorization' : transfer.signed_ticket,
}
# Extract the URI, port, and path from the transfer's proxy_url.
url = urlparse(transfer.proxy_url)
202
CHAPTER 5. SERVICES
The specific content range being sent must be noted in the Content-Range HTTPS header. This
can be used in order to split the transfer into several requests for a more flexible process.
For doing that, the client will have to repeatedly extend the transfer session to keep the channel
open. Otherwise, the session will terminate and the transfer will get into paused_system phase,
and HTTPS requests to the server will be rejected.
E.g., the client can iterate on chunks of the file, and send them to the proxy server while asking the
service to extend the session:
path = "/path/to/image"
MB_per_request = 32
with open(path, "rb") as disk:
size = os.path.getsize(path)
chunk_size = 1024*1024*MB_per_request
pos = 0
while (pos < size):
transfer_service.extend()
upload_headers['Content-Range'] = "bytes %d-%d/%d" % (pos, min(pos
+ chunk_size, size)-1, size)
proxy_connection.request(
'PUT',
url.path,
disk.read(chunk_size),
headers=upload_headers
)
r = proxy_connection.getresponse()
print r.status, r.reason, "Completed", "{:.0%}".format(pos/
float(size))
pos += chunk_size
When finishing the transfer, the user should call finalize. This will make the final adjustments and
verifications for finishing the transfer process.
For example:
transfer_service.finalize()
In case of an error, the transfer’s phase will be changed to finished_failure, and the disk’s status will
be changed to Illegal. Otherwise it will be changed to finished_success, and the disk will be
ready to be used. In both cases, the transfer entity will be removed shortly after.
Name Summary
203
Red Hat Virtualization 4.0 REST API Guide
Name Summary
This will make sure that the data being transferred is valid and fits the image entity that was targeted
in the transfer. Specifically, will verify that if the image entity is a QCOW disk, the data uploaded is
indeed a QCOW file, and that the image doesn’t have a backing file.
Resume the image transfer session. The client will need to poll the transfer’s phase until it is
different than resuming. For example:
transfer_service = transfers_service.image_transfer_service(transfer.id)
transfer_service.resume()
transfer = transfer_service.get()
204
CHAPTER 5. SERVICES
5.102. IMAGETRANSFERS
This service manages image transfers, for performing Image I/O API in oVirt. Please refer to image
transfer for further documentation.
Name Summary
list Retrieves the list of image transfers that are currently being performed.
Add a new image transfer. An image needs to be specified in order to make a new transfer.
Retrieves the list of image transfers that are currently being performed.
205
Red Hat Virtualization 4.0 REST API Guide
5.103. IMAGES
Name Summary
list
5.103.1.1. max
Sets the maximum number of images to return. If not specified all the images are returned.
5.104. INSTANCETYPE
Name Summary
206
CHAPTER 5. SERVICES
GET /ovirt-engine/api/instancetypes/123
If a virtual machine was created using an instance type X after removal of the instance type the
virtual machine’s instance type will be set to custom.
DELETE /ovirt-engine/api/instancetypes/123
All the attributes are editable after creation. If a virtual machine was created using an instance type
X and some configuration in instance type X was updated, the virtual machine’s configuration will be
updated automatically by the engine.
PUT /ovirt-engine/api/instancetypes/123
For example, to update the memory of instance type 123 to 1 GiB and set the cpu topology to 2
sockets and 1 core, send a request like this:
<instance_type>
<memory>1073741824</memory>
<cpu>
<topology>
<cores>1</cores>
<sockets>2</sockets>
207
Red Hat Virtualization 4.0 REST API Guide
<threads>1</threads>
</topology>
</cpu>
</instance_type>
5.105. INSTANCETYPENIC
Name Summary
208
CHAPTER 5. SERVICES
5.106. INSTANCETYPENICS
Name Summary
list Lists all the configured network interface of the instance type.
209
Red Hat Virtualization 4.0 REST API Guide
5.106.2.1. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
5.107. INSTANCETYPEWATCHDOG
Name Summary
210
CHAPTER 5. SERVICES
5.108. INSTANCETYPEWATCHDOGS
211
Red Hat Virtualization 4.0 REST API Guide
Name Summary
5.108.2.1. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
5.109. INSTANCETYPES
212
CHAPTER 5. SERVICES
Name Summary
This requires only a name attribute and can include all hardware configurations of the virtual
machine.
POST /ovirt-engine/api/instancetypes
<instance_type>
<name>myinstancetype</name>
</template>
Creating an instance type with all hardware configurations with a request body like this:
<instance_type>
<name>myinstancetype</name>
<console>
<enabled>true</enabled>
</console>
<cpu>
<topology>
<cores>2</cores>
<sockets>2</sockets>
<threads>1</threads>
</topology>
</cpu>
<custom_cpu_model>AMD Opteron_G2</custom_cpu_model>
<custom_emulated_machine>q35</custom_emulated_machine>
<display>
<monitors>1</monitors>
<single_qxl_pci>true</single_qxl_pci>
<smartcard_enabled>true</smartcard_enabled>
<type>spice</type>
</display>
<high_availability>
<enabled>true</enabled>
<priority>1</priority>
</high_availability>
<io>
213
Red Hat Virtualization 4.0 REST API Guide
<threads>2</threads>
</io>
<memory>4294967296</memory>
<memory_policy>
<ballooning>true</ballooning>
<guaranteed>268435456</guaranteed>
</memory_policy>
<migration>
<auto_converge>inherit</auto_converge>
<compressed>inherit</compressed>
<policy id="00000000-0000-0000-0000-000000000000"/>
</migration>
<migration_downtime>2</migration_downtime>
<os>
<boot>
<devices>
<device>hd</device>
</devices>
</boot>
</os>
<rng_device>
<rate>
<bytes>200</bytes>
<period>2</period>
</rate>
<source>urandom</source>
</rng_device>
<soundcard_enabled>true</soundcard_enabled>
<usb>
<enabled>true</enabled>
<type>native</type>
</usb>
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
</instance_type>
214
CHAPTER 5. SERVICES
5.109.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.109.2.2. max
Sets the maximum number of instance types to return. If not specified all the instance types are
returned.
5.110. ISCSIBOND
Name Summary
get
215
Red Hat Virtualization 4.0 REST API Guide
For example, to remove the iSCSI bond 456 send a request like this:
DELETE /ovirt-engine/api/datacenters/123/iscsibonds/456
Updating of an iSCSI bond can be done on the name and the description attributes only. For
example, to update the iSCSI bond 456 of data center 123, send a request like this:
PUT /ovirt-engine/api/datacenters/123/iscsibonds/1234
<iscsi_bond>
<name>mybond</name>
<description>My iSCSI bond</description>
</iscsi_bond>
216
CHAPTER 5. SERVICES
5.111. ISCSIBONDS
Name Summary
list
For example, to create a new iSCSI bond on data center 123 using storage connections 456 and
789, send a request like this:
POST /ovirt-engine/api/datacenters/123/iscsibonds
<iscsi_bond>
<name>mybond</name>
<storage_connections>
<storage_connection id="456"/>
<storage_connection id="789"/>
</storage_connections>
<networks>
<network id="abc"/>
</networks>
</iscsi_bond>
217
Red Hat Virtualization 4.0 REST API Guide
5.111.2.1. max
Sets the maximum number of bonds to return. If not specified all the bonds are returned.
5.112. JOB
A service to manage a job.
Name Summary
For example, to set a job with identifier 123 send the following request:
POST /ovirt-engine/api/jobs/clear
<action/>
218
CHAPTER 5. SERVICES
For example, to terminate a job with identifier 123 send the following request:
POST /ovirt-engine/api/jobs/end
<action>
<force>true</force>
<status>finished</status>
</action>
Retrieves a job.
GET /ovirt-engine/api/jobs/123
219
Red Hat Virtualization 4.0 REST API Guide
5.113. JOBS
Name Summary
POST /ovirt-engine/api/jobs
<job>
<description>Doing some work</description>
<auto_cleared>true</auto_cleared>
</job>
220
CHAPTER 5. SERVICES
GET /ovirt-engine/api/jobs
<jobs>
<job href="/ovirt-engine/api/jobs/123" id="123">
<actions>
<link href="/ovirt-engine/api/jobs/123/clear" rel="clear"/>
<link href="/ovirt-engine/api/jobs/123/end" rel="end"/>
</actions>
<description>Adding Disk</description>
<link href="/ovirt-engine/api/jobs/123/steps" rel="steps"/>
<auto_cleared>true</auto_cleared>
<end_time>2016-12-12T23:07:29.758+02:00</end_time>
<external>false</external>
<last_updated>2016-12-12T23:07:29.758+02:00</last_updated>
<start_time>2016-12-12T23:07:26.593+02:00</start_time>
<status>failed</status>
<owner href="/ovirt-engine/api/users/456" id="456"/>
</job>
...
</jobs>
221
Red Hat Virtualization 4.0 REST API Guide
5.113.2.1. max
Sets the maximum number of jobs to return. If not specified all the jobs are returned.
5.114. KATELLOERRATA
A service to manage Katello errata. The information is retrieved from Katello.
Name Summary
GET /ovirt-engine/api/katelloerrata
<katello_errata>
<katello_erratum href="/ovirt-engine/api/katelloerrata/123" id="123">
<name>RHBA-2013:XYZ</name>
<description>The description of the erratum</description>
<title>some bug fix update</title>
<type>bugfix</type>
<issued>2013-11-20T02:00:00.000+02:00</issued>
<solution>Few guidelines regarding the solution</solution>
<summary>Updated packages that fix one bug are now available for
XYZ</summary>
<packages>
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
</packages>
</katello_erratum>
...
222
CHAPTER 5. SERVICES
</katello_errata>
5.114.1.1. max
Sets the maximum number of errata to return. If not specified all the errata are returned.
5.115. KATELLOERRATUM
A service to manage a Katello erratum.
Name Summary
GET /ovirt-engine/api/katelloerrata/123
223
Red Hat Virtualization 4.0 REST API Guide
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
</packages>
</katello_erratum>
5.116. MACPOOL
Name Summary
get
For example, to remove the MAC address pool having id 123 send a request like this:
224
CHAPTER 5. SERVICES
DELETE /ovirt-engine/api/macpools/123
For example, to update the MAC address pool of id 123 send a request like this:
PUT /ovirt-engine/api/macpools/123
<mac_pool>
<name>UpdatedMACPool</name>
<description>An updated MAC address pool</description>
<allow_duplicates>false</allow_duplicates>
<ranges>
<range>
<from>00:1A:4A:16:01:51</from>
<to>00:1A:4A:16:01:e6</to>
</range>
<range>
<from>02:1A:4A:01:00:00</from>
<to>02:1A:4A:FF:FF:FF</to>
</range>
</ranges>
</mac_pool>
225
Red Hat Virtualization 4.0 REST API Guide
5.117. MACPOOLS
Name Summary
list
Creation of a MAC address pool requires values for the name and ranges attributes.
For example, to create MAC address pool send a request like this:
POST /ovirt-engine/api/macpools
<mac_pool>
<name>MACPool</name>
<description>A MAC address pool</description>
<allow_duplicates>true</allow_duplicates>
<default_pool>false</default_pool>
<ranges>
<range>
<from>00:1A:4A:16:01:51</from>
<to>00:1A:4A:16:01:e6</to>
</range>
</ranges>
</mac_pool>
226
CHAPTER 5. SERVICES
5.117.2.1. max
Sets the maximum number of pools to return. If not specified all the pools are returned.
5.118. MEASURABLE
5.119. MOVEABLE
Name Summary
move
5.120. NETWORK
A service managing a network
227
Red Hat Virtualization 4.0 REST API Guide
Name Summary
remove Removes a logical network, or the association of a logical network to a data center.
For example:
GET /ovirt-engine/api/networks/123
Will respond:
228
CHAPTER 5. SERVICES
For example, to remove the logical network 123 send a request like this:
DELETE /ovirt-engine/api/networks/123
Each network is bound exactly to one data center. So if we disassociate network with data center it
has the same result as if we would just remove that network. However it might be more specific to
say we’re removing network 456 of data center 123.
For example, to remove the association of network 456 to data center 123 send a request like this:
DELETE /ovirt-engine/api/datacenters/123/networks/456
The name, description, ip, vlan, stp and display attributes can be updated.
For example, to update the description of the logical network 123 send a request like this:
PUT /ovirt-engine/api/networks/123
<network>
<description>My updated description</description>
</network>
The maximum transmission unit of a network is set using a PUT request to specify the integer value
of the mtu attribute.
For example, to set the maximum transmission unit send a request like this:
PUT /ovirt-engine/api/datacenters/123/networks/456
<network>
<mtu>1500</mtu>
</network>
229
Red Hat Virtualization 4.0 REST API Guide
5.121. NETWORKATTACHMENT
Name Summary
get
remove
update
230
CHAPTER 5. SERVICES
5.122. NETWORKATTACHMENTS
Name Summary
add
list
231
Red Hat Virtualization 4.0 REST API Guide
5.122.2.1. max
Sets the maximum number of attachments to return. If not specified all the attachments are returned.
5.123. NETWORKFILTER
<network_filter id="00000019-0019-0019-0019-00000000026b">
<name>example-network-filter-b</name>
<version>
<major>4</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
Please note that version is referring to the minimal support version for the specific filter.
Name Summary
232
CHAPTER 5. SERVICES
5.124. NETWORKFILTERS
Represents a readonly network filters sub-collection.
The network filter enables to filter packets send to/from the VM’s nic according to defined rules. For
more information please refer to NetworkFilter service documentation
Network filters are supported in different versions, starting from version 3.0.
A network can be assigned to several different clusters. In the future, each network will be defined in
cluster level.
Currently, each network is being defined at data center level. Potential network filters for each
network are determined by the network’s data center compatibility version V. V must be >= the
network filter version in order to configure this network filter for a specific network. Please note, that
if a network is assigned to cluster with a version supporting a network filter, the filter may not be
available due to the data center version being smaller then the network filter’s version.
Example of listing all of the supported network filters for a specific cluster:
GET http://localhost:8080/ovirt-
engine/api/clusters/{cluster:id}/networkfilters
Output:
<network_filters>
<network_filter id="00000019-0019-0019-0019-00000000026c">
<name>example-network-filter-a</name>
<version>
<major>4</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
<network_filter id="00000019-0019-0019-0019-00000000026b">
<name>example-network-filter-b</name>
<version>
<major>4</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
<network_filter id="00000019-0019-0019-0019-00000000026a">
233
Red Hat Virtualization 4.0 REST API Guide
<name>example-network-filter-a</name>
<version>
<major>3</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
</network_filters>
Name Summary
5.125. NETWORKLABEL
Name Summary
get
234
CHAPTER 5. SERVICES
For example, to remove the label exemplary from a logical network having id 123 send the
following request:
DELETE /ovirt-engine/api/networks/123/labels/exemplary
5.126. NETWORKLABELS
Name Summary
list
You can attach labels to a logical network to automate the association of that logical network with
physical host network interfaces to which the same label has been attached.
For example, to attach the label mylabel to a logical network having id 123 send a request like
this:
POST /ovirt-engine/api/networks/123/labels
235
Red Hat Virtualization 4.0 REST API Guide
<label id="mylabel"/>
5.126.2.1. max
Sets the maximum number of labels to return. If not specified all the labels are returned.
5.127. NETWORKS
The engine creates a default ovirtmgmt network on installation. This network acts as the
management network for access to hypervisor hosts. This network is associated with the Default
cluster and is a member of the Default data center.
Name Summary
add Creates a new logical network, or associates an existing network with a data center.
236
CHAPTER 5. SERVICES
Name Summary
Creates a new logical network, or associates an existing network with a data center.
For example, to create a network named mynetwork for data center 123 send a request like this:
POST /ovirt-engine/api/networks
<network>
<name>mynetwork</name>
<data_center id="123"/>
</network>
To associate the existing network 456 with the data center 123 send a request like this:
POST /ovirt-engine/api/datacenters/123/networks
<network>
<name>ovirtmgmt</name>
</network>
For example:
GET /ovirt-engine/api/networks
Will respond:
237
Red Hat Virtualization 4.0 REST API Guide
<networks>
<network href="/ovirt-engine/api/networks/123" id="123">
<name>ovirtmgmt</name>
<description>Default Management Network</description>
<link href="/ovirt-engine/api/networks/123/permissions"
rel="permissions"/>
<link href="/ovirt-engine/api/networks/123/vnicprofiles"
rel="vnicprofiles"/>
<link href="/ovirt-engine/api/networks/123/networklabels"
rel="networklabels"/>
<mtu>0</mtu>
<stp>false</stp>
<usages>
<usage>vm</usage>
</usages>
<data_center href="/ovirt-engine/api/datacenters/456" id="456"/>
</network>
...
</networks>
5.127.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.127.2.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
5.128. OPENSTACKIMAGE
238
CHAPTER 5. SERVICES
5.128. OPENSTACKIMAGE
Name Summary
get
For example, to import the image with identifier 456 from the storage domain with identifier 123
send a request like this:
POST /ovirt-engine/api/openstackimageproviders/123/images/456/import
<action>
<storage_domain>
<name>images0</name>
</storage_domain>
<cluster>
<name>images0</name>
</cluster>
</action>
239
Red Hat Virtualization 4.0 REST API Guide
disk Disk In
storage_ StorageDom In
domain ain
template Template In
5.129. OPENSTACKIMAGEPROVIDER
Name Summary
get
importcertif
icates
remove
testconnecti
vity
240
CHAPTER 5. SERVICES
Name Summary
update
certific Certificate[] In
ates
241
Red Hat Virtualization 4.0 REST API Guide
5.130. OPENSTACKIMAGEPROVIDERS
Name Summary
add
list
242
CHAPTER 5. SERVICES
5.130.2.1. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
5.131. OPENSTACKIMAGES
Name Summary
243
Red Hat Virtualization 4.0 REST API Guide
5.131.1.1. max
Sets the maximum number of images to return. If not specified all the images are returned.
5.132. OPENSTACKNETWORK
Name Summary
get
This operation imports an external network into oVirt. The network will be added to the data center
specified.
244
CHAPTER 5. SERVICES
5.132.2.1. data_center
The data center into which the network is to be imported. Data center is mandatory, and can be
specified using the id or name attributes, the rest of the attributes will be ignored.
5.133. OPENSTACKNETWORKPROVIDER
Name Summary
importcertif
icates
testconnecti
vity
For example, to get the OpenStack network provider with identifier 1234, send a request like this:
GET /ovirt-engine/api/openstacknetworkproviders/1234
245
Red Hat Virtualization 4.0 REST API Guide
certific Certificate[] In
ates
For example, to remove the OpenStack network provider with identifier 1234, send a request like
this:
DELETE /ovirt-engine/api/openstacknetworkproviders/1234
246
CHAPTER 5. SERVICES
PUT /ovirt-engine/api/openstacknetworkproviders/1234
<openstack_network_provider>
<name>ovn-network-provider</name>
<requires_authentication>false</requires_authentication>
<url>http://some_server_url.domain.com:9696</url>
<tenant_name>oVirt</tenant_name>
<type>external</type>
</openstack_network_provider>
5.134. OPENSTACKNETWORKPROVIDERS
This service manages OpenStack network providers.
247
Red Hat Virtualization 4.0 REST API Guide
Name Summary
list
The operation adds a new network provider to the system. If the type property is not present, a
default value of NEUTRON will be used.
5.134.2.1. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
5.135. OPENSTACKNETWORKS
248
CHAPTER 5. SERVICES
Name Summary
list
5.135.1.1. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
5.136. OPENSTACKSUBNET
Name Summary
get
remove
249
Red Hat Virtualization 4.0 REST API Guide
5.137. OPENSTACKSUBNETS
Name Summary
add
list
250
CHAPTER 5. SERVICES
5.137.2.1. max
Sets the maximum number of sub-networks to return. If not specified all the sub-networks are
returned.
5.138. OPENSTACKVOLUMEAUTHENTICATIONKEY
Name Summary
get
remove
update
251
Red Hat Virtualization 4.0 REST API Guide
5.139. OPENSTACKVOLUMEAUTHENTICATIONKEYS
Name Summary
add
list
252
CHAPTER 5. SERVICES
5.139.2.1. max
Sets the maximum number of keys to return. If not specified all the keys are returned.
5.140. OPENSTACKVOLUMEPROVIDER
Name Summary
get
importcertif
icates
remove
testconnecti
vity
update
253
Red Hat Virtualization 4.0 REST API Guide
certific Certificate[] In
ates
254
CHAPTER 5. SERVICES
5.141. OPENSTACKVOLUMEPROVIDERS
Name Summary
For example:
POST /ovirt-engine/api/openstackvolumeproviders
<openstack_volume_provider>
<name>mycinder</name>
<url>https://mycinder.example.com:8776</url>
<data_center>
<name>mydc</name>
</data_center>
<requires_authentication>true</requires_authentication>
<username>admin</username>
<password>mypassword</password>
<tenant_name>mytenant</tenant_name>
</openstack_volume_provider>
255
Red Hat Virtualization 4.0 REST API Guide
5.141.2.1. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
5.142. OPENSTACKVOLUMETYPE
Name Summary
get
256
CHAPTER 5. SERVICES
5.143. OPENSTACKVOLUMETYPES
Name Summary
list
5.143.1.1. max
Sets the maximum number of volume types to return. If not specified all the volume types are
returned.
5.144. OPERATINGSYSTEM
Name Summary
get
257
Red Hat Virtualization 4.0 REST API Guide
5.145. OPERATINGSYSTEMS
Name Summary
list
5.145.1.1. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
5.146. PERMISSION
258
CHAPTER 5. SERVICES
Name Summary
get
remove
5.147. PERMIT
Name Summary
259
Red Hat Virtualization 4.0 REST API Guide
For example to retrieve the information about the permit with the id 456 of the role with the id 123
send a request like this:
GET /ovirt-engine/api/roles/123/permits/456
For example to remove the permit with id 456 from the role with id 123 send a request like this:
DELETE /ovirt-engine/api/roles/123/permits/456
5.148. PERMITS
Represents a permits sub-collection of the specific role.
260
CHAPTER 5. SERVICES
Name Summary
Adds a permit to the role. The permit name can be retrieved from the Section 5.33, “ClusterLevels”
service.
For example to assign a permit create_vm to the role with id 123 send a request like this:
POST /ovirt-engine/api/roles/123/permits
<permit>
<name>create_vm</name>
</permit>
For example to list the permits of the role with the id 123 send a request like this:
GET /ovirt-engine/api/roles/123/permits
<permits>
<permit href="/ovirt-engine/api/roles/123/permits/5" id="5">
<name>change_vm_cd</name>
<administrative>false</administrative>
<role href="/ovirt-engine/api/roles/123" id="123"/>
</permit>
<permit href="/ovirt-engine/api/roles/123/permits/7" id="7">
<name>connect_to_vm</name>
261
Red Hat Virtualization 4.0 REST API Guide
<administrative>false</administrative>
<role href="/ovirt-engine/api/roles/123" id="123"/>
</permit>
</permits>
5.148.2.1. max
Sets the maximum number of permits to return. If not specified all the permits are returned.
5.149. QOS
Name Summary
get
remove
update
262
CHAPTER 5. SERVICES
5.150. QOSS
Name Summary
add
list
263
Red Hat Virtualization 4.0 REST API Guide
5.150.2.1. max
Sets the maximum number of QoS descriptors to return. If not specified all the descriptors are
returned.
5.151. QUOTA
Name Summary
Retrieves a quota.
264
CHAPTER 5. SERVICES
GET /ovirt-engine/api/datacenters/123/quotas/456
<quota id="456">
<name>myquota</name>
<description>My new quota for virtual machines</description>
<cluster_hard_limit_pct>20</cluster_hard_limit_pct>
<cluster_soft_limit_pct>80</cluster_soft_limit_pct>
<storage_hard_limit_pct>20</storage_hard_limit_pct>
<storage_soft_limit_pct>80</storage_soft_limit_pct>
</quota>
Delete a quota.
DELETE /ovirt-engine/api/datacenters/123-456/quotas/654-321
-0472718ab224 HTTP/1.1
Accept: application/xml
Content-type: application/xml
Updates a quota.
PUT /ovirt-engine/api/datacenters/123/quotas/456
<quota>
<cluster_hard_limit_pct>30</cluster_hard_limit_pct>
265
Red Hat Virtualization 4.0 REST API Guide
<cluster_soft_limit_pct>70</cluster_soft_limit_pct>
<storage_hard_limit_pct>20</storage_hard_limit_pct>
<storage_soft_limit_pct>80</storage_soft_limit_pct>
</quota>
5.152. QUOTACLUSTERLIMIT
Name Summary
get
remove
266
CHAPTER 5. SERVICES
5.153. QUOTACLUSTERLIMITS
Name Summary
add
list
5.153.2.1. max
267
Red Hat Virtualization 4.0 REST API Guide
Sets the maximum number of limits to return. If not specified all the limits are returned.
5.154. QUOTASTORAGELIMIT
Name Summary
get
remove
5.155. QUOTASTORAGELIMITS
268
CHAPTER 5. SERVICES
Name Summary
add
list
5.155.2.1. max
Sets the maximum number of limits to return. If not specified all the limits are returned.
5.156. QUOTAS
269
Red Hat Virtualization 4.0 REST API Guide
Name Summary
POST /ovirt-engine/api/datacenters/123/quotas
<quota>
<name>myquota</name>
<description>My new quota for virtual machines</description>
</quota>
5.156.2.1. max
270
CHAPTER 5. SERVICES
Sets the maximum number of quota descriptors to return. If not specified all the descriptors are
returned.
5.157. ROLE
Name Summary
GET /ovirt-engine/api/roles/123
<role id="123">
<name>MyRole</name>
<description>MyRole description</description>
<link href="/ovirt-engine/api/roles/123/permits" rel="permits"/>
<administrative>true</administrative>
<mutable>false</mutable>
</role>
To remove the role you need to know its id, then send request like this:
271
Red Hat Virtualization 4.0 REST API Guide
DELETE /ovirt-engine/api/roles/{role_id}
Updates a role. You are allowed to update name, description and administrative attributes
after role is created. Within this endpoint you can’t add or remove roles permits you need to use
service that manages permits of role.
For example to update role’s name, description and administrative attributes send a request
like this:
PUT /ovirt-engine/api/roles/123
<role>
<name>MyNewRoleName</name>
<description>My new description of the role</description>
<administrative>true</administrative>
</group>
5.158. ROLES
Provides read-only access to the global set of roles
272
CHAPTER 5. SERVICES
Name Summary
Create a new role. The role can be administrative or non-administrative and can have different
permits.
For example, to add the MyRole non-administrative role with permits to login and create virtual
machines send a request like this (note that you have to pass permit id):
POST /ovirt-engine/api/roles
<role>
<name>MyRole</name>
<description>My custom role to create virtual machines</description>
<administrative>false</administrative>
<permits>
<permit id="1"/>
<permit id="1300"/>
</permits>
</group>
List roles.
GET /ovirt-engine/api/roles
<roles>
<role id="123">
<name>SuperUser</name>
<description>Roles management administrator</description>
273
Red Hat Virtualization 4.0 REST API Guide
5.158.2.1. max
Sets the maximum number of roles to return. If not specified all the roles are returned.
5.159. SCHEDULINGPOLICIES
Name Summary
add
list
274
CHAPTER 5. SERVICES
5.159.2.1. max
Sets the maximum number of policies to return. If not specified all the policies are returned.
5.160. SCHEDULINGPOLICY
Name Summary
get
remove
update
275
Red Hat Virtualization 4.0 REST API Guide
5.161. SCHEDULINGPOLICYUNIT
Name Summary
get
276
CHAPTER 5. SERVICES
Name Summary
remove
5.162. SCHEDULINGPOLICYUNITS
Name Summary
list
277
Red Hat Virtualization 4.0 REST API Guide
5.162.1.1. max
Sets the maximum number of policy units to return. If not specified all the policy units are returned.
5.163. SNAPSHOT
Name Summary
get
remove
278
CHAPTER 5. SERVICES
For example, to restore the snapshot with identifier 456 of virtual machine with identifier 123 send a
request like this:
POST /ovirt-engine/api/vms/123/snapshots/456/restore
<action/>
disks Disk[] In
restore_ Boolean In
memory
5.164. SNAPSHOTCDROM
Name Summary
get
279
Red Hat Virtualization 4.0 REST API Guide
5.165. SNAPSHOTCDROMS
Name Summary
list
5.165.1.1. max
Sets the maximum number of CDROMS to return. If not specified all the CDROMS are returned.
5.166. SNAPSHOTDISK
280
CHAPTER 5. SERVICES
Name Summary
get
5.167. SNAPSHOTDISKS
Name Summary
list
5.167.1.1. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
5.168. SNAPSHOTNIC
281
Red Hat Virtualization 4.0 REST API Guide
Name Summary
get
5.169. SNAPSHOTNICS
Name Summary
list
5.169.1.1. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
5.170. SNAPSHOTS
282
CHAPTER 5. SERVICES
5.170. SNAPSHOTS
Name Summary
list
For example, to create a new snapshot for virtual machine 123 send a request like this:
POST /ovirt-engine/api/vms/123/snapshots
<snapshot>
<description>My snapshot</description>
</snapshot>
283
Red Hat Virtualization 4.0 REST API Guide
5.170.2.1. max
Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
5.171. SSHPUBLICKEY
Name Summary
get
remove
update
284
CHAPTER 5. SERVICES
5.172. SSHPUBLICKEYS
Name Summary
add
list
285
Red Hat Virtualization 4.0 REST API Guide
5.172.2.1. max
Sets the maximum number of keys to return. If not specified all the keys are returned.
5.173. STATISTIC
Name Summary
get
5.174. STATISTICS
Name Summary
For example, to retrieve the statistics for virtual machine 123 send a request like this:
286
CHAPTER 5. SERVICES
GET /ovirt-engine/api/vms/123/statistics
<statistics>
<statistic href="/ovirt-engine/api/vms/123/statistics/456" id="456">
<name>memory.installed</name>
<description>Total memory configured</description>
<kind>gauge</kind>
<type>integer</type>
<unit>bytes</unit>
<values>
<value>
<datum>1073741824</datum>
</value>
</values>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</statistic>
...
</statistics>
Just a single part of the statistics can be retrieved by specifying its id at the end of the URI. That
means:
GET /ovirt-engine/api/vms/123/statistics/456
Outputs:
287
Red Hat Virtualization 4.0 REST API Guide
5.174.1.1. max
Sets the maximum number of statistics to return. If not specified all the statistics are returned.
5.175. STEP
Name Summary
For example, to terminate a step with identifier 456 which belongs to a job with identifier 123 send
the following request:
POST /ovirt-engine/api/jobs/123/steps/456/end
<action>
<force>true</force>
<succeeded>true</succeeded>
</action>
288
CHAPTER 5. SERVICES
Retrieves a step.
GET /ovirt-engine/api/jobs/123/steps/456
5.176. STEPS
289
Red Hat Virtualization 4.0 REST API Guide
Name Summary
For example, to add a step to job with identifier 123 send the following request:
POST /ovirt-engine/api/jobs/123/steps
<step>
<description>Validating</description>
<start_time>2016-12-12T23:07:26.605+02:00</start_time>
<status>started</status>
<type>validating</type>
</step>
290
CHAPTER 5. SERVICES
GET /ovirt-engine/api/job/123/steps
<steps>
<step href="/ovirt-engine/api/jobs/123/steps/456" id="456">
<actions>
<link href="/ovirt-engine/api/jobs/123/steps/456/end" rel="end"/>
</actions>
<description>Validating</description>
<link href="/ovirt-engine/api/jobs/123/steps/456/statistics"
rel="statistics"/>
<external>true</external>
<number>2</number>
<start_time>2016-12-13T01:06:15.380+02:00</start_time>
<status>started</status>
<type>validating</type>
<job href="/ovirt-engine/api/jobs/123" id="123"/>
</step>
...
</steps>
5.176.2.1. max
Sets the maximum number of steps to return. If not specified all the steps are returned.
5.177. STORAGE
Name Summary
get
291
Red Hat Virtualization 4.0 REST API Guide
5.177.1.1. report_status
Indicates if the status of the LUNs in the storage should be checked. Checking the status of the LUN
is an heavy weight operation and this data is not always needed by the user. This parameter will
give the option to not perform the status check of the LUNs.
<host_storage id="360014051136c20574f743bdbd28177fd">
<logical_units>
<logical_unit id="360014051136c20574f743bdbd28177fd">
<lun_mapping>0</lun_mapping>
<paths>1</paths>
<product_id>lun0</product_id>
<serial>SLIO-ORG_lun0_1136c205-74f7-43bd-bd28-177fd5ce6993</serial>
<size>10737418240</size>
<status>used</status>
<vendor_id>LIO-ORG</vendor_id>
<volume_group_id>O9Du7I-RahN-ECe1-dZ1w-nh0b-64io-
MNzIBZ</volume_group_id>
</logical_unit>
</logical_units>
<type>iscsi</type>
<host id="8bb5ade5-e988-4000-8b93-dbfc6717fe50"/>
</host_storage>
<host_storage id="360014051136c20574f743bdbd28177fd">
<logical_units>
<logical_unit id="360014051136c20574f743bdbd28177fd">
<lun_mapping>0</lun_mapping>
<paths>1</paths>
<product_id>lun0</product_id>
<serial>SLIO-ORG_lun0_1136c205-74f7-43bd-bd28-177fd5ce6993</serial>
<size>10737418240</size>
<vendor_id>LIO-ORG</vendor_id>
292
CHAPTER 5. SERVICES
<volume_group_id>O9Du7I-RahN-ECe1-dZ1w-nh0b-64io-
MNzIBZ</volume_group_id>
</logical_unit>
</logical_units>
<type>iscsi</type>
<host id="8bb5ade5-e988-4000-8b93-dbfc6717fe50"/>
</host_storage>
5.178. STORAGEDOMAIN
Name Summary
get
isattached
updateovfsto This operation forces the update of the OVF_STORE of this storage domain.
re
293
Red Hat Virtualization 4.0 REST API Guide
host Host In
After increasing the size of the underlying LUN on the storage server, the user can refresh the LUN
size. This action forces a rescan of the provided LUNs and updates the database with the new size
if required.
For example, in order to refresh the size of two LUNs send a request like this:
POST /ovirt-engine/api/storagedomains/262b056b-aede-40f1-9666-
b883eff59d40/refreshluns
<action>
<logical_units>
<logical_unit id="1IET_00010001"/>
<logical_unit id="1IET_00010002"/>
</logical_units>
</action>
294
CHAPTER 5. SERVICES
Without any special parameters, the storage domain is detached from the system and removed from
the database. The storage domain can then be imported to the same or different setup, with all the
data on it. If the storage isn’t accessible the operation will fail.
If the destroy parameter is true then the operation will always succeed, even if the storage isn’t
accessible, the failure is just ignored and the storage domain is removed from the database anyway.
If the format parameter is true then the actual storage is formatted, and the metadata is removed
from the LUN or directory, so it can no longer be imported to the same or a different setup.
295
Red Hat Virtualization 4.0 REST API Guide
5.178.4.1. destroy
Indicates if the operation should succeed, and the storage domain removed from the database, even
if the storage isn’t accessible.
DELETE /ovirt-engine/api/storagedomains/123?destroy=true
5.178.4.2. host
This parameter is mandatory, and it can contain the name or the identifier of the host. For example,
to use the host named myhost to remove the storage domain with identifier 123 send a request
like this:
DELETE /ovirt-engine/api/storagedomains/123?host=myhost
Not all of the StorageDomain's attributes are updatable post-creation. Those that can be updated
are: name, description, comment, warning_low_space_indicator,
critical_space_action_blocker and wipe_after_delete (note that changing the
wipe_after_delete attribute will not change the wipe after delete property of disks that already
exist).
To update the name and wipe_after_delete attributes of a storage domain with an identifier
123, send a request as follows:
PUT /ovirt-engine/api/storagedomains/123
<storage_domain>
<name>data2</name>
<wipe_after_delete>true</wipe_after_delete>
</storage_domain>
296
CHAPTER 5. SERVICES
This operation forces the update of the OVF_STORE of this storage domain.
The OVF_STORE is a disk image that contains the meta-data of virtual machines and disks that
reside in the storage domain. This meta-data is used in case the domain is imported or exported to
or from a different data center or a different installation.
By default the OVF_STORE is updated periodically (set by default to 60 minutes) but users might
want to force an update after an important change, or when the they believe the OVF_STORE is
corrupt.
When initiated by the user, OVF_STORE update will be performed whether an update is needed or
not.
5.179. STORAGEDOMAINCONTENTDISK
Name Summary
get
297
Red Hat Virtualization 4.0 REST API Guide
5.180. STORAGEDOMAINCONTENTDISKS
Name Summary
list
5.180.1.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.180.1.2. max
298
CHAPTER 5. SERVICES
5.180.1.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
5.181. STORAGEDOMAINSERVERCONNECTION
Name Summary
get
5.182. STORAGEDOMAINSERVERCONNECTIONS
299
Red Hat Virtualization 4.0 REST API Guide
Name Summary
add
list
5.182.2.1. max
Sets the maximum number of connections to return. If not specified all the connections are returned.
5.183. STORAGEDOMAINTEMPLATE
300
CHAPTER 5. SERVICES
Name Summary
get
import
register
remove
clone Boolean In
cluster Cluster In
exclusiv Boolean In
e
301
Red Hat Virtualization 4.0 REST API Guide
storage_ StorageDom In
domain ain
template Template In
vm Vm In
clone Boolean In
cluster Cluster In
exclusiv Boolean In
e
template Template In
302
CHAPTER 5. SERVICES
5.184. STORAGEDOMAINTEMPLATES
Name Summary
list
5.184.1.1. max
Sets the maximum number of templates to return. If not specified all the templates are returned.
5.185. STORAGEDOMAINVM
Name Summary
get
303
Red Hat Virtualization 4.0 REST API Guide
Name Summary
register
vm Vm Out
POST /ovirt-engine/api/storagedomains/123/vms/456/import
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
</action>
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
<clone>true</clone>
304
CHAPTER 5. SERVICES
<vm>
<name>myvm</name>
</vm>
</action>
Include an optional disks parameter to choose which disks to import. For example, to import the
disks of the template that have the identifiers 123 and 456 send the following request body:
<action>
<cluster>
<name>mycluster</name>
</cluster>
<vm>
<name>myvm</name>
</vm>
<disks>
<disk id="123"/>
<disk id="456"/>
</disks>
</action>
cluster Cluster In
storage_ StorageDom In
domain ain
vm Vm In
5.185.2.1. clone
305
Red Hat Virtualization 4.0 REST API Guide
By default when a virtual machine is imported the identifiers are preserved. This means that the
same virtual machine can’t be imported multiple times, as that identifiers needs to be unique. To
allow importing the same machine multiple times set this parameter to true, as the default is
false.
5.185.2.2. collapse_snapshots
Indicates of the snapshots of the virtual machine that is imported should be collapsed, so that the
result will be a virtual machine without snapshots.
This parameter is optional, and if it isn’t explicitly specified the default value is false.
clone Boolean In
cluster Cluster In
vm Vm In
For example, to delete the virtual machine 456 from the storage domain 123, send a request like
this:
DELETE /ovirt-engine/api/storagedomains/123/vms/456
306
CHAPTER 5. SERVICES
5.186. STORAGEDOMAINVMDISKATTACHMENT
Returns the details of the disks attached to a virtual machine in the export domain.
Name Summary
get Returns the details of the attachment with all its properties and a link to the disk.
Returns the details of the attachment with all its properties and a link to the disk.
5.187. STORAGEDOMAINVMDISKATTACHMENTS
Returns the details of a disk attached to a virtual machine in the export domain.
Name Summary
list List the disks that are attached to the virtual machine.
307
Red Hat Virtualization 4.0 REST API Guide
5.188. STORAGEDOMAINVMS
For example, to retrieve the virtual machines that are available in the storage domain with identifier
123 send the following request:
GET /ovirt-engine/api/storagedomains/123/vms
<vms>
<vm id="456" href="/api/storagedomains/123/vms/456">
<name>vm1</name>
...
<storage_domain id="123" href="/api/storagedomains/123"/>
<actions>
<link rel="import" href="/api/storagedomains/123/vms/456/import"/>
</actions>
</vm>
</vms>
Virtual machines and templates in these collections have a similar representation to their
counterparts in the top-level Vm and Template collections, except they also contain a
StorageDomain reference and an import action.
Name Summary
list
308
CHAPTER 5. SERVICES
vm Vm[] Out
5.188.1.1. max
Sets the maximum number of virtual machines to return. If not specified all the virtual machines are
returned.
5.189. STORAGEDOMAINS
Name Summary
list
Creation of a new StorageDomain requires the name, type, host and storage attributes. Identify
the host attribute with the id or name attributes. In oVirt 3.6 and later you can enable the wipe after
delete option by default on the storage domain. To configure this, specify wipe_after_delete in
the POST request. This option can be edited after the domain is created, but doing so will not
change the wipe after delete property of disks that already exist.
To add a new storage domain with specified name, type, storage.type, storage.address and
storage.path and by using a host with an id 123, send a request as follows:
POST /ovirt-engine/api/storagedomains
<storage_domain>
<name>mydata</name>
<type>data</type>
<storage>
<type>nfs</type>
309
Red Hat Virtualization 4.0 REST API Guide
<address>mynfs.example.com</address>
<path>/exports/mydata</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
To create a new NFS ISO storage domain send a request like this:
<storage_domain>
<name>myisos</name>
<type>iso</type>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/export/myisos</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
<storage_domain>
<name>myiscsi</name>
<type>data</type>
<storage>
<type>iscsi</type>
<logical_units>
<logical_unit id="3600144f09dbd050000004eedbd340001"/>
<logical_unit id="3600144f09dbd050000004eedbd340002"/>
</logical_units>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
310
CHAPTER 5. SERVICES
5.189.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.189.2.2. max
Sets the maximum number of storage domains to return. If not specified all the storage domains are
returned.
5.190. STORAGESERVERCONNECTION
Name Summary
get
311
Red Hat Virtualization 4.0 REST API Guide
Name Summary
A storage connection can only be deleted if neither storage domain nor LUN disks reference it. The
host name or id is optional; providing it disconnects (unmounts) the connection from that host.
host String In The name or identifier of the host from which the
connection would be unmounted (disconnected).
5.190.2.1. host
The name or identifier of the host from which the connection would be unmounted (disconnected). If
not provided, no host will be disconnected.
For example, to use the host with identifier 456 to delete the storage connection with identifier 123
send a request like this:
DELETE /ovirt-engine/api/storageconnections/123?host=456
312
CHAPTER 5. SERVICES
For example, to change the address of the storage server send a request like this:
PUT /ovirt-engine/api/storageconnections/123
<storage_connection>
<address>mynewnfs.example.com</address>
<host>
<name>myhost</name>
</host>
</storage_connection>
5.190.3.1. force
Indicates if the operation should succeed regardless to the relevant storage domain’s status (i.e.
updating is also applicable when storage domain’s status is not maintenance).
5.191. STORAGESERVERCONNECTIONEXTENSION
Name Summary
get
313
Red Hat Virtualization 4.0 REST API Guide
Name Summary
remove
update Update a storage server connection extension for the given host.
To update the storage connection 456 of host 123 send a request like this:
PUT /ovirt-engine/api/hosts/123/storageconnectionextensions/456
<storage_connection_extension>
<target>iqn.2016-01.com.example:mytarget</target>
<username>myuser</username>
<password>mypassword</password>
</storage_connection_extension>
314
CHAPTER 5. SERVICES
5.192. STORAGESERVERCONNECTIONEXTENSIONS
Name Summary
add Creates a new storage server connection extension for the given host.
list
Creates a new storage server connection extension for the given host.
The extension lets the user define credentials for an iSCSI target for a specific host. For example to
use myuser and mypassword as the credentials when connecting to the iSCSI target from host
123 send a request like this:
POST /ovirt-engine/api/hosts/123/storageconnectionextensions
<storage_connection_extension>
<target>iqn.2016-01.com.example:mytarget</target>
<username>myuser</username>
<password>mypassword</password>
</storage_connection_extension>
315
Red Hat Virtualization 4.0 REST API Guide
5.192.2.1. max
Sets the maximum number of extensions to return. If not specified all the extensions are returned.
5.193. STORAGESERVERCONNECTIONS
Name Summary
list
For example, to create a new storage connection for the NFS server mynfs.example.com and
NFS share /export/mydata send a request like this:
POST /ovirt-engine/api/storageconnections
316
CHAPTER 5. SERVICES
<storage_connection>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/export/mydata</path>
<host>
<name>myhost</name>
</host>
</storage_connection>
5.193.2.1. max
Sets the maximum number of connections to return. If not specified all the connections are returned.
5.194. SYSTEM
317
Red Hat Virtualization 4.0 REST API Guide
Name Summary
get Returns basic information describing the API, like the product name, the version
number and a summary of the number of relevant objects.
reloadconfig
urations
Returns basic information describing the API, like the product name, the version number and a
summary of the number of relevant objects.
GET /ovirt-engine/api
<api>
<link rel="capabilities" href="/api/capabilities"/>
<link rel="clusters" href="/api/clusters"/>
<link rel="clusters/search" href="/api/clusters?search={query}"/>
<link rel="datacenters" href="/api/datacenters"/>
<link rel="datacenters/search" href="/api/datacenters?search={query}"/>
<link rel="events" href="/api/events"/>
<link rel="events/search" href="/api/events?search={query}"/>
<link rel="hosts" href="/api/hosts"/>
<link rel="hosts/search" href="/api/hosts?search={query}"/>
<link rel="networks" href="/api/networks"/>
<link rel="roles" href="/api/roles"/>
<link rel="storagedomains" href="/api/storagedomains"/>
<link rel="storagedomains/search" href="/api/storagedomains?search=
{query}"/>
<link rel="tags" href="/api/tags"/>
<link rel="templates" href="/api/templates"/>
<link rel="templates/search" href="/api/templates?search={query}"/>
<link rel="users" href="/api/users"/>
<link rel="groups" href="/api/groups"/>
<link rel="domains" href="/api/domains"/>
<link rel="vmpools" href="/api/vmpools"/>
<link rel="vmpools/search" href="/api/vmpools?search={query}"/>
<link rel="vms" href="/api/vms"/>
<link rel="vms/search" href="/api/vms?search={query}"/>
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>4</build>
<full_version>4.0.4</full_version>
<major>4</major>
<minor>0</minor>
<revision>0</revision>
318
CHAPTER 5. SERVICES
</version>
</product_info>
<special_objects>
<blank_template href="/ovirt-engine/api/templates/00000000-0000-0000-
0000-000000000000" id="00000000-0000-0000-0000-000000000000"/>
<root_tag href="/ovirt-engine/api/tags/00000000-0000-0000-0000-
000000000000" id="00000000-0000-0000-0000-000000000000"/>
</special_objects>
<summary>
<hosts>
<active>0</active>
<total>0</total>
</hosts>
<storage_domains>
<active>0</active>
<total>1</total>
</storage_domains>
<users>
<active>1</active>
<total>1</total>
</users>
<vms>
<active>0</active>
<total>0</total>
</vms>
</summary>
<time>2016-09-14T12:00:48.132+02:00</time>
</api>
The entry point provides a user with links to the collections in a virtualization environment. The rel
attribute of each collection link provides a reference point for each link.
The entry point also contains other data such as product_info, special_objects and
summary.
319
Red Hat Virtualization 4.0 REST API Guide
5.195. SYSTEMPERMISSIONS
This service doesn’t add any new methods, it is just a placeholder for the annotation that specifies
the path of the resource that manages the permissions assigned to the system object.
Name Summary
For example, to assign the UserVmManager role to the virtual machine with id 123 to the user with
id 456 send a request like this:
POST /ovirt-engine/api/vms/123/permissions
<permission>
<role>
<name>UserVmManager</name>
</role>
<user id="456"/>
</permission>
To assign the SuperUser role to the system to the user with id 456 send a request like this:
POST /ovirt-engine/api/permissions
<permission>
<role>
<name>SuperUser</name>
320
CHAPTER 5. SERVICES
</role>
<user id="456"/>
</permission>
If you want to assign permission to the group instead of the user please replace the user element
with the group element with proper id of the group. For example to assign the UserRole role to
the cluster with id 123 to the group with id 789 send a request like this:
POST /ovirt-engine/api/clusters/123/permissions
<permission>
<role>
<name>UserRole</name>
</role>
<group id="789"/>
</permission>
For example to list all the permissions of the cluster with id 123 send a request like this:
GET /ovirt-engine/api/clusters/123/permissions
<permissions>
<permission id="456">
<cluster id="123"/>
<role id="789"/>
<user id="451"/>
</permission>
<permission id="654">
<cluster id="123"/>
<role id="789"/>
<group id="127"/>
</permission>
</permissions>
321
Red Hat Virtualization 4.0 REST API Guide
5.196. TAG
A service to manage a specific tag in the system.
Name Summary
For example to retrieve the information about the tag with the id 123 send a request like this:
GET /ovirt-engine/api/tags/123
322
CHAPTER 5. SERVICES
For example to remove the tag with id 123 send a request like this:
DELETE /ovirt-engine/api/tags/123
For example to update parent tag to tag with id 456 of the tag with id 123 send a request like this:
PUT /ovirt-engine/api/tags/123
<tag>
<parent id="456"/>
</tag>
You may also specify a tag name instead of id. For example to update parent tag to tag with name
mytag of the tag with id 123 send a request like this:
<tag>
<parent>
<name>mytag</name>
</parent>
</tag>
323
Red Hat Virtualization 4.0 REST API Guide
5.197. TAGS
Represents a service to manage collection of the tags in the system.
Name Summary
For example, to add new tag with name mytag to the system send a request like this:
POST /ovirt-engine/api/tags
<tag>
<name>mytag</name>
</tag>
Note
The root tag is a special pseudo-tag assumed as the default parent tag if no parent tag is
specified. The root tag cannot be deleted nor assigned a parent tag.
To create new tag with specific parent tag send a request body like this:
<tag>
<name>mytag</name>
<parent>
<name>myparenttag</name>
</parent>
</tag>
324
CHAPTER 5. SERVICES
For example to list the full hierarchy of the tags in the system send a request like this:
GET /ovirt-engine/api/tags
<tags>
<tag href="/ovirt-engine/api/tags/222" id="222">
<name>root2</name>
<description>root2</description>
<parent href="/ovirt-engine/api/tags/111" id="111"/>
</tag>
<tag href="/ovirt-engine/api/tags/333" id="333">
<name>root3</name>
<description>root3</description>
<parent href="/ovirt-engine/api/tags/222" id="222"/>
</tag>
<tag href="/ovirt-engine/api/tags/111" id="111">
<name>root</name>
<description>root</description>
</tag>
</tags>
In the previous XML output you can see the following hierarchy of the tags:
5.197.2.1. max
Sets the maximum number of tags to return. If not specified all the tags are returned.
325
Red Hat Virtualization 4.0 REST API Guide
5.198. TEMPLATE
Name Summary
For example, the operation can be facilitated using the following request:
POST /ovirt-engine/api/templates/123/export
<action>
<storage_domain id="456"/>
<exclusive>true<exclusive/>
</action>
326
CHAPTER 5. SERVICES
5.198.1.1. exclusive
Indicates if the existing templates with the same name should be overwritten.
The export action reports a failed action if a template of the same name exists in the destination
domain. Set this parameter to true to change this behavior and overwrite any existing template.
DELETE /ovirt-engine/api/templates/123
The name, description, type, memory, cpu, topology, os, high_availability, display,
stateless, usb and timezone elements can be updated after a template has been created.
For example, to update a template to so that it has 1 GiB of memory send a request like this:
PUT /ovirt-engine/api/templates/123
327
Red Hat Virtualization 4.0 REST API Guide
<template>
<memory>1073741824</memory>
</template>
The version_name name attribute is the only one that can be updated within the version
attribute used for template versions:
<template>
<version>
<version_name>mytemplate_2</version_name>
</version>
</template>
5.199. TEMPLATECDROM
A service managing a CD-ROM device on templates.
Name Summary
For example, to get information about the CD-ROM device of template 123 send a request like:
GET /ovirt-engine/api/templates/123/cdroms/
328
CHAPTER 5. SERVICES
5.199.1.1. cdrom
The information consists of cdrom attribute containing reference to the CD-ROM device, the
template, and optionally the inserted disk.
If there is a disk inserted then the file attribute will contain a reference to the ISO image:
5.200. TEMPLATECDROMS
Lists the CD-ROM devices of a template.
Name Summary
list
329
Red Hat Virtualization 4.0 REST API Guide
5.200.1.1. max
Sets the maximum number of CD-ROMs to return. If not specified all the CD-ROMs are returned.
5.201. TEMPLATEDISK
Name Summary
copy
export
get
remove
330
CHAPTER 5. SERVICES
5.202. TEMPLATEDISKATTACHMENT
Name Summary
331
Red Hat Virtualization 4.0 REST API Guide
Name Summary
Removes the disk from the template. The disk will only be removed if there are other existing copies
of the disk on other storage domains.
A storage domain has to be specified to determine which of the copies should be removed (template
disks can have copies on multiple storage domains).
DELETE /ovirt-
engine/api/templates/{template:id}/diskattachments/{attachment:id}?
storage_domain=072fbaa1-08f3-4a40-9f34-a5ca22dd1d74
force Boolean In
5.203. TEMPLATEDISKATTACHMENTS
This service manages the set of disks attached to a template. Each attached disk is represented by
a DiskAttachment.
332
CHAPTER 5. SERVICES
Name Summary
5.204. TEMPLATEDISKS
Name Summary
list
5.204.1.1. max
333
Red Hat Virtualization 4.0 REST API Guide
Sets the maximum number of disks to return. If not specified all the disks are returned.
5.205. TEMPLATENIC
Name Summary
get
remove
update
334
CHAPTER 5. SERVICES
5.206. TEMPLATENICS
Name Summary
add
list
335
Red Hat Virtualization 4.0 REST API Guide
5.206.2.1. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
5.207. TEMPLATEWATCHDOG
Name Summary
get
remove
update
336
CHAPTER 5. SERVICES
5.208. TEMPLATEWATCHDOGS
Name Summary
add
list
337
Red Hat Virtualization 4.0 REST API Guide
5.208.2.1. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
5.209. TEMPLATES
This service manages the virtual machine templates available in the system.
Name Summary
This requires the name and vm elements. Identify the virtual machine with the id name attributes.
POST /ovirt-engine/api/templates
<template>
<name>mytemplate</name>
<vm id="123"/>
</template>
The template can be created as a sub version of an existing template.This requires the name and vm
attributes for the new template, and the base_template and version_name attributes for the new
template version. The base_template and version_name attributes must be specified within a
version section enclosed in the template section. Identify the virtual machine with the id or
name attributes.
<template>
<name>mytemplate</name>
<vm id="123"/>
<version>
<base_template id="456"/>
<version_name>mytemplate_001</version_name>
</version>
</template>
338
CHAPTER 5. SERVICES
5.209.1.1. clone_permissions
Specifies if the permissions of the virtual machine should be copied to the template.
If this optional parameter is provided, and its values is true then the permissions of the virtual
machine (only the direct ones, not the inherited ones) will be copied to the created template. For
example, to create a template from the myvm virtual machine copying its permissions, send a
request like this:
POST /ovirt-engine/api/templates?clone_permissions=true
<template>
<name>mytemplate<name>
<vm>
<name>myvm<name>
</vm>
</template>
For example:
GET /ovirt-engine/api/templates
Will return the list of virtual machines and virtual machine templates.
339
Red Hat Virtualization 4.0 REST API Guide
5.209.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.209.2.2. max
Sets the maximum number of templates to return. If not specified all the templates are returned.
5.210. UNMANAGEDNETWORK
Name Summary
get
remove
340
CHAPTER 5. SERVICES
5.211. UNMANAGEDNETWORKS
Name Summary
list
5.211.1.1. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
341
Red Hat Virtualization 4.0 REST API Guide
5.212. USER
A service to manage a user in the system. Use this service to either get users details or remove
users. In order to add new users please use Section 5.213, “Users”.
Name Summary
Usage:
GET /ovirt-engine/api/users/1234
342
CHAPTER 5. SERVICES
Usage:
DELETE /ovirt-engine/api/users/1234
5.213. USERS
A service to manage the users in the system.
Name Summary
For example, to add the myuser user from the myextension-authz authorization provider send a
request like this:
POST /ovirt-engine/api/users
343
Red Hat Virtualization 4.0 REST API Guide
<user>
<user_name>myuser@myextension-authz</user_name>
<domain>
<name>myextension-authz</name>
</domain>
</user>
In case you are working with Active Directory you have to pass user principal name (UPN) as
username, followed by authorization provider name. Due to bug 1147900 you need to provide also
principal parameter set to UPN of the user.
For example, to add the user with UPN myuser@mysubdomain.mydomain.com from the
myextension-authz authorization provider send a request body like this:
<user>
<principal>myuser@mysubdomain.mydomain.com</principal>
<user_name>myuser@mysubdomain.mydomain.com@myextension-
authz</user_name>
<domain>
<name>myextension-authz</name>
</domain>
</user>
Usage:
GET /ovirt-engine/api/users
<users>
<user href="/ovirt-engine/api/users/1234" id="1234">
<name>admin</name>
<link href="/ovirt-engine/api/users/1234/sshpublickeys"
rel="sshpublickeys"/>
<link href="/ovirt-engine/api/users/1234/roles" rel="roles"/>
<link href="/ovirt-engine/api/users/1234/permissions"
rel="permissions"/>
<link href="/ovirt-engine/api/users/1234/tags" rel="tags"/>
<domain_entry_id>23456</domain_entry_id>
<namespace>*</namespace>
344
CHAPTER 5. SERVICES
<principal>user1</principal>
<user_name>user1@domain-authz</user_name>
<domain href="/ovirt-engine/api/domains/45678" id="45678">
<name>domain-authz</name>
</domain>
</user>
</users>
5.213.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.213.2.2. max
Sets the maximum number of users to return. If not specified all the users are returned.
5.214. VIRTUALFUNCTIONALLOWEDNETWORK
Name Summary
get
345
Red Hat Virtualization 4.0 REST API Guide
Name Summary
remove
5.215. VIRTUALFUNCTIONALLOWEDNETWORKS
Name Summary
add
list
346
CHAPTER 5. SERVICES
5.215.2.1. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
5.216. VM
Name Summary
cancelmigrat This operation stops any migration of a virtual machine to another physical host.
ion
clone
commitsnapsh
ot
347
Red Hat Virtualization 4.0 REST API Guide
Name Summary
logon Initiates the automatic user logon to access a virtual machine from an external
console.
maintenance
previewsnaps
hot
remove Removes the virtual machine, including the virtual disks attached to it.
reordermacad
dresses
suspend This operation saves the virtual machine state to disk and stops it.
348
CHAPTER 5. SERVICES
Name Summary
undosnapshot
update
This operation stops any migration of a virtual machine to another physical host.
POST /ovirt-engine/api/vms/123/cancelmigration
The cancel migration action does not take any action specific parameters, so the request body
should contain an empty action:
<action/>
vm Vm In
349
Red Hat Virtualization 4.0 REST API Guide
POST /ovirt-engine/api/vms/123/detach
The detach action does not take any action specific parameters, so the request body should contain
an empty action:
<action/>
For example to export virtual machine 123 to the export domain myexport, send a request like
this:
POST /ovirt-engine/api/vms/123/export
<action>
<storage_domain>
<name>myexport</name>
</storage_domain>
<exclusive>true</exclusive>
<discard_snapshots>true</discard_snapshots>
</action>
350
CHAPTER 5. SERVICES
storage_ StorageDom In
domain ain
This operation freezes a virtual machine’s file systems using the QEMU guest agent when taking a
live snapshot of a running virtual machine. Normally, this is done automatically by the manager, but
this must be executed manually with the API for virtual machines using OpenStack Volume (Cinder)
disks.
Example:
POST /ovirt-engine/api/vms/123/freezefilesystems
<action/>
351
Red Hat Virtualization 4.0 REST API Guide
5.216.7.1. all_content
Indicates if all the attributes of the virtual machine should be included in the response.
console
rng_source
soundcard
virtio_scsi
For example, to retrieve the complete representation of the virtual machine '123' send a request like
this:
GET /ovirt-engine/api/vms/123?all_content=true
Note
The reason for not including these attributes is performance: they are seldom used and
they require additional queries to the database. So try to use the this parameter only when
it is really needed.
352
CHAPTER 5. SERVICES
5.216.7.2. next_run
Indicates if the returned result describes the virtual machine as it is currently running, or if describes
it with the modifications that have already been performed but that will have effect only when it is
restarted. By default the values is false.
If the parameter is included in the request, but without a value, it is assumed that the value is true,
so the following request:
GET /vms/{vm:id};next_run
GET /vms/{vm:id};next_run=true
Initiates the automatic user logon to access a virtual machine from an external console.
Users require the appropriate user permissions for the virtual machine in order to access the virtual
machine from an external console.
POST /ovirt-engine/api/vms/123/logon
Request body:
<action/>
353
Red Hat Virtualization 4.0 REST API Guide
maintena Boolean In
nce_enab
led
POST /ovirt-engine/api/vms/123/migrate
One can specify a specific host to migrate the virtual machine to:
<action>
<host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
</action>
5.216.10.1. cluster
Specifies the cluster the virtual machine should migrate to. This is an optional parameter. By default,
the virtual machine is migrated to another host within the same cluster.
354
CHAPTER 5. SERVICES
5.216.10.2. force
Specifies the virtual machine should migrate although it might be defined as non migratable. This is
an optional parameter. By default, it is set to false.
5.216.10.3. host
Specifies a specific host the virtual machine should migrate to. This is an optional parameters. By
default, the oVirt Engine automatically selects a default host for migration within the same cluster. If
an API user requires a specific host, the user can specify the host with either an id or name
parameter.
disks Disk[] In
restore_ Boolean In
memory
snapshot Snapshot In
vm Vm In
POST /ovirt-engine/api/vms/123/reboot
The reboot action does not take any action specific parameters, so the request body should contain
an empty action:
<action/>
355
Red Hat Virtualization 4.0 REST API Guide
Removes the virtual machine, including the virtual disks attached to it.
For example, to remove the virtual machine with identifier 123 send a request like this:
DELETE /ovirt-engine/api/vms/123
5.216.13.1. force
Locked virtual machines and virtual machines with locked disk images cannot be removed without
this flag set to true.
356
CHAPTER 5. SERVICES
POST /ovirt-engine/api/vms/123/shutdown
The shutdown action does not take any action specific parameters, so the request body should
contain an empty action:
<action/>
If the virtual environment is complete and the virtual machine contains all necessary components to
function, it can be started.
POST /ovirt-engine/api/vms/123/start
<action/>
357
Red Hat Virtualization 4.0 REST API Guide
5.216.16.1. pause
If set to true, start the virtual machine in paused mode. Default is false.
5.216.16.2. use_cloud_init
If set to true, the initialization type is set to cloud-init. The default value is false. See this for
details.
5.216.16.3. use_sysprep
If set to true, the initialization type is set to Sysprep. The default value is false. See this for
details.
5.216.16.4. vm
For example:
<action>
<vm>
<os>
<boot>
358
CHAPTER 5. SERVICES
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
</action>
This will set the boot device to the CDROM only for this specific start. After the virtual machine will
be powered off, this definition will be reverted.
POST /ovirt-engine/api/vms/123/stop
The stop action does not take any action specific parameters, so the request body should contain an
empty action:
<action/>
This operation saves the virtual machine state to disk and stops it. Start a suspended virtual
machine and restore the virtual machine state with the start action.
POST /ovirt-engine/api/vms/123/suspend
The suspend action does not take any action specific parameters, so the request body should
contain an empty action:
<action/>
359
Red Hat Virtualization 4.0 REST API Guide
This operation thaws a virtual machine’s file systems using the QEMU guest agent when taking a
live snapshot of a running virtual machine. Normally, this is done automatically by the manager, but
this must be executed manually with the API for virtual machines using OpenStack Volume (Cinder)
disks.
Example:
POST /api/vms/123/thawfilesystems
<action/>
POST /ovirt-engine/api/vms/123/ticket
The client-provided action optionally includes a desired ticket value and/or an expiry time in seconds.
In any case, the response specifies the actual ticket value and expiry used.
<action>
<ticket>
<value>abcd12345</value>
<expiry>120</expiry>
</ticket>
</action>
360
CHAPTER 5. SERVICES
vm Vm In/Out
5.216.22.1. next_run
Indicates if the update should be applied to the virtual machine immediately, or if it should be applied
only when the virtual machine is restarted. The default value is false, so by default changes are
applied immediately.
5.217. VMAPPLICATION
361
Red Hat Virtualization 4.0 REST API Guide
Name Summary
5.217.1.1. application
The information consists of name attribute containing the name of the application (which is an
arbitrary string that may also contain additional information such as version) and vm attribute
identifying the virtual machine.
GET /ovirt-engine/api/vms/123/applications/789
5.218. VMAPPLICATIONS
A service that provides information about applications installed in a virtual machine.
362
CHAPTER 5. SERVICES
Name Summary
5.218.1.1. applications
GET /ovirt-engine/api/vms/123/applications/
<applications>
<application href="/ovirt-engine/api/vms/123/applications/456"
id="456">
<name>kernel-3.10.0-327.36.1.el7</name>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</application>
<application href="/ovirt-engine/api/vms/123/applications/789"
id="789">
<name>ovirt-guest-agent-common-1.0.12-3.el7</name>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</application>
</applications>
363
Red Hat Virtualization 4.0 REST API Guide
5.218.1.2. max
Sets the maximum number of applications to return. If not specified all the applications are returned.
5.219. VMCDROM
Manages a CDROM device of a virtual machine.
Changing and ejecting the disk is done using always the update method, to change the value of the
file attribute.
Name Summary
The information consists of cdrom attribute containing reference to the CDROM device, the virtual
machine, and optionally the inserted disk.
If there is a disk inserted then the file attribute will contain a reference to the ISO image:
364
CHAPTER 5. SERVICES
5.219.1.1. current
Indicates if the operation should return the information for the currently running virtual machine. This
parameter is optional, and the default value is false.
It allows to change or eject the disk by changing the value of the file attribute. For example, to
insert or change the disk send a request like this:
PUT /ovirt-engine/api/vms/123/cdroms/00000000-0000-0000-0000-
000000000000
The body should contain the new value for the file attribute:
<cdrom>
<file id="mycd.iso"/>
</cdrom>
The value of the id attribute, mycd.iso in this example, should correspond to a file available in an
attached ISO storage domain.
<cdrom>
<file id=""/>
</cdrom>
By default the above operations change permanently the disk that will be visible to the virtual
machine after the next boot, but they don’t have any effect on the currently running virtual machine.
If you want to change the disk that is visible to the current running virtual machine, add the
current=true parameter. For example, to eject the current disk send a request like this:
PUT /ovirt-engine/api/vms/123/cdroms/00000000-0000-0000-0000-
000000000000?current=true
365
Red Hat Virtualization 4.0 REST API Guide
<cdrom>
<file id=""/>
</cdrom>
Important
The changes made with the current=true parameter are never persisted, so they
won’t have any effect after the virtual machine is rebooted.
5.219.2.1. current
Indicates if the update should apply to the currently running virtual machine, or to the virtual machine
after the next boot. This parameter is optional, and the default value is false, which means that by
default the update will have effect only after the next boot.
5.220. VMCDROMS
Manages the CDROM devices of a virtual machine.
Currently virtual machines have exactly one CDROM device. No new devices can be added, and the
existing one can’t be removed, thus there are no add or remove methods. Changing and ejecting
CDROM disks is done with the update method of the service that manages the CDROM device.
Name Summary
366
CHAPTER 5. SERVICES
cdroms Cdrom[] Out The list of CDROM devices of the virtual machine.
5.220.1.1. max
Sets the maximum number of CDROMs to return. If not specified all the CDROMs are returned.
5.221. VMDISK
Name Summary
activate
deactivate
export
get
move
update
367
Red Hat Virtualization 4.0 REST API Guide
368
CHAPTER 5. SERVICES
Note
In version 3 of the API this used to also remove the disk completely from the system, but
starting with version 4 it doesn’t. If you need to remove it completely use the remove
method of the top level disk service.
5.222. VMDISKS
369
Red Hat Virtualization 4.0 REST API Guide
Name Summary
add
list
5.222.2.1. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
5.223. VMGRAPHICSCONSOLE
370
CHAPTER 5. SERVICES
Name Summary
proxyticket
remove
current Boolean In Use the following query to obtain the current run-
time configuration of the graphics console.
5.223.1.1. current
Use the following query to obtain the current run-time configuration of the graphics console.
GET /ovit-engine/api/vms/{vm:id}/graphicsconsoles/{console:id}?
current=true
371
Red Hat Virtualization 4.0 REST API Guide
5.224. VMHOSTDEVICE
A service to manage individual host device attached to a virtual machine.
Name Summary
get Retrieve information about particular host device attached to given virtual machine.
remove Remove the attachment of this host device from given virtual machine.
Retrieve information about particular host device attached to given virtual machine.
Example:
GET /ovirt-engine/api/vms/123/hostdevices/456
372
CHAPTER 5. SERVICES
</product>
<vendor id="0x10de">
<name>NVIDIA Corporation</name>
</vendor>
<host href="/ovirt-engine/api/hosts/543" id="543"/>
<parent_device href="/ovirt-engine/api/hosts/543/devices/456" id="456">
<name>pci_0000_00_03_0</name>
</parent_device>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</host_device>
Remove the attachment of this host device from given virtual machine.
Note
In case this device serves as an IOMMU placeholder, it cannot be removed (remove will
result only in setting its placeholder flag to true). Note that all IOMMU placeholder
devices will be removed automatically as soon as there will be no more non-placeholder
devices (all devices from given IOMMU group are detached).
DELETE /ovirt-engine/api/vms/123/hostdevices/456
5.225. VMHOSTDEVICES
A service to manage host devices attached to a virtual machine.
373
Red Hat Virtualization 4.0 REST API Guide
Name Summary
Example:
POST /ovirt-engine/api/vms/123/hostdevices
Note
A necessary precondition for a successful host device attachment is that the virtual
machine must be pinned to exactly one host. The device ID is then taken relative to this
host.
Note
Attachment of a PCI device that is part of a bigger IOMMU group will result in attachment
of the remaining devices from that IOMMU group as "placeholders". These devices are
then identified using the placeholder attribute of the HostDevice type set to true.
In case you want attach a device that already serves as an IOMMU placeholder, simply issue an
explicit Add operation for it, and its placeholder flag will be cleared, and the device will be
accessible to the virtual machine.
374
CHAPTER 5. SERVICES
5.225.2.1. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
5.226. VMNIC
Name Summary
activate
deactivate
get
375
Red Hat Virtualization 4.0 REST API Guide
For example, to remove the NIC with id 456 from the virtual machine with id 123 send a request
like this:
DELETE /ovirt-engine/api/vms/123/nics/456
376
CHAPTER 5. SERVICES
Important
The hotplugging feature only supports virtual machine operating systems with hotplugging
operations. Example operating systems include:
For example, to update the NIC having with 456 belonging to virtual the machine with id 123 send a
request like this:
PUT /ovirt-engine/api/vms/123/nics/456
<nic>
<name>mynic</name>
<interface>e1000</interface>
</nic>
Important
The hotplugging feature only supports virtual machine operating systems with hotplugging
operations. Example operating systems include:
377
Red Hat Virtualization 4.0 REST API Guide
5.227. VMNICS
Name Summary
list
The following example adds a network interface named mynic using virtio and the ovirtmgmt
network to the virtual machine.
POST /ovirt-engine/api/vms/123/nics
<nic>
<interface>virtio</interface>
<name>mynic</name>
<network>
<name>ovirtmgmt</name>
</network>
</nic>
curl \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--user "admin@internal:mypassword" \
378
CHAPTER 5. SERVICES
--cacert /etc/pki/ovirt-engine/ca.pem \
--data '
<nic>
<name>mynic</name>
<network>
<name>ovirtmgmt</name>
</network>
</nic>
' \
https://myengine.example.com/ovirt-engine/api/vms/123/nics
Important
The hotplugging feature only supports virtual machine operating systems with hotplugging
operations. Example operating systems include:
5.227.2.1. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
379
Red Hat Virtualization 4.0 REST API Guide
5.228. VMNUMANODE
Name Summary
get
DELETE /ovirt-engine/api/vms/123/numanodes/456
380
CHAPTER 5. SERVICES
An example of pinning a virtual NUMA node to a physical NUMA node on the host:
PUT /ovirt-engine/api/vms/123/numanodes/456
<vm_numa_node>
<numa_node_pins>
<numa_node_pin>
<index>0</index>
</numa_node_pin>
</numa_node_pins>
</vm_numa_node>
5.229. VMNUMANODES
Name Summary
add Creates a new virtual NUMA node for the virtual machine.
POST /ovirt-engine/api/vms/c7ecd2dc/numanodes
Accept: application/xml
Content-type: application/xml
381
Red Hat Virtualization 4.0 REST API Guide
<vm_numa_node>
<cpu>
<cores>
<core>
<index>0</index>
</core>
</cores>
</cpu>
<index>0</index>
<memory>1024</memory>
</vm_numa_node>
5.229.2.1. max
Sets the maximum number of nodes to return. If not specified all the nodes are returned.
5.230. VMPOOL
A service to manage a virtual machines pool.
382
CHAPTER 5. SERVICES
Name Summary
allocatevm This operation allocates a virtual machine in the virtual machine pool.
POST /ovirt-engine/api/vmpools/123/allocatevm
The allocate virtual machine action does not take any action specific parameters, so the request
body should contain an empty action:
<action/>
GET /ovirt-engine/api/vmpools/123
<vm_pool id="123">
<actions>...</actions>
<name>MyVmPool</name>
<description>MyVmPool description</description>
<link href="/ovirt-engine/api/vmpools/123/permissions"
rel="permissions"/>
<max_user_vms>1</max_user_vms>
383
Red Hat Virtualization 4.0 REST API Guide
<prestarted_vms>0</prestarted_vms>
<size>100</size>
<stateful>false</stateful>
<type>automatic</type>
<use_latest_template_version>false</use_latest_template_version>
<cluster id="123"/>
<template id="123"/>
<vm id="123">...</vm>
...
</vm_pool>
DELETE /ovirt-engine/api/vmpools/123
PUT /ovirt-engine/api/vmpools/123
The name, description, size, prestarted_vms and max_user_vms attributes can be updated
after the virtual machine pool has been created.
<vmpool>
<name>VM_Pool_B</name>
384
CHAPTER 5. SERVICES
pool VmPool In/Out The virtual machine pool that is being updated.
5.231. VMPOOLS
Provides read-write access to virtual machines pools.
Name Summary
A new pool requires the name, cluster and template attributes. Identify the cluster and template
with the id or name nested attributes:
POST /ovirt-engine/api/vmpools
<vmpool>
<name>mypool</name>
<cluster id="123"/>
<template id="456"/>
</vmpool>
385
Red Hat Virtualization 4.0 REST API Guide
GET /ovirt-engine/api/vmpools
<vm_pools>
<vm_pool id="123">
...
</vm_pool>
...
</vm_pools>
5.231.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
386
CHAPTER 5. SERVICES
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.231.2.2. max
Sets the maximum number of pools to return. If this value is not specified, all of the pools are
returned.
5.232. VMREPORTEDDEVICE
Name Summary
get
5.233. VMREPORTEDDEVICES
Name Summary
list
387
Red Hat Virtualization 4.0 REST API Guide
5.233.1.1. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
5.234. VMSESSION
Name Summary
get
5.235. VMSESSIONS
Provides information about virtual machine user sessions.
Name Summary
388
CHAPTER 5. SERVICES
For example, to retrieve the session information for virtual machine 123 send a request like this:
GET /ovirt-engine/api/vms/123/sessions
<sessions>
<session href="/ovirt-engine/api/vms/123/sessions/456" id="456">
<console_user>true</console_user>
<ip>
<address>192.168.122.1</address>
</ip>
<user href="/ovirt-engine/api/users/789" id="789"/>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</session>
...
</sessions>
5.235.1.1. max
Sets the maximum number of sessions to return. If not specified all the sessions are returned.
5.236. VMWATCHDOG
A service managing a watchdog on virtual machines.
Name Summary
389
Red Hat Virtualization 4.0 REST API Guide
Name Summary
5.236.1.1. watchdog
The information consists of model element, action element and the reference to the virtual
machine. It may look like this:
<watchdogs>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-
0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>poweroff</action>
<model>i6300esb</model>
</watchdog>
</watchdogs>
For example, to remove a watchdog from a virtual machine, send a request like this:
DELETE /ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-0000-
000000000000
390
CHAPTER 5. SERVICES
You can update the information using action and model elements.
PUT /ovirt-engine/api/vms/123/watchdogs
<watchdog>
<action>reset</action>
</watchdog>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-
0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>reset</action>
<model>i6300esb</model>
</watchdog>
5.236.3.1. watchdog
The request data must contain at least one of model and action elements. The response data
contains complete information about the updated watchdog.
5.237. VMWATCHDOGS
Lists the watchdogs of a virtual machine.
391
Red Hat Virtualization 4.0 REST API Guide
Name Summary
For example, to add a watchdog to a virtual machine, send a request like this:
POST /ovirt-engine/api/vms/123/watchdogs
<watchdog>
<action>poweroff</action>
<model>i6300esb</model>
</watchdog>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-
0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>poweroff</action>
<model>i6300esb</model>
</watchdog>
5.237.1.1. watchdog
The request data must contain model element (such as i6300esb) and action element (one of
none, reset, poweroff, dump, pause). The response data additionally contains references to the
added watchdog and to the virtual machine.
392
CHAPTER 5. SERVICES
5.237.2.1. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
5.237.2.2. watchdogs
The information consists of model element, action element and the reference to the virtual
machine. It may look like this:
<watchdogs>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-
0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>poweroff</action>
<model>i6300esb</model>
</watchdog>
</watchdogs>
5.238. VMS
Name Summary
list
393
Red Hat Virtualization 4.0 REST API Guide
From a template. In this case the identifier or name of the template must be provided. For
example, using a plain shell script and XML:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<vm>
<name>myvm</name>
<template>
<name>Blank</name>
</template>
<cluster>
<name>mycluster</name>
</cluster>
</vm>
' \
"${url}/vms"
From a snapshot. In this case the identifier of the snapshot has to be provided. For example,
using a plain shel script and XML:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<vm>
<name>myvm</name>
<snapshots>
<snapshot id="266742a5-6a65-483c-816d-d2ce49746680"/>
</snapshots>
<cluster>
<name>mycluster</name>
394
CHAPTER 5. SERVICES
</cluster>
</vm>
' \
"${url}/vms"
When creating a virtual machine from a template or from a snapshot it is usually useful to explicitly
indicate in what storage domain to create the disks for the virtual machine. If the virtual machine is
created from a template then this is achieved passing a set of disk_attachment elements that
indicate the mapping:
<vm>
...
<disk_attachments>
<disk_attachment>
<disk id="8d4bd566-6c86-4592-a4a7-912dbf93c298">
<storage_domains>
<storage_domain id="9cb6cb0a-cf1d-41c2-92ca-5a6d665649c9"/>
</storage_domains>
</disk>
<disk_attachment>
</disk_attachments>
</vm>
When the virtual machine is created from a snapshot this set of disks is slightly different, it uses the
image_id attribute instead of id.
<vm>
...
<disk_attachments>
<disk_attachment>
<disk>
<image_id>8d4bd566-6c86-4592-a4a7-912dbf93c298</image_id>
<storage_domains>
<storage_domain id="9cb6cb0a-cf1d-41c2-92ca-5a6d665649c9"/>
</storage_domains>
</disk>
<disk_attachment>
</disk_attachments>
</vm>
It is possible to specify additional virtual machine parameters in the XML description, e.g. a virtual
machine of desktop type, with 2 GiB of RAM and additional description can be added sending a
request body like the following:
<vm>
<name>myvm</name>
<description>My Desktop Virtual Machine</description>
<type>desktop</type>
<memory>2147483648</memory>
...
</vm>
<vm>
395
Red Hat Virtualization 4.0 REST API Guide
...
<os>
<boot dev="cdrom"/>
</os>
</vm>
In order to boot from CDROM, you first need to insert a disk, as described in the CDROM service.
Then booting from that CDROM can be specified using the os.boot.devices attribute:
<vm>
...
<os>
<boot>
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
In all cases the name or identifier of the cluster where the virtual machine will be created is
mandatory.
vm Vm In/Out
5.238.1.1. clone
When a virtual machine is created from a template by default the disks of the virtual machine
depend on the disks of the template, they are using the copy on write mechanism so that only the
differences from the template take up real storage space. If this parameter is specified and the value
is true then the disks of the created virtual machine will be cloned, and independent of the
template. For example, to create an independent virtual machine, send a request like this:
POST /ovirt-engine/vms?clone=true
396
CHAPTER 5. SERVICES
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
</vm>
Note
When this parameter is true the permissions of the template will also be copied, as when
using clone_permissions=true.
5.238.1.2. clone_permissions
Specifies if the permissions of the template should be copied to the virtual machine.
If this optional parameter is provided, and its values is true then the permissions of the template
(only the direct ones, not the inherited ones) will be copied to the created virtual machine. For
example, to create a virtual machine from the mytemplate template copying its permissions, send
a request like this:
POST /ovirt-engine/api/vms?clone_permissions=true
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
</vm>
397
Red Hat Virtualization 4.0 REST API Guide
5.238.2.1. all_content
Indicates if all the attributes of the virtual machines should be included in the response.
console
rng_source
soundcard
virtio_scsi
For example, to retrieve the complete representation of the virtual machines send a request like this:
GET /ovirt-engine/api/vms?all_content=true
Note
The reason for not including these attributes is performance: they are seldom used and
they require additional queries to the database. So try to use the this parameter only when
it is really needed.
5.238.2.2. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
398
CHAPTER 5. SERVICES
account. The default value is true, which means that case is taken into account. If you want to
search ignoring case set it to false.
5.239. VNICPROFILE
This service manages a vNIC profile.
Name Summary
399
Red Hat Virtualization 4.0 REST API Guide
5.240. VNICPROFILES
This service manages the collection of all vNIC profiles.
Name Summary
For example to add vNIC profile 123 to network 456 send a request to:
POST /ovirt-engine/api/networks/456/vnicprofiles
<vnic_profile id="123">
<name>new_vNIC_name</name>
<pass_through>
<mode>disabled</mode>
</pass_through>
<port_mirroring>false</port_mirroring>
</vnic_profile>
400
CHAPTER 5. SERVICES
Please note that there is a default network filter to each VNIC profile. For more details of how the
default network filter is calculated please refer to the documentation in NetworkFilters.
The output of creating a new VNIC profile depends in the body arguments that were given. In case
no network filter was given, the default network filter will be configured. For example:
In case an empty network filter was given, no network filter will be configured for the specific VNIC
profile regardless of the VNIC profile’s default network filter. For example:
<vnic_profile>
<name>no_network_filter</name>
<network_filter/>
</vnic_profile>
In case that a specific valid network filter id was given, the VNIC profile will be configured with the
given network filter regardless of the VNIC profiles’s default network filter. For example:
<vnic_profile>
<name>user_choice_network_filter</name>
<network_filter id= "0000001b-001b-001b-001b-0000000001d5"/>
</vnic_profile>
401
Red Hat Virtualization 4.0 REST API Guide
5.240.2.1. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
5.241. WEIGHT
Name Summary
get
remove
402
CHAPTER 5. SERVICES
5.242. WEIGHTS
Name Summary
add
list
403
Red Hat Virtualization 4.0 REST API Guide
5.242.2.1. max
Sets the maximum number of weights to return. If not specified all the weights are returned.
404
CHAPTER 6. TYPES
CHAPTER 6. TYPES
This section enumerates all the data types that are available in the API.
Name Summary
cifs
gluster
nfs
async Boolean
bricks GlusterBrick[]
certificates Certificate[]
check_connec Boolean
tivity
clone Boolean
cluster Cluster
405
Red Hat Virtualization 4.0 REST API Guide
collapse_sna Boolean
pshots
connectivity Integer
_timeout
data_center DataCenter
deploy_hoste Boolean
d_engine
details GlusterVolumePr
ofileDetails
discard_snap Boolean
shots
disk Disk
disks Disk[]
exclusive Boolean
fault Fault
fence_type String
406
CHAPTER 6. TYPES
filter Boolean
fix_layout Boolean
force Boolean
grace_period GracePeriod
host Host
image String
import_as_te Boolean
mplate
is_attached Boolean
iscsi IscsiDetails
iscsi_target String[]
s
job Job
logical_unit LogicalUnit[]
s
maintenance_ Boolean
enabled
407
Red Hat Virtualization 4.0 REST API Guide
modified_bon HostNic[]
ds
modified_lab NetworkLabel[]
els
modified_net NetworkAttachme
work_attachm nt[]
ents
option Option
pause Boolean
power_manage PowerManageme
ment nt
proxy_ticket ProxyTicket
reason String
removed_bond HostNic[]
s
removed_labe NetworkLabel[]
ls
removed_netw NetworkAttachme
ork_attachme nt[]
nts
408
CHAPTER 6. TYPES
resolution_t String
ype
restore_memo Boolean
ry
root_passwor String
d
snapshot Snapshot
ssh Ssh
status String
stop_gluster Boolean
_service
storage_doma StorageDomain
in
storage_doma StorageDomain[]
ins
succeeded Boolean
synchronized NetworkAttachme
_network_att nt[]
achments
template Template
ticket Ticket
409
Red Hat Virtualization 4.0 REST API Guide
undeploy_hos Boolean
ted_engine
use_cloud_in Boolean
it
use_sysprep Boolean
virtual_func HostNicVirtualFun
tions_config ctionsConfiguratio
uration n
vm Vm
enforcing Boolean Specifies whether the affinity group uses hard or soft
enforcement of the affinity applied to virtual machines that are
members of that affinity group.
410
CHAPTER 6. TYPES
positive Boolean Specifies whether the affinity group applies positive affinity or
negative affinity to virtual machines that are members of that
affinity group.
cluster Cluster A reference to the cluster to which the affinity group applies.
vms Vm[] A list of all virtual machines assigned to this affinity group.
read_only Boolean The read_only property marks a label that can not be
modified.
6.4.1. read_only
411
Red Hat Virtualization 4.0 REST API Guide
The read_only property marks a label that can not be modified. This is usually the case when
listing internally-generated labels.
hosts Host[] A list of hosts that were labeled using this scheduling label.
vms Vm[] A list of virtual machines that were labeled using this
scheduling label.
412
CHAPTER 6. TYPES
order Integer The order of this agent if used with other agents.
6.5.1. host
Reference to the host service. Each fence agent belongs to a single host.
address String
413
Red Hat Virtualization 4.0 REST API Guide
broker_type MessageBrokerTy
pe
network_mapp String
ings
password String
port Integer
username String
GET /ovirt-engine/api
<api>
<link rel="hosts" href="/ovirt-engine/api/hosts"/>
<link rel="vms" href="/ovirt-engine/api/vms"/>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.1.0_master</full_version>
<major>4</major>
<minor>1</minor>
<revision>0</revision>
</version>
</product_info>
<special_objects>
<link rel="templates/blank" href="..."/>
<link rel="tags/root" href="..."/>
</special_objects>
<summary>
<vms>
<total>10</total>
414
CHAPTER 6. TYPES
<active>3</active>
</vms>
<hosts>
<total>2</total>
<active>2</active>
</hosts>
<users>
<total>8</total>
<active>2</active>
</users>
<storage_domains>
<total>2</total>
<active>2</active>
</storage_domains>
</summary>
<time>2016-12-12T12:22:25.866+01:00</time>
</api>
product_info ProductInfo Information about the product, such as its name, the name of
the vendor, and the version.
special_obje SpecialObjects References to special objects, such as the blank template and
cts the root of the hierarchy of tags.
time Date The date and time when this information was generated.
415
Red Hat Virtualization 4.0 REST API Guide
416
CHAPTER 6. TYPES
vm Vm
Name Summary
ppc64
undefined
x86_64
key String
417
Red Hat Virtualization 4.0 REST API Guide
user User
Name Summary
disable
enable
unknown
418
CHAPTER 6. TYPES
scheduling_p SchedulingPolicy
olicy
scheduling_p SchedulingPolicy
olicy_unit Unit
boot_menu BootMenu
statistics Statistic[]
419
Red Hat Virtualization 4.0 REST API Guide
6.17.1. ad_partner_mac
The ad_partner_mac property of the partner bond in mode 4. Bond mode 4 is the 802.3ad
standard, also called dynamic link aggregation - Wikipedia, Presentation. ad_partner_mac is the
MAC address of the system (switch) at the other end of a bond. This parameter is read-only. Setting
it will have no effect on the bond. It is retrieved from
/sys/class/net/bondX/bonding/ad_partner_mac file on the system where the bond is
located.
6.17.2. options
A list of option elements for a bonded interface. Each option contains property name and value
attributes. Only required when adding bonded interfaces.
6.17.3. slaves
A list of slave NICs for a bonded interface. Only required when adding bonded interfaces.
value String
420
CHAPTER 6. TYPES
devices BootDevice[]
Name Summary
cdrom
hd
network
enabled Boolean
Name Summary
421
Red Hat Virtualization 4.0 REST API Guide
Name Summary
6.22.1. autoconf
The mechanism is defined by RFC 4862. Please refer to this wikipedia article for more information.
Note
6.22.2. dhcp
profile_deta ProfileDetail[]
ils
brick GlusterBrick
422
CHAPTER 6. TYPES
file File
vms Vm[] References to the virtual machines that are using this device.
6.24.1. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
423
Red Hat Virtualization 4.0 REST API Guide
content String
organization String
subject String
authorized_k AuthorizedKey[]
eys
files File[]
host Host
network_conf NetworkConfigura
iguration tion
424
CHAPTER 6. TYPES
regenerate_s Boolean
sh_keys
timezone String
users User[]
{
"cluster" : [ {
"ballooning_enabled" : "false",
"cpu" : {
"architecture" : "x86_64",
"type" : "Intel SandyBridge Family"
},
"custom_scheduling_policy_properties" : {
"property" : [ {
"name" : "HighUtilization",
"value" : "80"
}, {
"name" : "CpuOverCommitDurationMinutes",
"value" : "2"
} ]
},
"error_handling" : {
"on_error" : "migrate"
},
"fencing_policy" : {
"enabled" : "true",
"skip_if_connectivity_broken" : {
"enabled" : "false",
"threshold" : "50"
},
"skip_if_gluster_bricks_up" : "false",
"skip_if_gluster_quorum_not_met" : "false",
"skip_if_sd_active" : {
"enabled" : "false"
}
},
"gluster_service" : "false",
"ha_reservation" : "false",
425
Red Hat Virtualization 4.0 REST API Guide
"ksm" : {
"enabled" : "true",
"merge_across_nodes" : "true"
},
"maintenance_reason_required" : "false",
"memory_policy" : {
"over_commit" : {
"percent" : "100"
},
"transparent_hugepages" : {
"enabled" : "true"
}
},
"migration" : {
"auto_converge" : "inherit",
"bandwidth" : {
"assignment_method" : "auto"
},
"compressed" : "inherit",
"policy" : {
"id" : "00000000-0000-0000-0000-000000000000"
}
},
"optional_reason" : "false",
"required_rng_sources" : {
"required_rng_source" : [ "random" ]
},
"switch_type" : "legacy",
"threads_as_cores" : "false",
"trusted_service" : "false",
"tunnel_migration" : "false",
"version" : {
"major" : "4",
"minor" : "1"
},
"virt_service" : "true",
"data_center" : {
"href" : "/ovirt-engine/api/datacenters/123",
"id" : "123"
},
"mac_pool" : {
"href" : "/ovirt-engine/api/macpools/456",
"id" : "456"
},
"scheduling_policy" : {
"href" : "/ovirt-engine/api/schedulingpolicies/789",
"id" : "789"
},
"actions" : {
"link" : [ {
"href" : "/ovirt-engine/api/clusters/234/resetemulatedmachine",
"rel" : "resetemulatedmachine"
} ]
},
"name" : "Default",
"description" : "The default server cluster",
426
CHAPTER 6. TYPES
"href" : "/ovirt-engine/api/clusters/234",
"id" : "234",
"link" : [ {
"href" : "/ovirt-engine/api/clusters/234/permissions",
"rel" : "permissions"
}, {
"href" : "/ovirt-engine/api/clusters/234/cpuprofiles",
"rel" : "cpuprofiles"
}, {
"href" : "/ovirt-engine/api/clusters/234/networkfilters",
"rel" : "networkfilters"
}, {
"href" : "/ovirt-engine/api/clusters/234/networks",
"rel" : "networks"
}, {
"href" : "/ovirt-engine/api/clusters/234/affinitygroups",
"rel" : "affinitygroups"
}, {
"href" : "/ovirt-engine/api/clusters/234/glusterhooks",
"rel" : "glusterhooks"
}, {
"href" : "/ovirt-engine/api/clusters/234/glustervolumes",
"rel" : "glustervolumes"
} ]
} ]
}
ballooning_e Boolean
nabled
cpu Cpu
display Display
427
Red Hat Virtualization 4.0 REST API Guide
error_handli ErrorHandling
ng
gluster_serv Boolean
ice
ha_reservati Boolean
on
ksm Ksm
maintenance_ Boolean
reason_requi
red
memory_polic MemoryPolicy
y
migration MigrationOptions
optional_rea Boolean
son
required_rng RngSource[]
_sources
428
CHAPTER 6. TYPES
serial_numbe SerialNumber
r
supported_ve Version[]
rsions
threads_as_c Boolean
ores
trusted_serv Boolean
ice
tunnel_migra Boolean
tion
virt_service Boolean
6.27.1. custom_scheduling_policy_properties
Custom scheduling policy properties of the cluster. These optional properties override the properties
of the scheduling policy specified by the scheduling_policy link, and apply only for this specific
cluster.
For example, to update the custom properties of the cluster, send a request:
PUT /ovirt-engine/api/clusters/123
<cluster>
<custom_scheduling_policy_properties>
<property>
<name>HighUtilization</name>
429
Red Hat Virtualization 4.0 REST API Guide
<value>70</value>
</property>
</custom_scheduling_policy_properties>
</cluster>
6.27.2. fencing_policy
Here is an example:
PUT /ovirt-engine/api/cluster/123
<cluster>
<fencing_policy>
<enabled>true</enabled>
<skip_if_sd_active>
<enabled>false</enabled>
</skip_if_sd_active>
<skip_if_connectivity_broken>
<enabled>false</enabled>
<threshold>50</threshold>
</skip_if_connectivity_broken>
</fencing_policy>
</cluster>
6.27.3. version
All hosts in this cluster must support at least this compatibility version.
For example:
GET /ovirt-engine/api/clusters/123
Will respond:
<cluster>
...
<version>
<major>4</major>
<minor>0</minor>
</version>
...
</cluster>
430
CHAPTER 6. TYPES
PUT /ovirt-engine/api/clusters/123
<cluster>
<version>
<major>4</major>
<minor>1</minor>
</version>
</cluster>
In order to update the cluster compatibility version, all hosts in the cluster must support the new
compatibility version.
affinity_gro AffinityGroup[]
ups
cpu_profiles CpuProfile[]
data_center DataCenter
gluster_hook GlusterHook[]
s
gluster_volu GlusterVolume[]
mes
management_n Network
etwork
network_filt NetworkFilter[]
ers
networks Network[]
permissions Permission[]
431
Red Hat Virtualization 4.0 REST API Guide
scheduling_p SchedulingPolicy Reference to the default scheduling policy used by this cluster.
olicy
6.27.4. scheduling_policy
Note
The scheduling policy properties are taken by default from the referenced scheduling
policy, but they are overridden by the properties specified in the
custom_scheduling_policy_properties attribute for this cluster.
432
CHAPTER 6. TYPES
type ConfigurationTyp
e
6.29.1. data
433
Red Hat Virtualization 4.0 REST API Guide
<Name>VM_export</Name>
<TemplateId>00000000-0000-0000-0000-000000000000</TemplateId>
<TemplateName>Blank</TemplateName>
<IsInitilized>false</IsInitilized>
<Origin>3</Origin>
<DefaultDisplayType>1</DefaultDisplayType>
<TrustedService>false</TrustedService>
<OriginalTemplateId>00000000-0000-0000-0000-
000000000000</OriginalTemplateId>
<OriginalTemplateName>Blank</OriginalTemplateName>
<UseLatestVersion>false</UseLatestVersion>
<Section ovf:id="70b4d9a7-4f73-4def-89ca-24fc5f60e01a"
ovf:required="false"
xsi:type="ovf:OperatingSystemSection_Type">
<Info>Guest Operating System</Info>
<Description>other</Description>
</Section>
<Section xsi:type="ovf:VirtualHardwareSection_Type">
<Info>1 CPU, 1024 Memory</Info>
<System>
<vssd:VirtualSystemType>ENGINE 3.5.0.0</vssd:VirtualSystemType>
</System>
<Item>
<rasd:Caption>1 virtual cpu</rasd:Caption>
<rasd:Description>Number of virtual CPU</rasd:Description>
<rasd:InstanceId>1</rasd:InstanceId>
<rasd:ResourceType>3</rasd:ResourceType>
<rasd:num_of_sockets>1</rasd:num_of_sockets>
<rasd:cpu_per_socket>1</rasd:cpu_per_socket>
</Item>
<Item>
<rasd:Caption>1024 MB of memory</rasd:Caption>
<rasd:Description>Memory Size</rasd:Description>
<rasd:InstanceId>2</rasd:InstanceId>
<rasd:ResourceType>4</rasd:ResourceType>
<rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits>
<rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
</Item>
<Item>
<rasd:Caption>USB Controller</rasd:Caption>
<rasd:InstanceId>3</rasd:InstanceId>
<rasd:ResourceType>23</rasd:ResourceType>
<rasd:UsbPolicy>DISABLED</rasd:UsbPolicy>
</Item>
</Section>
</Content>
</ovf:Envelope>
434
CHAPTER 6. TYPES
Name Summary
ovf
enabled Boolean
index Integer
socket Integer
architecture Architecture
cores Core[]
cpu_tune CpuTune
435
Red Hat Virtualization 4.0 REST API Guide
level Integer
mode CpuMode
name String
speed Decimal
topology CpuTopology
type String
Name Summary
custom
host_model
host_passthr
ough
436
CHAPTER 6. TYPES
cluster Cluster
permissions Permission[]
qos Qos
cores Integer
sockets Integer
threads Integer
437
Red Hat Virtualization 4.0 REST API Guide
vcpu_pins VcpuPin[]
name String The name of the CPU type, for example Intel Conroe
Family .
Name Summary
complete
failed
in_progress
pending
438
CHAPTER 6. TYPES
name String
regexp String
value String
local Boolean
quota_mode QuotaModeType
status DataCenterStatus
storage_form StorageFormat
at
439
Red Hat Virtualization 4.0 REST API Guide
supported_ve Version[]
rsions
6.41.1. version
All clusters in this data center must already be set to at least this compatibility version.
For example:
GET /ovirt-engine/api/datacenters/123
Will respond:
<data_center>
...
<version>
<major>4</major>
<minor>0</minor>
</version>
...
</data_center>
PUT /ovirt-engine/api/datacenters/123
<data_center>
<version>
<major>4</major>
<minor>1</minor>
</version>
</data_center>
440
CHAPTER 6. TYPES
mac_pool MacPool Reference to the MAC pool used by this data center.
Name Summary
contend
maintenance
not_operatio
nal
problematic
441
Red Hat Virtualization 4.0 REST API Guide
Name Summary
uninitialize
d
up
442
CHAPTER 6. TYPES
vms Vm[] References to the virtual machines that are using this device.
6.43.1. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
alias String
image_id String
443
Red Hat Virtualization 4.0 REST API Guide
interface DiskInterface The type of interface driver used to connect the disk device to
the virtual machine.
logical_name String
lun_storage HostStorage
propagate_er Boolean Indicates if disk errors should not cause virtual machine to be
rors paused and, instead, disk errors should be propagated to the
the guest operating system.
sgio ScsiGenericIO
sparse Boolean Indicates if the physical storage for the disk should not be
preallocated.
storage_type DiskStorageType
uses_scsi_re Boolean
servation
444
CHAPTER 6. TYPES
wipe_after_d Boolean Indicates if the disk’s blocks will be read back as zeros after it
elete is deleted:
6.44.1. active
Important
When adding a disk attachment to a virtual machine, the server accepts requests that
don’t contain this attribute, but the effect is then undefined. In some cases the disk will be
automatically activated and in other cases it won’t. To avoid issues it is strongly
recommended to always include the this attribute with the desired value.
6.44.2. actual_size
The actual size is the number of bytes actually used by the disk, and it will be smaller than the
provisioned size for disks that use the cow format.
6.44.3. bootable
Important
This attribute only makes sense for disks that are actually connected to virtual machines,
and in version 4 of the API it has been moved to the DiskAttachment type. It is preserved
here only for backwards compatibility, and it will be removed in the future.
6.44.4. interface
The type of interface driver used to connect the disk device to the virtual machine.
Important
This attribute only makes sense for disks that are actually connected to virtual machines,
and in version 4 of the API it has been moved to the DiskAttachment type. It is preserved
here only for backwards compatibility, and it will be removed in the future.
6.44.5. provisioned_size
445
Red Hat Virtualization 4.0 REST API Guide
6.44.5. provisioned_size
6.44.6. shareable
Important
When a disk is attached to multiple virtual machines it is the responsibility of the guest
operating systems of those virtual machines to coordinate access to it, to avoid corruption
of the data, for example using a shared file system like GlusterFS or GFS.
6.44.7. wipe_after_delete
Indicates if the disk’s blocks will be read back as zeros after it is deleted:
On block storage, the disk will be zeroed and only then deleted.
On file storage, since the file system already guarantees that previously removed blocks are
read back as zeros, the disk will be deleted immediately.
disk_profile DiskProfile
openstack_vo OpenStackVolum
lume_type eType
permissions Permission[]
quota Quota
snapshot Snapshot
446
CHAPTER 6. TYPES
storage_doma StorageDomain
in
vms Vm[] References to the virtual machines that are using this device.
6.44.8. statistics
<statistics>
<statistic href="/ovirt-engine/api/disks/123/statistics/456" id="456">
<name>data.current.read</name>
<description>Read data rate</description>
<kind>gauge</kind>
<type>decimal</type>
<unit>bytes_per_second</unit>
<values>
<value>
<datum>1052</datum>
</value>
</values>
<disk href="/ovirt-engine/api/disks/123" id="123"/>
</statistic>
...
</statistics>
These statistics aren’t directly included when the disk is retrieved, only a link. To obtain the statistics
follow that link:
GET /ovirt-engine/api/disks/123/statistics
6.44.9. storage_domains
447
Red Hat Virtualization 4.0 REST API Guide
Note
Only required when the first disk is being added to a virtual machine that was not itself
created from a template.
6.44.10. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
active Boolean This flag indicates if the disk is active in the virtual machine
it’s attached to.
interface DiskInterface The type of interface driver used to connect the disk device to
the virtual machine.
logical_name String The logical name of the virtual machine’s disk, as seen from
inside the virtual machine.
448
CHAPTER 6. TYPES
6.45.1. active
This flag indicates if the disk is active in the virtual machine it’s attached to.
A disk attached to a virtual machine in an active status is connected to the virtual machine at run
time and can be used.
6.45.2. logical_name
The logical name of the virtual machine’s disk, as seen from inside the virtual machine.
The logical name of a disk is reported only when the guest agent is installed and running inside the
virtual machine.
For example, if the guest operating system is Linux and the disk is connected via a VirtIO interface,
the logical name will be reported as /dev/vda:
<disk_attachment>
...
<logical_name>/dev/vda</logical_name>
</disk_attachment>
If the guest operating system is Windows, the logical name will be reported as
\\.\PHYSICALDRIVE0.
Name Summary
cow The Copy On Write format allows snapshots, with a small performance overhead.
449
Red Hat Virtualization 4.0 REST API Guide
Name Summary
raw The raw format does not allow snapshots, but offers improved performance.
Name Summary
ide
spapr_vscsi
virtio
virtio_scsi
450
CHAPTER 6. TYPES
permissions Permission[]
qos Qos
storage_doma StorageDomain
in
alias String
image_id String
451
Red Hat Virtualization 4.0 REST API Guide
interface DiskInterface The type of interface driver used to connect the disk device to
the virtual machine.
logical_name String
lun_storage HostStorage
propagate_er Boolean Indicates if disk errors should not cause virtual machine to be
rors paused and, instead, disk errors should be propagated to the
the guest operating system.
sgio ScsiGenericIO
sparse Boolean Indicates if the physical storage for the disk should not be
preallocated.
storage_type DiskStorageType
uses_scsi_re Boolean
servation
452
CHAPTER 6. TYPES
wipe_after_d Boolean Indicates if the disk’s blocks will be read back as zeros after it
elete is deleted:
6.49.1. active
Important
When adding a disk attachment to a virtual machine, the server accepts requests that
don’t contain this attribute, but the effect is then undefined. In some cases the disk will be
automatically activated and in other cases it won’t. To avoid issues it is strongly
recommended to always include the this attribute with the desired value.
6.49.2. actual_size
The actual size is the number of bytes actually used by the disk, and it will be smaller than the
provisioned size for disks that use the cow format.
6.49.3. bootable
Important
This attribute only makes sense for disks that are actually connected to virtual machines,
and in version 4 of the API it has been moved to the DiskAttachment type. It is preserved
here only for backwards compatibility, and it will be removed in the future.
6.49.4. interface
The type of interface driver used to connect the disk device to the virtual machine.
Important
This attribute only makes sense for disks that are actually connected to virtual machines,
and in version 4 of the API it has been moved to the DiskAttachment type. It is preserved
here only for backwards compatibility, and it will be removed in the future.
6.49.5. provisioned_size
453
Red Hat Virtualization 4.0 REST API Guide
6.49.5. provisioned_size
6.49.6. shareable
Important
When a disk is attached to multiple virtual machines it is the responsibility of the guest
operating systems of those virtual machines to coordinate access to it, to avoid corruption
of the data, for example using a shared file system like GlusterFS or GFS.
6.49.7. wipe_after_delete
Indicates if the disk’s blocks will be read back as zeros after it is deleted:
On block storage, the disk will be zeroed and only then deleted.
On file storage, since the file system already guarantees that previously removed blocks are
read back as zeros, the disk will be deleted immediately.
disk Disk
disk_profile DiskProfile
openstack_vo OpenStackVolum
lume_type eType
permissions Permission[]
quota Quota
454
CHAPTER 6. TYPES
snapshot Snapshot
storage_doma StorageDomain
in
vms Vm[] References to the virtual machines that are using this device.
6.49.8. statistics
<statistics>
<statistic href="/ovirt-engine/api/disks/123/statistics/456" id="456">
<name>data.current.read</name>
<description>Read data rate</description>
<kind>gauge</kind>
<type>decimal</type>
<unit>bytes_per_second</unit>
<values>
<value>
<datum>1052</datum>
</value>
</values>
<disk href="/ovirt-engine/api/disks/123" id="123"/>
</statistic>
...
</statistics>
These statistics aren’t directly included when the disk is retrieved, only a link. To obtain the statistics
follow that link:
GET /ovirt-engine/api/disks/123/statistics
455
Red Hat Virtualization 4.0 REST API Guide
6.49.9. storage_domains
Note
Only required when the first disk is being added to a virtual machine that was not itself
created from a template.
6.49.10. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
Name Summary
illegal
locked
ok
Name Summary
cinder
image
lun
456
CHAPTER 6. TYPES
Name Summary
data
system
address String
allow_overri Boolean
de
certificate Certificate
copy_paste_e Boolean
nabled
disconnect_a String
ction
file_transfe Boolean
r_enabled
keyboard_lay String
out
457
Red Hat Virtualization 4.0 REST API Guide
monitors Integer
port Integer
proxy String
secure_port Integer
single_qxl_p Boolean
ci
smartcard_en Boolean
abled
type DisplayType
Name Summary
spice
vnc
458
CHAPTER 6. TYPES
user User
6.56.1. users
459
Red Hat Virtualization 4.0 REST API Guide
A reference to a list of all users in the directory service. This information is used to add new users to
the Red Hat Virtualization environment.
Name Summary
info There external entity status is okay but with some information that might be relevant.
warning The external entity status is okay but with an issue that might require attention.
6.57.1. error
The external entity status is erroneous. This might require a moderate attention.
6.57.2. failure
The external entity has an issue that causes failures. This might require immediate attention.
profile_deta ProfileDetail[]
ils
460
CHAPTER 6. TYPES
on_error MigrateOnError
461
Red Hat Virtualization 4.0 REST API Guide
6.60.1. correlation_id
The event correlation identifier. Used in order to correlate several events together.
6.60.2. flood_rate
Defines the flood rate. This prevents flooding in case an event appeared more than once in the
defined rate. Defaults is 30 seconds.
462
CHAPTER 6. TYPES
6.60.3. cluster
6.60.4. data_center
Reference to the data center service. Event can be associated with a data center.
6.60.5. host
6.60.6. storage_domain
Reference to the storage domain service. Event can be associated with a storage domain.
6.60.7. template
6.60.8. user
6.60.9. vm
Reference to the virtual machine service. Event can be associated with a virtual machine.
463
Red Hat Virtualization 4.0 REST API Guide
provider String
url String
user String
external_hos ExternalHostProvi
t_provider der
ip String
last_report String
mac String
464
CHAPTER 6. TYPES
subnet_name String
external_hos ExternalHostProvi
t_provider der
address String
465
Red Hat Virtualization 4.0 REST API Guide
external_hos ExternalHostProvi
t_provider der
architecture String
_name
domain_name String
operating_sy String
stem_name
subnet_name String
466
CHAPTER 6. TYPES
external_hos ExternalHostProvi
t_provider der
password String Defines password for the user during the authentication
process.
467
Red Hat Virtualization 4.0 REST API Guide
6.65.1. requires_authentication
If authentication is required, both username and password attributes will be used during
authentication.
certificates Certificate[]
compute_reso ExternalCompute
urces Resource[]
discovered_h ExternalDiscovere
osts dHost[]
host_groups ExternalHostGrou
p[]
hosts Host[]
468
CHAPTER 6. TYPES
password String Defines password for the user during the authentication
process.
6.66.1. requires_authentication
If authentication is required, both username and password attributes will be used during
authentication.
Name Summary
error
failure
info
469
Red Hat Virtualization 4.0 REST API Guide
Name Summary
ok
warning
Name Summary
gluster Represents Gluster as the external system which is associated with the step.
vdsm Represents VDSM as the external system which is associated with the step.
sparse Boolean Specifies the disk allocation policy of resulting virtual machine:
true for sparse, false for preallocated.
470
CHAPTER 6. TYPES
6.69.1. url
Example:
vpx://wmware_user@vcenter-host/DataCenter/Cluster/esxi-host?no_verify=1
cluster Cluster Specifies the target cluster of the resulting virtual machine.
cpu_profile CpuProfile Optionally specifies the cpu profile of the resulting virtual
machine.
drivers_iso File Optional name of ISO carrying drivers that can be used during
the virt-v2v conversion process.
host Host Optional specification of host (using host’s ID) to be used for
the conversion process.
quota Quota Optionally specifies the quota that will be applied to the
resulting virtual machine.
storage_doma StorageDomain Specifies the target storage domain for converted disks.
in
471
Red Hat Virtualization 4.0 REST API Guide
6.69.2. host
Optional specification of host (using host’s ID) to be used for the conversion process. If not
specified, one is selected automatically.
6.69.3. vm
Virtual machine entity used to specify the name of the newly created virtual machine.
If name is not specified, the source virtual machine name will be used.
Name Summary
kvm
vmware
xen
detail String
reason String
472
CHAPTER 6. TYPES
Name Summary
skip_if_conn SkipIfConnectivity If enabled, we will not fence a host in case more than a
ectivity_bro Broken configurable percentage of hosts in the cluster lost
ken connectivity as well.
skip_if_sd_a SkipIfSdActive If enabled, we will skip fencing in case the host maintains its
ctive lease in the storage.
6.73.1. skip_if_connectivity_broken
If enabled, we will not fence a host in case more than a configurable percentage of hosts in the
cluster lost connectivity as well. This comes to prevent fencing storm in cases where there is a
global networking issue in the cluster.
6.73.2. skip_if_sd_active
473
Red Hat Virtualization 4.0 REST API Guide
If enabled, we will skip fencing in case the host maintains its lease in the storage. It means that if the
host still has storage access then it won’t get fenced.
content String
type String
storage_doma StorageDomain
in
474
CHAPTER 6. TYPES
position Integer
scheduling_p SchedulingPolicy
olicy_unit Unit
file File
475
Red Hat Virtualization 4.0 REST API Guide
vms Vm[] References to the virtual machines that are using this device.
6.76.1. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
name String
statistics Statistic[]
brick_dir String
476
CHAPTER 6. TYPES
device String
fs_name String
gluster_clie GlusterClient[]
nts
memory_pools GlusterMemoryPo
ol[]
mnt_options String
pid Integer
port Integer
server_id String
status GlusterBrickStatu
s
477
Red Hat Virtualization 4.0 REST API Guide
gluster_volu GlusterVolume
me
statistics Statistic[]
vms Vm[] References to the virtual machines that are using this device.
6.78.1. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
device String
478
CHAPTER 6. TYPES
fs_name String
gluster_clie GlusterClient[]
nts
memory_pools GlusterMemoryPo
ol[]
mnt_options String
pid Integer
port Integer
vms Vm[] References to the virtual machines that are using this device.
6.79.1. vms
479
Red Hat Virtualization 4.0 REST API Guide
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
memory_pools GlusterMemoryPo
ol[]
Name Summary
down Brick is in down state, the data cannot be stored or retrieved from it.
unknown When the status cannot be determined due to host being non-responsive.
bytes_read Integer
bytes_writte Integer
n
480
CHAPTER 6. TYPES
client_port Integer
host_name String
checksum String
conflict_sta Integer
tus
conflicts String
content String
content_type HookContentType
gluster_comm String
and
481
Red Hat Virtualization 4.0 REST API Guide
stage HookStage
status GlusterHookStatu
s
cluster Cluster
server_hooks GlusterServerHoo
k[]
Name Summary
482
CHAPTER 6. TYPES
alloc_count Integer
cold_count Integer
hot_count Integer
max_alloc Integer
max_stdalloc Integer
padded_size Integer
pool_misses Integer
type String
483
Red Hat Virtualization 4.0 REST API Guide
checksum String
content_type HookContentType
status GlusterHookStatu
s
host Host
Name Summary
down
unknown
484
CHAPTER 6. TYPES
Name Summary
up
disperse_cou Integer
nt
options Option[]
redundancy_c Integer
ount
replica_coun Integer
t
status GlusterVolumeSta
tus
stripe_count Integer
485
Red Hat Virtualization 4.0 REST API Guide
transport_ty TransportType[]
pes
volume_type GlusterVolumeTy
pe
bricks GlusterBrick[]
cluster Cluster
statistics Statistic[]
brick_profil BrickProfileDetail[
e_details ]
486
CHAPTER 6. TYPES
nfs_profile_ NfsProfileDetail[]
details
Name Summary
down Volume needs to be started, for clients to be able to mount and use it.
unknown When the status cannot be determined due to host being non-responsive.
Name Summary
disperse Dispersed volumes are based on erasure codes, providing space-efficient protection
against disk or server failures.
distribute Distributed volumes distributes files throughout the bricks in the volume.
487
Red Hat Virtualization 4.0 REST API Guide
Name Summary
distributed_ Distributed replicated volumes distributes files across replicated bricks in the
replicate volume.
distributed_ Distributed striped volumes stripe data across two or more nodes in the cluster.
stripe
distributed_ Distributed striped replicated volumes distributes striped data across replicated
striped_repl bricks in the cluster.
icate
striped_repl Striped replicated volumes stripes data across replicated bricks in the cluster.
icate
6.91.1. disperse
Dispersed volumes are based on erasure codes, providing space-efficient protection against disk or
server failures.
Dispersed volumes an encoded fragment of the original file to each brick in a way that only a subset
of the fragments is needed to recover the original file. The number of bricks that can be missing
without losing access to data is configured by the administrator on volume creation time.
6.91.2. distribute
Distributed volumes can be used where the requirement is to scale storage and the redundancy is
either not important or is provided by other hardware/software layers.
6.91.3. distributed_disperse
This has the same advantages of distribute replicate volumes, but using disperse to store the data
into the bricks.
6.91.4. distributed_replicate
488
CHAPTER 6. TYPES
6.91.4. distributed_replicate
Distributed replicated volumes distributes files across replicated bricks in the volume.
Distributed replicated volumes can be used in environments where the requirement is to scale
storage and high-reliability is critical. Distributed replicated volumes also offer improved read
performance in most environments.
6.91.5. distributed_stripe
Distributed striped volumes stripe data across two or more nodes in the cluster.
Distributed striped volumes should be used where the requirement is to scale storage and in high
concurrency environments accessing very large files is critical.
Note: With the introduction of Sharding in Glusterfs 3.7 releases, striped volumes are not
recommended and it will be removed in future release.
6.91.6. distributed_striped_replicate
Distributed striped replicated volumes distributes striped data across replicated bricks in the cluster.
For best results, distributed striped replicated volumes should be used in highly concurrent
environments where parallel access of very large files and performance is critical.
Note: With the introduction of Sharding in Glusterfs 3.7 releases, striped volumes are not
recommended and it will be removed in future release.
6.91.7. replicate
Replicated volumes can be used in environments where high-availability and high-reliability are
critical.
6.91.8. stripe
For best results, striped volumes should only in high concurrency environments accessing very large
files.
Note: With the introduction of Sharding in Glusterfs 3.7 releases, striped volumes are not
recommended and it will be removed in future release.
6.91.9. striped_replicate
Striped replicated volumes stripes data across replicated bricks in the cluster.
For best results, striped replicated volumes should be used in highly concurrent environments where
there is parallel access of very large files and performance is critical.
Note: With the introduction of Sharding in Glusterfs 3.7 releases, striped volumes are not
recommended and it will be removed in future release.
expiry Integer
address String
port Integer
protocol GraphicsType
tls_port Integer
490
CHAPTER 6. TYPES
instance_typ InstanceType
e
template Template
vm Vm
Name Summary
spice
vnc
491
Red Hat Virtualization 4.0 REST API Guide
roles Role[] A link to the roles sub-collection for roles attached to this
group.
tags Tag[] A link to the tags sub-collection for tags attached to this
group.
6.95.1. roles
A link to the roles sub-collection for roles attached to this group. Used only to represent the initial
role assignments for a new group, thereafter modification of role assignments are only supported via
the roles sub-collection.
architecture String
492
CHAPTER 6. TYPES
codename String
distribution String
family String
kernel Kernel
version Version
family String
manufacturer String
product_name String
serial_numbe String
r
supported_rn RngSource[]
g_sources
uuid String
version String
493
Red Hat Virtualization 4.0 REST API Guide
enabled Boolean
priority Integer
event_name String
md5 String
host Host
494
CHAPTER 6. TYPES
Name Summary
Name Summary
post
pre
Name Summary
495
Red Hat Virtualization 4.0 REST API Guide
auto_numa_st AutoNumaStatus The host auto non uniform memory access (NUMA) status.
atus
display Display Optionally specify the display address of this host explicitly.
496
CHAPTER 6. TYPES
497
Red Hat Virtualization 4.0 REST API Guide
protocol HostProtocol The protocol that the engine uses to communicate with the
host.
root_passwor String When creating a new host, a root password is required if the
d password authentication method is chosen, but this is not
subsequently included in the representation.
spm Spm The host storage pool manager (SPM) status and definition.
summary VmSummary The virtual machine summary - how many are active,
migrating and total.
transparent_ TransparentHuge Transparent huge page support expands the size of memory
huge_pages Pages pages beyond the standard 4 KiB limit.
type HostType Indicates if the host contains a full installation of the operating
system or a scaled-down version intended only to host virtual
machines.
6.103.1. external_status
498
CHAPTER 6. TYPES
6.103.1. external_status
The host external status. This can be used by third-party software to change the host external status
in case of an issue. This has no effect on the host lifecycle, unless a third-party software checks for
this status and acts accordingly.
6.103.2. kdump_status
The host KDUMP status. KDUMP happens when the host kernel has crashed and it is now going
through memory dumping.
6.103.3. ksm
Kernel SamePage Merging (KSM) reduces references to memory pages from multiple identical
pages to a single page reference. This helps with optimization for memory density.
For example, to enable KSM for host 123, send a request like this:
PUT /ovirt-engine/api/hosts/123
<host>
<ksm>
<enabled>true</enabled>
</ksm>
</host>
6.103.4. libvirt_version
The host libvirt version. For more information on libvirt please go to libvirt.
6.103.5. override_iptables
Specifies whether we should override firewall definitions. This applies only when the host is installed
or re-installed.
6.103.6. se_linux
The host SElinux status. Security-Enhanced Linux (SELinux) is a component in the Linux kernel that
provides a mechanism for supporting access control security policies.
6.103.7. spm
The host storage pool manager (SPM) status and definition. Use it to set the SPM priority of this
host, and to see whether this is the current SPM or not.
6.103.8. status_detail
6.103.9. transparent_huge_pages
499
Red Hat Virtualization 4.0 REST API Guide
6.103.9. transparent_huge_pages
Transparent huge page support expands the size of memory pages beyond the standard 4 KiB limit.
This reduces memory consumption and increases host performance.
For example, to enable transparent huge page support for host 123, send a request like this:
PUT /ovirt-engine/api/hosts/123
<host>
<transparent_hugepages>
<enabled>true</enabled>
</transparent_hugepages>
</host>
6.103.10. version
For example:
GET /ovirt-engine/api/hosts/123
<host>
...
<version>
<build>999</build>
<full_version>vdsm-4.18.999-419.gitcf06367.el7</full_version>
<major>4</major>
<minor>18</minor>
<revision>0</revision>
</version>
...
</host>
affinity_lab AffinityLabel[]
els
agents Agent[]
500
CHAPTER 6. TYPES
cluster Cluster
devices Device[]
external_hos ExternalHostProvi
t_provider der
hooks Hook[]
katello_erra KatelloErratum[] Lists all the Katello errata assigned to the host.
ta
network_atta NetworkAttachme
chments nt[]
nics Nic[]
numa_nodes NumaNode[]
permissions Permission[]
storage_conn StorageConnectio
ection_exten nExtension[]
sions
storages HostStorage[]
tags Tag[]
501
Red Hat Virtualization 4.0 REST API Guide
unmanaged_ne UnmanagedNetw
tworks ork[]
6.103.11. katello_errata
GET /ovirt-engine/api/hosts/123/katelloerrata
<katello_errata>
<katello_erratum href="/ovirt-engine/api/katelloerrata/456" id="456">
<name>RHBA-2013:XYZ</name>
<description>The description of the erratum</description>
<title>some bug fix update</title>
<type>bugfix</type>
<issued>2013-11-20T02:00:00.000+02:00</issued>
<solution>Few guidelines regarding the solution</solution>
<summary>Updated packages that fix one bug are now available for
XYZ</summary>
<packages>
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
</packages>
</katello_erratum>
...
</katello_errata>
6.103.12. statistics
<statistics>
<statistic href="/ovirt-engine/api/hosts/123/statistics/456" id="456">
<name>memory.total</name>
<description>Total memory</description>
<kind>gauge</kind>
<type>integer</type>
<unit>bytes</unit>
<values>
<value>
<datum>25165824000</datum>
</value>
</values>
<host href="/ovirt-engine/api/hosts/123" id="123"/>
502
CHAPTER 6. TYPES
</statistic>
...
</statistics>
Note
Name Description
503
Red Hat Virtualization 4.0 REST API Guide
Name Description
capability String
iommu_group Integer
physical_fun HostDevice
ction
504
CHAPTER 6. TYPES
placeholder Boolean
product Product
vendor Vendor
virtual_func Integer
tions
host Host
parent_devic HostDevice
e
vm Vm
enabled Boolean
For example, the XML representation of a host NIC looks like this:
505
Red Hat Virtualization 4.0 REST API Guide
A bonded interface is represented as a HostNic object containing the bonding and slaves
attributes.
For example, the XML representation of a bonded host NIC looks like this:
506
CHAPTER 6. TYPES
<mtu>1500</mtu>
<bridged>true</bridged>
<custom_configuration>false</custom_configuration>
</host_nic>
check_connec Boolean
tivity
custom_confi Boolean
guration
507
Red Hat Virtualization 4.0 REST API Guide
override_con Boolean
figuration
properties Property[]
speed Integer
status NicStatus
virtual_func HostNicVirtualFun For a SR-IOV physical function NIC describes its virtual
tions_config ctionsConfiguratio functions configuration.
uration n
vlan Vlan
6.106.1. ad_aggregator_id
508
CHAPTER 6. TYPES
The ad_aggregator_id property of a bond or bond slave, for bonds in mode 4. Bond mode 4 is
the 802.3ad standard, also called dynamic link aggregation - WikipediaPresentation. This is only
valid for bonds in mode 4, or NICs (NIC - network interface card) which are part of a bond. It is not
present for bonds in other modes, or NICs which are not part in a bond in mode 4. The
ad_aggregator_id property indicates which of the bond slaves are active. The value of the
ad_aggregator_id of an active slave is the same the value of the ad_aggregator_id property
of the bond. This parameter is read only. Setting it will have no effect on the bond/NIC. It is retrieved
from /sys/class/net/bondX/bonding/ad_aggregator file for a bond, and the
/sys/class/net/ensX/bonding_slave/ad_aggregator_id file for a NIC.
6.106.2. bridged
Defines the bridged network status. Set to true for a bridged network and false for a bridgeless
network.
6.106.3. statistics
host Host
physical_fun HostNic For a SR-IOV virtual function NIC references to its physical
ction function NIC.
509
Red Hat Virtualization 4.0 REST API Guide
6.106.4. network
A reference to the network which the interface should be connected. A blank network id is allowed.
all_networks Boolean Defines whether all networks are allowed to be defined on the
_allowed related virtual functions or specified ones only.
6.107.1. max_number_of_virtual_functions
6.107.2. number_of_virtual_functions
Name Summary
510
CHAPTER 6. TYPES
Name Summary
Name Summary
connecting The engine cannot communicate with the host for a specific threshold so it is now
trying to connect before going through fencing.
kdumping The host kernel has crashed and it is now going through memory dumping.
511
Red Hat Virtualization 4.0 REST API Guide
Name Summary
6.109.1. error
The host is in error status. This will happen if we will try to run a virtual machine several times and it
will fail.
6.109.2. initializing
The host is initializing. This is an intermediate step before moving the host to 'up' status.
6.109.3. install_failed
The host installation failed. In such cases look at the event log to understand what failed the
installation, and issue a re-install.
6.109.4. installing_os
The host operating system is now installing. This status is relevant when using a Satellite/Foreman
provider, and issuing a bare-metal provisioning (discovered host provisioning).
6.109.5. maintenance
The host is in maintenance status. When a host is in maintenance it cannot run virtual machines.
6.109.6. non_operational
512
CHAPTER 6. TYPES
The host is non operational. This can happen due to various reasons, such as not having a
connection with the storage, not supporting a mandatory network, not supporting the cluster level,
and more.
6.109.7. non_responsive
The host is not responsive. This means that the engine is not able to communicate with the host.
6.109.8. pending_approval
The host is pending administrator approval. This is relevant only for vintage ovirt-node / RHV-H.
6.109.9. preparing_for_maintenance
The host is preparing for maintenance. During this time the engine makes sure to live migrate all the
virtual machines from this host to other hosts. Once all migrations have been completed the host will
move to 'maintenance' status.
address String
logical_unit LogicalUnit[]
s
mount_option String
s
513
Red Hat Virtualization 4.0 REST API Guide
nfs_timeo Integer The time in tenths of a second to wait for a response before
retrying NFS requests.
nfs_version NfsVersion
override_lun Boolean
s
password String
path String
port Integer
portal String
target String
type StorageType
username String
vfs_type String
volume_group VolumeGroup
6.110.1. nfs_retrans
514
CHAPTER 6. TYPES
The number of times to retry a request before attempting further recovery actions. The value must
be in the range of 0 to 65535. For more details see the description of the retrans mount option in
the nfs man page.
6.110.2. nfs_timeo
The time in tenths of a second to wait for a response before retrying NFS requests. The value must
be in the range of 0 to 65535. For more details see the description of the timeo mount option in the
nfs man page.
host Host
This enumerated type is used to what type of operating system is used by the host.
Name Summary
ovirt_node The host is NGN (Next Generation Node) - a new implementation of RHEV_H which
is like RHEL, CentOS or Fedora installation.
rhev_h The host contains a small scaled version of RHEL, CentOS or Fedora, used solely
to host virtual machines.
6.111.1. ovirt_node
The host is NGN (Next Generation Node) - a new implementation of RHEV_H which is like RHEL,
CentOS or Fedora installation. The main difference between NGN and legacy RHEV-H is that NGN
has a writeable file system and will handle its installation instead of pushing RPMs to it by the
engine in legacy RHEV-H.
515
Red Hat Virtualization 4.0 REST API Guide
active Boolean
configured Boolean
global_maint Boolean
enance
local_mainte Boolean
nance
score Integer
516
CHAPTER 6. TYPES
6.113.1. media_type
One of:
image/jpeg
image/png
image/gif
517
Red Hat Virtualization 4.0 REST API Guide
storage_doma StorageDomain
in
518
CHAPTER 6. TYPES
proxy_url String The URL of the proxy server that the user inputs or outputs to.
6.116.1. phase
The current phase of the image transfer in progress. Each transfer needs a managed session, which
must be opened for the user to input or output an image. Please refer to image transfer for further
documentation.
6.116.2. proxy_url
The URL of the proxy server that the user inputs or outputs to. This attribute is available only if the
image transfer entity is in the transferring phase. See phase for details.
host Host The host which will be used to write to the image which is
targeted for input or output.
Name Summary
cancelled This phase will be set as a result of the user cancelling the transfer.
519
Red Hat Virtualization 4.0 REST API Guide
Name Summary
finalizing_f This phase can only be set in the Administration Portal, and indicates that there was
ailure an error during the transfer, and it is being finalized with a failure.
finalizing_s This phase will be set when the user calls finalize.
uccess
finished_fai Indicates that the targeted image failed the verification, and cannot be used.
lure
finished_suc Indicates that the transfer session was successfully closed, and the targeted image
cess was verified and ready to be used.
paused_syste This phase means the session timed out, or some other error occurred with this
m transfer; for example ovirt-imageio-daemon is not running in the selected host.
paused_user This phase is a result of a pause call by the user, using pause.
resuming The phase where the transfer has been resumed by the client calling resume.
transferring The phase where the transfer session is open, and the client can input or output the
desired image using the preferred tools.
6.117.1. cancelled
This phase will be set as a result of the user cancelling the transfer. The cancellation can only be
performed in the Administration Portal.
6.117.2. finalizing_success
520
CHAPTER 6. TYPES
This phase will be set when the user calls finalize. Calling finalize is essential to finish the transfer
session, and finish using the targeted image. After finalizing, the phase will be changed to
finished_success or finished_failure.
6.117.3. finished_failure
Indicates that the targeted image failed the verification, and cannot be used. After reaching this
phase, the image transfer entity will be deleted, and the targeted image will be set to illegal.
6.117.4. finished_success
Indicates that the transfer session was successfully closed, and the targeted image was verified and
ready to be used. After reaching this phase, the image transfer entity will be deleted.
6.117.5. initializing
The initial phase of an image transfer. It is set while the transfer session is establishing. Once the
session is established, the phase will be changed to transferring
6.117.6. paused_system
This phase means the session timed out, or some other error occurred with this transfer; for
example ovirt-imageio-daemon is not running in the selected host. To resume the session, the client
should call resume. After resuming, the phase will change to resuming.
6.117.7. resuming
The phase where the transfer has been resumed by the client calling resume. Resuming starts a
new session, and after calling it, the phase will be changed to transferring, or paused_system
in case of a failure.
6.117.8. unknown
Name Summary
521
Red Hat Virtualization 4.0 REST API Guide
Name Summary
active_direc String
tory_ou
authorized_s String
sh_keys
cloud_init CloudInit
configuratio Configuration
n
custom_scrip String
t
dns_search String
dns_servers String
domain String
host_name String
522
CHAPTER 6. TYPES
input_locale String
nic_configur NicConfiguration[]
ations
org_name String
regenerate_i Boolean
ds
regenerate_s Boolean
sh_keys
root_passwor String
d
system_local String
e
timezone String
ui_language String
user_locale String
user_name String
windows_lice String
nse_key
523
Red Hat Virtualization 4.0 REST API Guide
For example medium instance type includes 1 virtual CPU and 4 GiB of memory. It is a top-level
entity (e.g. not bound to any data center or cluster). The attributes that are used for instance types
and are common to virtual machine and template types are:
console
cpu
custom_cpu_model
custom_emulated_machine
display
high_availability
io
memory
memory_policy
migration
migration_downtime
os
rng_device
soundcard_enabled
usb
virtio_scsi
When creating a virtual machine from both an instance type and a template, the virtual machine will
inherit the hardware configurations from the instance type
Note
An instance type inherits it’s attributes from the template entity although most template
attributes are not used in instance types.
524
CHAPTER 6. TYPES
cpu_shares Integer
custom_cpu_m String
odel
custom_emula String
ted_machine
525
Red Hat Virtualization 4.0 REST API Guide
migration_do Integer Maximum time the virtual machine can be non responsive
wntime during its live migration to another host in ms.
526
CHAPTER 6. TYPES
soundcard_en Boolean If true, the sound card is added to the virtual machine.
abled
start_paused Boolean If true, the virtual machine will be initially in 'paused' state
after start.
stateless Boolean If true, the virtual machine is stateless - it’s state (disks) are
rolled-back after shutdown.
tunnel_migra Boolean If true, the network data transfer will be encrypted during
tion virtual machine live migration.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
527
Red Hat Virtualization 4.0 REST API Guide
6.120.1. cpu
The socket configuration can be updated without rebooting the virtual machine. The cores and the
threads require a reboot.
For example, to change the number of sockets to 4 immediately, and the number of cores and
threads to 2 after reboot, send the following request:
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
6.120.2. custom_compatibility_version
The compatibility version of a virtual machine is limited by the data center the virtual machine
resides in, and is checked against capabilities of the host the virtual machine is planned to run on.
6.120.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
6.120.4. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
6.120.5. memory
528
CHAPTER 6. TYPES
For example, to update a virtual machine to contain 1 Gibibyte (GiB) of memory, send the following
request:
PUT /ovirt-engine/api/vms/123
<vm>
<memory>1073741824</memory>
</vm>
Note
Note
Memory hot plug is supported from Red Hat Virtualization 3.6 onwards. You can use the
example above to increase memory while the virtual machine is running.
6.120.6. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in
ms.
6.120.7. origin
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
529
Red Hat Virtualization 4.0 REST API Guide
physical_machine
hyperv
6.120.8. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating
system.
6.120.9. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
quota Quota Reference to quota configuration set for this virtual machine.
storage_doma StorageDomain Reference to storage domain the virtual machine belongs to.
in
530
CHAPTER 6. TYPES
6.121. IO STRUCT
threads Integer
6.122. IP STRUCT
Represents the IP configuration of a network interface.
6.122.1. address
531
Red Hat Virtualization 4.0 REST API Guide
<ip>
<address>192.168.0.1</address>
...
</ip>
<ip>
<address>2620:52:0:20f0:4216:7eff:feaa:1b50</address>
...
</ip>
6.122.2. version
Note
From version 4.1 of the Manager this attribute will be optional, and when a value is not
provided, it will be inferred from the value of the address attribute.
assignment_m BootProtocol
ethod
ip Ip
Name Summary
v4 IPv4.
532
CHAPTER 6. TYPES
Name Summary
v6 IPv6.
data_center DataCenter
networks Network[]
storage_conn StorageConnectio
ections n[]
533
Red Hat Virtualization 4.0 REST API Guide
address String
disk_id String
initiator String
lun_mapping Integer
password String
paths Integer
port Integer
portal String
product_id String
serial String
size Integer
status String
storage_doma String
in_id
target String
username String
534
CHAPTER 6. TYPES
vendor_id String
volume_group String
_id
535
Red Hat Virtualization 4.0 REST API Guide
6.127.1. external
Indicates if the job is originated by an external system. External jobs are managed externally, by the
creator of the job.
Name Summary
6.128.1. aborted
536
CHAPTER 6. TYPES
The aborted job status. This status is applicable for an external job that was forcibly aborted.
6.128.2. finished
The finished job status. This status describes a completed job execution.
6.128.3. started
The started job status. This status represents a job which is currently being executed.
6.128.4. unknown
The unknown job status. This status represents jobs which their resolution is not known, i.e. jobs
that were executed before the system was unexpectedly restarted.
issued Date The date when the Katello erratum was issued.
packages Package[] The list of packages which solve the issue reported by the
Katello erratum.
solution String The solution for the issue described by the Katello erratum.
537
Red Hat Virtualization 4.0 REST API Guide
6.129.1. severity
6.129.2. type
host Host Reference to the host that the Katello erratum is assigned to.
Name Summary
disabled
enabled
538
CHAPTER 6. TYPES
Name Summary
unknown
version Version
enabled Boolean
merge_across Boolean
_nodes
Name Summary
539
Red Hat Virtualization 4.0 REST API Guide
Name Summary
6.133.1. alert
6.133.2. error
Error severity. Used to specify that there is an error that needs to be examined.
6.133.3. normal
6.133.4. warning
address String
disk_id String
id String
lun_mapping Integer
password String
540
CHAPTER 6. TYPES
paths Integer
port Integer
portal String
product_id String
serial String
size Integer
status LunStatus
storage_doma String
in_id
target String
username String
vendor_id String
volume_group String
_id
541
Red Hat Virtualization 4.0 REST API Guide
Name Summary
free
unusable
used
address String
542
CHAPTER 6. TYPES
ranges Range[] Defines the range of MAC addresses for the pool.
6.137.1. allow_duplicates
Defines whether duplicate MAC addresses are permitted in the pool. If not specified, defaults to
false.
6.137.2. default_pool
Defines whether this is the default pool. If not specified, defaults to false.
6.137.3. ranges
Defines the range of MAC addresses for the pool. Multiple ranges can be defined.
percent Integer
543
Red Hat Virtualization 4.0 REST API Guide
ballooning Boolean
guaranteed Integer
over_commit MemoryOverCom
mit
transparent_ TransparentHuge
huge_pages Pages
Name Summary
qpid
rabbit_mq
id SsoMethod
544
CHAPTER 6. TYPES
Name Summary
do_not_migra
te
migrate
migrate_high
ly_available
6.143.1. custom_value
Custom bandwidth in Mbps. Will be applied only if the assignmentMethod attribute is custom.
545
Red Hat Virtualization 4.0 REST API Guide
Name Summary
6.144.1. auto
Takes the bandwidth from QoS if QoS defined. If not, taken from detected link speed being used. If
nothing detected, falls back to hypervisor_default value.
auto_converg InheritableBoolea
e n
compressed InheritableBoolea
n
546
CHAPTER 6. TYPES
A policy describing how the migration is going to be treated (convergence, how many parallel
migrations allowed).
{
"network" : [ {
"data_center" : {
"href" : "/ovirt-engine/api/datacenters/123",
"id" : "123"
},
"stp" : "false",
"mtu" : "0",
"usages" : {
"usage" : [ "vm" ]
},
"name" : "ovirtmgmt",
"description" : "Management Network",
"href" : "/ovirt-engine/api/networks/456",
"id" : "456",
"link" : [ {
"href" : "/ovirt-engine/api/networks/456/permissions",
"rel" : "permissions"
}, {
"href" : "/ovirt-engine/api/networks/456/vnicprofiles",
"rel" : "vnicprofiles"
}, {
"href" : "/ovirt-engine/api/networks/456/labels",
547
Red Hat Virtualization 4.0 REST API Guide
"rel" : "labels"
} ]
} ]
}
display Boolean
ip Ip
mtu Integer Specifies the maximum transmission unit for the network.
548
CHAPTER 6. TYPES
profile_requ Boolean
ired
required Boolean
status NetworkStatus
stp Boolean Specifies whether spanning tree protocol is enabled for the
network.
vlan Vlan
6.147.1. usages
Users can, for example, specify that the network is to be used for virtual machine traffic and also for
display traffic with the vm and display values.
cluster Cluster
549
Red Hat Virtualization 4.0 REST API Guide
qos Qos
<network_attachment href="/ovirt-
engine/api/hosts/123/nics/456/networkattachments/789" id="789">
<network href="/ovirt-engine/api/networks/234" id="234"/>
<host_nic href="/ovirt-engine/api/hosts/123/nics/123" id="123"/>
<in_sync>true</in_sync>
<ip_address_assignments>
<ip_address_assignment>
<assignment_method>static</assignment_method>
<ip>
<address>192.168.122.39</address>
<gateway>192.168.122.1</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
</ip_address_assignment>
</ip_address_assignments>
<reported_configurations>
<reported_configuration>
<name>mtu</name>
<expected_value>1500</expected_value>
<actual_value>1500</actual_value>
<in_sync>true</in_sync>
</reported_configuration>
<reported_configuration>
<name>bridged</name>
<expected_value>true</expected_value>
<actual_value>true</actual_value>
<in_sync>true</in_sync>
</reported_configuration>
...
</reported_configurations>
</network_attachment>
When attaching a network to a network interface card, the network element is required, with either
an id or a name.
For example, to attach a network to a host network interface card, send a request like this:
550
CHAPTER 6. TYPES
POST /ovirt-engine/api/hosts/123/nics/456/networkattachments
<networkattachment>
<network id="234"/>
</networkattachment>
POST /ovirt-engine/api/hosts/123/networkattachments
<network_attachment>
<network id="234"/>
<host_nic id="456"/>
</network_attachment>
PUT /ovirt-engine/api/hosts/123/nics/456/networkattachments/789
<network_attachment>
<ip_address_assignments>
<ip_address_assignment>
<assignment_method>static</assignment_method>
<ip>
<address>7.1.1.1</address>
<gateway>7.1.1.2</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
</ip_address_assignment>
</ip_address_assignments>
</network_attachment>
To detach a network from the network interface card send a request like this:
DELETE /ovirt-engine/api/hosts/123/nics/456/networkattachments/789
Important
<network_attachment>
551
Red Hat Virtualization 4.0 REST API Guide
<properties>
<property>
<name>bridge_opts</name>
<value>
forward_delay=1500 group_fwd_mask=0x0 multicast_snooping=1
</value>
</property>
</properties>
...
</network_attachment>
in_sync Boolean
6.148.1. properties
Bridge options have the set name of bridge_opts. Separate multiple entries with a whitespace
character. The following keys are valid for bridge_opts:
552
CHAPTER 6. TYPES
forward_delay 1500
gc_timer 3765
group_addr 1:80:c2:0:0:0
group_fwd_mask 0x0
hash_elasticity 4
hash_max 512
hello_time 200
hello_timer 70
max_age 2000
multicast_last_member_count 2
multicast_last_member_interval 100
multicast_membership_interval 26000
multicast_querier 0
multicast_querier_interval 25500
multicast_query_interval 13000
553
Red Hat Virtualization 4.0 REST API Guide
multicast_query_response_interval 1000
multicast_query_use_ifaddr 0
multicast_router 1
multicast_snooping 1
multicast_startup_query_count 2
multicast_startup_query_interval 3125
host Host
qos Qos
554
CHAPTER 6. TYPES
dns Dns
nics Nic[]
There are several types of network filters supported based on libvirt. More details about the different
network filters can be found here.
In addition to libvirt’s network filters, there are two additional network filters: The first called vdsm-
no-mac-spoofing, composed of no-mac-spoofing and no-arp-mac-spoofing. The second called
ovirt-no-filter is used when no network filter is to be defined for the VM’s nic. ovirt-no-
filter network filter is only used for internal implementation, and doesn’t exist on the nics.
<network_filter id="00000019-0019-0019-0019-00000000026c">
<name>example-filter</name>
<version>
<major>4</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
555
Red Hat Virtualization 4.0 REST API Guide
host_nic HostNic
network Network
556
CHAPTER 6. TYPES
Name Summary
open_vswitch
Name Summary
non_operatio
nal
operational
Name Summary
display
management
migration
vm
557
Red Hat Virtualization 4.0 REST API Guide
nfs_server_i String
p
profile_deta ProfileDetail[]
ils
Name Summary
auto
v3
v4
v4_1
For example, the XML representation of a NIC will look like this:
558
CHAPTER 6. TYPES
boot_protoco BootProtocol
l
on_boot Boolean
559
Red Hat Virtualization 4.0 REST API Guide
network_atta NetworkAttachme
chments nt[]
network_labe NetworkLabel[]
ls
reported_dev ReportedDevice[]
ices
virtual_func NetworkLabel[]
tion_allowed
_labels
virtual_func Network[]
tion_allowed
_networks
vms Vm[] References to the virtual machines that are using this device.
vnic_profile VnicProfile
6.157.1. network
A reference to the network which the interface should be connected to. A blank network id is
allowed.
Usage of this element for creating or updating a NIC is deprecated, use vnic_profile instead. It
is preserved because it is still in use by the initialization element, as a holder for IP
addresses and other network details.
560
CHAPTER 6. TYPES
6.157.2. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
boot_protoco BootProtocol
l
ip Ip
name String
on_boot Boolean
Name Summary
e1000
pci_passthro
ugh
rtl8139
rtl8139_virt
io
561
Red Hat Virtualization 4.0 REST API Guide
Name Summary
spapr_vlan
virtio
Name Summary
down
up
<host_numa_node href="/ovirt-
engine/api/hosts/0923f1ea/numanodes/007cf1ab" id="007cf1ab">
<cpu>
<cores>
<core>
<index>0</index>
</core>
</cores>
</cpu>
<index>0</index>
<memory>65536</memory>
<node_distance>40 20 40 10</node_distance>
<host href="/ovirt-engine/api/hosts/0923f1ea" id="0923f1ea"/>
</host_numa_node>
562
CHAPTER 6. TYPES
cpu Cpu
index Integer
node_distanc String
e
host Host
statistics Statistic[]
563
Red Hat Virtualization 4.0 REST API Guide
index Integer Index of a physical NUMA node to which the virtual NUMA
node is pinned.
Name Summary
interleave
preferred
strict
564
CHAPTER 6. TYPES
openstack_im OpenStackImage
age_provider Provider
password String Defines password for the user during the authentication
process.
565
Red Hat Virtualization 4.0 REST API Guide
tenant_name String
6.165.1. requires_authentication
If authentication is required, both username and password attributes will be used during
authentication.
certificates Certificate[]
images OpenStackImage[
]
566
CHAPTER 6. TYPES
openstack_ne OpenStackNetwor
twork_provid kProvider
er
567
Red Hat Virtualization 4.0 REST API Guide
password String Defines password for the user during the authentication
process.
tenant_name String
6.167.1. read_only
A read-only provider does not allow adding, modifying or deleting of networks or subnets. Port-
related operations are allowed, as they are required for the provisioning of virtual NICs.
6.167.2. requires_authentication
If authentication is required, both username and password attributes will be used during
authentication.
568
CHAPTER 6. TYPES
Name Summary
external Indicates that the provider is an external one, implementing the OpenStack Neutron
API.
6.168.1. external
Indicates that the provider is an external one, implementing the OpenStack Neutron API. The virtual
interface driver in this case is implemented by the external provider.
6.168.2. neutron
Indicates that the provider is OpenStack Neutron. The standard OpenStack Neutron agent will be
used as the virtual interface driver.
569
Red Hat Virtualization 4.0 REST API Guide
password String Defines password for the user during the authentication
process.
tenant_name String
6.169.1. requires_authentication
If authentication is required, both username and password attributes will be used during
authentication.
570
CHAPTER 6. TYPES
6.170.1. ip_version
Defines IP version.
571
Red Hat Virtualization 4.0 REST API Guide
password String Defines password for the user during the authentication
process.
tenant_name String
6.171.1. requires_authentication
If authentication is required, both username and password attributes will be used during
authentication.
572
CHAPTER 6. TYPES
authenticati OpenstackVolum
on_keys eAuthenticationKe
y[]
certificates Certificate[]
data_center DataCenter
volume_types OpenStackVolum
eType[]
properties Property[]
573
Red Hat Virtualization 4.0 REST API Guide
openstack_vo OpenStackVolum
lume_provide eProvider
r
creation_dat Date
e
usage_type OpenstackVolum
eAuthenticationKe
yUsageType
uuid String
value String
574
CHAPTER 6. TYPES
openstack_vo OpenStackVolum
lume_provide eProvider
r
6.174. OPENSTACKVOLUMEAUTHENTICATIONKEYUSAGETYPE
ENUM
Name Summary
ceph
boot Boot
cmdline String
initrd String
kernel String
575
Red Hat Virtualization 4.0 REST API Guide
type String
version Version
6.175.1. custom_kernel_cmdline
A custom part of the host kernel command line. This will be merged with the existing kernel
command line.
You must re-install and then reboot the host to apply the changes implemented by this attribute.
Parameters merging: During each host deploy procedure, kernel parameters that were added in the
previous host deploy procedure are removed using grubby --update-kernel DEFAULT --
remove-args <previous_custom_params> and the current kernel command line customization
is applied using grubby --update-kernel DEFAULT --args <custom_params>. The
Engine internally keeps track of the last applied kernel parameters customization.
Note
6.175.2. reported_kernel_cmdline
Note
576
CHAPTER 6. TYPES
large_icon Icon
small_icon Icon
name String
type String
value String
Name Summary
other
577
Red Hat Virtualization 4.0 REST API Guide
Name Summary
other_linux
rhel_3
rhel_3x64
rhel_4
rhel_4x64
rhel_5
rhel_5x64
rhel_6
rhel_6x64
unassigned
windows_2003
windows_2003
x64
windows_2008
windows_2008
r2x64
578
CHAPTER 6. TYPES
Name Summary
windows_2008
x64
windows_2012
x64
windows_7
windows_7x64
windows_8
windows_8x64
windows_xp
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
579
Red Hat Virtualization 4.0 REST API Guide
files File[]
type VmDeviceType
volume_id String
Name Summary
base64
plaintext
580
CHAPTER 6. TYPES
cluster Cluster
data_center DataCenter
disk Disk
group Group
host Host
role Role
storage_doma StorageDomain
in
template Template
user User
vm Vm
vm_pool VmPool
581
Red Hat Virtualization 4.0 REST API Guide
type PmProxyType
Name Summary
cluster Fence proxy is selected from the same cluster as fenced host.
582
CHAPTER 6. TYPES
Name Summary
dc Fence proxy is selected from the same data center as fenced host.
other_dc Fence proxy is selected from a different data center than fenced host.
Name Summary
filter
load_balanci
ng
weight
agents Agent[] Specifies fence agent options when multiple fences are used.
automatic_pm Boolean Toggles the automated power control of the host in order to
_enabled save energy.
583
Red Hat Virtualization 4.0 REST API Guide
options Option[] Fencing options for the selected type= specified with the
option name="" and value="" strings.
6.188.1. agents
Use the order sub-element to prioritize the fence agents. Agents are run sequentially according to
their order until the fence action succeeds. When two or more fence agents have the same order,
they are run concurrently. Other sub-elements include type, ip, user, password, and options.
6.188.2. automatic_pm_enabled
Toggles the automated power control of the host in order to save energy. When set to true, the host
will be automatically powered down if the cluster’s load is low, and powered on again when required.
This is set to true when a host is created, unless disabled by the user.
6.188.3. kdump_detection
Toggles whether to determine if kdump is running on the host before it is shut down. When set to
true, the host will not shut down during a kdump process. This is set to true when a host has
power management enabled, unless disabled by the user.
584
CHAPTER 6. TYPES
6.188.4. type
A list of valid fencing device codes are available in the capabilities collection.
Name Summary
on Host is ON.
585
Red Hat Virtualization 4.0 REST API Guide
The entry point contains a product_info element to help an API user determine the legitimacy of
the Red Hat Virtualization environment. This includes the name of the product, the vendor and the
version.
<api>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.1.0_master</full_version>
<major>4</major>
<minor>1</minor>
<revision>0</revision>
</version>
</product_info>
...
</api>
name String The name of the product, for example oVirt Engine.
6.191.1. vendor
586
CHAPTER 6. TYPES
block_statis BlockStatistic[]
tics
duration Integer
fop_statisti FopStatistic[]
cs
profile_type String
statistics Statistic[]
name String
value String
value String
587
Red Hat Virtualization 4.0 REST API Guide
For resources with computing capabilities the type is cpu, the attribute cpu_limit is relevant.
For virtual machines networks the type is network, the attributes inbound_average,
inbound_peak, inbound_burst, outbound_average, outbound_peak and
outbound_burst are relevant.
inbound_burs Integer The amount of data that can be delivered in a single burst in
t MiB.
max_iops Integer Maximum permitted number of input and output operations per
second.
588
CHAPTER 6. TYPES
outbound_bur Integer The amount of data that can be sent in a single burst in MiB.
st
589
Red Hat Virtualization 4.0 REST API Guide
6.195.1. cpu_limit
6.195.2. inbound_average
Used to configure virtual machines networks. If defined, inbound_peak and inbound_burst also
has to be set.
6.195.3. inbound_burst
6.195.4. inbound_peak
6.195.5. max_iops
6.195.6. max_read_iops
6.195.7. max_read_throughput
590
CHAPTER 6. TYPES
6.195.8. max_throughput
6.195.9. max_write_iops
6.195.10. max_write_throughput
6.195.11. outbound_average
6.195.12. outbound_average_linkshare
Weighted share.
Used to configure host networks. Signifies how much of the logical link’s capacity a specific network
should be allocated, relative to the other networks attached to the same logical link. The exact share
depends on the sum of shares of all networks on that link. By default this is a number in the range 1-
100.
6.195.13. outbound_average_realtime
Used to configure host networks. The minimum bandwidth required by a network. The committed
rate requested is not guaranteed and will vary depending on the network infrastructure and the
committed rate requested by other networks on the same logical link.
6.195.14. outbound_average_upperlimit
591
Red Hat Virtualization 4.0 REST API Guide
6.195.15. outbound_burst
6.195.16. outbound_peak
This type represents the kind of resource the Quality of service (QoS) can be assigned to.
Name Summary
cpu The Quality of service (QoS) can be assigned to resources with computing
capabilities.
network The Quality of service (QoS) can be assigned to virtual machines networks.
592
CHAPTER 6. TYPES
Name Summary
<quota href="/ovirt-engine/api/datacenters/7044934e/quotas/dcad5ddc"
id="dcad5ddc">
<name>My Quota</name>
<description>A quota for my oVirt environment</description>
<cluster_hard_limit_pct>0</cluster_hard_limit_pct>
<cluster_soft_limit_pct>0</cluster_soft_limit_pct>
<data_center href="/ovirt-engine/api/datacenters/7044934e"
id="7044934e"/>
<storage_hard_limit_pct>0</storage_hard_limit_pct>
<storage_soft_limit_pct>0</storage_soft_limit_pct>
</quota>
cluster_hard Integer
_limit_pct
cluster_soft Integer
_limit_pct
data_center DataCenter
disks Disk[]
593
Red Hat Virtualization 4.0 REST API Guide
storage_hard Integer
_limit_pct
storage_soft Integer
_limit_pct
users User[]
vms Vm[]
permissions Permission[]
quota_cluste QuotaClusterLimit
r_limits []
quota_storag QuotaStorageLimi
e_limits t[]
594
CHAPTER 6. TYPES
memory_limit Decimal
memory_usage Decimal
vcpu_limit Integer
vcpu_usage Integer
cluster Cluster
quota Quota
Name Summary
audit
595
Red Hat Virtualization 4.0 REST API Guide
Name Summary
disabled
enabled
limit Integer
usage Decimal
quota Quota
storage_doma StorageDomain
in
596
CHAPTER 6. TYPES
from String
to String
actual_value String
expected_val String
ue
597
Red Hat Virtualization 4.0 REST API Guide
name String
ips Ip[]
mac Mac
type ReportedDeviceT
ype
vm Vm
598
CHAPTER 6. TYPES
Name Summary
network
Name Summary
add
copy
Name Summary
599
Red Hat Virtualization 4.0 REST API Guide
Name Summary
hwrng Obtains random data from the /dev/hwrng (usually specialized HW generator)
device.
6.209.1. mutable
600
CHAPTER 6. TYPES
user User
Name Summary
default_poli Boolean
cy
locked Boolean
601
Red Hat Virtualization 4.0 REST API Guide
properties Property[]
balances Balance[]
filters Filter[]
weight Weight[]
enabled Boolean
internal Boolean
602
CHAPTER 6. TYPES
properties Property[]
type PolicyUnitType
Name Summary
filtered
unfiltered
mode SeLinuxMode
Name Summary
disabled
enforcing
603
Red Hat Virtualization 4.0 REST API Guide
Name Summary
permissive
policy SerialNumberPoli
cy
value String
Name Summary
custom
host
vm
604
CHAPTER 6. TYPES
6.218.1. console_user
The value will be true for console users: SPICE or VNC, false for others: e.g. RDP, SSH.
6.218.2. ip
6.218.3. protocol
Currently not used, intended for info about how is user connected: SPICE, VNC, SSH, RDP.
605
Red Hat Virtualization 4.0 REST API Guide
6.218.4. user
If user is a console user, it is a link to real oVirt user. Otherwise only username is provided.
enabled Boolean If enabled, we will not fence a host in case more than a
configurable percentage of hosts in the cluster lost
connectivity as well.
6.219.1. enabled
If enabled, we will not fence a host in case more than a configurable percentage of hosts in the
cluster lost connectivity as well. This comes to prevent fencing storm in cases where there is a
global networking issue in the cluster.
6.219.2. threshold
Threshold for connectivity testing. If at least the threshold percentage of hosts in the cluster lost
connectivity then fencing will not take place.
606
CHAPTER 6. TYPES
enabled Boolean If enabled, we will skip fencing in case the host maintains its
lease in the storage.
6.220.1. enabled
If enabled, we will skip fencing in case the host maintains its lease in the storage. It means that if the
host still has storage access then it won’t get fenced.
cpu_shares Integer
607
Red Hat Virtualization 4.0 REST API Guide
custom_cpu_m String
odel
custom_emula String
ted_machine
date Date
608
CHAPTER 6. TYPES
guest_time_z TimeZone What time zone is used by the virtual machine (as returned by
one guest agent).
migration_do Integer Maximum time the virtual machine can be non responsive
wntime during its live migration to another host in ms.
next_run_con Boolean Virtual machine configuration has been changed and requires
figuration_e restart of the virtual machine.
xists
609
Red Hat Virtualization 4.0 REST API Guide
payloads Payload[] Optional payloads of the virtual machine, used for ISOs to
configure it.
persist_memo Boolean
rystate
run_once Boolean If true, the virtual machine has been started using the run
once command, meaning it’s configuration might differ from
the stored one for the purpose of this single run.
snapshot_sta SnapshotStatus
tus
snapshot_typ SnapshotType
e
610
CHAPTER 6. TYPES
soundcard_en Boolean If true, the sound card is added to the virtual machine.
abled
start_paused Boolean If true, the virtual machine will be initially in 'paused' state
after start.
start_time Date The date in which the virtual machine was started.
stateless Boolean If true, the virtual machine is stateless - it’s state (disks) are
rolled-back after shutdown.
stop_time Date The date in which the virtual machine was stopped.
tunnel_migra Boolean If true, the network data transfer will be encrypted during
tion virtual machine live migration.
611
Red Hat Virtualization 4.0 REST API Guide
usb Usb Configuration of USB devices for this virtual machine (count,
type).
6.221.1. cpu
The socket configuration can be updated without rebooting the virtual machine. The cores and the
threads require a reboot.
For example, to change the number of sockets to 4 immediately, and the number of cores and
threads to 2 after reboot, send the following request:
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
6.221.2. custom_compatibility_version
The compatibility version of a virtual machine is limited by the data center the virtual machine
resides in, and is checked against capabilities of the host the virtual machine is planned to run on.
6.221.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
612
CHAPTER 6. TYPES
6.221.4. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
6.221.5. memory
For example, to update a virtual machine to contain 1 Gibibyte (GiB) of memory, send the following
request:
PUT /ovirt-engine/api/vms/123
<vm>
<memory>1073741824</memory>
</vm>
Note
Note
Memory hot plug is supported from Red Hat Virtualization 3.6 onwards. You can use the
example above to increase memory while the virtual machine is running.
6.221.6. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in
ms.
6.221.7. next_run_configuration_exists
Virtual machine configuration has been changed and requires restart of the virtual machine.
Changed configuration is applied at processing the virtual machine’s shut down.
6.221.8. origin
Possible values:
613
Red Hat Virtualization 4.0 REST API Guide
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
6.221.9. placement_policy
This configuration can be updated to pin a virtual machine to one or more hosts.
Note
Virtual machines that are pinned to multiple hosts cannot be live migrated, but in the event
of a host failure, any virtual machine configured to be highly available is automatically
restarted on one of the other hosts to which the virtual machine is pinned.
For example, to pin a virtual machine to two hosts, send the following request:
PUT /api/vms/123
<vm>
<high_availability>
<enabled>true</enabled>
<priority>1</priority>
</high_availability>
<placement_policy>
<hosts>
<host>
<name>Host1</name>
</host>
<host>
<name>Host2</name>
</host>
</hosts>
<affinity>pinned</affinity>
</placement_policy>
</vm>
614
CHAPTER 6. TYPES
6.221.10. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating
system.
6.221.11. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
6.221.12. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
external_hos ExternalHostProvi
t_provider der
615
Red Hat Virtualization 4.0 REST API Guide
graphics_con GraphicsConsole[ List of graphics consoles configured for this virtual machine.
soles ]
host Host Reference to the host the virtual machine is running on.
katello_erra KatelloErratum[] Lists all the Katello errata assigned to the virtual machine.
ta
nics Nic[] References the list of network interface devices on the virtual
machine.
numa_nodes NumaNode[] Refers to the NUMA Nodes configuration used by this virtual
machine.
quota Quota Reference to quota configuration set for this virtual machine.
reported_dev ReportedDevice[]
ices
sessions Session[] List of user sessions opened for this virtual machine.
snapshots Snapshot[] Refers to all snapshots taken from the virtual machine.
616
CHAPTER 6. TYPES
storage_doma StorageDomain Reference to storage domain the virtual machine belongs to.
in
tags Tag[]
template Template Reference to the template the virtual machine is based on.
vm Vm
6.221.13. affinity_labels
6.221.14. katello_errata
GET /ovirt-engine/api/vms/123/katelloerrata
<katello_errata>
<katello_erratum href="/ovirt-engine/api/katelloerrata/456" id="456">
<name>RHBA-2013:XYZ</name>
<description>The description of the erratum</description>
<title>some bug fix update</title>
<type>bugfix</type>
<issued>2013-11-20T02:00:00.000+02:00</issued>
<solution>Few guidelines regarding the solution</solution>
<summary>Updated packages that fix one bug are now available for
XYZ</summary>
<packages>
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
617
Red Hat Virtualization 4.0 REST API Guide
</packages>
</katello_erratum>
...
</katello_errata>
Name Summary
in_preview
locked
ok
Name Summary
active
preview
regular
stateless
618
CHAPTER 6. TYPES
priority Integer
status SpmStatus
Name Summary
contending
none
spm
619
Red Hat Virtualization 4.0 REST API Guide
authenticati SshAuthentication
on_method Method
fingerprint String
port Integer
user User
Name Summary
password
publickey
620
CHAPTER 6. TYPES
content String
user User
methods Method[]
Name Summary
guest_agent
621
Red Hat Virtualization 4.0 REST API Guide
Statistic contains the statistics values for various entities. The following object contain statistics:
Disk
Host
HostNic
NumaNode
Nic
Vm
GlusterBrick
Step
GlusterVolume
<statistics>
<statistic id="1234" href="/ovirt-
engine/api/hosts/1234/nics/1234/statistics/1234">
<name>data.current.rx</name>
<description>Receive data rate</description>
<values type="DECIMAL">
<value>
<datum>0</datum>
</value>
</values>
<type>GAUGE</type>
<unit>BYTES_PER_SECOND</unit>
<host_nic id="1234" href="/ovirt-engine/api/hosts/1234/nics/1234"/>
</statistic>
...
</statistics>
Note
622
CHAPTER 6. TYPES
type ValueType The data type for the statistical values that follow.
brick GlusterBrick
gluster_volu GlusterVolume
me
host Host
host_numa_no NumaNode
de
623
Red Hat Virtualization 4.0 REST API Guide
nic Nic
step Step
vm Vm
Name Summary
counter
gauge
Name Summary
bits_per_sec
ond
bytes
bytes_per_se
cond
count_per_se
cond
624
CHAPTER 6. TYPES
Name Summary
none
percent
seconds
625
Red Hat Virtualization 4.0 REST API Guide
6.235.1. external
Indicates if the step is originated by an external system. External steps are managed externally, by
the creator of the step.
job Job References the job which is the top of the current step
hierarchy.
parent_step Step References the parent step of the current step in the
hierarchy.
statistics Statistic[]
Name Summary
626
CHAPTER 6. TYPES
Name Summary
6.236.1. executing
The executing step type. Used to track the main execution block of the job. Usually it will be a parent
step of several sub-steps which describe portions of the execution step.
6.236.2. finalizing
The finalizing step type. Describes the post-execution steps requires to complete the job.
6.236.3. rebalancing_volume
The rebalancing volume step type. Describes a step type which is part of Gluster flow.
6.236.4. removing_bricks
The removing bricks step type. Describes a step type which is part of Gluster flow.
6.236.5. unknown
The unknown step type. Describes a step type which its origin is unknown.
6.236.6. validating
The validation step type. Used to verify the correctness of parameters and the validity of the
parameters prior to the execution.
627
Red Hat Virtualization 4.0 REST API Guide
Name Summary
6.237.1. aborted
The aborted step status. This status is applicable for an external step that was forcibly aborted.
6.237.2. finished
The finished step status. This status describes a completed step execution.
6.237.3. started
The started step status. This status represents a step which is currently being executed.
6.237.4. unknown
The unknown step status. This status represents steps which their resolution is not known, i.e. steps
that were executed before the system was unexpectedly restarted.
Example:
<storage_connection id="123">
<address>mynfs.example.com</address>
<type>nfs</type>
<path>/exports/mydata</path>
</storage_connection>
628
CHAPTER 6. TYPES
address String
mount_option String
s
nfs_retrans Integer
nfs_timeo Integer
nfs_version NfsVersion
password String
path String
port Integer
portal String
target String
type StorageType
629
Red Hat Virtualization 4.0 REST API Guide
username String
vfs_type String
host Host
password String
target String
username String
630
CHAPTER 6. TYPES
host Host
available Integer
committed Integer
631
Red Hat Virtualization 4.0 REST API Guide
critical_spa Integer
ce_action_bl
ocker
external_sta ExternalStatus
tus
import Boolean
master Boolean
status StorageDomainSt
atus
storage HostStorage
storage_form StorageFormat
at
type StorageDomainTy
pe
used Integer
632
CHAPTER 6. TYPES
warning_low_ Integer
space_indica
tor
6.240.1. wipe_after_delete
Serves as the default value of wipe_after_delete for disks on this storage domain.
That is, newly created disks will get their wipe_after_delete value from their storage domains
by default. Note that the configuration value SANWipeAfterDelete serves as the default value of
block storage domains' wipe_after_delete value.
data_center DataCenter This is used to link to the data center that the storage domain
is attached to.
data_centers DataCenter[] This is a set of links to the data centers that the storage
domain is attached to.
disk_profile DiskProfile[]
s
disk_snapsho DiskSnapshot[]
ts
disks Disk[]
files File[]
633
Red Hat Virtualization 4.0 REST API Guide
images Image[]
permissions Permission[]
storage_conn StorageConnectio
ections n[]
templates Template[]
vms Vm[]
6.240.2. data_center
This is used to link to the data center that the storage domain is attached to. It is preserved for
backwards compatibility, as the storage domain may be attached to multiple data centers (if it is an
ISO domain). Use the dataCenters element instead.
Name Summary
activating
active
detaching
inactive
locked
634
CHAPTER 6. TYPES
Name Summary
maintenance
mixed
preparing_fo
r_maintenanc
e
unattached
unknown
Name Summary
data
export
image
iso
volume
635
Red Hat Virtualization 4.0 REST API Guide
Name Summary
v1
v2
v3
Name Summary
6.244.1. cinder
636
CHAPTER 6. TYPES
6.244.2. glance
6.244.3. glusterfs
Name Summary
637
Red Hat Virtualization 4.0 REST API Guide
group Group Reference to the group which has this tag assigned.
host Host Reference to the host which has this tag assigned.
template Template Reference to the template which has this tag assigned.
user User Reference to the user who has this tag assigned.
cpu_shares Integer
638
CHAPTER 6. TYPES
custom_cpu_m String
odel
custom_emula String
ted_machine
639
Red Hat Virtualization 4.0 REST API Guide
migration_do Integer Maximum time the virtual machine can be non responsive
wntime during its live migration to another host in ms.
soundcard_en Boolean If true, the sound card is added to the virtual machine.
abled
640
CHAPTER 6. TYPES
start_paused Boolean If true, the virtual machine will be initially in 'paused' state
after start.
stateless Boolean If true, the virtual machine is stateless - it’s state (disks) are
rolled-back after shutdown.
tunnel_migra Boolean If true, the network data transfer will be encrypted during
tion virtual machine live migration.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
6.247.1. cpu
The socket configuration can be updated without rebooting the virtual machine. The cores and the
threads require a reboot.
641
Red Hat Virtualization 4.0 REST API Guide
For example, to change the number of sockets to 4 immediately, and the number of cores and
threads to 2 after reboot, send the following request:
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
6.247.2. custom_compatibility_version
The compatibility version of a virtual machine is limited by the data center the virtual machine
resides in, and is checked against capabilities of the host the virtual machine is planned to run on.
6.247.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
6.247.4. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
6.247.5. memory
For example, to update a virtual machine to contain 1 Gibibyte (GiB) of memory, send the following
request:
PUT /ovirt-engine/api/vms/123
<vm>
<memory>1073741824</memory>
</vm>
642
CHAPTER 6. TYPES
Note
Note
Memory hot plug is supported from Red Hat Virtualization 3.6 onwards. You can use the
example above to increase memory while the virtual machine is running.
6.247.6. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in
ms.
6.247.7. origin
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
6.247.8. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating
system.
6.247.9. sso
643
Red Hat Virtualization 4.0 REST API Guide
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
quota Quota Reference to quota configuration set for this virtual machine.
storage_doma StorageDomain Reference to storage domain the virtual machine belongs to.
in
644
CHAPTER 6. TYPES
Name Summary
illegal This status indicates that at least one of the disks of the template is illegal.
locked This status indicates that some operation that prevents other operations with the
template is being executed.
ok This status indicates that the template is valid and ready for use.
version_numb Integer The index of this version in the versions hierarchy of the
er template.
6.249.1. version_number
The index of this version in the versions hierarchy of the template. The index 1 represents the
original version of a template that is also called base version.
base_templat Template References the template that this version is associated with.
e
645
Red Hat Virtualization 4.0 REST API Guide
6.251.1. utc_offset
646
CHAPTER 6. TYPES
Name Summary
tcp TCP.
host Host
host_nic HostNic
647
Red Hat Virtualization 4.0 REST API Guide
enabled Boolean
type UsbType
Name Summary
legacy
native
department String
domain_entry String
_id
email String
648
CHAPTER 6. TYPES
last_name String
logged_in Boolean
password String
6.257.1. namespace
Namespace where user resides. When using the authorization provider that stores users in the
LDAP (see here for details) this attribute equals to naming context of the LDAP. When using the
built-in authorization provider that stores users in the database (see here for details) this attribute is
ignored.
6.257.2. principal
Same as user_name principal has different formats based on LDAP provider. In case of most
LDAP providers it is value of the uid LDAP attribute. In case of Active Directory it is the user
principal name (UPN).
6.257.3. user_name
Username of the user. The format depends on authorization provider type. In case of most LDAP
providers it is value of the uid LDAP attribute. In case of Active Directory it is the user principal
name (UPN). UPN or uid must be followed by authorization provider name. For example in case of
LDAP using uid attribute it is: myuser@myextension-authz. In case of Active Directory using
UPN it is: myuser@mysubdomain.mydomain.com@myextension-authz. This attribute is
required parameter when adding new user.
649
Red Hat Virtualization 4.0 REST API Guide
domain Domain
groups Group[]
permissions Permission[]
ssh_public_k SshPublicKey[]
eys
datum Decimal
detail String
Name Summary
decimal
650
CHAPTER 6. TYPES
Name Summary
integer
string
cpu_set String
vcpu Integer
651
Red Hat Virtualization 4.0 REST API Guide
build Integer
full_version String
major Integer
minor Integer
revision Integer
Type representing the support of virtio-SCSI. If it supported we use virtio driver for SCSI guest
device.
652
CHAPTER 6. TYPES
cpu Cpu
index Integer
node_distanc String
e
653
Red Hat Virtualization 4.0 REST API Guide
numa_node_pi NumaNodePin[]
ns
host Host
statistics Statistic[]
vm Vm
6.266. VM STRUCT
Represents a virtual machine.
654
CHAPTER 6. TYPES
cpu_shares Integer
custom_cpu_m String
odel
custom_emula String
ted_machine
655
Red Hat Virtualization 4.0 REST API Guide
guest_time_z TimeZone What time zone is used by the virtual machine (as returned by
one guest agent).
migration_do Integer Maximum time the virtual machine can be non responsive
wntime during its live migration to another host in ms.
656
CHAPTER 6. TYPES
next_run_con Boolean Virtual machine configuration has been changed and requires
figuration_e restart of the virtual machine.
xists
payloads Payload[] Optional payloads of the virtual machine, used for ISOs to
configure it.
run_once Boolean If true, the virtual machine has been started using the run
once command, meaning it’s configuration might differ from
the stored one for the purpose of this single run.
soundcard_en Boolean If true, the sound card is added to the virtual machine.
abled
657
Red Hat Virtualization 4.0 REST API Guide
start_paused Boolean If true, the virtual machine will be initially in 'paused' state
after start.
start_time Date The date in which the virtual machine was started.
stateless Boolean If true, the virtual machine is stateless - it’s state (disks) are
rolled-back after shutdown.
stop_time Date The date in which the virtual machine was stopped.
tunnel_migra Boolean If true, the network data transfer will be encrypted during
tion virtual machine live migration.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
658
CHAPTER 6. TYPES
6.266.1. cpu
The socket configuration can be updated without rebooting the virtual machine. The cores and the
threads require a reboot.
For example, to change the number of sockets to 4 immediately, and the number of cores and
threads to 2 after reboot, send the following request:
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
6.266.2. custom_compatibility_version
The compatibility version of a virtual machine is limited by the data center the virtual machine
resides in, and is checked against capabilities of the host the virtual machine is planned to run on.
6.266.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
6.266.4. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
6.266.5. memory
For example, to update a virtual machine to contain 1 Gibibyte (GiB) of memory, send the following
request:
PUT /ovirt-engine/api/vms/123
659
Red Hat Virtualization 4.0 REST API Guide
<vm>
<memory>1073741824</memory>
</vm>
Note
Note
Memory hot plug is supported from Red Hat Virtualization 3.6 onwards. You can use the
example above to increase memory while the virtual machine is running.
6.266.6. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in
ms.
6.266.7. next_run_configuration_exists
Virtual machine configuration has been changed and requires restart of the virtual machine.
Changed configuration is applied at processing the virtual machine’s shut down.
6.266.8. origin
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
660
CHAPTER 6. TYPES
6.266.9. placement_policy
This configuration can be updated to pin a virtual machine to one or more hosts.
Note
Virtual machines that are pinned to multiple hosts cannot be live migrated, but in the event
of a host failure, any virtual machine configured to be highly available is automatically
restarted on one of the other hosts to which the virtual machine is pinned.
For example, to pin a virtual machine to two hosts, send the following request:
PUT /api/vms/123
<vm>
<high_availability>
<enabled>true</enabled>
<priority>1</priority>
</high_availability>
<placement_policy>
<hosts>
<host>
<name>Host1</name>
</host>
<host>
<name>Host2</name>
</host>
</hosts>
<affinity>pinned</affinity>
</placement_policy>
</vm>
6.266.10. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating
system.
6.266.11. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
6.266.12. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
661
Red Hat Virtualization 4.0 REST API Guide
external_hos ExternalHostProvi
t_provider der
graphics_con GraphicsConsole[ List of graphics consoles configured for this virtual machine.
soles ]
host Host Reference to the host the virtual machine is running on.
katello_erra KatelloErratum[] Lists all the Katello errata assigned to the virtual machine.
ta
662
CHAPTER 6. TYPES
nics Nic[] References the list of network interface devices on the virtual
machine.
numa_nodes NumaNode[] Refers to the NUMA Nodes configuration used by this virtual
machine.
quota Quota Reference to quota configuration set for this virtual machine.
reported_dev ReportedDevice[]
ices
sessions Session[] List of user sessions opened for this virtual machine.
snapshots Snapshot[] Refers to all snapshots taken from the virtual machine.
storage_doma StorageDomain Reference to storage domain the virtual machine belongs to.
in
tags Tag[]
template Template Reference to the template the virtual machine is based on.
663
Red Hat Virtualization 4.0 REST API Guide
6.266.13. affinity_labels
6.266.14. katello_errata
GET /ovirt-engine/api/vms/123/katelloerrata
<katello_errata>
<katello_erratum href="/ovirt-engine/api/katelloerrata/456" id="456">
<name>RHBA-2013:XYZ</name>
<description>The description of the erratum</description>
<title>some bug fix update</title>
<type>bugfix</type>
<issued>2013-11-20T02:00:00.000+02:00</issued>
<solution>Few guidelines regarding the solution</solution>
<summary>Updated packages that fix one bug are now available for
XYZ</summary>
<packages>
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
</packages>
</katello_erratum>
...
</katello_errata>
Name Summary
migratable
pinned
user_migrata
ble
664
CHAPTER 6. TYPES
Represents basic virtual machine configuration. This is used by virtual machines, templates and
instance types.
cpu_shares Integer
custom_cpu_m String
odel
custom_emula String
ted_machine
665
Red Hat Virtualization 4.0 REST API Guide
migration_do Integer Maximum time the virtual machine can be non responsive
wntime during its live migration to another host in ms.
666
CHAPTER 6. TYPES
soundcard_en Boolean If true, the sound card is added to the virtual machine.
abled
start_paused Boolean If true, the virtual machine will be initially in 'paused' state
after start.
stateless Boolean If true, the virtual machine is stateless - it’s state (disks) are
rolled-back after shutdown.
tunnel_migra Boolean If true, the network data transfer will be encrypted during
tion virtual machine live migration.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
667
Red Hat Virtualization 4.0 REST API Guide
6.268.1. cpu
The socket configuration can be updated without rebooting the virtual machine. The cores and the
threads require a reboot.
For example, to change the number of sockets to 4 immediately, and the number of cores and
threads to 2 after reboot, send the following request:
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
6.268.2. custom_compatibility_version
The compatibility version of a virtual machine is limited by the data center the virtual machine
resides in, and is checked against capabilities of the host the virtual machine is planned to run on.
6.268.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
6.268.4. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
6.268.5. memory
668
CHAPTER 6. TYPES
For example, to update a virtual machine to contain 1 Gibibyte (GiB) of memory, send the following
request:
PUT /ovirt-engine/api/vms/123
<vm>
<memory>1073741824</memory>
</vm>
Note
Note
Memory hot plug is supported from Red Hat Virtualization 3.6 onwards. You can use the
example above to increase memory while the virtual machine is running.
6.268.6. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in
ms.
6.268.7. origin
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
669
Red Hat Virtualization 4.0 REST API Guide
physical_machine
hyperv
6.268.8. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating
system.
6.268.9. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
quota Quota Reference to quota configuration set for this virtual machine.
storage_doma StorageDomain Reference to storage domain the virtual machine belongs to.
in
Name Summary
cdrom
floppy
670
CHAPTER 6. TYPES
affinity VmAffinity
hosts Host[]
display Display
max_user_vms Integer
prestarted_v Integer
ms
rng_device RngDevice
671
Red Hat Virtualization 4.0 REST API Guide
size Integer
soundcard_en Boolean
abled
type VmPoolType
use_latest_t Boolean
emplate_vers
ion
6.271.1. stateful
Virtual machines from a stateful virtual machine pool are always started in stateful mode (stateless
snapshot is not created). The state of the virtual machine is preserved even when the virtual
machine is passed to a different user.
cluster Cluster
instance_typ InstanceType Reference to the instance type on which this pool is based.
e
permissions Permission[]
template Template
vm Vm
672
CHAPTER 6. TYPES
6.271.2. instance_type
Reference to the instance type on which this pool is based. It can be set only on pool creation and
cannot be edited.
Name Summary
automatic
manual
Name Summary
down This status indicates that the virtual machine process is not running.
image_locked This status indicates that the virtual machine process is not running and there is
some operation on the disks of the virtual machine that prevents it from being
started.
migrating This status indicates that the virtual machine process is running and the virtual
machine is being migrated from one host to another.
not_respondi This status indicates that the hypervisor detected that the virtual machine is not
ng responding.
paused This status indicates that the virtual machine process is running and the virtual
machine is paused.
673
Red Hat Virtualization 4.0 REST API Guide
Name Summary
powering_dow This status indicates that the virtual machine process is running and it is about to
n stop running.
powering_up This status indicates that the virtual machine process is running and the guest
operating system is being loaded.
reboot_in_pr This status indicates that the virtual machine process is running and the guest
ogress operating system is being rebooted.
restoring_st This status indicates that the virtual machine process is about to run and the virtual
ate machine is going to awake from hibernation.
saving_state This status indicates that the virtual machine process is running and the virtual
machine is being hibernated.
suspended This status indicates that the virtual machine process is not running and a running
state of the virtual machine was saved.
unknown This status indicates that the system failed to determine the status of the virtual
machine.
up This status indicates that the virtual machine process is running and the guest
operating system is loaded.
wait_for_lau This status indicates that the virtual machine process is about to run.
nch
6.273.1. paused
This status indicates that the virtual machine process is running and the virtual machine is paused.
This may happen in two cases: when running a virtual machine is paused mode and when the
virtual machine is being automatically paused due to an error.
6.273.2. powering_up
674
CHAPTER 6. TYPES
6.273.2. powering_up
This status indicates that the virtual machine process is running and the guest operating system is
being loaded. Note that if no guest-agent is installed, this status is set for a predefined period of
time, that is by default 60 seconds, when running a virtual machine.
6.273.3. restoring_state
This status indicates that the virtual machine process is about to run and the virtual machine is going
to awake from hibernation. In this status, the running state of the virtual machine is being restored.
6.273.4. saving_state
This status indicates that the virtual machine process is running and the virtual machine is being
hibernated. In this status, the running state of the virtual machine is being saved. Note that this
status does not mean that the guest operating system is being hibernated.
6.273.5. suspended
This status indicates that the virtual machine process is not running and a running state of the virtual
machine was saved. This status is similar to Down, but when the VM is started in this status its
saved running state is restored instead of being booted using the normal procedue.
6.273.6. unknown
This status indicates that the system failed to determine the status of the virtual machine. The virtual
machine process may be running or not running in this status. For instance, when host becomes
non-responsive the virtual machines that ran on it are set with this status.
6.273.7. up
This status indicates that the virtual machine process is running and the guest operating system is
loaded. Note that if no guest-agent is installed, this status is set after a predefined period of time,
that is by default 60 seconds, when running a virtual machine.
6.273.8. wait_for_launch
This status indicates that the virtual machine process is about to run. This status is set when a
request to run a virtual machine arrives to the host. It is possible that the virtual machine process will
fail to run.
active Integer
675
Red Hat Virtualization 4.0 REST API Guide
migrating Integer
total Integer
Name Summary
6.275.1. desktop
The virtual machine is intended to be used as a desktop. Currently, its implication is that a sound
device will be automatically added to the virtual machine.
6.275.2. server
The virtual machine is intended to be used as a server. Currently, its implication is that a sound
device will not be automatically added to the virtual machine.
676
CHAPTER 6. TYPES
The enum describes whether vNIC to be implemented as a pass-through device or a virtual one.
Currently it supports only 2 option, but there is a plan to add more in the future.
Name Summary
custom_prope CustomProperty[]
rties
pass_through VnicPassThrough
port_mirrori Boolean
ng
677
Red Hat Virtualization 4.0 REST API Guide
network Network
network_filt NetworkFilter Network filter will enhance the admin ability to manage the
er network packets traffic from/to the participated VMs.
permissions Permission[]
qos Qos
id String
logical_unit LogicalUnit[]
s
name String
678
CHAPTER 6. TYPES
6.280.1. model
vms Vm[] References to the virtual machines that are using this device.
6.280.2. vms
References to the virtual machines that are using this device. A device may be used by several
virtual machines; for example, a shared disk my be used simultaneously by two or more virtual
machines.
679
Red Hat Virtualization 4.0 REST API Guide
Name Summary
dump Virtual machine process will get core dumped to the default path on the host.
poweroff Virtual machine will be powered off when watchdog action is triggered.
6.281.1. none
No action will be performed when watchdog action is triggered. However log message will still be
generated.
Name Summary
680
CHAPTER 6. TYPES
factor Integer
scheduling_p SchedulingPolicy
olicy
scheduling_p SchedulingPolicy
olicy_unit Unit
681
Red Hat Virtualization 4.0 REST API Guide
This section describes the primitive data types supported by the API.
Case is ignored by the engine, so for example False and FALSE also valid values. However the
server will always return lower case values.
For backwards compatibility with older versions of the engine, the values 0 and 1 are also accepted.
The value 0 has the same meaning than false, and 1 has the same meaning than true. Try to
avoid using these values, as support for them may be removed in the future.
Currently the engine implements this type using a signed 32 bit integer, so the minimum value is -
231 (-2147483648) and the maximum value is 231-1 (2147483647).
However, there are some attributes in the system where the range of values possible with 32 bit isn’t
enough. In those exceptional cases the engine uses 64 bit integers, in particular for the following
attributes:
Disk.actual_size
Disk.provisioned_size
GlusterClient.bytes_read
GlusterClient.bytes_written
Host.max_scheduling_memory
Host.memory
HostNic.speed
LogicalUnit.size
MemoryPolicy.guaranteed
NumaNode.memory
QuotaStorageLimit.limit
682
APPENDIX A. PRIMITIVE TYPES
StorageDomain.available
StorageDomain.used
StorageDomain.committed
VmBase.memory
For these exception cases the minimum value is -263 (-9223372036854775808) and the maximum
value is 263-1 (9223372036854775807).
Note
In the future the integer type will be implemented using unlimited precission integers, so
the above limitations and exceptions will eventually disappear.
Currently the engine implements this type using 32 bit IEEE 754 single precision floating point
numbers.
For some attributes this isn’t enough precision. In those exceptional cases the engine uses 64 bit
double precision floating point numbers, in particular for the following attributes:
QuotaStorageLimit.usage
QuotaStorageLimit.memory_limit
QuotaStorageLimit.memory_usage
Note
In the future the decimal type will be implemented using unlimited precision decimal
numbers, so the above limitations and exceptions will eventually disappear.
The format returned by the engine is the one described in the XML Schema specification when
requesting XML. For example, if you send a request like this to retrieve the XML representation of a
virtual machine:
GET /ovirt-engine/api/vms/123
Accept: application/xml
683
Red Hat Virtualization 4.0 REST API Guide
<creation_time>2016-09-08T09:53:35.138+02:00</creation_time>
...
</vm>
When requesting the JSON representation the engine uses a different, format: an integer containing
the number of seconds since Jan 1st 1970, also know as epoch time. For example, if you send a
request like this to retrieve the JSON representation of a virtual machine:
GET /ovirt-engine/api/vms/123
Accept: application/json
{
"id": "123",
"href="/ovirt-engine/api/vms/123",
...
"creation_time": 1472564909990,
...
}
Note
In both cases, the dates returned by the engine use the time zone configured in the server
where it is running, in the above examples it is UTC+2.
684