Red Hat Virtualization 4.4 REST API Guide en US
Red Hat Virtualization 4.4 REST API Guide en US
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, the Red Hat 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 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
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
..............
1.1. REPRESENTATIONAL STATE TRANSFER 49
1.1.1. API Prerequisites 49
.CHAPTER
. . . . . . . . . . 2.
. . AUTHENTICATION
. . . . . . . . . . . . . . . . . . . . AND
. . . . . SECURITY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
..............
2.1. TLS/SSL CERTIFICATION 51
2.1.1. Obtaining the CA Certificate 51
2.1.2. Importing a Certificate to a Client 53
2.2. AUTHENTICATION 53
2.2.1. OAuth Authentication 53
2.2.2. Basic Authentication 55
2.2.3. Authentication Sessions 56
2.2.3.1. Requesting an Authenticated Session 56
. . . . . . . . . . . 3.
CHAPTER . . COMMON
. . . . . . . . . . . CONCEPTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
..............
3.1. TYPES 58
3.2. IDENTIFIED TYPES 58
3.3. OBJECTS 58
3.4. COLLECTIONS 58
3.5. REPRESENTATIONS 59
3.5.1. XML representation 59
3.5.2. JSON representation 59
3.6. SERVICES 60
3.7. SEARCHING 63
3.7.1. Maximum results parameter 63
3.7.2. Case sensitivity 63
3.7.3. Search syntax 64
3.7.4. Wildcards 64
3.7.5. Pagination 64
3.8. FOLLOWING LINKS 65
3.9. PERMISSIONS 67
3.10. HANDLING ERRORS 68
.CHAPTER
. . . . . . . . . . 4.
. . .QUICK
. . . . . . .START
. . . . . . . EXAMPLES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
..............
4.1. ACCESS API ENTRY POINT 69
4.2. LIST DATA CENTERS 71
4.3. LIST HOST CLUSTERS 72
4.4. LIST LOGICAL NETWORKS 73
4.5. LIST HOSTS 74
4.6. CREATE NFS DATA STORAGE 75
4.7. CREATE NFS ISO STORAGE 76
4.8. ATTACH STORAGE DOMAINS TO DATA CENTER 77
4.9. CREATE VIRTUAL MACHINE 79
4.10. CREATE A VIRTUAL MACHINE NIC 80
4.11. CREATE VIRTUAL MACHINE DISK 81
4.12. ATTACH ISO IMAGE TO VIRTUAL MACHINE 82
4.13. START THE VIRTUAL MACHINE 83
. . . . . . . . . . . 5.
CHAPTER . . REQUESTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85
..............
. . . . . . . . . . . 6.
CHAPTER . . .SERVICES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
..............
6.1. AFFINITYGROUP 117
1
Red Hat Virtualization 4.4 REST API Guide
2
Table of Contents
3
Red Hat Virtualization 4.4 REST API Guide
4
Table of Contents
5
Red Hat Virtualization 4.4 REST API Guide
6
Table of Contents
7
Red Hat Virtualization 4.4 REST API Guide
8
Table of Contents
9
Red Hat Virtualization 4.4 REST API Guide
10
Table of Contents
11
Red Hat Virtualization 4.4 REST API Guide
12
Table of Contents
13
Red Hat Virtualization 4.4 REST API Guide
14
Table of Contents
15
Red Hat Virtualization 4.4 REST API Guide
16
Table of Contents
17
Red Hat Virtualization 4.4 REST API Guide
18
Table of Contents
19
Red Hat Virtualization 4.4 REST API Guide
20
Table of Contents
21
Red Hat Virtualization 4.4 REST API Guide
22
Table of Contents
23
Red Hat Virtualization 4.4 REST API Guide
24
Table of Contents
25
Red Hat Virtualization 4.4 REST API Guide
26
Table of Contents
27
Red Hat Virtualization 4.4 REST API Guide
28
Table of Contents
. . . . . . . . . . . 7.
CHAPTER . . TYPES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .542
...............
7.1. ACCESSPROTOCOL ENUM 542
7.2. ACTION STRUCT 542
7.3. AFFINITYGROUP STRUCT 547
7.3.1. broken 548
7.3.2. enforcing 548
7.3.3. positive 548
7.4. AFFINITYLABEL STRUCT 549
29
Red Hat Virtualization 4.4 REST API Guide
30
Table of Contents
31
Red Hat Virtualization 4.4 REST API Guide
32
Table of Contents
33
Red Hat Virtualization 4.4 REST API Guide
34
Table of Contents
35
Red Hat Virtualization 4.4 REST API Guide
36
Table of Contents
37
Red Hat Virtualization 4.4 REST API Guide
38
Table of Contents
39
Red Hat Virtualization 4.4 REST API Guide
40
Table of Contents
41
Red Hat Virtualization 4.4 REST API Guide
7.259.2. ip 776
7.259.3. protocol 776
7.259.4. user 776
7.260. SKIPIFCONNECTIVITYBROKEN STRUCT 776
7.260.1. enabled 777
7.260.2. threshold 777
7.261. SKIPIFSDACTIVE STRUCT 777
7.261.1. enabled 777
7.262. SNAPSHOT STRUCT 777
7.262.1. auto_pinning_policy 781
7.262.2. cpu 781
7.262.3. cpu_pinning_policy 782
7.262.4. custom_compatibility_version 782
7.262.5. high_availability 782
7.262.6. initialization 782
7.262.7. large_icon 783
7.262.8. lease 783
7.262.9. memory 783
7.262.10. migration 784
7.262.11. migration_downtime 784
7.262.12. next_run_configuration_exists 784
7.262.13. numa_tune_mode 784
7.262.14. origin 784
7.262.15. persist_memorystate 785
7.262.16. placement_policy 785
7.262.17. small_icon 785
7.262.18. sso 785
7.262.19. stop_reason 786
7.262.20. tpm_enabled 786
7.262.21. affinity_labels 787
7.262.22. katello_errata 787
7.262.23. original_template 788
7.262.24. statistics 788
7.263. SNAPSHOTSTATUS ENUM 788
7.263.1. locked 789
7.264. SNAPSHOTTYPE ENUM 789
7.264.1. preview 789
7.264.2. stateless 789
7.265. SPECIALOBJECTS STRUCT 789
7.266. SPM STRUCT 789
7.267. SPMSTATUS ENUM 790
7.268. SSH STRUCT 790
7.268.1. fingerprint 791
7.268.2. public_key 791
7.269. SSHAUTHENTICATIONMETHOD ENUM 791
7.270. SSHPUBLICKEY STRUCT 791
7.271. SSO STRUCT 791
7.272. SSOMETHOD ENUM 792
7.273. STATISTIC STRUCT 792
7.274. STATISTICKIND ENUM 794
7.275. STATISTICUNIT ENUM 794
7.276. STEP STRUCT 794
7.276.1. external 795
42
Table of Contents
43
Red Hat Virtualization 4.4 REST API Guide
44
Table of Contents
45
Red Hat Virtualization 4.4 REST API Guide
7.321.7. up 850
7.321.8. wait_for_launch 851
7.322. VMSTORAGEERRORRESUMEBEHAVIOUR ENUM 851
7.322.1. auto_resume 851
7.322.2. kill 851
7.322.3. leave_paused 851
7.323. VMSUMMARY STRUCT 851
7.324. VMTYPE ENUM 852
7.324.1. desktop 852
7.324.2. high_performance 852
7.324.3. server 853
7.325. VNICPASSTHROUGH STRUCT 853
7.326. VNICPASSTHROUGHMODE ENUM 853
7.327. VNICPROFILE STRUCT 854
7.327.1. migratable 854
7.327.2. pass_through 854
7.327.3. port_mirroring 854
7.327.4. network_filter 855
7.327.5. qos 855
7.328. VNICPROFILEMAPPING STRUCT 855
7.328.1. source_network_name 856
7.328.2. source_network_profile_name 856
7.328.3. target_vnic_profile 857
7.329. VOLUMEGROUP STRUCT 857
7.330. WATCHDOG STRUCT 857
7.330.1. model 858
7.330.2. vms 858
7.331. WATCHDOGACTION ENUM 858
7.331.1. none 859
7.332. WATCHDOGMODEL ENUM 859
7.332.1. diag288 859
7.332.2. i6300esb 859
7.333. WEIGHT STRUCT 859
. . . . . . . . . . . .A.
APPENDIX . . PRIMITIVE
. . . . . . . . . . . .TYPES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .861
...............
A.1. STRING PRIMITIVE 861
A.2. BOOLEAN PRIMITIVE 861
A.3. INTEGER PRIMITIVE 861
A.4. DECIMAL PRIMITIVE 862
A.5. DATE PRIMITIVE 862
. . . . . . . . . . . .B.
APPENDIX . . CHANGES
. . . . . . . . . . . .IN
. . VERSION
..........4
. . OF
. . . .THE
. . . . .API
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
................
B.1. CHANGES IN API VERSION 4.0 (SUCCEEDING VERSION 3.6) 864
B.1.1. Removed YAML support 864
B.1.2. Renamed complex types 864
B.1.3. Replaced the Status type with enum types 866
B.1.4. Remove the NIC network and port_mirroring properties 866
B.1.5. Remove the NIC active property 867
B.1.6. Remove the disk type property 867
B.1.7. Remove the disk size property 867
B.1.8. Removed support for pinning a VM to a single host 867
B.1.9. Removed the capabilities.permits element 867
B.1.10. Removed the storage_manager element 868
46
Table of Contents
. . . . . . . . . . . .C.
APPENDIX . . .LEGAL
. . . . . . . NOTICE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .891
...............
47
Red Hat Virtualization 4.4 REST API Guide
48
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:
49
Red Hat Virtualization 4.4 REST API Guide
Knowledge of Hypertext Transfer Protocol (HTTP), the protocol used for REST API
interactions. See RFC 2616: HTTP/1.1.
50
CHAPTER 2. AUTHENTICATION AND SECURITY
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.
$ openssl s_client \
-connect myengine.example.com:443 \
-showcerts \
< /dev/null
Example output
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-----
MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVM
x
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-----
The text between the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- lines
51
Red Hat Virtualization 4.4 REST API Guide
The text between the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- lines
shows the certificates presented by the server.
The first certificate is the certificate of the server itself. The second certificate is the
certificate of the CA.
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
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 the certificate has been
manually replaced by the server administrator.
Method 2
If you cannot use openssl s_client to obtain the certificate, you can use a command line tool, for
example curl or wget, to download the CA certificate from the Red Hat Virtualization Manager. curl
and wget 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 is downloaded or imported into the browser’s
keystore:
If the browser imports the certificate, export it using the browser’s certificate management
options and save it as ca.crt.
52
CHAPTER 2. AUTHENTICATION AND SECURITY
Method 4
Log in to the Red Hat Virtualization Manager, export the certificate from the truststore, and copy it
to your client machine.
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.
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.
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 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:
53
Red Hat Virtualization 4.4 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:
When this happens, a new token is needed, as the Red Hat Virtualization Manager single sign-on service
54
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 [1] 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
HTTP/1.1 200 OK
IMPORTANT
55
Red Hat Virtualization 4.4 REST API Guide
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.
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.
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.
56
CHAPTER 2. AUTHENTICATION AND SECURITY
HTTP/1.1 200 OK
...
[1] Basic Authentication is described in RFC 2617: HTTP Authentication: Basic and Digest Access Authentication.
57
Red Hat Virtualization 4.4 REST API Guide
3.1. TYPES
The API uses the type concept to describe the different kinds of objects accepted and returned.
Primitive types
Describe simple kinds of objects, like strings or integers.
Enumerated types
Describe lists of valid values like VmStatus or DiskFormat.
Structured types
Describe structured objects, with multiple attributes and links, like Vm or Disk.
name String A user-supplied human readable name for the object. The
name name is unique across all objects of the same type.
IMPORTANT
Currently for most types of objects the id attribute is actually a randomly generated
UUID, but this is an implementation detail, and users should not rely on that, as it may
change in the future. Instead users should assume that these identifiers are just strings.
3.3. OBJECTS
Objects are the individual instances of the types supported by the API. For example, the virtual machine
with identifier 123 is an object of the Vm type.
3.4. COLLECTIONS
A collection is a set of objects of the same type.
58
CHAPTER 3. COMMON CONCEPTS
3.5. REPRESENTATIONS
The state of objects needs to be represented when it is transferred beetween the client and the server.
The API supports XML and JSON as the representation of the state of objects, both for input and
output.
The XML representation of a collection of objects consists of an XML element, named after the type of
the objects, in plural. This contains the representations of the objects of the collection. For example, the
XML respresentation for a collection of virtual machines appears as follows:
<vms>
<vm id="123" href="/ovirt-engine/api/vms/123">
<name>yourvm</name>
<description>Your VM</description>
<memory>1073741824</memory>
...
</vm>
<vm id="456" href="/ovirt-engine/api/vms/456">
<name>myname</name>
<description>My description</description>
<memory>2147483648</memory>
...
</vm>
...
</vms>
IMPORTANT
In the XML representation of objects the id and href attributes are the only ones that are
represented as XML attributes, the rest are represented as nested XML elements.
{
"id": "123",
"href": "/ovirt-engine/api/vms/123",
"name": "myvm",
59
Red Hat Virtualization 4.4 REST API Guide
{
"vm": [
{
"id": "123",
"href": "/ovirt-engine/api/vms/123",
"name": "myvm",
"description": "My VM",
"memory": 1073741824,
...
},
{
"id": "456",
"href": "/ovirt-engine/api/vms/456",
"name": "yourvm",
"description": "Your VM",
"memory": 2147483648,
...
},
]
}
3.6. SERVICES
Services are the parts of the server responsible for retrieving, adding updating, removing and executing
actions on the objects supported by the API.
Each service is accessible via a particular path within the server. For example, the service that manages
the collection of virtual machines available in the system is available in the via the path /vms, and the
service that manages the virtual machine 123 is available via the path /vms/123.
All kinds of services have a set of methods that represent the operations that they can perform. The
services that manage collections of objects usually have the list and add methods. The services that
manage specific objects usually have the get, update and remove methods. In addition, services may
also have action methods, that represent less common operations. For example, the Vm service has a
start method that is used to start a virtual machine.
60
CHAPTER 3. COMMON CONCEPTS
For the more usual methods there is a direct mapping between the name of the method and the name
of the HTTP method:
add POST
get GET
list GET
update PUT
remove DELETE
The path used in the HTTP request is the path of the service, with the /ovirt-engine/api prefix.
For example, the request to list the virtual machines should be like this, using the HTTP GET method
and the path /vms:
GET /ovirt-engine/api/vms
For action methods the HTTP method is always POST, and the name of the method is added as a suffix
to the path. For example, the request to start virtual machine 123 should look like this, using the HTTP
POST method and the path /vms/123/start:
POST /ovirt-engine/api/vms/123/start
Main parameter
The main parameter corresponds the object or collection that is retrieved, added or updated. This
only applies to the add, get, list and update methods, and there will be exactly one such main
parameter per method.
Secondary parameters
The rest of the parameters.
For example, the operation that adds a virtual machine (see here) has three parameters: vm, clone and
clone_permissions. The main parameter is vm, as it describes the object that is added. The clone and
clone_permissions parameters are secondary parameters.
The main parameter, when used for input, must be included in the body of the HTTP request. For
example, when adding a virtual machine, the vm parameter, of type Vm must be included in the request
body. So the complete request to add a virtual machine, including all the HTTP details, must look like
this:
61
Red Hat Virtualization 4.4 REST API Guide
Content-Type: application/xml
Accept: application/xml
<vm>
<name>myvm</name>
<description>My VM</description>
<cluster>
<name>Default</name>
</cluster>
<template>
<name>Blank</name>
</template>
</vm>
When used for output, the main parameters are included in the response body. For example, when
adding a virtual machine, the vm parameter will be included in the response body. So the complete
response body will look like this:
Secondary parameters are only allowed for input (except for action methods, which are described later),
and they must be included as query parameters. For example, when adding a virtual machine with the
clone parameter set to true, the complete request must look like this:
<vm>
<name>myvm</name>
<description>My VM</description>
<cluster>
<name>Default</name>
</cluster>
<template>
<name>Blank</name>
</template>
</vm>
Action methods only have secondary parameters. They can be used for input and output, and they
should be included in the request body, wrapped with an action element. For example, the action
method used to start a virtual machine (see here) has a vm parameter to describe how the virtual
machine should be started, and a use_cloud_init parameter to specify if cloud-init should be used to
configure the guest operating system. So the complete request to start virtual machine 123 using cloud-
init will look like this when using XML:
62
CHAPTER 3. COMMON CONCEPTS
<action>
<use_cloud_init>true</use_cloud_init>
<vm>
<initialization>
<nic_configurations>
<nic_configuration>
<name>eth0</name>
<on_boot>true</on_boot>
<boot_protocol>static</boot_protocol>
<ip>
<address>192.168.0.100</address>
<netmask>255.255.255.0</netmask>
<gateway>192.168.0.1</netmask>
</ip>
</nic_configuration>
</nic_configurations>
<dns_servers>192.168.0.1</dns_servers>
</initialization>
</vm>
</action>
3.7. SEARCHING
The list method of some services has a search parameter that can be used to specify search criteria.
When used, the server will only return objects within the collection that satisfy those criteria. For
example, the following request will return only the virtual machine named myvm:
GET /ovirt-engine/api/vms?search=name%3Dmyvm
GET /ovirt-engine/api/vms?max=1
A search request without the max parameter will return all the objects. Specifying the max parameter is
recommended to reduce the impact of requests in the overall performance of the system.
GET /ovirt-engine/api/vms?search=name%3Dmyvm
The optional case_sensitive boolean parameter can be used to change this behaviour. For example, to
63
Red Hat Virtualization 4.4 REST API Guide
The optional case_sensitive boolean parameter can be used to change this behaviour. For example, to
get exactly the virtual machine named myhost, and not MyHost or MYHOST, send a request like this:
GET /ovirt-engine/api/vms?search=name%3D=myvm&case_sensitive=true
The sortby clause is optional and only needed when ordering results.
hosts vms.status=up Returns a list of all hosts running virtual machines that are up.
vms domain=exampl Returns a list of all virtual machines running on the specified
e.com domain.
vms users.name=ma Returns a list of all virtual machines belonging to users with the
ry user name mary.
events severity > Returns a list of all events with severity higher than normal and
normal sortby sorted by the the value of their time attribute.
time
events severity > Returns a list of all events with severity higher than normal and
normal sortby sorted by the the value of their time attribute in descending
time desc order.
The value of the search parameter must be URL-encoded to translate reserved characters, such as
operators and spaces. For example, the equal sign should be encoded as %3D:
GET /ovirt-engine/api/vms?search=name%3Dmyvm
3.7.4. Wildcards
The asterisk can be used as part of a value, to indicate that any string matches, including the emtpy
string. For example, the following request will return all the virtual machines with names beginning with
myvm, such as myvm, myvm2, myvma or myvm-webserver:
GET /ovirt-engine/api/vms?search=name%3Dmyvm*
3.7.5. Pagination
Some Red Hat Virtualization environments contain large collections of objects. Retrieving all of them
with one request isn’t practical, and hurts performace. To allow retrieving them page by page the search
64
CHAPTER 3. COMMON CONCEPTS
parameter supports an optional page clause. This, combined with the max parameter, is the basis for
paging. For example, to get the first page of virtual machines, with a page size of 10 virtual machines,
send request like this:
GET /ovirt-engine/api/vms?search=page%201&max=10
NOTE
The search parameter is URL-encoded, the actual value of the search parameter, before
encoding, is page 1, so this is actually requesting the first page.
GET /ovirt-engine/api/vms?search=page%202&max=10
The page clause can be used in conjunction with other clauses inside the search parameter. For
example, the following request will return the second page of virtual machines, but sorting by name:
GET /ovirt-engine/api/vms?search=sortby%20name%20page%202&max=10
IMPORTANT
The API is stateless; it is not possible to retain a state between different requests since all
requests are independent from each other. As a result, if a status change occurs between
your requests, then the page results may be inconsistent.
For example, if you request a specific page from a list of virtual machines, and virtual
machines are created or removed before you request the next page, then your results
may be missing some of them, or contain duplicates.
The complete description of those linked objects can be retrieved by sending separate requests:
GET /ovirt-engine/api/vms/123/diskattachments
GET /ovirt-engine/api/vms/123/nics
However, in some situations it is more convenient for the application using the API to retrieve the linked
information in the same request. This is useful, for example, when the additional network round trips
introduce an unacceptable overhead, or when the multiple requests complicate the code of the
application in an unacceptable way. For those use cases the API provides a follow parameter that allows
the application to retrieve the linked information using only one request.
65
Red Hat Virtualization 4.4 REST API Guide
The value of the follow parameter is a list of strings, separated by commas. Each of those strings is the
path of the linked object. For example, to retrieve the disk attachments and the NICs in the example
above the request should be like this:
GET /ovirt-engine/api/vms/123?follow=disk_attachments,nics
The path to the linked object can be a single word, as in the previous example, or it can be a sequence of
words, separated by dots, to request nested data. For example, the previous example used
disk_attachments in order to retrieve the complete description of the disk attachments, but each disk
attachment contains a link to the disk, which wasn’t followed. In order to also follow the links to the disks,
the following request can be used:
GET /ovirt-engine/api/vms/123?follow=disk_attachments.disk
66
CHAPTER 3. COMMON CONCEPTS
<uses_scsi_reservation>false</uses_scsi_reservation>
<disk id="789" href="/ovirt-engine/api/disks/789">
<name>mydisk</name>
<description>My disk</description>
<actual_size>0</actual_size>
<format>raw</format>
<sparse>true</sparse>
<status>ok</status>
<storage_type>image</storage_type>
<total_size>0</total_size>
...
</disk>
</disk_attachment>
...
</disk_attachments>
...
</vm>
The path can be made as deep as needed. For example, to also get the statistics of the disks:
GET /ovirt-engine/api/vms/123?follow=disk_attachments.disk.statistics
Multiple path elements and multiple paths can be combined. For example, to get the disk attachments
and the network interface cards, both with their statistics:
GET /ovirt-engine/api/vms/123?follow=disk_attachments.disk.statistics,nics.statistics
IMPORTANT
Almost all the operations that retrieve objects support the follow parameter, but make
sure to explicitly check the reference documentation, as some operations may not
support it, or may provide advice on how to use it to get the best performance.
IMPORTANT
Using the follow parameter moves the overhead from the client side to the server side.
When you request additional data, the server must fetch and merge it with the basic data.
That consumes CPU and memory in the server side, and will in most cases require
additional database queries. That may adversely affect the performance of the server,
especially in large scale environments. Make sure to test your application in a realistic
environment, and use the follow parameter only when justified.
3.9. PERMISSIONS
Many of the services that manage a single object provide a reference to a permissions service that
manages the permissions assigned to that object. Each permission contains links to the user or group,
the role and the object. For example, the permissions assigned to a specific virtual machine can be
retrieved sending a request like this:
GET /ovirt-engine/api/vms/123/permissions
67
Red Hat Virtualization 4.4 REST API Guide
<permissions>
<permission id="456" href="/ovirt-engien/api/vms/123/permissions/456">
<user id="789" href="/ovirt-engine/api/users/789"/>
<role id="abc" href="/ovirt-engine/api/roles/abc"/>
<vm id="123" href="/ovirt-engine/api/vms/123"/>
</permission>
...
</permissions>
A permission is added to an object sending a POST request with a permission representation to this
service. Each new permission requires a role and a user.
<fault>
<reason>Incomplete parameters</reason>
<detail>Vm [name] required for add</detail>
</fault>
68
CHAPTER 4. QUICK START EXAMPLES
An ISO file containing the virtual machine operating system you want to install. This chapter
uses CentOS 7 for the installation ISO example.
The API examples use curl to demonstrate API requests with a client application. You can use any
application that sends HTTP requests.
IMPORTANT
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.
The curl examples use admin@internal for the user name, mypassword for the
password, /etc/pki/ovirt-engine/ca.pem for the certificate location, and
myengine.example.com for the host name. You must replace them with the correct
values for your environment.
Red Hat Virtualization generates a unique identifier for the id attribute for each resource. Identifier
codes in this example will differ from the identifier codes in your Red Hat Virtualization environment.
In many examples, some attributes of the results returned by the API have been omitted, for brevity.
See, for example, the Cluster reference for a complete list of attributes.
The 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
69
Red Hat Virtualization 4.4 REST API Guide
<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>
<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 do not specify the version
explicitly.
70
CHAPTER 4. QUICK START EXAMPLES
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>
<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
71
Red Hat Virtualization 4.4 REST API Guide
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:
That service is used to attach storage domains from the main storagedomains collection, which this
example covers later.
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
<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 Nehalem 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
72
CHAPTER 4. QUICK START EXAMPLES
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 the Default cluster and is a member of the Default data center. This
example uses the ovirtmgmt network to connect the virtual machines.
# 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/networks
<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
73
Red Hat Virtualization 4.4 REST API Guide
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">
<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>
74
CHAPTER 4. QUICK START EXAMPLES
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.
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>
<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>
75
Red Hat Virtualization 4.4 REST API Guide
<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):
<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>
76
CHAPTER 4. QUICK START EXAMPLES
<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>
</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):
77
Red Hat Virtualization 4.4 REST API Guide
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>
<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>
78
CHAPTER 4. QUICK START EXAMPLES
</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>
</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>
79
Red Hat Virtualization 4.4 REST API Guide
<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
80
CHAPTER 4. QUICK START EXAMPLES
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>
<description>My network interface card</description>
</nic>
'\
https://myengine.example.com/ovirt-engine/api/vms/007/nics
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>
81
Red Hat Virtualization 4.4 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 '
<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>
'\
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. You can use
ImageTransfer to create an image transfer and ImageTransfers to upload the ISO image.
Once the ISO image 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
82
CHAPTER 4. QUICK START EXAMPLES
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>
An API user attaches the CentOS-7-x86_64-Minimal.iso to the example virtual machine. Attaching an
ISO image is equivalent to using the Change CD button in the administration or user portal applications.
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.
83
Red Hat Virtualization 4.4 REST API Guide
<action>
<vm>
<os>
<boot>
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
</action>
# 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.
84
CHAPTER 5. REQUESTS
CHAPTER 5. 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}
GET /clusterlevels/{level:id}/clusterfeatures
GET /clusterlevels/{level:id}/clusterfeatures/{feature:id}
POST /clusters
GET /clusters
GET /clusters/{cluster:id}
PUT /clusters/{cluster:id}
DELETE /clusters/{cluster:id}
85
Red Hat Virtualization 4.4 REST API Guide
POST /clusters/{cluster:id}/affinitygroups
GET /clusters/{cluster:id}/affinitygroups
GET /clusters/{cluster:id}/affinitygroups/{group:id}
PUT /clusters/{cluster:id}/affinitygroups/{group:id}
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}
POST /clusters/{cluster:id}/affinitygroups/{group:id}/hostlabels
GET /clusters/{cluster:id}/affinitygroups/{group:id}/hostlabels
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}/hostlabels/{label:id}
POST /clusters/{cluster:id}/affinitygroups/{group:id}/hosts
GET /clusters/{cluster:id}/affinitygroups/{group:id}/hosts
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}/hosts/{host:idorname}
POST /clusters/{cluster:id}/affinitygroups/{group:id}/vmlabels
GET /clusters/{cluster:id}/affinitygroups/{group:id}/vmlabels
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}/vmlabels/{label: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}/enabledfeatures
POST /clusters/{cluster:id}/enabledfeatures
GET /clusters/{cluster:id}/enabledfeatures/{feature:id}
DELETE /clusters/{cluster:id}/enabledfeatures/{feature:id}
GET /clusters/{cluster:id}/externalnetworkproviders
GET /clusters/{cluster:id}/glusterhooks
GET /clusters/{cluster:id}/glusterhooks/{hook:id}
DELETE /clusters/{cluster:id}/glusterhooks/{hook:id}
86
CHAPTER 5. REQUESTS
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
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
87
Red Hat Virtualization 4.4 REST API Guide
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}/refreshglusterhealstatus
POST /clusters/{cluster:id}/resetemulatedmachine
POST /clusters/{cluster:id}/syncallnetworks
POST /clusters/{cluster:id}/upgrade
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
GET /datacenters/{datacenter:id}
PUT /datacenters/{datacenter:id}
88
CHAPTER 5. REQUESTS
DELETE /datacenters/{datacenter:id}
POST /datacenters/{datacenter:id}/cleanfinishedtasks
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}/hostlabels
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/hostlabels
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/hostlabels/{label:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/hosts
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/hosts
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/hosts/{host:idorname}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vmlabels
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vmlabels
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vmlabels/{label: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}
89
Red Hat Virtualization 4.4 REST API Guide
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/enabledfeatures
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/enabledfeatures
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/enabledfeatures/{feature:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/enabledfeatures/{feature:id}
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/externalnetworkproviders
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
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}
90
CHAPTER 5. REQUESTS
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
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
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}
91
Red Hat Virtualization 4.4 REST API Guide
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/refreshglusterhealstatus
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/resetemulatedmachine
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/syncallnetworks
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/upgrade
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
92
CHAPTER 5. REQUESTS
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
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}
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
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}
DELETE /datacenters/{datacenter:id}/networks/{network:id}
PUT /datacenters/{datacenter:id}/networks/{network: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}
93
Red Hat Virtualization 4.4 REST API Guide
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}/setmaster
POST /datacenters/{datacenter:id}/storagedomains
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
PUT /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}
94
CHAPTER 5. REQUESTS
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:
DELETE
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:
POST
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/register
POST
/datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/sparsify
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
PUT /disks/{disk:id}
95
Red Hat Virtualization 4.4 REST API Guide
GET /disks/{disk:id}
DELETE /disks/{disk:id}
POST /disks/{disk:id}/convert
POST /disks/{disk:id}/copy
GET /disks/{disk:id}/disksnapshots
GET /disks/{disk:id}/disksnapshots/{snapshot:id}
DELETE /disks/{disk:id}/disksnapshots/{snapshot:id}
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}
POST /disks/{disk:id}/reduce
POST /disks/{disk:id}/refreshlun
POST /disks/{disk:id}/sparsify
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}
96
CHAPTER 5. REQUESTS
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
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 /externaltemplateimports
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}
97
Red Hat Virtualization 4.4 REST API Guide
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}
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}/copyhostnetworks
GET /hosts/{host:id}/cpuunits
POST /hosts/{host:id}/deactivate
GET /hosts/{host:id}/devices
GET /hosts/{host:id}/devices/{device:id}
POST /hosts/{host:id}/discoveriscsi
POST /hosts/{host:id}/enrollcertificate
98
CHAPTER 5. REQUESTS
GET /hosts/{host:id}/externalnetworkproviderconfigurations
GET /hosts/{host:id}/externalnetworkproviderconfigurations/{configuration:id}
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
GET /hosts/{host:id}/nics/{nic:id}
GET /hosts/{host:id}/nics/{nic:id}/linklayerdiscoveryprotocolelements
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}
99
Red Hat Virtualization 4.4 REST API Guide
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
GET /hosts/{host:id}/statistics/{statistic:id}
GET /hosts/{host:id}/storage
GET /hosts/{host:id}/storage/{storage:id}
100
CHAPTER 5. REQUESTS
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}/syncallnetworks
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
POST /hosts/{host:id}/upgradecheck
GET /icons
GET /icons/{icon:id}
POST /imagetransfers
GET /imagetransfers
GET /imagetransfers/{imagetransfer:id}
POST /imagetransfers/{imagetransfer:id}/cancel
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}
101
Red Hat Virtualization 4.4 REST API Guide
PUT /instancetypes/{instancetype:id}
DELETE /instancetypes/{instancetype:id}
POST /instancetypes/{instancetype:id}/graphicsconsoles
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}
102
CHAPTER 5. REQUESTS
POST /macpools
GET /macpools
GET /macpools/{macpool:id}
PUT /macpools/{macpool:id}
DELETE /macpools/{macpool:id}
POST /macpools/{macpool:id}/permissions
GET /macpools/{macpool:id}/permissions
GET /macpools/{macpool:id}/permissions/{permission:id}
DELETE /macpools/{macpool:id}/permissions/{permission:id}
GET /networkfilters
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
103
Red Hat Virtualization 4.4 REST API Guide
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
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}
104
CHAPTER 5. REQUESTS
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
GET /openstackvolumeproviders/{provider:id}/volumetypes
GET /openstackvolumeproviders/{provider:id}/volumetypes/{type:id}
GET /operatingsystems
GET /operatingsystems/{operatingsystem:id}
GET /options/{option: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}
105
Red Hat Virtualization 4.4 REST API Guide
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
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}
106
CHAPTER 5. REQUESTS
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
PUT /storagedomains/{storagedomain:id}/disks/{disk:id}
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}
POST /storagedomains/{storagedomain:id}/disks/{disk:id}/reduce
POST /storagedomains/{storagedomain:id}/disks/{disk:id}/sparsify
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/statistics
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/statistics/{statistic:id}
GET /storagedomains/{storagedomain:id}/disksnapshots
GET /storagedomains/{storagedomain:id}/disksnapshots/{snapshot:id}
DELETE /storagedomains/{storagedomain:id}/disksnapshots/{snapshot:id}
107
Red Hat Virtualization 4.4 REST API Guide
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}/reduceluns
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}
108
CHAPTER 5. REQUESTS
GET /storagedomains/{storagedomain:id}/vms/{vm:id}/disks
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}/mediateddevices
GET /templates/{template:id}/mediateddevices
GET /templates/{template:id}/mediateddevices/{device:id}
PUT /templates/{template:id}/mediateddevices/{device:id}
DELETE /templates/{template:id}/mediateddevices/{device:id}
109
Red Hat Virtualization 4.4 REST API Guide
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}
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}
PUT /users/{user:id}
DELETE /users/{user:id}
POST /users/{user:id}/eventsubscriptions
GET /users/{user:id}/eventsubscriptions
GET /users/{user:id}/eventsubscriptions/{eventsubscription:id}
DELETE /users/{user:id}/eventsubscriptions/{eventsubscription:id}
GET /users/{user:id}/groups
POST /users/{user:id}/options
110
CHAPTER 5. REQUESTS
GET /users/{user:id}/options
GET /users/{user:id}/options/{option:id}
DELETE /users/{user:id}/options/{option: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
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}
111
Red Hat Virtualization 4.4 REST API Guide
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}/autopincpuandnumanodes
POST /vms/{vm:id}/backups
GET /vms/{vm:id}/backups
GET /vms/{vm:id}/backups/{backup:id}
GET /vms/{vm:id}/backups/{backup:id}/disks
GET /vms/{vm:id}/backups/{backup:id}/disks/{disk:id}
POST /vms/{vm:id}/backups/{backup:id}/finalize
POST /vms/{vm:id}/cancelmigration
POST /vms/{vm:id}/cdroms
GET /vms/{vm:id}/cdroms
GET /vms/{vm:id}/cdroms/{cdrom:id}
PUT /vms/{vm:id}/cdroms/{cdrom:id}
GET /vms/{vm:id}/checkpoints
112
CHAPTER 5. REQUESTS
GET /vms/{vm:id}/checkpoints/{checkpoint:id}
DELETE /vms/{vm:id}/checkpoints/{checkpoint:id}
GET /vms/{vm:id}/checkpoints/{checkpoint:id}/disks
GET /vms/{vm:id}/checkpoints/{checkpoint:id}/disks/{disk: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
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}/graphicsconsoles/{console:id}/proxyticket
POST /vms/{vm:id}/graphicsconsoles/{console:id}/remoteviewerconnectionfile
POST /vms/{vm:id}/graphicsconsoles/{console:id}/ticket
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
113
Red Hat Virtualization 4.4 REST API Guide
POST /vms/{vm:id}/mediateddevices
GET /vms/{vm:id}/mediateddevices
GET /vms/{vm:id}/mediateddevices/{device:id}
PUT /vms/{vm:id}/mediateddevices/{device:id}
DELETE /vms/{vm:id}/mediateddevices/{device:id}
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}/networkfilterparameters
POST /vms/{vm:id}/nics/{nic:id}/networkfilterparameters
GET /vms/{vm:id}/nics/{nic:id}/networkfilterparameters/{parameter:id}
PUT /vms/{vm:id}/nics/{nic:id}/networkfilterparameters/{parameter:id}
DELETE /vms/{vm:id}/nics/{nic:id}/networkfilterparameters/{parameter:id}
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}
PUT /vms/{vm:id}/numanodes/{node:id}
DELETE /vms/{vm:id}/numanodes/{node:id}
POST /vms/{vm:id}/permissions
GET /vms/{vm:id}/permissions
114
CHAPTER 5. REQUESTS
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}
POST /vms/{vm:id}/reset
POST /vms/{vm:id}/screenshot
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
115
Red Hat Virtualization 4.4 REST API Guide
GET /vms/{vm:id}/tags
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}
116
CHAPTER 6. SERVICES
CHAPTER 6. SERVICES
This section enumerates all the services that are available in the API.
6.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>
6.1.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/clusters/000-000/affinitygroups/123-456
117
Red Hat Virtualization 4.4 REST API Guide
6.2. AFFINITYGROUPHOST
This service manages a single host to affinity group assignment.
Name Summary
6.3. AFFINITYGROUPHOSTLABEL
This service manages a single host label assigned to an affinity group.
118
CHAPTER 6. SERVICES
Name Summary
6.4. AFFINITYGROUPHOSTLABELS
This service manages a collection of all host labels assigned to an affinity group.
Name Summary
For example, to add the label 789 to the affinity group 456 of cluster 123, send a request like this:
POST /ovirt-engine/api/clusters/123/affinitygroups/456/hostlabels
<affinity_label id="789"/>
label AffinityLabel In/Out The AffinityLabel object to add to the affinity group.
119
Red Hat Virtualization 4.4 REST API Guide
6.4.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.4.2.2. max
Sets the maximum number of host labels to return. If not specified, all the labels are returned.
6.5. AFFINITYGROUPHOSTS
This service manages a collection of all hosts assigned to an affinity group.
Name Summary
For example, to add the host 789 to the affinity group 456 of cluster 123, send a request like this:
POST /ovirt-engine/api/clusters/123/affinitygroups/456/hosts
<host id="789"/>
120
CHAPTER 6. SERVICES
hosts Host[] Out The list of hosts assigned to this affinity group.
6.5.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.5.2.2. max
Sets the maximum number of hosts to return. If not specified, all the hosts are returned.
6.6. AFFINITYGROUPVM
This service manages a single virtual machine to affinity group assignment.
Name Summary
121
Red Hat Virtualization 4.4 REST API Guide
6.7. AFFINITYGROUPVMLABEL
This service manages a single virtual machine label assigned to an affinity group.
Name Summary
6.8. AFFINITYGROUPVMLABELS
This service manages a collection of all virtual machine labels assigned to an affinity group.
Name Summary
list List all virtual machine labels assigned to this affinity group.
For example, to add the label 789 to the affinity group 456 of cluster 123, send a request like this:
POST /ovirt-engine/api/clusters/123/affinitygroups/456/vmlabels
122
CHAPTER 6. SERVICES
<affinity_label id="789"/>
label AffinityLabel In/Out The AffinityLabel object to add to the affinity group.
labels AffinityLabel Out Virtual machine labels assigned to the affinity group.
[]
6.8.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.8.2.2. max
Sets the maximum number of virtual machine labels to return. If not specified, all the labels are returned.
6.9. AFFINITYGROUPVMS
This service manages a collection of all the virtual machines assigned to an affinity group.
Name Summary
123
Red Hat Virtualization 4.4 REST API Guide
For example, to add the virtual machine 789 to the affinity group 456 of cluster 123, send a request like
this:
POST /ovirt-engine/api/clusters/123/affinitygroups/456/vms
<vm id="789"/>
vm Vm In/Out
6.9.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.9.2.2. max
Sets the maximum number of virtual machines to return. If not specified, all the virtual machines are
returned.
6.10. AFFINITYGROUPS
The affinity groups service manages virtual machine relationships and dependencies.
124
CHAPTER 6. SERVICES
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>
<hosts_rule>
<enforcing>true</enforcing>
<positive>true</positive>
</hosts_rule>
<vms_rule>
<enabled>false</enabled>
</vms_rule>
</affinity_group>
125
Red Hat Virtualization 4.4 REST API Guide
6.10.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.10.2.2. max
Sets the maximum number of affinity groups to return. If not specified all the affinity groups are
returned.
6.11. AFFINITYLABEL
The details of a single affinity label.
Name Summary
remove Removes a label from the system and clears all assignments of the removed label.
6.11.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
126
CHAPTER 6. SERVICES
Removes a label from the system and clears all assignments of the removed label.
6.12. 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.
6.12.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.13. AFFINITYLABELHOSTS
This service represents list of hosts that have a specific label when accessed through the
127
Red Hat Virtualization 4.4 REST API Guide
This service represents list of hosts that have a specific label when accessed through the
affinitylabels/hosts subcollection.
Name Summary
6.13.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.14. AFFINITYLABELVM
This service represents a vm that has a specific label when accessed through the affinitylabels/vms
subcollection.
128
CHAPTER 6. SERVICES
Name Summary
vm Vm Out
6.14.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.15. AFFINITYLABELVMS
This service represents list of vms that have a specific label when accessed through the
affinitylabels/vms subcollection.
Name Summary
129
Red Hat Virtualization 4.4 REST API Guide
vm Vm In/Out
6.15.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.16. AFFINITYLABELS
Manages the affinity labels available in the system.
Name Summary
130
CHAPTER 6. SERVICES
6.16.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.16.2.2. max
Sets the maximum number of labels to return. If not specified all the labels are returned.
6.17. AREA
This annotation is intended to specify what oVirt area is the annotated concept related to. Currently the
following areas are in use, and they are closely related to the oVirt teams, but not necessarily the same:
Infrastructure
Network
SLA
Storage
Virtualization
The value of this annotation is intended for reporting only, and it doesn’t affect at all the generated code
or the validity of the model
6.18. ASSIGNEDAFFINITYLABEL
This service represents one label to entity assignment when accessed using the entities/affinitylabels
subcollection.
Name Summary
131
Red Hat Virtualization 4.4 REST API Guide
Name Summary
6.18.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.19. ASSIGNEDAFFINITYLABELS
This service is used to list and manipulate affinity labels that are assigned to supported entities when
accessed using entities/affinitylabels.
Name Summary
132
CHAPTER 6. SERVICES
6.19.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.20. ASSIGNEDCPUPROFILE
Table 6.49. Methods summary
Name Summary
get
remove
6.20.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
133
Red Hat Virtualization 4.4 REST API Guide
6.21. ASSIGNEDCPUPROFILES
Table 6.52. Methods summary
Name Summary
6.21.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.21.2.2. max
134
CHAPTER 6. SERVICES
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.22. ASSIGNEDDISKPROFILE
Table 6.55. Methods summary
Name Summary
get
remove
6.22.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.23. ASSIGNEDDISKPROFILES
Table 6.58. Methods summary
Name Summary
list Returns the list of disk profiles assigned to the storage domain.
135
Red Hat Virtualization 4.4 REST API Guide
6.23.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.23.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.24. ASSIGNEDPERMISSIONS
Represents a permission sub-collection, scoped by user, group or some entity type.
Name Summary
136
CHAPTER 6. SERVICES
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"/>
</permission>
137
Red Hat Virtualization 4.4 REST API Guide
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>
6.24.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.25. ASSIGNEDROLES
Represents a roles sub-collection, for example scoped by user.
Name Summary
138
CHAPTER 6. SERVICES
6.25.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.25.1.2. max
Sets the maximum number of roles to return. If not specified all the roles are returned.
6.26. ASSIGNEDTAG
A service to manage assignment of specific tag to specific entities in system.
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
139
Red Hat Virtualization 4.4 REST API Guide
6.26.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
6.27. ASSIGNEDTAGS
A service to manage collection of assignment of tags to specific entities in system.
Name Summary
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
140
CHAPTER 6. SERVICES
<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>
6.27.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.27.2.2. max
Sets the maximum number of tags to return. If not specified all the tags are returned.
6.28. ASSIGNEDVNICPROFILE
Table 6.72. Methods summary
141
Red Hat Virtualization 4.4 REST API Guide
Name Summary
get
remove
6.28.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.29. ASSIGNEDVNICPROFILES
Table 6.75. Methods summary
Name Summary
add Add a new virtual network interface card profile for the network.
142
CHAPTER 6. SERVICES
6.29.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.29.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.30. ATTACHEDSTORAGEDOMAIN
Table 6.78. Methods summary
Name Summary
get
remove
143
Red Hat Virtualization 4.4 REST API Guide
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/>
POST /ovirt-engine/api/datacenters/123/storagedomains/456/deactivate
<action/>
If the force parameter is true then the operation will succeed, even if the OVF update which takes place
before the deactivation of the storage domain failed. If the force parameter is false and the OVF
update failed, the deactivation of the storage domain will also fail.
6.30.2.1. force
Indicates if the operation should succeed and the storage domain should be moved to a deactivated
state, even if the OVF update for the storage domain failed. For example, to deactivate storage domain
456 using force flag, send the following request:
POST /ovirt-engine/api/datacenters/123/storagedomains/456/deactivate
144
CHAPTER 6. SERVICES
<action>
<force>true</force>
<action>
6.30.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.31. ATTACHEDSTORAGEDOMAINDISK
Manages a single disk available in a storage domain attached to a data center.
IMPORTANT
Since version 4.2 of the engine this service is intended only to list disks available in the
storage domain, and to register unregistered disks. All the other operations, like copying a
disk, moving a disk, etc, have been deprecated and will be removed in the future. To
perform those operations use the service that manages all the disks of the system or the
service that manages a specific disk .
145
Red Hat Virtualization 4.4 REST API Guide
Name Summary
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To copy a disk use the copy
operation of the service that manages that disk.
storage_do StorageDom In The storage domain where the new disk will be
main ain created.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To export a disk use the export
operation of the service that manages that disk.
146
CHAPTER 6. SERVICES
storage_do StorageDom In The export storage domain where the disk should be
main ain exported to.
6.31.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To move a disk use the move
operation of the service that manages that disk.
storage_do StorageDom In The storage domain where the disk will be moved to.
main ain
147
Red Hat Virtualization 4.4 REST API Guide
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To remove a disk use the
remove operation of the service that manages that disk.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To remove a disk use the
remove operation of the service that manages that disk.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To update a disk use the update
operation of the service that manages that disk.
6.32. ATTACHEDSTORAGEDOMAINDISKS
Manages the collection of disks available inside an storage domain that is attached to a data center.
Name Summary
list Retrieve the list of disks that are available in the storage domain.
148
CHAPTER 6. SERVICES
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To add a new disk use the add
operation of the service that manages the disks of the system. To register an
unregistered disk use the register operation of the service that manages that disk.
6.32.1.1. unregistered
Indicates if a new disk should be added or if an existing unregistered disk should be registered. If the
value is true then the identifier of the disk to register needs to be provided. For example, to register the
disk with id 456 send a request like this:
POST /ovirt-engine/api/storagedomains/123/disks?unregistered=true
<disk id="456"/>
If the value is false then a new disk will be created in the storage domain. In that case the
provisioned_size, format and name attributes are mandatory. For example, to create a new copy on
write disk of 1 GiB, send a request like this:
POST /ovirt-engine/api/storagedomains/123/disks
<disk>
<name>mydisk</name>
<format>cow</format>
<provisioned_size>1073741824</provisioned_size>
</disk>
149
Red Hat Virtualization 4.4 REST API Guide
6.32.2.1. disks
6.32.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.32.2.3. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.33. ATTACHEDSTORAGEDOMAINS
Manages the storage domains attached to a data center.
Name Summary
list Returns the list of storage domains attached to the data center.
storage_do StorageDom In/Out The storage domain to attach to the data center.
main ain
150
CHAPTER 6. SERVICES
storage_do StorageDom Out A list of storage domains that are attached to the
mains ain[] data center.
6.33.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.33.2.2. max
Sets the maximum number of storage domains to return. If not specified all the storage domains are
returned.
6.34. BALANCE
Table 6.95. Methods summary
Name Summary
get
remove
6.34.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
151
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.35. BALANCES
Table 6.98. Methods summary
Name Summary
list Returns the list of balance modules used by the scheduling policy.
152
CHAPTER 6. SERVICES
6.35.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.35.2.2. max
Sets the maximum number of balances to return. If not specified all the balances are returned.
6.36. BOOKMARK
A service to manage a bookmark.
Name Summary
GET /ovirt-engine/api/bookmarks/123
153
Red Hat Virtualization 4.4 REST API Guide
6.36.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/bookmarks/123
PUT /ovirt-engine/api/bookmarks/123
<bookmark>
<name>new_example_vm</name>
<value>vm: name=new_example*</value>
</bookmark>
6.37. BOOKMARKS
A service to manage bookmarks.
154
CHAPTER 6. SERVICES
Name Summary
POST /ovirt-engine/api/bookmarks
<bookmark>
<name>new_example_vm</name>
<value>vm: name=new_example*</value>
</bookmark>
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>
155
Red Hat Virtualization 4.4 REST API Guide
6.37.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.37.2.2. max
Sets the maximum number of bookmarks to return. If not specified all the bookmarks are returned.
6.38. CLUSTER
A service to manage a specific cluster.
Name Summary
refreshglusterh Refresh the Gluster heal info for all volumes in cluster.
ealstatus
resetemulatedm
achine
upgrade Start, update or finish upgrade process for the cluster based on the action value.
GET /ovirt-engine/api/clusters/123
156
CHAPTER 6. SERVICES
157
Red Hat Virtualization 4.4 REST API Guide
<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>
6.38.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
POST /ovirt-engine/api/clusters/123/refreshglusterhealstatus
DELETE /ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000
158
CHAPTER 6. SERVICES
POST /ovirt-engine/api/clusters/123/syncallnetworks
<action/>
PUT /ovirt-engine/api/clusters/123
<cluster>
<cpu>
<type>Intel Haswell-noTSX Family</type>
</cpu>
</cluster>
159
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/api/clusters/123/upgrade
With a request body like this to mark the cluster for upgrade:
<action>
<upgrade_action>
start
</upgrade_action>
</action>
After starting the upgrade, use a request body like this to update the progress to 15%:
<action>
<upgrade_action>
update_progress
</upgrade_action>
<upgrade_percent_complete>
15
</upgrade_percent_complete>
</action>
6.38.7.1. correlation_id
Explicitly set the upgrade correlation identifier. Use to correlate events detailing the cluster upgrade to
the upgrade itself. If not specificed, the correlation id from Correlation-Id http header will be used.
6.39. CLUSTERENABLEDFEATURE
Represents a feature enabled for the cluster.
160
CHAPTER 6. SERVICES
Name Summary
For example, to find details of the enabled feature 456 for cluster 123, send a request like this:
GET /ovirt-engine/api/clusters/123/enabledfeatures/456
<cluster_feature id="456">
<name>libgfapi_supported</name>
</cluster_feature>
6.39.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
For example, to disable the feature 456 of cluster 123 send a request like this:
DELETE /ovirt-engine/api/clusters/123/enabledfeatures/456
6.40. CLUSTERENABLEDFEATURES
Provides information about the additional features that are enabled for this cluster. The features that
are enabled are the available features for the cluster level
161
Red Hat Virtualization 4.4 REST API Guide
Name Summary
For example, to enable a feature 456 on cluster 123, send a request like this:
POST /ovirt-engine/api/clusters/123/enabledfeatures
<cluster_feature id="456"/>
For example, to get the features enabled for cluster 123 send a request like this:
GET /ovirt-engine/api/clusters/123/enabledfeatures
<enabled_features>
<cluster_feature id="123">
<name>test_feature</name>
</cluster_feature>
...
</enabled_features>
162
CHAPTER 6. SERVICES
6.40.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.41. CLUSTEREXTERNALPROVIDERS
This service lists external providers.
Name Summary
6.41.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.42. CLUSTERFEATURE
Represents a feature enabled for the cluster level
Name Summary
get Provides the information about the a cluster feature supported by a cluster level.
163
Red Hat Virtualization 4.4 REST API Guide
For example, to find details of the cluster feature 456 for cluster level 4.1, send a request like this:
GET /ovirt-engine/api/clusterlevels/4.1/clusterfeatures/456
<cluster_feature id="456">
<name>libgfapi_supported</name>
</cluster_feature>
6.42.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.43. CLUSTERFEATURES
Provides information about the cluster features that are supported by a cluster level.
Name Summary
GET /ovirt-engine/api/clusterlevels/4.1/clusterfeatures
This will return a list of cluster features supported by the cluster level:
<cluster_features>
<cluster_feature id="123">
<name>test_feature</name>
164
CHAPTER 6. SERVICES
</cluster_feature>
...
</cluster_features>
6.43.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.44. 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.
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 Nehalem Family</name>
<level>3</level>
<architecture>x86_64</architecture>
</cpu_type>
...
</cpu_types>
<permits>
<permit id="1">
165
Red Hat Virtualization 4.4 REST API Guide
<name>create_vm</name>
<administrative>false</administrative>
</permit>
...
</permits>
</cluster_level>
6.44.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.45. 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>
166
CHAPTER 6. SERVICES
6.45.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.46. CLUSTERNETWORK
A service to manage a specific cluster network.
Name Summary
6.46.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
167
Red Hat Virtualization 4.4 REST API Guide
6.47. CLUSTERNETWORKS
A service to manage cluster networks.
Name Summary
Post a request like in the example below to assign the network to a cluster:
POST /ovirt-engine/api/clusters/123/networks
168
CHAPTER 6. SERVICES
networks Network[] Out The list of networks that are assigned to the cluster.
6.47.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.47.2.2. max
Sets the maximum number of networks to return. If not specified, all the networks are returned.
6.48. CLUSTERS
A service to manage clusters.
Name Summary
This requires the name, cpu.type, and data_center attributes. Identify the data center with either the id
or name attribute.
POST /ovirt-engine/api/clusters
<cluster>
<name>mycluster</name>
<cpu>
<type>Intel Nehalem Family</type>
</cpu>
<data_center id="123"/>
</cluster>
To create a cluster with an external network provider to be deployed on every host that is added to the
cluster, send a request like this:
POST /ovirt-engine/api/clusters
169
Red Hat Virtualization 4.4 REST API Guide
<cluster>
<name>mycluster</name>
<cpu>
<type>Intel Nehalem Family</type>
</cpu>
<data_center id="123"/>
<external_network_providers>
<external_provider name="ovirt-provider-ovn"/>
</external_network_providers>
</cluster>
The order of the returned clusters is guaranteed only if the sortby clause is included in the search
parameter.
6.48.2.1. case_sensitive
Indicates if the search should be performed taking case into account. The default value is true, which
means that case is taken into account. To search ignoring case, set it to false.
6.48.2.2. follow
170
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.48.2.3. max
Sets the maximum number of clusters to return. If not specified, all the clusters are returned.
6.49. COPYABLE
Table 6.139. Methods summary
Name Summary
copy
6.50. CPUPROFILE
Table 6.141. Methods summary
Name Summary
get
remove
6.50.1.1. follow
171
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.51. CPUPROFILES
Table 6.145. Methods summary
Name Summary
172
CHAPTER 6. SERVICES
6.51.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.51.2.2. max
Sets the maximum number of profiles to return. If not specified, all the profiles are returned.
6.52. DATACENTER
A service to manage a data center.
Name Summary
cleanfinishedta Currently, the storage pool manager (SPM) fails to switch to another host if the SPM
sks has uncleared tasks.
setmaster Used for manually setting a storage domain in the data center as a master.
For example, to clean all the finished tasks on a data center with ID 123 send a request like this:
POST /ovirt-engine/api/datacenters/123/cleanfinishedtasks
173
Red Hat Virtualization 4.4 REST API Guide
<action/>
GET /ovirt-engine/api/datacenters/123
174
CHAPTER 6. SERVICES
6.52.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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.
6.52.3.1. force
Indicates if the operation should succeed, and the storage domain removed from the database, even if
something fails during the operation.
175
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/api/datacenters/123/setmaster
<action>
<storage_domain id="456"/>
</action>
The new master storage domain can be also specified by its name.
storage_do StorageDom In The new master storage domain for the data center.
main ain
The name, description, storage_type, version, storage_format and mac_pool elements are
updatable post-creation. For example, to change the name and description of data center 123 send a
request like this:
PUT /ovirt-engine/api/datacenters/123
<data_center>
<name>myupdatedname</name>
<description>An updated description for the data center</description>
</data_center>
6.53. DATACENTERNETWORK
A service to manage a specific data center network.
176
CHAPTER 6. SERVICES
Name Summary
6.53.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.54. DATACENTERNETWORKS
A service to manage data center networks.
177
Red Hat Virtualization 4.4 REST API Guide
Name Summary
Post a request like in the example below to create a new network in a data center with an ID of 123.
POST /ovirt-engine/api/datacenters/123/networks
<network>
<name>mynetwork</name>
</network>
network Network In/Out The network object to be created in the data center.
networks Network[] Out The list of networks which are in the data center.
6.54.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.54.2.2. max
178
CHAPTER 6. SERVICES
Sets the maximum number of networks to return. If not specified, all the networks are returned.
6.55. DATACENTERS
A service to manage data centers.
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 \
--request GET \
--cacert /etc/pki/ovirt-engine/ca.pem \
179
Red Hat Virtualization 4.4 REST API Guide
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.
The order of the returned list of data centers is guaranteed only if the sortby clause is included in the
search parameter.
180
CHAPTER 6. SERVICES
6.55.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.
6.55.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.55.2.3. max
Sets the maximum number of data centers to return. If not specified all the data centers are returned.
6.56. DISK
Manages a single disk.
Name Summary
refreshlun Refreshes a direct LUN disk with up-to-date information from the storage.
181
Red Hat Virtualization 4.4 REST API Guide
Name Summary
For example, to convert the disk format from preallocated-cow to a sparse-raw image, send a request
like the following:
POST /ovirt-engine/api/disks/123/convert
<action>
<disk>
<sparse>true</sparse>
<format>raw</format>
</disk>
</action>
Note: In order to sparsify a disk, two conversions might be needed if the disk is on a Block Storage
Domain. For example: If a disk is RAW, converting it to QCOW will result in a larger disk. In order to
reduce the size, it is possible to convert the disk again to QCOW and keep the same allocation policy.
6.56.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
POST /ovirt-engine/api/disks/123/copy
182
CHAPTER 6. SERVICES
<action>
<storage_domain id="456"/>
<disk>
<name>mydisk</name>
</disk>
</action>
If the disk profile or the quota currently used by the disk are not defined for the new storage domain,
they can be explicitly specified. If they are not specified, the first available disk profile and the default
quota are used.
For example, to specify disk profile 987 and quota 753, send a request body like this:
<action>
<storage_domain id="456"/>
<disk_profile id="987"/>
<quota id="753"/>
</action>
disk Disk In
disk_profil DiskProfile In Disk profile for the disk in the new storage domain.
e
quota Quota In Quota for the disk in the new storage domain.
storage_do StorageDom In The storage domain where the new disk is created.
main ain
6.56.2.1. disk_profile
Disk profiles are defined for storage domains, so the old disk profile will not exist in the new storage
domain. If this parameter is not used, the first disk profile from the new storage domain to which the user
has permissions will be assigned to the disk.
6.56.2.2. quota
This optional parameter can be used to specify new quota for the disk, because the current quota may
183
Red Hat Virtualization 4.4 REST API Guide
This optional parameter can be used to specify new quota for the disk, because the current quota may
not be defined for the new storage domain. If this parameter is not used and the old quota is not defined
for the new storage domain, the default (unlimited) quota will be assigned to the disk.
6.56.2.3. storage_domain
The storage domain where the new disk is created. This can be specified using the id or name attributes.
For example, to copy a disk to the storage domain called mydata, send a request like this:
POST /ovirt-engine/api/storagedomains/123/disks/789
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
</action>
storage_do StorageDom In The export storage domain where the disk will be
main ain exported to.
184
CHAPTER 6. SERVICES
6.56.4.1. all_content
Indicates if all of the attributes of the disk should be included in the response.
vms
GET /ovirt-engine/api/disks/123?all_content=true
6.56.4.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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>
If the disk profile or the quota used currently by the disk aren’t defined for the new storage domain, then
they can be explicitly specified. If they aren’t then the first available disk profile and the default quota
are used.
For example, to explicitly use disk profile 987 and quota 753 send a request body like this:
<action>
<storage_domain id="456"/>
<disk_profile id="987"/>
<quota id="753"/>
</action>
185
Red Hat Virtualization 4.4 REST API Guide
disk_profil DiskProfile In Disk profile for the disk in the new storage domain.
e
quota Quota In Quota for the disk in the new storage domain.
storage_do StorageDom In The storage domain where the disk will be moved to.
main ain
6.56.5.1. disk_profile
Disk profiles are defined for storage domains, so the old disk profile will not exist in the new storage
domain. If this parameter is not used, the first disk profile from the new storage domain to which the user
has permissions will be assigned to the disk.
6.56.5.2. quota
This optional parameter can be used to specify new quota for the disk, because the current quota may
not be defined for the new storage domain. If this parameter is not used and the old quota is not defined
for the new storage domain, the default (unlimited) quota will be assigned to the disk.
Invokes reduce on the logical volume (i.e. this is only applicable for block storage domains). This is
applicable for floating disks and disks attached to non-running virtual machines. There is no need to
specify the size as the optimal size is calculated automatically.
The LUN was added using the API without the host parameter, and therefore does not contain
186
CHAPTER 6. SERVICES
The LUN was added using the API without the host parameter, and therefore does not contain
any information from the storage (see DisksService::add).
New information about the LUN is available on the storage and you want to update the LUN with
it.
To refresh direct LUN disk 123 using host 456, send the following request:
POST /ovirt-engine/api/disks/123/refreshlun
<action>
<host id='456'/>
</action>
host Host In The host that will be used to refresh the direct LUN
disk.
Sparsification frees space in the disk image that is not used by its filesystem. As a result, the image will
occupy less space on the storage.
Currently sparsification works only on disks without snapshots. Disks having derived disks are also not
allowed.
187
Red Hat Virtualization 4.4 REST API Guide
For example, a disk’s update can be done by using the following request:
PUT /ovirt-engine/api/disks/123
<disk>
<qcow_version>qcow2_v3</qcow_version>
<alias>new-alias</alias>
<description>new-desc</description>
</disk>
Since the backend operation is asynchronous, the disk element that is returned to the user might not be
synced with the changed properties.
6.57. DISKATTACHMENT
This service manages the attachment of a disk to a virtual machine.
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.
GET /ovirt-engine/api/vms/123/diskattachments/456
188
CHAPTER 6. SERVICES
6.57.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
6.57.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.
PUT /vms/{vm:id}/disksattachments/{attachment:id}
189
Red Hat Virtualization 4.4 REST API Guide
<disk_attachment>
<bootable>true</bootable>
<interface>ide</interface>
<active>true</active>
<disk>
<name>mydisk</name>
<provisioned_size>1024</provisioned_size>
...
</disk>
</disk_attachment>
6.58. 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.
<disk_attachment>
<bootable>true</bootable>
<pass_discard>true</pass_discard>
<interface>ide</interface>
<active>true</active>
<disk id="123"/>
</disk_attachment>
Or it can contain the complete representation of the disk, if the disk doesn’t exist yet:
<disk_attachment>
<bootable>true</bootable>
<pass_discard>true</pass_discard>
<interface>ide</interface>
<active>true</active>
190
CHAPTER 6. SERVICES
<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 do not 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.
attachment DiskAttachm In/Out The disk attachment to add to the virtual machine.
ent
attachment DiskAttachm Out A list of disk attachments that are attached to the
s ent[] virtual machine.
6.58.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.59. DISKPROFILE
Table 6.180. Methods summary
191
Red Hat Virtualization 4.4 REST API Guide
Name Summary
get
remove
6.59.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.60. DISKPROFILES
192
CHAPTER 6. SERVICES
Name Summary
6.60.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.60.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.61. DISKSNAPSHOT
Table 6.187. Methods summary
193
Red Hat Virtualization 4.4 REST API Guide
Name Summary
get
remove
6.61.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.62. DISKSNAPSHOTS
Manages the collection of disk snapshots available in an storage domain.
Name Summary
194
CHAPTER 6. SERVICES
6.62.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.62.1.2. include_active
If true return also active snapshots. If not specified active snapshots are not returned.
6.62.1.3. include_template
If true return also template snapshots. If not specified template snapshots are not returned.
6.62.1.4. max
Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
6.63. DISKS
Manages the collection of disks available in the system.
Name Summary
There are three types of disks that can be added - disk image, direct LUN and Managed Block disk.
195
Red Hat Virtualization 4.4 REST API Guide
There are three types of disks that can be added - disk image, direct LUN and Managed Block disk.
Cinder integration has been replaced by Managed Block Storage.
When creating a new floating image Disk, the API requires the storage_domain, provisioned_size and
format attributes.
Note that block storage domains (i.e. storage domains with the storage type of iSCSI or FCP) do not
support the combination of the raw format with sparse=true, so sparse=false must be stated explicitly.
To create a new floating image disk with specified provisioned_size, format and name on a storage
domain with an id 123 and enabled for incremental backup, send a request as follows:
POST /ovirt-engine/api/disks
<disk>
<storage_domains>
<storage_domain id="123"/>
</storage_domains>
<name>mydisk</name>
<provisioned_size>1048576</provisioned_size>
<format>cow</format>
<backup>incremental</backup>
</disk>
When adding a new floating direct LUN via the API, there are two flavors that can be used:
1. With a host element - in this case, the host is used for sanity checks (e.g., that the LUN is
visible) and to retrieve basic information about the LUN (e.g., size and serial).
2. Without a host element - in this case, the operation is a database-only operation, and the
storage is never accessed.
To create a new floating direct LUN disk with a host element with an id 123, specified alias, type and
logical_unit with an id 456 (that has the attributes address, port and target), send a request as follows:
POST /ovirt-engine/api/disks
<disk>
<alias>mylun</alias>
<lun_storage>
<host id="123"/>
<type>iscsi</type>
<logical_units>
<logical_unit id="456">
<address>10.35.10.20</address>
<port>3260</port>
<target>iqn.2017-01.com.myhost:444</target>
196
CHAPTER 6. SERVICES
</logical_unit>
</logical_units>
</lun_storage>
</disk>
To create a new floating direct LUN disk without using a host, remove the host element.
Since version 4.2 of the engine it is possible to upload disks with snapshots. This request should be used
to create the base image of the images chain (The consecutive disk snapshots (images), should be
created using disk-attachments element when creating a snapshot).
The disk has to be created with the same disk identifier and image identifier of the uploaded image. I.e.
the identifiers should be saved as part of the backup process. The image identifier can be also fetched
using the qemu-img info command. For example, if the disk image is stored into a file named
b7a4c6c5-443b-47c5-967f-6abc79675e8b/myimage.img:
To create a disk with with the disk identifier and image identifier obtained with the qemu-img info
command shown above, send a request like this:
POST /ovirt-engine/api/disks
<disk id="b7a4c6c5-443b-47c5-967f-6abc79675e8b">
<image_id>b548366b-fb51-4b41-97be-733c887fe305</image_id>
<storage_domains>
<storage_domain id="123"/>
</storage_domains>
<name>mydisk</name>
<provisioned_size>1048576</provisioned_size>
<format>cow</format>
</disk>
197
Red Hat Virtualization 4.4 REST API Guide
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>
The order of the returned list of disks is guaranteed only if the sortby clause is included in the search
parameter.
6.63.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.
198
CHAPTER 6. SERVICES
6.63.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.63.2.3. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.64. DOMAIN
A service to view details of an authentication domain in the system.
Name Summary
Usage:
GET /ovirt-engine/api/domains/5678
6.64.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
199
Red Hat Virtualization 4.4 REST API Guide
6.65. DOMAINGROUP
Table 6.197. Methods summary
Name Summary
get
6.65.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.66. DOMAINGROUPS
Table 6.199. Methods summary
Name Summary
200
CHAPTER 6. SERVICES
6.66.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.
6.66.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.66.1.3. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
6.67. DOMAINUSER
A service to view a domain user in the system.
Name Summary
Usage:
GET /ovirt-engine/api/domains/5678/users/1234
201
Red Hat Virtualization 4.4 REST API Guide
</domain>
<groups/>
</user>
6.67.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.68. DOMAINUSERGROUPS
A service that shows a user’s group membership in the AAA extension.
Name Summary
list Returns the list of groups that the user is a member of.
groups Group[] Out The list of groups that the user is a member of.
6.68.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.69. DOMAINUSERS
A service to list all domain users in the system.
202
CHAPTER 6. SERVICES
Name Summary
Usage:
GET /ovirt-engine/api/domains/5678/users
<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>
6.69.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.
203
Red Hat Virtualization 4.4 REST API Guide
6.69.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.69.1.3. max
Sets the maximum number of users to return. If not specified all the users are returned.
6.70. DOMAINS
A service to list all authentication domains in the system.
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>
204
CHAPTER 6. SERVICES
6.70.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.70.1.2. max
Sets the maximum number of domains to return. If not specified all the domains are returned.
6.71. ENGINEKATELLOERRATA
A service to manage Katello errata assigned to the engine. 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>
...
</katello_errata>
205
Red Hat Virtualization 4.4 REST API Guide
6.71.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.71.1.2. max
Sets the maximum number of errata to return. If not specified all the errata are returned.
6.72. EVENT
A service to manage an event in the system.
Name Summary
GET /ovirt-engine/api/events/123
206
CHAPTER 6. SERVICES
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.
6.72.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/events/123
6.73. EVENTSUBSCRIPTION
A service to manage a specific event-subscription in the system.
Name Summary
207
Red Hat Virtualization 4.4 REST API Guide
For example to retrieve the information about the subscription of user '123' to the event
'vm_console_detected':
GET /ovirt-engine/api/users/123/vm_console_detected
<event-subscription href="/ovirt-engine/api/users/123/event-subscriptions/vm_console_detected">
<event>vm_console_detected</event>
<notification_method>smtp</notification_method>
<user href="/ovirt-engine/api/users/123" id="123"/>
<address>[email protected]</address>
</event-subscription>
DELETE /ovirt-engine/api/users/123/vm_console_detected
6.74. EVENTSUBSCRIPTIONS
Represents a service to manage collection of event-subscription of a user.
Name Summary
208
CHAPTER 6. SERVICES
An event-subscription is always added in the context of a user. For example, to add new event-
subscription for host_high_cpu_use for user 123, and have the notification sent to the e-mail address:
[email protected], send a request like this:
POST /ovirt-engine/api/users/123/eventsubscriptions
<event_subscription>
<event>host_high_cpu_use</event>
<address>[email protected]</address>
</event_subscription>
The event name will become the ID of the new event-subscription entity: GET …
/api/users/123/eventsubscriptions/host_high_cpu_use
Note that no user id is provided in the request body. This is because the user-id (in this case 123) is
already known to the API from the context. Note also that event-subscription entity contains
notification-method field, but it is not provided either in the request body. This is because currently it’s
always set to SMTP as SNMP notifications are still unsupported by the API layer.
GET /ovirt-engine/api/users/123/event-subscriptions
<event-subscriptions>
<event-subscription href="/ovirt-engine/api/users/123/event-subscriptions/host_install_failed">
<event>host_install_failed</event>
<notification_method>smtp</notification_method>
<user href="/ovirt-engine/api/users/123" id="123"/>
<address>[email protected]</address>
</event-subscription>
<event-subscription href="/ovirt-engine/api/users/123/event-subscriptions/vm_paused">
<event>vm_paused</event>
<notification_method>smtp</notification_method>
<user href="/ovirt-engine/api/users/123" id="123"/>
<address>[email protected]</address>
</event-subscription>
</event-subscriptions>
209
Red Hat Virtualization 4.4 REST API Guide
event_subs EventSubscri Out List of the event-subscriptions for the specified user
criptions ption[]
6.74.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.74.2.2. max
Sets the maximum number of event-subscriptions to return. If not specified all the event-subscriptions
are returned.
6.75. EVENTS
A service to manage events in the system.
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>
210
CHAPTER 6. SERVICES
<origin>mymonitor</origin>
<custom_id>1467879754</custom_id>
</event>
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>
211
Red Hat Virtualization 4.4 REST API Guide
<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>
</events>
The order of the returned list of events is always garanteed. If the sortby clause is included in the
search parameter, then the events will be ordered according to that clause. If the sortby clause isn’t
included, then the events will be sorted by the numeric value of the id attribute, starting with the highest
value. This, combined with the max parameter, simplifies obtaining the most recent event:
GET /ovirt-engine/api/events?max=1
from Integer In Indicates the event index after which events should
be returned.
6.75.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.
6.75.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
212
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.75.2.3. from
Indicates the event index after which events should be returned. The indexes of events are strictly
increasing, so when this parameter is used only the events with greater indexes will be returned. For
example, the following request will return only the events with indexes greater than 123:
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.
6.75.2.4. max
Sets the maximum number of events to return. If not specified all the events are returned.
6.75.2.5. 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
213
Red Hat Virtualization 4.4 REST API Guide
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:
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%201
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%202
6.76. EXTERNALCOMPUTERESOURCE
Manages a single external compute resource.
Compute resource is a term of host external provider. The external provider also needs to know to where
the provisioned host needs to register. The login details of the engine are saved as a compute resource
in the external provider side.
Name Summary
For example, to get the details of compute resource 234 of provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123/computeresources/234
<external_compute_resource href="/ovirt-
engine/api/externalhostproviders/123/computeresources/234" id="234">
<name>hostname</name>
<provider>oVirt</provider>
214
CHAPTER 6. SERVICES
<url>https://hostname/api</url>
<user>admin@internal</user>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_compute_resource>
6.76.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.77. EXTERNALCOMPUTERESOURCES
Manages a collection of external compute resources.
Compute resource is a term of host external provider. The external provider also needs to know to where
the provisioned host needs to register. The login details of the engine is saved as a compute resource in
the external provider side.
Name Summary
For example, to retrieve the compute resources of external host provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123/computeresources
<external_compute_resources>
<external_compute_resource href="/ovirt-
engine/api/externalhostproviders/123/computeresources/234" id="234">
<name>hostname</name>
<provider>oVirt</provider>
<url>https://address/api</url>
<user>admin@internal</user>
215
Red Hat Virtualization 4.4 REST API Guide
6.77.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.77.1.2. max
Sets the maximum number of resources to return. If not specified all the resources are returned.
6.78. EXTERNALDISCOVEREDHOST
This service manages a single discovered host.
Name Summary
Retrieves information about an host that is managed in external provider management system, such as
Foreman. The information includes hostname, address, subnet, base image and more.
For example, to get the details of host 234 from provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123/discoveredhosts/234
216
CHAPTER 6. SERVICES
<external_discovered_host href="/ovirt-engine/api/externalhostproviders/123/discoveredhosts/234"
id="234">
<name>mac001a4ad04040</name>
<ip>10.34.67.43</ip>
<last_report>2017-04-24 11:05:41 UTC</last_report>
<mac>00:1a:4a:d0:40:40</mac>
<subnet_name>sat0</subnet_name>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_discovered_host>
6.78.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.79. EXTERNALDISCOVEREDHOSTS
This service manages external discovered hosts.
Name Summary
To list all discovered hosts for provider 123 send the following:
GET /ovirt-engine/api/externalhostproviders/123/discoveredhost
<external_discovered_hosts>
<external_discovered_host href="/ovirt-engine/api/externalhostproviders/123/discoveredhosts/456"
id="456">
<name>mac001a4ad04031</name>
<ip>10.34.67.42</ip>
<last_report>2017-04-24 11:05:41 UTC</last_report>
<mac>00:1a:4a:d0:40:31</mac>
217
Red Hat Virtualization 4.4 REST API Guide
<subnet_name>sat0</subnet_name>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_discovered_host>
<external_discovered_host href="/ovirt-engine/api/externalhostproviders/123/discoveredhosts/789"
id="789">
<name>mac001a4ad04040</name>
<ip>10.34.67.43</ip>
<last_report>2017-04-24 11:05:41 UTC</last_report>
<mac>00:1a:4a:d0:40:40</mac>
<subnet_name>sat0</subnet_name>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_discovered_host>
...
</external_discovered_hosts>
6.79.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.79.1.2. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
6.80. EXTERNALHOST
Table 6.232. Methods summary
Name Summary
get
218
CHAPTER 6. SERVICES
6.80.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.81. EXTERNALHOSTGROUP
This service manages a single host group information.
Host group is a term of host provider - the host group includes provision details that are applied to new
discovered host. Information such as subnet, operating system, domain, etc.
Name Summary
For example, to get the details of hostgroup 234 of provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123/hostgroups/234
219
Red Hat Virtualization 4.4 REST API Guide
6.81.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.82. EXTERNALHOSTGROUPS
This service manages hostgroups.
Name Summary
Host group is a term of host providers - the host group includes provision details. This API returns all
possible hostgroups exposed by the external provider.
For example, to get the details of all host groups of provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123/hostgroups
<external_host_groups>
<external_host_group href="/ovirt-engine/api/externalhostproviders/123/hostgroups/234" id="234">
<name>rhel7</name>
<architecture_name>x86_64</architecture_name>
<domain_name>example.com</domain_name>
<operating_system_name>RedHat 7.3</operating_system_name>
<subnet_name>sat0</subnet_name>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_host_group>
...
</external_host_groups>
220
CHAPTER 6. SERVICES
groups ExternalHost Out List of all hostgroups available for external host
Group[] provider
6.82.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.82.1.2. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
6.83. EXTERNALHOSTPROVIDER
Represents an external host provider, such as Foreman or Satellite.
See Foreman documentation for details. See Satellite documentation for details.
Name Summary
remove
testconnectivity In order to test connectivity for external provider we need to run following request
where 123 is an id of a provider.
Host provider, Foreman or Satellite, can be set as an external provider in ovirt. To see details about
specific host providers attached to ovirt use this API.
221
Red Hat Virtualization 4.4 REST API Guide
For example, to get the details of host provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123
6.83.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
certificates Certificate[] In
222
CHAPTER 6. SERVICES
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
6.84. EXTERNALHOSTPROVIDERS
Table 6.244. Methods summary
Name Summary
223
Red Hat Virtualization 4.4 REST API Guide
6.84.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.84.2.2. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
6.85. EXTERNALHOSTS
Table 6.247. Methods summary
Name Summary
224
CHAPTER 6. SERVICES
6.85.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.85.1.2. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
6.86. EXTERNALNETWORKPROVIDERCONFIGURATION
Describes how an external network provider is provisioned by the system on the host.
Name Summary
get Returns the information about an external network provider on the host.
6.86.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.87. EXTERNALNETWORKPROVIDERCONFIGURATIONS
A service to list all external network providers provisioned by the system on the host.
Name Summary
list Returns the list of all external network providers on the host.
225
Red Hat Virtualization 4.4 REST API Guide
6.87.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.88. EXTERNALPROVIDER
Provides capability to manage external providers.
Name Summary
testconnectivity In order to test connectivity for external provider we need to run following request
where 123 is an id of a provider.
certificates Certificate[] In
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
226
CHAPTER 6. SERVICES
6.89. EXTERNALPROVIDERCERTIFICATE
A service to view specific certificate for external provider.
Name Summary
GET /ovirt-engine/api/externalhostproviders/123/certificate/0
<certificate id="0">
<organization>provider.example.com</organization>
<subject>CN=provider.example.com</subject>
<content>...</content>
</certificate>
6.89.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.90. EXTERNALPROVIDERCERTIFICATES
A service to view certificates for external provider.
227
Red Hat Virtualization 4.4 REST API Guide
Name Summary
GET /ovirt-engine/api/externalhostproviders/123/certificates
<certificates>
<certificate id="789">...</certificate>
...
</certificates>
The order of the returned certificates is always guaranteed to be the sign order: the first is the
certificate of the server itself, the second the certificate of the CA that signs the first, so on.
6.90.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.90.1.2. max
Sets the maximum number of certificates to return. If not specified all the certificates are returned.
6.91. EXTERNALTEMPLATEIMPORTS
Provides capability to import external templates. Currently supports OVA only.
Name Summary
228
CHAPTER 6. SERVICES
For example import of a template OVA can be facilitated using the following request:
POST /externaltemplateimports
<external_template_import>
<template>
<name>my_template</name>
</template>
<cluster id="2b18aca2-4469-11eb-9449-482ae35a5f83" />
<storage_domain id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
<url>ova:///mnt/ova/ova_template.ova</url>
<host id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
</external_template_import>
6.92. EXTERNALVMIMPORTS
Provides capability to import external virtual machines.
Name Summary
add 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>
229
Red Hat Virtualization 4.4 REST API Guide
<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>
6.93. FENCEAGENT
A service to manage fence agent for a specific host.
Name Summary
GET /ovirt-engine/api/hosts/123/fenceagents/0
<agent id="0">
<type>apc</type>
<order>1</order>
<ip>192.168.1.101</ip>
<user>user</user>
<password>xxx</password>
<port>9</port>
<options>name1=value1, name2=value2</options>
</agent>
230
CHAPTER 6. SERVICES
6.93.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/hosts/123/fenceagents/0
6.94. FENCEAGENTS
A service to manage fence agents for a specific host.
Name Summary
231
Red Hat Virtualization 4.4 REST API Guide
Name Summary
list Returns the list of fencing agents configured for the host.
POST /ovirt-engine/api/hosts/123/fenceagents
<agent>
<type>apc</type>
<order>1</order>
<ip>192.168.1.101</ip>
<user>user</user>
<password>xxx</password>
<port>9</port>
<options>slot=7[,name1=value1, name2=value2,...]</options>
</agent>
apc_snmp, hpblade, ilo, ilo2, ilo_ssh, redfish, rsa fencing agent/s sample request:
<agent>
<type>apc_snmp</type>
<order>1</order>
<ip>192.168.1.101</ip>
<user>user</user>
<password>xxx</password>
<port>9</port>
<options>[name1=value1, name2=value2,...]</options>
</agent>
<agent>
<type>cisco_ucs</type>
<order>1</order>
<ip>192.168.1.101</ip>
<user>user</user>
<password>xxx</password>
<options>slot=7[,name1=value1, name2=value2,...]</options>
</agent>
232
CHAPTER 6. SERVICES
<agent>
<type>drac7</type>
<order>1</order>
<ip>192.168.1.101</ip>
<user>user</user>
<password>xxx</password>
<options>[name1=value1, name2=value2,...]</options>
</agent>
GET /ovirt-engine/api/hosts/123/fenceagents
<agents>
<agent id="0">
<type>apc</type>
<order>1</order>
<ip>192.168.1.101</ip>
<user>user</user>
<password>xxx</password>
<port>9</port>
<options>name1=value1, name2=value2</options>
</agent>
</agents>
6.94.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
233
Red Hat Virtualization 4.4 REST API Guide
6.94.2.2. max
Sets the maximum number of agents to return. If not specified all the agents are returned.
6.95. FILE
Table 6.271. Methods summary
Name Summary
get
6.95.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.96. FILES
Provides a way for clients to list available files.
This service is specifically targeted to ISO storage domains, which contain ISO images and virtual floppy
disks (VFDs) that an administrator uploads.
The addition of a CD-ROM device to a virtual machine requires an ISO image from the files of an ISO
storage domain.
Name Summary
list Returns the list of ISO images and virtual floppy disks available in the storage domain.
If the refresh parameter is false, the returned list may not reflect recent changes to the storage domain;
for example, it may not contain a new ISO file that was recently added. This is because the server caches
234
CHAPTER 6. SERVICES
the list of files to improve performance. To get the very latest results, set the refresh parameter to
true.
The default value of the refresh parameter is true, but it can be changed using the configuration value
ForceRefreshDomainFilesByDefault:
# engine-config -s ForceRefreshDomainFilesByDefault=false
IMPORTANT
Setting the value of the refresh parameter to true has an impact on the performance of
the server. Use it only if necessary.
6.96.1.1. case_sensitive
Indicates if the search performed using the search parameter should take case into account. The
default value is true.
6.96.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.96.1.3. max
Sets the maximum number of files to return. If not specified, all the files are returned.
6.97. FILTER
Table 6.275. Methods summary
235
Red Hat Virtualization 4.4 REST API Guide
Name Summary
get
remove
6.97.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.98. FILTERS
Manages the filters used by an scheduling policy.
Name Summary
236
CHAPTER 6. SERVICES
6.98.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.98.2.2. max
Sets the maximum number of filters to return. If not specified all the filters are returned.
6.99. FOLLOW
6.100. GLUSTERBRICK
This service manages a single gluster brick.
Name Summary
237
Red Hat Virtualization 4.4 REST API Guide
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
<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,swidth=2048,noquota</mnt_o
ptions>
<pid>25589</pid>
<port>49155</port>
</brick>
238
CHAPTER 6. SERVICES
6.100.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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:
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
239
Red Hat Virtualization 4.4 REST API Guide
6.101. GLUSTERBRICKS
This service manages the gluster bricks in a gluster volume
Name Summary
activate Activate the bricks post data migration of remove brick operation.
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>
240
CHAPTER 6. 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:
GET /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks
<bricks>
241
Red Hat Virtualization 4.4 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>
</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>
The order of the returned list is based on the brick order provided at gluster volume creation.
6.101.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.101.3.2. 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>
<brick>
242
CHAPTER 6. SERVICES
<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>
243
Red Hat Virtualization 4.4 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>
6.101.6.1. bricks
List of bricks for which data migration needs to be stopped. This list should match the arguments passed
to migrate.
6.102. GLUSTERHOOK
Table 6.292. Methods summary
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.
244
CHAPTER 6. SERVICES
Name Summary
6.102.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
245
Red Hat Virtualization 4.4 REST API Guide
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.
host Host In
resolution_ String In
type
6.103. GLUSTERHOOKS
Table 6.298. Methods summary
Name Summary
246
CHAPTER 6. SERVICES
6.103.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.103.1.2. max
Sets the maximum number of hooks to return. If not specified all the hooks are returned.
6.104. GLUSTERVOLUME
This service manages a single gluster volume.
Name Summary
247
Red Hat Virtualization 4.4 REST API Guide
Name Summary
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>
248
CHAPTER 6. SERVICES
6.104.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
For example, to get profile statistics for a gluster volume with identifier 123 in cluster 456, send a
request like this:
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_layout Boolean In If set to true, rebalance will only fix the layout so that
new data added to the volume is distributed across
all the hosts.
6.104.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
249
Red Hat Virtualization 4.4 REST API Guide
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.
6.104.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
250
CHAPTER 6. SERVICES
<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>
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
251
Red Hat Virtualization 4.4 REST API Guide
6.104.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
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
252
CHAPTER 6. SERVICES
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
6.105. GLUSTERVOLUMES
This service manages a collection of gluster volumes available in a cluster.
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
253
Red Hat Virtualization 4.4 REST API Guide
<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>
<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
254
CHAPTER 6. SERVICES
6.105.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.
6.105.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.105.2.3. max
Sets the maximum number of volumes to return. If not specified all the volumes are returned.
6.106. GROUP
Manages a group of users. Use this service to either get groups details or remove groups. In order to add
new groups please use service that manages the collection of groups.
Name Summary
Usage:
GET /ovirt-engine/api/groups/123
255
Red Hat Virtualization 4.4 REST API Guide
<domain_entry_id>476652557A382F67696B6D2B32762B37796E46476D513D3D</domain_entry_id
>
<namespace>DC=example,DC=com</namespace>
<domain href="/ovirt-engine/api/domains/ABCDEF" id="ABCDEF">
<name>myextension-authz</name>
</domain>
</group>
6.106.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
Usage:
DELETE /ovirt-engine/api/groups/123
6.107. GROUPS
Manages the collection of groups of users.
Name Summary
256
CHAPTER 6. SERVICES
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>
Usage:
GET /ovirt-engine/api/groups
<groups>
<group href="/ovirt-engine/api/groups/123" id="123">
<name>mygroup</name>
<link href="/ovirt-engine/api/groups/123/roles" rel="roles"/>
<link href="/ovirt-engine/api/groups/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/groups/123/tags" rel="tags"/>
<domain_entry_id>476652557A382F67696B6D2B32762B37796E46476D513D3D</domain_entry_id
>
<namespace>DC=example,DC=com</namespace>
<domain href="/ovirt-engine/api/domains/ABCDEF" id="ABCDEF">
<name>myextension-authz</name>
</domain>
</group>
...
</groups>
257
Red Hat Virtualization 4.4 REST API Guide
6.107.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.
6.107.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.107.2.3. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
6.108. HOST
A service to manage a host.
Name Summary
activate Activates the host for use, for example to run virtual machines.
approve Approve a pre-installed Hypervisor host for usage in the virtualization environment.
commitnetconfi Marks the network configuration as good and persists it inside the host.
g
copyhostnetwor Copy the network configuration of the specified host to current host.
ks
258
CHAPTER 6. SERVICES
Name Summary
discoveriscsi Discovers iSCSI targets on the host, using the initiator details.
install Installs the latest version of VDSM and related software on the host.
iscsilogin Login to iSCSI targets on the host, using the target details.
setupnetworks This method is used to change the configuration of the network interfaces of a host.
syncallnetworks To synchronize all networks on the host, send a request like this:
unregisteredsto Discovers the block Storage Domains which are candidates to be imported to the setup.
ragedomainsdis
cover
259
Red Hat Virtualization 4.4 REST API Guide
This action also accepts an optional cluster element to define the target cluster for this host.
activate Boolean In When set to 'true', this host will be activated after its
approval completes.
cluster Cluster In The cluster where the host will be added after it is
approved.
6.108.2.1. activate
When set to 'true', this host will be activated after its approval completes. When set to 'false' the host
will remain in 'maintenance' status after its approval. Absence of this parameter will be interpreted as
'true', since the desired default behavior is activating the host after approval.
6.108.2.2. reboot
Indicates if the host should be rebooted after successful installation. The default value is true.
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.
IMPORTANT
260
CHAPTER 6. SERVICES
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/>
IMPORTANT
IMPORTANT
Any network attachments that are not present on the source host will be erased from the
target host by the copy operation.
POST /ovirt-engine/api/hosts/123/copyhostnetworks
<action>
<source_host id="456"/>
</action>
261
Red Hat Virtualization 4.4 REST API Guide
reason String In
6.108.5.1. stop_gluster_service
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.
For example, to discover iSCSI targets available in myiscsi.example.com, from host 123, send a request
like this:
POST /ovirt-engine/api/hosts/123/discoveriscsi
<action>
<iscsi>
<address>myiscsi.example.com</address>
</iscsi>
</action>
<discovered_targets>
262
CHAPTER 6. SERVICES
<iscsi_details>
<address>10.35.1.72</address>
<port>3260</port>
<portal>10.35.1.72:3260,1</portal>
<target>iqn.2015-08.com.tgt:444</target>
</iscsi_details>
</discovered_targets>
IMPORTANT
When using this method to discover iscsi targets, you can use an FQDN or an IP address,
but you must use the iscsi details from the discovered targets results to log in using the
iscsilogin method.
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
263
Red Hat Virtualization 4.4 REST API Guide
--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"
fence_type String In
POST /ovirt-engine/api/hosts/123/forceselectspm
<action/>
264
CHAPTER 6. SERVICES
GET /ovirt-engine/api/hosts/123
6.108.10.1. all_content
Indicates if all of the attributes of the host should be included in the response.
hosted_engine
GET /ovirt-engine/api/hosts/123?all_content=true
NOTE
These attributes are not included by default because retrieving them impacts
performance. They are seldom used and require additional queries to the database. Use
this parameter with caution and only when specifically required.
6.108.10.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
The action also performs every configuration steps on the host which is done during adding host to the
engine: kdump configuration, hosted-engine deploy, kernel options changes, etc.
curl \
--verbose \
265
Red Hat Virtualization 4.4 REST API Guide
--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"
"deploy_hosted_engine" : "true"
}
'\
"https://engine.example.com/ovirt-engine/api/hosts/123"
IMPORTANT
Since version 4.1.2 of the engine, when a host is reinstalled we override the host firewall
definitions by default.
activate Boolean In When set to 'true', this host will be activated after its
installation completes.
deploy_ho Boolean In When set to true this host will also deploy the self-
sted_engin hosted engine components.
e
266
CHAPTER 6. SERVICES
undeploy_ Boolean In When set to true this host will un-deploy the self-
hosted_en hosted engine components, and this host will not
gine function as part of the High Availability cluster.
6.108.11.1. activate
When set to 'true', this host will be activated after its installation completes. When set to 'false' the host
will remain in 'maintenance' status after its installation. Absence of this parameter will be interpreted as
'true', since the desired default behavior is activating the host after install.
6.108.11.2. deploy_hosted_engine
When set to true this host will also deploy the self-hosted engine components. A missing value is treated
as true i.e deploy. Omitting this parameter means false and will not perform any operation in the self-
hosted engine area.
6.108.11.3. reboot
Indicates if the host should be rebooted after successful installation. The default value is true.
6.108.11.4. undeploy_hosted_engine
When set to true this host will un-deploy the self-hosted engine components, and this host will not
function as part of the High Availability cluster. A missing value is treated as true i.e un-deploy. Omitting
this parameter means false and will not perform any operation in the self-hosted engine area.
Discovers iSCSI targets on the host, using the initiator details. Returns an array of strings containing the
discovered data.
For example, to discover iSCSI targets available in myiscsi.example.com, from host 123, send a request
267
Red Hat Virtualization 4.4 REST API Guide
For example, to discover iSCSI targets available in myiscsi.example.com, from host 123, send a request
like this:
POST /ovirt-engine/api/hosts/123/iscsidiscover
<action>
<iscsi>
<address>myiscsi.example.com</address>
</iscsi>
</action>
6.108.12.1. iscsi_targets
IMPORTANT
When using this method to log in, you must use the iscsi details from the discovered
targets results in the discoveriscsi method.
268
CHAPTER 6. SERVICES
#!/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"
For example, if you have a host with three network interfaces eth0, eth1 and eth2 and 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 \
269
Red Hat Virtualization 4.4 REST API Guide
--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>
<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>
<ip_address_assignment>
<assignment_method>static</assignment_method>
<ip>
<address>192.168.122.10</address>
<netmask>255.255.255.0</netmask>
</ip>
</ip_address_assignment>
</ip_address_assignments>
<dns_resolver_configuration>
<name_servers>
<name_server>1.1.1.1</name_server>
<name_server>2.2.2.2</name_server>
</name_servers>
</dns_resolver_configuration>
270
CHAPTER 6. SERVICES
</network_attachment>
</modified_network_attachments>
</action>
'\
"${url}/hosts/1ff7a191-2f3b-4eff-812b-9f91a30c3acc/setupnetworks"
NOTE
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:
The same thing can be done using the Python SDK with the following code:
# Configure the network adding a bond with two slaves and attaching it to a
# network with an static IP address:
host_service.setup_networks(
modified_bonds=[
types.HostNic(
name='bond0',
bonding=types.Bonding(
options=[
types.Option(
name='mode',
value='4',
),
types.Option(
name='miimon',
value='100',
),
],
slaves=[
types.HostNic(
name='eth1',
),
types.HostNic(
name='eth2',
),
],
),
),
271
Red Hat Virtualization 4.4 REST API Guide
],
modified_network_attachments=[
types.NetworkAttachment(
network=types.Network(
name='myvlan',
),
host_nic=types.HostNic(
name='bond0',
),
ip_address_assignments=[
types.IpAddressAssignment(
assignment_method=types.BootProtocol.STATIC,
ip=types.Ip(
address='192.168.122.10',
netmask='255.255.255.0',
),
),
],
dns_resolver_configuration=types.DnsResolverConfiguration(
name_servers=[
'1.1.1.1',
'2.2.2.2',
],
),
),
],
)
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.
IMPORTANT
272
CHAPTER 6. SERVICES
check_con Boolean In
nectivity
connectivit Integer In
y_timeout
modified_b HostNic[] In
onds
modified_l NetworkLab In
abels el[]
modified_n NetworkAtta In
etwork_att chment[]
achments
removed_b HostNic[] In
onds
removed_l NetworkLab In
abels el[]
removed_n NetworkAtta In
etwork_att chment[]
achments
6.108.16.1. commit_on_success
Specifies whether to automatically save the configuration in the {hypervisor-name} upon completing
the setup and re-establishing connectivity between the {hypervisor-name} and Red Hat Virtualization
Manager, and without waiting for a separate commitnetconfig request. The default value is false, which
means that the configuration will not be saved automatically.
273
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/api/hosts/123/syncallnetworks
<action/>
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>
274
CHAPTER 6. SERVICES
6.108.20.1. reboot
Indicates if the host should be rebooted after the upgrade. By default the host is rebooted.
NOTE
This parameter is ignored for {hypervisor-name}, which is always rebooted after the
upgrade.
6.108.20.2. timeout
Upgrade timeout.
The maximum time to wait for upgrade to finish in minutes. Default value is specified by
ANSIBLE_PLAYBOOK_EXEC_DEFAULT_TIMEOUT configration option.
275
Red Hat Virtualization 4.4 REST API Guide
6.109. HOSTCPUUNITS
Table 6.343. Methods summary
Name Summary
list Returns the List of all host’s CPUs with detailed information about the topology
(socket, core) and with information about the current CPU pinning.
6.109.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.110. HOSTDEVICE
A service to access a particular device of a host.
Name Summary
GET /ovirt-engine/api/hosts/123/devices/456
276
CHAPTER 6. SERVICES
6.110.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.111. HOSTDEVICES
A service to access host devices.
Name Summary
6.111.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
277
Red Hat Virtualization 4.4 REST API Guide
6.111.1.2. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
6.112. HOSTHOOK
Table 6.349. Methods summary
Name Summary
get
6.112.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.113. HOSTHOOKS
Table 6.351. Methods summary
Name Summary
278
CHAPTER 6. SERVICES
6.113.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.113.1.2. max
Sets the maximum number of hooks to return. If not specified, all the hooks are returned.
6.114. HOSTNIC
A service to manage a network interface of a host.
Name Summary
get
updatevirtualfu The action updates virtual function configuration in case the current resource
nctionsconfigur represents an SR-IOV enabled NIC.
ation
6.114.1.1. all_content
Indicates if all of the attributes of the host network interface should be included in the response.
virtual_functions_configuration
279
Red Hat Virtualization 4.4 REST API Guide
For example, to retrieve the complete representation network interface '456' of host '123':
GET /ovirt-engine/api/hosts/123/nics/456?all_content=true
NOTE
These attributes are not included by default because retrieving them impacts
performance. They are seldom used and require additional queries to the database. Use
this parameter with caution and only when specifically required.
6.114.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
allNetworksAllowed
numberOfVirtualFunctions
Please see the HostNicVirtualFunctionsConfiguration type for the meaning of the properties.
virtual_fun HostNicVirtu In
ctions_con alFunctionsC
figuration onfiguration
6.115. HOSTNICS
A service to manage the network interfaces of a host.
Name Summary
280
CHAPTER 6. SERVICES
6.115.1.1. all_content
Indicates if all of the attributes of the host network interface should be included in the response.
virtual_functions_configuration
For example, to retrieve the complete representation of network interface '456' of host '123':
GET /ovirt-engine/api/hosts/123/nics?all_content=true
NOTE
These attributes are not included by default because retrieving them impacts
performance. They are seldom used and require additional queries to the database. Use
this parameter with caution and only when specifically required.
6.115.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.115.1.3. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.116. HOSTNUMANODE
Table 6.358. Methods summary
Name Summary
get
281
Red Hat Virtualization 4.4 REST API Guide
6.116.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.117. HOSTNUMANODES
Table 6.360. Methods summary
Name Summary
6.117.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.117.1.2. max
Sets the maximum number of nodes to return. If not specified all the nodes are returned.
6.118. HOSTSTORAGE
282
CHAPTER 6. SERVICES
Name Summary
GET /ovirt-engine/api/hosts/123/storage
<host_storages>
<host_storage id="123">
...
</host_storage>
...
</host_storages>
6.118.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.118.1.2. 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.
283
Red Hat Virtualization 4.4 REST API Guide
<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>
<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>
6.119. HOSTS
A service that manages hosts.
Name Summary
The host is created based on the attributes of the host parameter. The name, address, and
root_password properties are required.
284
CHAPTER 6. SERVICES
POST /ovirt-engine/api/hosts
<host>
<name>myhost</name>
<address>myhost.example.com</address>
<root_password>myrootpassword</root_password>
</host>
NOTE
IMPORTANT
Since version 4.1.2 of the engine, when a host is newly added, the host’s firewall definitions
are overridden by default.
POST /ovirt-engine/api/hosts?deploy_hosted_engine=true
If the cluster has a default external network provider that is supported for automatic deployment, the
external network provider is deployed when adding the host. Only external network providers for OVN
are supported for the automatic deployment. To deploy an external network provider other than the one
defined in the clusters, overwrite the external network provider when adding hosts, by sending the
following request:
POST /ovirt-engine/api/hosts
With a request body that contains a reference to the desired provider in the
external_network_provider_configuration:
<host>
<name>myhost</name>
<address>myhost.example.com</address>
<root_password>123456</root_password>
<external_network_provider_configurations>
<external_network_provider_configuration>
<external_network_provider name="ovirt-provider-ovn"/>
</external_network_provider_configuration>
</external_network_provider_configurations>
</host>
285
Red Hat Virtualization 4.4 REST API Guide
activate Boolean In When set to true, this host will be activated after its
installation completes.
deploy_ho Boolean In When set to true, this host deploys the hosted
sted_engin engine components.
e
host Host In/Out The host definition with which the new host is
created is passed as a parameter, and the newly
created host is returned.
undeploy_ Boolean In When set to true, this host un-deploys the hosted
hosted_en engine components and does not function as part of
gine the High Availability cluster.
6.119.1.1. activate
When set to true, this host will be activated after its installation completes. When set to false the host
will remain in maintenance status after its installation. Absence of this parameter will be interpreted as
true, since the desired default behavior is activating the host after install.
6.119.1.2. deploy_hosted_engine
When set to true, this host deploys the hosted engine components. A missing value is treated as true,
i.e., deploy the hosted engine components. Omitting this parameter equals false, and the host performs
no operation in the hosted engine area.
6.119.1.3. reboot
Indicates if the host should be rebooted after successful installation. The default value is true.
6.119.1.4. undeploy_hosted_engine
When set to true, this host un-deploys the hosted engine components and does not function as part of
the High Availability cluster. A missing value is treated as true, i.e., un-deploy. Omitting this parameter
equals false and the host performs no operation in the hosted engine area.
GET /ovirt-engine/api/hosts
286
CHAPTER 6. SERVICES
<hosts>
<host href="/ovirt-engine/api/hosts/123" id="123">
...
</host>
<host href="/ovirt-engine/api/hosts/456" id="456">
...
</host>
...
</host>
The order of the returned list of hosts is guaranteed only if the sortby clause is included in the search
parameter.
6.119.2.1. all_content
Indicates if all of the attributes of the hosts should be included in the response.
287
Red Hat Virtualization 4.4 REST API Guide
hosted_engine
GET /ovirt-engine/api/hosts?all_content=true
NOTE
These attributes are not included by default because retrieving them impacts
performance. They are seldom used and require additional queries to the database. Use
this parameter with caution and only when specifically required.
6.119.2.2. 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.
6.119.2.3. check_vms_in_affinity_closure
This parameter can be used with migration_target_of to get valid migration targets for the listed virtual
machines and all other virtual machines that are in positive enforcing affinity with the listed virtual
machines.
This is useful in case the virtual machines will be migrated together with others in positive affinity
groups.
GET /ovirt-engine/api/hosts?migration_target_of=123,456&check_vms_in_affinity_closure=true
6.119.2.4. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.119.2.5. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
6.119.2.6. migration_target_of
Accepts a comma-separated list of virtual machine IDs and returns the hosts that these virtual machines
can be migrated to.
For example, to retrieve the list of hosts to which the virtual machine with ID 123 and the virtual machine
with ID 456 can be migrated to, send the following request:
GET /ovirt-engine/api/hosts?migration_target_of=123,456
6.120. ICON
288
CHAPTER 6. SERVICES
Name Summary
GET /ovirt-engine/api/icons/123
<icon id="123">
<data>Some binary data here</data>
<media_type>image/png</media_type>
</icon>
6.120.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.121. ICONS
A service to manage icons.
Name Summary
GET /ovirt-engine/api/icons
289
Red Hat Virtualization 4.4 REST API Guide
<icons>
<icon id="123">
<data>...</data>
<media_type>image/png</media_type>
</icon>
...
</icons>
6.121.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.121.1.2. max
Sets the maximum number of icons to return. If not specified all the icons are returned.
6.122. IMAGE
Table 6.371. Methods summary
Name Summary
get
290
CHAPTER 6. SERVICES
6.122.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
If the import_as_template parameter is true then the image will be imported as a template, otherwise it
will be imported as a disk.
When imported as a template, the name of the template can be specified by the optional
template.name parameter. If that parameter is not specified, then the name of the template will be
automatically assigned by the engine as GlanceTemplate-x (where x will be seven random hexadecimal
characters).
When imported as a disk, the name of the disk can be specified by the optional disk.name parameter. If
that parameter is not specified, then the name of the disk will be automatically assigned by the engine
as GlanceDisk-x (where x will be the seven hexadecimal characters of the image identifier).
It is recommended to always explicitly specify the template or disk name, to avoid these automatic
names generated by the engine.
6.123. IMAGETRANSFER
291
Red Hat Virtualization 4.4 REST API Guide
This service provides a mechanism to control an image transfer. The client will have to create a transfer
by using add of the image transfers service, stating the image to transfer data to/from.
Uploading a disk with id 123 (on a random host in the data center):
transfers_service = system_service.image_transfers_service()
transfer = transfers_service.add(
types.ImageTransfer(
disk=types.Disk(
id='123'
)
)
)
transfers_service = system_service.image_transfers_service()
transfer = transfers_service.add(
types.ImageTransfer(
disk=types.Disk(
id='123'
),
host=types.Host(
id='456'
)
)
)
If the user wishes to download a disk rather than upload, he/she should specify download as the
direction attribute of the transfer. This will grant a read permission from the image, instead of a write
permission.
E.g:
transfers_service = system_service.image_transfers_service()
transfer = transfers_service.add(
types.ImageTransfer(
disk=types.Disk(
id='123'
),
direction=types.ImageTransferDirection.DOWNLOAD
)
)
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.
292
CHAPTER 6. SERVICES
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 phase of the transfer is paused_system, the session was not successfully established.
This can happen if ovirt-imageio is not running in the selected host.
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.
293
Red Hat Virtualization 4.4 REST API Guide
6.123.4.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
transfer_service = transfers_service.image_transfer_service(transfer.id)
transfer_service.resume()
transfer = transfer_service.get()
6.124. IMAGETRANSFERS
This service manages image transfers, for performing Image I/O API in Red Hat Virtualization. Please
refer to image transfer for further documentation.
Name Summary
list Retrieves the list of image transfers that are currently being performed.
IMPORTANT
294
CHAPTER 6. SERVICES
IMPORTANT
The image attribute is deprecated since version 4.2 of the engine. Use the disk or
snapshot attributes instead.
To create an image transfer to download or upload a disk with id 123, send the following request:
POST /ovirt-engine/api/imagetransfers
<image_transfer>
<disk id="123"/>
<direction>upload|download</direction>
</image_transfer>
To create an image transfer to download or upload a disk_snapshot with id 456, send the following
request:
POST /ovirt-engine/api/imagetransfers
<image_transfer>
<snapshot id="456"/>
<direction>download|upload</direction>
</image_transfer>
295
Red Hat Virtualization 4.4 REST API Guide
image_tran ImageTransf Out A list of image transfers that are currently being
sfer er[] performed.
6.124.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.125. IMAGES
Manages the set of images available in an storage domain or in an OpenStack image provider.
Name Summary
list Returns the list of images available in the storage domain or provider.
6.125.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.125.1.2. max
Sets the maximum number of images to return. If not specified all the images are returned.
6.126. INSTANCETYPE
296
CHAPTER 6. SERVICES
Name Summary
GET /ovirt-engine/api/instancetypes/123
6.126.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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>
<threads>1</threads>
</topology>
</cpu>
</instance_type>
6.127. INSTANCETYPEGRAPHICSCONSOLE
Table 6.385. Methods summary
Name Summary
console GraphicsCon Out The information about the graphics console of the
sole instance type.
298
CHAPTER 6. SERVICES
6.127.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.128. INSTANCETYPEGRAPHICSCONSOLES
Table 6.388. Methods summary
Name Summary
list Lists all the configured graphics consoles of the instance type.
299
Red Hat Virtualization 4.4 REST API Guide
consoles GraphicsCon Out The list of graphics consoles of the instance type.
sole[]
6.128.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.128.2.2. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
6.129. INSTANCETYPENIC
Table 6.391. Methods summary
Name Summary
6.129.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
300
CHAPTER 6. SERVICES
6.130. INSTANCETYPENICS
Table 6.395. Methods summary
Name Summary
list Lists all the configured network interface of the instance type.
301
Red Hat Virtualization 4.4 REST API Guide
6.130.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.130.2.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.131. INSTANCETYPEWATCHDOG
Table 6.398. Methods summary
Name Summary
6.131.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
302
CHAPTER 6. SERVICES
6.132. INSTANCETYPEWATCHDOGS
Table 6.402. Methods summary
Name Summary
303
Red Hat Virtualization 4.4 REST API Guide
6.132.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.132.2.2. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
6.133. INSTANCETYPES
Table 6.405. Methods summary
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>
304
CHAPTER 6. SERVICES
<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>
<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>
305
Red Hat Virtualization 4.4 REST API Guide
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
</instance_type>
6.133.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.
6.133.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.133.2.3. max
Sets the maximum number of instance types to return. If not specified all the instance types are
306
CHAPTER 6. SERVICES
Sets the maximum number of instance types to return. If not specified all the instance types are
returned.
6.134. ISCSIBOND
Table 6.408. Methods summary
Name Summary
get
6.134.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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,
307
Red Hat Virtualization 4.4 REST API Guide
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>
6.135. ISCSIBONDS
Table 6.412. Methods summary
Name Summary
list Returns the list of iSCSI bonds configured in the data center.
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>
308
CHAPTER 6. SERVICES
<network id="abc"/>
</networks>
</iscsi_bond>
6.135.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.135.2.2. max
Sets the maximum number of bonds to return. If not specified all the bonds are returned.
6.136. JOB
A service to manage a job.
Name Summary
309
Red Hat Virtualization 4.4 REST API Guide
For example, to set a job with identifier 123 send the following request:
POST /ovirt-engine/api/jobs/clear
<action/>
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>
6.136.2.1. succeeded
310
CHAPTER 6. SERVICES
GET /ovirt-engine/api/jobs/123
6.136.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.137. JOBS
A service to manage jobs.
Name Summary
311
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/api/jobs
<job>
<description>Doing some work</description>
<auto_cleared>true</auto_cleared>
</job>
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"/>
312
CHAPTER 6. SERVICES
<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>
6.137.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.
6.137.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.137.2.3. max
Sets the maximum number of jobs to return. If not specified all the jobs are returned.
6.138. KATELLOERRATA
A service to manage Katello errata. The information is retrieved from Katello.
313
Red Hat Virtualization 4.4 REST API Guide
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>
6.138.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.138.1.2. max
314
CHAPTER 6. SERVICES
Sets the maximum number of errata to return. If not specified all the errata are returned.
6.139. KATELLOERRATUM
A service to manage a Katello erratum.
Name Summary
GET /ovirt-engine/api/katelloerrata/123
6.139.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
315
Red Hat Virtualization 4.4 REST API Guide
6.140. LINKLAYERDISCOVERYPROTOCOL
A service to fetch information elements received by Link Layer Discovery Protocol (LLDP).
Name Summary
6.140.1.1. elements
For example, to retrieve the information elements received on the NIC 321 on host 123, send a request
like this:
GET ovirt-engine/api/hosts/123/nics/321/linklayerdiscoveryprotocolelements
<link_layer_discovery_protocol_elements>
...
<link_layer_discovery_protocol_element>
<name>Port Description</name>
<properties>
<property>
<name>port description</name>
<value>Summit300-48-Port 1001</value>
</property>
</properties>
<type>4</type>
</link_layer_discovery_protocol_element>
...
<link_layer_discovery_protocol_elements>
6.140.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
316
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.141. MACPOOL
Table 6.428. Methods summary
Name Summary
get
6.141.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
For example, to remove the MAC address pool having id 123 send a request like this:
DELETE /ovirt-engine/api/macpools/123
317
Red Hat Virtualization 4.4 REST API Guide
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>
6.142. MACPOOLS
Table 6.432. Methods summary
Name Summary
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:
318
CHAPTER 6. SERVICES
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>
6.142.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.142.2.2. max
Sets the maximum number of pools to return. If not specified all the pools are returned.
6.143. MEASURABLE
319
Red Hat Virtualization 4.4 REST API Guide
6.144. MOVEABLE
Table 6.435. Methods summary
Name Summary
move
6.145. NETWORK
A service managing a network
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:
320
CHAPTER 6. SERVICES
<usages>
<usage>vm</usage>
</usages>
<data_center href="/ovirt-engine/api/datacenters/456" id="456"/>
</network>
6.145.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
NOTE
To remove an external logical network, the network has to be removed directly from its
provider by OpenStack Networking API. The entity representing the external network
inside Red Hat Virtualization is removed automatically, if auto_sync is enabled for the
provider, otherwise the entity has to be removed using this method.
321
Red Hat Virtualization 4.4 REST API Guide
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>
NOTE
6.146. NETWORKATTACHMENT
Table 6.441. Methods summary
Name Summary
get
remove
322
CHAPTER 6. SERVICES
Name Summary
6.146.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.147. NETWORKATTACHMENTS
Manages the set of network attachments of a host or host NIC.
323
Red Hat Virtualization 4.4 REST API Guide
Name Summary
list Returns the list of network attachments of the host or host NIC.
6.147.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.147.2.2. max
Sets the maximum number of attachments to return. If not specified all the attachments are returned.
6.148. NETWORKFILTER
Manages a network filter.
324
CHAPTER 6. SERVICES
<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
6.148.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.149. 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
325
Red Hat Virtualization 4.4 REST API Guide
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">
<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
326
CHAPTER 6. SERVICES
6.149.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.150. NETWORKLABEL
Table 6.452. Methods summary
Name Summary
get
6.150.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
For example, to remove the label exemplary from a logical network having id 123 send the following
request:
DELETE /ovirt-engine/api/networks/123/networklabels/exemplary
327
Red Hat Virtualization 4.4 REST API Guide
6.151. NETWORKLABELS
Manages the ser of labels attached to a network or to a host NIC.
Name Summary
list Returns the list of labels attached to the network or host NIC.
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/networklabels
<network_label id="mylabel"/>
328
CHAPTER 6. SERVICES
6.151.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.151.2.2. max
Sets the maximum number of labels to return. If not specified all the labels are returned.
6.152. NETWORKS
Manages logical 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.
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>
329
Red Hat Virtualization 4.4 REST API Guide
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>
To create a network named exnetwork on top of an external OpenStack network provider 456 send a
request like this:
POST /ovirt-engine/api/networks
<network>
<name>exnetwork</name>
<external_provider id="456"/>
<data_center id="123"/>
</network>
For example:
GET /ovirt-engine/api/networks
Will respond:
<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"/>
330
CHAPTER 6. SERVICES
</network>
...
</networks>
The order of the returned list of networks is guaranteed only if the sortby clause is included in the
search parameter.
6.152.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.
6.152.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.152.2.3. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.153. NICNETWORKFILTERPARAMETER
This service manages a parameter for a network filter.
Name Summary
331
Red Hat Virtualization 4.4 REST API Guide
Name Summary
6.153.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
For example, to remove the filter parameter with id 123 on NIC 456 of virtual machine 789 send a
request like this:
DELETE /ovirt-engine/api/vms/789/nics/456/networkfilterparameters/123
For example, to update the network filter parameter having with with id 123 on NIC 456 of virtual
machine 789 send a request like this:
PUT /ovirt-engine/api/vms/789/nics/456/networkfilterparameters/123
<network_filter_parameter>
<name>updatedName</name>
<value>updatedValue</value>
</network_filter_parameter>
332
CHAPTER 6. SERVICES
parameter NetworkFilte In/Out The network filter parameter that is being updated.
rParameter
6.154. NICNETWORKFILTERPARAMETERS
This service manages a collection of parameters for network filters.
Name Summary
For example, to add the parameter for the network filter on NIC 456 of virtual machine 789 send a
request like this:
POST /ovirt-engine/api/vms/789/nics/456/networkfilterparameters
<network_filter_parameter>
<name>IP</name>
<value>10.0.1.2</value>
</network_filter_parameter>
parameter NetworkFilte In/Out The network filter parameter that is being added.
rParameter
333
Red Hat Virtualization 4.4 REST API Guide
6.154.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.155. OPENSTACKIMAGE
Table 6.467. Methods summary
Name Summary
get
6.155.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
334
CHAPTER 6. SERVICES
<action>
<storage_domain>
<name>images0</name>
</storage_domain>
<cluster>
<name>images0</name>
</cluster>
</action>
disk Disk In
storage_do StorageDom In
main ain
template Template In
6.156. OPENSTACKIMAGEPROVIDER
Table 6.470. Methods summary
Name Summary
get
remove
testconnectivity In order to test connectivity for external provider we need to run following request
where 123 is an id of a provider.
335
Red Hat Virtualization 4.4 REST API Guide
6.156.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
certificates Certificate[] In
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
336
CHAPTER 6. SERVICES
6.157. OPENSTACKIMAGEPROVIDERS
Table 6.476. Methods summary
Name Summary
337
Red Hat Virtualization 4.4 REST API Guide
6.157.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.157.2.2. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
6.158. OPENSTACKIMAGES
Table 6.479. Methods summary
Name Summary
6.158.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
338
CHAPTER 6. SERVICES
6.158.1.2. max
Sets the maximum number of images to return. If not specified all the images are returned.
6.159. OPENSTACKNETWORK
Table 6.481. Methods summary
Name Summary
get
import This operation imports an external network into Red Hat Virtualization.
6.159.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.159.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.
NOTE
339
Red Hat Virtualization 4.4 REST API Guide
NOTE
If auto_sync is enabled for the provider, the network might be imported automatically.
To prevent this, automatic import can be disabled by setting the auto_sync to false, and
enabling it again after importing the network.
6.160. OPENSTACKNETWORKPROVIDER
This service manages the OpenStack network provider.
Name Summary
testconnectivity In order to test connectivity for external provider we need to run following request
where 123 is an id of a provider.
For example, to get the OpenStack network provider with identifier 1234, send a request like this:
GET /ovirt-engine/api/openstacknetworkproviders/1234
6.160.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
340
CHAPTER 6. SERVICES
certificates Certificate[] In
For example, to remove the OpenStack network provider with identifier 1234, send a request like this:
DELETE /ovirt-engine/api/openstacknetworkproviders/1234
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
PUT /ovirt-engine/api/openstacknetworkproviders/1234
<openstack_network_provider>
<name>ovn-network-provider</name>
341
Red Hat Virtualization 4.4 REST API Guide
<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>
6.161. OPENSTACKNETWORKPROVIDERS
This service manages OpenStack network providers.
Name Summary
342
CHAPTER 6. SERVICES
6.161.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.161.2.2. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
6.162. OPENSTACKNETWORKS
Table 6.493. Methods summary
Name Summary
6.162.1.1. follow
343
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.162.1.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.163. OPENSTACKSUBNET
Table 6.495. Methods summary
Name Summary
get
remove
6.163.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.164. OPENSTACKSUBNETS
Table 6.498. Methods summary
344
CHAPTER 6. SERVICES
Name Summary
add
6.164.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.164.2.2. max
Sets the maximum number of sub-networks to return. If not specified all the sub-networks are returned.
6.165. OPENSTACKVOLUMEAUTHENTICATIONKEY
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
345
Red Hat Virtualization 4.4 REST API Guide
Name Summary
get
remove
6.165.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.166. OPENSTACKVOLUMEAUTHENTICATIONKEYS
346
CHAPTER 6. SERVICES
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
Name Summary
6.166.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.166.2.2. max
Sets the maximum number of keys to return. If not specified all the keys are returned.
347
Red Hat Virtualization 4.4 REST API Guide
6.167. OPENSTACKVOLUMEPROVIDER
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
Name Summary
get
remove
testconnectivity In order to test connectivity for external provider we need to run following request
where 123 is an id of a provider.
6.167.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
certificates Certificate[] In
348
CHAPTER 6. SERVICES
6.167.3.1. force
Indicates if the operation should succeed, and the provider removed from the database, even if
something fails during the operation.
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
6.168. OPENSTACKVOLUMEPROVIDERS
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
349
Red Hat Virtualization 4.4 REST API Guide
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>
350
CHAPTER 6. SERVICES
6.168.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.168.2.2. max
Sets the maximum number of providers to return. If not specified all the providers are returned.
6.169. OPENSTACKVOLUMETYPE
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
Name Summary
get
6.169.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.170. OPENSTACKVOLUMETYPES
351
Red Hat Virtualization 4.4 REST API Guide
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
Name Summary
6.170.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.170.1.2. max
Sets the maximum number of volume types to return. If not specified all the volume types are returned.
6.171. OPERATINGSYSTEM
Table 6.521. Methods summary
Name Summary
get
352
CHAPTER 6. SERVICES
6.171.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.172. OPERATINGSYSTEMS
Manages the set of types of operating systems available in the system.
Name Summary
list Returns the list of types of operating system available in the system.
6.172.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.172.1.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.173. PERMISSION
Table 6.525. Methods summary
353
Red Hat Virtualization 4.4 REST API Guide
Name Summary
get
remove
6.173.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.174. PERMIT
A service to manage a specific permit of the role.
Name Summary
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:
354
CHAPTER 6. SERVICES
GET /ovirt-engine/api/roles/123/permits/456
6.174.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
6.175. PERMITS
Represents a permits sub-collection of the specific role.
Name Summary
355
Red Hat Virtualization 4.4 REST API Guide
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>
<administrative>false</administrative>
<role href="/ovirt-engine/api/roles/123" id="123"/>
</permit>
</permits>
356
CHAPTER 6. SERVICES
6.175.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.175.2.2. max
Sets the maximum number of permits to return. If not specified all the permits are returned.
6.176. QOS
Table 6.534. Methods summary
Name Summary
GET /ovirt-engine/api/datacenters/123/qoss/123
357
Red Hat Virtualization 4.4 REST API Guide
6.176.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/datacenters/123/qoss/123
PUT /ovirt-engine/api/datacenters/123/qoss/123
358
CHAPTER 6. SERVICES
6.177. QOSS
Manages the set of quality of service configurations available in a data center.
Name Summary
list Returns the list of quality of service configurations available in the data center.
POST /ovirt-engine/api/datacenters/123/qoss
GET /ovirt-engine/api/datacenter/123/qoss
359
Red Hat Virtualization 4.4 REST API Guide
<qoss>
<qos href="/ovirt-engine/api/datacenters/123/qoss/1" id="1">...</qos>
<qos href="/ovirt-engine/api/datacenters/123/qoss/2" id="2">...</qos>
<qos href="/ovirt-engine/api/datacenters/123/qoss/3" id="3">...</qos>
</qoss>
6.177.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.177.2.2. max
Sets the maximum number of QoS descriptors to return. If not specified all the descriptors are returned.
6.178. QUOTA
Table 6.541. Methods summary
Name Summary
GET /ovirt-engine/api/datacenters/123/quotas/456
<quota id="456">
<name>myquota</name>
360
CHAPTER 6. SERVICES
6.178.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/datacenters/123-456/quotas/654-321
-0472718ab224 HTTP/1.1
Accept: application/xml
Content-type: application/xml
PUT /ovirt-engine/api/datacenters/123/quotas/456
<quota>
<cluster_hard_limit_pct>30</cluster_hard_limit_pct>
<cluster_soft_limit_pct>70</cluster_soft_limit_pct>
361
Red Hat Virtualization 4.4 REST API Guide
<storage_hard_limit_pct>20</storage_hard_limit_pct>
<storage_soft_limit_pct>80</storage_soft_limit_pct>
</quota>
6.179. QUOTACLUSTERLIMIT
Table 6.545. Methods summary
Name Summary
get
remove
6.179.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
362
CHAPTER 6. SERVICES
6.180. QUOTACLUSTERLIMITS
Manages the set of quota limits configured for a cluster.
Name Summary
list Returns the set of quota limits configured for the cluster.
6.180.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.180.2.2. max
Sets the maximum number of limits to return. If not specified all the limits are returned.
363
Red Hat Virtualization 4.4 REST API Guide
6.181. QUOTASTORAGELIMIT
Table 6.551. Methods summary
Name Summary
get
remove
6.181.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.182. QUOTASTORAGELIMITS
Manages the set of storage limits configured for a quota.
Name Summary
list Returns the list of storage limits configured for the quota.
364
CHAPTER 6. SERVICES
To create a 100GiB storage limit for all storage domains in a data center, send a request like this:
POST /ovirt-engine/api/datacenters/123/quotas/456/quotastoragelimits
<quota_storage_limit>
<limit>100</limit>
</quota_storage_limit>
To create a 50GiB storage limit for a storage domain with the ID 000, send a request like this:
POST /ovirt-engine/api/datacenters/123/quotas/456/quotastoragelimits
<quota_storage_limit>
<limit>50</limit>
<storage_domain id="000"/>
</quota_storage_limit>
6.182.2.1. follow
365
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.182.2.2. max
Sets the maximum number of limits to return. If not specified, all the limits are returned.
6.183. QUOTAS
Manages the set of quotas configured for a data center.
Name Summary
POST /ovirt-engine/api/datacenters/123/quotas
<quota>
<name>myquota</name>
<description>My new quota for virtual machines</description>
</quota>
366
CHAPTER 6. SERVICES
6.183.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.183.2.2. max
Sets the maximum number of quota descriptors to return. If not specified all the descriptors are
returned.
6.184. ROLE
Table 6.560. Methods summary
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>
367
Red Hat Virtualization 4.4 REST API Guide
6.184.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
To remove the role you need to know its id, then send request like this:
DELETE /ovirt-engine/api/roles/{role_id}
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>
368
CHAPTER 6. SERVICES
6.185. ROLES
Provides read-only access to the global set of roles
Name Summary
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>
369
Red Hat Virtualization 4.4 REST API Guide
GET /ovirt-engine/api/roles
<roles>
<role id="123">
<name>SuperUser</name>
<description>Roles management administrator</description>
<link href="/ovirt-engine/api/roles/123/permits" rel="permits"/>
<administrative>true</administrative>
<mutable>false</mutable>
</role>
...
</roles>
6.185.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.185.2.2. max
Sets the maximum number of roles to return. If not specified all the roles are returned.
6.186. SCHEDULINGPOLICIES
Manages the set of scheduling policies available in the system.
Name Summary
370
CHAPTER 6. SERVICES
6.186.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.186.2.2. max
Sets the maximum number of policies to return. If not specified all the policies are returned.
6.187. SCHEDULINGPOLICY
Table 6.570. Methods summary
Name Summary
get
remove
update Update the specified user defined scheduling policy in the system.
371
Red Hat Virtualization 4.4 REST API Guide
6.187.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.188. SCHEDULINGPOLICYUNIT
Table 6.574. Methods summary
372
CHAPTER 6. SERVICES
Name Summary
get
remove
6.188.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.189. SCHEDULINGPOLICYUNITS
Manages the set of scheduling policy units available in the system.
Name Summary
list Returns the list of scheduling policy units available in the system.
373
Red Hat Virtualization 4.4 REST API Guide
The order of the returned list of scheduling policy units isn’t guaranteed.
6.189.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.189.1.2. max
Sets the maximum number of policy units to return. If not specified all the policy units are returned.
6.190. SNAPSHOT
Table 6.579. Methods summary
Name Summary
get
remove
6.190.1.1. follow
374
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.190.2.1. all_content
Indicates if all the attributes of the virtual machine snapshot should be included in the response.
For example, to retrieve the complete representation of the snapshot with id 456 of the virtual machine
with id 123 send a request like this:
GET /ovirt-engine/api/vms/123/snapshots/456?all_content=true
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/>
NOTE
Confirm that the commit operation is finished and the virtual machine is down before
running the virtual machine.
375
Red Hat Virtualization 4.4 REST API Guide
restore_me Boolean In
mory
6.190.3.1. disks
For example, to restore a snapshot with an identifier 456 of a virtual machine with identifier 123,
including a disk with identifier 111 and image_id of 222, send a request like this:
POST /ovirt-engine/api/vms/123/snapshots/456/restore
Request body:
<action>
<disks>
<disk id="111">
<image_id>222</image_id>
</disk>
</disks>
</action>
6.191. SNAPSHOTCDROM
Table 6.583. Methods summary
Name Summary
get
6.191.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
376
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.192. SNAPSHOTCDROMS
Manages the set of CD-ROM devices of a virtual machine snapshot.
Name Summary
6.192.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.192.1.2. max
Sets the maximum number of CDROMS to return. If not specified all the CDROMS are returned.
6.193. SNAPSHOTDISK
Table 6.587. Methods summary
Name Summary
get
377
Red Hat Virtualization 4.4 REST API Guide
6.193.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.194. SNAPSHOTDISKS
Manages the set of disks of an snapshot.
Name Summary
6.194.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.194.1.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.195. SNAPSHOTNIC
Table 6.591. Methods summary
378
CHAPTER 6. SERVICES
Name Summary
get
6.195.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.196. SNAPSHOTNICS
Manages the set of NICs of an snapshot.
Name Summary
6.196.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
379
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.196.1.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.197. SNAPSHOTS
Manages the set of snapshots of a storage domain or virtual machine.
Name Summary
list Returns the list of snapshots of the storage domain or virtual machine.
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>
For including only a sub-set of disks in the snapshots, add disk_attachments element to the request
body. Note that disks which are not specified in disk_attachments element will not be a part of the
snapshot. If an empty disk_attachments element is passed, the snapshot will include only the virtual
machine configuration. If no disk_attachments element is passed, then all the disks will be included in
the snapshot.
For each disk, image_id element can be specified for setting the new active image id. This is used in
order to restore a chain of images from backup. I.e. when restoring a disk with snapshots, the relevant
image_id should be specified for each snapshot (so the identifiers of the disk snapshots are identical to
the backup).
<snapshot>
<description>My snapshot</description>
<disk_attachments>
<disk_attachment>
<disk id="123">
<image_id>456</image_id>
</disk>
380
CHAPTER 6. SERVICES
</disk_attachment>
</disk_attachments>
</snapshot>
IMPORTANT
When a snapshot is created, the default value for the persist_memorystate attribute is
true. That means that the content of the memory of the virtual machine will be included
in the snapshot, and it also means that the virtual machine will be paused for a longer
time. That can negatively affect applications that are very sensitive to timing (NTP
servers, for example). In those cases make sure that you set the attribute to false:
<snapshot>
<description>My snapshot</description>
<persist_memorystate>false</persist_memorystate>
</snapshot>
6.197.2.1. all_content
Indicates if all the attributes of the virtual machine snapshot should be included in the response.
For example, to retrieve the complete representation of the virtual machine with id 123 snapshots send
a request like this:
381
Red Hat Virtualization 4.4 REST API Guide
GET /ovirt-engine/api/vms/123/snapshots?all_content=true
6.197.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.197.2.3. max
Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
6.198. SSHPUBLICKEY
Table 6.598. Methods summary
Name Summary
get
remove
6.198.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
382
CHAPTER 6. SERVICES
IMPORTANT
Since version 4.4.8 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. Instead please use DELETE
followed by add operation .
6.199. SSHPUBLICKEYS
Table 6.602. Methods summary
Name Summary
add
For example, to retrieve the list of SSH keys of user with identifier 123, send a request like this:
GET /ovirt-engine/api/users/123/sshpublickeys
383
Red Hat Virtualization 4.4 REST API Guide
<ssh_public_keys>
<ssh_public_key href="/ovirt-engine/api/users/123/sshpublickeys/456" id="456">
<content>ssh-rsa ...</content>
<user href="/ovirt-engine/api/users/123" id="123"/>
</ssh_public_key>
</ssh_public_keys>
{
"ssh_public_key": [
{
"content": "ssh-rsa ...",
"user": {
"href": "/ovirt-engine/api/users/123",
"id": "123"
},
"href": "/ovirt-engine/api/users/123/sshpublickeys/456",
"id": "456"
}
]
}
6.199.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.199.2.2. max
Sets the maximum number of keys to return. If not specified all the keys are returned.
6.200. STATISTIC
Table 6.605. Methods summary
384
CHAPTER 6. SERVICES
Name Summary
get
6.200.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.201. STATISTICS
Table 6.607. Methods summary
Name Summary
For example, to retrieve the statistics for virtual machine 123 send a request like this:
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>
385
Red Hat Virtualization 4.4 REST API Guide
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:
6.201.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.201.1.2. max
Sets the maximum number of statistics to return. If not specified all the statistics are returned.
6.202. STEP
A service to manage a step.
386
CHAPTER 6. SERVICES
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>
6.202.1.1. succeeded
GET /ovirt-engine/api/jobs/123/steps/456
387
Red Hat Virtualization 4.4 REST API Guide
6.202.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.203. STEPS
A service to manage steps.
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>
388
CHAPTER 6. SERVICES
<status>started</status>
<type>validating</type>
</step>
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>
389
Red Hat Virtualization 4.4 REST API Guide
6.203.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.203.2.2. max
Sets the maximum number of steps to return. If not specified all the steps are returned.
6.204. STORAGE
Table 6.615. Methods summary
Name Summary
get
6.204.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.204.1.2. report_status
Indicates if the status of the LUNs in the storage should be checked. Checking the status of the LUN is
390
CHAPTER 6. SERVICES
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>
<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>
6.205. STORAGEDOMAIN
Table 6.617. Methods summary
Name Summary
isattached Used for querying if the storage domain is already attached to a data center using the
is_attached boolean field, which is part of the storage server.
391
Red Hat Virtualization 4.4 REST API Guide
Name Summary
reduceluns This operation reduces logical units from the storage domain.
updateovfstore This operation forces the update of the OVF_STORE of this storage domain.
6.205.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
392
CHAPTER 6. SERVICES
In order to do so the data stored on the provided logical units will be moved to other logical units of the
storage domain and only then they will be reduced from the storage domain.
For example, in order to reduce two logical units from a storage domain send a request like this:
POST /ovirt-engine/api/storageDomains/123/reduceluns
<action>
<logical_units>
<logical_unit id="1IET_00010001"/>
<logical_unit id="1IET_00010002"/>
</logical_units>
</action>
Note that this operation is only applicable to block storage domains (i.e., storage domains with the
xref:types-storage_type[storage type] of iSCSI or FCP).
logical_uni LogicalUnit[] In The logical units that need to be reduced from the
ts storage domain.
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
393
Red Hat Virtualization 4.4 REST API Guide
<action>
<logical_units>
<logical_unit id="1IET_00010001"/>
<logical_unit id="1IET_00010002"/>
</logical_units>
</action>
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 to a different setup, with all the
data on it. If the storage is not accessible the operation will fail.
If the destroy parameter is true then the operation will always succeed, even if the storage is not
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 to a different setup.
394
CHAPTER 6. SERVICES
6.205.5.1. destroy
Indicates if the operation should succeed, and the storage domain removed from the database, even if
the storage is not accessible.
DELETE /ovirt-engine/api/storageDomains/123?destroy=true
This parameter is optional, and the default value is false. When the value of destroy is true the host
parameter will be ignored.
6.205.5.2. host
This parameter is mandatory, except if the destroy parameter is included and its value is true, in that
case the host parameter will be ignored.
The value should 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 after 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>
395
Red Hat Virtualization 4.4 REST API Guide
The OVF_STORE is a disk image that contains the metadata of virtual machines and disks that reside in
the storage domain. This metadata 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.
6.206. STORAGEDOMAINCONTENTDISK
Table 6.625. Methods summary
Name Summary
get
396
CHAPTER 6. SERVICES
6.206.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.207. STORAGEDOMAINCONTENTDISKS
Manages the set of disks available in a storage domain.
Name Summary
The order of the returned list of disks is guaranteed only if the sortby clause is included in the search
parameter.
6.207.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.
6.207.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.207.1.3. max
397
Red Hat Virtualization 4.4 REST API Guide
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.208. STORAGEDOMAINDISK
Manages a single disk available in a storage domain.
IMPORTANT
Since version 4.2 of the engine this service is intended only to list disks available in the
storage domain, and to register unregistered disks. All the other operations, like copying a
disk, moving a disk, etc, have been deprecated and will be removed in the future. To
perform those operations use the service that manages all the disks of the system or the
service that manages a specific disk .
Name Summary
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To copy a disk use the copy
operation of the service that manages that disk.
398
CHAPTER 6. SERVICES
storage_do StorageDom In The storage domain where the new disk will be
main ain created.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To export a disk use the export
operation of the service that manages that disk.
storage_do StorageDom In The export storage domain where the disk should be
main ain exported to.
6.208.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To move a disk use the move
operation of the service that manages that disk.
399
Red Hat Virtualization 4.4 REST API Guide
storage_do StorageDom In The storage domain where the disk will be moved to.
main ain
Invokes reduce on the logical volume (i.e. this is only applicable for block storage domains). This is
applicable for floating disks and disks attached to non-running virtual machines. There is no need to
specify the size as the optimal size is calculated automatically.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To remove a disk use the
remove operation of the service that manages that disk.
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To remove a disk use the
remove operation of the service that manages that disk.
400
CHAPTER 6. SERVICES
IMPORTANT
Since version 4.2 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. To update a disk use the update
operation of the service that manages that disk.
6.209. STORAGEDOMAINDISKS
Manages the collection of disks available inside a specific storage domain.
Name Summary
list Retrieves the list of disks that are available in the storage domain.
IMPORTANT
Since version 4.2 of the Red Hat Virtualization Manager this operation is deprecated, and
preserved only for backwards compatibility. It will be removed in the future. To add a new
disk use the add operation of the service that manages the disks of the system. To
register an unregistered disk use the register operation of the service that manages that
disk.
6.209.1.1. unregistered
Indicates if a new disk should be added or if an existing unregistered disk should be registered. If the
401
Red Hat Virtualization 4.4 REST API Guide
Indicates if a new disk should be added or if an existing unregistered disk should be registered. If the
value is true then the identifier of the disk to register needs to be provided. For example, to register the
disk with ID 456 send a request like this:
POST /ovirt-engine/api/storagedomains/123/disks?unregistered=true
<disk id="456"/>
If the value is false then a new disk will be created in the storage domain. In that case the
provisioned_size, format, and name attributes are mandatory. For example, to create a new copy on
write disk of 1 GiB, send a request like this:
POST /ovirt-engine/api/storagedomains/123/disks
<disk>
<name>mydisk</name>
<format>cow</format>
<provisioned_size>1073741824</provisioned_size>
</disk>
This parameter has been deprecated since version 4.2 of the Red Hat Virtualization Manager.
6.209.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
402
CHAPTER 6. SERVICES
6.209.2.2. max
Sets the maximum number of disks to return. If not specified, all the disks are returned.
6.209.2.3. unregistered
Indicates whether to retrieve a list of registered or unregistered disks in the storage domain. To get a list
of unregistered disks in the storage domain the call should indicate the unregistered flag. For example,
to get a list of unregistered disks the REST API call should look like this:
GET /ovirt-engine/api/storagedomains/123/disks?unregistered=true
The default value of the unregistered flag is false. The request only applies to storage domains that are
attached.
6.210. STORAGEDOMAINSERVERCONNECTION
Table 6.639. Methods summary
Name Summary
get
6.210.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
403
Red Hat Virtualization 4.4 REST API Guide
6.211. STORAGEDOMAINSERVERCONNECTIONS
Manages the set of connections to storage servers that exist in a storage domain.
Name Summary
add
list Returns the list of connections to storage servers that existin the storage domain.
6.211.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
404
CHAPTER 6. SERVICES
6.211.2.2. max
Sets the maximum number of connections to return. If not specified all the connections are returned.
6.212. STORAGEDOMAINTEMPLATE
Table 6.645. Methods summary
Name Summary
get
register Register the Template means importing the Template from the data domain by
inserting the configuration of the Template and disks into the database without the
copy process.
remove
6.212.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
For example, to import the template 456 from the storage domain 123 send the following request:
POST /ovirt-engine/api/storagedomains/123/templates/456/import
<action>
<storage_domain>
<name>myexport</name>
</storage_domain>
<cluster>
405
Red Hat Virtualization 4.4 REST API Guide
<name>mycluster</name>
</cluster>
</action>
If you register an entity without specifying the cluster ID or name, the cluster name from the entity’s
OVF will be used (unless the register request also includes the cluster mapping).
cluster Cluster In
exclusive Boolean In
storage_do StorageDom In
main ain
template Template In
vm Vm In
6.212.2.1. clone
Use the optional clone parameter to generate new UUIDs for the imported template and its entities.
You can import a template with the clone parameter set to false when importing a template from an
export domain, with templates that were exported by a different Red Hat Virtualization environment.
406
CHAPTER 6. SERVICES
clone Boolean In
cluster Cluster In
exclusive Boolean In
template Template In
6.212.3.1. allow_partial_import
Indicates whether a template is allowed to be registered with only some of its disks.
If this flag is true, the system will not fail in the validation process if an image is not found, but instead it
will allow the template to be registered without the missing disks. This is mainly used during registration
of a template when some of the storage domains are not available. The default value is false.
6.212.3.2. registration_configuration
This parameter is optional. If the parameter is not specified, the template will be registered with the
same configuration that it had in the original environment where it was created.
6.212.3.3. vnic_profile_mappings
Deprecated attribute describing mapping rules for virtual NIC profiles that will be applied during the
import\register process.
WARNING
Please note that this attribute has been deprecated since version 4.2.1 of the
engine, and preserved only for backward compatibility. It will be removed in the
future. To specify vnic_profile_mappings use the vnic_profile_mappings
attribute inside the RegistrationConfiguration type.
407
Red Hat Virtualization 4.4 REST API Guide
6.213. STORAGEDOMAINTEMPLATES
Manages the set of templates available in a storage domain.
Name Summary
6.213.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.213.1.2. max
Sets the maximum number of templates to return. If not specified all the templates are returned.
6.213.1.3. unregistered
Indicates whether to retrieve a list of registered or unregistered templates which contain disks on the
408
CHAPTER 6. SERVICES
Indicates whether to retrieve a list of registered or unregistered templates which contain disks on the
storage domain. To get a list of unregistered templates the call should indicate the unregistered flag.
For example, to get a list of unregistered templates the REST API call should look like this:
GET /ovirt-engine/api/storagedomains/123/templates?unregistered=true
The default value of the unregisterd flag is false. The request only apply to storage domains that are
attached.
6.214. STORAGEDOMAINVM
Table 6.652. Methods summary
Name Summary
get
register
vm Vm Out
6.214.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
POST /ovirt-engine/api/storagedomains/123/vms/456/import
<action>
<storage_domain>
409
Red Hat Virtualization 4.4 REST API Guide
<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>
<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>
If you register an entity without specifying the cluster ID or name, the cluster name from the entity’s
OVF will be used (unless the register request also includes the cluster mapping).
cluster Cluster In
410
CHAPTER 6. SERVICES
exclusive Boolean In
storage_do StorageDom In
main ain
vm Vm In
6.214.2.1. clone
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.
6.214.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
411
Red Hat Virtualization 4.4 REST API Guide
vm Vm In
6.214.3.1. allow_partial_import
Indicates whether a virtual machine is allowed to be registered with only some of its disks.
If this flag is true, the engine will not fail in the validation process if an image is not found, but instead it
will allow the virtual machine to be registered without the missing disks. This is mainly used during
registration of a virtual machine when some of the storage domains are not available. The default value
is false.
6.214.3.2. reassign_bad_macs
Indicates if the problematic MAC addresses should be re-assigned during the import process by the
engine.
A MAC address would be considered as a problematic one if one of the following is true:
It conflicts with a MAC address that is already allocated to a virtual machine in the target
environment.
6.214.3.3. registration_configuration
This parameter is optional. If the parameter is not specified, the virtual machine will be registered with
the same configuration that it had in the original environment where it was created.
6.214.3.4. vnic_profile_mappings
Deprecated attribute describing mapping rules for virtual NIC profiles that will be applied during the
import\register process.
412
CHAPTER 6. SERVICES
WARNING
Please note that this attribute has been deprecated since version 4.2.1 of the
engine, and preserved only for backward compatibility. It will be removed in the
future. To specify vnic_profile_mappings use the vnic_profile_mappings
attribute inside the RegistrationConfiguration type.
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
6.215. 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.
413
Red Hat Virtualization 4.4 REST API Guide
6.215.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.216. 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.
6.216.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.217. STORAGEDOMAINVMS
Lists the virtual machines of an export storage domain.
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"/>
414
CHAPTER 6. SERVICES
<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 Returns the list of virtual machines of the export storage domain.
vm Vm[] Out
6.217.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.217.1.2. max
Sets the maximum number of virtual machines to return. If not specified all the virtual machines are
returned.
6.217.1.3. unregistered
Indicates whether to retrieve a list of registered or unregistered virtual machines which contain disks on
the storage domain. To get a list of unregistered virtual machines the call should indicate the
415
Red Hat Virtualization 4.4 REST API Guide
unregistered flag. For example, to get a list of unregistered virtual machines the REST API call should
look like this:
GET /ovirt-engine/api/storagedomains/123/vms?unregistered=true
The default value of the unregisterd flag is false. The request only apply to storage domains that are
attached.
6.218. STORAGEDOMAINS
Manages the set of storage domains in the system.
Name Summary
Creation of a new StorageDomain requires the name, type, host, and storage attributes. Identify the
host attribute with the id or name attributes. In Red Hat Virtualization 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 using a host with an id 123, send a request like this:
POST /ovirt-engine/api/storageDomains
<storage_domain>
<name>mydata</name>
<type>data</type>
<storage>
<type>nfs</type>
<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:
416
CHAPTER 6. SERVICES
<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>
The order of the returned list of storage domains is guaranteed only if the sortby clause is included in
the search parameter.
417
Red Hat Virtualization 4.4 REST API Guide
6.218.2.1. case_sensitive
Indicates if the search 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.
6.218.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.218.2.3. max
Sets the maximum number of storage domains to return. If not specified, all the storage domains are
returned.
6.219. STORAGESERVERCONNECTION
Table 6.666. Methods summary
Name Summary
get
418
CHAPTER 6. SERVICES
6.219.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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).
6.219.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
For example, to change the address of an NFS storage server, send a request like this:
PUT /ovirt-engine/api/storageconnections/123
419
Red Hat Virtualization 4.4 REST API Guide
<storage_connection>
<address>mynewnfs.example.com</address>
</storage_connection>
To change the connection of an iSCSI storage server, send a request like this:
PUT /ovirt-engine/api/storageconnections/123
<storage_connection>
<port>3260</port>
<target>iqn.2017-01.com.myhost:444</target>
</storage_connection>
6.219.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).
6.220. STORAGESERVERCONNECTIONEXTENSION
Table 6.670. Methods summary
Name Summary
get
remove
update Update a storage server connection extension for the given host.
420
CHAPTER 6. SERVICES
6.220.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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>
421
Red Hat Virtualization 4.4 REST API Guide
6.221. STORAGESERVERCONNECTIONEXTENSIONS
Table 6.674. Methods summary
Name Summary
add 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>
422
CHAPTER 6. SERVICES
6.221.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.221.2.2. max
Sets the maximum number of extensions to return. If not specified all the extensions are returned.
6.222. STORAGESERVERCONNECTIONS
Table 6.677. Methods summary
Name Summary
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
<storage_connection>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/export/mydata</path>
<host>
<name>myhost</name>
</host>
</storage_connection>
423
Red Hat Virtualization 4.4 REST API Guide
6.222.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.222.2.2. max
Sets the maximum number of connections to return. If not specified all the connections are returned.
6.223. SYSTEM
Table 6.680. Methods summary
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.
reloadconfigura
tions
424
CHAPTER 6. SERVICES
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>
</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>
425
Red Hat Virtualization 4.4 REST API Guide
<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.
6.223.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.224. SYSTEMOPTION
A service that provides values of specific configuration option of the system.
Name Summary
426
CHAPTER 6. SERVICES
For example to retrieve the values of configuration option MigrationPolicies send a request like this:
GET /ovirt-engine/api/options/MigrationPolicies
NOTE
The appropriate permissions are required to query configuration options. Some options
can be queried only by users with administrator permissions.
IMPORTANT
There is NO backward compatibility and no guarantee about the names or values of the
options. Options may be removed and their meaning can be changed at any point.
We strongly discourage the use of this service for applications other than the ones that
are released simultaneously with the engine. Usage by other applications is not
supported. Therefore there will be no documentation listing accessible configuration
options.
427
Red Hat Virtualization 4.4 REST API Guide
6.224.1.1. version
Optional version parameter that specifies that only particular version of the configuration option should
be returned. If this parameter isn’t used then all the versions will be returned.
For example, to get the value of the MigrationPolicies option but only for version 4.2 send a request
like this:
GET /ovirt-engine/api/options/MigrationPolicies?version=4.2
6.225. SYSTEMOPTIONS
Service that provides values of configuration options of the system.
6.226. 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
428
CHAPTER 6. SERVICES
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"/>
</permission>
429
Red Hat Virtualization 4.4 REST API Guide
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>
6.226.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.227. TAG
A service to manage a specific tag in the system.
Name Summary
430
CHAPTER 6. SERVICES
For example to retrieve the information about the tag with the id 123 send a request like this:
GET /ovirt-engine/api/tags/123
6.227.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
431
Red Hat Virtualization 4.4 REST API Guide
<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>
6.228. 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
432
CHAPTER 6. SERVICES
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>
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:
433
Red Hat Virtualization 4.4 REST API Guide
6.228.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.228.2.2. max
Sets the maximum number of tags to return. If not specified all the tags are returned.
6.229. TEMPLATE
Manages the virtual machine template and template versions.
Name Summary
POST /ovirt-engine/api/templates/123/export
<action>
<storage_domain id="456"/>
<exclusive>true<exclusive/>
</action>
434
CHAPTER 6. SERVICES
Since version 4.2 of the engine it is also possible to export a template as a virtual appliance (OVA). For
example, to export template 123 as an OVA file named myvm.ova that is placed in the directory
/home/ovirt/ on host myhost:
POST /ovirt-engine/api/templates/123/export
<action>
<host>
<name>myhost</name>
</host>
<directory>/home/ovirt</directory>
<filename>myvm.ova</filename>
</action>
6.229.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.
6.229.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
435
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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 so that it has 1 GiB of memory send a request like this:
PUT /ovirt-engine/api/templates/123
<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>
436
CHAPTER 6. SERVICES
6.230. 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/
6.230.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:
6.230.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
437
Red Hat Virtualization 4.4 REST API Guide
6.231. TEMPLATECDROMS
Lists the CD-ROM devices of a template.
Name Summary
6.231.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.231.1.2. max
Sets the maximum number of CD-ROMs to return. If not specified all the CD-ROMs are returned.
6.232. TEMPLATEDISK
Table 6.704. Methods summary
Name Summary
copy Copy the specified disk attached to the template to a specific storage domain.
export
get
remove
438
CHAPTER 6. SERVICES
storage_do StorageDom In
main ain
storage_do StorageDom In
main ain
6.232.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
439
Red Hat Virtualization 4.4 REST API Guide
6.233. TEMPLATEDISKATTACHMENT
This service manages the attachment of a disk to a template.
Name Summary
6.233.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
440
CHAPTER 6. SERVICES
force Boolean In
6.234. TEMPLATEDISKATTACHMENTS
This service manages the set of disks attached to a template. Each attached disk is represented by a
DiskAttachment.
Name Summary
6.234.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.235. TEMPLATEDISKS
Table 6.714. Methods summary
Name Summary
441
Red Hat Virtualization 4.4 REST API Guide
6.235.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.235.1.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.236. TEMPLATEGRAPHICSCONSOLE
Table 6.716. Methods summary
Name Summary
console GraphicsCon Out The information about the graphics console of the
sole template.
6.236.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
442
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.237. TEMPLATEGRAPHICSCONSOLES
Table 6.719. Methods summary
Name Summary
443
Red Hat Virtualization 4.4 REST API Guide
6.237.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.237.2.2. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
6.238. TEMPLATEMEDIATEDDEVICE
Table 6.722. Methods summary
Name Summary
device VmMediated Out The information about the mediated device of the
Device template.
6.238.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
444
CHAPTER 6. SERVICES
PUT /ovirt-engine/api/templates/123/mediateddevices/00000000-0000-0000-0000-000000000000
<vm_mediated_device>
<spec_params>
<property>
<name>mdevType</name>
<value>nvidia-11</value>
</property>
</spec_params>
</vm_mediated_device>
<vm_mediated_device href="/ovirt-engine/api/templates/123/mediateddevices/00000000-0000-0000-
0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<template href="/ovirt-engine/api/templates/123" id="123"/>
<spec_params>
<property>
<name>mdevType</name>
<value>nvidia-11</value>
</property>
</spec_params>
</vm_mediated_device>
6.238.3.1. devices
The request data must contain specParams properties. The response data contains complete
445
Red Hat Virtualization 4.4 REST API Guide
The request data must contain specParams properties. The response data contains complete
information about the updated mediated device.
6.239. TEMPLATEMEDIATEDDEVICES
A service that manages mediated devices of a template.
Name Summary
6.239.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.239.2.2. max
446
CHAPTER 6. SERVICES
Sets the maximum number of mediated devices to return. If not specified all the mediated devices are
returned.
6.240. TEMPLATENIC
Table 6.729. Methods summary
Name Summary
get
remove
update Update the specified network interface card attached to the template.
6.240.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
447
Red Hat Virtualization 4.4 REST API Guide
6.241. TEMPLATENICS
Table 6.733. Methods summary
Name Summary
6.241.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
448
CHAPTER 6. SERVICES
6.241.2.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.242. TEMPLATEWATCHDOG
Table 6.736. Methods summary
Name Summary
get
remove
update Update the watchdog for the template identified by the given id.
6.242.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
449
Red Hat Virtualization 4.4 REST API Guide
6.243. TEMPLATEWATCHDOGS
Table 6.740. Methods summary
Name Summary
6.243.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
450
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.243.2.2. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
6.244. TEMPLATES
This service manages the virtual machine templates available in the system.
Name Summary
This requires the name and vm elements. To identify the virtual machine use the vm.id or vm.name
attributes. For example, to create a template from a virtual machine with the identifier 123 send a
request like this:
POST /ovirt-engine/api/templates
<template>
<name>mytemplate</name>
<vm id="123"/>
</template>
Since version 4.3, in order to create virtual machine template from a snapshot send a request body like
this:
<template>
<name>mytemplate</name>
<vm id="123">
<snapshots>
<snapshot id="456"/>
</snapshots>
</vm>
</template>
The disks of the template can be customized, making some of their characteristics different from the
disks of the original virtual machine. To do so use the vm.disk_attachments attribute, specifying the
identifier of the disk of the original virtual machine and the characteristics that you want to change. For
451
Red Hat Virtualization 4.4 REST API Guide
example, if the original virtual machine has a disk with the identifier 456, and, for that disk, you want to
change the name to mydisk the format to Copy On Write and make it sparse, send a request body like
this:
<template>
<name>mytemplate</name>
<vm id="123">
<disk_attachments>
<disk_attachment>
<disk id="456">
<name>mydisk</name>
<format>cow</format>
<sparse>true</sparse>
</disk>
</disk_attachment>
</disk_attachments>
</vm>
</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>
The destination storage domain of the template can be customized, in one of two ways:
1. Globally, at the request level. The request must list the desired disk attachments to be created
on the storage domain. If the disk attachments are not listed, the global storage domain
parameter will be ignored.
<template>
<name>mytemplate</name>
<storage_domain id="123"/>
<vm id="456">
<disk_attachments>
<disk_attachment>
<disk id="789">
<format>cow</format>
<sparse>true</sparse>
</disk>
</disk_attachment>
</disk_attachments>
</vm>
</template>
2. Per each disk attachment. Specify the desired storage domain for each disk attachment.
452
CHAPTER 6. SERVICES
2. Per each disk attachment. Specify the desired storage domain for each disk attachment.
Specifying the global storage definition will override the storage domain per disk attachment
specification.
<template>
<name>mytemplate</name>
<vm id="123">
<disk_attachments>
<disk_attachment>
<disk id="456">
<format>cow</format>
<sparse>true</sparse>
<storage_domains>
<storage_domain id="789"/>
</storage_domains>
</disk>
</disk_attachment>
</disk_attachments>
</vm>
</template>
6.244.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 value 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>
453
Red Hat Virtualization 4.4 REST API Guide
6.244.1.2. seal
If this optional parameter is provided and its value is true, then the template is sealed after creation.
Sealing erases all host-specific configuration from the filesystem: SSH keys, UDEV rules, MAC
addresses, system ID, hostname, and so on, thus making it easier to use the template to create multiple
virtual machines without manual intervention.
For example:
GET /ovirt-engine/api/templates
Will return the list of virtual machines and virtual machine templates.
6.244.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.
6.244.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
454
CHAPTER 6. SERVICES
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.244.2.3. max
Sets the maximum number of templates to return. If not specified, all the templates are returned.
6.245. UNMANAGEDNETWORK
Table 6.746. Methods summary
Name Summary
get
remove
6.245.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.246. UNMANAGEDNETWORKS
Table 6.749. Methods summary
455
Red Hat Virtualization 4.4 REST API Guide
Name Summary
6.246.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.246.1.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.247. 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 users.
Name Summary
456
CHAPTER 6. SERVICES
Usage:
GET /ovirt-engine/api/users/1234
6.247.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
Usage:
DELETE /ovirt-engine/api/users/1234
457
Red Hat Virtualization 4.4 REST API Guide
PUT /ovirt-engine/api/users/123
<user>
<user_options>
<property>
<name>test</name>
<value>["any","JSON"]</value>
</property>
</user_options>
</user>
IMPORTANT
Since version 4.4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. Please use the options endpoint
instead.
6.248. USEROPTION
Table 6.755. Methods summary
Name Summary
Example request(for user with identifier 123 and option with identifier 456):
GET /ovirt-engine/api/users/123/options/456
458
CHAPTER 6. SERVICES
Example request(for user with identifier 123 and option with identifier 456):
DELETE /ovirt-engine/api/users/123/options/456
6.249. USEROPTIONS
Table 6.757. Methods summary
Name Summary
POST /ovirt-engine/api/users/123/options
Payload:
<user_option>
<name>SomeName</name>
<content>["any", "JSON"]</content>
</user_option>
459
Red Hat Virtualization 4.4 REST API Guide
GET /ovirt-engine/api/users/123/options
<user_options>
<user_option href="/ovirt-engine/api/users/123/options/456" id="456">
<name>SomeName</name>
<content>["any", "JSON"]</content>
<user href="/ovirt-engine/api/users/123" id="123"/>
</user_option>
</user_options>
6.250. 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
460
CHAPTER 6. SERVICES
<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 [email protected] from the
myextension-authz authorization provider send a request body like this:
<user>
<principal>[email protected]</principal>
<user_name>[email protected]@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>
<principal>user1</principal>
<user_name>user1@domain-authz</user_name>
<domain href="/ovirt-engine/api/domains/45678" id="45678">
<name>domain-authz</name>
461
Red Hat Virtualization 4.4 REST API Guide
</domain>
</user>
</users>
6.250.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.
6.250.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.250.2.3. max
Sets the maximum number of users to return. If not specified all the users are returned.
6.251. VIRTUALFUNCTIONALLOWEDNETWORK
Table 6.763. Methods summary
Name Summary
get
remove
462
CHAPTER 6. SERVICES
6.251.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.252. VIRTUALFUNCTIONALLOWEDNETWORKS
Table 6.766. Methods summary
Name Summary
add
463
Red Hat Virtualization 4.4 REST API Guide
6.252.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.252.2.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.253. VM
Table 6.769. Methods summary
Name Summary
cancelmigration This operation stops any migration of a virtual machine to another physical host.
clone
commitsnapsho Permanently restores the virtual machine to the state of the previewed snapshot.
t
logon Initiates the automatic user logon to access a virtual machine from an external console.
maintenance Sets the global maintenance mode on the hosted engine virtual machine.
464
CHAPTER 6. SERVICES
Name Summary
remove Removes the virtual machine, including the virtual disks attached to it.
reordermacaddr
esses
suspend This operation saves the virtual machine state to disk and stops it.
undosnapshot Restores the virtual machine to the state it had before previewing the snapshot.
update Update the virtual machine in the system for the given virtual machine id.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. Instead please use PUT followed
by update operation.
POST /ovirt-engine/api/vms/123/autopincpuandnumanodes
465
Red Hat Virtualization 4.4 REST API Guide
<action>
<optimize_cpu_settings>true</optimize_cpu_settings>
</action>
6.253.1.1. optimize_cpu_settings
Specifies how the auto CPU and NUMA configuration is applied. If set to true, will adjust the CPU
topology to fit the VM pinned host hardware. Otherwise, it will use the VM CPU topology.
POST /ovirt-engine/api/vms/123/cancelmigration
The cancel migration action does not take any action specific parameters; therefore, the request body
should contain an empty action:
<action/>
466
CHAPTER 6. SERVICES
vm Vm In
6.253.3.1. discard_snapshots
Use the discard_snapshots parameter when the virtual machine should be clone with its snapshots
collapsed. Default is true.
POST /ovirt-engine/api/vms/123/detach
The detach action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
467
Red Hat Virtualization 4.4 REST API Guide
A virtual machine can be exported to an export domain. For example, to export virtual machine 123 to
the export domain myexport:
POST /ovirt-engine/api/vms/123/export
<action>
<storage_domain>
<name>myexport</name>
</storage_domain>
<exclusive>true</exclusive>
<discard_snapshots>true</discard_snapshots>
</action>
Since version 4.2 of the engine it is also possible to export a virtual machine as a virtual appliance (OVA).
For example, to export virtual machine 123 as an OVA file named myvm.ova that is placed in the
directory /home/ovirt/ on host myhost:
POST /ovirt-engine/api/vms/123/export
<action>
<host>
<name>myhost</name>
</host>
<directory>/home/ovirt</directory>
<filename>myvm.ova</filename>
</action>
NOTE
Confirm that the export operation has completed before attempting any actions on the
export domain.
468
CHAPTER 6. SERVICES
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/>
469
Red Hat Virtualization 4.4 REST API Guide
6.253.8.1. all_content
Indicates if all of 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':
GET /ovirt-engine/api/vms/123?all_content=true
NOTE
These attributes are not included by default as they reduce performance. These
attributes are seldom used and require additional queries to the database. Only use this
parameter when required as it will reduce performance.
6.253.8.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.253.8.3. next_run
Indicates if the returned result describes the virtual machine as it is currently running or if describes the
virtual machine with the modifications that have already been performed but that will only come into
effect when the virtual machine is restarted. By default the value is false.
470
CHAPTER 6. SERVICES
If the parameter is included in the request, but without a value, it is assumed that the value is true. The
the following request:
GET /vms/{vm:id};next_run
GET /vms/{vm:id};next_run=true
6.253.8.4. ovf_as_ova
Indicates if the results should expose the OVF as it appears in OVA files of that VM. The OVF document
describing the virtual machine. This parameter will work only when all_content=True is set. The OVF will
be presented in initialization.configuration.data.
For example:
GET /vms/{vm:id}?all_content=true&ovf_as_ova=true
Users require the appropriate user permissions for the virtual machine in order to access the virtual
machine from an external console.
For example:
POST /ovirt-engine/api/vms/123/logon
Request body:
<action/>
Example:
471
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/api/vms/123/maintenance
<action>
<maintenance_enabled>true<maintenance_enabled/>
</action>
Example:
POST /ovirt-engine/api/vms/123/migrate
<action>
<host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
</action>
472
CHAPTER 6. SERVICES
6.253.11.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.
WARNING
Live migration to another cluster is not supported. Strongly consider the target
cluster’s hardware architecture and network architecture before attempting a
migration.
6.253.11.2. force
Specifies that the virtual machine should migrate even if the virtual machine is defined as non-
migratable. This is an optional parameter. By default, it is set to false.
6.253.11.3. host
Specifies a specific host that the virtual machine should migrate to. This is an optional parameter. By
default, the Red Hat Virtualization Manager 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.
6.253.11.4. migrate_vms_in_affinity_closure
Migrate also all other virtual machines in positive enforcing affinity groups with this virtual machine, that
are running on the same host.
The snapshot is indicated with the snapshot.id parameter. It is restored temporarily, so that the content
can be inspected. Once that inspection is finished, the state of the virtual machine can be made
permanent, using the commit_snapshot method, or discarded using the undo_snapshot method.
473
Red Hat Virtualization 4.4 REST API Guide
restore_me Boolean In
mory
snapshot Snapshot In
vm Vm In
6.253.12.1. disks
For example, to preview a snapshot with identifier 456 which includes a disk with identifier 111 and its
image_id as 222, send a request like this:
POST /ovirt-engine/api/vms/123/previewsnapshot
Request body:
<action>
<disks>
<disk id="111">
<image_id>222</image_id>
</disk>
</disks>
<snapshot id="456"/>
</action>
6.253.12.2. lease
Specify the lease storage domain ID to use in the preview of the snapshot. If lease parameter is not
passed, then the previewed snapshot lease storage domain will be used. If lease parameter is passed
with empty storage domain parameter, then no lease will be used for the snapshot preview. If lease
parameter is passed with storage domain parameter then the storage domain ID can be only one of the
leases domain IDs that belongs to one of the virtual machine snapshots. This is an optional parameter,
set by default to null
474
CHAPTER 6. SERVICES
For example:
POST /ovirt-engine/api/vms/123/reboot
The reboot action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
To reboot the VM even if a backup is running for it, the action should include the 'force' element.
POST /ovirt-engine/api/vms/123/reboot
<action>
<force>true</force>
</action>
DELETE /ovirt-engine/api/vms/123
475
Red Hat Virtualization 4.4 REST API Guide
6.253.14.1. force
Locked virtual machines and virtual machines with locked disk images cannot be removed without this
flag set to true.
For example:
POST /ovirt-engine/api/vms/123/reset
The reset action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
For example:
POST /ovirt-engine/api/vms/123/screenshot
The screenshot action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
476
CHAPTER 6. SERVICES
For example:
POST /ovirt-engine/api/vms/123/shutdown
The shutdown action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
To shutdown the VM even if a backup is running for it, the action should include the 'force' element.
POST /ovirt-engine/api/vms/123/shutdown
<action>
<force>true</force>
</action>
6.253.18.1. reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
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
477
Red Hat Virtualization 4.4 REST API Guide
<action/>
authorized AuthorizedK In
_key ey
use_initiali Boolean In If set to true, the initialization type is set by the VM’s
zation OS.
6.253.19.1. pause
If set to true, start the virtual machine in paused mode. The default is false.
6.253.19.2. use_cloud_init
If set to true, the initialization type is set to cloud-init. The default value is false. See cloud-init
documentation for details.
6.253.19.3. use_ignition
If set to true, the initialization type is set to Ignition. The default value is false. See Ignition
documentation for details.
478
CHAPTER 6. SERVICES
6.253.19.4. use_initialization
If set to true, the initialization type is set by the VM’s OS. Windows will set to Sysprep, Linux to cloud-init
and RedHat CoreOS to Ignition. If any of the initialization-types are explicitly set (useCloudInit,
useSysprep or useIgnition), they will be prioritized and this flag will be ignored. The default value is false.
6.253.19.5. use_sysprep
If set to true, the initialization type is set to Sysprep. The default value is false. See Sysprep for details.
6.253.19.6. vm
For example:
<action>
<vm>
<os>
<boot>
<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 is
powered off, this definition will be reverted.
6.253.19.7. volatile
Indicates that this run configuration will be discarded even in the case of guest-initiated reboot. The
default value is false.
For example:
POST /ovirt-engine/api/vms/123/stop
The stop action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
To stop the VM even if a backup is running for it, the action should include the 'force' element.
POST /ovirt-engine/api/vms/123/stop
479
Red Hat Virtualization 4.4 REST API Guide
<action>
<force>true</force>
</action>
6.253.20.1. reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
For example:
POST /ovirt-engine/api/vms/123/suspend
The suspend action does not take any action specific parameters; therefore, the request body should
contain an empty action:
<action/>
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.
480
CHAPTER 6. SERVICES
Example:
POST /api/vms/123/thawfilesystems
<action/>
For example:
POST /ovirt-engine/api/vms/123/ticket
The client-provided action optionally includes a desired ticket value and/or an expiry time in seconds.
The response specifies the actual ticket value and expiry used.
<action>
<ticket>
<value>abcd12345</value>
<expiry>120</expiry>
</ticket>
</action>
IMPORTANT
If the virtual machine is configured to support only one graphics protocol then the
generated authentication token will be valid for that protocol. But if the virtual machine is
configured to support multiple protocols, VNC and SPICE, then the authentication token
will only be valid for the SPICE protocol.
In order to obtain an authentication token for a specific protocol, for example for VNC,
use the ticket method of the service, which manages the graphics consoles of the virtual
machine, by sending a request:
POST /ovirt-engine/api/vms/123/graphicsconsoles/456/ticket
481
Red Hat Virtualization 4.4 REST API Guide
vm Vm In/Out
6.253.25.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.
6.254. VMAPPLICATION
A service that provides information about an application installed in a virtual machine.
482
CHAPTER 6. SERVICES
Name Summary
6.254.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
6.254.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.255. VMAPPLICATIONS
A service that provides information about applications installed in a virtual machine.
483
Red Hat Virtualization 4.4 REST API Guide
Name Summary
6.255.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>
6.255.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
484
CHAPTER 6. SERVICES
6.255.1.3. max
Sets the maximum number of applications to return. If not specified all the applications are returned.
6.256. VMBACKUP
A service managing a backup of a virtual machines.
Name Summary
End backup, unlock resources, and perform cleanups. To finalize a virtual machine with an id '123' and a
backup with an id '456' send a request as follows:
POST /ovirt-engine/api/vms/123/backups/456/finalize
<action />
backup Backup Out The information about the virtual machine backup
entities.
6.256.2.1. backup
<backups>
<backup id="backup-uuid">
<from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
<link href="/ovirt-engine/api/vms/vm-uuid/backups/backup-uuid/disks" rel="disks"/>
485
Red Hat Virtualization 4.4 REST API Guide
<status>initializing</status>
<creation_date>
</backup>
</backups>
6.256.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.257. VMBACKUPDISK
Table 6.800. Methods summary
Name Summary
6.257.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.258. VMBACKUPDISKS
Table 6.802. Methods summary
Name Summary
486
CHAPTER 6. SERVICES
6.258.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.258.1.2. max
Sets the maximum number of disks to return. If not specified, all the disks are returned.
6.259. VMBACKUPS
Lists the backups of a virtual machine.
Name Summary
For example, to start a new incremental backup of a virtual machine since checkpoint id previous-
checkpoint-uuid, send a request like this:
POST /ovirt-engine/api/vms/123/backups
<backup>
<from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
<disks>
<disk id="disk-uuid" />
...
</disks>
</backup>
487
Red Hat Virtualization 4.4 REST API Guide
<backup id="backup-uuid">
<from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
<to_checkpoint_id>new-checkpoint-uuid</to_checkpoint_id>
<disks>
<disk id="disk-uuid" />
...
...
</disks>
<status>initializing</status>
<creation_date>
</backup>
POST /ovirt-engine/api/vms/123/backups
<backup id="backup-uuid">
<from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
<disks>
<disk id="disk-uuid" />
...
</disks>
</backup>
backup Backup In/Out The information about the virtual machine backup
entity.
6.259.1.1. require_consistency
POST /ovirt-engine/api/vms/123/backups?require_consistency=true
6.259.1.2. use_active
488
CHAPTER 6. SERVICES
Indicate whether to use the active volume for performing the backup.
POST /ovirt-engine/api/vms/123/backups?use_active=false
backups Backup[] Out The information about the virtual machine backup
entities.
6.259.2.1. backups
<backups>
<backup id="backup-uuid">
<from_checkpoint_id>previous-checkpoint-uuid</from_checkpoint_id>
<disks>
<disk id="disk-uuid" />
...
...
</disks>
<status>initiailizing</status>
<creation_date>
</backup>
</backups>
6.259.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.259.2.3. max
Sets the maximum number of virtual machine backups to return. If not specified, all the virtual machine
backups are returned.
489
Red Hat Virtualization 4.4 REST API Guide
6.260. 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:
6.260.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.
490
CHAPTER 6. SERVICES
6.260.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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 do not 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
<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.
491
Red Hat Virtualization 4.4 REST API Guide
6.260.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.
6.261. 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
cdroms Cdrom[] Out The list of CDROM devices of the virtual machine.
492
CHAPTER 6. SERVICES
6.261.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.261.2.2. max
Sets the maximum number of CDROMs to return. If not specified all the CDROMs are returned.
6.262. VMCHECKPOINT
A service managing a checkpoint of a virtual machines.
Name Summary
6.262.1.1. checkpoint
<checkpoint id="checkpoint-uuid">
<link href="/ovirt-engine/api/vms/vm-uuid/checkpoints/checkpoint-uuid/disks" rel="disks"/>
<parent_id>parent-checkpoint-uuid</parent_id>
493
Red Hat Virtualization 4.4 REST API Guide
<creation_date>xxx</creation_date>
<vm href="/ovirt-engine/api/vms/vm-uuid" id="vm-uuid"/>
</checkpoint>
6.262.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.263. VMCHECKPOINTDISK
Table 6.816. Methods summary
Name Summary
6.263.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.264. VMCHECKPOINTDISKS
494
CHAPTER 6. SERVICES
Name Summary
6.264.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.264.1.2. max
Sets the maximum number of disks to return. If not specified, all the disks are returned.
6.265. VMCHECKPOINTS
Lists the checkpoints of a virtual machine.
Name Summary
To get a list of checkpoints for a virtual machine with an id '123', send a request as follows:
GET /ovirt-engine/api/vms/123/checkpoints
495
Red Hat Virtualization 4.4 REST API Guide
6.265.1.1. checkpoints
<checkpoints>
<checkpoint id="checkpoint-uuid">
<link href="/ovirt-engine/api/vms/vm-uuid/checkpoints/checkpoint-uuid/disks" rel="disks"/>
<parent_id>parent-checkpoint-uuid</parent_id>
<creation_date>xxx</creation_date>
<vm href="/ovirt-engine/api/vm-uuid" id="vm-uuid"/>
</checkpoint>
</checkpoints>
6.265.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.265.1.3. max
Sets the maximum number of virtual machine checkpoints to return. If not specified, all the virtual
machine checkpoints are returned.
6.266. VMDISK
Table 6.822. Methods summary
Name Summary
activate
deactivate
export
get
move
496
CHAPTER 6. SERVICES
Name Summary
update
497
Red Hat Virtualization 4.4 REST API Guide
6.266.4.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
Invokes reduce on the logical volume (i.e. this is only applicable for block storage domains). This is
applicable for floating disks and disks attached to non-running virtual machines. There is no need to
specify the size as the optimal size is calculated automatically.
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.
498
CHAPTER 6. SERVICES
6.267. VMDISKS
Table 6.831. Methods summary
Name Summary
add
499
Red Hat Virtualization 4.4 REST API Guide
6.267.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.267.2.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.268. VMGRAPHICSCONSOLE
Table 6.834. Methods summary
Name Summary
proxyticket
ticket Generates a time-sensitive authentication token for accessing this virtual machine’s
console.
IMPORTANT
By default, when the current parameter is not specified, the data returned corresponds
to the next execution of the virtual machine. In the current implementation of the system
this means that the address and port attributes will not be populated because the
system does not know what address and port will be used for the next execution. Since in
most cases those attributes are needed, it is strongly advised to aways explicitly include
the current parameter with the value true.
500
CHAPTER 6. SERVICES
console GraphicsCon Out The information about the graphics console of the
sole virtual machine.
6.268.1.1. current
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the
current execution.
IMPORTANT
The address and port attributes will not be populated unless the value is true.
For example, to get data for the current execution of the virtual machine, including the address and
port attributes, send a request like this:
GET /ovit-engine/api/vms/123/graphicsconsoles/456?current=true
6.268.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
Use the following request to generate remote viewer connection file of the graphics console. Note that
this action generates the file only if virtual machine is running.
501
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/api/vms/123/graphicsconsoles/456/remoteviewerconnectionfile
The remoteviewerconnectionfile action does not take any action specific parameters, so the request
body should contain an empty action:
<action/>
The response contains the file, which can be used with remote-viewer client.
<action>
<remote_viewer_connection_file>
[virt-viewer]
type=spice
host=192.168.1.101
port=-1
password=123456789
delete-this-file=1
fullscreen=0
toggle-fullscreen=shift+f11
release-cursor=shift+f12
secure-attention=ctrl+alt+end
tls-port=5900
enable-smartcard=0
enable-usb-autoshare=0
usb-filter=null
tls-ciphers=DEFAULT
host-subject=O=local,CN=example.com
ca=...
</remote_viewer_connection_file>
</action>
E.g., to fetch the content of remote viewer connection file and save it into temporary file, user can use
oVirt Python SDK as follows:
# Locate the service that manages the virtual machine, as that is where
# the locators are defined:
vm_service = vms_service.vm_service(vm.id)
502
CHAPTER 6. SERVICES
When you create the remote viewer connection file, then you can connect to virtual machine graphic
console, as follows:
#!/bin/sh -ex
remote_vie String Out Contains the file which is compatible with remote-
wer_conne viewer client.
ction_file
6.268.3.1. remote_viewer_connection_file
User can use the content of this attribute to create a file, which can be passed to remote-viewer client
to connect to virtual machine graphic console.
POST /ovirt-engine/api/vms/123/graphicsconsoles/456/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>
503
Red Hat Virtualization 4.4 REST API Guide
ticket Ticket In/Out The generated ticket that can be used to access this
console.
6.269. VMGRAPHICSCONSOLES
Table 6.840. Methods summary
Name Summary
list Lists all the configured graphics consoles of the virtual machine.
IMPORTANT
By default, when the current parameter is not specified, the data returned corresponds
to the next execution of the virtual machine. In the current implementation of the system
this means that the address and port attributes will not be populated because the
system does not know what address and port will be used for the next execution. Since in
most cases those attributes are needed, it is strongly advised to aways explicitly include
the current parameter with the value true.
consoles GraphicsCon Out The list of graphics consoles of the virtual machine.
sole[]
504
CHAPTER 6. SERVICES
6.269.2.1. current
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the
current execution.
IMPORTANT
The address and port attributes will not be populated unless the value is true.
For example, to get data for the current execution of the virtual machine, including the address and
port attributes, send a request like this:
GET /ovirt-engine/api/vms/123/graphicsconsoles?current=true
6.269.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.269.2.3. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
6.270. 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.
505
Red Hat Virtualization 4.4 REST API Guide
Example:
GET /ovirt-engine/api/vms/123/hostdevices/456
6.270.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
506
CHAPTER 6. SERVICES
6.271. VMHOSTDEVICES
A service to manage host devices attached to a virtual machine.
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.
507
Red Hat Virtualization 4.4 REST API Guide
6.271.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.271.2.2. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
6.272. VMMEDIATEDDEVICE
Table 6.849. Methods summary
Name Summary
508
CHAPTER 6. SERVICES
device VmMediated Out The information about the mediated device of the
Device virtual machine.
6.272.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
PUT /ovirt-engine/api/vms/123/mediateddevices/00000000-0000-0000-0000-000000000000
<vm_mediated_device>
<spec_params>
<property>
<name>mdevType</name>
<value>nvidia-11</value>
</property>
</spec_params>
</vm_mediated_device>
<vm_mediated_device href="/ovirt-engine/api/vms/123/mediateddevices/00000000-0000-0000-0000-
000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<spec_params>
<property>
<name>mdevType</name>
<value>nvidia-11</value>
509
Red Hat Virtualization 4.4 REST API Guide
</property>
</spec_params>
</vm_mediated_device>
6.272.3.1. device
The request data must contain specParams properties. The response data contains complete
information about the updated mediated device.
6.273. VMMEDIATEDDEVICES
A service that manages mediated devices of a VM.
Name Summary
list Lists all the configured mediated devices of the virtual machine.
510
CHAPTER 6. SERVICES
devices VmMediated Out The list of mediated devices of the virtual machine.
Device[]
6.273.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.273.2.2. max
Sets the maximum number of mediated devices to return. If not specified all the mediated devices are
returned.
6.274. VMNIC
Table 6.856. Methods summary
Name Summary
activate
deactivate
get
511
Red Hat Virtualization 4.4 REST API Guide
6.274.3.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
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
IMPORTANT
The hotplugging feature only supports virtual machine operating systems with
hotplugging operations. Example operating systems include:
512
CHAPTER 6. SERVICES
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>
<vnic_profile id='789'/>
</nic>
IMPORTANT
The hotplugging feature only supports virtual machine operating systems with
hotplugging operations. Example operating systems include:
6.275. VMNICS
Table 6.862. Methods summary
Name Summary
513
Red Hat Virtualization 4.4 REST API Guide
The following example adds to the virtual machine 123 a network interface named mynic using virtio
and the NIC profile 456.
POST /ovirt-engine/api/vms/123/nics
<nic>
<name>mynic</name>
<interface>virtio</interface>
<vnic_profile id="456"/>
</nic>
curl \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--user "admin@internal:mypassword" \
--cacert /etc/pki/ovirt-engine/ca.pem \
--data '
<nic>
<name>mynic</name>
<interface>virtio</interface>
<vnic_profile id="456"/>
</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:
514
CHAPTER 6. SERVICES
6.275.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.275.2.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.276. VMNUMANODE
Table 6.865. Methods summary
Name Summary
get
6.276.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
515
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
DELETE /ovirt-engine/api/vms/123/numanodes/456
NOTE
It’s required to remove the numa nodes from the highest index first.
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>
516
CHAPTER 6. SERVICES
6.277. VMNUMANODES
Table 6.869. Methods summary
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
<vm_numa_node>
<cpu>
<cores>
<core>
<index>0</index>
</core>
</cores>
</cpu>
<index>0</index>
<memory>1024</memory>
<numa_tune_mode>strict</numa_tune_mode>
</vm_numa_node>
517
Red Hat Virtualization 4.4 REST API Guide
6.277.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.277.2.2. max
Sets the maximum number of nodes to return. If not specified all the nodes are returned.
6.278. VMPOOL
A service to manage a virtual machines pool.
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/>
518
CHAPTER 6. SERVICES
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>
<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>
6.278.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
519
Red Hat Virtualization 4.4 REST API Guide
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>
<description>Virtual Machine Pool B</description>
<size>3</size>
<prestarted_vms>1</size>
<max_user_vms>2</size>
</vmpool>
pool VmPool In/Out The virtual machine pool that is being updated.
6.278.4.1. seal
Specifies if virtual machines created for the pool should be sealed after creation.
If this optional parameter is provided, and its value is true, virtual machines created for the pool will be
sealed after creation. If the value is 'false', the virtual machines will not be sealed. If the parameter is not
provided, the virtual machines will be sealed, only if they are created from a sealed template and their
guest OS is not set to Windows. This parameter affects only the virtual machines created when the pool
is updated.
For example, to update a virtual machine pool and to seal the additional virtual machines that are
created, send a request like this:
520
CHAPTER 6. SERVICES
PUT /ovirt-engine/api/vmpools/123?seal=true
<vmpool>
<name>VM_Pool_B</name>
<description>Virtual Machine Pool B</description>
<size>7</size>
</vmpool>
6.279. 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>
6.279.1.1. seal
521
Red Hat Virtualization 4.4 REST API Guide
Specifies if virtual machines created for the pool should be sealed after creation.
If this optional parameter is provided, and its value is true, virtual machines created for the pool will be
sealed after creation. If the value is 'false', the virtual machines will not be sealed. If the parameter is not
provided, the virtual machines will be sealed, only if they are created from a sealed template and their
guest OS is not set to Windows. This parameter affects only the virtual machines created when the pool
is created.
For example, to create a virtual machine pool with 5 virtual machines and to seal them, send a request
like this:
POST /ovirt-engine/api/vmpools?seal=true
<vmpool>
<name>mypool</name>
<cluster id="123"/>
<template id="456"/>
<size>5</size>
</vmpool>
GET /ovirt-engine/api/vmpools
<vm_pools>
<vm_pool id="123">
...
</vm_pool>
...
</vm_pools>
The order of the returned list of pools is guaranteed only if the sortby clause is included in the search
parameter.
522
CHAPTER 6. SERVICES
6.279.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.
6.279.2.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.279.2.3. max
Sets the maximum number of pools to return. If this value is not specified, all of the pools are returned.
6.280. VMREPORTEDDEVICE
Table 6.880. Methods summary
Name Summary
get
6.280.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
523
Red Hat Virtualization 4.4 REST API Guide
6.281. VMREPORTEDDEVICES
Table 6.882. Methods summary
Name Summary
6.281.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.281.1.2. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
6.282. VMSESSION
Table 6.884. Methods summary
Name Summary
get
524
CHAPTER 6. SERVICES
6.282.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.283. VMSESSIONS
Provides information about virtual machine user sessions.
Name Summary
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>
525
Red Hat Virtualization 4.4 REST API Guide
6.283.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.283.1.2. max
Sets the maximum number of sessions to return. If not specified all the sessions are returned.
6.284. VMWATCHDOG
A service managing a watchdog on virtual machines.
Name Summary
6.284.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.284.1.2. watchdog
526
CHAPTER 6. SERVICES
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
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>
527
Red Hat Virtualization 4.4 REST API Guide
6.284.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.
6.285. VMWATCHDOGS
Lists the watchdogs of a virtual machine.
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>
528
CHAPTER 6. SERVICES
6.285.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.
6.285.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.285.2.2. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
6.285.2.3. 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>
529
Red Hat Virtualization 4.4 REST API Guide
<model>i6300esb</model>
</watchdog>
</watchdogs>
6.286. VMS
Table 6.895. Methods summary
Name Summary
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
530
CHAPTER 6. SERVICES
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>
</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>
531
Red Hat Virtualization 4.4 REST API Guide
<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>
...
<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.
auto_pinni AutoPinning In Specifies if and how the auto CPU and NUMA
ng_policy Policy configuration is applied.
532
CHAPTER 6. SERVICES
vm Vm In/Out
6.286.1.1. auto_pinning_policy
Specifies if and how the auto CPU and NUMA configuration is applied.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. Instead please use POST
followed by add operation .
POST /ovirt-engine/api/vms?auto_pinning_policy=existing/adjust
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
<placement_policy>
<hosts>
<host>
<name>myhost</name>
</host>
</hosts>
</placement_policy>
</vm>
6.286.1.2. 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:
533
Red Hat Virtualization 4.4 REST API Guide
POST /ovirt-engine/vms?clone=true
<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.
6.286.1.3. 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>
6.286.1.4. filter
Relevant for admin users only. Indicates whether to assign UserVmManager role on the created Virtual
Machine for this user. This will enable the user to later access the Virtual Machine as though he were a
non-admin user, foregoing his admin permissions (by providing filter=true).
NOTE
534
CHAPTER 6. SERVICES
6.286.1.5. seal
If this optional parameter is provided, and its value is true, the virtual machine will be sealed after
creation. If the value is 'false', the virtual machine will not be sealed. If the parameter is not provided, the
virtual machine will be sealed, only if it is created from a sealed template and its guest OS is not set to
Windows.
For example, to create a virtual machine from the mytemplate template and to seal it, send a request
like this:
POST /ovirt-engine/api/vms?seal=true
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
</vm>
The order of the returned list of virtual machines is guaranteed only if the sortby clause is included in
the search parameter.
535
Red Hat Virtualization 4.4 REST API Guide
6.286.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.
6.286.2.2. 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.
6.286.2.3. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.286.2.4. ovf_as_ova
Indicates if the results should expose the OVF as it appears in OVA files of that VM. The OVF document
describing the virtual machine. This parameter will work only when all_content=True is set. The OVF will
be presented in initialization.configuration.data.
536
CHAPTER 6. SERVICES
For example:
GET /vms?all_content=true&ovf_as_ova=true
6.287. VNICPROFILE
This service manages a vNIC profile.
Name Summary
6.287.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
537
Red Hat Virtualization 4.4 REST API Guide
6.288. 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>
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.
NOTE
The automatically created vNIC profile for the external network will be without network
filter.
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:
538
CHAPTER 6. SERVICES
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>
6.288.2.1. follow
539
Red Hat Virtualization 4.4 REST API Guide
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.288.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.289. WEIGHT
Table 6.905. Methods summary
Name Summary
get
remove
6.289.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.290. WEIGHTS
Table 6.908. Methods summary
540
CHAPTER 6. SERVICES
Name Summary
6.290.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
part of the current request. See here for details.
6.290.2.2. max
Sets the maximum number of weights to return. If not specified all the weights are returned.
541
Red Hat Virtualization 4.4 REST API Guide
CHAPTER 7. TYPES
This section enumerates all the data types that are available in the API.
Name Summary
activate Boolean
allow_partial_im Boolean
port
async Boolean
attachment DiskAttachment
authorized_key AuthorizedKey
auto_pinning_p AutoPinningPolicy
olicy
bricks GlusterBrick[]
certificates Certificate[]
check_connecti Boolean
vity
clone Boolean
542
CHAPTER 7. TYPES
clone_permissi Boolean
ons
cluster Cluster
collapse_snaps Boolean
hots
commit_on_suc Boolean
cess
connection StorageConnectio
n
connectivity_ti Integer
meout
correlation_id String
data_center DataCenter
deploy_hosted_ Boolean
engine
details GlusterVolumePro
fileDetails
directory String
discard_snapsh Boolean
ots
discovered_targ IscsiDetails[]
ets
disk Disk
disk_profile DiskProfile
disks Disk[]
exclusive Boolean
543
Red Hat Virtualization 4.4 REST API Guide
fault Fault
fence_type String
filename String
filter Boolean
fix_layout Boolean
follow String
force Boolean
grace_period GracePeriod
host Host
image String
image_transfer ImageTransfer
import_as_temp Boolean
late
is_attached Boolean
iscsi IscsiDetails
iscsi_targets String[]
job Job
lease StorageDomainLe
ase
logical_units LogicalUnit[]
maintenance_af Boolean
ter_restart
maintenance_e Boolean
nabled
544
CHAPTER 7. TYPES
migrate_vms_in Boolean
_affinity_closur
e
modified_bonds HostNic[]
modified_labels NetworkLabel[]
modified_netwo NetworkAttachme
rk_attachments nt[]
optimize_cpu_s Boolean
ettings
option Option
pause Boolean
permission Permission
power_manage PowerManagemen
ment t
proxy_ticket ProxyTicket
quota Quota
reason String
reassign_bad_ Boolean
macs
reboot Boolean
registration_co RegistrationConfig
nfiguration uration
remote_viewer_ String
connection_file
removed_bonds HostNic[]
removed_labels NetworkLabel[]
545
Red Hat Virtualization 4.4 REST API Guide
removed_netwo NetworkAttachme
rk_attachments nt[]
resolution_type String
restore_memor Boolean
y
root_password String
seal Boolean
snapshot Snapshot
source_host Host
ssh Ssh
status String
stop_gluster_se Boolean
rvice
storage_domain StorageDomain
storage_domain StorageDomain[]
s
succeeded Boolean
synchronized_n NetworkAttachme
etwork_attachm nt[]
ents
template Template
ticket Ticket
timeout Integer
undeploy_hoste Boolean
d_engine
upgrade_action ClusterUpgradeAc
tion
546
CHAPTER 7. TYPES
upgrade_perce Integer
nt_complete
use_cloud_init Boolean
use_ignition Boolean
use_initializatio Boolean
n
use_sysprep Boolean
virtual_function HostNicVirtualFun
s_configuration ctionsConfiguratio
n
vm Vm
vnic_profile_ma VnicProfileMappin
ppings g[]
volatile Boolean
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.
hosts_rule AffinityRule Specifies the affinity rule applied between virtual machines and
hosts that are members of this affinity group.
547
Red Hat Virtualization 4.4 REST API Guide
positive Boolean Specifies whether the affinity group applies positive affinity or
negative affinity to virtual machines that are members of that
affinity group.
vms_rule AffinityRule Specifies the affinity rule applied to virtual machines that are
members of this affinity group.
7.3.1. broken
Specifies if the affinity group is broken. Affinity group is considered broken when any of its rules are not
satisfied. Broken field is a computed field in the engine. Because of that, this field is only usable in GET
requests.
7.3.2. enforcing
Specifies whether the affinity group uses hard or soft enforcement of the affinity applied to virtual
machines that are members of that affinity group.
WARNING
Please note that this attribute has been deprecated since version 4.1 of the engine,
and will be removed in the future. Use the vms_rule attribute from now on.
7.3.3. positive
Specifies whether the affinity group applies positive affinity or negative affinity to virtual machines that
are members of that affinity group.
WARNING
Please note that this attribute has been deprecated since version 4.1 of the engine,
and will be removed in the future. Use the vms_rule attribute from now on.
548
CHAPTER 7. TYPES
cluster Cluster A reference to the cluster to which the affinity group applies.
host_labels AffinityLabel[] A list of all host labels assigned to this affinity group.
vm_labels AffinityLabel[] A list of all virtual machine labels assigned to this affinity group.
vms Vm[] A list of all virtual machines assigned to this affinity group.
has_implicit_aff Boolean This property enables the legacy behavior for labels.
inity_group
read_only Boolean The read_only property marks a label that can not be modified.
7.4.1. has_implicit_affinity_group
This property enables the legacy behavior for labels. If true, the label acts also as a positive enforcing
VM-to-host affinity group.
This parameter is only used for clusters with compatibility version 4.3 or lower.
7.4.2. read_only
The read_only property marks a label that can not be modified. This is usually the case when listing
internally-generated labels.
549
Red Hat Virtualization 4.4 REST API Guide
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.
enabled Boolean Specifies whether the affinity group uses this rule or not.
enforcing Boolean Specifies whether the affinity group uses hard or soft
enforcement of the affinity applied to the resources that are
controlled by this rule.
positive Boolean Specifies whether the affinity group applies positive affinity or
negative affinity to the resources that are controlled by this rule.
7.5.1. enabled
Specifies whether the affinity group uses this rule or not. This attribute is optional during creation and is
considered to be true when it is not provided. In case this attribute is not provided to the update
operation, it is considered to be true if AffinityGroup positive attribute is set as well. The backend
enabled value will be preserved when both enabled and positive attributes are missing.
7.5.2. enforcing
Specifies whether the affinity group uses hard or soft enforcement of the affinity applied to the
resources that are controlled by this rule. This argument is mandatory if the rule is enabled and is ignored
when the rule is disabled.
7.5.3. positive
Specifies whether the affinity group applies positive affinity or negative affinity to the resources that
are controlled by this rule. This argument is mandatory if the rule is enabled and is ignored when the rule
is disabled.
550
CHAPTER 7. TYPES
order Integer The order of this agent if used with other agents.
7.6.1. host
Reference to the host service. Each fence agent belongs to a single host.
Ignored, because the deployment of OpenStack Neutron agent is dropped since Red Hat Virtualization
4.4.0. The deployment of OpenStack hosts can be done by Red Hat OpenStack Platform Director or
TripleO.
551
Red Hat Virtualization 4.4 REST API Guide
address String
broker_type MessageBrokerTy
pe
network_mappi String Not recommended to use, because the Open vSwitch interface
ngs mappings are managed by VDSM since Red Hat Virtualization 4.
password String
port Integer
username String
7.7.1. network_mappings
Not recommended to use, because the Open vSwitch interface mappings are managed by VDSM since
Red Hat Virtualization 4.2.0.
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>
552
CHAPTER 7. TYPES
<vms>
<total>10</total>
<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_objects SpecialObjects References to special objects, such as the blank template and
the root of the hierarchy of tags.
summary ApiSummary A summary containing the total number of relevant objects, such
as virtual machines, hosts, and storage domains.
time Date The date and time when this information was generated.
7.8.1. authenticated_user
Reference to the authenticated user.
The authenticated user is the user whose credentials were verified in order to accept the current
request. In the current version of the system the authenticated user and the effective user are always
the same. In the future, when support for user impersonation is introduced, they will be potentially
553
Red Hat Virtualization 4.4 REST API Guide
different.
7.8.2. effective_user
Reference to the effective user.
The effective user is the user whose permissions apply during the current request. In the current version
of the system the authenticated user and the effective user are always the same. In the future, when
support for user impersonation is introduced, they will be potentially different.
GET /ovirt-engine/api/vms/123/applications/456
554
CHAPTER 7. TYPES
Name Summary
ppc64
undefined
x86_64
7.12.1. s390x
IBM S390X CPU architecture.
Needs to be specified for virtual machines and clusters running on the S390X architecture.
Note that S390 is often used in an ambiguous way to describe either the general machine architecture
555
Red Hat Virtualization 4.4 REST API Guide
Note that S390 is often used in an ambiguous way to describe either the general machine architecture
as such or its 31-bit variant. S390X is used specifically for the 64-bit architecture, which is in line with the
other architectures, like X86_64 or PPC64.
key String
user User
Name Summary
disable
enable
unknown
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It will be removed in the future. Instead please use
CpuPinningPolicy.
556
CHAPTER 7. TYPES
Name Summary
adjust The CPU and NUMA pinning will be configured by the dedicated host.
existing The CPU and NUMA pinning will be configured by the virtual machine current state.
7.15.1. adjust
The CPU and NUMA pinning will be configured by the dedicated host.
Currently, its implication is that the CPU and NUMA pinning will use the dedicated host CPU topology.
The virtual machine configuration will automatically be set to fit the host to get the highest possible
performance.
7.15.2. disabled
The CPU and NUMA pinning won’t be calculated.
Currently, its implication is that the CPU and NUMA pinning won’t be calculated to the current virtual
machine configuration. By default the VM topology set with 1 Socket, 1 Core and 1 Thread.
7.15.3. existing
The CPU and NUMA pinning will be configured by the virtual machine current state.
Currently, its implication is that the CPU and NUMA pinning will use the provided virtual machine CPU
topology. Without given CPU topology it will use the engine defaults (the VM topology set with 1
Socket, 1 Core and 1 Thread).
557
Red Hat Virtualization 4.4 REST API Guide
7.16.1. to_checkpoint_id
The checkpoint id created by this backup operation. This id can be used as the fromCheckpointId in the
next incremental backup.
host Host The host that was used to start the backup.
Name Summary
failed The final phase, indicates that the backup has failed.
finalizing In this phase, the backup is invoking 'stop_backup' operation in order to complete the
backup and unlock the relevant disk.
ready The phase means that the relevant disks' backup URLs are ready to be used and
downloaded using image transfer.
558
CHAPTER 7. TYPES
Name Summary
starting The phase is set before invoking 'start_backup' operation in vdsm/libvirt (which means
that 'stop_backup' should be invoked to complete the flow).
succeeded The final phase, indicates that the backup has finished successfully.
7.17.1. initializing
The initial phase of the backup. It is set on entity creation.
scheduling_poli SchedulingPolicy
cy
scheduling_poli SchedulingPolicyU
cy_unit nit
boot_menu BootMenu
559
Red Hat Virtualization 4.4 REST API Guide
Name Summary
q35_secure_bo q35 chipset with OVMF (UEFI) BIOS with SecureBoot enabled.
ot
7.20.1. cluster_default
Use the cluster-wide default.
7.20.2. i440fx_sea_bios
i440fx chipset with SeaBIOS.
statistics Statistic[]
560
CHAPTER 7. TYPES
7.22.1. ad_partner_mac
The ad_partner_mac property of the partner bond in mode 4. Bond mode 4 is the 802.3ad standard,
which is also called dynamic link aggregation. See Wikipedia and Presentation for more information.
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.
7.22.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.
7.22.3. slaves
A list of slave NICs for a bonded interface. Only required when adding bonded interfaces.
active_slave HostNic The active_slave property of the bond in modes that support it
(active-backup, balance-alb and balance-tlb).
7.22.4. active_slave
The active_slave property of the bond in modes that support it (active-backup, balance-alb and
balance-tlb). See Linux documentation for further details. This parameter is read-only. Setting it will
have no effect on the bond. It is retrieved from /sys/class/net/bondX/bonding/active_slave file on the
system where the bond is located.
For example:
GET /ovirt-engine/api/hosts/123/nics/321
Will respond:
561
Red Hat Virtualization 4.4 REST API Guide
</bonding>
...
</host_nic>
7.24.1. devices
Ordered list of boot devices. The virtual machine will try to boot from the given boot devices, in the
given order.
Name Summary
562
CHAPTER 7. TYPES
Name Summary
7.25.1. cdrom
Boot from CD-ROM. The CD-ROM can be chosen from the list of ISO files available in an ISO domain
attached to the ata center that the virtual machine belongs to.
7.25.2. network
Boot from the network, using PXE. It is necessary to have PXE configured on the network that the virtual
machine is connected to.
enabled Boolean Whether the boot menu is enabled for this virtual machine (or
template), or not.
Name Summary
7.27.1. autoconf
Stateless address auto-configuration.
563
Red Hat Virtualization 4.4 REST API Guide
The mechanism is defined by RFC 4862. Please refer to this wikipedia article for more information.
NOTE
7.27.2. dhcp
Dynamic host configuration protocol.
7.27.3. poly_dhcp_autoconf
DHCP alongside Stateless address auto-configuration (SLAAC).
The SLAAC mechanism is defined by RFC 4862. Please refer to the Stateless address auto-
configuration article and the DHCP article for more information.
NOTE
profile_details ProfileDetail[]
brick GlusterBrick
file File
564
CHAPTER 7. TYPES
instance_type InstanceType Optionally references to an instance type the device is used by.
vms Vm[] References to the virtual machines that are using this device.
7.29.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.
content String
organization String
subject String
565
Red Hat Virtualization 4.4 REST API Guide
Name Summary
invalid The INVALID state set when a checkpoint cannot be used anymore for incremental
backup and should be removed (For example, after committing to an older VM
snapshot).
7.32.1. created
The initial state of the checkpoint. It is set on entity creation.
This type has been deprecated and replaced by alternative attributes inside the Initialization type. See
566
CHAPTER 7. TYPES
This type has been deprecated and replaced by alternative attributes inside the Initialization type. See
the cloud_init attribute documentation for details.
authorized_key AuthorizedKey[]
s
files File[]
host Host
network_config NetworkConfigura
uration tion
regenerate_ssh Boolean
_keys
timezone String
users User[]
Protocols supported are cloud-init version dependent. For more information, see Network
Configuration Sources
Name Summary
openstack_met Successor of the ENI protocol, with support for IPv6 and more.
adata
7.34.1. eni
Legacy protocol. Does not support IPv6. For more information, see Network Configuration ENI
(Legacy)
7.34.2. openstack_metadata
Successor of the ENI protocol, with support for IPv6 and more. This is the default value. For more
567
Red Hat Virtualization 4.4 REST API Guide
Successor of the ENI protocol, with support for IPv6 and more. This is the default value. For more
information, see API: Proxy neutron configuration to guest instance
{
"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",
"firewall_type" : "iptables",
"ha_reservation" : "false",
"ksm" : {
"enabled" : "true",
"merge_across_nodes" : "true"
},
"memory_policy" : {
"over_commit" : {
"percent" : "100"
},
"transparent_hugepages" : {
"enabled" : "true"
}
},
"migration" : {
568
CHAPTER 7. TYPES
"auto_converge" : "inherit",
"bandwidth" : {
"assignment_method" : "auto"
},
"compressed" : "inherit",
"policy" : {
"id" : "00000000-0000-0000-0000-000000000000"
}
},
"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",
"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"
}, {
569
Red Hat Virtualization 4.4 REST API Guide
"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"
}, {
"href" : "/ovirt-engine/api/clusters/234/enabledfeatures",
"rel" : "enabledfeatures"
}, {
"href" : "/ovirt-engine/api/clusters/234/externalnetworkproviders",
"rel" : "externalnetworkproviders"
}]
}]
}
ballooning_ena Boolean
bled
cpu Cpu
display Display
error_handling ErrorHandling
gluster_service Boolean
570
CHAPTER 7. TYPES
ha_reservation Boolean
ksm Ksm
log_max_memo Integer The memory consumption threshold for logging audit log events.
ry_used_thresh
old
log_max_memo LogMaxMemoryUs The memory consumption threshold type for logging audit log
ry_used_thresh edThresholdType events.
old_type
maintenance_re Boolean This property has no longer any relevance and has been
ason_required deprecated.
memory_policy MemoryPolicy
optional_reason Boolean This property has no longer any relevance and has been
deprecated.
required_rng_s RngSource[] Set of random number generator (RNG) sources required from
ources each host in the cluster.
serial_number SerialNumber
supported_versi Version[]
ons
switch_type SwitchType The type of switch to be used by all networks in given cluster.
threads_as_cor Boolean
es
trusted_service Boolean
571
Red Hat Virtualization 4.4 REST API Guide
tunnel_migratio Boolean
n
upgrade_in_pro Boolean Indicates if an upgrade has been started for the cluster.
gress
virt_service Boolean
7.35.1. bios_type
Chipset and BIOS type combination.
This value is used as default for all virtual machines in the cluster having biosType set to
CLUSTER_DEFAULT.
7.35.2. 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>
<value>70</value>
</property>
</custom_scheduling_policy_properties>
</cluster>
Update operations using the custom_scheduling_policy_properties attribute will not update the the
572
CHAPTER 7. TYPES
Update operations using the custom_scheduling_policy_properties attribute will not update the the
properties of the scheduling policy specified by the scheduling_policy link, they will only be reflected
on this specific cluster.
7.35.3. fencing_policy
A custom fencing policy can be defined for a cluster.
For 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>
7.35.4. fips_mode
FIPS mode of the cluster.
FIPS mode represents the cluster’s policy towards hosts. Hosts added to the cluster will be checked to
fulfill the cluster’s FIPS mode, making them non-operational if they do not. Unless a value is explicity
provided, new clusters are initialized by default to UNDEFINED. This value changes automatically to the
FIPS mode of the first host added to the cluster.
7.35.5. gluster_tuned_profile
The name of the tuned profile.
Tuned profile to set on all the hosts in the cluster. This is not mandatory and relevant only for clusters
with Gluster service.
7.35.6. log_max_memory_used_threshold
The memory consumption threshold for logging audit log events.
For percentage, an audit log event is logged if the used memory is more that the value specified. For
absolute value, an audit log event is logged when the the free memory falls below the value specified in
MB.
7.35.7. log_max_memory_used_threshold_type
The memory consumption threshold type for logging audit log events.
573
Red Hat Virtualization 4.4 REST API Guide
7.35.8. maintenance_reason_required
This property has no longer any relevance and has been deprecated. Its default value is true,
7.35.9. migration
Reference to cluster-wide configuration of migration of a running virtual machine to another host.
NOTE
API for querying migration policy by ID returned by this method is not implemented yet.
Use /ovirt-engine/api/options/MigrationPolicies to get a list of all migration policies
with their IDs.
7.35.10. optional_reason
This property has no longer any relevance and has been deprecated. Its default value is true.
7.35.11. required_rng_sources
Set of random number generator (RNG) sources required from each host in the cluster.
When read, it returns the implicit urandom (for cluster version 4.1 and higher) or random (for cluster
version 4.0 and lower) plus additional selected RNG sources. When written, the implicit urandom and
random RNG sources cannot be removed.
IMPORTANT
Before version 4.1 of the engine, the set of required random number generators was
completely controllable by the administrator; any source could be added or removed,
including the random source. But starting with version 4.1, the urandom and random
sources will always be part of the set, and can’t be removed.
IMPORTANT
Engine version 4.1 introduces a new RNG source urandom that replaces random RNG
source in clusters with compatibility version 4.1 or higher.
7.35.12. upgrade_correlation_id
The upgrade correlation identifier. Use to correlate events detailing the cluster upgrade to the upgrade
itself.
7.35.13. version
The compatibility version of the cluster.
All hosts in this cluster must support at least this compatibility version.
For example:
574
CHAPTER 7. TYPES
GET /ovirt-engine/api/clusters/123
<cluster>
...
<version>
<major>4</major>
<minor>0</minor>
</version>
...
</cluster>
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.
7.35.14. vnc_encryption
Enable VNC encryption. Default value for this property is false.
affinity_groups AffinityGroup[]
cpu_profiles CpuProfile[]
data_center DataCenter
enabled_feature ClusterFeature[] Custom features that are enabled for the cluster.
s
gluster_hooks GlusterHook[]
575
Red Hat Virtualization 4.4 REST API Guide
gluster_volume GlusterVolume[]
s
management_n Network
etwork
network_filters NetworkFilter[]
networks Network[]
permissions Permission[]
scheduling_poli SchedulingPolicy Reference to the default scheduling policy used by this cluster.
cy
7.35.15. external_network_providers
A reference to the external network provider available in the cluster.
If the automatic deployment of the external network provider is supported, the networks of the
referenced network provider are available on every host in the cluster. External network providers of a
cluster can only be set during adding the cluster. This value may be overwritten for individual hosts
during adding the host.
7.35.16. scheduling_policy
Reference to the default scheduling policy used by this cluster.
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.
576
CHAPTER 7. TYPES
577
Red Hat Virtualization 4.4 REST API Guide
Name Summary
finish The upgrade action to be passed to finish the cluster upgrade process by marking the
cluster’s upgrade_running flag to false.
start The upgrade action to be passed to start the cluster upgrade process by marking the
cluster’s upgrade_running flag to true.
update_progres The upgrade action to be passed to update the cluster upgrade progress.
s
7.38.1. finish
The upgrade action to be passed to finish the cluster upgrade process by marking the cluster’s
upgrade_running flag to false. This should be used at the end of the cluster upgrade process.
7.38.2. start
The upgrade action to be passed to start the cluster upgrade process by marking the cluster’s
upgrade_running flag to true. This should used at the beginning of the cluster upgrade process.
7.38.3. update_progress
The upgrade action to be passed to update the cluster upgrade progress. This should be used as the
upgrade progresses.
type ConfigurationType
7.39.1. data
The document describing the virtual machine.
578
CHAPTER 7. TYPES
<Section xsi:type="ovf:NetworkSection_Type">
<Info>List of networks</Info>
<Network ovf:name="Network 1"/>
</Section>
<Section xsi:type="ovf:DiskSection_Type">
<Info>List of Virtual Disks</Info>
</Section>
<Content ovf:id="out" xsi:type="ovf:VirtualSystem_Type">
<CreationDate>2014/12/03 04:25:45</CreationDate>
<ExportDate>2015/02/09 14:12:24</ExportDate>
<DeleteProtected>false</DeleteProtected>
<SsoMethod>guest_agent</SsoMethod>
<IsSmartcardEnabled>false</IsSmartcardEnabled>
<TimeZone>Etc/GMT</TimeZone>
<default_boot_sequence>0</default_boot_sequence>
<Generation>1</Generation>
<VmType>1</VmType>
<MinAllocatedMem>1024</MinAllocatedMem>
<IsStateless>false</IsStateless>
<IsRunAndPause>false</IsRunAndPause>
<AutoStartup>false</AutoStartup>
<Priority>1</Priority>
<CreatedByUserId>fdfc627c-d875-11e0-90f0-83df133b58cc</CreatedByUserId>
<IsBootMenuEnabled>false</IsBootMenuEnabled>
<IsSpiceFileTransferEnabled>true</IsSpiceFileTransferEnabled>
<IsSpiceCopyPasteEnabled>true</IsSpiceCopyPasteEnabled>
<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>
579
Red Hat Virtualization 4.4 REST API Guide
<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>
Name Summary
7.40.1. ova
ConfigurationType of type standard OVF.
The provided virtual machine configuration conforms with the Open Virtualization Format (OVF)
standard. This value should be used for an OVF configuration that is extracted from an Open Virtual
Appliance (OVA) that was generated by oVirt or by other vendors. See the OVF specification.
7.40.2. ovf
ConfigurationType of type oVirt-compatible OVF.
The provided virtual machine configuration conforms with the oVirt-compatible form of the Open
Virtualization Format (OVF). Note that the oVirt-compatible form of the OVF may differ from the OVF
standard that is used by other vendors. This value should be used for an OVF configuration that is taken
from a storage domain.
580
CHAPTER 7. TYPES
index Integer
socket Integer
architecture Architecture
cores Core[]
cpu_tune CpuTune
level Integer
mode CpuMode
name String
speed Decimal
topology CpuTopology
type String
Name Summary
custom
581
Red Hat Virtualization 4.4 REST API Guide
Name Summary
host_model
host_passthrou
gh
Name Summary
dedicated The CPU pinning will be automatically calculated by the engine when a vm starts and it
will be dropped when the vm stops.
isolate_threads The CPU pinning will be automatically calculated by the engine when a vm starts, and it
will be dropped when the vm stops.
resize_and_pin_ The CPU and NUMA pinning will be configured by the dedicated host.
numa
7.45.1. dedicated
The CPU pinning will be automatically calculated by the engine when a vm starts and it will be dropped
when the vm stops.
The pinning is exclusive, that means that no other VM can use the pinned physical CPU.
7.45.2. isolate_threads
The CPU pinning will be automatically calculated by the engine when a vm starts, and it will be dropped
when the vm stops.
The pinning is exclusive, each virtual thread will get an exclusive physical core. That means that no other
VM can use the pinned physical CPU.
7.45.3. manual
The CPU pinning will be manually configured.
Currently, this means that the CPU pinning will be manually configured to the current virtual machine
582
CHAPTER 7. TYPES
Currently, this means that the CPU pinning will be manually configured to the current virtual machine
configuration. The VM needs to be pinned to at least one host. The Pinning is provided within the CPU
configuration, using CpuTune.
7.45.4. none
The CPU pinning won’t be configured.
Currently, this means that the CPU pinning won’t be configured to the current virtual machine
configuration. By default, the VM topology is set with 1 Socket, 1 Core and 1 Thread.
7.45.5. resize_and_pin_numa
The CPU and NUMA pinning will be configured by the dedicated host.
The CPU and NUMA pinning will use the dedicated host CPU topology. The virtual machine
configuration will automatically be set to fit the host to get the highest possible performance.
cluster Cluster
permissions Permission[]
qos Qos
cores Integer
583
Red Hat Virtualization 4.4 REST API Guide
sockets Integer
threads Integer
vcpu_pins VcpuPin[]
name String The name of the CPU type, for example Intel Nehalem
Family.
Name Summary
complete
failed
in_progress
pending
584
CHAPTER 7. TYPES
local Boolean
quota_mode QuotaModeType
status DataCenterStatus
storage_format StorageFormat
supported_versi Version[]
ons
7.52.1. version
The compatibility version of the data center.
All clusters in this data center must already be set to at least this compatibility version.
For example:
GET /ovirt-engine/api/datacenters/123
585
Red Hat Virtualization 4.4 REST API Guide
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>
mac_pool MacPool Reference to the MAC pool used by this data center.
586
CHAPTER 7. TYPES
Name Summary
contend
maintenance
not_operational
problematic
uninitialized
up
instance_type InstanceType Optionally references to an instance type the device is used by.
vms Vm[] References to the virtual machines that are using this device.
7.54.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.
587
Red Hat Virtualization 4.4 REST API Guide
alias String
backup_mode DiskBackupMode The type of the disk backup (full/incremental), visible only when
the disk backup is in progress.
image_id String
initial_size Integer The initial size of a sparse image disk created on block storage,
in bytes.
interface DiskInterface The type of interface driver used to connect the disk device to
the virtual machine.
logical_name String
lun_storage HostStorage
588
CHAPTER 7. TYPES
sgio ScsiGenericIO Indicates whether SCSI passthrough is enable and its policy.
shareable Boolean Indicates if the disk can be attached to multiple virtual machines.
sparse Boolean Indicates if the physical storage for the disk should not be
preallocated.
storage_type DiskStorageType
total_size Integer The total size of the disk including all of its snapshots, in bytes.
uses_scsi_reser Boolean
vation
wipe_after_dele Boolean Indicates if the disk’s blocks will be read back as zeros after it is
te deleted:
7.55.1. active
Indicates if the disk is visible to the virtual machine.
IMPORTANT
When adding a disk attachment to a virtual machine, if the server accepts requests that
do not contain this attribute the result is undefined. In some cases the disk will be
automatically activated and in other cases it will not. To avoid issues it is strongly
recommended to always include the this attribute with the desired value.
7.55.2. actual_size
589
Red Hat Virtualization 4.4 REST API Guide
The actual size is the number of bytes actually used by the disk. It will be smaller than the provisioned
size for disks that use the cow format.
7.55.3. bootable
Indicates if the disk is marked as 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.
7.55.4. external_disk
Use external disk.
An external disk can be a path to a local file or a block device, or a URL supported by QEMU such as:
nbd:<host>:<port>[:exportname=<export>]
nbd:unix:</path>[:exportname=<export>]
http://[<username>[:<password>]@]<host>/<path>
https://[<username>[:<password>]@]<host>/<path>
ftp://[<username>[:<password>]@]<host>/<path>
ftps://[<username>[:<password>]@]<host>/<path>
See the QEMU manual for additional supported protocols and more info.
7.55.5. initial_size
The initial size of a sparse image disk created on block storage, in bytes.
The initial size is the number of bytes a sparse disk is initially allocated with when created on block
storage. The initial size will be smaller than the provisioned size. If not specified the default initial size
used by the system will be allocated.
7.55.6. 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.
7.55.7. provisioned_size
590
CHAPTER 7. TYPES
7.55.8. qcow_version
The underlying QCOW version of a QCOW volume. The QCOW version specifies to the qemu which
qemu version the volume supports. This field can be updated using the update API and will be reported
only for QCOW volumes. It is determined by the version of the storage domain that the disk is created
on. Storage domains with a version lower than V4 support QCOW2 volumes. V4 storage domains also
support QCOW2v3. For more information about features of the different QCOW versions, see QCOW3.
7.55.9. read_only
Indicates if the disk is in read-only mode.
Since version 4.0 this attribute is not shown in the API and was moved to DiskAttachment.
Since version 4.1.2 of Red Hat Virtualization Manager this attribute is deprecated, and it will be removed
in the future. In order to attach a disk in read only mode use the read_only attribute of the
DiskAttachment type. For example:
POST /ovirt-engine/api/vms/123/diskattachments
<disk_attachment>
<read_only>true</read_only>
...
</disk_attachment>
7.55.10. sgio
Indicates whether SCSI passthrough is enable and its policy.
Setting a value of filtered/unfiltered will enable SCSI passthrough for a LUN disk with
unprivileged/privileged SCSI I/O. To disable SCSI passthrough the value should be set to disabled
7.55.11. shareable
Indicates if the disk can be attached to multiple virtual machines.
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.
7.55.12. total_size
The total size of the disk including all of its snapshots, in bytes.
The total size is the number of bytes actually used by the disk plus the size of its snapshots. It won’t be
populated for direct LUN and Cinder disks. For disks without snapshots the total size is equal to the
actual size.
591
Red Hat Virtualization 4.4 REST API Guide
7.55.13. 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
disk_snapshots DiskSnapshot[]
instance_type InstanceType Optionally references to an instance type the device is used by.
openstack_volu OpenStackVolume
me_type Type
permissions Permission[]
quota Quota
snapshot Snapshot
storage_domain StorageDomain
vms Vm[] References to the virtual machines that are using this device.
7.55.14. statistics
Statistics exposed by the disk. For example:
<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>
592
CHAPTER 7. TYPES
<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 are not directly included when the disk is retrieved, only a link. To obtain the statistics
follow the included link:
GET /ovirt-engine/api/disks/123/statistics
7.55.15. storage_domains
The storage domains associated with this disk.
NOTE
Only required when the first disk is being added to a virtual machine that was not itself
created from a template.
7.55.16. 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 Defines whether the disk is active in the virtual machine it’s
attached to.
593
Red Hat Virtualization 4.4 REST API Guide
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.
pass_discard Boolean Defines whether the virtual machine passes discard commands
to the storage.
read_only Boolean Indicates whether the disk is connected to the virtual machine as
read only.
uses_scsi_reser Boolean Defines whether SCSI reservation is enabled for this disk.
vation
7.56.1. active
Defines whether 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.
7.56.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.
7.56.3. read_only
Indicates whether the disk is connected to the virtual machine as read only.
<disk_attachment>
...
594
CHAPTER 7. TYPES
<read_only>true</read_only>
</disk_attachment>
7.56.4. uses_scsi_reservation
Defines whether SCSI reservation is enabled for this disk.
Virtual machines with VIRTIO-SCSI passthrough enabled can set persistent SCSI reservations on disks.
If they set persistent SCSI reservations, those virtual machines cannot be migrated to a different host
because they would lose access to the disk, because SCSI reservations are specific to SCSI initiators,
and therefore hosts. This scenario cannot be automatically detected. To avoid migrating these virtual
machines, the user can set this attribute to true, to indicate the virtual machine is using SCSI
reservations.
Name Summary
Name Summary
7.58.1. full
595
Red Hat Virtualization 4.4 REST API Guide
This disk supports full backup. You can query zero extents and download all disk data.
7.58.2. incremental
This disk supports incremental backup. You can query dirty extents and download changed blocks.
Name Summary
Name Summary
cow The Copy On Write format allows snapshots, with a small performance overhead.
596
CHAPTER 7. TYPES
Name Summary
raw The raw format does not allow snapshots, but offers improved performance.
Name Summary
spapr_vscsi Para-virtualized device supported by the IBM pSeries family of machines, using the
SCSI protocol.
virtio Virtualization interface where just the guest’s device driver knows it is running in a virtual
environment.
7.61.1. ide
Legacy controller device. Works with almost all guest operating systems, so it is good for compatibility.
Performance is lower than with the other alternatives.
7.61.2. virtio
Virtualization interface where just the guest’s device driver knows it is running in a virtual environment.
Enables guests to get high performance disk operations.
7.61.3. virtio_scsi
Para-virtualized SCSI controller device. Fast interface with the guest via direct physical storage device
address, using the SCSI protocol.
597
Red Hat Virtualization 4.4 REST API Guide
permissions Permission[]
qos Qos
storage_domain StorageDomain
alias String
backup_mode DiskBackupMode The type of the disk backup (full/incremental), visible only when
the disk backup is in progress.
598
CHAPTER 7. TYPES
image_id String
initial_size Integer The initial size of a sparse image disk created on block storage,
in bytes.
interface DiskInterface The type of interface driver used to connect the disk device to
the virtual machine.
logical_name String
lun_storage HostStorage
sgio ScsiGenericIO Indicates whether SCSI passthrough is enable and its policy.
shareable Boolean Indicates if the disk can be attached to multiple virtual machines.
sparse Boolean Indicates if the physical storage for the disk should not be
preallocated.
storage_type DiskStorageType
total_size Integer The total size of the disk including all of its snapshots, in bytes.
uses_scsi_reser Boolean
vation
wipe_after_dele Boolean Indicates if the disk’s blocks will be read back as zeros after it is
te deleted:
599
Red Hat Virtualization 4.4 REST API Guide
7.63.1. active
Indicates if the disk is visible to the virtual machine.
IMPORTANT
When adding a disk attachment to a virtual machine, if the server accepts requests that
do not contain this attribute the result is undefined. In some cases the disk will be
automatically activated and in other cases it will not. To avoid issues it is strongly
recommended to always include the this attribute with the desired value.
7.63.2. actual_size
The actual size of the disk, in bytes.
The actual size is the number of bytes actually used by the disk. It will be smaller than the provisioned
size for disks that use the cow format.
7.63.3. bootable
Indicates if the disk is marked as 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.
7.63.4. external_disk
Use external disk.
An external disk can be a path to a local file or a block device, or a URL supported by QEMU such as:
nbd:<host>:<port>[:exportname=<export>]
nbd:unix:</path>[:exportname=<export>]
http://[<username>[:<password>]@]<host>/<path>
https://[<username>[:<password>]@]<host>/<path>
ftp://[<username>[:<password>]@]<host>/<path>
ftps://[<username>[:<password>]@]<host>/<path>
See the QEMU manual for additional supported protocols and more info.
7.63.5. initial_size
The initial size of a sparse image disk created on block storage, in bytes.
The initial size is the number of bytes a sparse disk is initially allocated with when created on block
storage. The initial size will be smaller than the provisioned size. If not specified the default initial size
used by the system will be allocated.
600
CHAPTER 7. TYPES
7.63.6. 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.
7.63.7. provisioned_size
The virtual size of the disk, in bytes.
7.63.8. qcow_version
The underlying QCOW version of a QCOW volume. The QCOW version specifies to the qemu which
qemu version the volume supports. This field can be updated using the update API and will be reported
only for QCOW volumes. It is determined by the version of the storage domain that the disk is created
on. Storage domains with a version lower than V4 support QCOW2 volumes. V4 storage domains also
support QCOW2v3. For more information about features of the different QCOW versions, see QCOW3.
7.63.9. read_only
Indicates if the disk is in read-only mode.
Since version 4.0 this attribute is not shown in the API and was moved to DiskAttachment.
Since version 4.1.2 of Red Hat Virtualization Manager this attribute is deprecated, and it will be removed
in the future. In order to attach a disk in read only mode use the read_only attribute of the
DiskAttachment type. For example:
POST /ovirt-engine/api/vms/123/diskattachments
<disk_attachment>
<read_only>true</read_only>
...
</disk_attachment>
7.63.10. sgio
Indicates whether SCSI passthrough is enable and its policy.
Setting a value of filtered/unfiltered will enable SCSI passthrough for a LUN disk with
unprivileged/privileged SCSI I/O. To disable SCSI passthrough the value should be set to disabled
7.63.11. shareable
Indicates if the disk can be attached to multiple virtual machines.
IMPORTANT
601
Red Hat Virtualization 4.4 REST API Guide
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.
7.63.12. total_size
The total size of the disk including all of its snapshots, in bytes.
The total size is the number of bytes actually used by the disk plus the size of its snapshots. It won’t be
populated for direct LUN and Cinder disks. For disks without snapshots the total size is equal to the
actual size.
7.63.13. 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
disk_snapshots DiskSnapshot[]
instance_type InstanceType Optionally references to an instance type the device is used by.
openstack_volu OpenStackVolume
me_type Type
permissions Permission[]
quota Quota
snapshot Snapshot
storage_domain StorageDomain
602
CHAPTER 7. TYPES
vms Vm[] References to the virtual machines that are using this device.
7.63.14. statistics
Statistics exposed by the disk. For example:
<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 are not directly included when the disk is retrieved, only a link. To obtain the statistics
follow the included link:
GET /ovirt-engine/api/disks/123/statistics
7.63.15. storage_domains
The storage domains associated with this disk.
NOTE
Only required when the first disk is being added to a virtual machine that was not itself
created from a template.
7.63.16. 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.
603
Red Hat Virtualization 4.4 REST API Guide
Name Summary
illegal Disk cannot be accessed by the virtual machine, and the user needs to take action to
resolve the issue.
locked The disk is being used by the system, therefore it cannot be accessed by virtual
machines at this point.
ok The disk status is normal and can be accessed by the virtual machine.
7.64.1. locked
The disk is being used by the system, therefore it cannot be accessed by virtual machines at this point.
This is usually a temporary status, until the disk is freed.
Name Summary
cinder
image
lun
managed_block A storage type, used for a storage domain that was created using a cinderlib driver.
_storage
Name Summary
data
system
604
CHAPTER 7. TYPES
address String The IP address of the guest to connect the graphic console
client to.
copy_paste_en Boolean Indicates whether a user is able to copy and paste content from
abled an external host into the graphic console.
disconnect_acti String Returns the action that will take place when the graphic console
on is disconnected.
disconnect_acti Integer Delay (in minutes) before the graphic console disconnect action
on_delay is carried out.
file_transfer_en Boolean Indicates if a user is able to drag and drop files from an external
abled host into the graphic console.
keyboard_layou String The keyboard layout to use with this graphic console.
t
monitors Integer The number of monitors opened for this graphic console.
port Integer The port address on the guest to connect the graphic console
client to.
proxy String The proxy IP which will be used by the graphic console client to
connect to the guest.
secure_port Integer The secured port address on the guest, in case of using TLS, to
connect the graphic console client to.
single_qxl_pci Boolean The engine now sets it automatically according to the operating
system.
7.67.1. allow_override
Indicates if to override the display address per host. Relevant only for the Host.display attribute. If set,
605
Red Hat Virtualization 4.4 REST API Guide
Indicates if to override the display address per host. Relevant only for the Host.display attribute. If set,
the graphical console address of a virtual machine will be overridden by the host specified display
address. if not set, the graphical console address of a virtual machine will not be overridden.
7.67.2. certificate
The TLS certificate in case of a TLS connection. If TLS isn’t enabled then it won’t be reported.
7.67.3. copy_paste_enabled
Indicates whether a user is able to copy and paste content from an external host into the graphic
console. This option is only available for the SPICE console type.
7.67.4. disconnect_action
Returns the action that will take place when the graphic console is disconnected. The options are:
none
No action is taken.
lock_screen
Locks the currently active user session.
logout
Logs out the currently active user session.
reboot
Initiates a graceful virtual machine reboot.
shutdown
Initiates a graceful virtual machine shutdown.
7.67.5. disconnect_action_delay
Delay (in minutes) before the graphic console disconnect action is carried out. This option is only
available for Shutdown disconnect action.
7.67.6. file_transfer_enabled
Indicates if a user is able to drag and drop files from an external host into the graphic console. This
option is only available for the SPICE console type.
7.67.7. keyboard_layout
The keyboard layout to use with this graphic console. This option is only available for the VNC console
type. If no keyboard is enabled then it won’t be reported.
7.67.8. monitors
The number of monitors opened for this graphic console. This option is only available for the SPICE
console type. Possible values are 1, 2 or 4.
606
CHAPTER 7. TYPES
7.67.9. proxy
The proxy IP which will be used by the graphic console client to connect to the guest. It is useful when
the client is outside the guest’s network. This option is only available for the SPICE console type. This
proxy can be set in global configuration, cluster level, virtual machine pool level or disabled per virtual
machine. If the proxy is set in any of this mentioned places and not disabled for the virtual machine, it
will be returned by this method. If the proxy is not set, nothing will be reported.
7.67.10. secure_port
The secured port address on the guest, in case of using TLS, to connect the graphic console client to. If
TLS isn’t enabled then it won’t be reported.
7.67.11. single_qxl_pci
The engine now sets it automatically according to the operating system. Therefore, it has been
deprecated since 4.4.5. Indicates if to use one PCI slot for each monitor or to use a single PCI channel
for all multiple monitors. This option is only available for the SPICE console type and only for connecting
a guest Linux based OS.
7.67.12. smartcard_enabled
Indicates if to use smart card authentication. This option is only available for the SPICE console type.
Name Summary
7.68.1. spice
Display of type SPICE. See SPICE documentation for more details.
7.68.2. vnc
Display of type VNC. VNC stands for Virtual Network Computing, and it is a graphical desktop sharing
system that uses RFB (Remote Frame Buffer) protocol to remotely control another machine.
607
Red Hat Virtualization 4.4 REST API Guide
7.70.1. name_servers
Array of addresses of name servers. Either IPv4 or IPv6 addresses may be specified.
user User
608
CHAPTER 7. TYPES
7.71.1. users
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.
cpu_tune CpuTune
topology CpuTopology
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.
7.73.1. error
The external entity status is erroneous. This might require a moderate attention.
7.73.2. failure
The external entity has an issue that causes failures. This might require immediate attention.
609
Red Hat Virtualization 4.4 REST API Guide
profile_details ProfileDetail[]
on_error MigrateOnError
log_on_host Boolean Specifies whether the event should also be written to the
${hypervisor.
610
CHAPTER 7. TYPES
7.76.1. correlation_id
The event correlation identifier. Used in order to correlate several events together.
7.76.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.
7.76.3. index
The numeric index of this event. The indexes of events are always increasing, so events with higher
indexes are guaranteed to be older than events with lower indexes.
IMPORTANT
In the current implementation of the engine, the id attribute has the same value as this
index attribute. That is an implementation detail that the user of the API should not rely
on. In the future the id attribute may be changed to an arbitrary string, containing non
numeric characters and no implicit order. On the other hand this index attribute is
guaranteed to stay as integer and ordered.
7.76.4. log_on_host
Specifies whether the event should also be written to the ${hypervisor.name} log. If no host is specified
the event description will be written to all hosts. Default is false.
611
Red Hat Virtualization 4.4 REST API Guide
7.76.5. cluster
Reference to the cluster service. Event can be associated with a cluster.
7.76.6. data_center
Reference to the data center service. Event can be associated with a data center.
7.76.7. host
Reference to the host service. Event can be associated with a host.
7.76.8. storage_domain
Reference to the storage domain service. Event can be associated with a storage domain.
7.76.9. template
Reference to the template service. Event can be associated with a template.
7.76.10. user
Reference to the user service. Event can be associated with a user.
7.76.11. vm
Reference to the virtual machine service. Event can be associated with a virtual machine.
612
CHAPTER 7. TYPES
7.77.1. address
The email address to which notifications should be sent.
When not provided, notifications are sent to the user’s email. Only a single address per user is currently
supported. If a subscription with a different email address to that of existing subscriptions is added, a
409 (CONFLICT) status is returned with an explanation that the provided address conflicts with an
existing address of an event-subscription for this user.
This field might be deprecated in the future, and notifications will always be sent on the user’s email
address.
7.77.2. event
The subscribed-for event.
7.77.3. notification_method
The notification method: SMTP or SNMP.
Currently only SMTP supported by API. Support for SNMP will be added in the future.
7.77.4. user
The subscribing user.
613
Red Hat Virtualization 4.4 REST API Guide
provider String
url String
user String
external_host_p ExternalHostProvi
rovider der
ip String
last_report String
mac String
subnet_name String
external_host_p ExternalHostProvi
rovider der
614
CHAPTER 7. TYPES
See Foreman documentation for more details. See Satellite documentation for more details on Red Hat
Satellite.
address String The address of the host, either IP address of FQDN (Fully
Qualified Domain Name).
external_host_p ExternalHostProvi A reference to the external host provider that the host is
rovider der managed by.
architecture_na String
me
domain_name String
615
Red Hat Virtualization 4.4 REST API Guide
operating_syste String
m_name
subnet_name String
external_host_p ExternalHostProvi
rovider der
See Foreman documentation for more details. See Satellite documentation for more details on Red Hat
Satellite.
password String Defines password for the user during the authentication process.
616
CHAPTER 7. TYPES
7.82.1. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
certificates Certificate[] A reference to the certificates the engine supports for this
provider.
7.82.2. compute_resources
A reference to the compute resource as represented in the host provider. Each host provider optionally
has the engine defined as a compute resource, which allows to create virtual machines in the engine.
This compute resource details are used in the Bare-Metal provisioning use-case, in order to deploy the
hypervisor.
7.82.3. discovered_hosts
A reference to the discovered hosts in the host provider. Discovered hosts are hosts that were not
provisioned yet.
7.82.4. host_groups
A reference to the host groups in the host provider. Host group contains different properties that the
host provider applies on all hosts that are member of this group. Such as installed software, system
definitions, passwords and more.
617
Red Hat Virtualization 4.4 REST API Guide
password String Defines password for the user during the authentication process.
618
CHAPTER 7. TYPES
7.84.1. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
Name Summary
ok OK status.
7.85.1. error
Error status. There is some kind of error in the relevant object.
7.85.2. failure
Failure status. The relevant object is failing.
7.85.3. info
Info status. The relevant object is in OK status, but there is an information available that might be
relevant for the administrator.
7.85.4. ok
OK status. The relevant object is working well.
7.85.5. warning
619
Red Hat Virtualization 4.4 REST API Guide
Warning status. The relevant object is working well, but there is some warning that might be relevant for
the administrator.
Name Summary
gluster Represents Gluster as the external system which is associated with thestep .
vdsm Represents VDSM as the external system which is associated with thestep .
7.87.1. clone
Optional. Indicates if the identifiers of the imported template should be regenerated.
By default when a template is imported the identifiers are preserved. This means that the same
template can’t be imported multiple times, as that identifiers needs to be unique. To allow importing the
same template multiple times set this parameter to true, as the default is false.
7.87.2. url
The URL to be passed to the engine.
Example:
ova:///mnt/ova/ova_file.ova
cluster Cluster Specifies the target cluster for the resulting template.
620
CHAPTER 7. TYPES
host Host Specifies the host that the OVA file exists on.
template Template The template entity used to specify a name for the newly
created template.
7.87.3. cpu_profile
Optional. Specifies the CPU profile of the resulting template.
7.87.4. quota
Optional. Specifies the quota that will be applied to the resulting template.
7.87.5. template
The template entity used to specify a name for the newly created template.
url String The URL to be passed to the virt-v2v tool for conversion.
621
Red Hat Virtualization 4.4 REST API Guide
7.88.1. sparse
Optional. Specifies the disk allocation policy of the resulting virtual machine: true for sparse, false for
preallocated.
If not specified: - When importing an OVA that was produced by oVirt, it will be determined according to
the configuration of the disk within the OVF. - Otherwise, it will be set to true.
7.88.2. url
The URL to be passed to the virt-v2v tool for conversion.
Example:
vpx://wmware_user@vcenter-host/DataCenter/Cluster/esxi-host?no_verify=1
cluster Cluster Specifies the target cluster for the resulting virtual machine.
storage_domain StorageDomain Specifies the target storage domain for converted disks.
vm Vm The virtual machine entity used to specify a name for the newly
created virtual machine.
7.88.3. cpu_profile
Optional. Specifies the CPU profile of the resulting virtual machine.
7.88.4. drivers_iso
Optional. The name of the ISO containing drivers that can be used during the virt-v2v conversion
622
CHAPTER 7. TYPES
Optional. The name of the ISO containing drivers that can be used during the virt-v2v conversion
process.
7.88.5. host
Optional. Specifies the host (using host’s ID) to be used for the conversion process. If not specified, one
is selected automatically.
7.88.6. quota
Optional. Specifies the quota that will be applied to the resulting virtual machine.
7.88.7. vm
The virtual machine entity used to specify a name for the newly created virtual machine.
If a name is not specified, the source virtual machine name will be used.
Name Summary
kvm
vmware
xen
detail String
reason String
623
Red Hat Virtualization 4.4 REST API Guide
Name Summary
skip_if_connect SkipIfConnectivity If enabled, we will not fence a host in case more than a
ivity_broken Broken configurable percentage of hosts in the cluster lost connectivity
as well.
skip_if_gluster_ Boolean A flag indicating if fencing should be skipped if Gluster bricks are
bricks_up up and running in the host being fenced.
skip_if_gluster_ Boolean A flag indicating if fencing should be skipped if Gluster bricks are
quorum_not_m up and running and Gluster quorum will not be met without those
et bricks.
skip_if_sd_activ SkipIfSdActive If enabled, we will skip fencing in case the host maintains its
e lease in the storage.
7.92.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.
7.92.2. skip_if_gluster_bricks_up
A flag indicating if fencing should be skipped if Gluster bricks are up and running in the host being
fenced. This flag is optional, and the default value is false.
7.92.3. skip_if_gluster_quorum_not_met
624
CHAPTER 7. TYPES
A flag indicating if fencing should be skipped if Gluster bricks are up and running and Gluster quorum will
not be met without those bricks. This flag is optional, and the default value is false.
7.92.4. skip_if_sd_active
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_domain StorageDomain
position Integer
625
Red Hat Virtualization 4.4 REST API Guide
scheduling_poli SchedulingPolicyU
cy_unit nit
Name Summary
7.95.1. disabled
The FIPS mode is disabled.
Its implication is that the FIPS mode is disabled and the hosts within should be with FIPS mode disabled,
otherwise they would be non-operational.
7.95.2. enabled
The FIPS mode is enabled.
Its implication is that the FIPS mode is enabled and the hosts within should be with FIPS mode enabled,
otherwise they should be non-operational.
7.95.3. undefined
The FIPS mode is not yet evaluated.
Currently, its implication is that the FIPS mode is undetermined. Once a host is added, this value will
switch according to the host settings.
626
CHAPTER 7. TYPES
Name Summary
7.96.1. firewalld
FirewallD firewall type.
When a cluster has the firewall type set to firewalld, the firewalls of all hosts in the cluster will be
configured using firewalld. FirewallD replaced IPTables in version 4.2. It simplifies configuration using a
command line program and dynamic configuration.
7.96.2. iptables
IPTables firewall type.
iptables is deprecated.
file File File object that represent the Floppy device’s content and its
type.
instance_type InstanceType Optionally references to an instance type the device is used by.
627
Red Hat Virtualization 4.4 REST API Guide
vms Vm[] References to the virtual machines that are using this device.
7.97.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
device String
fs_name String
gluster_clients GlusterClient[]
memory_pools GlusterMemoryPo
ol[]
mnt_options String
628
CHAPTER 7. TYPES
pid Integer
port Integer
server_id String
status GlusterBrickStatus
gluster_volume GlusterVolume
instance_type InstanceType Optionally references to an instance type the device is used by.
statistics Statistic[]
vms Vm[] References to the virtual machines that are using this device.
7.99.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
fs_name String
gluster_clients GlusterClient[]
629
Red Hat Virtualization 4.4 REST API Guide
memory_pools GlusterMemoryPo
ol[]
mnt_options String
pid Integer
port Integer
instance_type InstanceType Optionally references to an instance type the device is used by.
vms Vm[] References to the virtual machines that are using this device.
7.100.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.
memory_pools GlusterMemoryPo
ol[]
630
CHAPTER 7. TYPES
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_written Integer
client_port Integer
host_name String
checksum String
conflict_status Integer
conflicts String
content String
content_type HookContentType
gluster_comma String
nd
631
Red Hat Virtualization 4.4 REST API Guide
stage HookStage
status GlusterHookStatu
s
cluster Cluster
server_hooks GlusterServerHoo
k[]
Name Summary
alloc_count Integer
cold_count Integer
hot_count Integer
632
CHAPTER 7. TYPES
max_alloc Integer
max_stdalloc Integer
padded_size Integer
pool_misses Integer
type String
checksum String
content_type HookContentType
status GlusterHookStatu
s
host Host
633
Red Hat Virtualization 4.4 REST API Guide
Name Summary
down
unknown
up
disperse_count Integer
options Option[]
redundancy_co Integer
unt
replica_count Integer
status GlusterVolumeSta
tus
stripe_count Integer
transport_types TransportType[]
volume_type GlusterVolumeTyp
e
634
CHAPTER 7. TYPES
bricks GlusterBrick[]
cluster Cluster
statistics Statistic[]
brick_profile_de BrickProfileDetail[
tails ]
nfs_profile_deta NfsProfileDetail[]
ils
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.
635
Red Hat Virtualization 4.4 REST API Guide
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.
distributed_repl Distributed replicated volumes distributes files across replicated bricks in the volume.
icate
distributed_stri Distributed striped volumes stripe data across two or more nodes in the cluster.
pe
distributed_stri Distributed striped replicated volumes distributes striped data across replicated bricks
ped_replicate in the cluster.
striped_replicat Striped replicated volumes stripes data across replicated bricks in the cluster.
e
7.112.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.
7.112.2. distribute
Distributed volumes distributes files throughout the bricks in the volume.
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.
7.112.3. distributed_disperse
Distributed dispersed volumes distribute files across dispersed subvolumes.
This has the same advantages of distribute replicate volumes, but using disperse to store the data into
the bricks.
7.112.4. distributed_replicate
636
CHAPTER 7. TYPES
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.
7.112.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.
7.112.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.
7.112.7. replicate
Replicated volumes replicates files across bricks in the volume.
Replicated volumes can be used in environments where high-availability and high-reliability are critical.
7.112.8. stripe
Striped volumes stripes data across bricks in the volume.
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.
7.112.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.
637
Red Hat Virtualization 4.4 REST API Guide
expiry Integer
address String
port Integer
protocol GraphicsType
tls_port Integer
instance_type InstanceType
template Template
vm Vm
Name Summary
638
CHAPTER 7. TYPES
Name Summary
7.115.1. spice
Graphics protocol of type SPICE. See SPICE documentation for more details.
7.115.2. vnc
Graphics protocol of type VNC. VNC stands for Virtual Network Computing, and it is a graphical desktop
sharing system that uses RFB (Remote Frame Buffer) protocol to remotely control another machine.
roles Role[] A link to the roles sub-collection for roles attached to this group.
639
Red Hat Virtualization 4.4 REST API Guide
tags Tag[] A link to the tags sub-collection for tags attached to this group.
7.116.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 is only supported via the roles sub-collection.
GET /ovirt-engine/api/vms/123
640
CHAPTER 7. TYPES
GET /ovirt-engine/api/hosts/123
641
Red Hat Virtualization 4.4 REST API Guide
priority Integer Indicates the priority of the virtual machine inside the run and
migration queues.
7.119.1. enabled
Define if the virtual machine is considered highly available. Configuring a VM lease is highly
recommended (refer to that section) in order to prevent split-brain scenarios. Use a boot disk’s storage-
domain or any other active storage-domain.
7.119.2. priority
Indicates the priority of the virtual machine inside the run and migration queues.
Virtual machines with higher priorities will be started and migrated before virtual machines with lower
priorities.
The value is an integer between 0 and 100. The higher the value, the higher the priority.
The graphical user interface (GUI) does not allow specifying all the possible values, instead it only allows
you to select Low, Medium or High. When the value is set using the API, the GUI will set the label as
follows:
0 - 25 Low
26 - 74 Medium
75 - 100 High
642
CHAPTER 7. TYPES
When the label is selected using the GUI, the value in the API will be set as follows:
Low 1
Medium 50
High 100
Name Summary
643
Red Hat Virtualization 4.4 REST API Guide
Name Summary
Name Summary
auto_numa_stat AutoNumaStatus The host auto non uniform memory access (NUMA) status.
us
644
CHAPTER 7. TYPES
display Display Optionally specify the display address of this host explicitly.
645
Red Hat Virtualization 4.4 REST API Guide
protocol HostProtocol The protocol that the engine uses to communicate with the host.
root_password String When creating a new host, a root password is required if the
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_hu TransparentHugeP Transparent huge page support expands the size of memory
ge_pages ages 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.
7.124.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.
646
CHAPTER 7. TYPES
7.124.2. hosted_engine
The self-hosted engine status of this host.
IMPORTANT
When a host or collection of hosts is retrieved, this attribute is not included unless the
all_content parameter of the operation is explicitly set to true. See the documentation of
the operations that retrieve one or multiple hosts for details.
7.124.3. kdump_status
The host KDUMP status. KDUMP happens when the host kernel has crashed and it is now going through
memory dumping.
7.124.4. 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>
7.124.5. libvirt_version
The host libvirt version. For more information on libvirt please go to libvirt.
7.124.6. network_operation_in_progress
Specifies whether a network-related operation, such as 'setup networks', 'sync networks', or 'refresh
capabilities', is currently being executed on this host.
NOTE
The header All-Content:true must be added to the request in order for this attribute to
be included in the response.
7.124.7. override_iptables
Specifies whether we should override firewall definitions. This applies only when the host is installed or
re-installed.
7.124.8. protocol
647
Red Hat Virtualization 4.4 REST API Guide
The protocol that the engine uses to communicate with the host.
WARNING
Since version 4.1 of the engine the protocol is always set to stomp since xml was
removed.
7.124.9. 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.
7.124.10. 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.
7.124.11. status_detail
The host status details. Relevant for Gluster hosts.
7.124.12. 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>
7.124.13. version
The version of VDSM.
For example:
GET /ovirt-engine/api/hosts/123
648
CHAPTER 7. TYPES
<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_labels AffinityLabel[]
agents Agent[]
cluster Cluster
cpu_units HostCpuUnit[] List of all host’s CPUs with detailed information about the
topology (socket, core) and with information about the current
CPU pinning.
devices HostDevice[]
external_host_p ExternalHostProvi
rovider der
hooks Hook[]
katello_errata KatelloErratum[] Lists all the Katello errata assigned to the host.
network_attach NetworkAttachme
ments nt[]
nics HostNic[]
numa_nodes NumaNode[]
permissions Permission[]
statistics Statistic[] Each host resource exposes a statistics sub-collection for host-
specific statistics.
649
Red Hat Virtualization 4.4 REST API Guide
storage_connec StorageConnectio
tion_extensions nExtension[]
storages HostStorage[]
tags Tag[]
unmanaged_net UnmanagedNetwo
works rk[]
7.124.14. cpu_units
List of all host’s CPUs with detailed information about the topology (socket, core) and with information
about the current CPU pinning.
GET /ovirt-engine/api/hosts/123/cpuunits
<host_cpu_units>
<host_cpu_unit>
<core_id>0</core_id>
<cpu_id>0</cpu_id>
<socket_id>0</socket_id>
<vms>
<vm href="/ovirt-engine/api/vms/def" id="def" />
</vms>
</host_cpu_unit>
<host_cpu_unit>
<core_id>0</core_id>
<cpu_id>1</cpu_id>
<socket_id>1</socket_id>
<runs_vdsm>true</runs_vdsm>
</host_cpu_unit>
<host_cpu_unit>
<core_id>0</core_id>
<cpu_id>2</cpu_id>
<socket_id>2</socket_id>
</host_cpu_unit>
</host_cpu_units>
7.124.15. external_network_provider_configurations
External network providers provisioned on the host.
This attribute is read-only. Setting it will have no effect on the host. The value of this parameter reflects
the Default Network Provider of the cluster.
7.124.16. katello_errata
650
CHAPTER 7. TYPES
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>
7.124.17. statistics
Each host resource exposes a statistics sub-collection for host-specific 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"/>
</statistic>
...
</statistics>
NOTE
651
Red Hat Virtualization 4.4 REST API Guide
Name Description
652
CHAPTER 7. TYPES
runs_vdsm Boolean A flag indicating that the CPU runs the VDSM
vms Vm[] A list of VMs that has its virtual CPU pinned to this physical CPU.
capability String
driver String The name of the driver this device is bound to.
iommu_group Integer
m_dev_types MDevType[] List of all supported mdev types on the physical device,
physical_functi HostDevice
on
653
Red Hat Virtualization 4.4 REST API Guide
placeholder Boolean
product Product
vendor Vendor
virtual_function Integer
s
7.126.1. driver
The name of the driver this device is bound to.
host Host
parent_device HostDevice
vm Vm
enabled Boolean
For example, the XML representation of a host NIC looks like this:
654
CHAPTER 7. TYPES
<gateway>192.168.122.1</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
<ipv6>
<gateway>::</gateway>
<version>v6</version>
</ipv6>
<ipv6_boot_protocol>none</ipv6_boot_protocol>
<mac>
<address>52:54:00:0c:79:1d</address>
</mac>
<mtu>1500</mtu>
<status>up</status>
</host_nic>
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:
655
Red Hat Virtualization 4.4 REST API Guide
check_connecti Boolean
vity
custom_configu Boolean
ration
override_config Boolean
uration
properties Property[]
speed Integer
status NicStatus
656
CHAPTER 7. TYPES
vlan Vlan
7.128.1. ad_aggregator_id
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. (See Wikipedia and Presentation for more
information). This is only valid for bonds in mode 4, or NICs which are part of a bond. It is not present for
bonds in other modes, or NICs which are not part of 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 as 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 the
/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.
7.128.2. bridged
Defines the bridged network status. Set to true for a bridged network and false for a bridgeless
network.
host Host
7.128.3. network
A reference to the network to which the interface should be connected. A blank network ID is allowed.
7.128.4. statistics
657
Red Hat Virtualization 4.4 REST API Guide
data.current.rx.bps - The rate in bits per second of data received (since version 4.2).
data.current.tx.bps - The rate in bits per second of data transmitted (since version 4.2).
all_networks_all Boolean Defines whether all networks are allowed to be defined on the
owed related virtual functions, or specified ones only.
max_number_of Integer The maximum number of virtual functions the NIC supports.
_virtual_functio
ns
7.129.1. max_number_of_virtual_functions
The maximum number of virtual functions the NIC supports. This property is read-only.
7.129.2. number_of_virtual_functions
The number of virtual functions currently defined. A user-defined value between 0 and
max_number_of_virtual_functions.
658
CHAPTER 7. TYPES
WARNING
Since version 4.1 of the engine the protocol is always set to stomp since xml was
removed.
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.
659
Red Hat Virtualization 4.4 REST API Guide
Name Summary
7.131.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.
7.131.2. initializing
The host is initializing. This is an intermediate step before moving the host to 'up' status.
7.131.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.
7.131.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).
7.131.5. maintenance
The host is in maintenance status. When a host is in maintenance it cannot run virtual machines.
7.131.6. non_operational
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.
7.131.7. non_responsive
The host is not responsive. This means that the engine is not able to communicate with the host.
7.131.8. pending_approval
The host is pending administrator approval. This is relevant only for vintage ovirt-node / RHV-H. This
660
CHAPTER 7. TYPES
The host is pending administrator approval. This is relevant only for vintage ovirt-node / RHV-H. This
property is no longer relevant since Vintage Node is no longer supported, and has been deprecated.
7.131.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
driver_options Property[] The options to be passed when creating a storage domain using
a cinder driver.
logical_units LogicalUnit[]
mount_options String
nfs_timeo Integer The time in tenths of a second to wait for a response before
retrying NFS requests.
nfs_version NfsVersion
override_luns Boolean
password String
path String
661
Red Hat Virtualization 4.4 REST API Guide
port Integer
portal String
target String
type StorageType
username String
vfs_type String
volume_group VolumeGroup
7.132.1. driver_options
The options to be passed when creating a storage domain using a cinder driver.
POST /ovirt-engine/api/storagedomains/
<storage_domain>
<name>kamniraio-cinder</name>
<type>managed_block_storage</type>
<storage>
<type>managed_block_storage</type>
<driver_options>
<property>
<name>san_ip</name>
<value>192.168.1.1</value>
</property>
<property>
<name>san_login</name>
<value>username</value>
</property>
<property>
<name>san_password</name>
<value>password</value>
</property>
<property>
<name>use_multipath_for_image_xfer</name>
<value>true</value>
</property>
<property>
<name>volume_driver</name>
<value>cinder.volume.drivers.kaminario.kaminario_iscsi.KaminarioISCSIDriver</value>
</property>
</driver_options>
662
CHAPTER 7. TYPES
</storage>
<host>
<name>host</name>
</host>
</storage_domain>
7.132.2. driver_sensitive_options
Parameters containing sensitive information, to be passed when creating a storage domain using a
cinder driver. These parameters are encrypted when they are saved.
For example, the following XML encrypts and saves a username, password and SAN IP address:
POST /ovirt-engine/api/storagedomains/
<storage_domain>
<name>kamniraio-cinder</name>
<type>managed_block_storage</type>
<storage>
<type>managed_block_storage</type>
<driver_options>
<property>
<name>san_ip</name>
<value>192.168.1.1</value>
</property>
<property>
<name>san_login</name>
<value>username</value>
</property>
<property>
<name>san_password</name>
<value>password</value>
</property>
<property>
<name>use_multipath_for_image_xfer</name>
<value>true</value>
</property>
<property>
<name>volume_driver</name>
<value>cinder.volume.drivers.kaminario.kaminario_iscsi.KaminarioISCSIDriver</value>
</property>
</driver_options>
<driver_sensitive_options>
<property>
<name>username</name>
<value>admin</value>
</property>
<property>
<name>password</name>
<value>123</value>
</property>
<property>
<name>san_ip</name>
<value>192.168.1.1</value>
</property>
663
Red Hat Virtualization 4.4 REST API Guide
</driver_sensitive_options>
</storage>
<host>
<name>host</name>
</host>
</storage_domain>
7.132.3. nfs_retrans
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.
7.132.4. 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
Name Summary
ovirt_node The host contains Red Hat Virtualization Host (RHVH): a new implementation of Red
Hat Enterprise Virtualization Hypervisor (RHEV-H) which uses the same installer as Red
Hat Enterprise Linux, CentOS, or Fedora.
rhel The host contains a full Red Hat Enterprise Linux, CentOS, or Fedora installation.
rhev_h The host contains Red Hat Enterprise Virtualization Hypervisor (RHEV-H), a small-
scaled version of Red Hat Enterprise Linux, CentOS, or Fedora, used solely to host
virtual machines.
7.133.1. ovirt_node
The host contains Red Hat Virtualization Host (RHVH): a new implementation of Red Hat Enterprise
Virtualization Hypervisor (RHEV-H) which uses the same installer as Red Hat Enterprise Linux, CentOS,
or Fedora. The main difference between RHVH and legacy RHEV-H is that RHVH has a writeable file
system and will handle its own installation instead of having RPMs pushed to it by the Manager like in
legacy RHEV-H.
664
CHAPTER 7. TYPES
7.133.2. rhev_h
The host contains Red Hat Enterprise Virtualization Hypervisor (RHEV-H), a small-scaled version of Red
Hat Enterprise Linux, CentOS, or Fedora, used solely to host virtual machines.
This property is no longer relevant since Vintage Node is no longer supported, and has been
deprecated.
active Boolean
configured Boolean
global_mainten Boolean
ance
local_maintena Boolean
nce
score Integer
7.135.1. media_type
Format of icon file.
665
Red Hat Virtualization 4.4 REST API Guide
One of:
image/jpeg
image/png
image/gif
666
CHAPTER 7. TYPES
Name Summary
disk The image is a disk format that can be used as a virtual machine’s disk.
floppy The image is a floppy disk that can be attached to a virtual machine, for example to
install the VirtIO drivers in Windows.
7.138.1. iso
The image is a .iso file that can be used as a CD-ROM to boot and install a virtual machine.
active Boolean Indicates whether there’s at least one active session for this
transfer, i,e there’s at least one live transfer session between the
client and the daemon.
direction ImageTransferDire The direction indicates whether the transfer is sending image
ction data (upload) or receiving image data (download).
format DiskFormat The format of the data sent during upload or received during
download.
667
Red Hat Virtualization 4.4 REST API Guide
inactivity_timeo Integer The timeout in seconds of client inactivity, after which the
ut transfer is aborted by the Red Hat Virtualization Manager.
proxy_url String The URL of the proxy server that the user inputs or outputs to.
shallow Boolean Download only the specified image instead of the entire image
chain.
timeout_policy ImageTransferTim Timeout policy determines how the system handles the transfer
eoutPolicy when a client is idle for more than inactivityTimeout.
transfer_url String The URL of the daemon server that the user can input or output
to directly.
7.139.1. direction
The direction indicates whether the transfer is sending image data (upload) or receiving image data
(download).
If a direction is not set during an addition of a new transfer, The default direction for the transfer will be
upload.
7.139.2. format
The format of the data sent during upload or received during download. If not specified, defaults to
disk’s format.
7.139.3. inactivity_timeout
The timeout in seconds of client inactivity, after which the transfer is aborted by the Red Hat
Virtualization Manager. To disable the inactivity timeout specify '0'. If not specified, the value is
defaulted to the engine-config value: TransferImageClientInactivityTimeoutInSeconds.
7.139.4. 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.
7.139.5. proxy_url
The URL of the proxy server that the user inputs or outputs to. This attribute is available only if the
668
CHAPTER 7. TYPES
The URL of the proxy server that the user inputs or outputs to. This attribute is available only if the
image transfer is in the transferring phase. See phase for details.
7.139.6. shallow
Download only the specified image instead of the entire image chain.
If true, when using format="raw" and direction="download", the transfer includes data only from the
specified disk snapshot, and unallocated areas are reported as holes. By default, the transfer includes
data from all disk snapshots.
When specifying a disk snapshot, the transfer includes only data for the specified disk snapshot. When
specifying a disk, the transfer includes only data from the active disk snaphost.
This parameter has no effect when not using format="raw" or for direction="upload".
<image_transfer>
<snapshot id="2fb24fa2-a5db-446b-b733-4654661cd56d"/>
<direction>download</direction>
<format>raw</format>
<shallow>true</shallow>
</image_transfer>
To download the active snapshot disk image (which is not accessible as a disk snapshot), specify the
disk:
<image_transfer>
<disk id="ff6be46d-ef5d-41d6-835c-4a68e8956b00"/>
<direction>download</direction>
<format>raw</format>
<shallow>true</shallow>
</image_transfer>
In both cases you can now download a qcow2 image using imageio client:
client.download(
transfer.transfer_url,
"51275e7d-42e9-491f-9d65-b9211c897eac",
backing_file="07c0ccac-0845-4665-9097-d0a3b16cf43b",
backing_format="qcow2")
7.139.7. transfer_url
The URL of the daemon server that the user can input or output to directly.
This is as an alternative to the proxy_url. I.e. if the client has access to the host machine, it could bypass
the proxy and transfer directly to the host, potentially improving the throughput performance. This
attribute is available only if the image transfer is in the transferring phase. See phase for details.
669
Red Hat Virtualization 4.4 REST API Guide
host Host The host which will be used to write to the image which is
targeted for input or output.
snapshot DiskSnapshot The disk snapshot which is targeted for input or output.
7.139.8. backup
The backup associated with the image transfer. Specify when initiating an image transfer for a disk that
is part of a backup.
7.139.9. host
The host which will be used to write to the image which is targeted for input or output. If not specified,
an active host will be randomly selected from the data center.
7.139.10. image
The image which is targeted for input or output.
IMPORTANT
This attribute is deprecated since version 4.2 of the engine. Use the disk or snapshot
attributes instead.
When adding a new transfer, the user can choose whether the transfer will be to an image, choosing
upload, or to transfer from an image- choosing download as an ImageTransferDirection.
Name Summary
download The user must choose download when he/she wants to stream data from an image.
upload The user can choose upload when he/she wants to stream data to an image.
670
CHAPTER 7. TYPES
Name Summary
cancelled This phase will be set as a result of the user cancelling the transfer.
cancelled_syste This phase will be set as a result of the system cancelling the transfer.
m
cancelled_user This phase will be set as a result of the user cancelling the transfer.
finalizing_clean This phase indicates that the user cancelled the transfer, and necessary cleanup is being
up done.
finalizing_failur This phase can only be set in the Administration Portal, and indicates that there was an
e error during the transfer, and it is being finalized with a failure.
finalizing_succe This phase will be set when the user calls finalize.
ss
finished_cleanu This phase indicates that the user cancelled the transfer, and necessary cleanup is done.
p
finished_failure Indicates that the targeted image failed the verification, and cannot be used.
finished_succe Indicates that the transfer session was successfully closed, and the targeted image was
ss verified and ready to be used.
paused_system This phase means the session timed out, or some other error occurred with this transfer;
for example ovirt-imageio 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.
671
Red Hat Virtualization 4.4 REST API Guide
7.141.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.
7.141.2. finalizing_success
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.
7.141.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. System cancelling
the transfer will also result in this.
7.141.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.
7.141.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
7.141.6. paused_system
This phase means the session timed out, or some other error occurred with this transfer; for example
ovirt-imageio is not running in the selected host. To resume the session, the client should call resume.
After resuming, the phase will change to resuming.
7.141.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.
7.141.8. unknown
An unknown phase. This will only be set in cases of unpredictable errors.
Define how the system handles a transfer when the client is inactive for inactivityTimeout seconds.
672
CHAPTER 7. TYPES
Name Summary
legacy LEGACY policy will preserve the legacy functionality which is the default.
7.142.1. cancel
Cancel the transfer and unlock the disk. For image transfer using upload direction, the disk is deleted.
7.142.2. legacy
LEGACY policy will preserve the legacy functionality which is the default. The default behaviour will
cancel the transfer if the direction is download, and pause it if its upload.
7.142.3. pause
Pause the transfer. The transfer can be resumed or canceled by the user. The disk will remain locked
while the transfer is paused.
Name Summary
active_directory String
_ou
673
Red Hat Virtualization 4.4 REST API Guide
authorized_ssh String
_keys
cloud_init_netw CloudInitNetworkP Attribute specifying the cloud-init protocol to use for formatting
ork_protocol rotocol the cloud-init network parameters.
configuration Configuration
custom_script String
dns_search String
dns_servers String
domain String
host_name String
input_locale String
nic_configuratio NicConfiguration[]
ns
org_name String
regenerate_ids Boolean
regenerate_ssh Boolean
_keys
root_password String
system_locale String
timezone String
ui_language String
user_locale String
user_name String
674
CHAPTER 7. TYPES
windows_licens String
e_key
7.144.1. cloud_init
Deprecated attribute to specify cloud-init configuration.
This attribute and the CloudInit type have been deprecated and will be removed in the future. To
specify the cloud-init configuration, use the attributes inside the Initialization type. The mapping
between the attributes of these two types are as follows:
CloudInit Initialization
authorized_keys authorized_ssh_keys
dns.search_domains dns_search
dns.servers dns_servers
files custom_script
host host_name
network_configuration.nics nic_configurations
regenerate_ssh_keys regenerate_ssh_keys
timezone timezone
For more details on how to use cloud-init see the examples in Python and Java.
7.144.2. cloud_init_network_protocol
Attribute specifying the cloud-init protocol to use for formatting the cloud-init network parameters. If
omitted, a default value is used, as described in the CloudInitNetworkProtocol
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
675
Red Hat Virtualization 4.4 REST API Guide
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.
auto_pinning_p AutoPinningPolicy Specifies if and how the auto CPU and NUMA configuration is
olicy applied.
676
CHAPTER 7. TYPES
cpu_pinning_po CpuPinningPolicy Specifies if and how the CPU and NUMA configuration is
licy applied.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
677
Red Hat Virtualization 4.4 REST API Guide
migration_down Integer Maximum time the virtual machine can be non responsive during
time its live migration to another host in ms.
multi_queues_e Boolean If true, each virtual interface will get the optimal number of
nabled queues, depending on the available virtual Cpus.
rng_device RngDevice Random Number Generator device configuration for this virtual
machine.
soundcard_ena Boolean If true, the sound card is added to the virtual machine.
bled
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.
storage_error_r VmStorageErrorR Determines how the virtual machine will be resumed after
esume_behavio esumeBehaviour storage error.
ur
678
CHAPTER 7. TYPES
tunnel_migratio Boolean If true, the network data transfer will be encrypted during virtual
n machine live migration.
type VmType Determines whether the virtual machine is optimized for desktop
or server.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
virtio_scsi_mult Integer Number of queues for a Virtio-SCSI contoller this field requires
i_queues virtioScsiMultiQueuesEnabled to be true see
virtioScsiMultiQueuesEnabled for more info
virtio_scsi_mult Boolean If true, the Virtio-SCSI devices will obtain a number of multiple
i_queues_enabl queues depending on the available virtual Cpus and disks, or
ed according to the specified virtioScsiMultiQueues.
7.145.1. auto_pinning_policy
Specifies if and how the auto CPU and NUMA configuration is applied.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It might be removed in the future. Please use CpuPinningPolicy
instead.
7.145.2. cpu
The configuration of the virtual machine 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:
679
Red Hat Virtualization 4.4 REST API Guide
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.145.3. cpu_pinning_policy
Specifies if and how the CPU and NUMA configuration is applied. When not specified the previous
behavior of CPU pinning string will determine CpuPinningPolicy to None or Manual.
7.145.4. custom_compatibility_version
Virtual machine 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.
7.145.5. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.145.6. initialization
Reference to the virtual machine’s initialization configuration.
NOTE
Since Red Hat Virtualization 4.1.8 this property can be cleared by sending an empty tag.
For example, to clear the initialization attribute send a request like this:
PUT /ovirt-engine/api/vms/123
<vm>
<initialization/>
</vm>
680
CHAPTER 7. TYPES
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.145.7. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.145.8. lease
Reference to the storage domain this virtual machine/template lease reside on.
A virtual machine running with a lease requires checking while running that the lease is not taken by
another host, preventing another instance of this virtual machine from running on another host. This
provides protection against split-brain in highly available virtual machines. A template can also have a
storage domain defined for a lease in order to have the virtual machines created from this template to
be preconfigured with this storage domain as the location of the leases.
7.145.9. memory
The virtual machine’s memory, in bytes.
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>
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 in state up. The size increment must be dividable by the
value of the HotPlugMemoryBlockSizeMb configuration value (256 MiB by default). If the memory size
increment is not dividable by this value, the memory size change is only stored to next run configuration.
Each successful memory hot plug operation creates one or two new memory devices.
Memory hot unplug is supported since Red Hat Virtualization 4.2 onwards. Memory hot unplug can only
be performed when the virtual machine is in state up. Only previously hot plugged memory devices can
be removed by the hot unplug operation. The requested memory decrement is rounded down to match
sizes of a combination of previously hot plugged memory devices. The requested memory value is
stored to next run configuration without rounding.
NOTE
NOTE
Red Hat Virtualization Manager internally rounds values down to whole MiBs (1MiB = 220
bytes)
681
Red Hat Virtualization 4.4 REST API Guide
7.145.10. migration
Reference to configuration of migration of a running virtual machine to another host.
NOTE
API for querying migration policy by ID returned by this method is not implemented yet.
Use /ovirt-engine/api/options/MigrationPolicies to get a list of all migration policies
with their IDs.
7.145.11. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.145.12. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.145.13. placement_policy
The configuration of the virtual machine’s 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.
682
CHAPTER 7. TYPES
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>
7.145.14. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.145.15. 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.
7.145.16. tpm_enabled
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
visible when fetching if "All-Content=true" header is set.
683
Red Hat Virtualization 4.4 REST API Guide
quota Quota Reference to quota configuration set for this virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
7.146. IO STRUCT
Table 7.197. Attributes summary
threads Integer
7.147. IP STRUCT
Represents the IP configuration of a network interface.
7.147.1. address
The text representation of the IP address.
684
CHAPTER 7. TYPES
<ip>
<address>192.168.0.1</address>
...
</ip>
<ip>
<address>2620:52:0:20f0:4216:7eff:feaa:1b50</address>
...
</ip>
7.147.2. netmask
The network mask.
For IPv6 addresses the value is an integer in the range of 0-128, which represents the subnet prefix.
7.147.3. version
The version of the IP protocol.
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.
For a static boot protocol assignment, subnet mask and IP address (and optinally default gateway) must
be provided in the IP configuration.
assignment_me BootProtocol Sets the boot protocol used to assign the IP configuration for a
thod network device.
685
Red Hat Virtualization 4.4 REST API Guide
Name Summary
v4 IPv4.
v6 IPv6.
data_center DataCenter
networks Network[]
storage_connec StorageConnectio
tions n[]
address String
disk_id String
initiator String
lun_mapping Integer
password String
686
CHAPTER 7. TYPES
paths Integer
port Integer
portal String
product_id String
serial String
size Integer
status String
storage_domain String
_id
target String
username String
vendor_id String
volume_group_i String
d
auto_cleared Boolean Indicates if the job should be cleared automatically after it was
completed by the system.
687
Red Hat Virtualization 4.4 REST API Guide
7.152.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
7.153.1. aborted
The aborted job status. This status is applicable for an external job that was forcibly aborted.
688
CHAPTER 7. TYPES
7.153.2. finished
The finished job status. This status describes a completed job execution.
7.153.3. started
The started job status. This status represents a job which is currently being executed.
7.153.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.
7.154.1. severity
The severity of the Katello erratum.
689
Red Hat Virtualization 4.4 REST API Guide
7.154.2. type
The type of the Katello erratum.
host Host Reference to the host that the Katello erratum is assigned to.
Name Summary
disabled
enabled
unknown
version Version
enabled Boolean
merge_across_ Boolean
nodes
690
CHAPTER 7. TYPES
Represents an information element received by Link Layer Discovery Protocol (LLDP). IEEE 802.1AB
defines type, length, value (TLV) as a "short, variable length encoding of an information element". This
type represents such an information element.
The attribute name is a human-readable string used to describe what the value is about, and may not be
unique. The name is redundant, because it could be created from type and the optional oui and
subtype. The purpose of name is to simplify the reading of the information element. The name of a
property is exactly the same string which is used in IEEE 802.1AB chapter 8.
Organizationally-specific information elements have the type of 127 and the attributes oui and
subtype.
For example, the XML representation of an information element may look like this:
<link_layer_discovery_protocol_element>
<name>Port VLAN Id</name>
<oui>32962</oui>
<properties>
<property>
<name>vlan id</name>
<value>488</value>
</property>
<property>
<name>vlan name</name>
<value>v2-0488-03-0505</value>
</property>
</properties>
<subtype>3</subtype>
<type>127</type>
</link_layer_discovery_protocol_element>
691
Red Hat Virtualization 4.4 REST API Guide
7.158.1. oui
The organizationally-unique identifier (OUI) encoded as an integer. Only available if type is 127.
7.158.2. subtype
The organizationally-defined subtype encoded as an integer. Only available if type is 127.
Name Summary
7.159.1. absolute_value_in_mb
Absolute value threshold type.
When an absolute value is specified, an audit log event is logged if the free memory in MB falls below the
value specified in LogMaxMemoryUsedThreshold.
7.159.2. percentage
Percentage threshold type.
When a percentage is specified, an audit log event is logged if the memory used is above the value
specified in LogMaxMemoryUsedThreshold.
Name Summary
692
CHAPTER 7. TYPES
Name Summary
7.160.1. alert
Alert severity. Used to specify a condition that requires an immediate attention.
7.160.2. error
Error severity. Used to specify that there is an error that needs to be examined.
7.160.3. normal
Normal severity. Used for information events.
7.160.4. warning
Warning severity. Used to warn something might be wrong.
address String
discard_max_si Integer The maximum number of bytes that can be discarded by the
ze logical unit’s underlying storage in a single operation.
disk_id String
id String
lun_mapping Integer
password String
paths Integer
693
Red Hat Virtualization 4.4 REST API Guide
port Integer
portal String
product_id String
serial String
size Integer
status LunStatus
storage_domain String
_id
target String
username String
vendor_id String
volume_group_i String
d
7.161.1. discard_max_size
The maximum number of bytes that can be discarded by the logical unit’s underlying storage in a single
operation. A value of 0 means that the device does not support discard functionality.
NOTE
This is the software limit, and not the hardware limit, as noted in the queue-sysfs
documentation for discard_max_bytes.
7.161.2. discard_zeroes_data
True, if previously discarded blocks in the logical unit’s underlying storage are read back as zeros. For
more information please see the queue-sysfs documentation for discard_zeroes_data.
IMPORTANT
Since version 4.2.1 of the system, the support for this attribute has been removed as the
sysfs file, discard_zeroes_data, was deprecated in the kernel. It is preserved for
backwards compatibility, but the value will always be false.
694
CHAPTER 7. TYPES
Name Summary
free
unusable
used
695
Red Hat Virtualization 4.4 REST API Guide
<allow_duplicates>false</allow_duplicates>
<default_pool>true</default_pool>
<ranges>
<range>
<from>00:1A:4A:16:01:51</from>
<to>00:1A:4A:16:01:E6</to>
</range>
</ranges>
</mac_pool>
allow_duplicate Boolean Defines whether duplicate MAC addresses are permitted in the
s pool.
ranges Range[] Defines the range of MAC addresses for the pool.
7.165.1. allow_duplicates
Defines whether duplicate MAC addresses are permitted in the pool. If not specified, defaults to false.
7.165.2. default_pool
Defines whether this is the default pool. If not specified, defaults to false.
7.165.3. ranges
Defines the range of MAC addresses for the pool. Multiple ranges can be defined.
permissions Permission[] Returns a reference to the permissions that are associated with
the MacPool.
696
CHAPTER 7. TYPES
percent Integer
ballooning Boolean
over_commit MemoryOverCom
mit
transparent_hu TransparentHugeP
ge_pages ages
7.167.1. guaranteed
The amount of memory, in bytes, that is guaranteed to not be drained by the balloon mechanism.
The Red Hat Virtualization Manager internally rounds this value down to whole MiB (1MiB = 220 bytes).
NOTE
It can be updated while the virtual machine is running since Red Hat Virtualization 4.2
onwards, provided memory is updated in the same request as well, and the virtual
machine is in state up.
7.167.2. max
Maximum virtual machine memory, in bytes.
The user provides the value in bytes, and the Red Hat Virtualization Manager rounds the value down to
the nearest lower MiB value.
For example, if the user enters a value of 1073741825 (1 GiB + 1 byte), then the Red Hat Virtualization
Manager will truncate that value to the nearest lower MiB boundary: in this case 1073741824 (1 GiB).
697
Red Hat Virtualization 4.4 REST API Guide
Ignored, because the deployment of OpenStack Neutron agent is dropped since Red Hat Virtualization
4.4.0.
Name Summary
qpid
rabbit_mq
id SsoMethod
Name Summary
do_not_migrate
migrate
migrate_highly_
available
698
CHAPTER 7. TYPES
7.171.1. custom_value
Custom bandwidth in Mbps. Will be applied only if the assignmentMethod attribute is custom.
Name Summary
auto Takes the bandwidth from the Quality of Service if the Quality of Service is defined.
7.172.1. auto
Takes the bandwidth from the Quality of Service if the Quality of Service is defined. If the Quality of
Service is not defined the bandwidth is taken from the detected link speed being used. If nothing is
detected, bandwidth falls back to the hypervisor_default value.
auto_converge InheritableBoolean
compressed InheritableBoolean
7.173.1. custom_parallel_migrations
699
Red Hat Virtualization 4.4 REST API Guide
Specifies how many parallel migration connections to use. May be specified only when
ParallelMigrationsPolicy is CUSTOM. The valid range of values is 2-255. The recommended range of
values is 2-16.
{
"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",
700
CHAPTER 7. TYPES
"rel" : "permissions"
}, {
"href" : "/ovirt-engine/api/networks/456/vnicprofiles",
"rel" : "vnicprofiles"
}, {
"href" : "/ovirt-engine/api/networks/456/labels",
"rel" : "labels"
}]
}]
}
dns_resolver_c DnsResolverConfi The DNS resolver configuration will be reported when retrieving
onfiguration guration the network using GET.
mtu Integer Specifies the maximum transmission unit for the network.
701
Red Hat Virtualization 4.4 REST API Guide
profile_required Boolean Specifies whether upon creation of the network a virtual network
interface profile should automatically be created.
required Boolean Defines whether the network is mandatory for all the hosts in the
cluster.
stp Boolean Specifies whether the spanning tree protocol is enabled for the
network.
7.175.1. dns_resolver_configuration
The DNS resolver configuration will be reported when retrieving the network using GET. It is optional
both when creating a new network or updating existing one.
7.175.2. port_isolation
Defines whether communication between VMs running on the same host is blocked on this network.
Applies only to VM networks. It is on the network administrator to ensure that the communication
between multiple hosts is blocked. This attribute can be set only on network creation and cannot be
edited. When the value is not set, communication between VMs running on the same host is allowed.
7.175.3. required
Defines whether the network is mandatory for all the hosts in the cluster. In case a 'required' operational
network is omitted from a host, the host will be marked as non_operational,
7.175.4. status
The status of the network. non_operational if the network defined as 'required' and omitted from any
active cluster host. operational otherwise.
7.175.5. usages
Defines a set of usage elements for the network.
For example, users can specify that the network is to be used for virtual machine traffic and also for
display traffic with the vm and display values.
7.175.6. vdsm_name
702
CHAPTER 7. TYPES
The name of the network used on the host. This alternative name is automatically generated by VDSM
when the network name is found unsuitable to serve as a bridge name on the host. Unsuitable names
contain spaces, special characters or are longer than 15 characters and are replaced with a UUID on the
host. This parameter is read-only. Setting it will have no effect.
data_center DataCenter A reference to the data center that the network is a member of.
7.175.7. cluster
A reference to the cluster this network is attached to. Will be filled only if the network is accessed from
the cluster level.
7.175.8. external_provider
An optional reference to the OpenStack network provider on which the network is created.
If it is specified when a network is created, a matching OpenStack network will be also created.
7.175.9. external_provider_physical_network
An optional reference to a network that should be used for physical network access. Valid only if
external_provider is specified.
703
Red Hat Virtualization 4.4 REST API Guide
The network element, with either a name or an id, is required in order to attach a network to a network
interface card (NIC).
For example, to attach a network to a host network interface card, send a request like this:
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>
704
CHAPTER 7. TYPES
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>
<properties>
<property>
<name>bridge_opts</name>
<value>
forward_delay=1500 group_fwd_mask=0x0 multicast_snooping=1
</value>
</property>
</properties>
...
</network_attachment>
705
Red Hat Virtualization 4.4 REST API Guide
dns_resolver_c DnsResolverConfi DNS resolver configuration will be reported when retrieving the
onfiguration guration network attachment using GET.
in_sync Boolean
7.176.1. dns_resolver_configuration
DNS resolver configuration will be reported when retrieving the network attachment using GET. It is
optional when creating a new network attachment or updating an existing one.
7.176.2. properties
Defines custom properties for the network configuration.
Bridge options have the set name of bridge_opts. Separate multiple entries with a whitespace character.
The following keys are valid for bridge_opts:
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
706
CHAPTER 7. TYPES
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
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
network Network A reference to the network that the interface is attached to.
qos Qos
707
Red Hat Virtualization 4.4 REST API Guide
dns Dns
nics Nic[]
There are several types of network filters supported based on libvirt. For more details about the
different network filters see here.
The default Network Filter is based on network type and configuration. VM network’s default filter is
vdsm-no-mac-spoof if EnableMACAntiSpoofingFilterRules is True, otherwise the filter is not
configured, for OVN networks the filter is not configured.
In addition to libvirt’s network filters, there are two additional network filters: The first is called vdsm-no-
mac-spoofing and is composed of no-mac-spoofing and no-arp-mac-spoofing. The second is called
ovirt-no-filter and is used when no network filter is to be defined for the virtual machine’s NIC. The
ovirt-no-filter network filter is only used for internal implementation, and does not 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>
708
CHAPTER 7. TYPES
7.178.1. version
The minimum supported version of a specific NetworkFilter. This is the version that the NetworkFilter
was first introduced in.
See Libvirt-Filters for further details. This is a example of the XML representation:
<network_filter_parameter id="123">
<name>IP</name>
<value>10.0.1.2</value>
</network_filter_parameter>
nic Nic The virtual machine NIC the parameter is assiciated to.
709
Red Hat Virtualization 4.4 REST API Guide
host_nic HostNic A reference to the host network interface which contains this
label.
Since version 4.2 of the Red Hat Virtualization Manager, this type has been deprecated in favour of the
external_plugin_type attribute of the OpenStackNetworkProvider type.
Name Summary
7.181.1. open_vswitch
Open vSwitch.
Specifies that Open vSwitch based driver implementation should be used for this provider.
Since version 4.2 of the Red Hat Virtualization Manager, this value has been deprecated. Use the string
open_vswitch in the OpenStackNetworkProvider.external_plugin_type attribute instead.
Name Summary
non_operational
710
CHAPTER 7. TYPES
Name Summary
operational
Name Summary
default_route The default gateway and the DNS resolver configuration of the host will be taken from
this network.
display The network will be used for SPICE and VNC traffic.
gluster The network will be used for Gluster (bricks) data traffic.
management The network will be used for communication between the Red Hat Virtualization
Manager and the nodes.
vm
7.183.1. default_route
The default gateway and the DNS resolver configuration of the host will be taken from this network.
If this network is attached to the host, then the DNS resolver configuration will be taken from the
dns_resolver_configuration attribute of the network attachment. If there is no
dns_resolver_configuration attribute in this network attachment, then they will be taken from the
dns_resolver_configuration of the network itself. If dns_resolver_configuration attribute isn’t
present even there, DNS resolver configuration won’t be set.
If you set this flag on a network, then the the default gateway for the host will be taken from the
gateway attribute of the ip_address_assignment of the network attachment.
7.183.2. management
The network will be used for communication between the Red Hat Virtualization Manager and the
nodes. This is the network where the ovirtmgmt bridge will be created.
711
Red Hat Virtualization 4.4 REST API Guide
nfs_server_ip String
profile_details ProfileDetail[]
Name Summary
auto
v3
v4
v4_0 NFS 4.
v4_1
v4_2 NFS 4.
7.185.1. v4_0
NFS 4.0.
7.185.2. v4_2
NFS 4.2.
For example, the XML representation of a NIC will look like this:
712
CHAPTER 7. TYPES
synced Boolean Defines if the NIC configuration on the virtual machine is synced
with the configuration represented by engine.
instance_type InstanceType Optionally references to an instance type the device is used by.
network_labels NetworkLabel[] A link to a collection of network labels that are associated with
the host NIC.
713
Red Hat Virtualization 4.4 REST API Guide
vms Vm[] References to the virtual machines that are using this device.
7.186.1. network
A reference to the network that 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.
7.186.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.
714
CHAPTER 7. TYPES
Name Summary
e1000 e1000.
e1000e e1000e.
rtl8139 rtl8139.
virtio VirtIO.
Name Summary
715
Red Hat Virtualization 4.4 REST API Guide
Type representing a subset of events in the Red Hat Virtualization server: those which a user may
subscribe to receive a notification about.
Name Summary
716
CHAPTER 7. TYPES
Name Summary
717
Red Hat Virtualization 4.4 REST API Guide
Name Summary
718
CHAPTER 7. TYPES
Name Summary
gluster_volume Could not find information for rebalance on volume from CLI.
_rebalance_not
_found_from_cli
719
Red Hat Virtualization 4.4 REST API Guide
Name Summary
720
CHAPTER 7. TYPES
Name Summary
721
Red Hat Virtualization 4.4 REST API Guide
Name Summary
host_activate_ Host was activated, but the Hosted Engine HA service may still be in maintenance mode
manual_ha
722
CHAPTER 7. TYPES
Name Summary
host_set_nonop Host state was set to non-operational due to inaccessible Storage Domain
erational_domai
n
723
Red Hat Virtualization 4.4 REST API Guide
Name Summary
724
CHAPTER 7. TYPES
Name Summary
remove_gluster Could not find information for remove brick on volume from CLI.
_volume_bricks
_not_found_fro
m_cli
start_removing_ Detected start of brick removal for bricks on volume from CLI
gluster_volume
_bricks_detecte
d_from_cli
725
Red Hat Virtualization 4.4 REST API Guide
Name Summary
user_host_main Host was switched to Maintenance Mode, but Hosted Engine HA maintenance mode
tenance_manua could not be enabled
l_ha
726
CHAPTER 7. TYPES
Name Summary
7.190.1. gluster_volume_rebalance_not_found_from_cli
Could not find information for rebalance on volume from CLI. Marking it as unknown.
7.190.2. host_untrusted
Host state was set to non-operational. Host is untrusted by the attestation service
7.190.3. remove_gluster_volume_bricks_not_found_from_cli
Could not find information for remove brick on volume from CLI. Marking it as unknown.
727
Red Hat Virtualization 4.4 REST API Guide
Name Summary
7.191.1. smtp
Notification by e-mail.
Event-subscriptions with SMTP notification method will contain an email address in the address field.
7.191.2. snmp
Notification by SNMP.
Event-subscriptions with SNMP notification method will contain an SNMP address in the address field.
cpu Cpu
728
CHAPTER 7. TYPES
index Integer
node_distance String
host Host
statistics Statistic[] Each host NUMA node resource exposes a statistics sub-
collection for host NUMA node specific statistics.
7.192.1. statistics
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific
statistics.
<statistics>
<statistic href="/ovirt-engine/api/hosts/123/numanodes/456/statistics/789" id="789">
<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_numa_node href="/ovirt-engine/api/hosts/123/numanodes/456" id="456" />
</statistic>
...
</statistics>
NOTE
The following list shows the statistic types for a host NUMA node:
729
Red Hat Virtualization 4.4 REST API Guide
Name Description
index Integer The index of a physical NUMA node to which the virtual NUMA
node is pinned.
7.193.1. host_numa_node
Deprecated. Has no function.
7.193.2. pinned
Deprecated. Should always be true.
Name Summary
interleave
preferred
730
CHAPTER 7. TYPES
Name Summary
strict
openstack_ima OpenStackImageP
ge_provider rovider
password String Defines password for the user during the authentication process.
731
Red Hat Virtualization 4.4 REST API Guide
tenant_name String Defines the tenant name for OpenStack Identity API v2.
7.196.1. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
7.196.2. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
certificates Certificate[]
images OpenStackImage[]
732
CHAPTER 7. TYPES
openstack_net OpenStackNetwor
work_provider kProvider
password String Defines password for the user during the authentication process.
project_domain String Defines the project’s domain name for OpenStack Identity API
_name v3.
project_name String Defines the project name for OpenStack Identity API v3.
733
Red Hat Virtualization 4.4 REST API Guide
tenant_name String Defines the tenant name for OpenStack Identity API v2.
7.198.1. agent_configuration
Deprecated Agent configuration settings.
Ignored, because the deployment of OpenStack Neutron agent is dropped since Red Hat Virtualization
4.4.0.
7.198.2. auto_sync
Indicates if the networks of this provider are automatically synchronized.
If true, the networks of this provider are automatically and cyclically synchronized to Red Hat
Virtualization in the background. This means that all new networks of this provider are imported, and all
discarded networks are removed from all clusters that have this external provider as the default
provider. If the name of a network is changed on the provider, the change is synchronized to the network
entity in Red Hat Virtualization. Furthermore, if a new cluster that has the provider as the default
provider is added, already imported networks are attached to this new cluster during synchronization.
The networks of the external provider will be imported to every data center in the data centers
of the clusters that have that external provider as the default provider.
A vNIC profile will be created for each involved data center and network.
The networks will be assigned to each cluster that has that external provider as the default
provider.
7.198.3. external_plugin_type
734
CHAPTER 7. TYPES
This attribute allows you to choose the correct provider driver on the host when an external NIC is added
or modified. If automated installation of the driver is supported (only available for some predefined
implementations, for example ovirt-provider-ovn), this attribute will also allow the system to decide
which driver implementation to install on newly added hosts.
7.198.4. plugin_type
Network plug-in type.
Since version 4.2 of the Red Hat Virtualization Manager, this attribute has been deprecated in favour of
external_plugin_type. This attribute is only valid for providers of type open_vswitch, and will only be
returned when the value of the external_plugin_type attribute value is equal to open_vswitch.
If both plugin_type and external_plugin_type are specified during an update, the value of
plugin_type will be ignored.
For external providers this value will not be shown and will be ignored during update requests.
7.198.5. read_only
Indicates whether the provider is 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.
7.198.6. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
7.198.7. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
7.198.8. unmanaged
Indicates whether the provider is unmanaged by Red Hat Virtualization.
If true, authentication and subnet control are entirely left to the external provider and are unmanaged by
Red Hat Virtualization.
735
Red Hat Virtualization 4.4 REST API Guide
Name Summary
external Indicates that the provider is an external one, implementing the OpenStack Neutron
API.
7.199.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.
7.199.2. neutron
Indicates that the provider is OpenStack Neutron. The standard OpenStack Neutron agent is used as
the virtual interface driver.
736
CHAPTER 7. TYPES
password String Defines password for the user during the authentication process.
tenant_name String Defines the tenant name for OpenStack Identity API v2.
7.200.1. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
7.200.2. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
737
Red Hat Virtualization 4.4 REST API Guide
7.201.1. ip_version
Defines IP version.
password String Defines password for the user during the authentication process.
tenant_name String Defines the tenant name for OpenStack Identity API v2.
738
CHAPTER 7. TYPES
7.202.1. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
7.202.2. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
authentication_ OpenstackVolume
keys AuthenticationKey
[]
certificates Certificate[]
data_center DataCenter
volume_types OpenStackVolume
Type[]
properties Property[]
739
Red Hat Virtualization 4.4 REST API Guide
openstack_volu OpenStackVolume
me_provider Provider
creation_date Date
usage_type OpenstackVolume
AuthenticationKey
UsageType
uuid String
value String
openstack_volu OpenStackVolume
me_provider Provider
7.205. OPENSTACKVOLUMEAUTHENTICATIONKEYUSAGETYPE
ENUM
Openstack Volume (Cinder) integration has been replaced by Managed Block Storage.
740
CHAPTER 7. TYPES
Name Summary
ceph
cmdline String Custom kernel parameters for starting the virtual machine if
Linux operating system is used.
initrd String Path to custom initial ramdisk on ISO storage domain if Linux
operating system is used.
kernel String Path to custom kernel on ISO storage domain if Linux operating
system is used.
reported_kernel String The host kernel command line as reported by a running host.
_cmdline
version Version
7.206.1. boot
Configuration of the boot sequence.
NOTE
7.206.2. cmdline
Custom kernel parameters for starting the virtual machine if Linux operating system is used.
NOTE
741
Red Hat Virtualization 4.4 REST API Guide
7.206.3. custom_kernel_cmdline
A custom part of the host kernel command line. This will be merged with the existing kernel command
line.
You must reinstall and then reboot the host to apply the changes implemented by this attribute.
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 Manager internally keeps track of
the last-applied kernel parameters customization.
NOTE
7.206.4. initrd
Path to custom initial ramdisk on ISO storage domain if Linux operating system is used.
NOTE
7.206.5. kernel
Path to custom kernel on ISO storage domain if Linux operating system is used.
NOTE
7.206.6. reported_kernel_cmdline
The host kernel command line as reported by a running host.
This is a read-only attribute. Attempts to change this attribute are silently ignored.
NOTE
7.206.7. type
Operating system name in human readable form.
For example Fedora or RHEL. In general one of the names returned by the operating system service.
NOTE
742
CHAPTER 7. TYPES
NOTE
7.207.1. large_icon
Large icon of the guest operating system. Maximum dimensions: width 150px, height 120px.
7.207.2. small_icon
Small icon of the guest operating system. Maximum dimensions: width 43px, height 43px.
name String
type String
value String
743
Red Hat Virtualization 4.4 REST API Guide
WARNING
This type has been deprecated with the introduction of the OperatingSystemInfo
type. Operating systems are available as a top-level collection in the API:
operating_systems.
The end-user declares the type of the operating system installed in the virtual machine (guest operating
system) by selecting one of these values. This declaration enables the system to tune the virtual
machine configuration for better user experience. For example, the system chooses devices that are
most suitable for the operating system. Note that the system rely on user’s selection and does not verify
it by inspecting the actual guest operating system installed.
Name Summary
other Other type of operating system, not specified by the other values.
other_linux Distribution of Linux other than those specified by the other values.
744
CHAPTER 7. TYPES
Name Summary
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
745
Red Hat Virtualization 4.4 REST API Guide
Name Summary
7.211.1. auto
Choose automatically between parallel and non-parallel connections. If parallel connections are used,
select their number automatically.
7.211.2. custom
Use manually specified number of parallel connections. The number of parallel connections must be set
in MigrationOptions.customParallelMigrations.
files File[]
type VmDeviceType
volume_id String
Name Summary
base64
plaintext
746
CHAPTER 7. TYPES
747
Red Hat Virtualization 4.4 REST API Guide
type PmProxyType
Name Summary
cluster The fence proxy is selected from the same cluster as the fenced host.
dc The fence proxy is selected from the same data center as the fenced host.
other_dc The fence proxy is selected from a different data center than the fenced host.
Name Summary
filter
748
CHAPTER 7. TYPES
Name Summary
load_balancing
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.
options Option[] Fencing options for the selected type= specified with the option
name="" and value="" strings.
7.220.1. agents
Specifies fence agent options when multiple fences are used.
Use the order sub-element to prioritize the fence agents. Agents are run sequentially according to their
749
Red Hat Virtualization 4.4 REST API Guide
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.
7.220.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.
7.220.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.
7.220.4. type
Fencing device code.
A list of valid fencing device codes are available in the capabilities collection.
Name Summary
on Host is ON.
750
CHAPTER 7. TYPES
Product information.
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 .
7.223.1. vendor
The name of the vendor, for example ovirt.org.
block_statistics BlockStatistic[]
duration Integer
751
Red Hat Virtualization 4.4 REST API Guide
fop_statistics FopStatistic[]
profile_type String
statistics Statistic[]
name String
value String
value String
This field can be updated using the update API and will be reported only for QCOW volumes, it is
determined by the storage domain’s version which the disk is created on. Storage domains with version
lower than V4 support QCOW2 version 2 volumes, while V4 storage domains also support QCOW2
version 3. For more information about features of the different QCOW versions, see here.
Name Summary
qcow2_v2 The Copy On Write default compatibility version It means that every QEMU can use it.
qcow2_v3 The Copy On Write compatibility version which was introduced in QEMU 1.
7.227.1. qcow2_v3
The Copy On Write compatibility version which was introduced in QEMU 1.1 It means that the new format
is in use.
752
CHAPTER 7. TYPES
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_averag Integer The desired average inbound bit rate in Mbps (Megabits per
e sec).
inbound_burst Integer The amount of data that can be delivered in a single burst, in
MB.
inbound_peak Integer The maximum inbound rate in Mbps (Megabits per sec).
max_iops Integer Maximum permitted number of input and output operations per
second.
753
Red Hat Virtualization 4.4 REST API Guide
outbound_aver Integer The desired average outbound bit rate in Mbps (Megabits per
age sec).
outbound_burst Integer The amount of data that can be sent in a single burst, in MB.
outbound_peak Integer The maximum outbound rate in Mbps (Megabits per sec).
7.228.1. cpu_limit
The maximum processing capability in %.
7.228.2. inbound_average
The desired average inbound bit rate in Mbps (Megabits per sec).
Used to configure virtual machines networks. If defined, inbound_peak and inbound_burst also has to
be set.
7.228.3. inbound_burst
The amount of data that can be delivered in a single burst, in MB.
Used to configure virtual machine networks. If defined, inbound_average and inbound_peak must also
be set.
7.228.4. inbound_peak
The maximum inbound rate in Mbps (Megabits per sec).
Used to configure virtual machines networks. If defined, inbound_average and inbound_burst also has
754
CHAPTER 7. TYPES
Used to configure virtual machines networks. If defined, inbound_average and inbound_burst also has
to be set.
7.228.5. max_iops
Maximum permitted number of input and output operations per second.
7.228.6. max_read_iops
Maximum permitted number of input operations per second.
7.228.7. max_read_throughput
Maximum permitted throughput for read operations.
7.228.8. max_throughput
Maximum permitted total throughput.
7.228.9. max_write_iops
Maximum permitted number of output operations per second.
7.228.10. max_write_throughput
Maximum permitted throughput for write operations.
7.228.11. outbound_average
The desired average outbound bit rate in Mbps (Megabits per sec).
Used to configure virtual machines networks. If defined, outbound_peak and outbound_burst also has
to be set.
7.228.12. outbound_average_linkshare
Weighted share.
Used to configure host networks. Signifies how much of the logical link’s capacity a specific network
755
Red Hat Virtualization 4.4 REST API Guide
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.
7.228.13. outbound_average_realtime
The committed rate in Mbps (Megabits per sec).
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.
7.228.14. outbound_average_upperlimit
The maximum bandwidth to be used by a network in Mbps (Megabits per sec).
7.228.15. outbound_burst
The amount of data that can be sent in a single burst, in MB.
Used to configure virtual machine networks. If defined, outbound_average and outbound_peak must
also be set.
7.228.16. outbound_peak
The maximum outbound rate in Mbps (Megabits per sec).
Used to configure virtual machines networks. If defined, outbound_average and outbound_burst also
has to be set.
756
CHAPTER 7. TYPES
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.
cluster_hard_li Integer
mit_pct
cluster_soft_lim Integer
it_pct
data_center DataCenter
disks Disk[]
757
Red Hat Virtualization 4.4 REST API Guide
storage_hard_li Integer
mit_pct
storage_soft_li Integer
mit_pct
users User[]
vms Vm[]
permissions Permission[]
quota_cluster_li QuotaClusterLimit
mits []
quota_storage_l QuotaStorageLimi
imits t[]
memory_limit Decimal
memory_usage Decimal
vcpu_limit Integer
vcpu_usage Integer
758
CHAPTER 7. TYPES
cluster Cluster
quota Quota
Name Summary
audit
disabled
enabled
limit Integer
usage Decimal
quota Quota
storage_domain StorageDomain
759
Red Hat Virtualization 4.4 REST API Guide
from String
to String
<action>
<registration_configuration>
<affinity_group_mappings>
<registration_affinity_group_mapping>
<from>
<name>affinity</name>
</from>
<to>
<name>affinity2</name>
</to>
</registration_affinity_group_mapping>
</affinity_group_mappings>
</registration_configuration>
</action>
760
CHAPTER 7. TYPES
7.236.1. from
Reference to the original affinity group. It can be specified using name.
<action>
<registration_configuration>
<affinity_label_mappings>
<registration_affinity_label_mapping>
<from>
<name>affinity_label</name>
</from>
<to>
<name>affinity_label2</name>
</to>
</registration_affinity_label_mapping>
</affinity_label_mappings>
</registration_configuration>
</action>
7.237.1. from
Reference to the original affinity label. It can be specified using name.
761
Red Hat Virtualization 4.4 REST API Guide
<action>
<registration_configuration>
<cluster_mappings>
<registration_cluster_mapping>
<from>
<name>myoriginalcluster</name>
</from>
<to>
<name>mynewcluster</name>
</to>
</registration_cluster_mapping>
</cluster_mappings>
</registration_configuration>
</action>
7.238.1. from
Reference to the original cluster. It can be specified using the id or the name.
7.238.2. to
Reference to the destination cluster. It can be specified using the id or the name.
Each mapping contained in this type can be used to map objects in the original system to corresponding
objects in the system where the virtual machine or template is being registered. For example, there
could be a primary setup with a virtual machine configured on cluster A, and an active secondary setup
with cluster B. Cluster B is compatible with that virtual machine, and in case of a disaster recovery
scenario the storage domain can be imported to the secondary setup, and the user can register the
virtual machine to cluster B.
In that case, we can automate the recovery process by defining a cluster mapping. After the entity is
registered, its OVF will indicate it belongs to cluster A, but the mapping will indicate that cluster A will be
replaced with cluster B. Red Hat Virtualization Manager should do the switch and register the virtual
machine to cluster B in the secondary site.
Cluster mapping is just one example, there are different types of mappings:
Cluster mapping.
LUN mapping.
762
CHAPTER 7. TYPES
Role mapping.
Domain mapping.
Permissions mapping.
Each mapping will be used for its specific OVF’s data once the register operation takes place in the Red
Hat Virtualization Manager.
<action>
<registration_configuration>
<cluster_mappings>
<registration_cluster_mapping>
<from>
<name>myoriginalcluster</name>
</from>
<to>
<name>mynewcluster</name>
</to>
</registration_cluster_mapping>
</cluster_mappings>
<role_mappings>
<registration_role_mapping>
<from>
<name>SuperUser</name>
</from>
<to>
<name>UserVmRunTimeManager</name>
</to>
</registration_role_mapping>
</role_mappings>
<domain_mappings>
<registration_domain_mapping>
<from>
<name>redhat</name>
</from>
<to>
<name>internal</name>
</to>
</registration_domain_mapping>
</domain_mappings>
<lun_mappings>
<registration_lun_mapping>
<from id="111">
</from>
<to id="222">
<alias>weTestLun</alias>
<lun_storage>
763
Red Hat Virtualization 4.4 REST API Guide
<type>iscsi</type>
<logical_units>
<logical_unit id="36001405fb1ddb4b91e44078f1fffcfef">
<address>44.33.11.22</address>
<port>3260</port>
<portal>1</portal>
<target>iqn.2017-11.com.name.redhat:444</target>
</logical_unit>
</logical_units>
</lun_storage>
</to>
</registration_lun_mapping>
</lun_mappings>
<affinity_group_mappings>
<registration_affinity_group_mapping>
<from>
<name>affinity</name>
</from>
<to>
<name>affinity2</name>
</to>
</registration_affinity_group_mapping>
</affinity_group_mappings>
<affinity_label_mappings>
<registration_affinity_label_mapping>
<from>
<name>affinity_label</name>
</from>
<to>
<name>affinity_label2</name>
</to>
</registration_affinity_label_mapping>
</affinity_label_mappings>
<vnic_profile_mappings>
<registration_vnic_profile_mapping>
<from>
<name>gold</name>
<network>
<name>red</name>
</network>
</from>
<to id="738dd914-8ec8-4a8b-8628-34672a5d449b"/>
</registration_vnic_profile_mapping>
<registration_vnic_profile_mapping>
<from>
<name>silver</name>
<network>
<name>blue</name>
</network>
</from>
<to>
<name>copper</name>
<network>
<name>orange</name>
</network>
</to>
764
CHAPTER 7. TYPES
</registration_vnic_profile_mapping>
</vnic_profile_mappings>
</registration_configuration>
</action>
cluster_mappin RegistrationCluste Describes how the clusters that the object references are
gs rMapping[] mapped.
vnic_profile_ma RegistrationVnicPr Mapping rules for virtual NIC profiles that will be applied during
ppings ofileMapping[] the register process.
<action>
<registration_configuration>
<domain_mappings>
<registration_domain_mapping>
<from>
<name>redhat</name>
</from>
<to>
<name>internal</name>
</to>
</registration_domain_mapping>
</domain_mappings>
</registration_configuration>
</action>
765
Red Hat Virtualization 4.4 REST API Guide
7.240.1. from
Reference to the original domain. It can be specified using name.
An external LUN disk is an entity which does not reside on a storage domain. It must be specified
because it doesn’t need to exist in the environment where the object is registered. An example of an
XML representation using this mapping:
<action>
<registration_configuration>
<lun_mappings>
<registration_lun_mapping>
<lun_mappings>
<registration_lun_mapping>
<from id="111">
</from>
<to id="222">
<alias>weTestLun</alias>
<lun_storage>
<type>iscsi</type>
<logical_units>
<logical_unit id="36001405fb1ddb4b91e44078f1fffcfef">
<address>44.33.11.22</address>
<port>3260</port>
<portal>1</portal>
<target>iqn.2017-11.com.name.redhat:444</target>
</logical_unit>
</logical_units>
</lun_storage>
</to>
</registration_lun_mapping>
</lun_mappings>
</registration_configuration>
</action>
766
CHAPTER 7. TYPES
7.241.1. from
Reference to the original LUN. This must be specified using the id attribute.
A role mapping is intended to map correlating roles between the primary site and the secondary site. For
example, there may be permissions with role UserVmRunTimeManager for the virtual machine that is
being registered. Therefore we can send a mapping that will register the virtual machine in the secondary
setup using the SuperUser role instead of UserVmRunTimeManager An example of an XML
representation using this mapping:
<action>
<registration_configuration>
<role_mappings>
<registration_eole_mapping>
<from>
<name>SuperUser</name>
</from>
<to>
<name>UserVmRunTimeManager</name>
</to>
</registration_role_mapping>
</role_mappings>
</registration_configuration>
</action>
7.242.1. from
Reference to the original role. It can be specified using name.
767
Red Hat Virtualization 4.4 REST API Guide
If, for example, the desired virtual NIC profile mapping includes the following lines:
Source network name Source network profile name Target virtual NIC profile ID\names
green bronze
<vnic_profile_mappings>
<registration_vnic_profile_mapping>
<from>
<name>gold</name>
<network>
<name>red</name>
</network>
</from>
<to id="738dd914-8ec8-4a8b-8628-34672a5d449b"/>
</registration_vnic_profile_mapping>
<registration_vnic_profile_mapping>
<from>
<name></name>
<network>
<name></name>
</network>
</from>
<to id="892a12ec-2028-4451-80aa-ff3bf55d6bac"/>
</registration_vnic_profile_mapping>
<registration_vnic_profile_mapping>
<from>
<name>silver</name>
<network>
<name>blue</name>
</network>
</from>
<to>
<name>copper</name>
<network>
768
CHAPTER 7. TYPES
<name>orange</name>
</network>
</to>
</registration_vnic_profile_mapping>
<registration_vnic_profile_mapping>
<from>
<name>platinum</name>
<network>
<name>yellow</name>
</network>
</from>
<to>
<name></name>
<network>
<name></name>
</network>
</to>
</registration_vnic_profile_mapping>
<registration_vnic_profile_mapping>
<from>
<name>bronze</name>
<network>
<name>green</name>
</network>
</from>
</registration_vnic_profile_mapping>
</vnic_profile_mappings>
from VnicProfile References to the external network and the external network
profile.
7.243.1. from
References to the external network and the external network profile. Both should be specified using
their name.
7.243.2. to
Reference to to an existing virtual NIC profile. It should be specified using its name or id. Either name or
id should be specified but not both.
769
Red Hat Virtualization 4.4 REST API Guide
actual_value String
expected_value String
name String
ips Ip[]
mac Mac
type ReportedDeviceTy
pe
vm Vm
Name Summary
network
770
CHAPTER 7. TYPES
Name Summary
add
copy
Name Summary
hwrng Obtains random data from the /dev/hwrng (usually specialized HW generator) device.
7.249.1. urandom
Obtains random data from the /dev/urandom device.
This RNG source is meant to replace random RNG source for non-cluster-aware entities (i.e. Blank
template and instance types) and entities associated with clusters with compatibility version 4.1 or
higher.
771
Red Hat Virtualization 4.4 REST API Guide
7.250.1. mutable
Defines the ability to update or delete the role.
user User
Name Summary
772
CHAPTER 7. TYPES
default_policy Boolean
locked Boolean
properties Property[]
balances Balance[]
filters Filter[]
weight Weight[]
enabled Boolean
internal Boolean
properties Property[]
773
Red Hat Virtualization 4.4 REST API Guide
type PolicyUnitType
Name Summary
Name Summary
774
CHAPTER 7. TYPES
policy SerialNumberPolic
y
value String
Name Summary
custom This policy allows the user to provide an arbitrary string as the Serial Number.
none This policy is used to remove the Serial Number Policy, moving it to default: null.
vm This policy will use the Virtual Machine ID as the Serial Number.
7.258.1. host
This policy is the legacy policy. It will use the Host ID as the Serial Number.
775
Red Hat Virtualization 4.4 REST API Guide
7.259.1. console_user
Indicates if this is a console session.
The value will be true for console users (SPICE or VNC), and false for others (such as RDP or SSH).
7.259.2. ip
The IP address the user is connected from.
7.259.3. protocol
The protocol used by the session.
Currently not used. Intended for info about how the user is connected: through SPICE, VNC, SSH, or
RDP.
7.259.4. user
The user related to this session.
If the user is a console user, this is a link to the real Red Hat Virtualization user. Otherwise, only the user
name 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.
776
CHAPTER 7. TYPES
7.260.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.
7.260.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.
enabled Boolean If enabled, we will skip fencing in case the host maintains its
lease in the storage.
7.261.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.
auto_pinning_p AutoPinningPolicy Specifies if and how the auto CPU and NUMA configuration is
olicy applied.
777
Red Hat Virtualization 4.4 REST API Guide
cpu_pinning_po CpuPinningPolicy Specifies if and how the CPU and NUMA configuration is
licy applied.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
date Date The date when this snapshot has been created.
guest_time_zon TimeZone What time zone is used by the virtual machine (as returned by
e guest agent).
778
CHAPTER 7. TYPES
has_illegal_ima Boolean Indicates whether the virtual machine has snapshots with disks in
ges ILLEGAL state.
migration_down Integer Maximum time the virtual machine can be non responsive during
time its live migration to another host in ms.
multi_queues_e Boolean If true, each virtual interface will get the optimal number of
nabled queues, depending on the available virtual Cpus.
next_run_config Boolean Virtual machine configuration has been changed and requires
uration_exists restart of the virtual machine.
payloads Payload[] Optional payloads of the virtual machine, used for ISOs to
configure it.
779
Red Hat Virtualization 4.4 REST API Guide
persist_memory Boolean Indicates if the content of the memory of the virtual machine is
state included in the snapshot.
rng_device RngDevice Random Number Generator device configuration for this virtual
machine.
run_once Boolean If true, the virtual machine has been started using therun once
command, meaning it’s configuration might differ from the
stored one for the purpose of this single run.
soundcard_ena Boolean If true, the sound card is added to the virtual machine.
bled
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.
780
CHAPTER 7. TYPES
storage_error_r VmStorageErrorR Determines how the virtual machine will be resumed after
esume_behavio esumeBehaviour storage error.
ur
tunnel_migratio Boolean If true, the network data transfer will be encrypted during virtual
n machine live migration.
type VmType Determines whether the virtual machine is optimized for desktop
or server.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
use_latest_tem Boolean If true, the virtual machine is reconfigured to the latest version
plate_version of it’s template when it is started.
virtio_scsi_mult Integer Number of queues for a Virtio-SCSI contoller this field requires
i_queues virtioScsiMultiQueuesEnabled to be true see
virtioScsiMultiQueuesEnabled for more info
virtio_scsi_mult Boolean If true, the Virtio-SCSI devices will obtain a number of multiple
i_queues_enabl queues depending on the available virtual Cpus and disks, or
ed according to the specified virtioScsiMultiQueues.
7.262.1. auto_pinning_policy
Specifies if and how the auto CPU and NUMA configuration is applied.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It might be removed in the future. Please use CpuPinningPolicy
instead.
7.262.2. cpu
The configuration of the virtual machine CPU.
The socket configuration can be updated without rebooting the virtual machine. The cores and the
threads require a reboot.
781
Red Hat Virtualization 4.4 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>
7.262.3. cpu_pinning_policy
Specifies if and how the CPU and NUMA configuration is applied. When not specified the previous
behavior of CPU pinning string will determine CpuPinningPolicy to None or Manual.
7.262.4. custom_compatibility_version
Virtual machine 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.
7.262.5. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.262.6. initialization
Reference to the virtual machine’s initialization configuration.
NOTE
Since Red Hat Virtualization 4.1.8 this property can be cleared by sending an empty tag.
For example, to clear the initialization attribute send a request like this:
PUT /ovirt-engine/api/vms/123
782
CHAPTER 7. TYPES
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.262.7. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.262.8. lease
Reference to the storage domain this virtual machine/template lease reside on.
A virtual machine running with a lease requires checking while running that the lease is not taken by
another host, preventing another instance of this virtual machine from running on another host. This
provides protection against split-brain in highly available virtual machines. A template can also have a
storage domain defined for a lease in order to have the virtual machines created from this template to
be preconfigured with this storage domain as the location of the leases.
7.262.9. memory
The virtual machine’s memory, in bytes.
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>
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 in state up. The size increment must be dividable by the
value of the HotPlugMemoryBlockSizeMb configuration value (256 MiB by default). If the memory size
increment is not dividable by this value, the memory size change is only stored to next run configuration.
Each successful memory hot plug operation creates one or two new memory devices.
Memory hot unplug is supported since Red Hat Virtualization 4.2 onwards. Memory hot unplug can only
be performed when the virtual machine is in state up. Only previously hot plugged memory devices can
be removed by the hot unplug operation. The requested memory decrement is rounded down to match
sizes of a combination of previously hot plugged memory devices. The requested memory value is
stored to next run configuration without rounding.
NOTE
NOTE
783
Red Hat Virtualization 4.4 REST API Guide
NOTE
Red Hat Virtualization Manager internally rounds values down to whole MiBs (1MiB = 220
bytes)
7.262.10. migration
Reference to configuration of migration of a running virtual machine to another host.
NOTE
API for querying migration policy by ID returned by this method is not implemented yet.
Use /ovirt-engine/api/options/MigrationPolicies to get a list of all migration policies
with their IDs.
7.262.11. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.262.12. 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.
7.262.13. numa_tune_mode
How the NUMA topology is applied. Deprecated in favor of NUMA tune per vNUMA node.
7.262.14. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
784
CHAPTER 7. TYPES
hyperv
7.262.15. persist_memorystate
Indicates if the content of the memory of the virtual machine is included in the snapshot.
7.262.16. placement_policy
The configuration of the virtual machine’s 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>
7.262.17. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.262.18. 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.
785
Red Hat Virtualization 4.4 REST API Guide
7.262.19. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
7.262.20. tpm_enabled
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
visible when fetching if "All-Content=true" header is set.
external_host_p ExternalHostProvi
rovider der
graphics_conso GraphicsConsole[] List of graphics consoles configured for this virtual machine.
les
host Host Reference to the host the virtual machine is running on.
katello_errata KatelloErratum[] Lists all the Katello errata assigned to the virtual machine.
786
CHAPTER 7. 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.
original_templat Template References the original template used to create the virtual
e machine.
quota Quota Reference to quota configuration set for this virtual machine.
reported_device ReportedDevice[]
s
sessions Session[] List of user sessions opened for this virtual machine.
snapshots Snapshot[] Refers to all snapshots taken from the virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
tags Tag[]
template Template Reference to the template the virtual machine is based on.
vm_pool VmPool Reference to the pool the virtual machine is optionally member
of.
7.262.21. affinity_labels
Optional. Used for labeling of sub-clusters.
7.262.22. katello_errata
Lists all the Katello errata assigned to the virtual machine.
787
Red Hat Virtualization 4.4 REST API Guide
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>
7.262.23. original_template
References the original template used to create the virtual machine.
If the virtual machine is cloned from a template or another virtual machine, the template links to the
Blank template, and the original_template is used to track history.
7.262.24. statistics
Statistics data collected from this virtual machine.
Note that some statistics, notably memory.buffered and memory.cached are available only when Red
Hat Virtualization guest agent is installed in the virtual machine.
Name Summary
788
CHAPTER 7. TYPES
7.263.1. locked
The snapshot is locked.
The snapshot is locked when it is in process of being created, deleted, restored or previewed.
Name Summary
preview The active snapshot will become preview if some snapshot is being previewed.
7.264.1. preview
The active snapshot will become preview if some snapshot is being previewed.
7.264.2. stateless
Snapshot created internally for stateless virtual machines.
This snapshot is created when the virtual machine is started and it is restored when the virtual machine is
shut down.
789
Red Hat Virtualization 4.4 REST API Guide
priority Integer
status SpmStatus
Name Summary
contending
none
spm
authentication_ SshAuthentication
method Method
port Integer
public_key String SSH public key of the host using SSH public key format as
defined in link:https://tools.
user User
790
CHAPTER 7. TYPES
7.268.1. fingerprint
Fingerprint of SSH public key for a host. This field is deprecated since 4.4.5 and will be removed in the
future.
7.268.2. public_key
SSH public key of the host using SSH public key format as defined in RFC4253.
Name Summary
password
publickey
user User
791
Red Hat Virtualization 4.4 REST API Guide
methods Method[]
Name Summary
guest_agent
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"/>
792
CHAPTER 7. TYPES
</statistic>
...
</statistics>
NOTE
type ValueType The data type for the statistical values that follow.
brick GlusterBrick
gluster_volume GlusterVolume
host Host
host_numa_nod NumaNode
e
nic Nic
793
Red Hat Virtualization 4.4 REST API Guide
step Step
vm Vm
Name Summary
counter
gauge
Name Summary
bits_per_secon
d
bytes
bytes_per_seco
nd
count_per_seco
nd
none
percent
seconds
794
CHAPTER 7. TYPES
7.276.1. external
Indicates if the step is originated by an external system. External steps are managed externally, by the
creator of the step.
execution_host Host The host used for the step execution (optional).
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[]
795
Red Hat Virtualization 4.4 REST API Guide
Name Summary
7.277.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.
7.277.2. finalizing
The finalizing step type. Describes the post-execution steps requires to complete the job.
7.277.3. rebalancing_volume
The rebalancing volume step type. Describes a step type which is part of Gluster flow.
7.277.4. removing_bricks
The removing bricks step type. Describes a step type which is part of Gluster flow.
7.277.5. unknown
The unknown step type. Describes a step type which its origin is unknown.
7.277.6. validating
The validation step type. Used to verify the correctness of parameters and the validity of the
parameters prior to the execution.
796
CHAPTER 7. TYPES
Name Summary
7.278.1. aborted
The aborted step status. This status is applicable for an external step that was forcibly aborted.
7.278.2. finished
The finished step status. This status describes a completed step execution.
7.278.3. started
The started step status. This status represents a step which is currently being executed.
7.278.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.
<storage_connection id="123">
<address>mynfs.example.com</address>
<type>nfs</type>
<path>/exports/mydata</path>
</storage_connection>
797
Red Hat Virtualization 4.4 REST API Guide
nfs_retrans Integer The NFS retrans value of an NFS storage server connection.
nfs_timeo Integer The NFS timeo value of an NFS storage server connection.
gluster_volume GlusterVolume Link to the gluster volume, used by that storage domain.
host Host
798
CHAPTER 7. TYPES
password String
target String
username String
host Host
799
Red Hat Virtualization 4.4 REST API Guide
available Integer
backup Boolean This attribute indicates whether a data storage domain is used
as backup domain or not.
committed Integer
critical_space_a Integer
ction_blocker
discard_after_d Boolean Indicates whether disks' blocks on block storage domains will be
elete discarded right before they are deleted.
external_status ExternalStatus
import Boolean
master Boolean
status StorageDomainSt
atus
storage HostStorage
storage_format StorageFormat
supports_discar Boolean Indicates whether a block storage domain supports the property
d_zeroes_data that discard zeroes the data.
800
CHAPTER 7. TYPES
type StorageDomainTy
pe
used Integer
warning_low_sp Integer
ace_indicator
7.281.1. backup
This attribute indicates whether a data storage domain is used as backup domain or not. If the domain is
set to backup then it will be used to store virtual machines and templates for disaster recovery purposes
in the same way we use export storage domain. This attribute is only available with data storage domain
and not with ISO domain or export storage domain. User can use this functionality while creating a data
storage domain or importing a data storage domain.
7.281.2. block_size
Specifies block size in bytes for a storage domain. Can be omitted and in that case will be defaulted to
512 bytes. Not all storage domains support all possible sizes.
7.281.3. discard_after_delete
Indicates whether disks' blocks on block storage domains will be discarded right before they are deleted.
If true, and a disk on this storage domain has its wipe_after_delete value enabled, then when the disk is
deleted:
1. It is first wiped.
3. Finally it is deleted.
Note that:
Discard after delete will always be false for non block storage types.
Discard after delete can be set to true only if the storage domain supports discard.
7.281.4. supports_discard
Indicates whether a block storage domain supports discard operations. A storage domain only supports
discard if all of the logical units that it is built from support discard; that is, if each logical unit’s
discard_max_size value is greater than 0. This is one of the conditions necessary for a virtual disk in
this storage domain to have its pass_discard attribute enabled.
801
Red Hat Virtualization 4.4 REST API Guide
7.281.5. supports_discard_zeroes_data
Indicates whether a block storage domain supports the property that discard zeroes the data. A storage
domain only supports the property that discard zeroes the data if all of the logical units that it is built
from support it; that is, if each logical unit’s discard_zeroes_data value is true.
IMPORTANT
Since version 4.2.1 of the system, the support for this attribute has been removed as the
sysfs file, discard_zeroes_data, was deprecated in the kernel. It is preserved for
backwards compatibility, but the value will always be false.
7.281.6. 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 A link to the data center that the storage domain is attached to.
data_centers DataCenter[] A set of links to the data centers that the storage domain is
attached to.
disk_profiles DiskProfile[]
disk_snapshots DiskSnapshot[]
disks Disk[]
files File[]
images Image[]
permissions Permission[]
storage_connec StorageConnectio
tions n[]
templates Template[]
vms Vm[]
802
CHAPTER 7. TYPES
7.281.7. data_center
A link to the data center that the storage domain is attached to. This is preserved for backwards
compatibility only, as the storage domain may be attached to multiple data centers (if it is an ISO
domain). Use the dataCenters element instead.
A lease is a Sanlock resource residing on a special volume on the storage domain, this Sanlock resource
is used to provide storage base locking.
storage_domain StorageDomain Reference to the storage domain on which the lock resides on.
Name Summary
activating
active
detaching
inactive
locked
maintenance
mixed
preparing_for_
maintenance
unattached
unknown
803
Red Hat Virtualization 4.4 REST API Guide
Name Summary
data Data domains are used to store the disks and snapshots of the virtual machines and
templates in the system.
export Export domains are temporary storage repositories used to copy and move virtual
machines and templates between data centers and Red Hat Virtualization
environments.
image Image domain store images that can be imported into from an external system.
iso ISO domains store ISO files (or logical CDs) used to install and boot operating systems
and applications for the virtual machines.
managed_block Managed block storage domains are created on block storage devices.
_storage
volume Volume domains store logical volumes that can be used as disks for virtual machines.
7.284.1. data
Data domains are used to store the disks and snapshots of the virtual machines and templates in the
system. In addition, snapshots of the disks are also stored in data domains. Data domains cannot be
shared across data centers.
7.284.2. export
Export domains are temporary storage repositories used to copy and move virtual machines and
templates between data centers and Red Hat Virtualization environments. Export domains can also be
used to backup virtual machines. An export domain can be moved between data centers but it can only
be active in one data center at a time.
7.284.3. image
Image domain store images that can be imported into from an external system. For example, images
from an OpenStack Glance image repository.
7.284.4. iso
ISO domains store ISO files (or logical CDs) used to install and boot operating systems and applications
for the virtual machines. ISO domains remove the data center’s need for physical media. An ISO domain
can be shared across different data centers.
7.284.5. managed_block_storage
Managed block storage domains are created on block storage devices. These domains are accessed and
managed by cinder.
7.284.6. volume
804
CHAPTER 7. TYPES
Volume domains store logical volumes that can be used as disks for virtual machines. For example,
volumes from an OpenStack Cincer block storage service.
Name Summary
v1 Version 1 of the storage domain format is applicable to NFS, iSCSI and FC storage
domains.
v2 Version 2 of the storage domain format is applicable to iSCSI and FC storage domains.
v3 Version 3 of the storage domain format is applicable to NFS, POSIX, iSCSI and FC
storage domains.
v5 Version 5 of the storage domain format is applicable to NFS, POSIX, and Gluster
storage domains.
7.285.1. v1
Version 1 of the storage domain format is applicable to NFS, iSCSI and FC storage domains.
Each storage domain contains metadata describing its own structure, and all of the names of physical
volumes that are used to back virtual machine disk images. Master domains additionally contain
metadata for all the domains and physical volume names in the storage pool. The total size of this
metadata is limited to 2 KiB, limiting the number of storage domains that can be in a pool. Template and
virtual machine base images are read only.
7.285.2. v2
Version 2 of the storage domain format is applicable to iSCSI and FC storage domains.
All storage domain and pool metadata is stored as logical volume tags rather than written to a logical
volume. Metadata about virtual machine disk volumes is still stored in a logical volume on the domains.
Physical volume names are no longer included in the metadata. Template and virtual machine base
images are read only.
7.285.3. v3
Version 3 of the storage domain format is applicable to NFS, POSIX, iSCSI and FC storage domains.
All storage domain and pool metadata is stored as logical volume tags rather than written to a logical
volume. Metadata about virtual machine disk volumes is still stored in a logical volume on the domains.
Virtual machine and template base images are no longer read only. This change enables live snapshots,
live storage migration, and clone from snapshot. Support for Unicode metadata is added, for non-
English volume names.
805
Red Hat Virtualization 4.4 REST API Guide
7.285.4. v5
Version 5 of the storage domain format is applicable to NFS, POSIX, and Gluster storage domains.
Added support for 4096 bytes block sizes and variable sanlock alignments.
Name Summary
7.286.1. cinder
Cinder storage domain. For more details on Cinder please go to Cinder.
7.286.2. glance
Glance storage domain. For more details on Glance please go to Glance.
7.286.3. glusterfs
Gluster-FS storage domain. For more details on Gluster please go to Gluster.
7.286.4. managed_block_storage
Managed block storage domain. A storage domain managed using cinderlib. For supported storage
drivers, see Available Drivers.
806
CHAPTER 7. TYPES
Name Summary
807
Red Hat Virtualization 4.4 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.
auto_pinning_p AutoPinningPolicy Specifies if and how the auto CPU and NUMA configuration is
olicy applied.
808
CHAPTER 7. TYPES
cpu_pinning_po CpuPinningPolicy Specifies if and how the CPU and NUMA configuration is
licy applied.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
809
Red Hat Virtualization 4.4 REST API Guide
migration_down Integer Maximum time the virtual machine can be non responsive during
time its live migration to another host in ms.
multi_queues_e Boolean If true, each virtual interface will get the optimal number of
nabled queues, depending on the available virtual Cpus.
rng_device RngDevice Random Number Generator device configuration for this virtual
machine.
soundcard_ena Boolean If true, the sound card is added to the virtual machine.
bled
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.
storage_error_r VmStorageErrorR Determines how the virtual machine will be resumed after
esume_behavio esumeBehaviour storage error.
ur
810
CHAPTER 7. TYPES
tunnel_migratio Boolean If true, the network data transfer will be encrypted during virtual
n machine live migration.
type VmType Determines whether the virtual machine is optimized for desktop
or server.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
virtio_scsi_mult Integer Number of queues for a Virtio-SCSI contoller this field requires
i_queues virtioScsiMultiQueuesEnabled to be true see
virtioScsiMultiQueuesEnabled for more info
virtio_scsi_mult Boolean If true, the Virtio-SCSI devices will obtain a number of multiple
i_queues_enabl queues depending on the available virtual Cpus and disks, or
ed according to the specified virtioScsiMultiQueues.
7.291.1. auto_pinning_policy
Specifies if and how the auto CPU and NUMA configuration is applied.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It might be removed in the future. Please use CpuPinningPolicy
instead.
7.291.2. cpu
The configuration of the virtual machine 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:
811
Red Hat Virtualization 4.4 REST API Guide
PUT /ovirt-engine/api/vms/123
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.291.3. cpu_pinning_policy
Specifies if and how the CPU and NUMA configuration is applied. When not specified the previous
behavior of CPU pinning string will determine CpuPinningPolicy to None or Manual.
7.291.4. custom_compatibility_version
Virtual machine 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.
7.291.5. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.291.6. initialization
Reference to the virtual machine’s initialization configuration.
NOTE
Since Red Hat Virtualization 4.1.8 this property can be cleared by sending an empty tag.
For example, to clear the initialization attribute send a request like this:
PUT /ovirt-engine/api/vms/123
<vm>
<initialization/>
</vm>
812
CHAPTER 7. TYPES
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.291.7. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.291.8. lease
Reference to the storage domain this virtual machine/template lease reside on.
A virtual machine running with a lease requires checking while running that the lease is not taken by
another host, preventing another instance of this virtual machine from running on another host. This
provides protection against split-brain in highly available virtual machines. A template can also have a
storage domain defined for a lease in order to have the virtual machines created from this template to
be preconfigured with this storage domain as the location of the leases.
7.291.9. memory
The virtual machine’s memory, in bytes.
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>
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 in state up. The size increment must be dividable by the
value of the HotPlugMemoryBlockSizeMb configuration value (256 MiB by default). If the memory size
increment is not dividable by this value, the memory size change is only stored to next run configuration.
Each successful memory hot plug operation creates one or two new memory devices.
Memory hot unplug is supported since Red Hat Virtualization 4.2 onwards. Memory hot unplug can only
be performed when the virtual machine is in state up. Only previously hot plugged memory devices can
be removed by the hot unplug operation. The requested memory decrement is rounded down to match
sizes of a combination of previously hot plugged memory devices. The requested memory value is
stored to next run configuration without rounding.
NOTE
NOTE
Red Hat Virtualization Manager internally rounds values down to whole MiBs (1MiB = 220
bytes)
813
Red Hat Virtualization 4.4 REST API Guide
7.291.10. migration
Reference to configuration of migration of a running virtual machine to another host.
NOTE
API for querying migration policy by ID returned by this method is not implemented yet.
Use /ovirt-engine/api/options/MigrationPolicies to get a list of all migration policies
with their IDs.
7.291.11. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.291.12. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.291.13. placement_policy
The configuration of the virtual machine’s 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.
814
CHAPTER 7. TYPES
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>
7.291.14. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.291.15. 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.
7.291.16. tpm_enabled
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
visible when fetching if "All-Content=true" header is set.
815
Red Hat Virtualization 4.4 REST API Guide
quota Quota Reference to quota configuration set for this virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
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_number Integer The index of this version in the versions hierarchy of the
template.
816
CHAPTER 7. TYPES
7.293.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_template Template References the template that this version is associated with.
7.295.1. utc_offset
UTC offset.
Name Summary
817
Red Hat Virtualization 4.4 REST API Guide
Name Summary
unsupported
Name Summary
tcp TCP.
818
CHAPTER 7. TYPES
host Host
host_nic HostNic
enabled Boolean Determines whether the USB device should be included or not.
Name Summary
7.301.1. legacy
Legacy USB redirection.
This USB type has been deprecated since version 3.6 of the engine, and has been completely removed
in version 4.1. It is preserved only to avoid syntax errors in existing scripts. If it is used it will be
automatically replaced by native.
7.301.2. native
Native USB redirection.
Native USB redirection allows KVM/SPICE USB redirection for Linux and Windows virtual machines.
Virtual (guest) machines require no guest-installed agents or drivers for native USB. On Linux clients, all
packages required for USB redirection are provided by the virt-viewer package. On Windows clients,
you must also install the usbdk package.
819
Red Hat Virtualization 4.4 REST API Guide
department String
domain_entry_i String
d
email String
last_name String
logged_in Boolean
password String
user_options Property[] User options allow you to save key/value properties which are
used to customize the settings per individual user.
7.302.1. namespace
Namespace where the user resides. When using the authorization provider that stores users in the LDAP
server, this attribute equals the naming context of the LDAP server. See oVirt Engine Extension AAA
LDAP for more information. When using the built-in authorization provider that stores users in the
database this attribute is ignored. See oVirt Engine extension - AAA - JDBC for more information.
7.302.2. principal
Similar to user_name. The format depends on the LDAP provider. With most LDAP providers it is the
value of the uid LDAP attribute. In the case of Active Directory it is the User Principal Name (UPN).
7.302.3. user_name
820
CHAPTER 7. TYPES
The user’s username. The format depends on authorization provider type. In most LDAP providers it is
the value of the uid LDAP attribute. In Active Directory it is the User Principal Name (UPN). UPN or uid
must be followed by the authorization provider name. For example, in the case of LDAP’s uid attribute it
is: myuser@myextension-authz. In the case of Active Directory using UPN it is:
[email protected]@myextension-authz. This attribute is a required parameter
when adding a new user.
7.302.4. user_options
User options allow you to save key/value properties which are used to customize the settings per
individual user. Note that since version 4.4.5 this property is deprecated and preserved only for
backwards compatibility. It will be removed in the future. Please use the options endpoint instead.
domain Domain
groups Group[]
options UserOption[]
permissions Permission[]
ssh_public_key SshPublicKey[]
s
821
Red Hat Virtualization 4.4 REST API Guide
7.303.1. content
JSON content encoded as string. Any valid JSON is supported.
user User
datum Decimal
detail String
Name Summary
decimal
integer
string
cpu_set String
vcpu Integer
822
CHAPTER 7. TYPES
build Integer
full_version String
major Integer
minor Integer
revision Integer
It can either put vGPUs on the first available physical cards, or spread them over multiple physical cards.
823
Red Hat Virtualization 4.4 REST API Guide
Name Summary
7.309.1. consolidated
Use consolidated placement. Each vGPU is placed on the first physical card with available space.
This is the default placement, utilizing all available space on the physical cards.
7.309.2. separated
Use separated placement. Each vGPU is placed on a separate physical card, if possible.
824
CHAPTER 7. TYPES
</numa_node_pins>
<vm href="/ovirt-engine/api/vms/123" id="123" />
</vm_numa_node>
cpu Cpu
index Integer
node_distance String
numa_node_pin NumaNodePin[]
s
host Host
statistics Statistic[] Each host NUMA node resource exposes a statistics sub-
collection for host NUMA node specific statistics.
vm Vm
7.311.1. statistics
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific
statistics.
<statistics>
825
Red Hat Virtualization 4.4 REST API Guide
NOTE
The following list shows the statistic types for a host NUMA node:
Name Description
7.313. VM STRUCT
Represents a virtual machine.
826
CHAPTER 7. TYPES
auto_pinning_p AutoPinningPolicy Specifies if and how the auto CPU and NUMA configuration is
olicy applied.
cpu_pinning_po CpuPinningPolicy Specifies if and how the CPU and NUMA configuration is
licy applied.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
827
Red Hat Virtualization 4.4 REST API Guide
guest_time_zon TimeZone What time zone is used by the virtual machine (as returned by
e guest agent).
has_illegal_ima Boolean Indicates whether the virtual machine has snapshots with disks in
ges ILLEGAL state.
migration_down Integer Maximum time the virtual machine can be non responsive during
time its live migration to another host in ms.
multi_queues_e Boolean If true, each virtual interface will get the optimal number of
nabled queues, depending on the available virtual Cpus.
next_run_config Boolean Virtual machine configuration has been changed and requires
uration_exists restart of the virtual machine.
828
CHAPTER 7. TYPES
payloads Payload[] Optional payloads of the virtual machine, used for ISOs to
configure it.
rng_device RngDevice Random Number Generator device configuration for this virtual
machine.
run_once Boolean If true, the virtual machine has been started using therun once
command, meaning it’s configuration might differ from the
stored one for the purpose of this single run.
soundcard_ena Boolean If true, the sound card is added to the virtual machine.
bled
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.
storage_error_r VmStorageErrorR Determines how the virtual machine will be resumed after
esume_behavio esumeBehaviour storage error.
ur
829
Red Hat Virtualization 4.4 REST API Guide
tunnel_migratio Boolean If true, the network data transfer will be encrypted during virtual
n machine live migration.
type VmType Determines whether the virtual machine is optimized for desktop
or server.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
use_latest_tem Boolean If true, the virtual machine is reconfigured to the latest version
plate_version of it’s template when it is started.
virtio_scsi_mult Integer Number of queues for a Virtio-SCSI contoller this field requires
i_queues virtioScsiMultiQueuesEnabled to be true see
virtioScsiMultiQueuesEnabled for more info
virtio_scsi_mult Boolean If true, the Virtio-SCSI devices will obtain a number of multiple
i_queues_enabl queues depending on the available virtual Cpus and disks, or
ed according to the specified virtioScsiMultiQueues.
7.313.1. auto_pinning_policy
Specifies if and how the auto CPU and NUMA configuration is applied.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It might be removed in the future. Please use CpuPinningPolicy
instead.
7.313.2. cpu
The configuration of the virtual machine 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>
830
CHAPTER 7. TYPES
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.313.3. cpu_pinning_policy
Specifies if and how the CPU and NUMA configuration is applied. When not specified the previous
behavior of CPU pinning string will determine CpuPinningPolicy to None or Manual.
7.313.4. custom_compatibility_version
Virtual machine 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.
7.313.5. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.313.6. initialization
Reference to the virtual machine’s initialization configuration.
NOTE
Since Red Hat Virtualization 4.1.8 this property can be cleared by sending an empty tag.
For example, to clear the initialization attribute send a request like this:
PUT /ovirt-engine/api/vms/123
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.313.7. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
831
Red Hat Virtualization 4.4 REST API Guide
7.313.8. lease
Reference to the storage domain this virtual machine/template lease reside on.
A virtual machine running with a lease requires checking while running that the lease is not taken by
another host, preventing another instance of this virtual machine from running on another host. This
provides protection against split-brain in highly available virtual machines. A template can also have a
storage domain defined for a lease in order to have the virtual machines created from this template to
be preconfigured with this storage domain as the location of the leases.
7.313.9. memory
The virtual machine’s memory, in bytes.
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>
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 in state up. The size increment must be dividable by the
value of the HotPlugMemoryBlockSizeMb configuration value (256 MiB by default). If the memory size
increment is not dividable by this value, the memory size change is only stored to next run configuration.
Each successful memory hot plug operation creates one or two new memory devices.
Memory hot unplug is supported since Red Hat Virtualization 4.2 onwards. Memory hot unplug can only
be performed when the virtual machine is in state up. Only previously hot plugged memory devices can
be removed by the hot unplug operation. The requested memory decrement is rounded down to match
sizes of a combination of previously hot plugged memory devices. The requested memory value is
stored to next run configuration without rounding.
NOTE
NOTE
Red Hat Virtualization Manager internally rounds values down to whole MiBs (1MiB = 220
bytes)
7.313.10. migration
Reference to configuration of migration of a running virtual machine to another host.
NOTE
832
CHAPTER 7. TYPES
NOTE
API for querying migration policy by ID returned by this method is not implemented yet.
Use /ovirt-engine/api/options/MigrationPolicies to get a list of all migration policies
with their IDs.
7.313.11. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.313.12. 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.
7.313.13. numa_tune_mode
How the NUMA topology is applied. Deprecated in favor of NUMA tune per vNUMA node.
7.313.14. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.313.15. placement_policy
The configuration of the virtual machine’s placement policy.
This configuration can be updated to pin a virtual machine to one or more hosts.
NOTE
833
Red Hat Virtualization 4.4 REST API Guide
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>
7.313.16. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.313.17. 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.
7.313.18. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
7.313.19. tpm_enabled
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
visible when fetching if "All-Content=true" header is set.
834
CHAPTER 7. TYPES
external_host_p ExternalHostProvi
rovider der
graphics_conso GraphicsConsole[] List of graphics consoles configured for this virtual machine.
les
host Host Reference to the host the virtual machine is running on.
katello_errata KatelloErratum[] Lists all the Katello errata assigned to the virtual machine.
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.
original_templat Template References the original template used to create the virtual
e machine.
835
Red Hat Virtualization 4.4 REST API Guide
quota Quota Reference to quota configuration set for this virtual machine.
reported_device ReportedDevice[]
s
sessions Session[] List of user sessions opened for this virtual machine.
snapshots Snapshot[] Refers to all snapshots taken from the virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
tags Tag[]
template Template Reference to the template the virtual machine is based on.
vm_pool VmPool Reference to the pool the virtual machine is optionally member
of.
7.313.20. affinity_labels
Optional. Used for labeling of sub-clusters.
7.313.21. katello_errata
Lists all the Katello errata assigned to the virtual machine.
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>
...
836
CHAPTER 7. TYPES
</packages>
</katello_erratum>
...
</katello_errata>
7.313.22. original_template
References the original template used to create the virtual machine.
If the virtual machine is cloned from a template or another virtual machine, the template links to the
Blank template, and the original_template is used to track history.
7.313.23. statistics
Statistics data collected from this virtual machine.
Note that some statistics, notably memory.buffered and memory.cached are available only when Red
Hat Virtualization guest agent is installed in the virtual machine.
Name Summary
migratable
pinned
user_migratable
auto_pinning_p AutoPinningPolicy Specifies if and how the auto CPU and NUMA configuration is
olicy applied.
837
Red Hat Virtualization 4.4 REST API Guide
cpu_pinning_po CpuPinningPolicy Specifies if and how the CPU and NUMA configuration is
licy applied.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
838
CHAPTER 7. TYPES
migration_down Integer Maximum time the virtual machine can be non responsive during
time its live migration to another host in ms.
multi_queues_e Boolean If true, each virtual interface will get the optimal number of
nabled queues, depending on the available virtual Cpus.
rng_device RngDevice Random Number Generator device configuration for this virtual
machine.
soundcard_ena Boolean If true, the sound card is added to the virtual machine.
bled
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.
storage_error_r VmStorageErrorR Determines how the virtual machine will be resumed after
esume_behavio esumeBehaviour storage error.
ur
839
Red Hat Virtualization 4.4 REST API Guide
tunnel_migratio Boolean If true, the network data transfer will be encrypted during virtual
n machine live migration.
type VmType Determines whether the virtual machine is optimized for desktop
or server.
usb Usb Configuration of USB devices for this virtual machine (count,
type).
virtio_scsi_mult Integer Number of queues for a Virtio-SCSI contoller this field requires
i_queues virtioScsiMultiQueuesEnabled to be true see
virtioScsiMultiQueuesEnabled for more info
virtio_scsi_mult Boolean If true, the Virtio-SCSI devices will obtain a number of multiple
i_queues_enabl queues depending on the available virtual Cpus and disks, or
ed according to the specified virtioScsiMultiQueues.
7.315.1. auto_pinning_policy
Specifies if and how the auto CPU and NUMA configuration is applied.
IMPORTANT
Since version 4.5 of the engine this operation is deprecated, and preserved only for
backwards compatibility. It might be removed in the future. Please use CpuPinningPolicy
instead.
7.315.2. cpu
The configuration of the virtual machine 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>
840
CHAPTER 7. TYPES
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.315.3. cpu_pinning_policy
Specifies if and how the CPU and NUMA configuration is applied. When not specified the previous
behavior of CPU pinning string will determine CpuPinningPolicy to None or Manual.
7.315.4. custom_compatibility_version
Virtual machine 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.
7.315.5. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.315.6. initialization
Reference to the virtual machine’s initialization configuration.
NOTE
Since Red Hat Virtualization 4.1.8 this property can be cleared by sending an empty tag.
For example, to clear the initialization attribute send a request like this:
PUT /ovirt-engine/api/vms/123
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.315.7. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
841
Red Hat Virtualization 4.4 REST API Guide
7.315.8. lease
Reference to the storage domain this virtual machine/template lease reside on.
A virtual machine running with a lease requires checking while running that the lease is not taken by
another host, preventing another instance of this virtual machine from running on another host. This
provides protection against split-brain in highly available virtual machines. A template can also have a
storage domain defined for a lease in order to have the virtual machines created from this template to
be preconfigured with this storage domain as the location of the leases.
7.315.9. memory
The virtual machine’s memory, in bytes.
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>
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 in state up. The size increment must be dividable by the
value of the HotPlugMemoryBlockSizeMb configuration value (256 MiB by default). If the memory size
increment is not dividable by this value, the memory size change is only stored to next run configuration.
Each successful memory hot plug operation creates one or two new memory devices.
Memory hot unplug is supported since Red Hat Virtualization 4.2 onwards. Memory hot unplug can only
be performed when the virtual machine is in state up. Only previously hot plugged memory devices can
be removed by the hot unplug operation. The requested memory decrement is rounded down to match
sizes of a combination of previously hot plugged memory devices. The requested memory value is
stored to next run configuration without rounding.
NOTE
NOTE
Red Hat Virtualization Manager internally rounds values down to whole MiBs (1MiB = 220
bytes)
7.315.10. migration
Reference to configuration of migration of a running virtual machine to another host.
NOTE
842
CHAPTER 7. TYPES
NOTE
API for querying migration policy by ID returned by this method is not implemented yet.
Use /ovirt-engine/api/options/MigrationPolicies to get a list of all migration policies
with their IDs.
7.315.11. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.315.12. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.315.13. placement_policy
The configuration of the virtual machine’s 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
843
Red Hat Virtualization 4.4 REST API Guide
<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>
7.315.14. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.315.15. 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.
7.315.16. tpm_enabled
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
visible when fetching if "All-Content=true" header is set.
quota Quota Reference to quota configuration set for this virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
844
CHAPTER 7. TYPES
Name Summary
cdrom
floppy
instance_type InstanceType Optionally references to an instance type the device is used by.
vms Vm[] References to the virtual machines that are using this device.
7.317.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.
845
Red Hat Virtualization 4.4 REST API Guide
affinity VmAffinity
hosts Host[]
auto_storage_s Boolean Indicates if the pool should automatically distribute the disks of
elect the virtual machines across the multiple storage domains where
the template is copied.
display Display The display settings configured for virtual machines in the pool.
max_user_vms Integer The maximum number of virtual machines in the pool that could
be assigned to a particular user.
prestarted_vms Integer The system attempts to prestart the specified number of virtual
machines from the pool.
rng_device RngDevice The random number generator device configured for virtual
machines in the pool.
soundcard_ena Boolean Indicates if sound card should be configured for virtual machines
bled in the pool.
846
CHAPTER 7. TYPES
use_latest_tem Boolean Indicates if virtual machines in the pool are updated to newer
plate_version versions of the template the pool is based on.
7.319.1. auto_storage_select
Indicates if the pool should automatically distribute the disks of the virtual machines across the multiple
storage domains where the template is copied.
When the template used by the pool is present in multiple storage domains, the disks of the virtual
machines of the pool will be created in one of those storage domains. By default, or when the value of
this attribute is false, that storage domain is selected when the pool is created, and all virtual machines
will use the same. If this attribute is true, then, when a virtual machine is added to the pool, the storage
domain that has more free space is selected.
7.319.2. display
The display settings configured for virtual machines in the pool.
WARNING
Please note that this attribute is not working and is now deprecated. Please use
Vm.display instead.
7.319.3. prestarted_vms
The system attempts to prestart the specified number of virtual machines from the pool.
These virtual machines are started without being attached to any user. That way, users can acquire
virtual machines from the pool faster.
7.319.4. stateful
Virtual machine pool’s stateful flag.
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.
7.319.5. tpm_enabled
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
847
Red Hat Virtualization 4.4 REST API Guide
If true, a TPM device is added to the virtual machine. By default the value is false. This property is only
visible when fetching if "All-Content=true" header is set.
instance_type InstanceType Reference to the instance type on which this pool is based.
7.319.6. 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.
7.319.7. vm
Reference to an arbitrary virtual machine that is part of the pool.
Note that this virtual machine may not be based to the latest version of the pool’s template.
Name Summary
automatic This policy indicates that virtual machines in the pool are automcatically deallocated by
the system.
manual This policy indicates that virtual machines in the pool are deallocated manually by the
administrator.
7.320.1. automatic
This policy indicates that virtual machines in the pool are automcatically deallocated by the system.
With this policy, when a virtual machine that is part of the pool and is assigned to a user is shut-down, it
is detached from the user, its state is restored to the pool’s default state, and the virtual machine
returns to pool (i.e., the virtual machine can then be assigned to another user).
848
CHAPTER 7. TYPES
7.320.2. manual
This policy indicates that virtual machines in the pool are deallocated manually by the administrator.
With this policy, a virtual machine that is part of the pool remains assigned to its user and preserves its
state on shut-down. In order to return the virtual machine back to the pool, the administrator needs to
deallocate it explicitly by removing the user’s permissions on that virtual machine.
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_responding This status indicates that the hypervisor detected that the virtual machine is not
responding.
paused This status indicates that the virtual machine process is running and the virtual machine
is paused.
powering_down This status indicates that the virtual machine process is running and it is about to stop
running.
powering_up This status indicates that the virtual machine process is running and the guest
operating system is being loaded.
reboot_in_progr This status indicates that the virtual machine process is running and the guest
ess operating system is being rebooted.
restoring_state This status indicates that the virtual machine process is about to run and the virtual
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.
849
Red Hat Virtualization 4.4 REST API Guide
Name Summary
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_launch This status indicates that the virtual machine process is about to run.
7.321.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.
7.321.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.
7.321.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.
7.321.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.
7.321.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.
7.321.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.
7.321.7. up
This status indicates that the virtual machine process is running and the guest operating system is
850
CHAPTER 7. TYPES
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.
7.321.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.
This are the possible options, what should happen with the virtual machine in the moment the storage
gets available again.
Name Summary
auto_resume The virtual machine gets resumed automatically in the moment the storage is available
again.
kill The virtual machine will be killed after a timeout (configurable on the hypervisor).
7.322.1. auto_resume
The virtual machine gets resumed automatically in the moment the storage is available again.
7.322.2. kill
The virtual machine will be killed after a timeout (configurable on the hypervisor).
This is the only option supported for highly available virtual machines with leases. The reason is that the
highly available virtual machine is restarted using the infrastructure and any kind of resume risks split
brains.
7.322.3. leave_paused
Do nothing with the virtual machine.
Useful if there is a custom failover implemented and the user does not want the virtual machine to get
resumed.
851
Red Hat Virtualization 4.4 REST API Guide
migrating Integer The number of virtual machines migrating to or from the host.
Name Summary
high_performan The virtual machine is intended to be used as a high performance virtual machine.
ce
7.324.1. desktop
The virtual machine is intended to be used as a desktop.
Currently, its implication is that a sound device will automatically be added to the virtual machine.
7.324.2. high_performance
The virtual machine is intended to be used as a high performance virtual machine.
Currently, its implication is that the virtual machine configuration will automatically be set for running
with the highest possible performance, and with performance metrics as close to bare metal as possible.
Some of the recommended configuration settings for the highest possible performance cannot be set
automatically; manually setting them before running the virtual machine is recommended.
852
CHAPTER 7. TYPES
Disable migration.
The following recommended configuration changes have to be set manually by the user:
7.324.3. server
The virtual machine is intended to be used as a server.
Currently, its implication is that a sound device will not automatically be added to the virtual machine.
Name Summary
853
Red Hat Virtualization 4.4 REST API Guide
7.327.1. migratable
Marks whether pass_through NIC is migratable or not.
If pass_through.mode is set to disabled this option has no meaning, and it will be considered to be
true. If you omit this option from a request, by default, this will be set to true.
When migrating a virtual machine, this virtual machine will be migrated only if all pass_through NICs are
flagged as migratable.
7.327.2. pass_through
Enables passthrough to an SR-IOV-enabled host NIC.
A vNIC profile enables a NIC to be directly connected to a virtual function (VF) of an SR-IOV-enabled
host NIC, if passthrough is enabled. The NIC will then bypass the software network virtualization and
connect directly to the VF for direct device assignment.
Passthrough cannot be enabled if the vNIC profile is already attached to a NIC. If a vNIC profile has
passthrough enabled, qos and port_mirroring are disabled for the vNIC profile.
7.327.3. port_mirroring
Enables port mirroring.
Port mirroring copies layer 3 network traffic on a given logical network and host to a NIC on a virtual
machine. This virtual machine can be used for network debugging and tuning, intrusion detection, and
854
CHAPTER 7. TYPES
monitoring the behavior of other virtual machines on the same host and logical network. The only traffic
copied is internal to one logical network on one host. There is no increase in traffic on the network
external to the host; however a virtual machine with port mirroring enabled uses more host CPU and
RAM than other virtual machines.
Hot linking a NIC with a vNIC profile that has port mirroring enabled is not supported.
Port mirroring cannot be altered when the vNIC profile is attached to a virtual machine.
Given the above limitations, it is recommended that you enable port mirroring on an additional,
dedicated vNIC profile.
IMPORTANT
failover VnicProfile Failover vNIC profile for SR-IOV migration without downtime
network Network Reference to the network that the vNIC profile is applied to.
network_filter NetworkFilter Reference to the top-level network filter that applies to the
NICs that use this profile.
7.327.4. network_filter
Reference to the top-level network filter that applies to the NICs that use this profile.
Network filters enhance the ability to manage the network packets traffic to and from virtual machines.
The network filter may either contain a reference to other filters, rules for traffic filtering, or a
combination of both.
7.327.5. qos
Reference to the quality of service attributes to apply to the vNIC profile.
Quality of Service attributes regulate inbound and outbound network traffic of the NIC.
855
Red Hat Virtualization 4.4 REST API Guide
If, for example, the desired virtual NIC profile’s mapping includes the following two lines:
Source network name Source network profile name Target virtual NIC profile ID
The following form is deprecated since 4.2.1 and will be removed in the future:
<vnic_profile_mappings>
<vnic_profile_mapping>
<source_network_name>red</source_network_name>
<source_network_profile_name>gold</source_network_profile_name>
<target_vnic_profile id="738dd914-8ec8-4a8b-8628-34672a5d449b"/>
</vnic_profile_mapping>
<vnic_profile_mapping>
<source_network_name>blue</source_network_name>
<source_network_profile_name>silver</source_network_profile_name>
<target_vnic_profile id="892a12ec-2028-4451-80aa-ff3bf55d6bac"/>
</vnic_profile_mapping>
</vnic_profile_mappings>
7.328.1. source_network_name
Deprecated attribute describing the name of the external network.
WARNING
Please note that this attribute has been deprecated since version 4.2.1 of the
engine, and preserved only for backward compatibility. It will be removed in the
future.
7.328.2. source_network_profile_name
856
CHAPTER 7. TYPES
WARNING
Please note that this attribute has been deprecated since version 4.2.1 of the
engine, and preserved only for backward compatibility. It will be removed in the
future.
7.328.3. target_vnic_profile
Deprecated attribute describing an existing virtual NIC profile.
WARNING
Please note that this attribute has been deprecated since version 4.2.1 of the
engine, and preserved only for backward compatibility. It will be removed in the
future.
id String
logical_units LogicalUnit[]
name String
857
Red Hat Virtualization 4.4 REST API Guide
7.330.1. model
Model of watchdog device. Currently supported only I6300ESB.
instance_type InstanceType Optionally references to an instance type the device is used by.
vms Vm[] References to the virtual machines that are using this device.
7.330.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.
Name Summary
dump Virtual machine process will get core dumped to the default path on the host.
858
CHAPTER 7. TYPES
Name Summary
poweroff Virtual machine will be powered off when watchdog action is triggered.
7.331.1. none
No action will be performed when watchdog action is triggered. However log message will still be
generated.
Name Summary
7.332.1. diag288
The watchdog model for S390X machines.
S390X has an integrated watchdog facility that is controlled via the DIAG288 instruction. Use this model
for S390X virtual machines.
7.332.2. i6300esb
PCI based watchdog model.
Use the I6300ESB watchdog for x86_64 and PPC64 virtual machines.
859
Red Hat Virtualization 4.4 REST API Guide
factor Integer
scheduling_poli SchedulingPolicy
cy
scheduling_poli SchedulingPolicyU
cy_unit nit
860
APPENDIX A. PRIMITIVE TYPES
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
861
Red Hat Virtualization 4.4 REST API Guide
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
862
APPENDIX A. PRIMITIVE TYPES
When requesting the JSON representation the engine uses a different, format: an integer containing
the number of milliseconds since Jan 1 st 1970, also known 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 these examples, the time zone is UTC+2.
863
Red Hat Virtualization 4.4 REST API Guide
Version 3 Version 4
API Api
CPU Cpu
CPUs Cpus
CdRom Cdrom
CdRoms Cdroms
DNS Dns
GuestNicConfiguration NicConfiguration
GuestNicsConfiguration NicConfigurations
HostNICStates HostNicStates
HostNIC HostNic
HostStorage HostStorages
IO Io
IP Ip
IPs Ips
KSM Ksm
864
APPENDIX B. CHANGES IN VERSION 4 OF THE API
Version 3 Version 4
MAC Mac
NIC Nic
PreviewVMs PreviewVms
QoS Qos
QoSs Qoss
RSDL Rsdl
SELinux SeLinux
SPM Spm
SSHPublicKey SshPublicKey
SSHPublicKeys SshPublicKeys
SSH Ssh
SkipIfSDActive SkipIfSdActive
Slaves HostNics
Storage HostStorage
SupportedVersions Versions
VCpuPin VcpuPin
VLAN Vlan
VM Vm
VMs Vms
VirtIO_SCSI VirtioScsi
WatchDog Watchdog
WatchDogs Watchdogs
865
Red Hat Virtualization 4.4 REST API Guide
Currently the status of different objects is reported using the Status type, which contains a state string
describing the status and another detail string for additional details. For example, the status of a virtual
machine that is paused due to an IO error is currently reported as follows:
<vm>
...
<status>
<state>paused</state>
<detail>eio</detail>
</status>
...
</vm>
In version 4 of the API this Status type has been removed and replaced by enum types. When the
additional detail string is needed it has been replaced with an additional status_detail attribute. So, for
example, the status of the same virtual machine will now be reported as follows:
<vm>
...
<status>paused</status>
<status_detail>eio</status_detail>
...
</vm>
The NIC network and port_mirroring elements have been replaced by the vnic_profile element, so
when creating or updating a NIC instead of specifying the network and port mirroring configuration,
these are previusly specified creating a vNIC profile:
POST /ovirt-engine/api/vnicprofiles
<vnic_profile>
<name>myprofile</name>
<network id="..."/>
<port_mirroring>true</port_mirroring>
</vnic_profile>
And then the NIC is created or referencing the existing vNIC profile:
PUT /ovirt-engine/api/vms/123/nics/456
<nic>
<vnic_profile id="/vnicprofiles/...">
</nic>
The old elements and their meaning were preserved for backwards compatibility, but they have now
been completely removed.
Note that the network element hasn’t been removed from the XML schema because it is still used by
the initialization element, but it will be completely ignored if provided when creating or updating a NIC.
866
APPENDIX B. CHANGES IN VERSION 4 OF THE API
The NIC active property was replaced by plugged some time ago. It has been completely removed now.
The type property of disks has been removed, but kept in the XML schema and ignored. It has been
completely removed now.
The disk size property has been replaced by provisioned_size long ago. It has been completely
removed now.
PUT /ovirt-engine/api/vms/123
<vm>
<placement_policy>
<host id="456"/>
</placement_policy>
<vm>
In version 3.6 this capability was enhanced to support multiple hosts, and to do so a new hosts element
was added:
PUT /ovirt-engine/api/vms/123
<vm>
<placement_policy>
<hosts>
<host id="456"/>
<host id="789"/>
...
</hosts>
</placement_policy>
<vm>
To preserve backwards compatibility the single host element was preserved. In 4.0 this has been
removed, so applications will need to use the hosts element even if when pinning to a single host.
The list of permits is potentiall different for each cluster level, and it has been added to the version
element long ago, but it has been kept into the capabilities element as well, just for backwards
compatibility.
In 4.0 it the capabilities service has been completely removed, and replaced by the new clusterlevels
867
Red Hat Virtualization 4.4 REST API Guide
In 4.0 it the capabilities service has been completely removed, and replaced by the new clusterlevels
service. To find the permits supported by cluster level 4.0 a request like this should be used:
GET /ovirt-engine/api/clusterlevels/4.0
The result will be a document containing the information specific to that cluster level, in particular the
set of supported permits:
The storage_manager element was replaced by the spm element some time ago. The old one was
kept for backwards compatibility, but it has been completely removed now.
Data centers used to be associated to a specific storage type (NFS, Fiber Channel, iSCSI, etc) but they
have been changed some time so that there are only two types: with local storage and with shared
storage. A new local element was introduced to indicate this, and the old storage_type was element
was preserved for backwards compatibility. This old element has now been completely removed.
The VM resource used to contain a timezone element to represent the time zone. This element only
allowed a string:
<vm>
<timezone>Europe/Madrid</timezone>
</vm>
This doesn’t allow extension, and as a it was necessary to add the UTC offset, it was replaced with a new
structured time_zone element:
<vm>
<time_zone>
<name>Europe/Madrid</name>
<utc_offset>GMT+1</utc_offset>
</time_zone>
</vm>
The old timezone element was preserved, but it has been completely removed now.
868
APPENDIX B. CHANGES IN VERSION 4 OF THE API
The guest_info element was used to hold information gathered by the guest agent, like the IP
addresses and the fully qualified host name. This information is also available in other places. For
example, the IP addresses are available within VM resource:
GET /ovirt-engine/api/vms/123
<vm>
<guest_info>
<ips>
<ip address="192.168.122.30"/>
</ips>
<fqdn>myvm.example.com</fqdn>
</guest_info>
</vm>
And also within the NIC resource, using the newer reported_devices element:
GET /ovirt-engine/api/vms/{vm:id}/nics/{nic:id}
<nic>
<reported_devices>
<reported_device>
<name>eth0</name>
<mac address="00:1a:4a:b5:4c:94"/>
<ips>
<ip address="192.168.1.115" version="v4"/>
<ip address="fe80::21a:4aff:feb5:4c94" version="v6"/>
<ip address="::1:21a:4aff:feb5:4c94" version="v6"/>
</ips>
</reported_device>
</reported_devices>
</nic>
In addition this newer reported_devices element provides more complete information, like multiple IP
addresses, MAC addresses, etc.
To support the fully qualified domain name a new fqdn element has been added to the VM resource:
GET /ovirt-engine/api/vms/123
<vm>
<fqdn>myvm.example.com</fqdn>
</vms>
This will contain the same information that guest_info.fqdn used to contain.
The cpu element used to have an id attribute that indicates the type of CPU:
869
Red Hat Virtualization 4.4 REST API Guide
This is in contradiction with the rest of the elements of the API model, where the id attribute is used for
opaque identifiers. This id attribute has been replaced with a new type element:
<cpu>
<type>Intel Nehalem Family</type>
<architecture>X86_64</architecture>
</cpu>
<cpu>
<topology sockets="1" cores="1" threads="1"/>
...
</cpu>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<cpu>
<topology>
<sockets>1<sockets>
<cores>1<cores>
<threads>1<threads>
</topology>
...
</cpu>
<cpu_tune>
<vcpu_pin vcpu="0" cpu_set="0"/>
</cpu_tune>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<cpu_tune>
<vcpu_pin>
<vcpu>0</vcpu>
<cpu_set>0</cpu_set>
</vcpu_pin>
</cpu_tune>
870
APPENDIX B. CHANGES IN VERSION 4 OF THE API
In the past the version element used attributes for its properties:
This is contrary to the common practice in the API. They have been replaced by inner elements:
<version>
<major>3</minor>
<minor>5</minor>
...
</version>
<memory_policy>
<overcommit percent="100"/>
...
</memory_policy>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<memory_policy>
<overcommit>
<percent>100</percent>
</overcommit>
...
</memory_policy>
In the past the console element used attributes for its properties:
<console enabled="true"/>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<console>
<enabled>true</enabled>
</console>
<virtio_scsi enabled="true"/>
This is contrary to the common practice in the API. They have been replaced by inner elements:
871
Red Hat Virtualization 4.4 REST API Guide
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
B.1.21. Use element instead of attribute for power management agent type
<agent type="apc">
<username>myuser</username>
...
</agent>
This is contrary to the common practice in the API. It has been replaced with an inner element:
<agent>
<type>apc</type>
<username>myuser</username>
...
</agent>
<options>
<option name="port" value="22"/>
<option name="slot" value="5"/>
...
</options>
This is contrary to the common practice in the API. They have been replaced with inner elements:
<options>
<option>
<name>port</name>
<value>22</value>
</option>
<option>
<name>slot</name>
<value>5</value>
</option>
...
</options>
This is contrary to the common practice in the API. They have been replaced with inner elements:
872
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<ip>
<address>192.168.122.1</address>
<netmask>255.255.255.0</netmask>
</ip>
<mac address="66:f2:c5:5f:bb:8d"/>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<mac>
<address>66:f2:c5:5f:bb:8d</address>
</mac>
<boot dev="cdrom"/>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<boot>
<dev>cdrom</dev>
</boot>
<os type="other">
...
</os>
This is contrary to the common practice in the API. It has been replaced with an inner element:
<os>
<type>other</type>
...
</os>
B.1.27. Removed the force parameter from the request to retrieve a host
The request to retrieve a host used to support a force matrix parameter to indicate that the data of the
host should be refreshed (calling VDSM to reload host capabilities and devices) before retrieving it from
the database:
873
Red Hat Virtualization 4.4 REST API Guide
GET /ovirt-engine/api/hosts/123;force
This force parameter has been superseded by the host refresh action, but kept for backwards
compatibility. It has been completely removed now. Applications that require this functionality should
perform two requests, first one to refresh the host:
POST /ovirt-engine/api/hosts/123/refresh
<action/>
GET /ovirt-engine/api/hosts/123
<power_management type="apc">
<enabled>true</enabled>
<address>myaddress</address>
<username>myaddress</username>
<options>
<option name="port" value="22/>
</option name="slot" value="5/>
</options>
...
</power_management>
This has been changed some time ago, in order to support multiple power management agents,
introducing a new /hosts/123/fenceagents collection.
The old type attribute, the old address, username and password elements, and the inner agents
element directly inside power_management were preserved for backwards compatibility. All these
elements have been completely removed, so the only way to query or modify the power management
agents is now the /hosts/123/fenceagents sub-collection.
In the past the way to specify the boot sequence when starting a virtual machine was to use multiple
boot elements, each containing a dev element. For example, to specify that the virtual machine should
first try to boot from CDROM and then from hard disk the following request was used:
POST /ovirt-engine/api/vms/123/start
<action>
<vm>
...
<boot>
<dev>cdrom</dev>
</boot>
874
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<boot>
<dev>hd</dev>
</boot>
</vm>
</action>
The common practice in other parts of the API is to represent arrays with a wrapper element. In that
case that wrapper element could be named boots, but that doesn’t make much sense, as what can have
multiple values here is the boot device, not the boot sequence. To fix this inconsistence this has been
replaced with a single boot element that can contain multiple devices:
POST /ovirt-engine/api/vms/123/start
<action>
<vm>
...
<boot>
<devices>
<device>cdrom</device>
<device>hd</device>
</devices>
</boot>
</vm>
</action>
These elements aren’t really part of the representation of disks, but parameters of the operations to add
and remove virtual machines.
The disks.clone element was used to indicate that the disks of a new virtual machine have to be cloned:
POST /ovirt-engine/api/vms
<vm>
...
<disks>
<clone>true</clone>
</disks>
<vm>
This has been now removed, and replaced by a new clone query parameter:
POST /ovirt-engine/api/vms?clone=true
<vm>
...
</vm>
The disks.detach_only element was used to indicate that when removing a virtual machine the disks do
not have to be removed, but just detached from the virtual machine:
875
Red Hat Virtualization 4.4 REST API Guide
DELETE /ovirt-engine/api/vms/123
<action>
<vm>
<disks>
<detach_only>true</detach_only>
</disks>
</vm>
</action>
This has been now removed, and replaced by a new detach_only query parameter:
DELETE /ovirt-engine/api/vms/123?detach_only=true
The names of the elements that represent pools of virtual machines used to be vmpool and vmpools.
They have been renamed to vm_pool and vm_pools in order to have a consistent correspondence
between names of complex types (VmPool and VmPools in this case) and elements.
The logical units that are part of a volume group used to be reported as an unbounded number of
logical_unit elements. For example, when reporting the details of a storage domain:
GET /ovirt-engine/api/storagedomains/123
<storage_domain>
...
<storage>
...
<volume_group>
<logical_unit>
<!-- First LU -->
</logical_unit>
<logical_unit>
<!-- Second LU -->
</logical_unit>
...
</volume_group>
</storage>
</storage_domain>
This is contrary to the usual practice in the API, as list of elements are always wrapped with an element.
This has been fixed now, so the list of logical units will be wrapped with the logical_units element:
GET /ovirt-engine/api/storagedomains/123
<storage_domain>
...
<storage>
...
876
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<volume_group>
<logical_units>
<logical_unit>
<!-- First LU -->
</logical_unit>
<logical_unit>
<!-- Second LU -->
</logical_unit>
...
</logical_units>
</volume_group>
</storage>
</storage_domain>
This element isn’t really part of the representation of snapshots, but a parameter of the operation that
imports a virtual machine from an export storage domain:
POST /ovirt-engine/api/storagedomains/123/vms/456/import
<action>
<vm>
<snapshots>
<collapse_snapshots>true</collapse_snapshots>
</snapshots>
</vm>
</action>
This has been now removed, and replaced by a new collapse_snapshots query parameter:
POST /ovirt-engine/api/storagedomains/123/vms/456/import?collapse_snapshots=true
<action/>
The host storage collection used the storage and host_storage elements and the Storage and
HostStorage complex types to report the storage associated to a host:
GET /ovirt-engine/api/hosts/123/storage
<host_storage>
<storage>
...
</storage>
<storage>
...
</storage>
...
</host_storage>
This doesn’t follow the pattern used in the rest of the API, where the outer element is a plural name and
877
Red Hat Virtualization 4.4 REST API Guide
This doesn’t follow the pattern used in the rest of the API, where the outer element is a plural name and
the inner element is the same name but in singular. This has now been changed to use host_storages as
the outer element and host_storage as the inner element:
GET /ovirt-engine/api/hosts/123/storage
<host_storages>
<host_storage>
...
</host_storage>
<host_storage>
...
</host_storage>
...
</host_storage>
This element isn’t really part of the representation of permissions, but a parameter of the operations to
create virtual machines or templates:
POST /ovirt-engine/api/vms
<vm>
<template id="...">
<permissions>
<clone>true</clone>
</permissions>
</template>
</action>
POST /ovirt-engine/api/templates
<template>
<vm id="...">
<permissions>
<clone>true</clone>
</permissions>
</vm>
</template>
This has been now removed, and replaced by a new clone_permissions query parameter:
POST /ovirt-engine/api/vms?clone_permissions=true
<vm>
<template id="..."/>
</vm>
POST /ovirt-engine/api/templates?clone_permissions=true
878
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<template>
<vm id="..."/>
</template>
The random number generator sources used to be reported using a collection of source elements
wrapped by an element with a name reflecting its use. For example, the required random number
generator sources of a cluster used to be reported as follows:
GET /ovirt-engine/api/clusters/123
<cluster>
...
<required_rng_sources>
<source>random</source>
</required_rng_sources>
...
</cluster>
And the random number generator sources suported by a host used to be reported as follows:
GET /ovirt-engine/api/hosts/123
<host>
...
<hardware_information>
<supported_rng_sources>
<source>random</source>
</supported_rng_sources>
</hardware_information>
...
</host>
This isn’t consistent with the rest of the API, where collections are wrapped by a name in plural and
elements by the same name in singular. This has been now fixed. The required random number generator
sources will now be reported as follows:
GET /ovirt-engine/api/clusters/123
<cluster>
<required_rng_sources>
<required_rng_sources>random</required_rng_source>
</required_rng_sources>
...
</cluster>
And the random number generator sources supported by a host will be reported as follows:
GET /ovirt-engine/api/hosts/123
879
Red Hat Virtualization 4.4 REST API Guide
<host>
...
<hardware_information>
<supported_rng_sources>
<supported_rng_source>random</supported_rng_source>
</supported_rng_sources>
</hardware_information>
...
</host>
The relationship bettween a tag and it’s parent tag used to be represented using an intermedite parent
tag, that in turn contains another tag element:
<tag>
<name>mytag</name>
<parent>
<tag id="..." href="..."/>
</parent>
</tag>
This structure has been simplified so that only one parent element is used now:
<tag>
<name>mytag</name>
<parent id="..." href="..."/>
</tag>
<cluster>
<name>mycluster</name>
<scheduling_policy>
<policy>evenly_distributed</policy>
<thresholds high="80" duration="120"/>
</scheduling_policy>
...
</cluster>
This mechanism was replaced with a top level /schedulingpolicies collection where scheduling policies
can be defined with arbitrary names and properties. For example, the same scheduling policy is
represented as follows in that top level collection:
<scheduling_policy>
<name>evenly_distributed</name>
<properties>
880
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<property>
<name>CpuOverCommitDurationMinutes</name>
<value>2</value>
</property>
<property>
<name>HighUtilization</name>
<value>80</value>
</property>
</properties>
</scheduling_policy>
The representation of the cluster references the scheduling policy with its identifier:
<cluster>
<name>mycluster</name>
<scheduling_policy id="..."/>
...
</cluster>
To preserve backwards compatibility the old policy and thresholds elements were preserved. The
scheduling policy representation embedded within the cluster was also preserved. All these things have
been completely removed now, so the only way to reference a scheduling policy when retrieving,
creating or updating a cluster is to reference an existing one using its identifier. For example, when
retrieving a cluster only the id (and href) will be populated:
GET /ovirt-engine/api/clusters/123
<cluster>
...
<scheduling_policy id="..." href="..."/>
...
</cluster>
These elements aren’t really part of the representation of a collection of bricks, but parameters of the
operations to add and remove bricks. They have now been removed, and replaced by new
replica_count and stripe_count parameters:
POST .../bricks?replica_count=3&stripe_count=2
DELETE .../bricks?replica_count=3
The statistics used to be represented using a type element that indicates the kind of statistic (gauge,
counter, etc) and also a type attribute that indicates the type of the values (integer, string, etc):
<statistic>
<type>GAUGE</type>
881
Red Hat Virtualization 4.4 REST API Guide
<values type="INTEGER">
<value>...</value>
<value>...</value>
...
</values>
</statistic>
To avoid the use of the type concept for both things the first has been replaced by kind, and both kind
and type are now elements:
<statistic>
<kind>gauge</kind>
<type>integer</type>
<values>
<value>...</value>
<value>...</value>
...
</values>
</statistic>
In the past the way to specify the virtual to physical CPU pinning of a virtual machine was to use multiple
vcpu_pin elements:
<vm>
<cpu>
<cpu_tune>
<vcpu_pin>...</vcpu_pin>
<vcpu_pin>...</vcpu_pin>
...
</cpu_tune>
</cpu>
</vm>
In order to conform to the common practice in other parts of the API this has been changed to use a
wrapper element, in this case vcpu_pins:
<vm>
<cpu>
<cpu_tune>
<vcpu_pins>
<vcpu_pin>...</vcpu_pin>
<vcpu_pin>...</vcpu_pin>
...
</vcpu_pins>
</cpu_tune>
</cpu>
</vm>
The operation that removes a data center supports a force parameter. In order to use it the DELETE
882
APPENDIX B. CHANGES IN VERSION 4 OF THE API
The operation that removes a data center supports a force parameter. In order to use it the DELETE
operation used to support an optional action parameter:
DELETE /ovirt-engine/api/datacenters/123
<action>
<force>true</force>
</action>
This optional action parameter has been replaced with an optional parameter:
DELETE /ovirt-engine/api/datacenters/123?force=true
The operation that removes a host supports a force parameter. In order to use it the DELETE operation
used to support an optional action parameter:
DELETE /ovirt-engine/api/host/123
<action>
<force>true</force>
</action>
This optional action parameter has been replaced with an optional parameter:
DELETE /ovirt-engine/api/host/123?force=true
DELETE /ovirt-engine/api/storagedomains/123
<storage_domain>
<force>...</force>
<destroy>...</destroy>
<host id="...">
<name>...</name>
</host>
</storage_domain>
This was problematic, as the HTTP DELETE parameters shouldn’t have a body, and the representation
of the storage domain shouldn’t include things that aren’t attributes of the storage domain, rather
parameters of the operation.
The force, delete and host attributes have been replaced by equivalent parameters, and the operation
doesn’t now accept a body. For example, now the correct way to delete a storage domain with the force
parameter is the following:
883
Red Hat Virtualization 4.4 REST API Guide
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&force=true
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&destroy=true
The operation that removes a storage server connection supports a host parameter. In order to use it
the DELETE method used to support an optional action parameter:
DELETE /ovirt-engine/api/storageconnections/123
<action>
<host id="...">
<name>...</name>
</host>
</action>
This optional action parameter has been replaced with an optional parameter:
DELETE /ovirt-engine/api/storageconnections/123?host=myhost
The operation that removes a template disk supports the force and storage_domain parameters. In
order to use it them the DELETE method used to support an optional action parameter:
DELETE /ovirt-engine/api/templates/123/disks/456
<action>
<force>...</force>
<storage_domain id="..."/>
</action>
In version 4 of the API this operation has been moved to the new diskattachments collection, and the
request body has been replaced with the query parameters force and storage_domain:
DELETE /ovirt-engine/api/templates/123/disksattachments/456?force=true
DELETE /ovirt-engine/api/templates/123/disksattachments/456?storage_domain=123
DELETE /ovirt-engine/api/disks/456
884
APPENDIX B. CHANGES IN VERSION 4 OF THE API
The operation that removes a virtual machine supports a force parameter. In order to use it the DELETE
method used to support an optional action parameter:
DELETE /ovirt-engine/api/vms/123
<action>
<force>true</force>
</action>
This optional action parameter has been replaced with an optional query parameter:
DELETE /ovirt-engine/api/vms/123?force=true
The operation that removes multiple Gluster bricks was implemented using the DELETE method and
passing the list of bricks as the body of the request:
DELETE /ovirt-engine/api/clusters/123/glustervolumes/456/bricks
<bricks>
<bricks id="..."/>
<bricks id="..."/>
...
</bricks>
This is problematic because the DELETE method shouldn’t have a body, so it has been replaced with a
new remove action that uses the POST method:
POST /ovirt-engine/api/clusters/123/glustervolumes/456/bricks/remove
<bricks>
<bricks id="..."/>
<bricks id="..."/>
...
</bricks>
The element was kept for backward compatibility. Use scheduling_policy.name instead.
POST /ovirt-engine/api/schedulingpolicies
<scheduling_policy>
...
<name>policy_name</name>
...
</scheduling_policy>
885
Red Hat Virtualization 4.4 REST API Guide
PUT /ovirt-engine/api/schedulingpolicies/123
<scheduling_policy>
...
<name>policy_name</name>
...
</scheduling_policy>
Enums are being gradually introduces to the API. Some fields which were string until now, are replaced
with an appropriate enum. One such field is vm.type. But this field is inherited by snapshot, and snapshot
type is different than vm type. So a new field has been added to snapshot entity:
snapshot.snapshot_type.
<snapshot>
...
<snapshot_type>regular|active|stateless|preview</snapshot_type>
...
</snapshot>
The deprecated move action of the VM entity has been removed. Instead, you can move inidividual
disks.
In version 3 of the API the XML schema type ReportedConfigurations had a in_sync property:
<network_attachment>
<reported_configurations>
<in_sync>true</in_sync>
<reported_configuration>
...
</reported_configuration>
...
</reported_configurations>
</network_attachment>
In the specification mechanism used by version 4 of the API this can’t be expressed, because list types
(the list of reported configurations) can’t have attributes. To be able to represent it the attribute has
been moved to the enclosing network_attachment:
<network_attachment>
<in_sync>true</in_sync>
<reported_configurations>
<reported_configuration>
...
</reported_configuration>
886
APPENDIX B. CHANGES IN VERSION 4 OF THE API
...
</reported_configurations>
</network_attachment>
The top level capabilities collection has been replaced by the new clusterlevels collection. This new
collection will contain the information that isn’t available in the model, like the list of CPU types available
for each cluster level:
GET /ovirt-engine/api/clusterlevels
This will return a list of ClusterLevel objects containing the details for all the cluster levels supported by
the system:
<cluster_levels>
<cluster_level id="3.6" href="/clusterlevels/3.6">
<cpu_types>
<cpu_type>
<name>Intel Nehalem Family</name>
<level>2</level>
<architecture>x86_64</architecture>
</cpu_type>
...
</cpu_types>
...
</cluster_level>
</cluster_levels>
Each specific cluster level has it’s own subresource, identified by the version itself:
GET /ovirt-engine/api/clusterlevels/3.6
In version 3 of the API virtual machines and templates had a disks collection containing all the
information of the disks attached to them. In version 4 of the API these disks collections have been
removed and replaced with a new diskattachments collection that will contain only the references to
887
Red Hat Virtualization 4.4 REST API Guide
the disk and the attributes that are specific of the relationship between disks and the virtual machine or
template that they are attached to: interface and bootable.
To find what disks are attached to a virtual machine, for example, send a request like this:
GET /ovirt-engine/api/vms/123/diskattachments
<disk_attachments>
<disk_attachment href="/vms/123/diskattachments/456" id="456">
<bootable>false</bootable>
<interface>virtio</interface>
<disk href="/disks/456" id="456"/>
<vm href="/vms/123" id="123"/>
</disk_attachment>
...
<disk_attachments>
To find the rest of the details of the disk, follow the link provided.
Adding disks to a virtual machine or template uses the new disk_attachment element as well: request
like this:
POST /ovirt-engine/api/vms/123/diskattachments
With the following body if the disk doesn’t exist and you want to create it:
<disk_attachment>
<bootable>false</bootable>
<interface>virtio</interface>
<disk>
<description>My disk</description>
<format>cow</format>
<name>mydisk</name>
<provisioned_size>1048576</provisioned_size>
<storage_domains>
<storage_domain>
<name>mydata</name>
</storage_domain>
</storage_domains>
</disk>
</disk_attachment>
Or with the following body if the disk already exists, and you just want to attach it to the virtual machine:
<disk_attachment>
<bootable>false</bootable>
<interface>virtio</interface>
<disk id="456"/>
</disk_attachment>
Take into account that the vm.disks and template.disks attribtes have disk_attachments for all
usages. For example, when creating a template the vm.disks element was used to indicate in which
888
APPENDIX B. CHANGES IN VERSION 4 OF THE API
storage domain to create the disks of the template. This usage has also been replaced by
vm.disk_attachments, so the request to creaate a template with disks in specific storage domains will
now look like this:
<template>
<name>mytemplate</name>
<vm id="123">
<disk_attachments>
<disk_attachment>
<disk id="456">
<storage_domains>
<storage_domain id="789"/>
</storage_domains>
</disk>
</disk_attachment>
...
</disk_attachments>
</vm>
</template>
In version 3 of the API the operation to discover unregistered storage domains used to receive a list of
iSCSI targets, using multiple iscsi_target elements:
POST /ovirt-engine/api/hosts/123/unregisteredstoragedomaindiscover
<action>
<iscsi>
<address>myiscsiserver</address>
</iscsi>
<iscsi_target>iqn.2016-07.com.example:mytarget1</iscsi_target>
<iscsi_target>iqn.2016-07.com.example:mytarget2</iscsi_target>
</action>
In version 4 of the API all repeating elements, like iscsi_target in this case, are wrapped with another
element, iscsi_targets in case. So the same request should now look like this:
POST /ovirt-engine/api/hosts/123/unregisteredstoragedomaindiscover
<action>
<iscsi>
<address>myiscsiserver</address>
</iscsi>
<iscsi_targets>
<iscsi_target>iqn.2016-07.com.example:mytarget1</iscsi_target>
<iscsi_target>iqn.2016-07.com.example:mytarget2</iscsi_target>
</iscsi_targets>
</action>
889
Red Hat Virtualization 4.4 REST API Guide
890
APPENDIX C. LEGAL NOTICE
Licensed under the (Creative Commons Attribution–ShareAlike 4.0 International License). Derived from
documentation for the (oVirt Project). If you distribute this document or an adaptation of it, you must
provide the URL for the original version.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, 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.
891