REST API Guide
REST API Guide
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons
Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is
available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must
provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,
Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity
logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other
countries.
Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and
other countries.
Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to
or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks
or trademarks/service marks of the OpenStack Foundation, in the United States and other
countries and are used with the OpenStack Foundation's permission. We are not affiliated with,
endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
Abstract
This guide describes the Red Hat Virtualization Manager Representational State Transfer
Application Programming Interface. This guide is generated from documentation comments in the
ovirt-engine-api-model code, and is currently partially complete. Updated versions of this
documentation will be published as new content becomes available.
Table of Contents
Table of Contents
.CHAPTER
. . . . . . . . . . 1.. .INTRODUCTION
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
..............
1.1. REPRESENTATIONAL STATE TRANSFER 44
1.2. API PREREQUISITES 44
.CHAPTER
. . . . . . . . . . 2.
. . AUTHENTICATION
. . . . . . . . . . . . . . . . . . . . AND
. . . . . SECURITY
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
..............
2.1. TLS/SSL CERTIFICATION 46
2.1.1. Obtaining the CA Certificate 46
2.1.2. Importing a Certificate to a Client 48
2.2. AUTHENTICATION 48
2.2.1. OAuth Authentication 48
2.2.2. Basic Authentication 49
2.2.3. Authentication Sessions 51
2.2.3.1. Requesting an Authenticated Session 51
. . . . . . . . . . . 3.
CHAPTER . . COMMON
. . . . . . . . . . . CONCEPTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
..............
3.1. TYPES 53
3.2. IDENTIFIED TYPES 53
3.3. OBJECTS 53
3.4. COLLECTIONS 53
3.5. REPRESENTATIONS 54
3.5.1. XML representation 54
3.5.2. JSON representation 54
3.6. SERVICES 55
3.7. SEARCHING 58
3.7.1. Maximum results parameter 58
3.7.2. Case sensitivity 58
3.7.3. Search syntax 59
3.7.4. Wildcards 59
3.7.5. Pagination 59
3.8. FOLLOWING LINKS 60
3.9. PERMISSIONS 62
3.10. HANDLING ERRORS 63
.CHAPTER
. . . . . . . . . . 4.
. . .QUICK
. . . . . . .START
. . . . . . . EXAMPLES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
..............
4.1. ACCESS API ENTRY POINT 64
4.2. LIST DATA CENTERS 66
4.3. LIST HOST CLUSTERS 67
4.4. LIST LOGICAL NETWORKS 68
4.5. LIST HOSTS 69
4.6. CREATE NFS DATA STORAGE 70
4.7. CREATE NFS ISO STORAGE 71
4.8. ATTACH STORAGE DOMAINS TO DATA CENTER 72
4.9. CREATE VIRTUAL MACHINE 74
4.10. CREATE A VIRTUAL MACHINE NIC 75
4.11. CREATE VIRTUAL MACHINE DISK 76
4.12. ATTACH ISO IMAGE TO VIRTUAL MACHINE 77
4.13. START THE VIRTUAL MACHINE 78
. . . . . . . . . . . 5.
CHAPTER . . REQUESTS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
..............
. . . . . . . . . . . 6.
CHAPTER . . .SERVICES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
...............
6.1. AFFINITYGROUP 110
1
Red Hat Virtualization 4.3 REST API Guide
2
Table of Contents
3
Red Hat Virtualization 4.3 REST API Guide
4
Table of Contents
5
Red Hat Virtualization 4.3 REST API Guide
6
Table of Contents
7
Red Hat Virtualization 4.3 REST API Guide
8
Table of Contents
9
Red Hat Virtualization 4.3 REST API Guide
10
Table of Contents
11
Red Hat Virtualization 4.3 REST API Guide
12
Table of Contents
13
Red Hat Virtualization 4.3 REST API Guide
14
Table of Contents
15
Red Hat Virtualization 4.3 REST API Guide
16
Table of Contents
17
Red Hat Virtualization 4.3 REST API Guide
18
Table of Contents
19
Red Hat Virtualization 4.3 REST API Guide
20
Table of Contents
21
Red Hat Virtualization 4.3 REST API Guide
22
Table of Contents
23
Red Hat Virtualization 4.3 REST API Guide
24
Table of Contents
25
Red Hat Virtualization 4.3 REST API Guide
26
Table of Contents
. . . . . . . . . . . 7.
CHAPTER . . TYPES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
................
7.1. ACCESSPROTOCOL ENUM 496
7.2. ACTION STRUCT 496
7.3. AFFINITYGROUP STRUCT 500
7.3.1. enforcing 501
7.3.2. positive 501
7.4. AFFINITYLABEL STRUCT 502
7.4.1. read_only 502
7.5. AFFINITYRULE STRUCT 502
7.5.1. enabled 503
7.5.2. enforcing 503
7.5.3. positive 503
7.6. AGENT STRUCT 503
7.6.1. host 504
7.7. AGENTCONFIGURATION STRUCT 504
7.8. API STRUCT 505
7.8.1. authenticated_user 506
7.8.2. effective_user 506
7.9. APISUMMARY STRUCT 506
7.10. APISUMMARYITEM STRUCT 507
7.11. APPLICATION STRUCT 507
7.12. ARCHITECTURE ENUM 508
7.12.1. s390x 508
7.13. AUTHORIZEDKEY STRUCT 508
7.14. AUTONUMASTATUS ENUM 509
7.15. BALANCE STRUCT 509
7.16. BIOS STRUCT 510
7.17. BLOCKSTATISTIC STRUCT 510
7.18. BONDING STRUCT 510
7.18.1. ad_partner_mac 510
7.18.2. options 510
7.18.3. slaves 511
7.18.4. active_slave 511
7.19. BOOKMARK STRUCT 511
7.20. BOOT STRUCT 512
7.20.1. devices 512
7.21. BOOTDEVICE ENUM 512
7.21.1. cdrom 512
7.21.2. network 512
7.22. BOOTMENU STRUCT 512
7.23. BOOTPROTOCOL ENUM 513
27
Red Hat Virtualization 4.3 REST API Guide
28
Table of Contents
29
Red Hat Virtualization 4.3 REST API Guide
30
Table of Contents
31
Red Hat Virtualization 4.3 REST API Guide
32
Table of Contents
33
Red Hat Virtualization 4.3 REST API Guide
34
Table of Contents
35
Red Hat Virtualization 4.3 REST API Guide
36
Table of Contents
37
Red Hat Virtualization 4.3 REST API Guide
38
Table of Contents
39
Red Hat Virtualization 4.3 REST API Guide
40
Table of Contents
. . . . . . . . . . . .A.
APPENDIX . . PRIMITIVE
. . . . . . . . . . . .TYPES
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .768
...............
A.1. STRING PRIMITIVE 768
A.2. BOOLEAN PRIMITIVE 768
A.3. INTEGER PRIMITIVE 768
A.4. DECIMAL PRIMITIVE 769
A.5. DATE PRIMITIVE 769
. . . . . . . . . . . .B.
APPENDIX . . CHANGES
. . . . . . . . . . . .IN
. . VERSION
..........4
. . OF
. . . .THE
. . . . .API
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
...............
B.1. REMOVED YAML SUPPORT 771
B.2. RENAMED COMPLEX TYPES 771
B.3. REPLACED THE STATUS TYPE WITH ENUM TYPES 772
B.4. REMOVE THE NIC NETWORK AND PORT_MIRRORING PROPERTIES 773
B.5. REMOVE THE NIC ACTIVE PROPERTY 774
B.6. REMOVE THE DISK TYPE PROPERTY 774
B.7. REMOVE THE DISK SIZE PROPERTY 774
B.8. REMOVED SUPPORT FOR PINNING A VM TO A SINGLE HOST 774
B.9. REMOVED THE CAPABILITIES.PERMITS ELEMENT 774
B.10. REMOVED THE STORAGE_MANAGER ELEMENT 775
B.11. REMOVED THE DATA CENTER STORAGE_TYPE ELEMENT 775
B.12. REMOVE THE TIMEZONE ELEMENT 775
B.13. REMOVED THE GUEST_INFO ELEMENT 776
B.14. REPLACED CPU ID ATTRIBUTE WITH TYPE ELEMENT 776
B.15. USE ELEMENTS INSTEAD OF ATTRIBUTES IN CPU TOPOLOGY 777
B.16. USE ELEMENTS INSTEAD OF ATTRIBUTES IN VCPU PIN 777
B.17. USE ELEMENTS INSTEAD OF ATTRIBUTES IN VCPU PIN 778
B.18. USE ELEMENTS INSTEAD OF ATTRIBUTES IN MEMORY OVERCOMMIT 778
B.19. USE ELEMENTS INSTEAD OF ATTRIBUTES IN CONSOLE 778
B.20. USE ELEMENTS INSTEAD OF ATTRIBUTES IN VIRTIO SCSI 778
B.21. USE ELEMENT INSTEAD OF ATTRIBUTE FOR POWER MANAGEMENT AGENT TYPE 779
B.22. USE ELEMENTS INSTEAD OF ATTRIBUTES IN POWER MANAGEMENT AGENT OPTIONS 779
B.23. USE ELEMENTS INSTEAD OF ATTRIBUTES IN IP ADDRESS: 779
B.24. USE ELEMENTS INSTEAD OF ATTRIBUTES IN MAC ADDRESS: 780
B.25. USE ELEMENTS INSTEAD OF ATTRIBUTES IN BOOT DEVICE: 780
41
Red Hat Virtualization 4.3 REST API Guide
B.26. USE ELEMENT INSTEAD OF ATTRIBUTE FOR OPERATING SYSTEM TYPE 780
B.27. REMOVED THE FORCE PARAMETER FROM THE REQUEST TO RETRIEVE A HOST 781
B.28. REMOVED DEPRECATED HOST POWER MANAGEMENT CONFIGURATION 781
B.29. USE MULTIPLE BOOT.DEVICES.DEVICE INSTEAD OF MULTIPLE BOOT 781
B.30. REMOVED THE DISKS.CLONE AND DISKS.DETACH_ONLY ELEMENTS 782
B.31. RENAME ELEMENT VMPOOL TO VM_POOL 783
B.32. USE LOGICAL_UNITS INSTEAD OF MULTIPLE LOGICAL_UNIT 783
B.33. REMOVED THE SNAPSHOTS.COLLAPSE_SNAPSHOTS ELEMENT 784
B.34. RENAMED STORAGE AND HOST_STORAGE ELEMENTS 784
B.35. REMOVED THE PERMISSIONS.CLONE ELEMENT 785
B.36. RENAMED THE RANDOM NUMBER GENERATOR SOURCE ELEMENTS 786
B.37. REMOVED THE INTERMEDIATE TAG.PARENT ELEMENT 787
B.38. REMOVE SCHEDULING BUILT-IN NAMES AND THRESHOLDS 787
B.39. REMOVED THE BRICKS.REPLICA_COUNT AND BRICKS.STRIPE_COUNT ELEMENTS 788
B.40. RENAMED THE STATISTICS TYPE PROPERTY TO KIND 789
B.41. USE MULTIPLE VCPU_PINS.VCPU_PIN INSTEAD OF MULTIPLE VCPU_PIN 789
B.42. USE FORCE PARAMETER TO FORCE REMOVE A DATA CENTER 790
B.43. USE FORCE PARAMETER TO FORCE REMOVE A HOST 790
B.44. USE PARAMETERS FOR FORCE REMOVE STORAGE DOMAIN 790
B.45. USE HOST PARAMETER TO REMOVE STORAGE SERVER CONNECTION 791
B.46. USE FORCE AND STORAGE_DOMAIN PARAMETERS TO REMOVE TEMPLATE DISKS 791
B.47. DON’T REMOVE DISKS VIA THE VM DISK API 792
B.48. USE FORCE QUERY PARAMETER TO FORCE REMOVE A VIRTUAL MACHINE 792
B.49. USE POST INSTEAD OF DELETE TO REMOVE MULTIPLE BRICKS 792
B.50. REMOVED THE SCHEDULING_POLICY.POLICY ELEMENT 793
B.51. ADDED SNAPSHOT.SNAPSHOT_TYPE 793
B.52. REMOVED MOVE ACTION FROM VM 793
B.53. MOVED REPORTED_CONFIGURATIONS.IN_SYNC TO NETWORK_ATTACHMENT 793
B.54. REPLACED CAPABILITIES WITH CLUSTERLEVELS 794
B.55. REPLACED DISKS WITH DISKATTACHMENTS 795
B.56. USE ISCSI_TARGETS ELEMENT TO DISCOVER UNREGISTERED STORAGE 796
42
Table of Contents
43
Red Hat Virtualization 4.3 REST API Guide
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:
44
CHAPTER 1. INTRODUCTION
Knowledge of Hypertext Transfer Protocol (HTTP), the protocol used for REST API
interactions. The Internet Engineering Task Force provides a Request for Comments (RFC)
explaining the Hypertext Transfer Protocol at http://www.ietf.org/rfc/rfc2616.txt.
45
Red Hat Virtualization 4.3 REST API Guide
Method 1
The preferred method for obtaining the CA certificate is to use the openssl s_client command line
tool to perform a real TLS handshake with the server, and then extract the certificates that it
presents. Run a command like this:
$ openssl s_client \
-connect myengine.example.com:443 \
-showcerts \
< /dev/null
This command will connect to the server and display output similar to the following:
CONNECTED(00000003)
depth=1 C = US, O = Example Inc., CN = myengine.example.com.23416
verify error:num=19:self signed certificate in certificate chain
---
Certificate chain
0 s:/C=US/O=Example Inc./CN=myengine.example.com
i:/C=US/O=Example Inc./CN=myengine.example.com.23416
-----BEGIN CERTIFICATE-----
MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
SVlJe7e5FTEtHJGTAeWWM6dGbsFhip5VXM0gfqg=
-----END CERTIFICATE-----
1 s:/C=US/O=Example Inc./CN=myengine.example.com.23416
i:/C=US/O=Example Inc./CN=myengine.example.com.23416
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
Pkyg1rQHR6ebGQ==
-----END CERTIFICATE-----
The text between the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- marks shows
the certificates presented by the server. The first one is the certificate of the server itself, and the
last one is the certificate of the CA. Copy the CA certificate, including the marks, to the ca.crt file.
The result should look like this:
-----BEGIN CERTIFICATE-----
MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx
FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs
46
CHAPTER 2. AUTHENTICATION AND SECURITY
Pkyg1rQHR6ebGQ==
-----END CERTIFICATE-----
IMPORTANT
This is the most reliable method to obtain the CA certificate used by the server. The
rest of the methods described here will work in most cases, but they will not obtain the
correct CA certificate if it has been manually replaced by the administrator of the
server.
Method 2
If you cannot use the openssl s_client method described above, you can instead use a command
line tool to download the CA certificate from the Red Hat Virtualization Manager.
Examples of command line tools include curl and wget, both of which are available on multiple
platforms.
If using curl:
$ curl \
--output ca.crt \
'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-
certificate&format=X509-PEM-CA'
If using wget:
$ wget \
--output-document ca.crt \
'http://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-
certificate&format=X509-PEM-CA'
Method 3
Use a web browser to navigate to the certificate located at:
https://myengine.example.com/ovirt-engine/services/pki-resource?resource=ca-
certificate&format=X509-PEM-CA
Depending on the chosen browser, the certificate either downloads or imports into the browser’s
keystore.
2. If the browser imports the certificate: export it from the browser’s certification options and
save it as ca.crt.
Method 4
Log in to the Red Hat Virtualization Manager, export the certificate from the truststore, and copy it
to your client machine.
2. Export the certificate from the truststore using the Java keytool management utility:
47
Red Hat Virtualization 4.3 REST API Guide
# 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 section 4.3 of RFC 6749.
You must first obtain a token, sending the user name and password to the Red Hat Virtualization
Manager single sign-on service:
The request body must contain the grant_type, scope, username, and password parameters:
Name Value
grant_type password
48
CHAPTER 2. AUTHENTICATION AND SECURITY
Name Value
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
does not currently support refreshing tokens. A new token can be requested using the same method
described above.
49
Red Hat Virtualization 4.3 REST API Guide
IMPORTANT
Each request uses HTTP Basic Authentication [2] to encode the credentials. If a request does not
include an appropriate Authorization header, the server sends a 401 Authorization Required response:
Request are issued with an Authorization header for the specified realm. Encode an appropriate Red
Hat Virtualization Manager domain and user in the supplied credentials with the
username@domain:password convention.
The following table shows the process for encoding credentials in Base64.
Item Value
Domain internal
Password mypassword
HTTP/1.1 200 OK
IMPORTANT
IMPORTANT
50
CHAPTER 2. AUTHENTICATION AND SECURITY
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.
HTTP/1.1 200 OK
...
51
Red Hat Virtualization 4.3 REST API Guide
[2] Basic Authentication is described in RFC 2617 HTTP Authentication: Basic and Digest Access Authentication.
52
CHAPTER 3. COMMON CONCEPTS
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.
53
Red Hat Virtualization 4.3 REST API Guide
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",
54
CHAPTER 3. COMMON CONCEPTS
{
"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.
55
Red Hat Virtualization 4.3 REST API Guide
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:
56
CHAPTER 3. COMMON CONCEPTS
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:
57
Red Hat Virtualization 4.3 REST API Guide
<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
58
CHAPTER 3. COMMON CONCEPTS
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
59
Red Hat Virtualization 4.3 REST API Guide
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.
60
CHAPTER 3. COMMON CONCEPTS
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:
POST /ovirt-engine/api/vms/123?follow=disk_attachments.disk
61
Red Hat Virtualization 4.3 REST API Guide
<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:
POST /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:
POST /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
62
CHAPTER 3. COMMON CONCEPTS
<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>
63
Red Hat Virtualization 4.3 REST API Guide
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
64
CHAPTER 4. QUICK START EXAMPLES
<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 don’t specify the version
explicitly.
65
Red Hat Virtualization 4.3 REST API Guide
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
66
CHAPTER 4. QUICK START EXAMPLES
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 Conroe Family</type>
</cpu>
<version>
<major>4</major>
<minor>0</minor>
</version>
<data_center href="/ovirt-engine/api/datacenters/001" id="001"/>
</cluster>
...
</clusters>
Note the id of your Default host cluster. It identifies this host cluster in relation to other resources of
67
Red Hat Virtualization 4.3 REST API Guide
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
68
CHAPTER 4. QUICK START EXAMPLES
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>
69
Red Hat Virtualization 4.3 REST API Guide
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>
70
CHAPTER 4. QUICK START EXAMPLES
<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>
71
Red Hat Virtualization 4.3 REST API Guide
<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):
72
CHAPTER 4. QUICK START EXAMPLES
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>
73
Red Hat Virtualization 4.3 REST API Guide
</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>
74
CHAPTER 4. QUICK START EXAMPLES
<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
75
Red Hat Virtualization 4.3 REST API Guide
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>
76
CHAPTER 4. QUICK START EXAMPLES
# 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
Section 6.114, “ImageTransfers” to create an image transfer and Section 6.113, “ImageTransfer” 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
77
Red Hat Virtualization 4.3 REST API Guide
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.
78
CHAPTER 4. QUICK START EXAMPLES
<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.
79
Red Hat Virtualization 4.3 REST API Guide
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}
80
CHAPTER 5. REQUESTS
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}/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}
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
81
Red Hat Virtualization 4.3 REST API Guide
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
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
82
CHAPTER 5. REQUESTS
GET /clusters/{cluster:id}/permissions
GET /clusters/{cluster:id}/permissions/{permission:id}
DELETE /clusters/{cluster:id}/permissions/{permission:id}
POST /clusters/{cluster:id}/resetemulatedmachine
POST /clusters/{cluster:id}/syncallnetworks
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}
DELETE /datacenters/{datacenter:id}
POST /datacenters/{datacenter:id}/clusters
GET /datacenters/{datacenter:id}/clusters
GET /datacenters/{datacenter:id}/clusters/{cluster:id}
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
83
Red Hat Virtualization 4.3 REST API Guide
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms/{vm:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/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
84
CHAPTER 5. REQUESTS
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/activate
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/migrate
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/stopmigrate
GET
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
DELETE
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
POST
/datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
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}
85
Red Hat Virtualization 4.3 REST API Guide
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}
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/resetemulatedmachine
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/syncallnetworks
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
86
CHAPTER 5. REQUESTS
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions/{permission:id}
DELETE
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions/{permission:id}
POST
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
GET
/datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
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
87
Red Hat Virtualization 4.3 REST API Guide
GET /datacenters/{datacenter:id}/permissions
GET /datacenters/{datacenter:id}/permissions/{permission:id}
DELETE /datacenters/{datacenter:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/qoss
GET /datacenters/{datacenter:id}/qoss
GET /datacenters/{datacenter:id}/qoss/{qos:id}
PUT /datacenters/{datacenter:id}/qoss/{qos:id}
DELETE /datacenters/{datacenter:id}/qoss/{qos:id}
POST /datacenters/{datacenter:id}/quotas
GET /datacenters/{datacenter:id}/quotas
GET /datacenters/{datacenter:id}/quotas/{quota:id}
PUT /datacenters/{datacenter:id}/quotas/{quota:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}
POST /datacenters/{datacenter:id}/quotas/{quota:id}/permissions
GET /datacenters/{datacenter:id}/quotas/{quota:id}/permissions
GET /datacenters/{datacenter:id}/quotas/{quota:id}/permissions/{permission:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}/permissions/{permission:id}
POST /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits/{limit:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}/quotaclusterlimits/{limit:id}
POST /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits
GET /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits/{limit:id}
DELETE /datacenters/{datacenter:id}/quotas/{quota:id}/quotastoragelimits/{limit:id}
POST /datacenters/{datacenter:id}/storagedomains
GET /datacenters/{datacenter:id}/storagedomains
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}
DELETE /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}
88
CHAPTER 5. REQUESTS
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}
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
89
Red Hat Virtualization 4.3 REST API Guide
GET /diskprofiles/{diskprofile:id}/permissions/{permission:id}
DELETE /diskprofiles/{diskprofile:id}/permissions/{permission:id}
POST /disks
GET /disks
PUT /disks/{disk:id}
GET /disks/{disk:id}
DELETE /disks/{disk:id}
POST /disks/{disk:id}/copy
POST /disks/{disk:id}/export
POST /disks/{disk:id}/move
POST /disks/{disk:id}/permissions
GET /disks/{disk:id}/permissions
GET /disks/{disk:id}/permissions/{permission:id}
DELETE /disks/{disk:id}/permissions/{permission:id}
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}
90
CHAPTER 5. REQUESTS
DELETE /events/{event:id}
POST /externalhostproviders
GET /externalhostproviders
GET /externalhostproviders/{provider:id}
PUT /externalhostproviders/{provider:id}
DELETE /externalhostproviders/{provider:id}
GET /externalhostproviders/{provider:id}/certificates
GET /externalhostproviders/{provider:id}/certificates/{certificate:id}
GET /externalhostproviders/{provider:id}/computeresources
GET /externalhostproviders/{provider:id}/computeresources/{resource:id}
GET /externalhostproviders/{provider:id}/discoveredhosts
GET /externalhostproviders/{provider:id}/discoveredhosts/{host:id}
GET /externalhostproviders/{provider:id}/hostgroups
GET /externalhostproviders/{provider:id}/hostgroups/{group:id}
GET /externalhostproviders/{provider:id}/hosts
GET /externalhostproviders/{provider:id}/hosts/{host:id}
POST /externalhostproviders/{provider:id}/importcertificates
POST /externalhostproviders/{provider:id}/testconnectivity
POST /externalvmimports
POST /groups
GET /groups
GET /groups/{group:id}
DELETE /groups/{group:id}
POST /groups/{group:id}/permissions
GET /groups/{group:id}/permissions
GET /groups/{group:id}/permissions/{permission:id}
DELETE /groups/{group:id}/permissions/{permission:id}
GET /groups/{group:id}/roles
GET /groups/{group:id}/roles/{role:id}
91
Red Hat Virtualization 4.3 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}/deactivate
GET /hosts/{host:id}/devices
GET /hosts/{host:id}/devices/{device:id}
POST /hosts/{host:id}/enrollcertificate
GET /hosts/{host:id}/externalnetworkproviderconfigurations
GET /hosts/{host:id}/externalnetworkproviderconfigurations/{configuration:id}
POST /hosts/{host:id}/fence
92
CHAPTER 5. REQUESTS
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}
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}
93
Red Hat Virtualization 4.3 REST API Guide
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}
POST /hosts/{host:id}/storageconnectionextensions
GET /hosts/{host:id}/storageconnectionextensions
GET /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
94
CHAPTER 5. REQUESTS
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}
PUT /instancetypes/{instancetype:id}
DELETE /instancetypes/{instancetype:id}
POST /instancetypes/{instancetype:id}/graphicsconsoles
95
Red Hat Virtualization 4.3 REST API Guide
GET /instancetypes/{instancetype:id}/graphicsconsoles
GET /instancetypes/{instancetype:id}/graphicsconsoles/{console:id}
DELETE /instancetypes/{instancetype:id}/graphicsconsoles/{console:id}
POST /instancetypes/{instancetype:id}/nics
GET /instancetypes/{instancetype:id}/nics
GET /instancetypes/{instancetype:id}/nics/{nic:id}
PUT /instancetypes/{instancetype:id}/nics/{nic:id}
DELETE /instancetypes/{instancetype:id}/nics/{nic:id}
POST /instancetypes/{instancetype:id}/watchdogs
GET /instancetypes/{instancetype:id}/watchdogs
GET /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
PUT /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
DELETE /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
POST /jobs
GET /jobs
GET /jobs/{job:id}
POST /jobs/{job:id}/clear
POST /jobs/{job:id}/end
POST /jobs/{job:id}/steps
GET /jobs/{job:id}/steps
GET /jobs/{job:id}/steps/{step:id}
POST /jobs/{job:id}/steps/{step:id}/end
GET /jobs/{job:id}/steps/{step:id}/statistics
GET /jobs/{job:id}/steps/{step:id}/statistics/{statistic:id}
GET /katelloerrata
GET /katelloerrata/{katelloerratum:id}
POST /macpools
GET /macpools
GET /macpools/{macpool:id}
96
CHAPTER 5. REQUESTS
PUT /macpools/{macpool:id}
DELETE /macpools/{macpool: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
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}
97
Red Hat Virtualization 4.3 REST API Guide
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}
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}
98
CHAPTER 5. REQUESTS
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}
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
99
Red Hat Virtualization 4.3 REST API Guide
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}
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
100
CHAPTER 5. REQUESTS
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}
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
101
Red Hat Virtualization 4.3 REST API Guide
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}
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}
102
CHAPTER 5. REQUESTS
PUT /tags/{tag:id}
DELETE /tags/{tag:id}
POST /templates
GET /templates
GET /templates/{template:id}
PUT /templates/{template:id}
DELETE /templates/{template:id}
GET /templates/{template:id}/cdroms
GET /templates/{template:id}/cdroms/{cdrom:id}
GET /templates/{template:id}/diskattachments
GET /templates/{template:id}/diskattachments/{attachment:id}
DELETE /templates/{template:id}/diskattachments/{attachment:id}
POST /templates/{template:id}/export
POST /templates/{template:id}/graphicsconsoles
GET /templates/{template:id}/graphicsconsoles
GET /templates/{template:id}/graphicsconsoles/{console:id}
DELETE /templates/{template:id}/graphicsconsoles/{console:id}
POST /templates/{template:id}/nics
GET /templates/{template:id}/nics
GET /templates/{template:id}/nics/{nic:id}
PUT /templates/{template:id}/nics/{nic:id}
DELETE /templates/{template:id}/nics/{nic:id}
POST /templates/{template:id}/permissions
GET /templates/{template:id}/permissions
GET /templates/{template:id}/permissions/{permission:id}
DELETE /templates/{template:id}/permissions/{permission:id}
POST /templates/{template:id}/tags
GET /templates/{template:id}/tags
GET /templates/{template:id}/tags/{tag:id}
103
Red Hat Virtualization 4.3 REST API Guide
DELETE /templates/{template:id}/tags/{tag:id}
POST /templates/{template:id}/watchdogs
GET /templates/{template:id}/watchdogs
GET /templates/{template:id}/watchdogs/{watchdog:id}
PUT /templates/{template:id}/watchdogs/{watchdog:id}
DELETE /templates/{template:id}/watchdogs/{watchdog:id}
POST /users
GET /users
GET /users/{user:id}
DELETE /users/{user:id}
GET /users/{user:id}/groups
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
104
CHAPTER 5. REQUESTS
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}
POST /vmpools/{pool:id}/allocatevm
POST /vmpools/{pool:id}/permissions
GET /vmpools/{pool:id}/permissions
GET /vmpools/{pool:id}/permissions/{permission:id}
DELETE /vmpools/{pool:id}/permissions/{permission:id}
POST /vms
GET /vms
GET /vms/{vm:id}
PUT /vms/{vm:id}
DELETE /vms/{vm:id}
POST /vms/{vm:id}/affinitylabels
GET /vms/{vm:id}/affinitylabels
GET /vms/{vm:id}/affinitylabels/{label:id}
DELETE /vms/{vm:id}/affinitylabels/{label:id}
GET /vms/{vm:id}/applications
GET /vms/{vm:id}/applications/{application:id}
POST /vms/{vm:id}/cancelmigration
POST /vms/{vm:id}/cdroms
GET /vms/{vm:id}/cdroms
GET /vms/{vm:id}/cdroms/{cdrom:id}
PUT /vms/{vm:id}/cdroms/{cdrom:id}
105
Red Hat Virtualization 4.3 REST API Guide
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
POST /vms/{vm:id}/migrate
POST /vms/{vm:id}/nics
GET /vms/{vm:id}/nics
GET /vms/{vm:id}/nics/{nic:id}
106
CHAPTER 5. REQUESTS
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
GET /vms/{vm:id}/permissions/{permission:id}
DELETE /vms/{vm:id}/permissions/{permission:id}
POST /vms/{vm:id}/previewsnapshot
POST /vms/{vm:id}/reboot
POST /vms/{vm:id}/reordermacaddresses
GET /vms/{vm:id}/reporteddevices
GET /vms/{vm:id}/reporteddevices/{reporteddevice:id}
GET /vms/{vm:id}/sessions
GET /vms/{vm:id}/sessions/{session:id}
107
Red Hat Virtualization 4.3 REST API Guide
POST /vms/{vm:id}/shutdown
POST /vms/{vm:id}/snapshots
GET /vms/{vm:id}/snapshots
GET /vms/{vm:id}/snapshots/{snapshot:id}
DELETE /vms/{vm:id}/snapshots/{snapshot:id}
GET /vms/{vm:id}/snapshots/{snapshot:id}/cdroms
GET /vms/{vm:id}/snapshots/{snapshot:id}/cdroms/{cdrom:id}
GET /vms/{vm:id}/snapshots/{snapshot:id}/disks
GET /vms/{vm:id}/snapshots/{snapshot:id}/disks/{disk:id}
GET /vms/{vm:id}/snapshots/{snapshot:id}/nics
GET /vms/{vm:id}/snapshots/{snapshot:id}/nics/{nic:id}
POST /vms/{vm:id}/snapshots/{snapshot:id}/restore
POST /vms/{vm:id}/start
GET /vms/{vm:id}/statistics
GET /vms/{vm:id}/statistics/{statistic:id}
POST /vms/{vm:id}/stop
POST /vms/{vm:id}/suspend
POST /vms/{vm:id}/tags
GET /vms/{vm:id}/tags
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}
108
CHAPTER 5. REQUESTS
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}
109
Red Hat Virtualization 4.3 REST API Guide
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
110
CHAPTER 6. SERVICES
6.2. AFFINITYGROUPVM
This service manages a single virtual machine to affinity group assignment.
Name Summary
6.3. AFFINITYGROUPVMS
This service manages a collection of all the virtual machines assigned to an affinity group.
111
Red Hat Virtualization 4.3 REST API Guide
Name Summary
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.3.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.3.2.2. max
112
CHAPTER 6. SERVICES
Sets the maximum number of virtual machines to return. If not specified, all the virtual machines are
returned.
6.4. AFFINITYGROUPS
The affinity groups service manages virtual machine relationships and dependencies.
Name Summary
Post a request like in the example below to create a new affinity group:
POST /ovirt-engine/api/clusters/000-000/affinitygroups
<affinity_group>
<name>AF_GROUP_001</name>
<hosts_rule>
<enforcing>true</enforcing>
<positive>true</positive>
</hosts_rule>
<vms_rule>
<enabled>false</enabled>
</vms_rule>
</affinity_group>
113
Red Hat Virtualization 4.3 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 affinity groups to return. If not specified all the affinity groups are
returned.
6.5. 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.5.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
114
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.6. AFFINITYLABELHOST
This service represents a host that has a specific label when accessed through the affinitylabels/hosts
subcollection.
Name Summary
get Retrieves details about a host that has this label assigned.
6.6.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.
115
Red Hat Virtualization 4.3 REST API Guide
6.7. AFFINITYLABELHOSTS
This service represents list of hosts that have a specific label when accessed through the
affinitylabels/hosts subcollection.
Name Summary
6.7.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. AFFINITYLABELVM
This service represents a vm that has a specific label when accessed through the affinitylabels/vms
subcollection.
116
CHAPTER 6. SERVICES
Name Summary
vm Vm Out
6.8.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.9. AFFINITYLABELVMS
This service represents list of vms that have a specific label when accessed through the
affinitylabels/vms subcollection.
Name Summary
117
Red Hat Virtualization 4.3 REST API Guide
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.10. AFFINITYLABELS
Manages the affinity labels available in the system.
Name Summary
118
CHAPTER 6. SERVICES
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 labels to return. If not specified all the labels are returned.
6.11. 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.12. ASSIGNEDAFFINITYLABEL
This service represents one label to entity assignment when accessed using the entities/affinitylabels
subcollection.
Name Summary
119
Red Hat Virtualization 4.3 REST API Guide
Name Summary
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. ASSIGNEDAFFINITYLABELS
This service is used to list and manipulate affinity labels that are assigned to supported entities when
accessed using entities/affinitylabels.
Name Summary
120
CHAPTER 6. SERVICES
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. ASSIGNEDCPUPROFILE
Table 6.34. Methods summary
Name Summary
get
remove
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.
121
Red Hat Virtualization 4.3 REST API Guide
6.15. ASSIGNEDCPUPROFILES
Table 6.37. Methods summary
Name Summary
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.15.2.2. max
122
CHAPTER 6. SERVICES
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.16. ASSIGNEDDISKPROFILE
Table 6.40. Methods summary
Name Summary
get
remove
6.16.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.17. ASSIGNEDDISKPROFILES
Table 6.43. Methods summary
Name Summary
list Returns the list of disk profiles assigned to the storage domain.
123
Red Hat Virtualization 4.3 REST API Guide
6.17.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.17.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.18. ASSIGNEDPERMISSIONS
Represents a permission sub-collection, scoped by user, group or some entity type.
Name Summary
124
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>
125
Red Hat Virtualization 4.3 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.18.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.19. ASSIGNEDROLES
Represents a roles sub-collection, for example scoped by user.
Name Summary
126
CHAPTER 6. SERVICES
6.19.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.1.2. max
Sets the maximum number of roles to return. If not specified all the roles are returned.
6.20. 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
127
Red Hat Virtualization 4.3 REST API Guide
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.
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.21. 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
128
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.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
Sets the maximum number of tags to return. If not specified all the tags are returned.
6.22. ASSIGNEDVNICPROFILE
Table 6.57. Methods summary
129
Red Hat Virtualization 4.3 REST API Guide
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. ASSIGNEDVNICPROFILES
Table 6.60. Methods summary
Name Summary
add Add a new virtual network interface card profile for the network.
130
CHAPTER 6. SERVICES
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. ATTACHEDSTORAGEDOMAIN
Table 6.63. Methods summary
Name Summary
get
remove
131
Red Hat Virtualization 4.3 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.24.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
132
CHAPTER 6. SERVICES
<action>
<force>true</force>
<action>
6.24.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.25. 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 an specific disk .
133
Red Hat Virtualization 4.3 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.
134
CHAPTER 6. SERVICES
storage_do StorageDom In The export storage domain where the disk should be
main ain exported to.
6.25.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
135
Red Hat Virtualization 4.3 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.26. 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.
136
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.26.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>
137
Red Hat Virtualization 4.3 REST API Guide
6.26.2.1. disks
6.26.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.26.2.3. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.27. 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
138
CHAPTER 6. SERVICES
storage_do StorageDom Out A list of storage domains that are attached to the
mains ain[] data center.
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 storage domains to return. If not specified all the storage domains are
returned.
6.28. BALANCE
Table 6.80. Methods summary
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
139
Red Hat Virtualization 4.3 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.29. BALANCES
Table 6.83. Methods summary
Name Summary
list Returns the list of balance modules used by the scheduling policy.
140
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 balances to return. If not specified all the balances are returned.
6.30. BOOKMARK
A service to manage a bookmark.
Name Summary
GET /ovirt-engine/api/bookmarks/123
141
Red Hat Virtualization 4.3 REST API Guide
6.30.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.31. BOOKMARKS
A service to manage bookmarks.
142
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>
143
Red Hat Virtualization 4.3 REST API Guide
6.31.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.31.2.2. max
Sets the maximum number of bookmarks to return. If not specified all the bookmarks are returned.
6.32. CLUSTER
A service to manage a specific cluster.
Name Summary
resetemulatedm
achine
GET /ovirt-engine/api/clusters/123
144
CHAPTER 6. SERVICES
<name>Default</name>
<description>The default server cluster</description>
<link href="/ovirt-engine/api/clusters/123/networks" rel="networks"/>
<link href="/ovirt-engine/api/clusters/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/clusters/123/glustervolumes" rel="glustervolumes"/>
<link href="/ovirt-engine/api/clusters/123/glusterhooks" rel="glusterhooks"/>
<link href="/ovirt-engine/api/clusters/123/affinitygroups" rel="affinitygroups"/>
<link href="/ovirt-engine/api/clusters/123/cpuprofiles" rel="cpuprofiles"/>
<ballooning_enabled>false</ballooning_enabled>
<cpu>
<architecture>x86_64</architecture>
<type>Intel Penryn Family</type>
</cpu>
<error_handling>
<on_error>migrate</on_error>
</error_handling>
<fencing_policy>
<enabled>true</enabled>
<skip_if_connectivity_broken>
<enabled>false</enabled>
<threshold>50</threshold>
</skip_if_connectivity_broken>
<skip_if_sd_active>
<enabled>false</enabled>
</skip_if_sd_active>
</fencing_policy>
<gluster_service>false</gluster_service>
<ha_reservation>false</ha_reservation>
<ksm>
<enabled>true</enabled>
<merge_across_nodes>true</merge_across_nodes>
</ksm>
<maintenance_reason_required>false</maintenance_reason_required>
<memory_policy>
<over_commit>
<percent>100</percent>
</over_commit>
<transparent_hugepages>
<enabled>true</enabled>
</transparent_hugepages>
</memory_policy>
<migration>
<auto_converge>inherit</auto_converge>
<bandwidth>
<assignment_method>auto</assignment_method>
</bandwidth>
<compressed>inherit</compressed>
</migration>
<optional_reason>false</optional_reason>
<required_rng_sources>
<required_rng_source>random</required_rng_source>
</required_rng_sources>
<scheduling_policy href="/ovirt-engine/api/schedulingpolicies/456" id="456"/>
<threads_as_cores>false</threads_as_cores>
<trusted_service>false</trusted_service>
<tunnel_migration>false</tunnel_migration>
145
Red Hat Virtualization 4.3 REST API Guide
<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.32.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/00000000-0000-0000-0000-000000000000
146
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>
6.33. CLUSTERENABLEDFEATURE
Represents a feature enabled for the cluster.
Name Summary
147
Red Hat Virtualization 4.3 REST API Guide
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.33.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.34. 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
148
CHAPTER 6. SERVICES
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>
149
Red Hat Virtualization 4.3 REST API Guide
6.34.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. CLUSTEREXTERNALPROVIDERS
This service lists external providers.
Name Summary
6.35.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.36. 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.
150
CHAPTER 6. SERVICES
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.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.
6.37. 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>
151
Red Hat Virtualization 4.3 REST API Guide
</cluster_feature>
...
</cluster_features>
6.37.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.38. 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 Conroe Family</name>
<level>3</level>
<architecture>x86_64</architecture>
</cpu_type>
...
</cpu_types>
<permits>
<permit id="1">
152
CHAPTER 6. SERVICES
<name>create_vm</name>
<administrative>false</administrative>
</permit>
...
</permits>
</cluster_level>
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.
6.39. 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>
153
Red Hat Virtualization 4.3 REST API Guide
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.
6.40. CLUSTERNETWORK
A service to manage a specific cluster network.
Name Summary
6.40.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.
154
CHAPTER 6. SERVICES
6.41. 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
155
Red Hat Virtualization 4.3 REST API Guide
networks Network[] Out The list of networks that are assigned to the cluster.
6.41.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.2.2. max
Sets the maximum number of networks to return. If not specified, all the networks are returned.
6.42. 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 Penryn 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
156
CHAPTER 6. SERVICES
<cluster>
<name>mycluster</name>
<cpu>
<type>Intel Penryn 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.42.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.42.2.2. follow
157
Red Hat Virtualization 4.3 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.42.2.3. max
Sets the maximum number of clusters to return. If not specified, all the clusters are returned.
6.43. COPYABLE
Table 6.123. Methods summary
Name Summary
copy
6.44. CPUPROFILE
Table 6.125. Methods summary
Name Summary
get
remove
6.44.1.1. follow
158
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.45. CPUPROFILES
Table 6.129. Methods summary
Name Summary
159
Red Hat Virtualization 4.3 REST API Guide
6.45.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.45.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.46. DATACENTER
A service to manage a data center.
Name Summary
GET /ovirt-engine/api/datacenters/123
160
CHAPTER 6. SERVICES
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.
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.
161
Red Hat Virtualization 4.3 REST API Guide
6.46.2.1. force
Indicates if the operation should succeed, and the storage domain removed from the database, even if
something fails during the operation.
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.47. DATACENTERNETWORK
A service to manage a specific data center network.
162
CHAPTER 6. SERVICES
Name Summary
6.47.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.48. DATACENTERNETWORKS
A service to manage data center networks.
Name Summary
163
Red Hat Virtualization 4.3 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.48.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.48.2.2. max
Sets the maximum number of networks to return. If not specified, all the networks are returned.
164
CHAPTER 6. SERVICES
6.49. 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 \
--header "Version: 4" \
165
Red Hat Virtualization 4.3 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.
166
CHAPTER 6. SERVICES
6.49.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.49.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.49.2.3. max
Sets the maximum number of data centers to return. If not specified all the data centers are returned.
6.50. DISK
Manages a single disk.
Name Summary
refreshlun Refreshes a direct LUN disk with up-to-date information from the storage.
167
Red Hat Virtualization 4.3 REST API Guide
Name Summary
update This operation updates the disk with the appropriate parameters.
For example, copy of a disk can be facilitated using the following request:
POST /ovirt-engine/api/disks/123/copy
<action>
<storage_domain id="456"/>
<disk>
<name>mydisk</name>
</disk>
</action>
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>
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.
168
CHAPTER 6. SERVICES
storage_do StorageDom In The storage domain where the new disk will be
main ain created.
6.50.1.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.50.1.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.
6.50.1.3. storage_domain
The storage domain where the new disk will be created. Can be specified using the id or name
attributes. For example, to copy a disk to the storage domain named mydata send a request like this:
POST /ovirt-engine/api/storagedomains/123/disks/789
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
</action>
169
Red Hat Virtualization 4.3 REST API Guide
storage_do StorageDom In
main ain
6.50.3.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.50.3.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
170
CHAPTER 6. SERVICES
<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>
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
main ain
6.50.4.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.50.4.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.
171
Red Hat Virtualization 4.3 REST API Guide
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
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.
172
CHAPTER 6. SERVICES
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.
For example, update disk can be facilitated using the following request:
PUT /ovirt-engine/api/disks/123
<disk>
<qcow_version>qcow2_v3</qcow_version>
</disk>
Since the backend operation is asynchronous the disk element which will be returned to the user might
not be synced with the changed properties.
6.51. 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.
173
Red Hat Virtualization 4.3 REST API Guide
Name Summary
update Update the disk attachment and the disk properties within it.
GET /ovirt-engine/api/vms/123/diskattachments/456
6.51.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
174
CHAPTER 6. SERVICES
6.51.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}
<disk_attachment>
<bootable>true</bootable>
<interface>ide</interface>
<active>true</active>
<disk>
<name>mydisk</name>
<provisioned_size>1024</provisioned_size>
...
</disk>
</disk_attachment>
6.52. 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.
175
Red Hat Virtualization 4.3 REST API Guide
Adds a new disk attachment to the virtual machine. The attachment parameter can contain just a
reference, if the disk already exists:
<disk_attachment>
<bootable>true</bootable>
<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>
<disk>
<name>mydisk</name>
<provisioned_size>1024</provisioned_size>
...
</disk>
</disk_attachment>
In this case the disk will be created and then attached to the virtual machine.
In both cases, use the following URL for a virtual machine with an id 345:
POST /ovirt-engine/api/vms/345/diskattachments
IMPORTANT
The server accepts requests that don’t contain the active attribute, but the effect is
undefined. In some cases the disk will be automatically activated and in other cases it
won’t. To avoid issues it is strongly recommended to always include the active attribute
with the desired value.
attachment DiskAttachm In/Out The disk attachment to add to the virtual machine.
ent
176
CHAPTER 6. SERVICES
attachment DiskAttachm Out A list of disk attachments that are attached to the
s ent[] virtual machine.
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.
6.53. DISKPROFILE
Table 6.161. Methods summary
Name Summary
get
remove
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.
177
Red Hat Virtualization 4.3 REST API Guide
6.54. DISKPROFILES
Table 6.165. Methods summary
Name Summary
178
CHAPTER 6. SERVICES
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
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.55. DISKSNAPSHOT
Table 6.168. Methods summary
Name Summary
get
remove
6.55.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.56. DISKSNAPSHOTS
Manages the collection of disk snapshots available in an storage domain.
179
Red Hat Virtualization 4.3 REST API Guide
Name Summary
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.
6.56.1.2. max
Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
6.57. 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 Cinder disk.
180
CHAPTER 6. SERVICES
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) don’t
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, 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>
</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>
</logical_unit>
</logical_units>
</lun_storage>
</disk>
To create a new floating direct LUN disk without using a host, remove the host element.
181
Red Hat Virtualization 4.3 REST API Guide
POST /ovirt-engine/api/disks
<disk>
<openstack_volume_type>
<name>myceph</name>
</openstack_volume_type>
<storage_domains>
<storage_domain>
<name>cinderDomain</name>
</storage_domain>
</storage_domains>
<provisioned_size>1073741824</provisioned_size>
<interface>virtio</interface>
<format>raw</format>
</disk>
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>
182
CHAPTER 6. SERVICES
<name>mydisk</name>
<provisioned_size>1048576</provisioned_size>
<format>cow</format>
</disk>
GET /ovirt-engine/api/disks
You will get a XML response which will look like this one:
<disks>
<disk id="123">
<actions>...</actions>
<name>MyDisk</name>
<description>MyDisk description</description>
<link href="/ovirt-engine/api/disks/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/disks/123/statistics" rel="statistics"/>
<actual_size>5345845248</actual_size>
<alias>MyDisk alias</alias>
...
<status>ok</status>
<storage_type>image</storage_type>
<wipe_after_delete>false</wipe_after_delete>
<disk_profile id="123"/>
<quota id="123"/>
<storage_domains>...</storage_domains>
</disk>
...
</disks>
The order of the returned list of disks is guaranteed only if the sortby clause is included in the search
parameter.
183
Red Hat Virtualization 4.3 REST API Guide
6.57.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.57.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.57.2.3. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.58. DOMAIN
A service to view details of an authentication domain in the system.
Name Summary
Usage:
GET /ovirt-engine/api/domains/5678
184
CHAPTER 6. SERVICES
6.58.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.59. DOMAINGROUP
Table 6.178. Methods summary
Name Summary
get
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. DOMAINGROUPS
Table 6.180. Methods summary
Name Summary
185
Red Hat Virtualization 4.3 REST API Guide
6.60.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.60.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.60.1.3. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
6.61. DOMAINUSER
A service to view a domain user in the system.
Name Summary
186
CHAPTER 6. SERVICES
Usage:
GET /ovirt-engine/api/domains/5678/users/1234
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. 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.
187
Red Hat Virtualization 4.3 REST API Guide
groups Group[] Out The list of groups that the user is a member of.
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.63. DOMAINUSERS
A service to list all domain users in the system.
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>
188
CHAPTER 6. SERVICES
6.63.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.63.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.63.1.3. max
Sets the maximum number of users to return. If not specified all the users are returned.
6.64. DOMAINS
A service to list all authentication domains in the system.
Name Summary
Usage:
GET /ovirt-engine/api/domains
189
Red Hat Virtualization 4.3 REST API Guide
<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>
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.
6.64.1.2. max
Sets the maximum number of domains to return. If not specified all the domains are returned.
6.65. 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>
190
CHAPTER 6. SERVICES
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.65.1.2. max
Sets the maximum number of errata to return. If not specified all the errata are returned.
6.66. EVENT
A service to manage an event in the system.
Name Summary
191
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/events/123
Note that the number of fields changes according to the information that resides on the event. For
example, for storage domain related events you will get the storage domain reference, as well as the
reference for the data center this storage domain resides in.
6.66.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
192
CHAPTER 6. SERVICES
6.67. 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>
<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
193
Red Hat Virtualization 4.3 REST API Guide
NOTE
When using links, like the vm in the previous example, only the id attribute is accepted.
The name attribute, if provided, is simply ignored.
GET /ovirt-engine/api/events
<events>
<event href="/ovirt-engine/api/events/2" id="2">
<description>User admin@internal-authz logged out.</description>
<code>31</code>
<correlation_id>1e892ea9</correlation_id>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-09-14T12:14:34.541+02:00</time>
<user href="/ovirt-engine/api/users/57d91d48-00da-0137-0138-000000000244" id="57d91d48-
00da-0137-0138-000000000244"/>
</event>
<event href="/ovirt-engine/api/events/1" id="1">
<description>User admin logged in.</description>
<code>30</code>
<correlation_id>1fbd81f4</correlation_id>
<custom_id>-1</custom_id>
<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
194
CHAPTER 6. SERVICES
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.67.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.67.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.67.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.67.2.4. max
Sets the maximum number of events to return. If not specified all the events are returned.
195
Red Hat Virtualization 4.3 REST API Guide
6.67.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
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
196
CHAPTER 6. SERVICES
6.68. 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>
<url>https://hostname/api</url>
<user>admin@internal</user>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_compute_resource>
6.68.1.1. follow
197
Red Hat Virtualization 4.3 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.69. 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>
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123"/>
</external_compute_resource>
...
</external_compute_resources>
198
CHAPTER 6. SERVICES
6.69.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.1.2. max
Sets the maximum number of resources to return. If not specified all the resources are returned.
6.70. 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
<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>
199
Red Hat Virtualization 4.3 REST API Guide
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.71. 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>
<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"/>
200
CHAPTER 6. SERVICES
</external_discovered_host>
...
</external_discovered_hosts>
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 hosts to return. If not specified all the hosts are returned.
6.72. EXTERNALHOST
Table 6.207. Methods summary
Name Summary
get
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.
201
Red Hat Virtualization 4.3 REST API Guide
6.73. 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
6.73.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.74. EXTERNALHOSTGROUPS
This service manages hostgroups.
202
CHAPTER 6. SERVICES
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>
groups ExternalHost Out List of all hostgroups available for external host
Group[] provider
6.74.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.74.1.2. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
203
Red Hat Virtualization 4.3 REST API Guide
6.75. EXTERNALHOSTPROVIDER
Represents an external host provider, such as Foreman or Satellite.
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.
For example, to get the details of host provider 123, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123
204
CHAPTER 6. SERVICES
6.75.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
205
Red Hat Virtualization 4.3 REST API Guide
6.76. EXTERNALHOSTPROVIDERS
Table 6.219. Methods summary
Name Summary
206
CHAPTER 6. SERVICES
6.76.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.76.2.2. max
Sets the maximum number of providers to return. If not specified, all the providers are returned.
6.77. EXTERNALHOSTS
Table 6.222. Methods summary
Name Summary
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 hosts to return. If not specified all the hosts are returned.
207
Red Hat Virtualization 4.3 REST API Guide
6.78. 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.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. 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.
208
CHAPTER 6. SERVICES
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.80. 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
209
Red Hat Virtualization 4.3 REST API Guide
6.81. 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.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. EXTERNALPROVIDERCERTIFICATES
A service to view certificates for external provider.
210
CHAPTER 6. SERVICES
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.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 certificates to return. If not specified all the certificates are returned.
6.83. 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.
211
Red Hat Virtualization 4.3 REST API Guide
For example import of a virtual machine from VMware can be facilitated using the following request:
POST /externalvmimports
<external_vm_import>
<vm>
<name>my_vm</name>
</vm>
<cluster id="360014051136c20574f743bdbd28177fd" />
<storage_domain id="8bb5ade5-e988-4000-8b93-dbfc6717fe50" />
<name>vm_name_as_is_in_vmware</name>
<sparse>true</sparse>
<username>vmware_user</username>
<password>123456</password>
<provider>VMWARE</provider>
<url>vpx://wmware_user@vcenter-host/DataCenter/Cluster/esxi-host?no_verify=1</url>
<drivers_iso id="virtio-win-1.6.7.iso" />
</external_vm_import>
6.84. FENCEAGENT
A service to manage fence agent for a specific host.
Name Summary
212
CHAPTER 6. SERVICES
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>
6.84.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
213
Red Hat Virtualization 4.3 REST API Guide
6.85. FENCEAGENTS
A service to manage fence agents for a specific host.
Name Summary
list Returns the list of fencing agents configured for the host.
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>
214
CHAPTER 6. SERVICES
6.85.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.85.2.2. max
Sets the maximum number of agents to return. If not specified all the agents are returned.
6.86. FILE
Table 6.244. Methods summary
Name Summary
get
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. 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.
215
Red Hat Virtualization 4.3 REST API Guide
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
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.87.1.1. case_sensitive
216
CHAPTER 6. SERVICES
Indicates if the search performed using the search parameter should take case into account. The
default value is true.
6.87.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.87.1.3. max
Sets the maximum number of files to return. If not specified, all the files are returned.
6.88. FILTER
Table 6.248. Methods summary
Name Summary
get
remove
6.88.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.
217
Red Hat Virtualization 4.3 REST API Guide
6.89. FILTERS
Manages the filters used by an scheduling policy.
Name Summary
6.89.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.89.2.2. max
Sets the maximum number of filters to return. If not specified all the filters are returned.
218
CHAPTER 6. SERVICES
6.90. FOLLOW
6.91. GLUSTERBRICK
This service manages a single gluster brick.
Name Summary
Retrieves status details of brick from underlying gluster volume with header All-Content set to true.
This is the equivalent of running gluster volume status <volumename> <brickname> detail.
For example, to get the details of brick 234 of gluster volume 123, send a request like this:
GET /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks/234
<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>
219
Red Hat Virtualization 4.3 REST API Guide
<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>
6.91.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.
220
CHAPTER 6. SERVICES
force Boolean In
6.92. 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>
221
Red Hat Virtualization 4.3 REST API Guide
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
222
CHAPTER 6. SERVICES
<bricks>
<brick id="234">
<name>host1:/rhgs/data/brick1</name>
<brick_dir>/rhgs/data/brick1</brick_dir>
<server_id>111</server_id>
<status>up</status>
</brick>
<brick id="233">
<name>host2:/rhgs/data/brick1</name>
<brick_dir>/rhgs/data/brick1</brick_dir>
<server_id>222</server_id>
<status>up</status>
</brick>
</bricks>
The order of the returned list is based on the brick order provided at gluster volume creation.
6.92.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.92.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
223
Red Hat Virtualization 4.3 REST API Guide
<action>
<bricks>
<brick>
<name>host1:/rhgs/brick1</name>
</brick>
</bricks>
</action>
The migration process can be tracked from the job id returned from the API using job and steps in job
using step
The recommended way to remove bricks without data loss is to first migrate the data using stopmigrate
and then removing them. If migrate was not called on bricks prior to remove, the bricks are removed
without data migration which may lead to data loss.
For example, to delete the bricks from gluster volume 123, send a request like this:
DELETE /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks
<bricks>
<brick>
<name>host:brick_directory</name>
</brick>
</bricks>
224
CHAPTER 6. SERVICES
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.92.6.1. bricks
List of bricks for which data migration needs to be stopped. This list should match the arguments passed
to migrate.
6.93. GLUSTERHOOK
Table 6.265. Methods summary
Name Summary
disable Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all
servers of the cluster.
225
Red Hat Virtualization 4.3 REST API Guide
Name Summary
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.
6.93.3.1. follow
226
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.
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.94. GLUSTERHOOKS
Table 6.271. Methods summary
Name Summary
227
Red Hat Virtualization 4.3 REST API Guide
6.94.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.94.1.2. max
Sets the maximum number of hooks to return. If not specified all the hooks are returned.
6.95. GLUSTERVOLUME
This service manages a single gluster volume.
Name Summary
228
CHAPTER 6. SERVICES
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>
229
Red Hat Virtualization 4.3 REST API Guide
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.
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
230
CHAPTER 6. SERVICES
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.95.3.1. fix_layout
If set to true, rebalance will only fix the layout so that new data added to the volume is distributed across
all the hosts. But it will not migrate/rebalance the existing data. Default is false.
6.95.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
231
Red Hat Virtualization 4.3 REST API Guide
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
<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>
232
CHAPTER 6. SERVICES
A Gluster Volume should be started to read/write data. For example, to start a gluster volume with
identifier 123 in cluster 456, send a request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/start
6.95.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
233
Red Hat Virtualization 4.3 REST API Guide
force Boolean In
For example, to stop profiling a gluster volume with identifier 123 in cluster 456, send a request like this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/stopprofile
For example, to stop rebalancing a gluster volume with identifier 123 in cluster 456, send a request like
this:
POST /ovirt-engine/api/clusters/456/glustervolumes/123/stoprebalance
6.96. GLUSTERVOLUMES
This service manages a collection of gluster volumes available in a cluster.
Name Summary
234
CHAPTER 6. SERVICES
Name Summary
The volume is created based on properties of the volume parameter. The properties name,
volume_type and bricks are required.
For example, to add a volume with name myvolume to the cluster 123, send the following request:
POST /ovirt-engine/api/clusters/123/glustervolumes
<gluster_volume>
<name>myvolume</name>
<volume_type>replicate</volume_type>
<replica_count>3</replica_count>
<bricks>
<brick>
<server_id>server1</server_id>
<brick_dir>/exp1</brick_dir>
</brick>
<brick>
<server_id>server2</server_id>
<brick_dir>/exp1</brick_dir>
</brick>
<brick>
<server_id>server3</server_id>
<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:
235
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/clusters/456/glustervolumes
6.96.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.96.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.96.2.3. max
Sets the maximum number of volumes to return. If not specified all the volumes are returned.
6.97. 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
236
CHAPTER 6. SERVICES
Usage:
GET /ovirt-engine/api/groups/123
<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.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.
Usage:
DELETE /ovirt-engine/api/groups/123
237
Red Hat Virtualization 4.3 REST API Guide
6.98. GROUPS
Manages the collection of groups of users.
Name Summary
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"/>
238
CHAPTER 6. SERVICES
<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>
6.98.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.98.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.98.2.3. max
Sets the maximum number of groups to return. If not specified all the groups are returned.
6.99. HOST
A service to manage a host.
239
Red Hat Virtualization 4.3 REST API Guide
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
install Installs the latest version of VDSM and related software on the host.
iscsidiscover Discovers iSCSI targets on the host, using the initiator details.
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
240
CHAPTER 6. SERVICES
This action also accepts an optional cluster element to define the target cluster for this host.
cluster Cluster In The cluster where the host will be added after it is
approved.
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
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/>
241
Red Hat Virtualization 4.3 REST API Guide
reason String In
6.99.4.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.
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
242
CHAPTER 6. SERVICES
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<action>
<fence_type>start</fence_type>
</action>
'\
"${url}/hosts/123/fence"
fence_type String In
POST /ovirt-engine/api/hosts/123/forceselectspm
<action/>
GET /ovirt-engine/api/hosts/123
243
Red Hat Virtualization 4.3 REST API Guide
6.99.8.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.99.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.
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 \
--cacert /etc/pki/ovirt-engine/ca.pem \
244
CHAPTER 6. SERVICES
--request PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Version: 4" \
--user "admin@internal:..." \
--data '
{
"root_password": "myrootpassword"
}
'\
"https://engine.example.com/ovirt-engine/api/hosts/123"
Example of installing a host, using curl and JSON, with hosted engine components:
curl \
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--request PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Version: 4" \
--user "admin@internal:..." \
--data '
{
"root_password": "myrootpassword"
}
'\
"https://engine.example.com/ovirt-engine/api/hosts/123?deploy_hosted_engine=true"
IMPORTANT
Since version 4.1.2 of the engine when a host is reinstalled we override the host firewall
definitions by default.
deploy_ho Boolean In When set to true it means this host should also
sted_engin deploy the self-hosted engine components.
e
245
Red Hat Virtualization 4.3 REST API Guide
undeploy_ Boolean In When set to true it means this host should un-deploy
hosted_en the self-hosted engine components and this host will
gine not function as part of the High Availability cluster.
6.99.9.1. deploy_hosted_engine
When set to true it means this host should also deploy the self-hosted engine components. A missing
value is treated as true i.e deploy. Omitting this parameter means false and will perform no operation in
the self-hosted engine area.
6.99.9.2. undeploy_hosted_engine
When set to true it means this host should 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 perform no operation in the self-hosted engine area.
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>
<discovered_targets>
<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>
246
CHAPTER 6. SERVICES
6.99.10.1. iscsi_targets
Since version 4.2 of the engine, this parameter is deprecated, use discovered_targets instead.
247
Red Hat Virtualization 4.3 REST API Guide
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request DELETE \
--header "Version: 4" \
"${url}/hosts/1ff7a191-2f3b-4eff-812b-9f91a30c3acc"
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 \
--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>
248
CHAPTER 6. SERVICES
<option>
<name>miimon</name>
<value>100</value>
</option>
</options>
<slaves>
<host_nic>
<name>eth1</name>
</host_nic>
<host_nic>
<name>eth2</name>
</host_nic>
</slaves>
</bonding>
</host_nic>
</modified_bonds>
<modified_network_attachments>
<network_attachment>
<network>
<name>myvlan</name>
</network>
<host_nic>
<name>bond0</name>
</host_nic>
<ip_address_assignments>
<assignment_method>static</assignment_method>
<ip_address_assignment>
<ip>
<address>192.168.122.10</address>
<netmask>255.255.255.0</netmask>
</ip>
</ip_address_assignment>
</ip_address_assignments>
<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>
</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:
249
Red Hat Virtualization 4.3 REST API Guide
Using the Python SDK the same can be done 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',
),
],
),
),
],
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',
),
),
],
250
CHAPTER 6. SERVICES
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.
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
251
Red Hat Virtualization 4.3 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
252
CHAPTER 6. SERVICES
<host>
<os>
<custom_kernel_cmdline>vfio_iommu_type1.allow_unsafe_interrupts=1</custom_kernel_cmdline>
</os>
</host>
6.99.18.1. image
The image parameter specifies path to image, which is used for upgrade. This parameter is used only to
upgrade Vintage Node hosts and it is not relevant for other hosts types.
6.99.18.2. reboot
Indicates if the host should be rebooted after upgrade. By default the host is rebooted.
NOTE
This parameter is ignored for Red Hat Virtualization Host, which is always rebooted after
upgrade.
253
Red Hat Virtualization 4.3 REST API Guide
Check if there are upgrades available for the host. If there are upgrades available an icon will be
displayed next to host status icon in the Administration Portal. Audit log messages are also added to
indicate the availability of upgrades. The upgrade can be started from the webadmin or by using the
upgrade host action.
6.100. HOSTDEVICE
A service to access a particular device of a host.
Name Summary
GET /ovirt-engine/api/hosts/123/devices/456
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.
6.101. HOSTDEVICES
A service to access host devices.
254
CHAPTER 6. SERVICES
Name Summary
6.101.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.101.1.2. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
6.102. HOSTHOOK
Table 6.318. Methods summary
Name Summary
get
255
Red Hat Virtualization 4.3 REST API Guide
6.102.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. HOSTHOOKS
Table 6.320. Methods summary
Name Summary
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. HOSTNIC
A service to manage a network interface of a host.
Name Summary
get
256
CHAPTER 6. SERVICES
Name Summary
updatevirtualfu The action updates virtual function configuration in case the current resource
nctionsconfigur represents an SR-IOV enabled NIC.
ation
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.
allNetworksAllowed
numberOfVirtualFunctions
Please see the HostNicVirtualFunctionsConfiguration type for the meaning of the properties.
virtual_fun HostNicVirtu In
ctions_con alFunctionsC
figuration onfiguration
6.105. HOSTNICS
A service to manage the network interfaces of a host.
257
Red Hat Virtualization 4.3 REST API Guide
Name Summary
6.105.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.105.1.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.106. HOSTNUMANODE
Table 6.327. Methods summary
Name Summary
get
258
CHAPTER 6. SERVICES
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.
6.107. HOSTNUMANODES
Table 6.329. Methods summary
Name Summary
6.107.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.107.1.2. max
Sets the maximum number of nodes to return. If not specified all the nodes are returned.
6.108. HOSTSTORAGE
A service to manage host storages.
Name Summary
259
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/hosts/123/storage
<host_storages>
<host_storage id="123">
...
</host_storage>
...
</host_storages>
6.108.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.108.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.
<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>
260
CHAPTER 6. SERVICES
</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.109. 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.
POST /ovirt-engine/api/hosts
<host>
<name>myhost</name>
<address>myhost.example.com</address>
261
Red Hat Virtualization 4.3 REST API Guide
<root_password>myrootpassword</root_password>
</host>
NOTE
IMPORTANT
Since version 4.1.2 of the engine when a host is newly added we override the host firewall
definitions by default.
POST /ovirt-engine/api/hosts?deploy_hosted_engine=true
If the cluster has a default external network provider which 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 that differs to
what is defined in the clusters, overwrite the external network provider when adding hosts by sending a
request like this:
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>
deploy_ho Boolean In When set to true it means this host should deploy
sted_engin also hosted engine components.
e
host Host In/Out The host definition from which to create the new
host is passed as parameter, and the newly created
host is returned.
262
CHAPTER 6. SERVICES
undeploy_ Boolean In When set to true it means this host should un-deploy
hosted_en hosted engine components and this host will not
gine function as part of the High Availability cluster.
6.109.1.1. deploy_hosted_engine
When set to true it means this host should deploy also hosted engine components. Missing value is
treated as true i.e deploy. Omitting this parameter means false and will perform no operation in hosted
engine area.
6.109.1.2. undeploy_hosted_engine
When set to true it means this host should un-deploy hosted engine components and this host will not
function as part of the High Availability cluster. Missing value is treated as true i.e un-deploy. Omitting
this parameter means false and will perform no operation in hosted engine area.
GET /ovirt-engine/api/hosts
<hosts>
<host href="/ovirt-engine/api/hosts/123" id="123">
...
</host>
<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.
263
Red Hat Virtualization 4.3 REST API Guide
6.109.2.1. all_content
Indicates if all of the attributes of the hosts should be included in the response.
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.109.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.109.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.109.2.4. max
Sets the maximum number of hosts to return. If not specified all the hosts are returned.
264
CHAPTER 6. SERVICES
6.110. ICON
A service to manage an icon (read-only).
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.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. ICONS
A service to manage icons.
Name Summary
265
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/icons
<icons>
<icon id="123">
<data>...</data>
<media_type>image/png</media_type>
</icon>
...
</icons>
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.
6.111.1.2. max
Sets the maximum number of icons to return. If not specified all the icons are returned.
6.112. IMAGE
Table 6.340. Methods summary
Name Summary
get
266
CHAPTER 6. SERVICES
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.
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.
267
Red Hat Virtualization 4.3 REST API Guide
6.113. IMAGETRANSFER
This service provides a mechanism to control an image transfer. The client will have to create a transfer
by using add of the Section 6.114, “ImageTransfers” 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
268
CHAPTER 6. SERVICES
After adding a new transfer, its phase will be initializing. The client will have to poll on the transfer’s
phase until it changes. When the phase becomes transferring, the session is ready to start the transfer.
For example:
transfer_service = transfers_service.image_transfer_service(transfer.id)
while transfer.phase == types.ImageTransferPhase.INITIALIZING:
time.sleep(3)
transfer = transfer_service.get()
At that stage, if the transfer’s phase is paused_system, then the session was not successfully
established. One possible reason for that is that the ovirt-imageio-daemon is not running in the host
that was selected for transfer. The transfer can be resumed by calling resume of the service that
manages it.
If the session was successfully established - the returned transfer entity will contain the proxy_url and
signed_ticket attributes, which the client needs to use in order to transfer the required data. The client
can choose whatever technique and tool for sending the HTTPS request with the image’s data.
signed_ticket is the content that needs to be added to the Authentication header in the
HTTPS request, in order to perform a trusted communication.
transfer_headers = {
'Authorization' : transfer.signed_ticket,
}
# Extract the URI, port, and path from the transfer's proxy_url.
url = urlparse.urlparse(transfer.proxy_url)
For upload, the specific content range being sent must be noted in the Content-Range HTTPS header.
This can be used in order to split the transfer into several requests for a more flexible process.
For doing that, the client will have to repeatedly extend the transfer session to keep the channel open.
Otherwise, the session will terminate and the transfer will get into paused_system phase, and HTTPS
requests to the server will be rejected.
E.g., the client can iterate on chunks of the file, and send them to the proxy server while asking the
service to extend the session:
path = "/path/to/image"
MB_per_request = 32
269
Red Hat Virtualization 4.3 REST API Guide
Similarly, for a download transfer, a Range header must be sent, making the download process more
easily managed by downloading the disk in chunks.
E.g., the client will again iterate on chunks of the disk image, but this time he/she will download it to a
local file, rather than uploading its own file to the image:
output_file = "/home/user/downloaded_image"
MiB_per_request = 32
chunk_size = 1024*1024*MiB_per_request
total = disk_size
When finishing the transfer, the user should call finalize. This will make the final adjustments and
verifications for finishing the transfer process.
For example:
transfer_service.finalize()
In case of an error, the transfer’s phase will be changed to finished_failure, and the disk’s status will be
changed to Illegal. Otherwise it will be changed to finished_success, and the disk will be ready to be
used. In both cases, the transfer entity will be removed shortly after.
270
CHAPTER 6. SERVICES
'initial_size' must be bigger or the same as the size of the uploaded data.
POST /ovirt-engine/api/disks
<disk>
<storage_domains>
<storage_domain id="123"/>
</storage_domains>
<alias>mydisk</alias>
<initial_size>1073741824</initial_size>
<provisioned_size>1073741824</provisioned_size>
<format>raw</format>
</disk>
POST /ovirt-engine/api/imagetransfers
<image_transfer>
<disk id="456"/>
<direction>upload|download</direction>
</image_transfer>
Will respond:
<image_transfer id="123">
<direction>download|upload</direction>
<phase>initializing|transferring</phase>
<proxy_url>https://proxy_fqdn:54323/images/41c732d4-2210-4e7b-9e5c-4e2805baadbb</proxy_url>
<transfer_url>https://daemon_fqdn:54322/images/41c732d4-2210-4e7b-9e5c-
4e2805baadbb</transfer_url>
...
</image_transfer>
Note: If the phase is 'initializing', poll the image_transfer till its phase changes to 'transferring'.
use 'transfer_url' for transferring directly from/to ovirt-imageio-daemon, or, use 'proxy_url' for
transferring from/to ovirt-imageio-proxy. Note: using the proxy would mitigate scenarios where
there’s no direct connectivity to the daemon machine, e.g. vdsm machines are on a different
network than the engine.
— Download:
— Upload:
271
Red Hat Virtualization 4.3 REST API Guide
POST /ovirt-engine/api/imagetransfers/123/finalize
<action />
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.
272
CHAPTER 6. SERVICES
6.113.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.114. 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
273
Red Hat Virtualization 4.3 REST API Guide
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>
274
CHAPTER 6. SERVICES
image_tran ImageTransf Out A list of image transfers that are currently being
sfer er[] performed.
6.114.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.115. 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.115.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.115.1.2. max
Sets the maximum number of images to return. If not specified all the images are returned.
6.116. INSTANCETYPE
275
Red Hat Virtualization 4.3 REST API Guide
Name Summary
GET /ovirt-engine/api/instancetypes/123
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.
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.117. INSTANCETYPEGRAPHICSCONSOLE
Table 6.354. Methods summary
Name Summary
console GraphicsCon Out The information about the graphics console of the
sole instance type.
277
Red Hat Virtualization 4.3 REST API Guide
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.118. INSTANCETYPEGRAPHICSCONSOLES
Table 6.357. Methods summary
Name Summary
list Lists all the configured graphics consoles of the instance type.
278
CHAPTER 6. SERVICES
consoles GraphicsCon Out The list of graphics consoles of the instance type.
sole[]
6.118.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.118.2.2. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
6.119. INSTANCETYPENIC
Table 6.360. Methods summary
Name Summary
6.119.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.
279
Red Hat Virtualization 4.3 REST API Guide
6.120. INSTANCETYPENICS
Table 6.364. Methods summary
Name Summary
list Lists all the configured network interface of the instance type.
280
CHAPTER 6. SERVICES
6.120.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.120.2.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.121. INSTANCETYPEWATCHDOG
Table 6.367. Methods summary
Name Summary
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.
281
Red Hat Virtualization 4.3 REST API Guide
6.122. INSTANCETYPEWATCHDOGS
Table 6.371. Methods summary
Name Summary
282
CHAPTER 6. SERVICES
6.122.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.122.2.2. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
6.123. INSTANCETYPES
Table 6.374. 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>
283
Red Hat Virtualization 4.3 REST API Guide
<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>
284
CHAPTER 6. SERVICES
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
</instance_type>
6.123.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.123.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.123.2.3. max
Sets the maximum number of instance types to return. If not specified all the instance types are
285
Red Hat Virtualization 4.3 REST API Guide
Sets the maximum number of instance types to return. If not specified all the instance types are
returned.
6.124. ISCSIBOND
Table 6.377. Methods summary
Name Summary
get
6.124.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,
286
CHAPTER 6. SERVICES
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.125. ISCSIBONDS
Table 6.381. 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>
287
Red Hat Virtualization 4.3 REST API Guide
<network id="abc"/>
</networks>
</iscsi_bond>
6.125.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.2.2. max
Sets the maximum number of bonds to return. If not specified all the bonds are returned.
6.126. JOB
A service to manage a job.
Name Summary
288
CHAPTER 6. SERVICES
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.126.2.1. succeeded
289
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/jobs/123
6.126.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.127. JOBS
A service to manage jobs.
Name Summary
290
CHAPTER 6. SERVICES
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"/>
291
Red Hat Virtualization 4.3 REST API Guide
<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.127.2.1. case_sensitive
Indicates if the search performed using the search parameter should be performed taking case into
account. The default value is true, which means that case is taken into account. If you want to search
ignoring case set it to false.
6.127.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.127.2.3. max
Sets the maximum number of jobs to return. If not specified all the jobs are returned.
6.128. KATELLOERRATA
A service to manage Katello errata. The information is retrieved from Katello.
292
CHAPTER 6. SERVICES
Name Summary
GET /ovirt-engine/api/katelloerrata
<katello_errata>
<katello_erratum href="/ovirt-engine/api/katelloerrata/123" id="123">
<name>RHBA-2013:XYZ</name>
<description>The description of the erratum</description>
<title>some bug fix update</title>
<type>bugfix</type>
<issued>2013-11-20T02:00:00.000+02:00</issued>
<solution>Few guidelines regarding the solution</solution>
<summary>Updated packages that fix one bug are now available for XYZ</summary>
<packages>
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
...
</packages>
</katello_erratum>
...
</katello_errata>
6.128.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.1.2. max
293
Red Hat Virtualization 4.3 REST API Guide
Sets the maximum number of errata to return. If not specified all the errata are returned.
6.129. KATELLOERRATUM
A service to manage a Katello erratum.
Name Summary
GET /ovirt-engine/api/katelloerrata/123
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.
294
CHAPTER 6. SERVICES
6.130. LINKLAYERDISCOVERYPROTOCOL
A service to fetch information elements received by Link Layer Discovery Protocol (LLDP).
Name Summary
6.130.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.130.1.2. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
295
Red Hat Virtualization 4.3 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.131. MACPOOL
Table 6.397. Methods summary
Name Summary
get
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.
For example, to remove the MAC address pool having id 123 send a request like this:
DELETE /ovirt-engine/api/macpools/123
296
CHAPTER 6. SERVICES
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.132. MACPOOLS
Table 6.401. 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:
297
Red Hat Virtualization 4.3 REST API Guide
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.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 pools to return. If not specified all the pools are returned.
6.133. MEASURABLE
298
CHAPTER 6. SERVICES
6.134. MOVEABLE
Table 6.404. Methods summary
Name Summary
move
6.135. 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:
299
Red Hat Virtualization 4.3 REST API Guide
<usages>
<usage>vm</usage>
</usages>
<data_center href="/ovirt-engine/api/datacenters/456" id="456"/>
</network>
6.135.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.
300
CHAPTER 6. SERVICES
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>
6.136. NETWORKATTACHMENT
Table 6.410. Methods summary
Name Summary
get
remove
301
Red Hat Virtualization 4.3 REST API Guide
6.136.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.137. NETWORKATTACHMENTS
Manages the set of network attachments of a host or host NIC.
Name Summary
list Returns the list of network attachments of the host or host NIC.
302
CHAPTER 6. SERVICES
6.137.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.137.2.2. max
Sets the maximum number of attachments to return. If not specified all the attachments are returned.
6.138. NETWORKFILTER
Manages a 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>
303
Red Hat Virtualization 4.3 REST API Guide
Please note that version is referring to the minimal support version for the specific filter.
Name Summary
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.139. NETWORKFILTERS
Represents a readonly network filters sub-collection.
The network filter enables to filter packets send to/from the VM’s nic according to defined rules. For
more information please refer to NetworkFilter service documentation
Network filters are supported in different versions, starting from version 3.0.
A network can be assigned to several different clusters. In the future, each network will be defined in
cluster level.
Currently, each network is being defined at data center level. Potential network filters for each network
are determined by the network’s data center compatibility version V. V must be >= the network filter
version in order to configure this network filter for a specific network. Please note, that if a network is
assigned to cluster with a version supporting a network filter, the filter may not be available due to the
data center version being smaller then the network filter’s version.
Example of listing all of the supported network filters for a specific cluster:
GET http://localhost:8080/ovirt-engine/api/clusters/{cluster:id}/networkfilters
304
CHAPTER 6. SERVICES
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
305
Red Hat Virtualization 4.3 REST API Guide
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.
6.140. NETWORKLABEL
Table 6.421. Methods summary
Name Summary
get
6.140.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/labels/exemplary
6.141. NETWORKLABELS
306
CHAPTER 6. SERVICES
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/labels
<label id="mylabel"/>
307
Red Hat Virtualization 4.3 REST API Guide
6.141.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.141.2.2. max
Sets the maximum number of labels to return. If not specified all the labels are returned.
6.142. 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>
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
308
CHAPTER 6. SERVICES
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"/>
</network>
...
</networks>
The order of the returned list of networks is guaranteed only if the sortby clause is included in the
search parameter.
309
Red Hat Virtualization 4.3 REST API Guide
6.142.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.142.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.142.2.3. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.143. NICNETWORKFILTERPARAMETER
This service manages a parameter for a network filter.
Name Summary
310
CHAPTER 6. SERVICES
6.143.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>
parameter NetworkFilte In/Out The network filter parameter that is being updated.
rParameter
6.144. NICNETWORKFILTERPARAMETERS
This service manages a collection of parameters for network filters.
311
Red Hat Virtualization 4.3 REST API Guide
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
6.144.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.
312
CHAPTER 6. SERVICES
6.145. OPENSTACKIMAGE
Table 6.436. Methods summary
Name Summary
get
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 import the image with identifier 456 from the storage domain with identifier 123 send a
request like this:
POST /ovirt-engine/api/openstackimageproviders/123/images/456/import
<action>
<storage_domain>
<name>images0</name>
</storage_domain>
<cluster>
<name>images0</name>
</cluster>
</action>
313
Red Hat Virtualization 4.3 REST API Guide
disk Disk In
storage_do StorageDom In
main ain
template Template In
6.146. OPENSTACKIMAGEPROVIDER
Table 6.439. 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.
314
CHAPTER 6. SERVICES
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.
certificates Certificate[] In
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
315
Red Hat Virtualization 4.3 REST API Guide
6.147. OPENSTACKIMAGEPROVIDERS
Table 6.445. Methods summary
Name Summary
316
CHAPTER 6. SERVICES
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 providers to return. If not specified, all the providers are returned.
6.148. OPENSTACKIMAGES
Table 6.448. Methods summary
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.
317
Red Hat Virtualization 4.3 REST API Guide
6.148.1.2. max
Sets the maximum number of images to return. If not specified all the images are returned.
6.149. OPENSTACKNETWORK
Table 6.450. Methods summary
Name Summary
get
import This operation imports an external network into Red Hat Virtualization.
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.149.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
318
CHAPTER 6. SERVICES
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.150. 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.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.
319
Red Hat Virtualization 4.3 REST API Guide
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>
320
CHAPTER 6. SERVICES
<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.151. OPENSTACKNETWORKPROVIDERS
This service manages OpenStack network providers.
Name Summary
321
Red Hat Virtualization 4.3 REST API Guide
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 providers to return. If not specified, all the providers are returned.
6.152. OPENSTACKNETWORKS
Table 6.462. Methods summary
Name Summary
6.152.1.1. follow
322
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.152.1.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.153. OPENSTACKSUBNET
Table 6.464. Methods summary
Name Summary
get
remove
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.
6.154. OPENSTACKSUBNETS
Table 6.467. Methods summary
323
Red Hat Virtualization 4.3 REST API Guide
Name Summary
add
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.154.2.2. max
Sets the maximum number of sub-networks to return. If not specified all the sub-networks are returned.
6.155. OPENSTACKVOLUMEAUTHENTICATIONKEY
Table 6.470. Methods summary
324
CHAPTER 6. SERVICES
Name Summary
get
remove
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.
6.156. OPENSTACKVOLUMEAUTHENTICATIONKEYS
325
Red Hat Virtualization 4.3 REST API Guide
Name Summary
6.156.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.156.2.2. max
Sets the maximum number of keys to return. If not specified all the keys are returned.
6.157. OPENSTACKVOLUMEPROVIDER
326
CHAPTER 6. SERVICES
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.157.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
327
Red Hat Virtualization 4.3 REST API Guide
6.157.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.158. OPENSTACKVOLUMEPROVIDERS
Table 6.483. Methods summary
328
CHAPTER 6. SERVICES
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>
329
Red Hat Virtualization 4.3 REST API Guide
6.158.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.158.2.2. max
Sets the maximum number of providers to return. If not specified, all the providers are returned.
6.159. OPENSTACKVOLUMETYPE
Table 6.486. Methods summary
Name Summary
get
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.160. OPENSTACKVOLUMETYPES
Table 6.488. Methods summary
330
CHAPTER 6. SERVICES
Name Summary
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.
6.160.1.2. max
Sets the maximum number of volume types to return. If not specified all the volume types are returned.
6.161. OPERATINGSYSTEM
Table 6.490. Methods summary
Name Summary
get
331
Red Hat Virtualization 4.3 REST API Guide
6.161.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.162. 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.162.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.162.1.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.163. PERMISSION
Table 6.494. Methods summary
332
CHAPTER 6. SERVICES
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. 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:
333
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/roles/123/permits/456
6.164.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.165. PERMITS
Represents a permits sub-collection of the specific role.
Name Summary
334
CHAPTER 6. SERVICES
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>
335
Red Hat Virtualization 4.3 REST API Guide
6.165.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.165.2.2. max
Sets the maximum number of permits to return. If not specified all the permits are returned.
6.166. QOS
Table 6.503. Methods summary
Name Summary
GET /ovirt-engine/api/datacenters/123/qoss/123
336
CHAPTER 6. SERVICES
6.166.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
337
Red Hat Virtualization 4.3 REST API Guide
6.167. 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
338
CHAPTER 6. SERVICES
<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.167.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.167.2.2. max
Sets the maximum number of QoS descriptors to return. If not specified all the descriptors are returned.
6.168. QUOTA
Table 6.510. Methods summary
Name Summary
GET /ovirt-engine/api/datacenters/123/quotas/456
<quota id="456">
<name>myquota</name>
339
Red Hat Virtualization 4.3 REST API Guide
6.168.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>
340
CHAPTER 6. SERVICES
<storage_hard_limit_pct>20</storage_hard_limit_pct>
<storage_soft_limit_pct>80</storage_soft_limit_pct>
</quota>
6.169. QUOTACLUSTERLIMIT
Table 6.514. Methods summary
Name Summary
get
remove
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.
341
Red Hat Virtualization 4.3 REST API Guide
6.170. 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.170.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.170.2.2. max
Sets the maximum number of limits to return. If not specified all the limits are returned.
342
CHAPTER 6. SERVICES
6.171. QUOTASTORAGELIMIT
Table 6.520. Methods summary
Name Summary
get
remove
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. QUOTASTORAGELIMITS
Manages the set of storage limits configured for a quota.
Name Summary
list Returns the list of storage limits configured for the quota.
343
Red Hat Virtualization 4.3 REST API Guide
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.172.2.1. follow
344
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.172.2.2. max
Sets the maximum number of limits to return. If not specified, all the limits are returned.
6.173. 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>
345
Red Hat Virtualization 4.3 REST API Guide
6.173.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.173.2.2. max
Sets the maximum number of quota descriptors to return. If not specified all the descriptors are
returned.
6.174. ROLE
Table 6.529. 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>
346
CHAPTER 6. SERVICES
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.
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>
347
Red Hat Virtualization 4.3 REST API Guide
6.175. 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>
348
CHAPTER 6. SERVICES
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.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 roles to return. If not specified all the roles are returned.
6.176. SCHEDULINGPOLICIES
Manages the set of scheduling policies available in the system.
Name Summary
349
Red Hat Virtualization 4.3 REST API Guide
6.176.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.176.2.2. max
Sets the maximum number of policies to return. If not specified all the policies are returned.
6.177. SCHEDULINGPOLICY
Table 6.539. Methods summary
Name Summary
get
remove
update Update the specified user defined scheduling policy in the system.
350
CHAPTER 6. SERVICES
6.177.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.178. SCHEDULINGPOLICYUNIT
Table 6.543. Methods summary
351
Red Hat Virtualization 4.3 REST API Guide
Name Summary
get
remove
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.
6.179. 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.
352
CHAPTER 6. SERVICES
The order of the returned list of scheduling policy units isn’t guaranteed.
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.
6.179.1.2. max
Sets the maximum number of policy units to return. If not specified all the policy units are returned.
6.180. SNAPSHOT
Table 6.548. Methods summary
Name Summary
get
remove
6.180.1.1. follow
353
Red Hat Virtualization 4.3 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.180.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/>
restore_me Boolean In
mory
354
CHAPTER 6. SERVICES
6.180.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.181. SNAPSHOTCDROM
Table 6.552. Methods summary
Name Summary
get
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. SNAPSHOTCDROMS
Manages the set of CD-ROM devices of a virtual machine snapshot.
355
Red Hat Virtualization 4.3 REST API Guide
Name Summary
6.182.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.1.2. max
Sets the maximum number of CDROMS to return. If not specified all the CDROMS are returned.
6.183. SNAPSHOTDISK
Table 6.556. Methods summary
Name Summary
get
356
CHAPTER 6. SERVICES
6.183.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.184. SNAPSHOTDISKS
Manages the set of disks of an snapshot.
Name Summary
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.
6.184.1.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.185. SNAPSHOTNIC
Table 6.560. Methods summary
Name Summary
get
357
Red Hat Virtualization 4.3 REST API Guide
6.185.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.186. SNAPSHOTNICS
Manages the set of NICs of an snapshot.
Name Summary
6.186.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.186.1.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.187. SNAPSHOTS
358
CHAPTER 6. SERVICES
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>
</disk_attachment>
</disk_attachments>
</snapshot>
IMPORTANT
359
Red Hat Virtualization 4.3 REST API Guide
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.187.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:
GET /ovirt-engine/api/vms/123/snapshots?all_content=true
6.187.2.2. follow
360
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.187.2.3. max
Sets the maximum number of snapshots to return. If not specified all the snapshots are returned.
6.188. SSHPUBLICKEY
Table 6.567. Methods summary
Name Summary
get
remove
update
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.
361
Red Hat Virtualization 4.3 REST API Guide
6.189. SSHPUBLICKEYS
Table 6.571. 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
<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": [
{
362
CHAPTER 6. SERVICES
6.189.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.189.2.2. max
Sets the maximum number of keys to return. If not specified all the keys are returned.
6.190. STATISTIC
Table 6.574. Methods summary
Name Summary
get
363
Red Hat Virtualization 4.3 REST API Guide
6.190.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.191. STATISTICS
Table 6.576. 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>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</statistic>
...
</statistics>
Just a single part of the statistics can be retrieved by specifying its id at the end of the URI. That means:
GET /ovirt-engine/api/vms/123/statistics/456
Outputs:
364
CHAPTER 6. SERVICES
<values>
<value>
<datum>1073741824</datum>
</value>
</values>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</statistic>
6.191.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.191.1.2. max
Sets the maximum number of statistics to return. If not specified all the statistics are returned.
6.192. STEP
A service to manage a step.
Name Summary
For example, to terminate a step with identifier 456 which belongs to a job with identifier 123 send the
following request:
POST /ovirt-engine/api/jobs/123/steps/456/end
365
Red Hat Virtualization 4.3 REST API Guide
<action>
<force>true</force>
<succeeded>true</succeeded>
</action>
6.192.1.1. succeeded
GET /ovirt-engine/api/jobs/123/steps/456
366
CHAPTER 6. SERVICES
6.192.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.193. 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>
<status>started</status>
<type>validating</type>
</step>
367
Red Hat Virtualization 4.3 REST API Guide
<type>validating</type>
<job href="/ovirt-engine/api/jobs/123" id="123"/>
</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>
6.193.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.
368
CHAPTER 6. SERVICES
6.193.2.2. max
Sets the maximum number of steps to return. If not specified all the steps are returned.
6.194. STORAGE
Table 6.584. Methods summary
Name Summary
get
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. report_status
Indicates if the status of the LUNs in the storage should be checked. Checking the status of the LUN is
an heavy weight operation and this data is not always needed by the user. This parameter will give the
option to not perform the status check of the LUNs.
<host_storage id="360014051136c20574f743bdbd28177fd">
<logical_units>
<logical_unit id="360014051136c20574f743bdbd28177fd">
<lun_mapping>0</lun_mapping>
<paths>1</paths>
<product_id>lun0</product_id>
<serial>SLIO-ORG_lun0_1136c205-74f7-43bd-bd28-177fd5ce6993</serial>
<size>10737418240</size>
<status>used</status>
<vendor_id>LIO-ORG</vendor_id>
<volume_group_id>O9Du7I-RahN-ECe1-dZ1w-nh0b-64io-MNzIBZ</volume_group_id>
369
Red Hat Virtualization 4.3 REST API Guide
</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.195. STORAGEDOMAIN
Table 6.586. 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.
reduceluns This operation reduces logical units from the storage domain.
updateovfstore This operation forces the update of the OVF_STORE of this storage domain.
370
CHAPTER 6. SERVICES
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.
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"/>
371
Red Hat Virtualization 4.3 REST API Guide
<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
<<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
<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
372
CHAPTER 6. SERVICES
Without any special parameters, the storage domain is detached from the system and removed from the
database. The storage domain can then be imported to the same or 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.
6.195.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.195.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:
373
Red Hat Virtualization 4.3 REST API Guide
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>
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.
374
CHAPTER 6. SERVICES
6.196. STORAGEDOMAINCONTENTDISK
Table 6.594. Methods summary
Name Summary
get
6.196.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.197. 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.
375
Red Hat Virtualization 4.3 REST API Guide
6.197.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.197.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.197.1.3. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.198. 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 an specific disk .
Name Summary
376
CHAPTER 6. SERVICES
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.
377
Red Hat Virtualization 4.3 REST API Guide
storage_do StorageDom In The export storage domain where the disk should be
main ain exported to.
6.198.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
378
CHAPTER 6. SERVICES
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.
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.199. STORAGEDOMAINDISKS
379
Red Hat Virtualization 4.3 REST API Guide
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.199.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
380
CHAPTER 6. SERVICES
<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.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 disks to return. If not specified, all the disks are returned.
6.199.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.200. STORAGEDOMAINSERVERCONNECTION
381
Red Hat Virtualization 4.3 REST API Guide
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. 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.
382
CHAPTER 6. SERVICES
6.201.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.201.2.2. max
Sets the maximum number of connections to return. If not specified all the connections are returned.
6.202. STORAGEDOMAINTEMPLATE
Table 6.614. 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
383
Red Hat Virtualization 4.3 REST API Guide
6.202.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>
<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
384
CHAPTER 6. SERVICES
storage_do StorageDom In
main ain
template Template In
vm Vm In
6.202.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.
clone Boolean In
cluster Cluster In
exclusive Boolean In
template Template In
6.202.3.1. allow_partial_import
385
Red Hat Virtualization 4.3 REST API Guide
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.202.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.202.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.
6.203. STORAGEDOMAINTEMPLATES
Manages the set of templates available in a storage domain.
Name Summary
386
CHAPTER 6. SERVICES
6.203.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.203.1.2. max
Sets the maximum number of templates to return. If not specified all the templates are returned.
6.203.1.3. unregistered
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.204. STORAGEDOMAINVM
Table 6.621. Methods summary
Name Summary
get
register
387
Red Hat Virtualization 4.3 REST API Guide
vm Vm Out
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.
POST /ovirt-engine/api/storagedomains/123/vms/456/import
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
</action>
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
<clone>true</clone>
<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:
388
CHAPTER 6. SERVICES
<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
exclusive Boolean In
storage_do StorageDom In
main ain
vm Vm In
6.204.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.204.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.
389
Red Hat Virtualization 4.3 REST API Guide
This parameter is optional, and if it isn’t explicitly specified the default value is false.
clone Boolean In
cluster Cluster In
vm Vm In
6.204.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.204.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.
390
CHAPTER 6. SERVICES
6.204.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.204.3.4. 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.
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.205. 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.
391
Red Hat Virtualization 4.3 REST API Guide
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.
6.206. 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.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. 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:
392
CHAPTER 6. SERVICES
GET /ovirt-engine/api/storagedomains/123/vms
<vms>
<vm id="456" href="/api/storagedomains/123/vms/456">
<name>vm1</name>
...
<storage_domain id="123" href="/api/storagedomains/123"/>
<actions>
<link rel="import" href="/api/storagedomains/123/vms/456/import"/>
</actions>
</vm>
</vms>
Virtual machines and templates in these collections have a similar representation to their counterparts in
the top-level Vm and Template collections, except they also contain a StorageDomain reference and an
import action.
Name Summary
list Returns the list of virtual machines of the export storage domain.
vm Vm[] Out
6.207.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.
393
Red Hat Virtualization 4.3 REST API Guide
6.207.1.2. max
Sets the maximum number of virtual machines to return. If not specified all the virtual machines are
returned.
6.207.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
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.208. 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>
394
CHAPTER 6. SERVICES
<path>/exports/mydata</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
To create a new NFS ISO storage domain send a request like this:
<storage_domain>
<name>myisos</name>
<type>iso</type>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/export/myisos</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
<storage_domain>
<name>myiscsi</name>
<type>data</type>
<storage>
<type>iscsi</type>
<logical_units>
<logical_unit id="3600144f09dbd050000004eedbd340001"/>
<logical_unit id="3600144f09dbd050000004eedbd340002"/>
</logical_units>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
The order of the returned list of storage domains is guaranteed only if the sortby clause is included in
the search parameter.
395
Red Hat Virtualization 4.3 REST API Guide
6.208.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.208.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.208.2.3. max
Sets the maximum number of storage domains to return. If not specified, all the storage domains are
returned.
6.209. STORAGESERVERCONNECTION
Table 6.635. Methods summary
Name Summary
get
396
CHAPTER 6. SERVICES
6.209.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.209.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
397
Red Hat Virtualization 4.3 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.209.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.210. STORAGESERVERCONNECTIONEXTENSION
Table 6.639. Methods summary
Name Summary
get
remove
update Update a storage server connection extension for the given host.
398
CHAPTER 6. SERVICES
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.
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>
399
Red Hat Virtualization 4.3 REST API Guide
6.211. STORAGESERVERCONNECTIONEXTENSIONS
Table 6.643. 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>
400
CHAPTER 6. SERVICES
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.
6.211.2.2. max
Sets the maximum number of extensions to return. If not specified all the extensions are returned.
6.212. STORAGESERVERCONNECTIONS
Table 6.646. 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>
401
Red Hat Virtualization 4.3 REST API Guide
6.212.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.212.2.2. max
Sets the maximum number of connections to return. If not specified all the connections are returned.
6.213. SYSTEM
Table 6.649. 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
402
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>
403
Red Hat Virtualization 4.3 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.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.214. SYSTEMOPTION
A service that provides values of specific configuration option of the system.
Name Summary
404
CHAPTER 6. SERVICES
For example to retrieve the values of configuration option MigrationPoliciesSupported send a request
like this:
GET /ovirt-engine/api/options/MigrationPoliciesSupported
<system_option href="/ovirt-engine/api/options/MigrationPoliciesSupported"
id="MigrationPoliciesSupported">
<name>MigrationPoliciesSupported</name>
<values>
<system_option_value>
<value>true</value>
<version>4.0</version>
</system_option_value>
<system_option_value>
<value>true</value>
<version>4.1</version>
</system_option_value>
<system_option_value>
<value>true</value>
<version>4.2</version>
</system_option_value>
<system_option_value>
<value>false</value>
<version>3.6</version>
</system_option_value>
</values>
</system_option>
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.
405
Red Hat Virtualization 4.3 REST API Guide
6.214.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 MigrationPoliciesSupported option but only for version 4.2 send a
request like this:
GET /ovirt-engine/api/options/MigrationPoliciesSupported?version=4.2
<system_option href="/ovirt-engine/api/options/MigrationPoliciesSupported"
id="MigrationPoliciesSupported">
<name>MigrationPoliciesSupported</name>
<values>
<system_option_value>
<value>true</value>
<version>4.2</version>
</system_option_value>
</values>
</system_option>
6.215. SYSTEMOPTIONS
Service that provides values of configuration options of the system.
6.216. 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
406
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>
407
Red Hat Virtualization 4.3 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.216.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.217. TAG
A service to manage a specific tag in the system.
Name Summary
408
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.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.
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
409
Red Hat Virtualization 4.3 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.218. 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
410
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:
411
Red Hat Virtualization 4.3 REST API Guide
6.218.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.218.2.2. max
Sets the maximum number of tags to return. If not specified all the tags are returned.
6.219. 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>
412
CHAPTER 6. SERVICES
6.219.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.219.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/templates/123
413
Red Hat Virtualization 4.3 REST API Guide
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>
6.220. 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:
414
CHAPTER 6. SERVICES
GET /ovirt-engine/api/templates/123/cdroms/
6.220.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.220.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.221. TEMPLATECDROMS
Lists the CD-ROM devices of a template.
Name Summary
415
Red Hat Virtualization 4.3 REST API Guide
6.221.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.221.1.2. max
Sets the maximum number of CD-ROMs to return. If not specified all the CD-ROMs are returned.
6.222. TEMPLATEDISK
Table 6.673. Methods summary
Name Summary
copy Copy the specified disk attached to the template to a specific storage domain.
export
get
remove
416
CHAPTER 6. SERVICES
storage_do StorageDom In
main ain
storage_do StorageDom In
main ain
6.222.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.223. TEMPLATEDISKATTACHMENT
This service manages the attachment of a disk to a template.
417
Red Hat Virtualization 4.3 REST API Guide
Name 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.
A storage domain has to be specified to determine which of the copies should be removed (template
disks can have copies on multiple storage domains).
DELETE /ovirt-engine/api/templates/{template:id}/diskattachments/{attachment:id}?
storage_domain=072fbaa1-08f3-4a40-9f34-a5ca22dd1d74
force Boolean In
6.224. TEMPLATEDISKATTACHMENTS
This service manages the set of disks attached to a template. Each attached disk is represented by a
418
CHAPTER 6. SERVICES
This service manages the set of disks attached to a template. Each attached disk is represented by a
DiskAttachment.
Name Summary
6.224.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.225. TEMPLATEDISKS
Table 6.683. Methods summary
Name Summary
419
Red Hat Virtualization 4.3 REST API Guide
6.225.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.225.1.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
6.226. TEMPLATEGRAPHICSCONSOLE
Table 6.685. Methods summary
Name Summary
console GraphicsCon Out The information about the graphics console of the
sole template.
6.226.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.
420
CHAPTER 6. SERVICES
6.227. TEMPLATEGRAPHICSCONSOLES
Table 6.688. Methods summary
Name Summary
6.227.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.
421
Red Hat Virtualization 4.3 REST API Guide
6.227.2.2. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
6.228. TEMPLATENIC
Table 6.691. Methods summary
Name Summary
get
remove
update Update the specified network interface card attached to the template.
6.228.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.
422
CHAPTER 6. SERVICES
6.229. TEMPLATENICS
Table 6.695. Methods summary
Name Summary
6.229.2.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
423
Red Hat Virtualization 4.3 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.229.2.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.230. TEMPLATEWATCHDOG
Table 6.698. Methods summary
Name Summary
get
remove
update Update the watchdog for the template identified by the given id.
6.230.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.
424
CHAPTER 6. SERVICES
6.231. TEMPLATEWATCHDOGS
Table 6.702. Methods summary
Name Summary
6.231.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.
425
Red Hat Virtualization 4.3 REST API Guide
6.231.2.2. max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
6.232. 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>
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
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>
426
CHAPTER 6. SERVICES
</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.
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>
427
Red Hat Virtualization 4.3 REST API Guide
</disk_attachment>
</disk_attachments>
</vm>
</template>
6.232.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>
6.232.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.
428
CHAPTER 6. SERVICES
For example:
GET /ovirt-engine/api/templates
Will return the list of virtual machines and virtual machine templates.
6.232.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.232.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.232.2.3. max
Sets the maximum number of templates to return. If not specified, all the templates are returned.
6.233. UNMANAGEDNETWORK
Table 6.708. Methods summary
Name Summary
get
429
Red Hat Virtualization 4.3 REST API Guide
Name Summary
remove
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.
6.234. UNMANAGEDNETWORKS
Table 6.711. Methods summary
Name Summary
430
CHAPTER 6. SERVICES
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.234.1.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.235. USER
A service to manage a user in the system. Use this service to either get users details or remove users. In
order to add new users please use Section 6.236, “Users”.
Name Summary
Usage:
GET /ovirt-engine/api/users/1234
431
Red Hat Virtualization 4.3 REST API Guide
<last_name>Lastname</last_name>
<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>
</domain>
</user>
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.
Usage:
DELETE /ovirt-engine/api/users/1234
6.236. USERS
A service to manage the users in the system.
Name Summary
432
CHAPTER 6. SERVICES
For example, to add the myuser user from the myextension-authz authorization provider send a
request like this:
POST /ovirt-engine/api/users
<user>
<user_name>myuser@myextension-authz</user_name>
<domain>
<name>myextension-authz</name>
</domain>
</user>
In case you are working with Active Directory you have to pass user principal name (UPN) as username,
followed by authorization provider name. Due to bug 1147900 you need to provide also principal
parameter set to UPN of the user.
For example, to add the user with UPN myuser@mysubdomain.mydomain.com from the
myextension-authz authorization provider send a request body like this:
<user>
<principal>myuser@mysubdomain.mydomain.com</principal>
<user_name>myuser@mysubdomain.mydomain.com@myextension-authz</user_name>
<domain>
<name>myextension-authz</name>
</domain>
</user>
Usage:
GET /ovirt-engine/api/users
<users>
<user href="/ovirt-engine/api/users/1234" id="1234">
<name>admin</name>
<link href="/ovirt-engine/api/users/1234/sshpublickeys" rel="sshpublickeys"/>
433
Red Hat Virtualization 4.3 REST API Guide
6.236.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.236.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.236.2.3. max
Sets the maximum number of users to return. If not specified all the users are returned.
6.237. VIRTUALFUNCTIONALLOWEDNETWORK
Table 6.719. Methods summary
434
CHAPTER 6. SERVICES
Name Summary
get
remove
6.237.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.238. VIRTUALFUNCTIONALLOWEDNETWORKS
Table 6.722. Methods summary
Name Summary
add
435
Red Hat Virtualization 4.3 REST API Guide
6.238.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.238.2.2. max
Sets the maximum number of networks to return. If not specified all the networks are returned.
6.239. VM
Table 6.725. 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
436
CHAPTER 6. SERVICES
Name Summary
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.
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.
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/>
437
Red Hat Virtualization 4.3 REST API Guide
vm Vm In
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/>
438
CHAPTER 6. SERVICES
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>
439
Red Hat Virtualization 4.3 REST API Guide
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/>
6.239.7.1. all_content
Indicates if all of the attributes of the virtual machine should be included in the response.
440
CHAPTER 6. SERVICES
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.239.7.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.239.7.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.
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
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
441
Red Hat Virtualization 4.3 REST API Guide
Request body:
<action/>
Example:
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>
442
CHAPTER 6. SERVICES
6.239.10.1. cluster
Specifies the cluster the virtual machine should migrate to. This is an optional parameter. By default, the
virtual machine is migrated to another host within the same cluster.
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.239.10.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.239.10.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.
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.
443
Red Hat Virtualization 4.3 REST API Guide
restore_me Boolean In
mory
snapshot Snapshot In
vm Vm In
6.239.11.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.239.11.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
444
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/>
DELETE /ovirt-engine/api/vms/123
6.239.13.1. force
Locked virtual machines and virtual machines with locked disk images cannot be removed without this
flag set to true.
445
Red Hat Virtualization 4.3 REST API Guide
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/>
If the virtual environment is complete and the virtual machine contains all necessary components to
function, it can be started.
POST /ovirt-engine/api/vms/123/start
<action/>
authorized AuthorizedK In
_key ey
446
CHAPTER 6. SERVICES
6.239.16.1. pause
If set to true, start the virtual machine in paused mode. The default is false.
6.239.16.2. use_cloud_init
If set to true, the initialization type is set to cloud-init. The default value is false. See this for details.
6.239.16.3. use_sysprep
If set to true, the initialization type is set to Sysprep. The default value is false. See this for details.
6.239.16.4. 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
447
Red Hat Virtualization 4.3 REST API Guide
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.239.16.5. 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/>
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/>
448
CHAPTER 6. SERVICES
This operation thaws a virtual machine’s file systems using the QEMU guest agent when taking a live
snapshot of a running virtual machine. Normally, this is done automatically by the manager, but this must
be executed manually with the API for virtual machines using OpenStack Volume (Cinder) disks.
Example:
POST /api/vms/123/thawfilesystems
<action/>
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
449
Red Hat Virtualization 4.3 REST API Guide
vm Vm In/Out
6.239.22.1. next_run
Indicates if the update should be applied to the virtual machine immediately or if it should be applied
only when the virtual machine is restarted. The default value is false, so by default changes are applied
immediately.
6.240. VMAPPLICATION
A service that provides information about an application installed in a virtual machine.
450
CHAPTER 6. SERVICES
Name Summary
6.240.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.240.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.241. VMAPPLICATIONS
A service that provides information about applications installed in a virtual machine.
451
Red Hat Virtualization 4.3 REST API Guide
Name Summary
6.241.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.241.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.
452
CHAPTER 6. SERVICES
6.241.1.3. max
Sets the maximum number of applications to return. If not specified all the applications are returned.
6.242. 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.242.1.1. current
453
Red Hat Virtualization 4.3 REST API Guide
Indicates if the operation should return the information for the currently running virtual machine. This
parameter is optional, and the default value is false.
6.242.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 don’t have any effect on the currently running virtual machine. If you want
to change the disk that is visible to the current running virtual machine, add the current=true
parameter. For example, to eject the current disk send a request like this:
PUT /ovirt-engine/api/vms/123/cdroms/00000000-0000-0000-0000-000000000000?current=true
<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.
454
CHAPTER 6. SERVICES
6.242.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.243. 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
455
Red Hat Virtualization 4.3 REST API Guide
cdroms Cdrom[] Out The list of CDROM devices of the virtual machine.
6.243.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.243.2.2. max
Sets the maximum number of CDROMs to return. If not specified all the CDROMs are returned.
6.244. VMDISK
Table 6.758. Methods summary
Name Summary
activate
deactivate
export
get
move
update
456
CHAPTER 6. SERVICES
6.244.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.
457
Red Hat Virtualization 4.3 REST API Guide
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.
458
CHAPTER 6. SERVICES
6.245. VMDISKS
Table 6.767. Methods summary
Name Summary
add
6.245.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.245.2.2. max
Sets the maximum number of disks to return. If not specified all the disks are returned.
459
Red Hat Virtualization 4.3 REST API Guide
6.246. VMGRAPHICSCONSOLE
Table 6.770. 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.
console GraphicsCon Out The information about the graphics console of the
sole virtual machine.
6.246.1.1. current
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the
current execution.
IMPORTANT
460
CHAPTER 6. SERVICES
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.246.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.
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
461
Red Hat Virtualization 4.3 REST API Guide
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)
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.246.3.1. remote_viewer_connection_file
462
CHAPTER 6. SERVICES
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>
ticket Ticket In/Out The generated ticket that can be used to access this
console.
6.247. VMGRAPHICSCONSOLES
Table 6.776. Methods summary
Name Summary
list Lists all the configured graphics consoles of the virtual machine.
463
Red Hat Virtualization 4.3 REST API Guide
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[]
6.247.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
464
CHAPTER 6. SERVICES
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.247.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.247.2.3. max
Sets the maximum number of consoles to return. If not specified all the consoles are returned.
6.248. 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.
Example:
GET /ovirt-engine/api/vms/123/hostdevices/456
465
Red Hat Virtualization 4.3 REST API Guide
</parent_device>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</host_device>
6.248.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
6.249. VMHOSTDEVICES
A service to manage host devices attached to a virtual machine.
Name Summary
466
CHAPTER 6. SERVICES
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.
467
Red Hat Virtualization 4.3 REST API Guide
6.249.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.249.2.2. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
6.250. VMNIC
Table 6.785. Methods summary
Name Summary
activate
deactivate
get
468
CHAPTER 6. SERVICES
6.250.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:
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
469
Red Hat Virtualization 4.3 REST API Guide
<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.251. VMNICS
Table 6.791. Methods summary
Name Summary
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>
470
CHAPTER 6. SERVICES
<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:
471
Red Hat Virtualization 4.3 REST API Guide
6.251.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.251.2.2. max
Sets the maximum number of NICs to return. If not specified all the NICs are returned.
6.252. VMNUMANODE
Table 6.794. Methods summary
Name Summary
get
6.252.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.
472
CHAPTER 6. SERVICES
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>
6.253. VMNUMANODES
Table 6.798. Methods summary
473
Red Hat Virtualization 4.3 REST API Guide
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>
</vm_numa_node>
474
CHAPTER 6. SERVICES
6.253.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.253.2.2. max
Sets the maximum number of nodes to return. If not specified all the nodes are returned.
6.254. 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/>
475
Red Hat Virtualization 4.3 REST API Guide
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.254.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/vmpools/123
476
CHAPTER 6. SERVICES
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.255. 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
477
Red Hat Virtualization 4.3 REST API Guide
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>
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.
478
CHAPTER 6. SERVICES
6.255.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.255.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.255.2.3. max
Sets the maximum number of pools to return. If this value is not specified, all of the pools are returned.
6.256. VMREPORTEDDEVICE
Table 6.809. Methods summary
Name Summary
get
6.256.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.257. VMREPORTEDDEVICES
Table 6.811. Methods summary
479
Red Hat Virtualization 4.3 REST API Guide
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.257.1.2. max
Sets the maximum number of devices to return. If not specified all the devices are returned.
6.258. VMSESSION
Table 6.813. Methods summary
Name Summary
get
480
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.259. 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>
6.259.1.1. follow
Indicates which inner links should be followed. The objects referenced by these links will be fetched as
481
Red Hat Virtualization 4.3 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.259.1.2. max
Sets the maximum number of sessions to return. If not specified all the sessions are returned.
6.260. VMWATCHDOG
A service managing a watchdog on virtual machines.
Name Summary
6.260.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.260.1.2. watchdog
The information consists of model element, action element and the reference to the virtual machine. It
may look like this:
<watchdogs>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-0000-000000000000"
id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>poweroff</action>
482
CHAPTER 6. SERVICES
<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>
483
Red Hat Virtualization 4.3 REST API Guide
6.260.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.261. 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>
6.261.1.1. watchdog
The request data must contain model element (such as i6300esb) and action element (one of none,
484
CHAPTER 6. SERVICES
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.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 watchdogs to return. If not specified all the watchdogs are returned.
6.261.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>
<model>i6300esb</model>
</watchdog>
</watchdogs>
6.262. VMS
Table 6.824. Methods summary
485
Red Hat Virtualization 4.3 REST API Guide
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
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
486
CHAPTER 6. SERVICES
--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>
<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:
487
Red Hat Virtualization 4.3 REST API Guide
<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.
vm Vm In/Out
6.262.1.1. clone
When a virtual machine is created from a template by default the disks of the virtual machine depend on
the disks of the template, they are using the copy on write mechanism so that only the differences from
the template take up real storage space. If this parameter is specified and the value is true then the
488
CHAPTER 6. SERVICES
disks of the created virtual machine will be cloned, and independent of the template. For example, to
create an independent virtual machine, send a request like this:
POST /ovirt-engine/vms?clone=true
<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.262.1.2. clone_permissions
Specifies if the permissions of the template should be copied to the virtual machine.
If this optional parameter is provided, and its values is true then the permissions of the template (only
the direct ones, not the inherited ones) will be copied to the created virtual machine. For example, to
create a virtual machine from the mytemplate template copying its permissions, send a request like this:
POST /ovirt-engine/api/vms?clone_permissions=true
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
</vm>
The order of the returned list of virtual machines is guaranteed only if the sortby clause is included in
the search parameter.
489
Red Hat Virtualization 4.3 REST API Guide
6.262.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.262.2.2. case_sensitive
490
CHAPTER 6. SERVICES
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.262.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.263. VNICPROFILE
This service manages a vNIC profile.
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.
491
Red Hat Virtualization 4.3 REST API Guide
6.264. 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.
492
CHAPTER 6. SERVICES
The output of creating a new VNIC profile depends in the body arguments that were given. In case no
network filter was given, the default network filter will be configured. For example:
In case an empty network filter was given, no network filter will be configured for the specific VNIC
profile regardless of the VNIC profile’s default network filter. For example:
<vnic_profile>
<name>no_network_filter</name>
<network_filter/>
</vnic_profile>
In case that a specific valid network filter id was given, the VNIC profile will be configured with the given
network filter regardless of the VNIC profiles’s default network filter. For example:
<vnic_profile>
<name>user_choice_network_filter</name>
<network_filter id= "0000001b-001b-001b-001b-0000000001d5"/>
</vnic_profile>
493
Red Hat Virtualization 4.3 REST API Guide
6.264.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.264.2.2. max
Sets the maximum number of profiles to return. If not specified all the profiles are returned.
6.265. WEIGHT
Table 6.834. Methods summary
Name Summary
get
remove
6.265.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.266. WEIGHTS
Table 6.837. Methods summary
494
CHAPTER 6. SERVICES
Name Summary
6.266.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.266.2.2. max
Sets the maximum number of weights to return. If not specified all the weights are returned.
495
Red Hat Virtualization 4.3 REST API Guide
CHAPTER 7. TYPES
This section enumerates all the data types that are available in the API.
Name Summary
allow_partial_im Boolean
port
async Boolean
attachment DiskAttachment
authorized_key AuthorizedKey
bricks GlusterBrick[]
certificates Certificate[]
check_connecti Boolean
vity
clone Boolean
clone_permissi Boolean
ons
cluster Cluster
496
CHAPTER 7. TYPES
collapse_snaps Boolean
hots
connection StorageConnectio
n
connectivity_ti Integer
meout
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
fault Fault
fence_type String
filename String
filter Boolean
fix_layout Boolean
497
Red Hat Virtualization 4.3 REST API Guide
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_e Boolean
nabled
modified_bonds HostNic[]
modified_labels NetworkLabel[]
modified_netwo NetworkAttachme
rk_attachments nt[]
option Option
pause Boolean
permission Permission
498
CHAPTER 7. TYPES
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[]
removed_netwo NetworkAttachme
rk_attachments nt[]
resolution_type String
restore_memor Boolean
y
root_password String
seal Boolean
snapshot Snapshot
ssh Ssh
status String
stop_gluster_se Boolean
rvice
storage_domain StorageDomain
499
Red Hat Virtualization 4.3 REST API Guide
storage_domain StorageDomain[]
s
succeeded Boolean
synchronized_n NetworkAttachme
etwork_attachm nt[]
ents
template Template
ticket Ticket
undeploy_hoste Boolean
d_engine
use_cloud_init Boolean
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.
500
CHAPTER 7. TYPES
hosts_rule AffinityRule Specifies the affinity rule applied between virtual machines and
hosts that are members of this affinity group.
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. 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.2. 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.
501
Red Hat Virtualization 4.3 REST API Guide
cluster Cluster A reference to the cluster to which the affinity group applies.
vms Vm[] A list of all virtual machines assigned to this affinity group.
read_only Boolean The read_only property marks a label that can not be modified.
7.4.1. read_only
The read_only property marks a label that can not be modified. This is usually the case when listing
internally-generated labels.
hosts Host[] A list of hosts that were labeled using this scheduling label.
vms Vm[] A list of virtual machines that were labeled using this scheduling
label.
502
CHAPTER 7. TYPES
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.
503
Red Hat Virtualization 4.3 REST API Guide
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.
address String
broker_type MessageBrokerTy
pe
network_mappi String
ngs
password String
port Integer
504
CHAPTER 7. TYPES
username String
GET /ovirt-engine/api
<api>
<link rel="hosts" href="/ovirt-engine/api/hosts"/>
<link rel="vms" href="/ovirt-engine/api/vms"/>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.1.0_master</full_version>
<major>4</major>
<minor>1</minor>
<revision>0</revision>
</version>
</product_info>
<special_objects>
<link rel="templates/blank" href="..."/>
<link rel="tags/root" href="..."/>
</special_objects>
<summary>
<vms>
<total>10</total>
<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>
505
Red Hat Virtualization 4.3 REST API Guide
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
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.
506
CHAPTER 7. TYPES
GET /ovirt-engine/api/vms/123/applications/456
507
Red Hat Virtualization 4.3 REST API Guide
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
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.
508
CHAPTER 7. TYPES
key String
user User
Name Summary
disable
enable
unknown
scheduling_poli SchedulingPolicy
cy
509
Red Hat Virtualization 4.3 REST API Guide
scheduling_poli SchedulingPolicyU
cy_unit nit
boot_menu BootMenu
statistics Statistic[]
7.18.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.18.2. options
A list of option elements for a bonded interface. Each option contains property name and value
510
CHAPTER 7. TYPES
A list of option elements for a bonded interface. Each option contains property name and value
attributes. Only required when adding bonded interfaces.
7.18.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.18.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:
511
Red Hat Virtualization 4.3 REST API Guide
7.20.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
7.21.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.21.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.
512
CHAPTER 7. TYPES
enabled Boolean Whether the boot menu is enabled for this virtual machine (or
template), or not.
Name Summary
7.23.1. autoconf
Stateless address auto-configuration.
The mechanism is defined by RFC 4862. Please refer to this wikipedia article for more information.
NOTE
7.23.2. dhcp
Dynamic host configuration protocol.
7.23.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.
513
Red Hat Virtualization 4.3 REST API Guide
NOTE
profile_details ProfileDetail[]
brick GlusterBrick
file File
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.
514
CHAPTER 7. TYPES
7.25.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
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
515
Red Hat Virtualization 4.3 REST API Guide
timezone String
users User[]
{
"cluster" : [ {
"ballooning_enabled" : "false",
"cpu" : {
"architecture" : "x86_64",
"type" : "Intel SandyBridge Family"
},
"custom_scheduling_policy_properties" : {
"property" : [ {
"name" : "HighUtilization",
"value" : "80"
}, {
"name" : "CpuOverCommitDurationMinutes",
"value" : "2"
}]
},
"error_handling" : {
"on_error" : "migrate"
},
"fencing_policy" : {
"enabled" : "true",
"skip_if_connectivity_broken" : {
"enabled" : "false",
"threshold" : "50"
},
"skip_if_gluster_bricks_up" : "false",
"skip_if_gluster_quorum_not_met" : "false",
"skip_if_sd_active" : {
"enabled" : "false"
}
},
"gluster_service" : "false",
"firewall_type" : "iptables",
"ha_reservation" : "false",
"ksm" : {
"enabled" : "true",
"merge_across_nodes" : "true"
},
"maintenance_reason_required" : "false",
"memory_policy" : {
"over_commit" : {
516
CHAPTER 7. TYPES
"percent" : "100"
},
"transparent_hugepages" : {
"enabled" : "true"
}
},
"migration" : {
"auto_converge" : "inherit",
"bandwidth" : {
"assignment_method" : "auto"
},
"compressed" : "inherit",
"policy" : {
"id" : "00000000-0000-0000-0000-000000000000"
}
},
"optional_reason" : "false",
"required_rng_sources" : {
"required_rng_source" : [ "random" ]
},
"switch_type" : "legacy",
"threads_as_cores" : "false",
"trusted_service" : "false",
"tunnel_migration" : "false",
"version" : {
"major" : "4",
"minor" : "1"
},
"virt_service" : "true",
"data_center" : {
"href" : "/ovirt-engine/api/datacenters/123",
"id" : "123"
},
"mac_pool" : {
"href" : "/ovirt-engine/api/macpools/456",
"id" : "456"
},
"scheduling_policy" : {
"href" : "/ovirt-engine/api/schedulingpolicies/789",
"id" : "789"
},
"actions" : {
"link" : [ {
"href" : "/ovirt-engine/api/clusters/234/resetemulatedmachine",
"rel" : "resetemulatedmachine"
}]
},
"name" : "Default",
"description" : "The default server cluster",
"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",
517
Red Hat Virtualization 4.3 REST API Guide
"rel" : "cpuprofiles"
}, {
"href" : "/ovirt-engine/api/clusters/234/networkfilters",
"rel" : "networkfilters"
}, {
"href" : "/ovirt-engine/api/clusters/234/networks",
"rel" : "networks"
}, {
"href" : "/ovirt-engine/api/clusters/234/affinitygroups",
"rel" : "affinitygroups"
}, {
"href" : "/ovirt-engine/api/clusters/234/glusterhooks",
"rel" : "glusterhooks"
}, {
"href" : "/ovirt-engine/api/clusters/234/glustervolumes",
"rel" : "glustervolumes"
}, {
"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
518
CHAPTER 7. TYPES
ha_reservation Boolean
ksm Ksm
maintenance_re Boolean
ason_required
memory_policy MemoryPolicy
migration MigrationOptions
optional_reason Boolean
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
tunnel_migratio Boolean
n
virt_service Boolean
7.28.1. custom_scheduling_policy_properties
Custom scheduling policy properties of the cluster. These optional properties override the properties of
the scheduling policy specified by the scheduling_policy link, and apply only for this specific cluster.
519
Red Hat Virtualization 4.3 REST API Guide
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
properties of the scheduling policy specified by the scheduling_policy link, they will only be reflected
on this specific cluster.
7.28.2. 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.28.3. firewall_type
The type of firewall to be used on hosts in this cluster.
Up to version 4.1, it was always iptables. Since version 4.2, you can choose between iptables and
firewalld. For clusters with a compatibility version of 4.2 and higher, the default firewall type is
firewalld.
7.28.4. gluster_tuned_profile
The name of the tuned profile to set on all the hosts in the cluster. This is not mandatory and relevant
520
CHAPTER 7. TYPES
The name of the tuned profile to set on all the hosts in the cluster. This is not mandatory and relevant
only for clusters with Gluster service.
7.28.5. 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.28.6. version
The compatibility version of the cluster.
All hosts in this cluster must support at least this compatibility version.
For example:
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>
521
Red Hat Virtualization 4.3 REST API Guide
<minor>1</minor>
</version>
</cluster>
In order to update the cluster compatibility version, all hosts in the cluster must support the new
compatibility version.
affinity_groups AffinityGroup[]
cpu_profiles CpuProfile[]
data_center DataCenter
enabled_feature ClusterFeature[] Custom features that are enabled for the cluster.
s
gluster_hooks GlusterHook[]
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.28.7. 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.
522
CHAPTER 7. TYPES
7.28.8. 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.
523
Red Hat Virtualization 4.3 REST API Guide
type ConfigurationType
7.31.1. data
The document describing the virtual machine.
524
CHAPTER 7. TYPES
<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>
<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>
525
Red Hat Virtualization 4.3 REST API Guide
</Section>
</Content>
</ovf:Envelope>
Name Summary
7.32.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 here for the OVF specification.
7.32.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.
index Integer
526
CHAPTER 7. TYPES
socket Integer
architecture Architecture
cores Core[]
cpu_tune CpuTune
level Integer
mode CpuMode
name String
speed Decimal
topology CpuTopology
type String
Name Summary
custom
host_model
host_passthrou
gh
527
Red Hat Virtualization 4.3 REST API Guide
cluster Cluster
permissions Permission[]
qos Qos
cores Integer
sockets Integer
threads Integer
vcpu_pins VcpuPin[]
528
CHAPTER 7. TYPES
name String The name of the CPU type, for example Intel Conroe Family.
Name Summary
complete
failed
in_progress
pending
529
Red Hat Virtualization 4.3 REST API Guide
local Boolean
quota_mode QuotaModeType
status DataCenterStatus
storage_format StorageFormat
supported_versi Version[]
ons
7.43.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
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>
530
CHAPTER 7. TYPES
<minor>1</minor>
</version>
</data_center>
mac_pool MacPool Reference to the MAC pool used by this data center.
Name Summary
contend
maintenance
not_operational
problematic
uninitialized
up
531
Red Hat Virtualization 4.3 REST API Guide
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.45.1. vms
References to the virtual machines that are using this device. A device may be used by several virtual
machines; for example, a shared disk my be used simultaneously by two or more virtual machines.
alias String
532
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
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
533
Red Hat Virtualization 4.3 REST API Guide
wipe_after_dele Boolean Indicates if the disk’s blocks will be read back as zeros after it is
te deleted:
7.46.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.46.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.46.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.46.4. 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.46.5. interface
The type of interface driver used to connect the disk device to the virtual machine.
IMPORTANT
534
CHAPTER 7. TYPES
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.46.6. provisioned_size
The virtual size of the disk, in bytes.
7.46.7. 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 here.
7.46.8. 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.46.9. 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.46.10. 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
535
Red Hat Virtualization 4.3 REST API Guide
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.46.11. 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
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.46.12. 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>
536
CHAPTER 7. TYPES
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.46.13. 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.46.14. 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.
537
Red Hat Virtualization 4.3 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.47.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.47.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.47.3. read_only
Indicates whether the disk is connected to the virtual machine as read only.
<disk_attachment>
...
538
CHAPTER 7. TYPES
<read_only>true</read_only>
</disk_attachment>
7.47.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
539
Red Hat Virtualization 4.3 REST API Guide
Name Summary
cow The Copy On Write format allows snapshots, with a small performance overhead.
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.50.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.50.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.50.3. virtio_scsi
Para-virtualized SCSI controller device. Fast interface with the guest via direct physical storage device
address, using the SCSI protocol.
540
CHAPTER 7. TYPES
permissions Permission[]
qos Qos
storage_domain StorageDomain
alias String
image_id String
initial_size Integer The initial size of a sparse image disk created on block storage,
in bytes.
541
Red Hat Virtualization 4.3 REST API Guide
interface DiskInterface The type of interface driver used to connect the disk device to
the virtual machine.
logical_name String
lun_storage HostStorage
sgio ScsiGenericIO
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.52.1. active
Indicates if the disk is visible to the virtual machine.
IMPORTANT
542
CHAPTER 7. TYPES
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.52.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.52.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.52.4. 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.52.5. 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.52.6. provisioned_size
The virtual size of the disk, in bytes.
7.52.7. 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
543
Red Hat Virtualization 4.3 REST API Guide
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 here.
7.52.8. 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.52.9. 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.52.10. 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.52.11. 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
544
CHAPTER 7. TYPES
disk_profile DiskProfile
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.52.12. 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>
545
Red Hat Virtualization 4.3 REST API Guide
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.52.13. 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.52.14. vms
References to the virtual machines that are using this device. A device may be used by several virtual
machines; for example, a shared disk my be used simultaneously by two or more virtual machines.
Name Summary
illegal 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.53.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
546
CHAPTER 7. TYPES
Name Summary
lun
Name Summary
data
system
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.
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.
547
Red Hat Virtualization 4.3 REST API Guide
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 Indicates if to use one PCI slot for each monitor or to use a
single PCI channel for all multiple monitors.
7.56.1. allow_override
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.56.2. certificate
The TLS certificate in case of a TLS connection. If TLS isn’t enabled then it won’t be reported.
7.56.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.56.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.
548
CHAPTER 7. TYPES
7.56.5. 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.56.6. 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.56.7. 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.
7.56.8. 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.56.9. 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.56.10. single_qxl_pci
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.56.11. smartcard_enabled
Indicates if to use smart card authentication. This option is only available for the SPICE console type.
Name Summary
7.57.1. spice
549
Red Hat Virtualization 4.3 REST API Guide
7.57.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.
7.59.1. name_servers
Array of addresses of name servers. Either IPv4 or IPv6 addresses may be specified.
550
CHAPTER 7. TYPES
user User
7.60.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.
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.61.1. error
The external entity status is erroneous. This might require a moderate attention.
7.61.2. failure
The external entity has an issue that causes failures. This might require immediate attention.
551
Red Hat Virtualization 4.3 REST API Guide
profile_details ProfileDetail[]
on_error MigrateOnError
552
CHAPTER 7. TYPES
7.64.1. correlation_id
The event correlation identifier. Used in order to correlate several events together.
7.64.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.64.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.64.4. cluster
Reference to the cluster service. Event can be associated with a cluster.
7.64.5. data_center
Reference to the data center service. Event can be associated with a data center.
7.64.6. host
553
Red Hat Virtualization 4.3 REST API Guide
7.64.7. storage_domain
Reference to the storage domain service. Event can be associated with a storage domain.
7.64.8. template
Reference to the template service. Event can be associated with a template.
7.64.9. user
Reference to the user service. Event can be associated with a user.
7.64.10. vm
Reference to the virtual machine service. Event can be associated with a virtual machine.
provider String
url String
user String
external_host_p ExternalHostProvi
rovider der
554
CHAPTER 7. TYPES
ip String
last_report String
mac String
subnet_name String
external_host_p ExternalHostProvi
rovider der
address String The address of the host, either IP address of FQDN (Fully
Qualified Domain Name).
555
Red Hat Virtualization 4.3 REST API Guide
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
operating_syste String
m_name
subnet_name String
external_host_p ExternalHostProvi
rovider der
556
CHAPTER 7. TYPES
password String Defines password for the user during the authentication process.
7.69.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.
557
Red Hat Virtualization 4.3 REST API Guide
7.69.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.69.3. discovered_hosts
A reference to the discovered hosts in the host provider. Discovered hosts are hosts that were not
provisioned yet.
7.69.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.
558
CHAPTER 7. TYPES
password String Defines password for the user during the authentication process.
7.71.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.
559
Red Hat Virtualization 4.3 REST API Guide
Name Summary
7.72.1. error
Error status. There is some kind of error in the relevant object.
7.72.2. failure
Failure status. The relevant object is failing.
7.72.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.72.4. ok
OK status. The relevant object is working well.
7.72.5. warning
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 .
560
CHAPTER 7. TYPES
sparse Boolean Specifies the disk allocation policy of the resulting virtual
machine: true for sparse, false for preallocated.
url String The URL to be passed to the virt-v2v tool for conversion.
7.74.1. 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.74.2. cpu_profile
Optional. Specifies the CPU profile of the resulting virtual machine.
561
Red Hat Virtualization 4.3 REST API Guide
7.74.3. drivers_iso
Optional. The name of the ISO containing drivers that can be used during the virt-v2v conversion
process.
7.74.4. host
Optional. Specifies the host (using host’s ID) to be used for the conversion process. If not specified, one
is selected automatically.
7.74.5. quota
Optional. Specifies the quota that will be applied to the resulting virtual machine.
7.74.6. 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
562
CHAPTER 7. TYPES
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.78.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.78.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.78.3. skip_if_gluster_quorum_not_met
563
Red Hat Virtualization 4.3 REST API Guide
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.78.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
564
CHAPTER 7. TYPES
scheduling_poli SchedulingPolicyU
cy_unit nit
Name Summary
7.81.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.81.2. iptables
IPTables firewall type.
When a cluster has the firewall type set to iptables, the firewalls of all hosts in the cluster will be
configured using iptables. iptables adds firewall rules to /etc/sysconfig/iptables using a special
iptables syntax. For more information, see the iptables manual page.
iptables is deprecated in cluster version 4.2 and will be removed in cluster version 4.3.
565
Red Hat Virtualization 4.3 REST API Guide
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.
vms Vm[] References to the virtual machines that are using this device.
7.82.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
566
CHAPTER 7. TYPES
device String
fs_name String
gluster_clients GlusterClient[]
memory_pools GlusterMemoryPo
ol[]
mnt_options String
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.84.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.
567
Red Hat Virtualization 4.3 REST API Guide
device String
fs_name String
gluster_clients GlusterClient[]
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.85.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.
568
CHAPTER 7. TYPES
memory_pools GlusterMemoryPo
ol[]
Name Summary
down Brick is in down state, the data cannot be stored or retrieved from it.
unknown When the status cannot be determined due to host being non-responsive.
bytes_read Integer
bytes_written Integer
client_port Integer
host_name String
checksum String
conflict_status Integer
conflicts String
569
Red Hat Virtualization 4.3 REST API Guide
content String
content_type HookContentType
gluster_comma String
nd
stage HookStage
status GlusterHookStatu
s
cluster Cluster
server_hooks GlusterServerHoo
k[]
Name Summary
570
CHAPTER 7. TYPES
alloc_count Integer
cold_count Integer
hot_count Integer
max_alloc Integer
max_stdalloc Integer
padded_size Integer
pool_misses Integer
type String
checksum String
content_type HookContentType
status GlusterHookStatu
s
571
Red Hat Virtualization 4.3 REST API Guide
host Host
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[]
572
CHAPTER 7. TYPES
volume_type GlusterVolumeTyp
e
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.
573
Red Hat Virtualization 4.3 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.97.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.97.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.97.3. distributed_disperse
Distributed dispersed volumes distribute files across dispersed subvolumes.
574
CHAPTER 7. TYPES
This has the same advantages of distribute replicate volumes, but using disperse to store the data into
the bricks.
7.97.4. distributed_replicate
Distributed replicated volumes distributes files across replicated bricks in the volume.
Distributed replicated volumes can be used in environments where the requirement is to scale storage
and high-reliability is critical. Distributed replicated volumes also offer improved read performance in
most environments.
7.97.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.97.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.97.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.97.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.97.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
575
Red Hat Virtualization 4.3 REST API Guide
Note: With the introduction of Sharding in Glusterfs 3.7 releases, striped volumes are not recommended
and it will be removed in future release.
expiry Integer
address String
port Integer
protocol GraphicsType
tls_port Integer
instance_type InstanceType
template Template
vm Vm
576
CHAPTER 7. TYPES
Name Summary
7.100.1. spice
Graphics protocol of type SPICE. See https://www.spice-space.org for more details.
7.100.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.
577
Red Hat Virtualization 4.3 REST API Guide
tags Tag[] A link to the tags sub-collection for tags attached to this group.
7.101.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
578
CHAPTER 7. TYPES
GET /ovirt-engine/api/hosts/123
579
Red Hat Virtualization 4.3 REST API Guide
enabled Boolean Define if the virtual machine should be consider highly available.
priority Integer Indicates the priority of the virtual machine inside the run and
migration queues.
7.104.1. 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
When the label is selected using the GUI, the value in the API will be set as follows:
580
CHAPTER 7. TYPES
Low 1
Medium 50
High 100
Name Summary
581
Red Hat Virtualization 4.3 REST API Guide
Name Summary
Name Summary
auto_numa_stat AutoNumaStatus The host auto non uniform memory access (NUMA) status.
us
582
CHAPTER 7. TYPES
display Display Optionally specify the display address of this host explicitly.
583
Red Hat Virtualization 4.3 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.109.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.
7.109.2. hosted_engine
The self-hosted engine status of this host.
IMPORTANT
584
CHAPTER 7. TYPES
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.109.3. kdump_status
The host KDUMP status. KDUMP happens when the host kernel has crashed and it is now going through
memory dumping.
7.109.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.109.5. libvirt_version
The host libvirt version. For more information on libvirt please go to libvirt.
7.109.6. override_iptables
Specifies whether we should override firewall definitions. This applies only when the host is installed or
re-installed.
7.109.7. protocol
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.109.8. se_linux
585
Red Hat Virtualization 4.3 REST API Guide
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.109.9. 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.109.10. status_detail
The host status details. Relevant for Gluster hosts.
7.109.11. 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.109.12. version
The version of VDSM.
For example:
GET /ovirt-engine/api/hosts/123
<host>
...
<version>
<build>999</build>
<full_version>vdsm-4.18.999-419.gitcf06367.el7</full_version>
<major>4</major>
<minor>18</minor>
<revision>0</revision>
</version>
...
</host>
586
CHAPTER 7. TYPES
affinity_labels AffinityLabel[]
agents Agent[]
cluster Cluster
devices Device[]
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.
storage_connec StorageConnectio
tion_extensions nExtension[]
storages HostStorage[]
tags Tag[]
unmanaged_net UnmanagedNetwo
works rk[]
7.109.13. external_network_provider_configurations
External network providers provisioned on the host.
External network providers on the host can be controlled when adding the host.
587
Red Hat Virtualization 4.3 REST API Guide
7.109.14. katello_errata
Lists all the Katello errata assigned to the host.
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.109.15. 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
588
CHAPTER 7. TYPES
Name Description
capability String
589
Red Hat Virtualization 4.3 REST API Guide
driver String The name of the driver this device is bound to.
iommu_group Integer
physical_functi HostDevice
on
placeholder Boolean
product Product
vendor Vendor
virtual_function Integer
s
7.110.1. driver
The name of the driver this device is bound to.
host Host
parent_device HostDevice
vm Vm
590
CHAPTER 7. TYPES
enabled Boolean
For example, the XML representation of a host NIC looks like this:
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:
591
Red Hat Virtualization 4.3 REST API Guide
</option>
<option>
<name>miimon</name>
<value>100</value>
</option>
</options>
<slaves>
<host_nic id="123"/>
<host_nic id="456"/>
</slaves>
</bonding>
<mtu>1500</mtu>
<bridged>true</bridged>
<custom_configuration>false</custom_configuration>
</host_nic>
check_connecti Boolean
vity
custom_configu Boolean
ration
592
CHAPTER 7. TYPES
override_config Boolean
uration
properties Property[]
speed Integer
status NicStatus
vlan Vlan
7.112.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.112.2. bridged
Defines the bridged network status. Set to true for a bridged network and false for a bridgeless
network.
7.112.3. statistics
A link to the statistics of the NIC.
593
Red Hat Virtualization 4.3 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).
host Host
7.112.4. network
A reference to the network to which the interface should be connected. A blank network ID is allowed.
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
594
CHAPTER 7. TYPES
7.113.1. max_number_of_virtual_functions
The maximum number of virtual functions the NIC supports. This property is read-only.
7.113.2. number_of_virtual_functions
The number of virtual functions currently defined. A user-defined value between 0 and
max_number_of_virtual_functions.
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.
595
Red Hat Virtualization 4.3 REST API Guide
Name Summary
kdumping The host kernel has crashed and it is now going through memory dumping.
7.115.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.115.2. initializing
The host is initializing. This is an intermediate step before moving the host to 'up' status.
7.115.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.115.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.115.5. maintenance
The host is in maintenance status. When a host is in maintenance it cannot run virtual machines.
596
CHAPTER 7. TYPES
7.115.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.115.7. non_responsive
The host is not responsive. This means that the engine is not able to communicate with the host.
7.115.8. pending_approval
The host is pending administrator approval. This is relevant only for vintage ovirt-node / RHV-H.
7.115.9. preparing_for_maintenance
The host is preparing for maintenance. During this time the engine makes sure to live migrate all the
virtual machines from this host to other hosts. Once all migrations have been completed the host will
move to 'maintenance' status.
address String
logical_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
597
Red Hat Virtualization 4.3 REST API Guide
password String
path String
port Integer
portal String
target String
type StorageType
username String
vfs_type String
volume_group VolumeGroup
7.116.1. 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.116.2. nfs_timeo
The time in tenths of a second to wait for a response before retrying NFS requests. The value must be in
the range of 0 to 65535. For more details see the description of the timeo mount option in the nfs man
page.
host Host
Name Summary
598
CHAPTER 7. TYPES
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.117.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.
active Boolean
configured Boolean
global_mainten Boolean
ance
local_maintena Boolean
nce
score Integer
599
Red Hat Virtualization 4.3 REST API Guide
7.119.1. media_type
Format of icon file.
One of:
image/jpeg
image/png
image/gif
600
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.122.1. iso
The image is a .iso file that can be used as a CD-ROM to boot and install a virtual machine.
601
Red Hat Virtualization 4.3 REST API Guide
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).
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.
transfer_url String The URL of the daemon server that the user can input or output
to directly.
7.123.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.123.2. 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.
602
CHAPTER 7. TYPES
7.123.3. 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.123.4. proxy_url
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.123.5. 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.
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.123.6. 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.123.7. 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.
603
Red Hat Virtualization 4.3 REST API Guide
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.
Name Summary
cancelled This phase will be set as a result of the user cancelling the transfer.
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_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-daemon is not running in the selected host.
paused_user This phase is a result of a pause call by the user, using pause.
resuming The phase where the transfer has been resumed by the client calling resume.
transferring The phase where the transfer session is open, and the client can input or output the
desired image using the preferred tools.
7.125.1. cancelled
604
CHAPTER 7. TYPES
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.125.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.125.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.
7.125.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.125.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.125.6. paused_system
This phase means the session timed out, or some other error occurred with this transfer; for example
ovirt-imageio-daemon is not running in the selected host. To resume the session, the client should call
resume. After resuming, the phase will change to resuming.
7.125.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.125.8. unknown
An unknown phase. This will only be set in cases of unpredictable errors.
Name Summary
605
Red Hat Virtualization 4.3 REST API Guide
Name Summary
active_directory String
_ou
authorized_ssh String
_keys
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
606
CHAPTER 7. TYPES
timezone String
ui_language String
user_locale String
user_name String
windows_licens String
e_key
7.127.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, Ruby and Java.
For example medium instance type includes 1 virtual CPU and 4 GiB of memory. It is a top-level entity
607
Red Hat Virtualization 4.3 REST API Guide
For example medium instance type includes 1 virtual CPU and 4 GiB of memory. It is a top-level entity
(e.g. not bound to any data center or cluster). The attributes that are used for instance types and are
common to virtual machine and template types are:
console
cpu
custom_cpu_model
custom_emulated_machine
display
high_availability
io
memory
memory_policy
migration
migration_downtime
os
rng_device
soundcard_enabled
usb
virtio_scsi
When creating a virtual machine from both an instance type and a template, the virtual machine will
inherit the hardware configurations from the instance type
NOTE
An instance type inherits it’s attributes from the template entity although most template
attributes are not used in instance types.
608
CHAPTER 7. TYPES
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
609
Red Hat Virtualization 4.3 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
610
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).
7.128.1. 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>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.128.2. 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,
611
Red Hat Virtualization 4.3 REST API Guide
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.128.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.128.4. 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.128.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.128.6. 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.128.7. 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
612
CHAPTER 7. TYPES
<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.128.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.128.9. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
613
Red Hat Virtualization 4.3 REST API Guide
physical_machine
hyperv
7.128.10. 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.128.11. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.128.12. 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.
614
CHAPTER 7. TYPES
quota Quota Reference to quota configuration set for this virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
7.129. IO STRUCT
Table 7.176. Attributes summary
threads Integer
7.130. IP STRUCT
Represents the IP configuration of a network interface.
615
Red Hat Virtualization 4.3 REST API Guide
7.130.1. address
The text representation of the IP address.
<ip>
<address>192.168.0.1</address>
...
</ip>
<ip>
<address>2620:52:0:20f0:4216:7eff:feaa:1b50</address>
...
</ip>
7.130.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.130.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.
616
CHAPTER 7. TYPES
assignment_me BootProtocol Sets the boot protocol used to assign the IP configuration for a
thod network device.
Name Summary
v4 IPv4.
v6 IPv6.
data_center DataCenter
networks Network[]
storage_connec StorageConnectio
tions n[]
617
Red Hat Virtualization 4.3 REST API Guide
address String
disk_id String
initiator String
lun_mapping Integer
password String
paths Integer
port Integer
portal String
product_id String
serial String
size Integer
status String
storage_domain String
_id
target String
username String
vendor_id String
volume_group_i String
d
618
CHAPTER 7. TYPES
auto_cleared Boolean Indicates if the job should be cleared automatically after it was
completed by the system.
7.135.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
619
Red Hat Virtualization 4.3 REST API Guide
Name Summary
7.136.1. aborted
The aborted job status. This status is applicable for an external job that was forcibly aborted.
7.136.2. finished
The finished job status. This status describes a completed job execution.
7.136.3. started
The started job status. This status represents a job which is currently being executed.
7.136.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.
620
CHAPTER 7. TYPES
solution String The solution for the issue described by the Katello erratum.
7.137.1. severity
The severity of the Katello erratum.
7.137.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
621
Red Hat Virtualization 4.3 REST API Guide
version Version
enabled Boolean
merge_across_ Boolean
nodes
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>
622
CHAPTER 7. TYPES
7.141.1. oui
The organizationally-unique identifier (OUI) encoded as an integer. Only available if type is 127.
7.141.2. subtype
The organizationally-defined subtype encoded as an integer. Only available if type is 127.
Name Summary
7.142.1. alert
Alert severity. Used to specify a condition that requires an immediate attention.
623
Red Hat Virtualization 4.3 REST API Guide
7.142.2. error
Error severity. Used to specify that there is an error that needs to be examined.
7.142.3. normal
Normal severity. Used for information events.
7.142.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
port Integer
portal String
product_id String
serial String
size Integer
status LunStatus
624
CHAPTER 7. TYPES
storage_domain String
_id
target String
username String
vendor_id String
volume_group_i String
d
7.143.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 documentation of
queue-sysfs for discard_max_bytes.
7.143.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 documentation of queue-sysfs 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.
Name Summary
free
unusable
used
625
Red Hat Virtualization 4.3 REST API Guide
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.146.1. allow_duplicates
Defines whether duplicate MAC addresses are permitted in the pool. If not specified, defaults to false.
626
CHAPTER 7. TYPES
7.146.2. default_pool
Defines whether this is the default pool. If not specified, defaults to false.
7.146.3. ranges
Defines the range of MAC addresses for the pool. Multiple ranges can be defined.
percent Integer
ballooning Boolean
over_commit MemoryOverCom
mit
transparent_hu TransparentHugeP
ge_pages ages
7.148.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.
627
Red Hat Virtualization 4.3 REST API Guide
7.148.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).
Name Summary
qpid
rabbit_mq
id SsoMethod
Name Summary
do_not_migrate
migrate
migrate_highly_
available
628
CHAPTER 7. TYPES
7.152.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.153.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
629
Red Hat Virtualization 4.3 REST API Guide
{
"network" : [ {
"data_center" : {
"href" : "/ovirt-engine/api/datacenters/123",
"id" : "123"
},
"stp" : "false",
"mtu" : "0",
"usages" : {
"usage" : [ "vm" ]
},
"name" : "ovirtmgmt",
"description" : "Management Network",
"href" : "/ovirt-engine/api/networks/456",
"id" : "456",
"link" : [ {
"href" : "/ovirt-engine/api/networks/456/permissions",
"rel" : "permissions"
}, {
"href" : "/ovirt-engine/api/networks/456/vnicprofiles",
"rel" : "vnicprofiles"
630
CHAPTER 7. TYPES
}, {
"href" : "/ovirt-engine/api/networks/456/labels",
"rel" : "labels"
}]
}]
}
dns_resolver_c DnsResolverConfi
onfiguration guration
mtu Integer Specifies the maximum transmission unit for the network.
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.
631
Red Hat Virtualization 4.3 REST API Guide
stp Boolean Specifies whether the spanning tree protocol is enabled for the
network.
7.156.1. 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.156.2. status
The status of the network. non_operational if the network defined as 'required' and omitted from any
active cluster host. operational otherwise.
7.156.3. 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.
data_center DataCenter A reference to the data center that the network is a member of.
632
CHAPTER 7. TYPES
7.156.4. 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.156.5. 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.156.6. 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.
633
Red Hat Virtualization 4.3 REST API Guide
<in_sync>true</in_sync>
</reported_configuration>
...
</reported_configurations>
</network_attachment>
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>
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:
634
CHAPTER 7. TYPES
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>
dns_resolver_c DnsResolverConfi DNS resolver configuration will be reported when retrieving the
onfiguration guration network attachment using GET.
in_sync Boolean
7.157.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.
635
Red Hat Virtualization 4.3 REST API Guide
7.157.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
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
636
CHAPTER 7. TYPES
multicast_startup_query_interval 3125
host Host
network Network A reference to the network that the interface is attached to.
qos Qos
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.
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>
637
Red Hat Virtualization 4.3 REST API Guide
7.159.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>
638
CHAPTER 7. TYPES
nic Nic The virtual machine NIC the parameter is assiciated to.
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.162.1. open_vswitch
Open vSwitch.
639
Red Hat Virtualization 4.3 REST API Guide
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
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.164.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.
640
CHAPTER 7. TYPES
7.164.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.
nfs_server_ip String
profile_details ProfileDetail[]
Name Summary
auto
v3
v4
v4_1
v4_2 NFS 4.
7.166.1. v4_2
NFS 4.2.
For example, the XML representation of a NIC will look like this:
641
Red Hat Virtualization 4.3 REST API Guide
<plugged>true</plugged>
<vnic_profile href="/ovirt-engine/api/vnicprofiles/789" id="789"/>
</nic>
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.
642
CHAPTER 7. TYPES
vms Vm[] References to the virtual machines that are using this device.
7.167.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.167.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.
643
Red Hat Virtualization 4.3 REST API Guide
Name Summary
e1000 e1000.
rtl8139 rtl8139.
virtio VirtIO.
Name Summary
644
CHAPTER 7. TYPES
cpu Cpu
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.171.1. statistics
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific
statistics.
645
Red Hat Virtualization 4.3 REST API Guide
<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:
Name Description
646
CHAPTER 7. TYPES
index Integer The index of a physical NUMA node to which the virtual NUMA
node is pinned.
7.172.1. host_numa_node
Deprecated. Has no function.
7.172.2. pinned
Deprecated. Should always be true.
Name Summary
interleave
preferred
strict
647
Red Hat Virtualization 4.3 REST API Guide
openstack_ima OpenStackImageP
ge_provider rovider
password String Defines password for the user during the authentication process.
tenant_name String Defines the tenant name for OpenStack Identity API v2.
7.175.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.175.2. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
648
CHAPTER 7. TYPES
certificates Certificate[]
images OpenStackImage[]
openstack_net OpenStackNetwor
work_provider kProvider
649
Red Hat Virtualization 4.3 REST API Guide
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.
tenant_name String Defines the tenant name for OpenStack Identity API v2.
7.177.1. 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
650
CHAPTER 7. TYPES
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.177.2. external_plugin_type
Network plug-in type.
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.177.3. 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.177.4. 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.177.5. requires_authentication
Defines whether provider authentication is required or not.
If authentication is required, both username and password attributes will be used during
authentication.
651
Red Hat Virtualization 4.3 REST API Guide
7.177.6. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
7.177.7. 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.
Name Summary
external Indicates that the provider is an external one, implementing the OpenStack Neutron
API.
7.178.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.178.2. neutron
Indicates that the provider is OpenStack Neutron. The standard OpenStack Neutron agent is used as
the virtual interface driver.
652
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.179.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.179.2. tenant_name
Defines the tenant name for OpenStack Identity API v2.0.
653
Red Hat Virtualization 4.3 REST API Guide
7.180.1. ip_version
Defines IP version.
654
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.181.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.181.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[]
655
Red Hat Virtualization 4.3 REST API Guide
properties Property[]
openstack_volu OpenStackVolume
me_provider Provider
creation_date Date
usage_type OpenstackVolume
AuthenticationKey
UsageType
uuid String
value String
656
CHAPTER 7. TYPES
openstack_volu OpenStackVolume
me_provider Provider
Name Summary
ceph
cmdline String Custom kernel parameters for start the virtual machine with 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.185.1. boot
Configuration of the boot sequence.
NOTE
657
Red Hat Virtualization 4.3 REST API Guide
NOTE
7.185.2. cmdline
Custom kernel parameters for start the virtual machine with if Linux operating system is used.
NOTE
7.185.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.185.4. initrd
Path to custom initial ramdisk on ISO storage domain if Linux operating system is used.
NOTE
7.185.5. kernel
Path to custom kernel on ISO storage domain if Linux operating system is used.
NOTE
7.185.6. reported_kernel_cmdline
The host kernel command line as reported by a running host.
658
CHAPTER 7. TYPES
This is a read-only attribute. Attempts to change this attribute are silently ignored.
NOTE
7.185.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
7.186.1. large_icon
Large icon of the guest operating system. Maximum dimensions: width 150px, height 120px.
7.186.2. small_icon
Small icon of the guest operating system. Maximum dimensions: width 43px, height 43px.
659
Red Hat Virtualization 4.3 REST API Guide
name String
type String
value String
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.
660
CHAPTER 7. TYPES
Name Summary
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
661
Red Hat Virtualization 4.3 REST API Guide
files File[]
type VmDeviceType
volume_id String
Name Summary
base64
plaintext
662
CHAPTER 7. TYPES
663
Red Hat Virtualization 4.3 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
load_balancing
weight
664
CHAPTER 7. TYPES
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.198.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
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.198.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.198.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.
665
Red Hat Virtualization 4.3 REST API Guide
7.198.4. type
Fencing device code.
A list of valid fencing device codes are available in the capabilities collection.
Name Summary
on Host is ON.
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>
666
CHAPTER 7. TYPES
<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.201.1. vendor
The name of the vendor, for example ovirt.org.
block_statistics BlockStatistic[]
duration Integer
fop_statistics FopStatistic[]
profile_type String
statistics Statistic[]
name String
value String
667
Red Hat Virtualization 4.3 REST API Guide
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.205.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.
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.
668
CHAPTER 7. TYPES
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.
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.
669
Red Hat Virtualization 4.3 REST API Guide
outbound_peak Integer The maximum outbound rate in Mbps (Megabits per sec).
7.206.1. cpu_limit
The maximum processing capability in %.
7.206.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.206.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.206.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
to be set.
7.206.5. max_iops
Maximum permitted number of input and output operations per second.
7.206.6. max_read_iops
Maximum permitted number of input operations per second.
7.206.7. max_read_throughput
670
CHAPTER 7. TYPES
7.206.8. max_throughput
Maximum permitted total throughput.
7.206.9. max_write_iops
Maximum permitted number of output operations per second.
7.206.10. max_write_throughput
Maximum permitted throughput for write operations.
7.206.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.206.12. outbound_average_linkshare
Weighted share.
Used to configure host networks. Signifies how much of the logical link’s capacity a specific network
should be allocated, relative to the other networks attached to the same logical link. The exact share
depends on the sum of shares of all networks on that link. By default this is a number in the range 1-100.
7.206.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.206.14. outbound_average_upperlimit
The maximum bandwidth to be used by a network in Mbps (Megabits per sec).
671
Red Hat Virtualization 4.3 REST API Guide
7.206.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.206.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.
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.
672
CHAPTER 7. TYPES
<cluster_hard_limit_pct>0</cluster_hard_limit_pct>
<cluster_soft_limit_pct>0</cluster_soft_limit_pct>
<data_center href="/ovirt-engine/api/datacenters/7044934e" id="7044934e"/>
<storage_hard_limit_pct>0</storage_hard_limit_pct>
<storage_soft_limit_pct>0</storage_soft_limit_pct>
</quota>
cluster_hard_li Integer
mit_pct
cluster_soft_lim Integer
it_pct
data_center DataCenter
disks Disk[]
storage_hard_li Integer
mit_pct
storage_soft_li Integer
mit_pct
users User[]
vms Vm[]
permissions Permission[]
quota_cluster_li QuotaClusterLimit
mits []
673
Red Hat Virtualization 4.3 REST API Guide
quota_storage_l QuotaStorageLimi
imits t[]
memory_limit Decimal
memory_usage Decimal
vcpu_limit Integer
vcpu_usage Integer
cluster Cluster
quota Quota
Name Summary
audit
disabled
674
CHAPTER 7. TYPES
Name Summary
enabled
limit Integer
usage Decimal
quota Quota
storage_domain StorageDomain
from String
to String
675
Red Hat Virtualization 4.3 REST API Guide
<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>
7.214.1. from
Reference to the original affinity group. It can be specified using name.
<action>
<registration_configuration>
<affinity_label_mappings>
676
CHAPTER 7. TYPES
<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.215.1. from
Reference to the original affinity label. It can be specified using name.
<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>
677
Red Hat Virtualization 4.3 REST API Guide
7.216.1. from
Reference to the original cluster. It can be specified using the id or the name.
7.216.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.
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>
678
CHAPTER 7. TYPES
<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>
<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>
679
Red Hat Virtualization 4.3 REST API Guide
<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>
</registration_vnic_profile_mapping>
</vnic_profile_mappings>
</registration_configuration>
</action>
680
CHAPTER 7. TYPES
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>
681
Red Hat Virtualization 4.3 REST API Guide
7.218.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>
7.219.1. from
Reference to the original LUN. This must be specified using the id attribute.
682
CHAPTER 7. TYPES
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.220.1. from
Reference to the original role. It can be specified using name.
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
683
Red Hat Virtualization 4.3 REST API Guide
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>
<name>orange</name>
</network>
</to>
</registration_vnic_profile_mapping>
<registration_vnic_profile_mapping>
<from>
<name>platinum</name>
<network>
<name>yellow</name>
</network>
</from>
684
CHAPTER 7. TYPES
<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.221.1. from
References to the external network and the external network profile. Both should be specified using
their name.
7.221.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.
actual_value String
expected_value String
name String
685
Red Hat Virtualization 4.3 REST API Guide
ips Ip[]
mac Mac
type ReportedDeviceTy
pe
vm Vm
Name Summary
network
Name Summary
add
copy
686
CHAPTER 7. TYPES
Name Summary
hwrng Obtains random data from the /dev/hwrng (usually specialized HW generator) device.
7.227.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.
687
Red Hat Virtualization 4.3 REST API Guide
7.228.1. mutable
Defines the ability to update or delete the role.
user User
Name Summary
default_policy Boolean
688
CHAPTER 7. TYPES
locked Boolean
properties Property[]
balances Balance[]
filters Filter[]
weight Weight[]
enabled Boolean
internal Boolean
properties Property[]
type PolicyUnitType
689
Red Hat Virtualization 4.3 REST API Guide
Name Summary
filtered
unfiltered
Name Summary
policy SerialNumberPolic
y
value String
690
CHAPTER 7. TYPES
Name Summary
custom
host
vm
7.237.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.237.2. ip
The IP address the user is connected from.
7.237.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.
691
Red Hat Virtualization 4.3 REST API Guide
7.237.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.
7.238.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.238.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.
692
CHAPTER 7. TYPES
7.239.1. enabled
If enabled, we will skip fencing in case the host maintains its lease in the storage. It means that if the host
still has storage access then it won’t get fenced.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
693
Red Hat Virtualization 4.3 REST API Guide
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).
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.
694
CHAPTER 7. TYPES
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.
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
695
Red Hat Virtualization 4.3 REST API Guide
start_paused Boolean If true, the virtual machine will be initially in 'paused' state after
start.
start_time Date The date in which the virtual machine was started.
stateless Boolean If true, the virtual machine is stateless - it’s state (disks) are
rolled-back after shutdown.
stop_time Date The date in which the virtual machine was stopped.
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.
7.240.1. 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
696
CHAPTER 7. TYPES
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.240.2. 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.240.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.240.4. 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.240.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
697
Red Hat Virtualization 4.3 REST API Guide
7.240.6. 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.240.7. 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.240.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
698
CHAPTER 7. TYPES
7.240.9. 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.240.10. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.240.11. persist_memorystate
Indicates if the content of the memory of the virtual machine is included in the snapshot.
7.240.12. 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
699
Red Hat Virtualization 4.3 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.240.13. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.240.14. 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.240.15. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
external_host_p ExternalHostProvi
rovider der
700
CHAPTER 7. TYPES
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.
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.
701
Red Hat Virtualization 4.3 REST API Guide
7.240.16. affinity_labels
Optional. Used for labeling of sub-clusters.
7.240.17. 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>
...
</packages>
</katello_erratum>
...
</katello_errata>
7.240.18. 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.240.19. statistics
Statistics data collected from this virtual machine.
Note that some statistics, notably memory.buffered and memory.cached are available only when oVirt
guest agent is installed in the virtual machine.
702
CHAPTER 7. TYPES
Name Summary
7.241.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.242.1. preview
The active snapshot will become preview if some snapshot is being previewed.
7.242.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.
703
Red Hat Virtualization 4.3 REST API Guide
This type contains references to special objects, such as blank templates and the root of a hierarchy of
tags.
priority Integer
status SpmStatus
Name Summary
contending
none
spm
authentication_ SshAuthentication
method Method
fingerprint String
704
CHAPTER 7. TYPES
port Integer
user User
Name Summary
password
publickey
user User
705
Red Hat Virtualization 4.3 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"/>
706
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
707
Red Hat Virtualization 4.3 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
708
CHAPTER 7. TYPES
7.254.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[]
709
Red Hat Virtualization 4.3 REST API Guide
Name Summary
7.255.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.255.2. finalizing
The finalizing step type. Describes the post-execution steps requires to complete the job.
7.255.3. rebalancing_volume
The rebalancing volume step type. Describes a step type which is part of Gluster flow.
7.255.4. removing_bricks
The removing bricks step type. Describes a step type which is part of Gluster flow.
7.255.5. unknown
The unknown step type. Describes a step type which its origin is unknown.
7.255.6. validating
The validation step type. Used to verify the correctness of parameters and the validity of the
parameters prior to the execution.
710
CHAPTER 7. TYPES
Name Summary
7.256.1. aborted
The aborted step status. This status is applicable for an external step that was forcibly aborted.
7.256.2. finished
The finished step status. This status describes a completed step execution.
7.256.3. started
The started step status. This status represents a step which is currently being executed.
7.256.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>
711
Red Hat Virtualization 4.3 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
712
CHAPTER 7. TYPES
password String
target String
username String
host Host
713
Red Hat Virtualization 4.3 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.
714
CHAPTER 7. TYPES
type StorageDomainTy
pe
used Integer
warning_low_sp Integer
ace_indicator
7.259.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.259.2. 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.259.3. 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.
7.259.4. supports_discard_zeroes_data
Indicates whether a block storage domain supports the property that discard zeroes the data. A storage
715
Red Hat Virtualization 4.3 REST API Guide
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.259.5. 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[]
7.259.6. data_center
716
CHAPTER 7. TYPES
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
717
Red Hat Virtualization 4.3 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.
volume Volume domains store logical volumes that can be used as disks for virtual machines.
7.262.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.262.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.262.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.262.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.262.5. volume
Volume domains store logical volumes that can be used as disks for virtual machines. For example,
volumes from an OpenStack Cincer block storage service.
718
CHAPTER 7. TYPES
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.
7.263.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.263.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.263.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.
Name Summary
719
Red Hat Virtualization 4.3 REST API Guide
Name Summary
7.264.1. cinder
Cinder storage domain. For more details on Cinder please go to Cinder.
7.264.2. glance
Glance storage domain. For more details on Glance please go to Glance.
7.264.3. glusterfs
Gluster-FS storage domain. For more details on Gluster please go to Gluster.
Name Summary
720
CHAPTER 7. TYPES
group Group Reference to the group which has this tag assigned.
721
Red Hat Virtualization 4.3 REST API Guide
host Host Reference to the host which has this tag assigned.
template Template Reference to the template which has this tag assigned.
user User Reference to the user who has this tag assigned.
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
722
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.
723
Red Hat Virtualization 4.3 REST API Guide
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
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).
7.269.1. 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.
724
CHAPTER 7. TYPES
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.269.2. 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.269.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.269.4. 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
725
Red Hat Virtualization 4.3 REST API Guide
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.269.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.269.6. 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.269.7. 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)
726
CHAPTER 7. TYPES
7.269.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.269.9. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.269.10. 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>
727
Red Hat Virtualization 4.3 REST API Guide
</high_availability>
<placement_policy>
<hosts>
<host>
<name>Host1</name>
</host>
<host>
<name>Host2</name>
</host>
</hosts>
<affinity>pinned</affinity>
</placement_policy>
</vm>
7.269.11. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.269.12. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
quota Quota Reference to quota configuration set for this virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
728
CHAPTER 7. TYPES
Name Summary
illegal This status indicates that at least one of the disks of the template is illegal.
locked This status indicates that some operation that prevents other operations with the
template is being executed.
ok This status indicates that the template is valid and ready for use.
version_number Integer The index of this version in the versions hierarchy of the
template.
7.271.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.
729
Red Hat Virtualization 4.3 REST API Guide
7.273.1. utc_offset
Offset from UTC.
Name Summary
tcp TCP.
730
CHAPTER 7. TYPES
host Host
host_nic HostNic
enabled Boolean Determines whether the USB device should be included or not.
Name Summary
7.278.1. legacy
Legacy USB redirection.
This USB type has been deprecated since version 3.6 of the engine, and has been completely removed
731
Red Hat Virtualization 4.3 REST API Guide
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.278.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.
department String
domain_entry_i String
d
email String
last_name String
logged_in Boolean
password String
7.279.1. namespace
732
CHAPTER 7. TYPES
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
https://github.com/oVirt/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
https://github.com/oVirt/ovirt-engine-extension-aaa-jdbc for more information.
7.279.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.279.3. user_name
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:
myuser@mysubdomain.mydomain.com@myextension-authz. This attribute is a required parameter
when adding a new user.
domain Domain
groups Group[]
permissions Permission[]
ssh_public_key SshPublicKey[]
s
datum Decimal
detail String
733
Red Hat Virtualization 4.3 REST API Guide
Name Summary
decimal
integer
string
cpu_set String
vcpu Integer
build Integer
734
CHAPTER 7. TYPES
full_version String
major Integer
minor Integer
revision Integer
735
Red Hat Virtualization 4.3 REST API Guide
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.286.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>
736
CHAPTER 7. TYPES
</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:
Name Description
7.288. VM STRUCT
Represents a virtual machine.
737
Red Hat Virtualization 4.3 REST API Guide
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
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.
738
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.
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.
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.
739
Red Hat Virtualization 4.3 REST API Guide
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
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.
740
CHAPTER 7. TYPES
7.288.1. 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>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.288.2. 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.288.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.288.4. 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
741
Red Hat Virtualization 4.3 REST API Guide
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true will still contain this
attribute.
7.288.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.288.6. 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.288.7. 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
742
CHAPTER 7. TYPES
NOTE
Red Hat Virtualization Manager internally rounds values down to whole MiBs (1MiB = 220
bytes)
7.288.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
7.288.9. 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.288.10. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.288.11. 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.
743
Red Hat Virtualization 4.3 REST API Guide
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.288.12. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.288.13. 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.288.14. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual
machine.
744
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.
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[]
745
Red Hat Virtualization 4.3 REST API Guide
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.288.15. affinity_labels
Optional. Used for labeling of sub-clusters.
7.288.16. 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>
...
</packages>
</katello_erratum>
...
</katello_errata>
7.288.17. 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.288.18. statistics
746
CHAPTER 7. TYPES
Note that some statistics, notably memory.buffered and memory.cached are available only when oVirt
guest agent is installed in the virtual machine.
Name Summary
migratable
pinned
user_migratable
cpu_shares Integer
custom_cpu_m String
odel
custom_emulat String
ed_machine
747
Red Hat Virtualization 4.3 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.
748
CHAPTER 7. TYPES
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
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).
7.290.1. 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
749
Red Hat Virtualization 4.3 REST API Guide
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.290.2. 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.290.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically
restarted when it unexpectedly goes down.
7.290.4. 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.290.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
750
CHAPTER 7. TYPES
7.290.6. 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.290.7. 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.290.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
751
Red Hat Virtualization 4.3 REST API Guide
7.290.9. origin
The origin of this virtual machine.
Possible values:
ovirt
rhev
vmware
xen
external
hosted_engine
managed_hosted_engine
kvm
physical_machine
hyperv
7.290.10. 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>
752
CHAPTER 7. TYPES
<name>Host2</name>
</host>
</hosts>
<affinity>pinned</affinity>
</placement_policy>
</vm>
7.290.11. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.290.12. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be
automatically signed in the virtual machine’s operating system when console is opened.
quota Quota Reference to quota configuration set for this virtual machine.
storage_domain StorageDomain Reference to storage domain the virtual machine belongs to.
Name Summary
cdrom
floppy
affinity VmAffinity
753
Red Hat Virtualization 4.3 REST API Guide
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.
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.
754
CHAPTER 7. TYPES
7.293.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.293.2. 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.293.3. 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.
instance_type InstanceType Reference to the instance type on which this pool is based.
7.293.4. 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.293.5. 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.
755
Red Hat Virtualization 4.3 REST API Guide
Type represeting the deallocation policy of virtual machines in a virtual machines pool.
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.294.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).
7.294.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.
756
CHAPTER 7. TYPES
Name Summary
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.
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.295.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.295.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.295.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.295.4. saving_state
This status indicates that the virtual machine process is running and the virtual machine is being
757
Red Hat Virtualization 4.3 REST API Guide
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.295.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.295.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.295.7. up
This status indicates that the virtual machine process is running and the guest operating system is
loaded. Note that if no guest-agent is installed, this status is set after a predefined period of time, that
is by default 60 seconds, when running a virtual machine.
7.295.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.296.1. auto_resume
The virtual machine gets resumed automatically in the moment the storage is available again.
758
CHAPTER 7. TYPES
7.296.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.296.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.
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.298.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.
759
Red Hat Virtualization 4.3 REST API Guide
7.298.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.
Disable migration.
The following recommended configuration changes have to be set manually by the user:
7.298.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.
760
CHAPTER 7. TYPES
Name Summary
7.301.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.
761
Red Hat Virtualization 4.3 REST API Guide
When migrating a virtual machine, this virtual machine will be migrated only if all pass_through NICs are
flagged as migratable.
7.301.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.301.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
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 plugging 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
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.
762
CHAPTER 7. TYPES
7.301.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.301.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.
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>
763
Red Hat Virtualization 4.3 REST API Guide
7.302.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.302.2. source_network_profile_name
Deprecated attribute describing the name of the external network 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.
7.302.3. target_vnic_profile
Deprecated attribute describing an existing virtual NIC profile.
764
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.
id String
logical_units LogicalUnit[]
name String
7.304.1. model
Model of watchdog device. Currently supported only I6300ESB.
765
Red Hat Virtualization 4.3 REST API Guide
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.304.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.
poweroff Virtual machine will be powered off when watchdog action is triggered.
7.305.1. none
No action will be performed when watchdog action is triggered. However log message will still be
generated.
Name Summary
766
CHAPTER 7. TYPES
Name Summary
7.306.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.306.2. i6300esb
PCI based watchdog model.
Use the I6300ESB watchdog for x86_64 and PPC64 virtual machines.
factor Integer
scheduling_poli SchedulingPolicy
cy
scheduling_poli SchedulingPolicyU
cy_unit nit
767
Red Hat Virtualization 4.3 REST API Guide
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
768
APPENDIX A. PRIMITIVE TYPES
StorageDomain.available
StorageDomain.used
StorageDomain.committed
VmBase.memory
For these exception cases the minimum value is -263 (-9223372036854775808) and the maximum
value is 263-1 (9223372036854775807).
NOTE
In the future the integer type will be implemented using unlimited precission integers, so
the above limitations and exceptions will eventually disappear.
Currently the engine implements this type using 32 bit IEEE 754 single precision floating point numbers.
For some attributes this isn’t enough precision. In those exceptional cases the engine uses 64 bit double
precision floating point numbers, in particular for the following attributes:
QuotaStorageLimit.usage
QuotaStorageLimit.memory_limit
QuotaStorageLimit.memory_usage
NOTE
In the future the decimal type will be implemented using unlimited precision decimal
numbers, so the above limitations and exceptions will eventually disappear.
The format returned by the engine is the one described in the XML Schema specification when
requesting XML. For example, if you send a request like this to retrieve the XML representation of a
virtual machine:
GET /ovirt-engine/api/vms/123
Accept: application/xml
769
Red Hat Virtualization 4.3 REST API Guide
When requesting the JSON representation the engine uses a different, format: an integer containing
the number of seconds since Jan 1st 1970, also know as epoch time. For example, if you send a request
like this to retrieve the JSON representation of a virtual machine:
GET /ovirt-engine/api/vms/123
Accept: application/json
{
"id": "123",
"href="/ovirt-engine/api/vms/123",
...
"creation_time": 1472564909990,
...
}
NOTE
In both cases, the dates returned by the engine use the time zone configured in the
server where it is running, in the above examples it is UTC+2.
770
APPENDIX B. CHANGES IN VERSION 4 OF THE API
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
MAC Mac
771
Red Hat Virtualization 4.3 REST API Guide
Version 3 Version 4
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
Currently the status of different objects is reported using the Status type, which contains a state string
772
APPENDIX B. CHANGES IN VERSION 4 OF THE API
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>
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.
773
Red Hat Virtualization 4.3 REST API Guide
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.
In 4.0 it the capabilities service has been completely removed, and replaced by the new clusterlevels
774
APPENDIX B. CHANGES IN VERSION 4 OF THE API
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:
<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.
775
Red Hat Virtualization 4.3 REST API Guide
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.
776
APPENDIX B. CHANGES IN VERSION 4 OF THE API
The cpu element used to have an id attribute that indicates the type of CPU:
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 Conroe 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>
777
Red Hat Virtualization 4.3 REST API Guide
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>
<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"/>
778
APPENDIX B. CHANGES IN VERSION 4 OF THE API
This is contrary to the common practice in the API. They have been replaced by inner elements:
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
<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>
779
Red Hat Virtualization 4.3 REST API Guide
In the past the IP address element used attributes for its properties:
This is contrary to the common practice in the API. They have been replaced with inner elements:
<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>
780
APPENDIX B. CHANGES IN VERSION 4 OF THE API
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.
781
Red Hat Virtualization 4.3 REST API Guide
POST /ovirt-engine/api/vms/123/start
<action>
<vm>
...
<boot>
<dev>cdrom</dev>
</boot>
<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>
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
782
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<vm>
...
</vm>
The disks.detach_only element was used to indicate that when removing a virtual machine the disks
don’t have to be removed, but just detached from the virtual machine:
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
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:
783
Red Hat Virtualization 4.3 REST API Guide
GET /ovirt-engine/api/storagedomains/123
<storage_domain>
...
<storage>
...
<volume_group>
<logical_units>
<logical_unit>
<!-- First LU -->
</logical_unit>
<logical_unit>
<!-- Second LU -->
</logical_unit>
...
</logical_units>
</volume_group>
</storage>
</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/>
GET /ovirt-engine/api/hosts/123/storage
<host_storage>
<storage>
...
784
APPENDIX B. CHANGES IN VERSION 4 OF THE API
</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
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>
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
785
Red Hat Virtualization 4.3 REST API Guide
<vm>
<template id="..."/>
</vm>
POST /ovirt-engine/api/templates?clone_permissions=true
<template>
<vm id="..."/>
</template>
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>
786
APPENDIX B. CHANGES IN VERSION 4 OF THE API
</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
<host>
...
<hardware_information>
<supported_rng_sources>
<supported_rng_source>random</supported_rng_source>
</supported_rng_sources>
</hardware_information>
...
</host>
<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"/>
787
Red Hat Virtualization 4.3 REST API Guide
</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>
<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>
788
APPENDIX B. CHANGES IN VERSION 4 OF THE API
POST .../bricks?replica_count=3&stripe_count=2
DELETE .../bricks?replica_count=3
<statistic>
<type>GAUGE</type>
<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>
<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>
789
Red Hat Virtualization 4.3 REST API Guide
<vcpu_pins>
<vcpu_pin>...</vcpu_pin>
<vcpu_pin>...</vcpu_pin>
...
</vcpu_pins>
</cpu_tune>
</cpu>
</vm>
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
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>
790
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<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:
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&force=true
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&destroy=true
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
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
791
Red Hat Virtualization 4.3 REST API Guide
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
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
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
792
APPENDIX B. CHANGES IN VERSION 4 OF THE API
<bricks>
<bricks id="..."/>
<bricks id="..."/>
...
</bricks>
POST /ovirt-engine/api/schedulingpolicies
<scheduling_policy>
...
<name>policy_name</name>
...
</scheduling_policy>
PUT /ovirt-engine/api/schedulingpolicies/123
<scheduling_policy>
...
<name>policy_name</name>
...
</scheduling_policy>
<snapshot>
...
<snapshot_type>regular|active|stateless|preview</snapshot_type>
...
</snapshot>
<network_attachment>
<reported_configurations>
793
Red Hat Virtualization 4.3 REST API Guide
<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>
...
</reported_configurations>
</network_attachment>
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 Conroe 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
794
APPENDIX B. CHANGES IN VERSION 4 OF THE API
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>
795
Red Hat Virtualization 4.3 REST API Guide
<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
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>
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>
796
APPENDIX B. CHANGES IN VERSION 4 OF THE API
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>
797