1. Introduction
The oVirt Engine provides a Representational State Transfer (REST) API. The API provides software developers and system administrators with control over their oVirt environment outside of the standard web interface. The API is useful for developers and administrators to integrate the functionality of a oVirt environment with custom scripts or external applications that access the API via the standard Hypertext Transfer Protocol (HTTP).
The benefits of the API are:
-
Broad client support - Any programming language, framework, or system with support for HTTP protocol can use the API.
-
Self descriptive - Client applications require minimal knowledge of the virtualization infrastructure, as many details are discovered at runtime.
-
Resource-based model - The resource-based REST model provides a natural way to manage a virtualization platform.
This provides developers and administrators with the ability to:
-
Integrate with enterprise IT systems.
-
Integrate with third-party virtualization software.
-
Perform automated maintenance or error-checking tasks.
-
Automate repetitive tasks in a oVirt environment with scripts.
This documentation acts as a reference for the oVirt API. It aims to provide developers and administrators with instructions and examples to help harness the functionality of their oVirt environment through the API, either directly or using the provided SDKs.
1.1. Representational State Transfer
Representational State Transfer (REST) is a design architecture that
focuses on resources for a specific service and their representations. A
resource representation is a key abstraction of information that
corresponds to one specific managed element on a server. A client sends
a request to a server element located at a Uniform Resource Identifier
(URI) and performs operations with standard HTTP methods, such as GET
,
POST
, PUT
, and DELETE
. This provides a stateless communication
between the client and server where each request acts independently of any
other request, and contains all the information necessary to complete the
request.
1.2. API Prerequisites
Prerequisites for using the oVirt API:
-
A networked installation of oVirt Engine, which includes the API.
-
A client or programming library that initiates and receives HTTP requests from the API server. For example:
-
The oVirt Python SDK.
-
The oVirt Ruby SDK.
-
The oVirt Java SDK.
-
The cURL command line tool.
-
RESTClient, a debugger for RESTful web services.
-
-
Knowledge of Hypertext Transfer Protocol (HTTP), the protocol used for REST API interactions. The Internet Engineering Task Force provides a Request for Comments (RFC) explaining the Hypertext Transfer Protocol at http://www.ietf.org/rfc/rfc2616.txt.
-
Knowledge of Extensible Markup Language (XML) or JavaScript Object Notation (JSON), which the API uses to construct resource representations. The W3C provides a full specification on XML at http://www.w3.org/TR/xml. ECMA International provide a free publication on JSON at http://www.ecma-international.org.
2. Authentication and Security
2.1. TLS/SSL Certification
The oVirt API requires Hypertext Transfer Protocol Secure (HTTPS) [1] for secure interaction with client software, such as the SDK and CLI components. This involves obtaining the CA certificate used by the server, and importing it into the certificate store of your client.
2.1.1. Obtaining the CA Certificate
You can obtain the CA certificate from the oVirt Engine and transfer it to the client machine using one of these methods:
- Method 1
-
The preferred method for obtaining the CA certificate is to use the
openssl s_client
command line tool to perform a real TLS handshake with the server, and then extract the certificates that it presents. Run a command like this:$ openssl s_client \ -connect myengine.example.com:443 \ -showcerts \ < /dev/null
This command will connect to the server and display output similar to the following:
CONNECTED(00000003) depth=1 C = US, O = Example Inc., CN = myengine.example.com.23416 verify error:num=19:self signed certificate in certificate chain --- Certificate chain 0 s:/C=US/O=Example Inc./CN=myengine.example.com i:/C=US/O=Example Inc./CN=myengine.example.com.23416 -----BEGIN CERTIFICATE----- MIIEaTCCA1GgAwIBAgICEAQwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs SVlJe7e5FTEtHJGTAeWWM6dGbsFhip5VXM0gfqg= -----END CERTIFICATE----- 1 s:/C=US/O=Example Inc./CN=myengine.example.com.23416 i:/C=US/O=Example Inc./CN=myengine.example.com.23416 -----BEGIN CERTIFICATE----- MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs Pkyg1rQHR6ebGQ== -----END CERTIFICATE-----
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 theca.crt
file. The result should look like this:-----BEGIN CERTIFICATE----- MIIDxjCCAq6gAwIBAgICEAAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMx FTATBgNVBAoTDEV4YW1wbGUgSW5jLjEjMCEGA1UEAxMaZW5naW5lNDEuZXhhbXBs Pkyg1rQHR6ebGQ== -----END CERTIFICATE-----
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 oVirt Engine.Examples of command line tools include
curl
andwget
, 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.
-
If the browser downloads the certificate: save the file as
ca.crt
. -
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 oVirt Engine, export the certificate from the truststore, and copy it to your client machine.
-
Log in to the oVirt Engine machine as
root
. -
Export the certificate from the truststore using the Java
keytool
management utility:# keytool \ -keystore /etc/pki/ovirt-engine/.truststore \ -storepass mypass \ -exportcert \ -alias cacert \ -rfc \ -file ca.crt
This creates a certificate file called
ca.crt
. -
Copy the certificate to the client machine using the
scp
command:$ scp ca.crt myuser@myclient.example.com:/home/myuser/.
-
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 oVirt Engine account has access to the API. All requests must be authenticated using either OAuth or basic authentication, as described below.
2.2.1. OAuth Authentication
Since version 4.0 of oVirt the preferred authentication mechanism is OAuth 2.0, as described in RFC 6749.
OAuth is a sophisticated protocol, with several mechanisms for obtaining authorization and access tokens. For use with the oVirt 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 oVirt Engine single sign-on service:
POST /ovirt-engine/sso/oauth/token HTTP/1.1 Host: myengine.example.com Content-Type: application/x-www-form-urlencoded Accept: application/json
The request body must contain the grant_type
, scope
, username
,
and password
parameters:
Name | Value |
---|---|
|
|
|
|
|
|
|
|
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
The scope parameter is described as optional in the OAuth
RFC, but when using it with the oVirt API it is mandatory, and
its value must be ovirt-app-api .
|
If the user name and password are valid, the oVirt Engine 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:
GET /ovirt-engine/api/vms HTTP/1.1 Host: myengine.example.com Accept: application/xml Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI=
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:
HTTP/1.1 401 Unauthorized
When this happens, a new token is needed, as the oVirt Engine single sign-on service does not currently support refreshing tokens. A new token can be requested using the same method described above.
2.2.2. Basic Authentication
Basic authentication is supported only for backwards compatibility; it is deprecated since version 4.0 of oVirt, and will be removed in the future. |
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:
HEAD /ovirt-engine/api HTTP/1.1 Host: myengine.example.com HTTP/1.1 401 Authorization Required
Request are issued with an Authorization
header for the specified
realm. Encode an appropriate oVirt Engine 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 |
---|---|
User name |
|
Domain |
|
Password |
|
Unencoded credentials |
|
Base64 encoded credentials |
|
Provide the Base64-encoded credentials as shown:
HEAD /ovirt-engine/api HTTP/1.1 Host: myengine.example.com Authorization: Basic YWRtaW5AaW50ZXJuYWw6bXlwYXNzd29yZA== HTTP/1.1 200 OK
Basic authentication involves potentially sensitive information, such as passwords, sent as plain text. The API requires Hypertext Transfer Protocol Secure (HTTPS) for transport-level encryption of plain-text requests. |
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.
|
2.2.3. Authentication Sessions
The API also provides authentication session support. Send an initial request with authentication details, then send all subsequent requests using a session cookie to authenticate.
Requesting an Authenticated Session
-
Send a request with the
Authorization
andPrefer: persistent-auth
headers:HEAD /ovirt-engine/api HTTP/1.1 Host: myengine.example.com Authorization: Basic YWRtaW5AaW50ZXJuYWw6bXlwYXNzd29yZA== Prefer: persistent-auth HTTP/1.1 200 OK ...
This returns a response with the following header:
Set-Cookie: JSESSIONID=5dQja5ubr4yvI2MM2z+LZxrK; Path=/ovirt-engine/api; Secure
Take note of the
JSESSIONID=
value. In this example the value is5dQja5ubr4yvI2MM2z+LZxrK
. -
Send all subsequent requests with the
Prefer: persistent-auth
andCookie
headers with theJSESSIONID=
value. TheAuthorization
header is no longer needed when using an authenticated session.HEAD /ovirt-engine/api HTTP/1.1 Host: myengine.example.com Prefer: persistent-auth Cookie: JSESSIONID=5dQja5ubr4yvI2MM2z+LZxrK HTTP/1.1 200 OK ...
-
When the session is no longer required, perform a request to the sever without the
Prefer: persistent-auth
header.HEAD /ovirt-engine/api HTTP/1.1 Host: myengine.example.com Authorization: Basic YWRtaW5AaW50ZXJuYWw6bXlwYXNzd29yZA== HTTP/1.1 200 OK ...
3. Common concepts
3.1. Types
The API uses the type concept to describe the different kinds of objects accepted and returned.
There are three relevant kinds of types:
3.2. Identified types
Many of the types used by the API represent identified objects, objects that have an unique identifier and exist independently of other objects. The types used to describe those objects extend the Identified type, which contains the following set of common attributes:
Attribute | Type | Description |
---|---|---|
|
Each object in the virtualization infrastructure contains an |
|
|
The canonical location of the object as an absolute path. |
|
|
A user-supplied human readable name for the object. The |
|
|
A free-form user-supplied human readable description of the object. |
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.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.
3.5.1. XML representation
The XML representation of an object consists of an XML element
corresponding to the type of the object, XML attributes for the id
and
href
attributes, and nested XML elements for the rest of the
attributes. For example, the XML representation for a virtual machine
appears as follows:
<vm id="123" href="/ovirt-engine/api/vms/123">
<name>myvm</name>
<description>My VM</description>
<memory>1073741824</memory>
...
</vm>
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>
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.
|
3.5.2. JSON representation
The JSON representation of an object consists of a JSON document
containing a name/value pair for each attribute (including id
and
href
). For example, the JSON representation of a virtual machine
appears as follows:
{ "id": "123", "href": "/ovirt-engine/api/vms/123", "name": "myvm", "description": "My VM", "memory": 1073741824, ... }
The JSON representation of a collection of objects consists of a JSON document containg a name/value pair (named ater the type of the objects, in singular) which in turn contains an array with the representations of the objects of the collection. For example, the JSON respresentation for a collection of virtual machines appears as follows:
{ "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.
There are two relevant kinds of services:
- Services that manage a collection of objects
-
These services are reponsible for listing existing objects and adding new objects. For example, the Vms service is responsible for managing the collection of virtual machines available in the system.
- Services that manage a specific object
-
These services are responsible for retrieving, updating, deleting and executing actions in specific objects. For example, the Vm service is responsible for managing a specific virtual machine.
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.
For the more usual methods there is a direct mapping between the name of the method and the name of the HTTP method:
Method name | HTTP method |
---|---|
|
POST |
|
GET |
|
GET |
|
PUT |
|
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
Each method has a set of parameters.
Parameters are classified into two categories:
- Main parameter
-
The main parameter corresponds the object or collection that is retrieved, added or updated. This only applies to the
add
,get
,list
andupdate
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:
POST /ovirt-engine/api/vms HTTP/1.1 Host: myengine.example.com Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI= 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:
HTTP/1.1 201 Created Content-Type: application/xml <vm href="/ovirt-engine/api/vms/123" id="123"> <name>myvm</name> <description>My VM</description> ... </vm>
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:
POST /ovirt-engine/api/vms?clone=true HTTP/1.1 Host: myengine.example.com Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI= 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>
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:
POST /ovirt-engine/api/vms/123/start HTTP/1.1 Host: myengine.example.com Authorization: Bearer fqbR1ftzh8wBCviLxJcYuV5oSDI= Content-Type: application/xml Accept: application/xml <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
3.7.1. Maximum results parameter
Use the max
parameter to limit the number of objects returned. For
example, the following request will only return one virtual machine,
regardless of how many are available in the system:
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.
3.7.2. Case sensitivity
By default queries are not case sensitive. For example, the following
request will return the virtual machines named myvm
, MyVM
and MYVM
:
GET /ovirt-engine/api/vms?search=name%3Dmyvm
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
3.7.3. Search syntax
The search
parameters use the same syntax as the oVirt query
language:
(criteria) [sortby (element) asc|desc]
The sortby
clause is optional and only needed when ordering results.
Example search queries:
Collection | Criteria | Result |
---|---|---|
|
|
Returns a list of all hosts running virtual machines that are |
|
|
Returns a list of all virtual machines running on the specified domain. |
|
|
Returns a list of all virtual machines belonging to users with the user
name |
|
|
Returns a list of all events with severity higher than |
|
|
Returns a list of all events with severity higher than |
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 oVirt 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
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
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.
|
Increase the page
value to retrieve the next 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
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. |
3.8. 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
The response body will look like this:
<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.
3.9. Handling errors
Some errors require further explanation beyond a standard HTTP status
code. For example, the API reports an unsuccessful object state update
or action with a fault
in the response body. The fault contains the
reason
and detail
attributes. For example, when the server receives
a request to create a virtual machine without the mandatory name
attribute it will respond with the following HTTP response line:
HTTP/1.1 400 Bad Request
And the following response body:
<fault>
<reason>Incomplete parameters</reason>
<detail>Vm [name] required for add</detail>
</fault>
4. Quick start example
This chapter provides an example to demonstrate the REST API’s ability to setup a basic oVirt environment and create a virtual machine. In addition to the standard prerequisites, this example requires the following:
-
A networked and configured oVirt installation;
-
An ISO file containing a desired virtual machine operating system to install. This chapter uses CentOS 7 for our installation ISO example; and
-
oVirt’s
engine-iso-uploader
tool to upload your chosen operating system ISO file.
This example uses curl
to demonstrate API
requests with a client application. Note that any application capable of
HTTP requests can substitute for curl
.
For simplicity, the HTTP request headers in this example omit
the Host and Authorization headers. However, these fields are mandatory
and require data specific to your installation of oVirt.
|
All the curl examples use admin@internal as the user
name, mypassword as the password, /etc/pki/ovirt-engine/ca.pem as the
certificate location and myengine.example.com as the host name. These
are just examples, Make sure to replace them with valid values for your
environment.
|
oVirt generates an unique identifier for the id
attribute for each resource. Identifier codes in this example might
appear different to the identifier codes in your oVirt
environment.
|
In many examples of this section some of the attributes of results
returned by the API have been omitted, to make them shorter. You can
always use the reference to find the complete list of attributes. For
example, if you want to see the complete list of attributes of the
Cluster type, just go here.
|
4.1. Example: Access API entry point
The following request retrieves a representation of the main entry point for version 4 of of the API:
GET /ovirt-engine/api HTTP/1.1 Version: 4 Accept: application/xml
Same request, but using the /v4
URL prefix instead of the Version
header:
GET /ovirt-engine/api/v4 HTTP/1.1 Accept: application/xml
Same request, using the curl
command:
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
The result will be an object of type Api:
<api>
<link href="/ovirt-engine/api/clusters" rel="clusters"/>
<link href="/ovirt-engine/api/datacenters" rel="datacenters"/>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.0.0-0.0.el7</full_version>
<major>4</major>
<minor>0</minor>
<revision>0</revision>
</version>
</product_info>
<special_objects>
<blank_template href="..." id="..."/>
<root_tag href="..." id="..."/>
</special_objects>
<summary>
<hosts>
<active>23</active>
<total>30</total>
</hosts>
<storage_domains>
<active>5</active>
<total>6</total>
</storage_domains>
<users>
<active>12</active>
<total>102</total>
</users>
<vms>
<active>253</active>
<total>545</total>
</vms>
</summary>
<time>2016-10-06T15:38:18.548+02:00</time>
</api>
When neither the header nor the URL prefix are used, the server will
automatically select a version. The default is version # echo "ENGINE_API_DEFAULT_VERSION=3" > \ /etc/ovirt-engine/engine.conf.d/99-set-default-version.conf # systemctl restart ovirt-engine Changing this parameter affects all users of the API that don’t specify the version explicitly. |
The entry point provides a user with links to the collections in a
virtualization environment. The rel
attribute of each collection link
provides a reference point for each link. The next step in this example
examines the data center collection, which is available through the
datacenters
link.
The entry point also contains other data such as product_info, special_objects and summary. This data is covered in chapters outside this example.
4.2. Example: List data centers
oVirt creates a Default
data center on installation. This
example uses the Default
data center as the basis for our virtual
environment.
The following request retrieves a representation of the data centers:
GET /ovirt-engine/api/datacenters HTTP/1.1 Accept: application/xml
Same request, using the curl
command:
# 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
The result will be a list of objects of type DataCenter:
<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 your virtual environment.
The data center also contains a link to the service that manages the storage domains attached to the data center:
<link href="/ovirt-engine/api/datacenters/001/storagedomains" rel="storagedomains"/>
That service is used to attach storage domains from the main
storagedomains
collection, which this example covers later.
4.3. Example: List host clusters
oVirt creates a Default
hosts cluster on installation. This
example uses the Default
cluster to group resources in your
oVirt environment.
The following request retrieves a representation of the cluster collection:
GET /ovirt-engine/api/clusters HTTP/1.1 Accept: application/xml
Same request, using the curl
command:
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
The result will be a list of objects of type Cluster:
<clusters>
<cluster href="/ovirt-engine/api/clusters/002" id="002">
<name>Default</name>
<description>The default server cluster</description>
<link href="/ovirt-engine/api/clusters/002/networks" rel="networks"/>
<link href="/ovirt-engine/api/clusters/002" rel="permissions"/>
...
<cpu>
<architecture>x86_64</architecture>
<type>Intel Conroe Family</type>
</cpu>
<version>
<major>4</major>
<minor>0</minor>
</version>
<data_center href="/ovirt-engine/api/datacenters/001" id="001"/>
</cluster>
...
</clusters>
Note the id
of your Default
host cluster. It identifies this host
cluster in relation to other resources of your virtual environment.
The Default
cluster is associated with the Default
data center
through a relationship using the id
and href
attributes of the
data_center
link:
<data_center href="/ovirt-engine/api/datacenters/001" id="001"/>
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.
4.4. Example: List logical networks
oVirt creates a default ovirtmgmt
network on installation.
This network acts as the management network for oVirt Engine to access
hosts.
This network is associated with our Default
cluster and is a member of
the Default
data center. This example uses the ovirtmgmt
network to
connect our virtual machines.
The following request retrieves the list of logical networks:
GET /ovirt-engine/api/networks HTTP/1.1 Accept: application/xml
Same request, using the curl
command:
# 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
The result will be a list of objects of type Network:
<networks>
<network href="/ovirt-engine/api/networks/003" id="003">
<name>ovirtmgmt</name>
<description>Management Network</description>
<link href="/ovirt-engine/api/networks/003/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/networks/003/vnicprofiles" rel="vnicprofiles"/>
<link href="/ovirt-engine/api/networks/003/networklabels" rel="networklabels"/>
<mtu>0</mtu>
<stp>false</stp>
<usages>
<usage>vm</usage>
</usages>
<data_center href="/ovirt-engine/api/datacenters/001" id="001"/>
</network>
...
</networks>
The ovirtmgmt
network is attached to the Default
data center through a
relationship using the data center’s id
.
The ovirtmgmt
network is also attached to the Default
cluster through a
relationship in the cluster’s network sub-collection.
4.5. Example: List hosts
This example retrieves the list of hosts and shows a host named myhost
registered with the virtualization environment:
GET /ovirt-engine/api/hosts HTTP/1.1 Accept: application/xml
Same request, using the curl
command:
# 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
The result will be a list of objects of type Host:
<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>
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.
4.6. Example: Create NFS data storage
An NFS data storage domain is an exported NFS share attached to a data
center and provides storage for virtualized guest images. Creation of a
new storage domain requires a POST
request, with the storage domain
representation included, sent to the URL of the storage domain
collection.
You can enable the wipe after delete option by default on the storage
domain. To configure this specify wipe_after_delete
in the POST
request. This option can be edited after the domain is created, but
doing so will not change the wipe after delete property of disks that
already exist.
The request should be like this:
POST /ovirt-engine/api/storagedomains HTTP/1.1 Accept: application/xml Content-type: application/xml
And the request body should be like this:
<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>
The same request, using the curl
command:
# curl \ --cacert '/etc/pki/ovirt-engine/ca.pem' \ --user 'admin@internal:mypassword' \ --request POST \ --header 'Version: 4' \ --header 'Content-Type: application/xml' \ --header 'Accept: application/xml' \ --data ' <storage_domain> <name>mydata</name> <description>My data</description> <type>data</type> <storage> <type>nfs</type> <address>mynfs.example.com</address> <path>/exports/mydata</path> </storage> <host> <name>myhost</name> </host> </storage_domain> ' \ https://myengine.example.com/ovirt-engine/api/storagedomains
The server uses host myhost
to create a NFS data storage domain called
mydata
with an export path of mynfs.example.com:/exports/mydata
. The
API also returns the following representation of the newly created
storage domain resource (of type StorageDomain):
<storage_domain href="/ovirt-engine/api/storagedomains/005" id="005">
<name>mydata</name>
<description>My data</description>
<available>42949672960</available>
<committed>0</committed>
<master>false</master>
<status>unattached</status>
<storage>
<address>mynfs.example.com</address>
<path>/exports/mydata</path>
<type>nfs</type>
</storage>
<storage_format>v3</storage_format>
<type>data</type>
<used>9663676416</used>
</storage_domain>
4.7. Example: Create NFS ISO storage
An NFS ISO storage domain is a mounted NFS share attached to a data
center and provides storage for DVD/CD-ROM ISO and virtual floppy disk
(VFD) image files. Creation of a new storage domain requires a POST
request, with the storage domain representation included, sent to the
URL of the storage domain collection:
The request should be like this:
POST /ovirt-engine/api/storagedomains HTTP/1.1 Accept: application/xml Content-type: application/xml
And the request body should be like this:
<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>
The same request, using the curl
command:
# 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):
<storage_domain href="/ovirt-engine/api/storagedomains/006" id="006">
<name>myiso</name>
<description>My ISOs</description>
<available>42949672960</available>
<committed>0</committed>
<master>false</master>
<status>unattached</status>
<storage>
<address>mynfs.example.com</address>
<path>/exports/myisos</path>
<type>nfs</type>
</storage>
<storage_format>v1</storage_format>
<type>iso</type>
<used>9663676416</used>
</storage_domain>
4.8. Example: Attach storage domains to data center
The following example attaches the mydata
and myisos
storage domains
to the Default
data center.
To attach the mydata
storage domain, send a request like this:
POST /ovirt-engine/api/datacenters/001/storagedomains HTTP/1.1 Accept: application/xml Content-type: application/xml
With a request body like this:
<storage_domain>
<name>mydata</name>
</storage_domain>
Same request, using the curl
command:
# 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
To attach the myisos
storage domain, send a request like this:
POST /ovirt-engine/api/datacenters/001/storagedomains HTTP/1.1 Accept: application/xml Content-type: application/xml
With a request body like this:
<storage_domain>
<name>myisos</name>
</storage_domain>
Same request, using the curl
command:
# curl \ --cacert '/etc/pki/ovirt-engine/ca.pem' \ --user 'admin@internal:mypassword' \ --request POST \ --header 'Version: 4' \ --header 'Content-Type: application/xml' \ --header 'Accept: application/xml' \ --data ' <storage_domain> <name>myisos</name> </storage_domain> ' \ https://myengine.example.com/ovirt-engine/api/datacenters/001/storagedomains
4.9. Example: Create virtual machine
The following example creates a virtual machine called myvm
on the
Default
cluster using the virtualization environment’s Blank
template as a basis. The request also defines the virtual machine’s
memory as 512 MiB and sets the boot device to a virtual hard disk.
The request should be contain an object of type Vm describing the virtual machine to create:
POST /ovirt-engine/api/vms HTTP/1.1
Accept: application/xml
Content-type: application/xml
And the request body should be like this:
<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>
Same request, using the curl
command:
# curl \ --cacert '/etc/pki/ovirt-engine/ca.pem' \ --user 'admin@internal:mypassword' \ --request POST \ --header 'Version: 4' \ --header 'Content-Type: application/xml' \ --header 'Accept: application/xml' \ --data ' <vm> <name>myvm</name> <description>My VM</description> <cluster> <name>Default</name> </cluster> <template> <name>Blank</name> </template> <memory>536870912</memory> <os> <boot> <devices> <device>hd</device> </devices> </boot> </os> </vm> ' \ https://myengine.example.com/ovirt-engine/api/vms
The response body will be an object of the Vm type:
<vm href="/ovirt-engine/api/vms/007" id="007">
<name>myvm</name>
<link href="/ovirt-engine/api/vms/007/diskattachments" rel="diskattachments"/>
<link href="/ovirt-engine/api/vms/007/nics" rel="nics"/>
...
<cpu>
<architecture>x86_64</architecture>
<topology>
<cores>1</cores>
<sockets>1</sockets>
<threads>1</threads>
</topology>
</cpu>
<memory>1073741824</memory>
<os>
<boot>
<devices>
<device>hd</device>
</devices>
</boot>
<type>other</type>
</os>
<type>desktop</type>
<cluster href="/ovirt-engine/api/clusters/002" id="002"/>
<status>down</status>
<original_template href="/ovirt-engine/api/templates/000" id="00"/>
<template href="/ovirt-engine/api/templates/000" id="000"/>
</vm>
4.10. Example: Create a virtual machine NIC
The following example creates a virtual network interface to connect the
example virtual machine to the ovirtmgmt
network.
The request should be like this:
POST /ovirt-engine/api/vms/007/nics HTTP/1.1 Content-Type: application/xml Accept: application/xml
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>
Same request, using the curl
command:
# 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
4.11. Example: Create virtual machine disk
The following example creates an 8 GiB copy-on-write disk for the example virtual machine.
The request should be like this:
POST /ovirt-engine/api/vms/007/diskattachments HTTP/1.1 Content-Type: application/xml Accept: application/xml
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>
Same request, using the curl
command:
# 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.
4.12. Example: Attach ISO image to virtual machine
The boot media for our example virtual machine requires an CD-ROM or DVD ISO image for an operating system installation. This example uses a CentOS 7 image for installation.
ISO images must be available in the myisos
ISO domain for the virtual
machines to use. oVirt provides an uploader tool that ensures
that the ISO images are uploaded into the correct directory path with
the correct user permissions.
Once the ISO is uploaded, an API can be used to request the list of files from the ISO storage domain:
GET /ovirt-engine/api/storagedomains/006/files HTTP/1.1 Accept: application/xml
Same request, using the curl
command:
# curl \ --cacert '/etc/pki/ovirt-engine/ca.pem' \ --user 'admin@internal:mypassword' \ --request GET \ --header 'Version: 4' \ --header 'Accept: application/xml' \ https://myengine.example.com/ovirt-engine/api/storagedomains/006/files
The server returns the following list of objects of type File, one for each available ISO (or floppy) image:
<files>
<file href="..." id="CentOS-7-x86_64-Minimal.iso">
<name>CentOS-7-x86_64-Minimal.iso</name>
</file>
...
</files>
An API user attaches the CentOS-7-x86_64-Minimal.iso
to our example
virtual machine. Attaching an ISO image is equivalent to using the
Change CD button in the administration or user portal applications.
The request should be like this:
PUT /ovirt-engine/api/vms/007/cdroms/00000000-0000-0000-0000-000000000000 HTTP/1.1 Accept: application/xml Content-type: application/xml
The request body should be an object of type Cdrom
containing an inner file
attribute to indicate the identifier of the
ISO (or floppy) image:
<cdrom>
<file id="CentOS-7-x86_64-Minimal.iso"/>
</cdrom>
Same request, using the curl
command:
# 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.
4.13. Example: Start the virtual machine
The virtual environment is complete and the virtual machine contains all necessary components to function. This example starts the virtual machine using the start method.
The request should be like this:
POST /ovirt-engine/api/vms/007/start HTTP/1.1 Accept: application/xml Content-type: application/xml
The request body should be like this:
<action>
<vm>
<os>
<boot>
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
</action>
Same request, using the curl
command:
# 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.
5. Requests
This section enumerates all the requests that are available in the API.
-
DELETE /clusters/{cluster:id}/affinitygroups/{group:id}/vms/{vm:id}
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/getprofilestatistics
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
-
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
-
DELETE /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/activate
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/migrate
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/stopmigrate
-
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
-
DELETE /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/replace
-
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics
-
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics/{statistic:id}
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/rebalance
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/resetalloptions
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/resetoption
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/setoption
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/start
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/startprofile
-
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/statistics
-
GET /clusters/{cluster:id}/glustervolumes/{volume:id}/statistics/{statistic:id}
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/stopprofile
-
POST /clusters/{cluster:id}/glustervolumes/{volume:id}/stoprebalance
-
GET /clusters/{cluster:id}/networkfilters/{networkfilter:id}
-
DELETE /cpuprofiles/{profile:id}/permissions/{permission:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
-
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/affinitygroups/{group:id}/vms/{vm:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/cpuprofiles/{profile:id}
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/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}/glusterhooks
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}/disable
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}/enable
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glusterhooks/{hook:id}/resolve
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/getprofilestatistics
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/activate
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/migrate
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/stopmigrate
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/replace
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/glusterbricks/{brick:id}/statistics/{statistic:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/rebalance
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/resetalloptions
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/resetoption
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/setoption
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/start
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/startprofile
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/statistics
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/statistics/{statistic:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/stop
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/stopprofile
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/glustervolumes/{volume:id}/stoprebalance
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networkfilters
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networkfilters/{networkfilter:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/networks
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networks
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/networks/{network:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/networks/{network:id}
-
PUT /datacenters/{datacenter:id}/clusters/{cluster:id}/networks/{network:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions
-
GET /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions/{permission:id}
-
DELETE /datacenters/{datacenter:id}/clusters/{cluster:id}/permissions/{permission:id}
-
POST /datacenters/{datacenter:id}/clusters/{cluster:id}/resetemulatedmachine
-
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}
-
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}
-
PUT /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}
-
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}
-
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels/{label:id}
-
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/networklabels/{label:id}
-
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions/{permission:id}
-
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/permissions/{permission:id}
-
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
-
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}
-
POST /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions
-
GET /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions/{permission:id}
-
DELETE /datacenters/{datacenter:id}/iscsibonds/{iscsibond:id}/networks/{network:id}/vnicprofiles/{profile:id}/permissions/{permission: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}
-
GET /datacenters/{datacenter:id}/permissions/{permission:id}
-
DELETE /datacenters/{datacenter:id}/permissions/{permission: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}
-
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}
-
DELETE /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/activate
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/deactivate
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks
-
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks
-
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}
-
DELETE /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/copy
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/export
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/move
-
POST /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions
-
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions
-
GET /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:id}
-
DELETE /datacenters/{datacenter:id}/storagedomains/{storagedomain:id}/disks/{disk:id}/permissions/{permission:id}
-
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}
-
GET /diskprofiles/{diskprofile:id}/permissions/{permission:id}
-
DELETE /diskprofiles/{diskprofile:id}/permissions/{permission:id}
-
GET /externalhostproviders/{provider:id}/certificates/{certificate:id}
-
GET /externalhostproviders/{provider:id}/computeresources/{resource:id}
-
GET /externalhostproviders/{provider:id}/discoveredhosts/{host:id}
-
GET /externalhostproviders/{provider:id}/hostgroups/{group:id}
-
POST /externalhostproviders/{provider:id}/importcertificates
-
DELETE /groups/{group:id}/roles/{role:id}/permits/{permit:id}
-
GET /hosts/{host:id}/nics/{nic:id}/linklayerdiscoveryprotocolelements
-
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}
-
DELETE /hosts/{host:id}/nics/{nic:id}/networklabels/{label:id}
-
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/{node:id}/statistics/{statistic:id}
-
GET /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
-
PUT /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
-
DELETE /hosts/{host:id}/storageconnectionextensions/{storageconnectionextension:id}
-
GET /hosts/{host:id}/unmanagednetworks/{unmanagednetwork:id}
-
DELETE /hosts/{host:id}/unmanagednetworks/{unmanagednetwork:id}
-
GET /instancetypes/{instancetype:id}/graphicsconsoles/{console:id}
-
DELETE /instancetypes/{instancetype:id}/graphicsconsoles/{console:id}
-
GET /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
-
PUT /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
-
DELETE /instancetypes/{instancetype:id}/watchdogs/{watchdog:id}
-
GET /jobs/{job:id}/steps/{step:id}/statistics/{statistic: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}
-
GET /openstackimageproviders/{provider:id}/certificates/{certificate:id}
-
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
-
GET /openstacknetworkproviders/{provider:id}/certificates/{certificate:id}
-
POST /openstacknetworkproviders/{provider:id}/importcertificates
-
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/{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/{certificate:id}
-
POST /openstackvolumeproviders/{provider:id}/importcertificates
-
POST /openstackvolumeproviders/{provider:id}/testconnectivity
-
GET /openstackvolumeproviders/{provider:id}/volumetypes/{type:id}
-
DELETE /schedulingpolicies/{policy:id}/balances/{balance:id}
-
GET /storagedomains/{storagedomain:id}/diskprofiles/{profile:id}
-
DELETE /storagedomains/{storagedomain:id}/diskprofiles/{profile: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}/sparsify
-
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/statistics
-
GET /storagedomains/{storagedomain:id}/disks/{disk:id}/statistics/{statistic:id}
-
GET /storagedomains/{storagedomain:id}/disksnapshots/{snapshot:id}
-
DELETE /storagedomains/{storagedomain:id}/disksnapshots/{snapshot:id}
-
POST /storagedomains/{storagedomain:id}/images/{image:id}/import
-
GET /storagedomains/{storagedomain:id}/permissions/{permission:id}
-
DELETE /storagedomains/{storagedomain:id}/permissions/{permission:id}
-
GET /storagedomains/{storagedomain:id}/storageconnections/{connection:id}
-
DELETE /storagedomains/{storagedomain:id}/storageconnections/{connection:id}
-
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
-
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/{disk:id}
-
POST /storagedomains/{storagedomain:id}/vms/{vm:id}/register
-
GET /templates/{template:id}/diskattachments/{attachment:id}
-
DELETE /templates/{template:id}/diskattachments/{attachment:id}
-
DELETE /templates/{template:id}/graphicsconsoles/{console:id}
-
POST /vms/{vm:id}/graphicsconsoles/{console:id}/remoteviewerconnectionfile
-
GET /vms/{vm:id}/nics/{nic:id}/reporteddevices/{reporteddevice:id}
-
DELETE /vnicprofiles/{profile:id}/permissions/{permission:id}
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 |
---|---|
|
Retrieve the affinity group details. |
|
Remove the affinity group. |
|
Update the affinity group. |
6.1.1. get GET
Retrieve the affinity group details.
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The affinity group. |
6.1.2. remove DELETE
Remove the affinity group.
DELETE /ovirt-engine/api/clusters/000-000/affinitygroups/123-456
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the removal should be performed asynchronously. |
6.2. AffinityGroupVm
This service manages a single virtual machine to affinity group assignment.
Name | Summary |
---|---|
|
Remove this virtual machine from the affinity group. |
6.3. AffinityGroupVms
This service manages a collection of all the virtual machines assigned to an affinity group.
Name | Summary |
---|---|
|
Adds a virtual machine to the affinity group. |
|
List all virtual machines assigned to this affinity group. |
6.3.1. add POST
Adds a virtual machine to the affinity group.
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
With the following body:
<vm id="789"/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.4. AffinityGroups
The affinity groups service manages virtual machine relationships and dependencies.
Name | Summary |
---|---|
|
Create a new affinity group. |
|
List existing affinity groups. |
6.4.1. add POST
Create a new affinity group.
Post a request like in the example below to create a new affinity group:
POST /ovirt-engine/api/clusters/000-000/affinitygroups
And use the following example in its body:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The affinity group object to create. |
6.5. AffinityLabel
The details of a single affinity label.
Name | Summary |
---|---|
|
Retrieves the details of a label. |
|
Removes a label from the system and clears all assignments of the removed label. |
|
Updates a label. |
6.5.1. get GET
Retrieves the details of a label.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.5.2. remove DELETE
Removes a label from the system and clears all assignments of the removed label.
6.6. AffinityLabelHost
This service represents a host that has a specific label when accessed through the affinitylabels/hosts subcollection.
Name | Summary |
---|---|
|
Retrieves details about a host that has this label assigned. |
|
Remove a label from a host. |
6.7. AffinityLabelHosts
This service represents list of hosts that have a specific label when accessed through the affinitylabels/hosts subcollection.
Name | Summary |
---|---|
|
Add a label to a host. |
|
List all hosts with the label. |
6.7.1. add POST
Add a label to a host.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.8. AffinityLabelVm
This service represents a vm that has a specific label when accessed through the affinitylabels/vms subcollection.
Name | Summary |
---|---|
|
Retrieves details about a vm that has this label assigned. |
|
Remove a label from a vm. |
6.9. AffinityLabelVms
This service represents list of vms that have a specific label when accessed through the affinitylabels/vms subcollection.
Name | Summary |
---|---|
|
Add a label to a vm. |
|
List all virtual machines with the label. |
6.9.1. add POST
Add a label to a vm.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.10. AffinityLabels
Manages the affinity labels available in the system.
Name | Summary |
---|---|
|
Creates a new label. |
|
Lists all labels present in the system. |
6.10.1. add POST
Creates a new label. The label is automatically attached to all entities mentioned in the vms or hosts lists.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.11. AssignedAffinityLabel
This service represents one label to entity assignment when accessed using the entities/affinitylabels subcollection.
Name | Summary |
---|---|
|
Retrieves details about the attached label. |
|
Removes the label from an entity. |
6.12. AssignedAffinityLabels
This service is used to list and manipulate affinity labels that are assigned to supported entities when accessed using entities/affinitylabels.
Name | Summary |
---|---|
|
Attaches a label to an entity. |
|
Lists all labels that are attached to an entity. |
6.12.1. add POST
Attaches a label to an entity.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.13. AssignedCpuProfile
Name | Summary |
---|---|
|
|
|
6.14. AssignedCpuProfiles
Name | Summary |
---|---|
|
|
|
List the CPU profiles assigned to the cluster. |
6.15. AssignedDiskProfile
Name | Summary |
---|---|
|
|
|
6.16. AssignedDiskProfiles
Name | Summary |
---|---|
|
|
|
Returns the list of disk profiles assigned to the storage domain. |
6.17. AssignedPermissions
Represents a permission sub-collection, scoped by user, group or some entity type.
Name | Summary |
---|---|
|
Assign a new permission to a user or group for specific entity. |
|
List all the permissions of the specific entity. |
6.17.1. add POST
Assign a new permission to a user or group for specific entity.
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
With a request body like this:
<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
With a request body like this:
<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
With a request body like this:
<permission>
<role>
<name>UserRole</name>
</role>
<group id="789"/>
</permission>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The permission. |
6.17.2. list GET
List all the permissions of the specific entity.
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>
The order of the returned permissions isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of permissions. |
6.18. AssignedRoles
Represents a roles sub-collection, for example scoped by user.
Name | Summary |
---|---|
|
Returns the roles assigned to the permission. |
6.19. AssignedTag
A service to manage assignment of specific tag to specific entities in system.
Name | Summary |
---|---|
|
Gets the information about the assigned tag. |
|
Unassign tag from specific entity in the system. |
6.19.1. get GET
Gets the information about the assigned tag.
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
<tag href="/ovirt-engine/api/tags/456" id="456">
<name>root</name>
<description>root</description>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</tag>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The assigned tag. |
6.19.2. remove DELETE
Unassign tag from specific entity in the system.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.20. AssignedTags
A service to manage collection of assignment of tags to specific entities in system.
Name | Summary |
---|---|
|
Assign tag to specific entity in the system. |
|
List all tags assigned to the specific entity. |
6.20.1. add POST
Assign tag to specific entity in the system.
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
With a request body like this:
<tag>
<name>mytag</name>
</tag>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The assigned tag. |
6.20.2. list GET
List all tags assigned to the specific entity.
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>
The order of the returned tags isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of tags to return. |
|
|
Out |
The list of assigned tags. |
6.21. AssignedVnicProfile
Name | Summary |
---|---|
|
|
|
6.22. AssignedVnicProfiles
Name | Summary |
---|---|
|
|
|
Returns the list of VNIC profiles assifned to the network. |
6.23. AttachedStorageDomain
Name | Summary |
---|---|
|
This operation activates an attached storage domain. |
|
This operation deactivates an attached storage domain. |
|
|
|
6.23.1. activate POST
This operation activates an attached storage domain. Once the storage domain is activated it is ready for use with the data center.
POST /ovirt-engine/api/datacenters/123/storagedomains/456/activate
The activate action does not take any action specific parameters,
so the request body should contain an empty action
:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the activation should be performed asynchronously. |
6.23.2. deactivate POST
This operation deactivates an attached storage domain. Once the storage domain is deactivated it will not be used with the data center.
POST /ovirt-engine/api/datacenters/123/storagedomains/456/deactivate
The deactivate action does not take any action specific parameters,
so the request body should contain an empty action
:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the deactivation should be performed asynchronously. |
6.24. AttachedStorageDomains
Manages the storage domains attached to a data center.
Name | Summary |
---|---|
|
Attaches an existing storage domain to the data center. |
|
Returns the list of storage domains attached to the data center. |
6.24.1. add POST
Attaches an existing storage domain to the data center.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.25. Balance
Name | Summary |
---|---|
|
|
|
6.25.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.26. Balances
Name | Summary |
---|---|
|
|
|
Returns the list of balance modules used by the scheduling policy. |
6.26.2. list GET
Returns the list of balance modules used by the scheduling policy.
The order of the returned balance modules isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of balances to return. |
6.27. Bookmark
A service to manage a bookmark.
Name | Summary |
---|---|
|
Get a bookmark. |
|
Remove a bookmark. |
|
Update a bookmark. |
6.27.1. get GET
Get a bookmark.
An example for getting a bookmark:
GET /ovirt-engine/api/bookmarks/123
<bookmark href="/ovirt-engine/api/bookmarks/123" id="123">
<name>example_vm</name>
<value>vm: name=example*</value>
</bookmark>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The requested bookmark. |
6.27.2. remove DELETE
Remove a bookmark.
An example for removing a bookmark:
DELETE /ovirt-engine/api/bookmarks/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.27.3. update PUT
Update a bookmark.
An example for updating a bookmark:
PUT /ovirt-engine/api/bookmarks/123
With the request body:
<bookmark>
<name>new_example_vm</name>
<value>vm: name=new_example*</value>
</bookmark>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
The updated bookmark. |
6.28. Bookmarks
A service to manage bookmarks.
Name | Summary |
---|---|
|
Adding a new bookmark. |
|
Listing all the available bookmarks. |
6.28.1. add POST
Adding a new bookmark.
Example of adding a bookmark:
POST /ovirt-engine/api/bookmarks
<bookmark>
<name>new_example_vm</name>
<value>vm: name=new_example*</value>
</bookmark>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The added bookmark. |
6.28.2. list GET
Listing all the available bookmarks.
Example of listing bookmarks:
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>
The order of the returned bookmarks isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of available bookmarks. |
|
|
In |
Sets the maximum number of bookmarks to return. |
6.29. Cluster
A service to manage specific cluster.
Name | Summary |
---|---|
|
Get information about the cluster. |
|
Removes cluster from the system. |
|
|
|
Updates information about the cluster. |
6.29.1. get GET
Get information about the cluster.
An example of getting a cluster:
GET /ovirt-engine/api/clusters/123
<cluster href="/ovirt-engine/api/clusters/123" id="123">
<actions>
<link href="/ovirt-engine/api/clusters/123/resetemulatedmachine" rel="resetemulatedmachine"/>
</actions>
<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>
<version>
<major>4</major>
<minor>0</minor>
</version>
<virt_service>true</virt_service>
<data_center href="/ovirt-engine/api/datacenters/111" id="111"/>
</cluster>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.29.2. remove DELETE
Removes cluster from the system.
DELETE /ovirt-engine/api/clusters/00000000-0000-0000-0000-000000000000
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.29.3. resetemulatedmachine POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the reset should be performed asynchronously. |
6.29.4. update PUT
Updates information about the cluster.
Only specified fields are updated, others remain unchanged.
E.g. update cluster’s CPU:
PUT /ovirt-engine/api/clusters/123
With request body like:
<cluster>
<cpu>
<type>Intel Haswell-noTSX Family</type>
</cpu>
</cluster>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.30. ClusterEnabledFeature
Represents a feature enabled for the cluster.
Name | Summary |
---|---|
|
Provides the information about the cluster feature enabled. |
|
Disables a cluster feature. |
6.30.1. get GET
Provides the information about the cluster feature enabled.
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
That will return a ClusterFeature object containing the name:
<cluster_feature id="456">
<name>libgfapi_supported</name>
</cluster_feature>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved cluster feature that’s enabled. |
6.31. 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
Name | Summary |
---|---|
|
Enable an additional feature for a cluster. |
|
Lists the additional features enabled for the cluster. |
6.31.1. add POST
Enable an additional feature for a cluster.
For example, to enable a feature 456
on cluster 123
, send a request like this:
POST /ovirt-engine/api/clusters/123/enabledfeatures
The request body should look like this:
<cluster_feature id="456"/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.31.2. list GET
Lists the additional features enabled for the cluster.
For example, to get the features enabled for cluster 123
send a request like this:
GET /ovirt-engine/api/clusters/123/enabledfeatures
This will return a list of features:
<enabled_features>
<cluster_feature id="123">
<name>test_feature</name>
</cluster_feature>
...
</enabled_features>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved features. |
6.32. ClusterFeature
Represents a feature enabled for the cluster level
Name | Summary |
---|---|
|
Provides the information about the a cluster feature supported by a cluster level. |
6.32.1. get GET
Provides the information about the a cluster feature supported by a cluster level.
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
That will return a ClusterFeature object containing the name:
<cluster_feature id="456">
<name>libgfapi_supported</name>
</cluster_feature>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved cluster feature. |
6.33. ClusterFeatures
Provides information about the cluster features that are supported by a cluster level.
Name | Summary |
---|---|
|
Lists the cluster features supported by the cluster level. |
6.33.1. list GET
Lists the cluster features supported by the cluster level.
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>
</cluster_feature>
...
</cluster_features>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved features. |
6.34. ClusterLevel
Provides information about a specific cluster level. See the ClusterLevels service for more information.
Name | Summary |
---|---|
|
Provides the information about the capabilities of the specific cluster level managed by this service. |
6.34.1. get 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">
<name>create_vm</name>
<administrative>false</administrative>
</permit>
...
</permits>
</cluster_level>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retreived cluster level. |
6.35. 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 |
---|---|
|
Lists the cluster levels supported by the system. |
6.35.1. list GET
Lists the cluster levels supported by the system.
GET /ovirt-engine/api/clusterlevels
This will return a list of available cluster levels.
<cluster_levels>
<cluster_level id="4.0">
...
</cluster_level>
...
</cluster_levels>
The order of the returned cluster levels isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved cluster levels. |
6.36. ClusterNetwork
A service to manage a specific cluster network.
Name | Summary |
---|---|
|
Retrieves the cluster network details. |
|
Unassigns the network from a cluster. |
|
Updates the network in the cluster. |
6.36.1. get GET
Retrieves the cluster network details.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The cluster network. |
6.37. ClusterNetworks
A service to manage cluster networks.
Name | Summary |
---|---|
|
Assigns the network to a cluster. |
|
Lists the networks that are assigned to the cluster. |
6.37.1. add POST
Assigns the network to a cluster.
Post a request like in the example below to assign the network to a cluster:
POST /ovirt-engine/api/clusters/123/networks
Use the following example in its body:
<network id="123" />
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The network object to be assigned to the cluster. |
6.37.2. list GET
Lists the networks that are assigned to the cluster.
The order of the returned clusters isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of networks to return. |
|
|
Out |
The list of networks that are assigned to the cluster. |
6.38. Clusters
A service to manage clusters.
Name | Summary |
---|---|
|
Creates a new cluster. |
|
Returns the list of clusters of the system. |
6.38.1. add POST
Creates a new cluster.
This requires the name
, cpu.type
and data_center
attributes. Identify the data center with either the id
or name
attributes.
POST /ovirt-engine/api/clusters
With a request body like this:
<cluster>
<name>mycluster</name>
<cpu>
<type>Intel Penryn Family</type>
</cpu>
<data_center id="123"/>
</cluster>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.38.2. list GET
Returns the list of clusters of the system.
The order of the returned clusters is guaranteed only if the sortby
clause is included in the
search
parameter.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of clusters to return. |
|
|
In |
A query string used to restrict the returned clusters. |
6.39. Copyable
Name | Summary |
---|---|
|
6.40. CpuProfile
Name | Summary |
---|---|
|
|
|
|
|
6.40.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.41. CpuProfiles
Name | Summary |
---|---|
|
|
|
Returns the list of CPU profiles of the system. |
6.42. DataCenter
A service to manage a data center.
Name | Summary |
---|---|
|
Get a data center. |
|
Removes the data center. |
|
Updates the data center. |
6.42.1. get GET
Get a data center.
An example of getting a data center:
GET /ovirt-engine/api/datacenters/123
<data_center href="/ovirt-engine/api/datacenters/123" id="123">
<name>Default</name>
<description>The default Data Center</description>
<link href="/ovirt-engine/api/datacenters/123/clusters" rel="clusters"/>
<link href="/ovirt-engine/api/datacenters/123/storagedomains" rel="storagedomains"/>
<link href="/ovirt-engine/api/datacenters/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/datacenters/123/networks" rel="networks"/>
<link href="/ovirt-engine/api/datacenters/123/quotas" rel="quotas"/>
<link href="/ovirt-engine/api/datacenters/123/qoss" rel="qoss"/>
<link href="/ovirt-engine/api/datacenters/123/iscsibonds" rel="iscsibonds"/>
<local>false</local>
<quota_mode>disabled</quota_mode>
<status>up</status>
<storage_format>v3</storage_format>
<supported_versions>
<version>
<major>4</major>
<minor>0</minor>
</version>
</supported_versions>
<version>
<major>4</major>
<minor>0</minor>
</version>
<mac_pool href="/ovirt-engine/api/macpools/456" id="456"/>
</data_center>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.42.2. remove DELETE
Removes the data center.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
|
|
In |
Indicates if the operation should succeed, and the storage domain removed from the database, even if something fails during the operation. |
6.42.3. update PUT
Updates the data center.
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
With a request body like this:
<data_center>
<name>myupdatedname</name>
<description>An updated description for the data center</description>
</data_center>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
The data center that is being updated. |
6.43. DataCenterNetwork
A service to manage a specific data center network.
Name | Summary |
---|---|
|
Retrieves the data center network details. |
|
Removes the network. |
|
Updates the network in the data center. |
6.43.1. get GET
Retrieves the data center network details.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The data center network. |
6.44. DataCenterNetworks
A service to manage data center networks.
Name | Summary |
---|---|
|
Create a new network in a data center. |
|
Lists networks in the data center. |
6.44.1. add POST
Create a new network in a data center.
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
Use the following example in its body:
<network>
<name>mynetwork</name>
</network>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The network object to be created in the data center. |
6.45. DataCenters
A service to manage data centers.
Name | Summary |
---|---|
|
Creates a new data center. |
|
Lists the data centers. |
6.45.1. add POST
Creates a new data center.
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
With a request body like this:
<data_center>
<name>mydc</name>
<local>false</local>
</data_center>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The data center that is being added. |
6.45.2. list GET
Lists the data centers.
The following request retrieves a representation of the data centers:
GET /ovirt-engine/api/datacenters
The above request performed with curl
:
curl \
--request GET \
--cacert /etc/pki/ovirt-engine/ca.pem \
--header "Version: 4" \
--header "Accept: application/xml" \
--user "admin@internal:mypassword" \
https://myengine.example.com/ovirt-engine/api/datacenters
This is what an example response could look like:
<data_center href="/ovirt-engine/api/datacenters/123" id="123">
<name>Default</name>
<description>The default Data Center</description>
<link href="/ovirt-engine/api/datacenters/123/networks" rel="networks"/>
<link href="/ovirt-engine/api/datacenters/123/storagedomains" rel="storagedomains"/>
<link href="/ovirt-engine/api/datacenters/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/datacenters/123/clusters" rel="clusters"/>
<link href="/ovirt-engine/api/datacenters/123/qoss" rel="qoss"/>
<link href="/ovirt-engine/api/datacenters/123/iscsibonds" rel="iscsibonds"/>
<link href="/ovirt-engine/api/datacenters/123/quotas" rel="quotas"/>
<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>
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of data centers to return. |
|
|
In |
A query string used to restrict the returned data centers. |
6.46. Disk
Manages a single disk.
Name | Summary |
---|---|
|
This operation copies a disk to the specified storage domain. |
|
|
|
|
|
Moves a disk to another storage domain. |
|
|
|
Sparsify the disk. |
6.46.1. copy POST
This operation copies a disk to the specified storage domain.
For example, copy of a disk can be facilitated using the following request:
POST /ovirt-engine/api/disks/123/copy
With a request body like this:
<action>
<storage_domain id="456"/>
<disk>
<name>mydisk</name>
</disk>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the copy should be performed asynchronously. |
|
|
In |
||
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
6.46.2. export POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the export should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
6.46.4. move POST
Moves a disk to another storage domain.
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
With the following request body:
<action>
<storage_domain id="456"/>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the move should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
6.47. DiskAttachment
This service manages the attachment of a disk to a virtual machine.
Name | Summary |
---|---|
|
Returns the details of the attachment, including the bootable flag and link to the disk. |
|
Removes the disk attachment. |
|
Update the disk attachment and the disk properties within it. |
6.47.1. get GET
Returns the details of the attachment, including the bootable flag and link to the disk.
An example of getting a disk attachment:
GET /ovirt-engine/api/vms/123/diskattachments/456
<disk_attachment href="/ovirt-engine/api/vms/123/diskattachments/456" id="456">
<active>true</active>
<bootable>true</bootable>
<interface>virtio</interface>
<disk href="/ovirt-engine/api/disks/456" id="456"/>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</disk_attachment>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.47.2. remove DELETE
Removes the disk attachment.
This will only detach the disk from the virtual machine, but won’t remove it from
the system, unless the detach_only
parameter is false
.
An example of removing a disk attachment:
DELETE /ovirt-engine/api/vms/123/diskattachments/456?detach_only=true
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the disk should only be detached from the virtual machine, but not removed from the system. |
6.47.3. update PUT
Update the disk attachment and the disk properties within it.
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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.48. 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 |
---|---|
|
Adds a new disk attachment to the virtual machine. |
|
List the disk that are attached to the virtual machine. |
6.48.1. add POST
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
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.
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.49. DiskProfile
Name | Summary |
---|---|
|
|
|
|
|
6.49.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.50. DiskProfiles
Name | Summary |
---|---|
|
|
|
Returns the list of disk profiles of the system. |
6.51. DiskSnapshot
Name | Summary |
---|---|
|
|
|
6.52. DiskSnapshots
Manages the collection of disk snapshots available in an storage domain.
Name | Summary |
---|---|
|
Returns the list of disk snapshots of the storage domain. |
6.53. Disks
Manages the collection of disks available in the system.
Name | Summary |
---|---|
|
Adds a new floating disk. |
|
Get list of disks. |
6.53.1. add POST
Adds a new floating disk.
There are three types of disks that can be added - disk image, direct LUN and Cinder disk.
Adding a new image disk:
When creating a new floating image Disk, the API requires the storage_domain
, provisioned_size
and format
attributes.
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
With a request body as follows:
<disk>
<storage_domains>
<storage_domain id="123"/>
</storage_domains>
<name>mydisk</name>
<provisioned_size>1048576</provisioned_size>
<format>cow</format>
</disk>
Adding a new direct LUN disk:
When adding a new floating direct LUN via the API, there are two flavors that can be used:
-
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). -
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
With a request body as follows:
<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.
Adding a new Cinder disk:
To create a new floating Cinder disk, send a request as follows:
POST /ovirt-engine/api/disks
With a request body as follows:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The disk. |
6.53.2. list GET
Get list of disks.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
List of retrieved disks. |
|
|
In |
Sets the maximum number of disks to return. |
|
|
In |
A query string used to restrict the returned disks. |
|
|
In |
Indicates whether to retrieve a list of registered or unregistered disks in the storage domain. |
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
.
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
.
This parameter only applies to the disks sub-collection of attached storage domains, it
does not apply to the top level disks collection.
|
6.54. Domain
A service to view details of an authentication domain in the system.
Name | Summary |
---|---|
|
Gets the authentication domain information. |
6.54.1. get GET
Gets the authentication domain information.
Usage:
GET /ovirt-engine/api/domains/5678
Will return the domain information:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The authentication domain. |
6.55. DomainGroup
Name | Summary |
---|---|
|
6.56. DomainGroups
Name | Summary |
---|---|
|
Returns the list of groups. |
6.56.1. list GET
Returns the list of groups.
The order of the returned list of groups isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Sets the maximum number of groups to return. |
|
|
In |
A query string used to restrict the returned groups. |
6.57. DomainUser
A service to view a domain user in the system.
Name | Summary |
---|---|
|
Gets the domain user information. |
6.57.1. get GET
Gets the domain user information.
Usage:
GET /ovirt-engine/api/domains/5678/users/1234
Will return the domain user information:
<user href="/ovirt-engine/api/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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The domain user. |
6.58. DomainUsers
A service to list all domain users in the system.
Name | Summary |
---|---|
|
List all the users in the domain. |
6.58.1. list GET
List all the users in the domain.
Usage:
GET /ovirt-engine/api/domains/5678/users
Will return the list of users in the domain:
<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>
The order of the returned list of users isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Sets the maximum number of users to return. |
|
|
In |
A query string used to restrict the returned users. |
|
|
Out |
The list of users in the domain. |
6.59. Domains
A service to list all authentication domains in the system.
Name | Summary |
---|---|
|
List all the authentication domains in the system. |
6.59.1. list GET
List all the authentication domains in the system.
Usage:
GET /ovirt-engine/api/domains
Will return the list of domains:
<domains>
<domain href="/ovirt-engine/api/domains/5678" id="5678">
<name>internal-authz</name>
<link href="/ovirt-engine/api/domains/5678/users" rel="users"/>
<link href="/ovirt-engine/api/domains/5678/groups" rel="groups"/>
<link href="/ovirt-engine/api/domains/5678/users?search={query}" rel="users/search"/>
<link href="/ovirt-engine/api/domains/5678/groups?search={query}" rel="groups/search"/>
</domain>
</domains>
The order of the returned list of domains isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of domains. |
|
|
In |
Sets the maximum number of domains to return. |
6.60. EngineKatelloErrata
A service to manage Katello errata assigned to the engine. The information is retrieved from Katello.
Name | Summary |
---|---|
|
Retrieves the representation of the Katello errata. |
6.60.1. list GET
Retrieves the representation of the Katello errata.
GET /ovirt-engine/api/katelloerrata
You will receive response in XML like this one:
<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>
The order of the returned list of erratum isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
A representation of Katello errata. |
|
|
In |
Sets the maximum number of errata to return. |
6.61. Event
A service to manage an event in the system.
Name | Summary |
---|---|
|
Get an event. |
|
Removes an event from internal audit log. |
6.61.1. get GET
Get an event.
An example of getting an event:
GET /ovirt-engine/api/events/123
<event href="/ovirt-engine/api/events/123" id="123">
<description>Host example.com was added by admin@internal-authz.</description>
<code>42</code>
<correlation_id>135</correlation_id>
<custom_id>-1</custom_id>
<flood_rate>30</flood_rate>
<origin>oVirt</origin>
<severity>normal</severity>
<time>2016-12-11T11:13:44.654+02:00</time>
<cluster href="/ovirt-engine/api/clusters/456" id="456"/>
<host href="/ovirt-engine/api/hosts/789" id="789"/>
<user href="/ovirt-engine/api/users/987" id="987"/>
</event>
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.62. Events
A service to manage events in the system.
Name | Summary |
---|---|
|
Adds an external event to the internal audit log. |
|
Get list of events. |
|
6.62.1. add POST
Adds an external event to the internal audit log.
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>
When using links, like the vm in the previous example, only the id attribute is accepted. The name
attribute, if provided, is simply ignored.
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.62.2. list GET
Get list of events.
GET /ovirt-engine/api/events
To the above request we get following response:
<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 following events occur:
-
id="1" - The API logs in the admin user account.
-
id="2" - The API logs out of the admin user account.
The order of the returned list of events is always garanteed. If the sortby
clause is included in the
search
parameter, then the events will be ordered according to that clause. If the sortby
clause isn’t
included, then the events will be sorted by the numeric value of the id
attribute, starting with the
highest value. This, combined with the max
parameter, simplifies obtaining the most recent event:
GET /ovirt-engine/api/events?max=1
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Indicates the event index after which events should be returned. |
|
|
In |
Sets the maximum number of events to return. |
|
|
In |
The events service provides search queries similar to other resource services. |
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
.
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.
search
The events service provides search queries similar to other resource services.
We can search by providing specific severity.
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:
sortby time asc page 1
Below example paginates event resources. The URL-encoded request is:
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%201
Increase the page value to view the next page of results.
GET /ovirt-engine/api/events?search=sortby%20time%20asc%20page%202
6.63. 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 |
---|---|
|
Retrieves external compute resource details. |
6.63.1. get GET
Retrieves external compute resource details.
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
It will return a response like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
External compute resource information |
6.64. 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 |
---|---|
|
Retrieves a list of external compute resources. |
6.64.1. list GET
Retrieves a list of external compute resources.
For example, to retrieve the compute resources of external host provider 123
, send a request like this:
GET /ovirt-engine/api/externalhostproviders/123/computeresources
It will return a response like this:
<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>
The order of the returned list of compute resources isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of resources to return. |
|
|
Out |
List of external computer resources. |
6.65. ExternalDiscoveredHost
This service manages a single discovered host.
Name | Summary |
---|---|
|
Get discovered host info. |
6.65.1. get GET
Get discovered host info.
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
The result will be like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Host’s hardware and config information. |
6.66. ExternalDiscoveredHosts
This service manages external discovered hosts.
Name | Summary |
---|---|
|
Get list of discovered hosts' information. |
6.66.1. list GET
Get list of discovered hosts' information.
Discovered hosts are fetched from third-party providers such as Foreman.
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"/>
</external_discovered_host>
...
</external_discovered_hosts>
The order of the returned list of hosts isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
List of discovered hosts |
|
|
In |
Sets the maximum number of hosts to return. |
6.67. ExternalHost
Name | Summary |
---|---|
|
6.68. 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 |
---|---|
|
Get host group information. |
6.68.1. get GET
Get host group information.
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
It will return a response like this:
<external_host_group href="/ovirt-engine/api/externalhostproviders/123/hostgroups/234" id="234">
<name>rhel7</name>
<architecture_name>x86_64</architecture_name>
<domain_name>s.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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Host group information. |
6.69. ExternalHostGroups
This service manages hostgroups.
Name | Summary |
---|---|
|
Get host groups list from external host provider. |
6.69.1. list GET
Get host groups list from external host provider.
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
The response will be like this:
<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>
The order of the returned list of host groups isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
List of all hostgroups available for external host provider |
|
|
In |
Sets the maximum number of groups to return. |
6.70. ExternalHostProvider
Represents an external host provider, such as Foreman or Satellite.
See https://www.theforeman.org/ for more details on Foreman. See https://access.redhat.com/products/red-hat-satellite for more details on Red Hat Satellite.
Name | Summary |
---|---|
|
Get external host provider information Host provider, Foreman or Satellite, can be set as an external provider in ovirt. |
|
|
|
|
|
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider. |
|
6.70.1. get GET
Get external host provider information
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
The response will be like this:
<external_host_provider href="/ovirt-engine/api/externalhostproviders/123" id="123">
<name>mysatellite</name>
<requires_authentication>true</requires_authentication>
<url>https://mysatellite.example.com</url>
<username>admin</username>
</external_host_provider>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.70.2. importcertificates POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
6.70.3. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.70.4. testconnectivity POST
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider.
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the test should be performed asynchronously. |
6.71. ExternalHostProviders
Name | Summary |
---|---|
|
|
|
Returns the list of external host providers. |
6.72. ExternalHosts
Name | Summary |
---|---|
|
Return the list of external hosts. |
6.73. ExternalProvider
Provides capability to manage external providers.
Name | Summary |
---|---|
|
|
|
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider. |
6.73.1. importcertificates POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
6.73.2. testconnectivity POST
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider.
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the test should be performed asynchronously. |
6.74. ExternalProviderCertificate
A service to view specific certificate for external provider.
Name | Summary |
---|---|
|
Get specific certificate. |
6.74.1. get GET
Get specific certificate.
GET /ovirt-engine/api/externalhostproviders/123/certificate/0
And here is sample response:
<certificate id="0">
<organization>provider.example.com</organization>
<subject>CN=provider.example.com</subject>
<content>...</content>
</certificate>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The details of the certificate. |
6.75. ExternalProviderCertificates
A service to view certificates for external provider.
Name | Summary |
---|---|
|
Returns the chain of certificates presented by the external provider. |
6.75.1. list GET
Returns the chain of certificates presented by the external provider.
GET /ovirt-engine/api/externalhostproviders/123/certificates
And here is sample response:
<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.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
List containing certificate details. |
|
|
In |
Sets the maximum number of certificates to return. |
6.76. ExternalVmImports
Provides capability to import external virtual machines.
Name | Summary |
---|---|
|
This operation is used to import a virtual machine from external hypervisor, such as KVM, XEN or VMware. |
6.76.1. add POST
This operation is used to import a virtual machine from external hypervisor, such as KVM, XEN or VMware.
For example import of a virtual machine from VMware can be facilitated using the following request:
POST /externalvmimports
With request body of type ExternalVmImport, for example:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.77. FenceAgent
A service to manage fence agent for a specific host.
Name | Summary |
---|---|
|
Gets details of this fence agent. |
|
Removes a fence agent for a specific host. |
|
6.77.1. get GET
Gets details of this fence agent.
GET /ovirt-engine/api/hosts/123/fenceagents/0
And here is sample response:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Fence agent details. |
6.78. FenceAgents
A service to manage fence agents for a specific host.
Name | Summary |
---|---|
|
|
|
Returns the list of fencing agents configured for the host. |
6.78.2. list GET
Returns the list of fencing agents configured for the host.
GET /ovirt-engine/api/hosts/123/fenceagents
And here is sample response:
<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>
The order of the returned list of fencing agents isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
List of fence agent details. |
|
|
In |
Sets the maximum number of agents to return. |
6.79. File
Name | Summary |
---|---|
|
6.80. Files
Provides a way for clients to list available files.
This service is specifically targeted to ISO storage domains, which contain ISO images and virtual floppy disks (VFDs) that an administrator uploads.
The addition of a CD-ROM device to a virtual machine requires an ISO image from the files of an ISO storage domain.
Name | Summary |
---|---|
|
Returns the list of ISO images and virtual floppy disks available in the storage domain. |
6.80.1. list GET
Returns the list of ISO images and virtual floppy disks available in the storage domain. The order of the returned list is not guaranteed.
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
Setting the value of the refresh parameter to true has an impact on the performance of the
server. Use it only if necessary.
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Sets the maximum number of files to return. |
|
|
In |
Indicates whether the list of files should be refreshed from the storage domain, rather than showing cached results that are updated at certain intervals. |
|
|
In |
A query string used to restrict the returned files. |
6.81. Filter
Name | Summary |
---|---|
|
|
|
6.81.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
6.82. Filters
Manages the filters used by an scheduling policy.
Name | Summary |
---|---|
|
|
|
Returns the list of filters used by the scheduling policy. |
6.82.2. list GET
Returns the list of filters used by the scheduling policy.
The order of the returned list of filters isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
||
|
In |
Sets the maximum number of filters to return. |
6.83. GlusterBrick
This service manages a single gluster brick.
Name | Summary |
---|---|
|
Get details of a brick. |
|
Removes a brick. |
|
Replaces this brick with a new one. |
6.83.1. get GET
Get details of a brick.
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
Which will return a response body like this:
<brick id="234">
<name>host1:/rhgs/data/brick1</name>
<brick_dir>/rhgs/data/brick1</brick_dir>
<server_id>111</server_id>
<status>up</status>
<device>/dev/mapper/RHGS_vg1-lv_vmaddldisks</device>
<fs_name>xfs</fs_name>
<gluster_clients>
<gluster_client>
<bytes_read>2818417648</bytes_read>
<bytes_written>1384694844</bytes_written>
<client_port>1011</client_port>
<host_name>client2</host_name>
</gluster_client>
</gluster_clients>
<memory_pools>
<memory_pool>
<name>data-server:fd_t</name>
<alloc_count>1626348</alloc_count>
<cold_count>1020</cold_count>
<hot_count>4</hot_count>
<max_alloc>23</max_alloc>
<max_stdalloc>0</max_stdalloc>
<padded_size>140</padded_size>
<pool_misses>0</pool_misses>
</memory_pool>
</memory_pools>
<mnt_options>rw,seclabel,noatime,nodiratime,attr2,inode64,sunit=512,swidth=2048,noquota</mnt_options>
<pid>25589</pid>
<port>49155</port>
</brick>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.83.2. remove DELETE
Removes a brick.
Removes a brick from the underlying gluster volume and deletes entries from database. This can be used only when removing a single brick without data migration. To remove multiple bricks and with data migration, use migrate instead.
For example, to delete brick 234
from gluster volume 123
, send a request like this:
DELETE /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks/234
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.83.3. replace POST
Replaces this brick with a new one.
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. |
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the replacement should be performed asynchronously. |
|
|
In |
6.84. GlusterBricks
This service manages the gluster bricks in a gluster volume
Name | Summary |
---|---|
|
Activate the bricks post data migration of remove brick operation. |
|
Adds a list of bricks to gluster volume. |
|
Lists the bricks of a gluster volume. |
|
Start migration of data prior to removing bricks. |
|
Removes bricks from gluster volume. |
|
Stops migration of data from bricks for a remove brick operation. |
6.84.1. activate POST
Activate the bricks post data migration of 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
With a request body like this:
<action>
<bricks>
<brick>
<name>host1:/rhgs/brick1</name>
</brick>
</bricks>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the activation should be performed asynchronously. |
|
|
In |
The list of bricks that need to be re-activated. |
6.84.2. add POST
Adds a list of bricks to gluster volume.
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
With a request body like this:
<bricks>
<brick>
<server_id>111</server_id>
<brick_dir>/export/data/brick3</brick_dir>
</brick>
</bricks>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The list of bricks to be added to the volume |
|
|
In |
Replica count of volume post add operation. |
|
|
In |
Stripe count of volume post add operation. |
6.84.3. list GET
Lists the bricks of a gluster volume.
For example, to list bricks of gluster volume 123
, send a request like this:
GET /ovirt-engine/api/clusters/567/glustervolumes/123/glusterbricks
Provides an output as below:
<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.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
||
|
In |
Sets the maximum number of bricks to return. |
6.84.4. migrate POST
Start migration of data prior to removing bricks.
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
With a request body like this:
<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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the migration should be performed asynchronously. |
|
|
In |
List of bricks for which data migration needs to be started. |
6.84.5. remove DELETE
Removes bricks from gluster volume.
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
With a request body like this:
<bricks>
<brick>
<name>host:brick_directory</name>
</brick>
</bricks>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
|
|
In |
The list of bricks to be removed |
|
|
In |
Replica count of volume post add operation. |
6.84.6. stopmigrate POST
Stops migration of data from bricks for a remove brick operation.
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
With a request body like this:
<bricks>
<brick>
<name>host:brick_directory</name>
</brick>
</bricks>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
List of bricks for which data migration needs to be stopped. |
bricks
List of bricks for which data migration needs to be stopped. This list should match the arguments passed to migrate.
6.85. GlusterHook
Name | Summary |
---|---|
|
Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all servers of the cluster. |
|
Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all servers of the cluster. |
|
|
|
Removes the this Gluster hook from all servers in cluster and deletes it from the database. |
|
Resolves missing hook conflict depending on the resolution type. |
6.85.1. disable POST
Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all servers of the
cluster. This updates the hook status to DISABLED
in database.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.85.2. enable POST
Resolves status conflict of hook among servers in cluster by disabling Gluster hook in all servers of the
cluster. This updates the hook status to DISABLED
in database.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.85.4. remove DELETE
Removes the this Gluster hook from all servers in cluster and deletes it from the database.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.85.5. resolve POST
Resolves missing hook conflict depending on the resolution type.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
||
|
In |
6.86. GlusterHooks
Name | Summary |
---|---|
|
Returns the list of hooks. |
6.87. GlusterVolume
This service manages a single gluster volume.
Name | Summary |
---|---|
|
Get the gluster volume details. |
|
Get gluster volume profile statistics. |
|
Rebalance the gluster volume. |
|
Removes the gluster volume. |
|
Resets all the options set in the gluster volume. |
|
Resets a particular option in the gluster volume. |
|
Sets a particular option in the gluster volume. |
|
Starts the gluster volume. |
|
Start profiling the gluster volume. |
|
Stops the gluster volume. |
|
Stop profiling the gluster volume. |
|
Stop rebalancing the gluster volume. |
6.87.1. get GET
Get the gluster volume details.
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
This GET request will return the following output:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Representation of the gluster volume. |
6.87.2. getprofilestatistics POST
Get gluster volume profile statistics.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Gluster volume profiling information returned from the action. |
6.87.3. rebalance POST
Rebalance the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the rebalance should be performed asynchronously. |
|
|
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. |
|
|
In |
Indicates if the rebalance should be force started. |
6.87.4. remove DELETE
Removes the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.87.5. resetalloptions POST
Resets all the options set in the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the reset should be performed asynchronously. |
6.87.6. resetoption POST
Resets a particular option in the gluster volume.
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
With the following request body:
<action>
<option name="option1"/>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the reset should be performed asynchronously. |
|
|
In |
||
|
In |
Option to reset. |
6.87.7. setoption POST
Sets a particular option in the gluster volume.
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
With the following request body:
<action>
<option name="option1" value="value1"/>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
Option to set. |
6.87.8. start POST
Starts the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
Indicates if the volume should be force started. |
6.87.9. startprofile POST
Start profiling the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.87.10. stop POST
Stops the gluster volume.
Stopping a volume will make its data inaccessible.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
6.87.11. stopprofile POST
Stop profiling the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.87.12. stoprebalance POST
Stop rebalancing the gluster volume.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.88. GlusterVolumes
This service manages a collection of gluster volumes available in a cluster.
Name | Summary |
---|---|
|
Creates a new gluster volume. |
|
Lists all gluster volumes in the cluster. |
6.88.1. add POST
Creates a new gluster volume.
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
With the following request body:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The gluster volume definition from which to create the volume is passed as input and the newly created volume is returned. |
6.88.2. list GET
Lists all gluster volumes in the cluster.
For example, to list all Gluster Volumes in cluster 456
, send a request like
this:
GET /ovirt-engine/api/clusters/456/glustervolumes
The order of the returned list of volumes isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Sets the maximum number of volumes to return. |
|
|
In |
A query string used to restrict the returned volumes. |
|
|
Out |
6.89. 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 |
---|---|
|
Gets the system group information. |
|
Removes the system group. |
6.89.1. get GET
Gets the system group information.
Usage:
GET /ovirt-engine/api/groups/123
Will return the group information:
<group href="/ovirt-engine/api/groups/123" id="123">
<name>mygroup</name>
<link href="/ovirt-engine/api/groups/123/roles" rel="roles"/>
<link href="/ovirt-engine/api/groups/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/groups/123/tags" rel="tags"/>
<domain_entry_id>476652557A382F67696B6D2B32762B37796E46476D513D3D</domain_entry_id>
<namespace>DC=example,DC=com</namespace>
<domain href="/ovirt-engine/api/domains/ABCDEF" id="ABCDEF">
<name>myextension-authz</name>
</domain>
</group>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The system group. |
6.90. Groups
Manages the collection of groups of users.
Name | Summary |
---|---|
|
Add group from a directory service. |
|
List all the groups in the system. |
6.90.1. add POST
Add group from a directory service. Please note that domain name is name of the authorization provider.
For example, to add the Developers
group from the internal-authz
authorization provider send a request
like this:
POST /ovirt-engine/api/groups
With a request body like this:
<group>
<name>Developers</name>
<domain>
<name>internal-authz</name>
</domain>
</group>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The group to be added. |
6.90.2. list GET
List all the groups in the system.
Usage:
GET /ovirt-engine/api/groups
Will return the list of groups:
<groups>
<group href="/ovirt-engine/api/groups/123" id="123">
<name>mygroup</name>
<link href="/ovirt-engine/api/groups/123/roles" rel="roles"/>
<link href="/ovirt-engine/api/groups/123/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/groups/123/tags" rel="tags"/>
<domain_entry_id>476652557A382F67696B6D2B32762B37796E46476D513D3D</domain_entry_id>
<namespace>DC=example,DC=com</namespace>
<domain href="/ovirt-engine/api/domains/ABCDEF" id="ABCDEF">
<name>myextension-authz</name>
</domain>
</group>
...
</groups>
The order of the returned list of groups isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
The list of groups. |
|
|
In |
Sets the maximum number of groups to return. |
|
|
In |
A query string used to restrict the returned groups. |
6.91. Host
A service to manage a host.
Name | Summary |
---|---|
|
Activates the host for use, for example to run virtual machines. |
|
Approve a pre-installed Hypervisor host for usage in the virtualization environment. |
|
Marks the network configuration as good and persists it inside the host. |
|
Deactivates the host to perform maintenance tasks. |
|
Enrolls the certificate of the host. |
|
Controls the host’s power management device. |
|
To manually set a host as the storage pool manager (SPM). |
|
Gets the host details. |
|
Installs VDSM and related software on the host. |
|
Discovers iSCSI targets on the host, using the initiator details. |
|
Login to iSCSI targets on the host, using the target details. |
|
Refresh the host devices and capabilities. |
|
Remove the host from the system. |
|
This method is used to change the configuration of the network interfaces of a host. |
|
Discovers the block Storage Domains which are candidates to be imported to the setup. |
|
Update the host properties. |
|
Upgrades VDSM and selected software on the host. |
|
Check if there are upgrades available for the host. |
6.91.1. activate POST
Activates the host for use, for example to run virtual machines.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the activation should be performed asynchronously. |
6.91.2. approve POST
Approve a pre-installed Hypervisor host for usage in the virtualization environment.
This action also accepts an optional cluster element to define the target cluster for this host.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the approval should be performed asynchronously. |
|
|
In |
The cluster where the host will be added after it is approved. |
|
|
In |
The host to approve. |
6.91.3. commitnetconfig POST
Marks the network configuration as good and persists it inside the host.
An API user commits the network configuration to persist a host network interface attachment or detachment, or persist the creation and deletion of a bonded interface.
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
With a request body like this:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.91.4. deactivate POST
Deactivates the host to perform maintenance tasks.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the deactivation should be performed asynchronously. |
|
|
In |
||
|
In |
Indicates if the gluster service should be stopped as part of deactivating the host. |
6.91.5. enrollcertificate POST
Enrolls the certificate of the host. Useful in case you get a warning that it is about to expire or has already expired.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the enrollment should be performed asynchronously. |
6.91.6. fence POST
Controls the host’s power management device.
For example, to start the host. This can be done via:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<action>
<fence_type>start</fence_type>
</action>
' \
"${url}/hosts/123/fence"
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the fencing should be performed asynchronously. |
|
|
In |
||
|
Out |
6.91.7. forceselectspm POST
To manually set a host as the storage pool manager (SPM).
POST /ovirt-engine/api/hosts/123/forceselectspm
With a request body like this:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.91.8. get GET
Gets the host details.
GET /ovirt-engine/api/hosts/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if all of the attributes of the host should be included in the response. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
The queried host. |
all_content
Indicates if all of the attributes of the host should be included in the response.
By default the following attributes are excluded:
-
hosted_engine
For example, to retrieve the complete representation of host '123':
GET /ovirt-engine/api/hosts/123?all_content=true
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.91.9. install POST
Installs VDSM and related software on the host. The host type defines additional parameters for the action.
Example of installing a host, using curl
and JSON, plain:
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--request PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Version: 4" \
--user "admin@internal:..." \
--data '
{
"root_password": "myrootpassword"
}
' \
"https://engine.example.com/ovirt-engine/api/hosts/123"
Example of installing a host, using curl
and JSON, with hosted engine components:
curl \
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--request PUT \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header "Version: 4" \
--user "admin@internal:..." \
--data '
{
"root_password": "myrootpassword"
}
' \
"https://engine.example.com/ovirt-engine/api/hosts/123?deploy_hosted_engine=true"
Since version 4.1.2 of the engine when a host is reinstalled we override the host firewall definitions by default. |
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the installation should be performed asynchronously. |
|
|
In |
When set to |
|
|
In |
The |
|
|
In |
When installing an oVirt node a image ISO file is required. |
|
|
In |
The password of of the |
|
|
In |
The SSH details used to connect to the host. |
|
|
In |
When set to |
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.
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.
6.91.10. iscsidiscover POST
Discovers iSCSI targets on the host, using the initiator details.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the discovery should be performed asynchronously. |
|
|
In |
The target iSCSI device. |
|
|
Out |
The iSCSI targets. |
6.91.11. iscsilogin POST
Login to iSCSI targets on the host, using the target details.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the login should be performed asynchronously. |
|
|
In |
The target iSCSI device. |
6.91.12. refresh POST
Refresh the host devices and capabilities.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the refresh should be performed asynchronously. |
6.91.13. remove DELETE
Remove the host from the system.
#!/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"
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.91.14. setupnetworks POST
This method is used to change the configuration of the network interfaces of a host.
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>
<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"
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:
|
<options name="mode" value="4"/>
<options name="miimon" value="100"/>
<ip address="192.168.122.10" netmask="255.255.255.0"/>
Using the Python SDK the same can be done with the following code:
# Find the service that manages the collection of hosts:
hosts_service = connection.system_service().hosts_service()
# Find the host:
host = hosts_service.list(search='name=myhost')[0]
# Find the service that manages the host:
host_service = hosts_service.host_service(host.id)
# 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',
),
),
],
dns_resolver_configuration=types.DnsResolverConfiguration(
name_servers=[
'1.1.1.1',
'2.2.2.2',
],
),
),
],
)
# After modifying the network configuration it is very important to make it
# persistent:
host_service.commit_net_config()
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. |
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
||
|
In |
||
|
In |
||
|
In |
||
|
In |
||
|
In |
||
|
In |
||
|
In |
||
|
In |
6.91.15. unregisteredstoragedomainsdiscover POST
Discovers the block Storage Domains which are candidates to be imported to the setup. For FCP no arguments are required.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the discovery should be performed asynchronously. |
|
|
In |
||
|
Out |
6.91.16. update PUT
Update the host properties.
For example, to update a the kernel command line of a host send a request like this:
PUT /ovirt-engine/api/hosts/123
With request body like this:
<host>
<os>
<custom_kernel_cmdline>vfio_iommu_type1.allow_unsafe_interrupts=1</custom_kernel_cmdline>
</os>
</host>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.91.17. upgrade POST
Upgrades VDSM and selected software on the host.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the upgrade should be performed asynchronously. |
|
|
In |
The image parameter specifies path to image, which is used for upgrade. |
6.91.18. upgradecheck POST
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.92. HostDevice
A service to access a particular device of a host.
Name | Summary |
---|---|
|
Retrieve information about a particular host’s device. |
6.92.1. get GET
Retrieve information about a particular host’s device.
An example of getting a host device:
GET /ovirt-engine/api/hosts/123/devices/456
<host_device href="/ovirt-engine/api/hosts/123/devices/456" id="456">
<name>usb_1_9_1_1_0</name>
<capability>usb</capability>
<host href="/ovirt-engine/api/hosts/123" id="123"/>
<parent_device href="/ovirt-engine/api/hosts/123/devices/789" id="789">
<name>usb_1_9_1</name>
</parent_device>
</host_device>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.93. HostDevices
A service to access host devices.
Name | Summary |
---|---|
|
List the devices of a host. |
6.94. HostHook
Name | Summary |
---|---|
|
6.95. HostHooks
Name | Summary |
---|---|
|
Returns the list of hooks configured for the host. |
6.96. HostNic
A service to manage a network interface of a host.
Name | Summary |
---|---|
|
|
|
The action updates virtual function configuration in case the current resource represents an SR-IOV enabled NIC. |
6.96.2. updatevirtualfunctionsconfiguration POST
The action updates virtual function configuration in case the current resource represents an SR-IOV enabled NIC. The input should be consisted of at least one of the following properties:
-
allNetworksAllowed
-
numberOfVirtualFunctions
Please see the HostNicVirtualFunctionsConfiguration
type for the meaning of the properties.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In |
6.97. HostNics
A service to manage the network interfaces of a host.
Name | Summary |
---|---|
|
Returns the list of network interfaces of the host. |
6.98. HostNumaNode
Name | Summary |
---|---|
|
6.99. HostNumaNodes
Name | Summary |
---|---|
|
Returns the list of NUMA nodes of the host. |
6.100. HostStorage
A service to manage host storages.
Name | Summary |
---|---|
|
Get list of storages. |
6.100.1. list GET
Get list of storages.
GET /ovirt-engine/api/hosts/123/storage
The XML response you get will be like this one:
<host_storages>
<host_storage id="123">
...
</host_storage>
...
</host_storages>
The order of the returned list of storages isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the status of the LUNs in the storage should be checked. |
|
|
Out |
Retrieved list of storages. |
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.
The default is true
for backward compatibility.
Here an example with the LUN status :
<host_storage id="123">
<logical_units>
<logical_unit id="123">
<lun_mapping>0</lun_mapping>
<paths>1</paths>
<product_id>lun0</product_id>
<serial>123</serial>
<size>10737418240</size>
<status>used</status>
<vendor_id>LIO-ORG</vendor_id>
<volume_group_id>123</volume_group_id>
</logical_unit>
</logical_units>
<type>iscsi</type>
<host id="123"/>
</host_storage>
Here an example without the LUN status :
<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.101. Hosts
A service that manages hosts.
Name | Summary |
---|---|
|
Creates a new host. |
|
Get a list of all available hosts. |
6.101.1. add POST
Creates a new host.
The host is created based on the attributes of the host
parameter. The name
, address
and root_password
properties are required.
For example, to add a host send the following request:
POST /ovirt-engine/api/hosts
With the following request body:
<host>
<name>myhost</name>
<address>myhost.example.com</address>
<root_password>myrootpassword</root_password>
</host>
The root_password element is only included in the client-provided initial representation and is not
exposed in the representations returned from subsequent requests.
|
Since version 4.1.2 of the engine when a host is newly added we override the host firewall definitions by default. |
To add a hosted engine host, use the optional deploy_hosted_engine
parameter:
POST /ovirt-engine/api/hosts?deploy_hosted_engine=true
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
When set to |
|
|
In/Out |
The host definition from which to create the new host is passed as parameter, and the newly created host is returned. |
|
|
In |
When set to |
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.
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.
6.101.2. list GET
Get a list of all available hosts.
For example, to list the hosts send the following request:
GET /ovirt-engine/api/hosts
The response body will be something like this:
<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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if all of the attributes of the hosts should be included in the response. |
|
|
In |
Indicates if the search performed using the |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
||
|
In |
Sets the maximum number of hosts to return. |
|
|
In |
A query string used to restrict the returned hosts. |
all_content
Indicates if all of the attributes of the hosts should be included in the response.
By default the following host attributes are excluded:
-
hosted_engine
For example, to retrieve the complete representation of the hosts:
GET /ovirt-engine/api/hosts?all_content=true
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.102. Icon
A service to manage an icon (read-only).
Name | Summary |
---|---|
|
Get an icon. |
6.103. Icons
A service to manage icons.
Name | Summary |
---|---|
|
Get a list of icons. |
6.103.1. list GET
Get a list of icons.
GET /ovirt-engine/api/icons
You will get a XML response which is similar to this one:
<icons>
<icon id="123">
<data>...</data>
<media_type>image/png</media_type>
</icon>
...
</icons>
The order of the returned list of icons isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved list of icons. |
|
|
In |
Sets the maximum number of icons to return. |
6.104. Image
Name | Summary |
---|---|
|
|
|
Imports an image. |
6.104.2. import POST
Imports an image.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the import should be performed asynchronously. |
|
|
In |
The cluster to which the image should be imported if the |
|
|
In |
The disk to import. |
|
|
In |
Specifies if a template should be created from the imported disk. |
|
|
In |
The storage domain to which the disk should be imported. |
|
|
In |
The name of the template being created if the
|
6.105. ImageTransfer
This service provides a mechanism to control an image transfer. The client will have to create a transfer by using add of the ImageTransfers service, stating the image to transfer data to/from.
After doing that, the transfer is managed by this service.
E.g., for uploading to the disk image with id 52cb593f-837c-4633-a444-35a0a0383706
,
the client can use oVirt’s Python’s SDK as follows:
transfers_service = system_service.image_transfers_service()
transfer = transfers_service.add(
types.ImageTransfer(
image=types.Image(
id='52cb593f-837c-4633-a444-35a0a0383706'
)
)
)
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(
image=types.Image(
id='52cb593f-837c-4633-a444-35a0a0383706'
),
direction=types.ImageTransferDirection.DOWNLOAD
)
)
Transfers have phases, which govern the flow of the upload/download. A client implementing such a flow should poll/check the transfer’s phase and act accordingly. All the possible phases can be found in ImageTransferPhase.
After adding a new transfer, its phase will be initializing. The client will have to poll on the transfer’s phase until it changes. When the phase becomes transferring, the session is ready to start the transfer.
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.
-
proxy_url
is the address of a proxy server to the image, to do I/O to. -
signed_ticket
is the content that needs to be added to theAuthentication
header in the HTTPS request, in order to perform a trusted communication.
For example, Python’s HTTPSConnection can be used in order to perform a transfer,
so an transfer_headers
dict is set for the upcoming transfer:
transfer_headers = {
'Authorization' : transfer.signed_ticket,
}
Using Python’s HTTPSConnection
, a new connection is established:
# Extract the URI, port, and path from the transfer's proxy_url.
url = urlparse.urlparse(transfer.proxy_url)
# Create a new instance of the connection.
proxy_connection = HTTPSConnection(
url.hostname,
url.port,
context=ssl.SSLContext(ssl.PROTOCOL_SSLv23)
)
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
with open(path, "rb") as disk:
size = os.path.getsize(path)
chunk_size = 1024*1024*MB_per_request
pos = 0
while (pos < size):
transfer_service.extend()
transfer_headers['Content-Range'] = "bytes %d-%d/%d" % (pos, min(pos + chunk_size, size)-1, size)
proxy_connection.request(
'PUT',
url.path,
disk.read(chunk_size),
headers=transfer_headers
)
r = proxy_connection.getresponse()
print r.status, r.reason, "Completed", "{:.0%}".format(pos/ float(size))
pos += chunk_size
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
with open(output_file, "wb") as disk:
pos = 0
while pos < total:
transfer_service.extend()
transfer_headers['Range'] = "bytes=%d-%d" % (pos, min(total, pos + chunk_size) - 1)
proxy_connection.request('GET', proxy_url.path, headers=transfer_headers)
r = proxy_connection.getresponse()
disk.write(r.read())
print "Completed", "{:.0%}".format(pos/ float(total))
pos += chunk_size
When finishing the transfer, the user should call finalize. This will make the final adjustments and verifications for finishing the transfer process.
For example:
transfer_service.finalize()
In case of an error, the transfer’s phase will be changed to
finished_failure, and
the disk’s status will be changed to Illegal
. Otherwise it will be changed to
finished_success, and the disk will be ready
to be used. In both cases, the transfer entity will be removed shortly after.
Name | Summary |
---|---|
|
Extend the image transfer session. |
|
After finishing to transfer the data, finalize the transfer. |
|
Get the image transfer entity. |
|
Pause the image transfer session. |
|
Resume the image transfer session. |
6.105.2. finalize POST
After finishing to transfer the data, finalize the transfer.
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.
6.105.3. get GET
Get the image transfer entity.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.105.5. resume POST
Resume the image transfer session. The client will need to poll the transfer’s phase until
it is different than resuming
. For example:
transfer_service = transfers_service.image_transfer_service(transfer.id)
transfer_service.resume()
transfer = transfer_service.get()
while transfer.phase == types.ImageTransferPhase.RESUMING:
time.sleep(1)
transfer = transfer_service.get()
6.106. ImageTransfers
This service manages image transfers, for performing Image I/O API in oVirt. Please refer to image transfer for further documentation.
Name | Summary |
---|---|
|
Add a new image transfer. |
|
Retrieves the list of image transfers that are currently being performed. |
6.106.1. add POST
Add a new image transfer. An image needs to be specified in order to make a new transfer.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.107. Images
Manages the set of images available in an storage domain or in an OpenStack image provider.
Name | Summary |
---|---|
|
Returns the list of images available in the storage domain or provider. |
6.108. InstanceType
Name | Summary |
---|---|
|
Get a specific instance type and it’s attributes. |
|
Removes a specific instance type from the system. |
|
Update a specific instance type and it’s attributes. |
6.108.1. get GET
Get a specific instance type and it’s attributes.
GET /ovirt-engine/api/instancetypes/123
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.108.2. remove DELETE
Removes a specific instance type from the system.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.108.3. update PUT
Update a specific instance type and it’s attributes.
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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.109. InstanceTypeGraphicsConsole
Name | Summary |
---|---|
|
Gets graphics console configuration of the instance type. |
|
Remove the graphics console from the instance type. |
6.109.1. get GET
Gets graphics console configuration of the instance type.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the graphics console of the instance type. |
6.110. InstanceTypeGraphicsConsoles
Name | Summary |
---|---|
|
Add new graphics console to the instance type. |
|
Lists all the configured graphics consoles of the instance type. |
6.110.1. add POST
Add new graphics console to the instance type.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.110.2. list GET
Lists all the configured graphics consoles of the instance type.
The order of the returned list of graphics consoles isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of graphics consoles of the instance type. |
|
|
In |
Sets the maximum number of consoles to return. |
6.111. InstanceTypeNic
Name | Summary |
---|---|
|
Gets network interface configuration of the instance type. |
|
Remove the network interface from the instance type. |
|
Updates the network interface configuration of the instance type. |
6.111.1. get GET
Gets network interface configuration of the instance type.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.112. InstanceTypeNics
Name | Summary |
---|---|
|
Add new network interface to the instance type. |
|
Lists all the configured network interface of the instance type. |
6.112.1. add POST
Add new network interface to the instance type.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.112.2. list GET
Lists all the configured network interface of the instance type.
The order of the returned list of network interfaces isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of NICs to return. |
|
|
Out |
||
|
In |
A query string used to restrict the returned templates. |
6.113. InstanceTypeWatchdog
Name | Summary |
---|---|
|
Gets watchdog configuration of the instance type. |
|
Remove a watchdog from the instance type. |
|
Updates the watchdog configuration of the instance type. |
6.113.1. get GET
Gets watchdog configuration of the instance type.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.114. InstanceTypeWatchdogs
Name | Summary |
---|---|
|
Add new watchdog to the instance type. |
|
Lists all the configured watchdogs of the instance type. |
6.114.1. add POST
Add new watchdog to the instance type.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.114.2. list GET
Lists all the configured watchdogs of the instance type.
The order of the returned list of watchdogs isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of watchdogs to return. |
|
|
In |
A query string used to restrict the returned templates. |
|
|
Out |
6.115. InstanceTypes
Name | Summary |
---|---|
|
Creates a new instance type. |
|
Lists all existing instance types in the system. |
6.115.1. add POST
Creates a new instance type.
This requires only a name attribute and can include all hardware configurations of the virtual machine.
POST /ovirt-engine/api/instancetypes
With a request body like this:
<instance_type>
<name>myinstancetype</name>
</template>
Creating an instance type with all hardware configurations with a request body like this:
<instance_type>
<name>myinstancetype</name>
<console>
<enabled>true</enabled>
</console>
<cpu>
<topology>
<cores>2</cores>
<sockets>2</sockets>
<threads>1</threads>
</topology>
</cpu>
<custom_cpu_model>AMD Opteron_G2</custom_cpu_model>
<custom_emulated_machine>q35</custom_emulated_machine>
<display>
<monitors>1</monitors>
<single_qxl_pci>true</single_qxl_pci>
<smartcard_enabled>true</smartcard_enabled>
<type>spice</type>
</display>
<high_availability>
<enabled>true</enabled>
<priority>1</priority>
</high_availability>
<io>
<threads>2</threads>
</io>
<memory>4294967296</memory>
<memory_policy>
<ballooning>true</ballooning>
<guaranteed>268435456</guaranteed>
</memory_policy>
<migration>
<auto_converge>inherit</auto_converge>
<compressed>inherit</compressed>
<policy id="00000000-0000-0000-0000-000000000000"/>
</migration>
<migration_downtime>2</migration_downtime>
<os>
<boot>
<devices>
<device>hd</device>
</devices>
</boot>
</os>
<rng_device>
<rate>
<bytes>200</bytes>
<period>2</period>
</rate>
<source>urandom</source>
</rng_device>
<soundcard_enabled>true</soundcard_enabled>
<usb>
<enabled>true</enabled>
<type>native</type>
</usb>
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
</instance_type>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.115.2. list GET
Lists all existing instance types in the system.
The order of the returned list of instance types isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Sets the maximum number of instance types to return. |
|
|
In |
A query string used to restrict the returned templates. |
6.116. IscsiBond
Name | Summary |
---|---|
|
|
|
Removes of an existing iSCSI bond. |
|
Updates an iSCSI bond. |
6.116.2. remove DELETE
Removes of an existing iSCSI bond.
For example, to remove the iSCSI bond 456
send a request like this:
DELETE /ovirt-engine/api/datacenters/123/iscsibonds/456
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.116.3. update PUT
Updates an iSCSI bond.
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
The request body should look like this:
<iscsi_bond>
<name>mybond</name>
<description>My iSCSI bond</description>
</iscsi_bond>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.117. IscsiBonds
Name | Summary |
---|---|
|
Create a new iSCSI bond on a data center. |
|
Returns the list of iSCSI bonds configured in the data center. |
6.117.1. add POST
Create a new iSCSI bond on a 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
The request body should look like this:
<iscsi_bond>
<name>mybond</name>
<storage_connections>
<storage_connection id="456"/>
<storage_connection id="789"/>
</storage_connections>
<networks>
<network id="abc"/>
</networks>
</iscsi_bond>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.118. Job
A service to manage a job.
Name | Summary |
---|---|
|
Set an external job execution to be cleared by the system. |
|
Marks an external job execution as ended. |
|
Retrieves a job. |
6.118.1. clear POST
Set an external job execution to be cleared by the system.
For example, to set a job with identifier 123
send the following request:
POST /ovirt-engine/api/jobs/clear
With the following request body:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.118.2. end POST
Marks an external job execution as ended.
For example, to terminate a job with identifier 123
send the following request:
POST /ovirt-engine/api/jobs/end
With the following request body:
<action>
<force>true</force>
<status>finished</status>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
Indicates if the job should be forcibly terminated. |
|
|
In |
Indicates if the job should be marked as successfully finished or as failed. |
6.118.3. get GET
Retrieves a job.
GET /ovirt-engine/api/jobs/123
You will receive response in XML like this one:
<job href="/ovirt-engine/api/jobs/123" id="123">
<actions>
<link href="/ovirt-engine/api/jobs/123/clear" rel="clear"/>
<link href="/ovirt-engine/api/jobs/123/end" rel="end"/>
</actions>
<description>Adding Disk</description>
<link href="/ovirt-engine/api/jobs/123/steps" rel="steps"/>
<auto_cleared>true</auto_cleared>
<end_time>2016-12-12T23:07:29.758+02:00</end_time>
<external>false</external>
<last_updated>2016-12-12T23:07:29.758+02:00</last_updated>
<start_time>2016-12-12T23:07:26.593+02:00</start_time>
<status>failed</status>
<owner href="/ovirt-engine/api/users/456" id="456"/>
</job>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieves the representation of the job. |
6.119. Jobs
A service to manage jobs.
Name | Summary |
---|---|
|
Add an external job. |
|
Retrieves the representation of the jobs. |
6.119.1. add POST
Add an external job.
For example, to add a job with the following request:
POST /ovirt-engine/api/jobs
With the following request body:
<job>
<description>Doing some work</description>
<auto_cleared>true</auto_cleared>
</job>
The response should look like:
<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>Doing some work</description>
<link href="/ovirt-engine/api/jobs/123/steps" rel="steps"/>
<auto_cleared>true</auto_cleared>
<external>true</external>
<last_updated>2016-12-13T02:15:42.130+02:00</last_updated>
<start_time>2016-12-13T02:15:42.130+02:00</start_time>
<status>started</status>
<owner href="/ovirt-engine/api/users/456" id="456"/>
</job>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
Job that will be added. |
6.119.2. list GET
Retrieves the representation of the jobs.
GET /ovirt-engine/api/jobs
You will receive response in XML like this one:
<jobs>
<job href="/ovirt-engine/api/jobs/123" id="123">
<actions>
<link href="/ovirt-engine/api/jobs/123/clear" rel="clear"/>
<link href="/ovirt-engine/api/jobs/123/end" rel="end"/>
</actions>
<description>Adding Disk</description>
<link href="/ovirt-engine/api/jobs/123/steps" rel="steps"/>
<auto_cleared>true</auto_cleared>
<end_time>2016-12-12T23:07:29.758+02:00</end_time>
<external>false</external>
<last_updated>2016-12-12T23:07:29.758+02:00</last_updated>
<start_time>2016-12-12T23:07:26.593+02:00</start_time>
<status>failed</status>
<owner href="/ovirt-engine/api/users/456" id="456"/>
</job>
...
</jobs>
The order of the returned list of jobs isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
A representation of jobs. |
|
|
In |
Sets the maximum number of jobs to return. |
6.120. KatelloErrata
A service to manage Katello errata. The information is retrieved from Katello.
Name | Summary |
---|---|
|
Retrieves the representation of the Katello errata. |
6.120.1. list GET
Retrieves the representation of the Katello errata.
GET /ovirt-engine/api/katelloerrata
You will receive response in XML like this one:
<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>
The order of the returned list of erratum isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
A representation of Katello errata. |
|
|
In |
Sets the maximum number of errata to return. |
6.121. KatelloErratum
A service to manage a Katello erratum.
Name | Summary |
---|---|
|
Retrieves a Katello erratum. |
6.121.1. get GET
Retrieves a Katello erratum.
GET /ovirt-engine/api/katelloerrata/123
You will receive response in XML like this one:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieves the representation of the Katello erratum. |
6.122. LinkLayerDiscoveryProtocol
A service to fetch information elements received by Link Layer Discovery Protocol (LLDP).
Name | Summary |
---|---|
|
Fetches information elements received by LLDP. |
6.122.1. list GET
Fetches information elements received by LLDP.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieves a list of information elements received by LLDP. |
elements
Retrieves a list of information elements received by LLDP.
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
It will return a response like this:
<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.123. MacPool
Name | Summary |
---|---|
|
|
|
Removes a MAC address pool. |
|
Updates a MAC address pool. |
6.123.2. remove DELETE
Removes a MAC address pool.
For example, to remove the MAC address pool having id 123
send a request like this:
DELETE /ovirt-engine/api/macpools/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.123.3. update PUT
Updates a MAC address pool.
The name
, description
, allow_duplicates
, and ranges
attributes can be updated.
For example, to update the MAC address pool of id 123
send a request like this:
PUT /ovirt-engine/api/macpools/123
With a request body like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.124. MacPools
Name | Summary |
---|---|
|
Creates a new MAC address pool. |
|
Return the list of MAC address pools of the system. |
6.124.1. add POST
Creates a new MAC address pool.
Creation of a MAC address pool requires values for the name
and ranges
attributes.
For example, to create MAC address pool send a request like this:
POST /ovirt-engine/api/macpools
With a request body like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.126. Moveable
Name | Summary |
---|---|
|
6.127. Network
A service managing a network
Name | Summary |
---|---|
|
Gets a logical network. |
|
Removes a logical network, or the association of a logical network to a data center. |
|
Updates a logical network. |
6.127.1. get GET
Gets a logical network.
For example:
GET /ovirt-engine/api/networks/123
Will respond:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.127.2. remove DELETE
Removes a logical network, or the association of a logical network to a data center.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.127.3. update PUT
Updates a logical network.
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
With a request body like this:
<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
With a request body like this:
<network>
<mtu>1500</mtu>
</network>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.128. NetworkAttachment
Name | Summary |
---|---|
|
|
|
|
|
6.128.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.129. NetworkAttachments
Manages the set of network attachments of a host or host NIC.
Name | Summary |
---|---|
|
|
|
Returns the list of network attachments of the host or host NIC. |
6.130. 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>
Please note that version is referring to the minimal support version for the specific filter.
Name | Summary |
---|---|
|
Retrieves a representation of the network filter. |
6.131. 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 filter is defined for each vnic profile.
A vnic profile is defined for a specific network.
A network can be assigned to several different clusters. In the future, each network will be defined in cluster level.
Currently, each network is being defined at data center level. Potential network filters for each network are determined by the network’s data center compatibility version V. V must be >= the network filter version in order to configure this network filter for a specific network. Please note, that if a network is assigned to cluster with a version supporting a network filter, the filter may not be available due to the data center version being smaller then the network filter’s version.
Example of listing all of the supported network filters for a specific cluster:
GET http://localhost:8080/ovirt-engine/api/clusters/{cluster:id}/networkfilters
Output:
<network_filters>
<network_filter id="00000019-0019-0019-0019-00000000026c">
<name>example-network-filter-a</name>
<version>
<major>4</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
<network_filter id="00000019-0019-0019-0019-00000000026b">
<name>example-network-filter-b</name>
<version>
<major>4</major>
<minor>0</minor>
<build>-1</build>
<revision>-1</revision>
</version>
</network_filter>
<network_filter id="00000019-0019-0019-0019-00000000026a">
<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 |
---|---|
|
Retrieves the representations of the network filters. |
6.132. NetworkLabel
Name | Summary |
---|---|
|
|
|
Removes a label from a logical network. |
6.132.2. remove DELETE
Removes a label from a logical network.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.133. NetworkLabels
Manages the ser of labels attached to a network or to a host NIC.
Name | Summary |
---|---|
|
Attaches label to logical network. |
|
Returns the list of labels attached to the network or host NIC. |
6.133.1. add POST
Attaches label to logical network.
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
With a request body like this:
<label id="mylabel"/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.134. 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 |
---|---|
|
Creates a new logical network, or associates an existing network with a data center. |
|
List logical networks. |
6.134.1. add POST
Creates a new logical network, or associates an existing network with a data center.
Creation of a new network requires the name
and data_center
elements.
For example, to create a network named mynetwork
for data center 123
send a request like this:
POST /ovirt-engine/api/networks
With a request body like this:
<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
With a request body like this:
<network>
<name>ovirtmgmt</name>
</network>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.134.2. list GET
List logical networks.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Sets the maximum number of networks to return. |
|
|
Out |
||
|
In |
A query string used to restrict the returned networks. |
6.135. OpenstackImage
Name | Summary |
---|---|
|
|
|
Imports a virtual machine from a Glance image storage domain. |
6.135.2. import POST
Imports a virtual machine from a Glance image storage domain.
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
With a request body like this:
<action>
<storage_domain>
<name>images0</name>
</storage_domain>
<cluster>
<name>images0</name>
</cluster>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the import should be performed asynchronously. |
|
|
In |
This parameter is mandatory in case of using |
|
|
In |
||
|
In |
Indicates whether the image should be imported as a template. |
|
|
In |
||
|
In |
6.136. OpenstackImageProvider
Name | Summary |
---|---|
|
|
|
|
|
|
|
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider. |
|
6.136.2. importcertificates POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
6.136.3. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.136.4. testconnectivity POST
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider.
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the test should be performed asynchronously. |
6.137. OpenstackImageProviders
Name | Summary |
---|---|
|
|
|
Returns the list of providers. |
6.138. OpenstackImages
Name | Summary |
---|---|
|
Lists the images of a Glance image storage domain. |
6.139. OpenstackNetwork
Name | Summary |
---|---|
|
|
|
This operation imports an external network into oVirt. |
6.139.2. import POST
This operation imports an external network into oVirt. The network will be added to the data center specified.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the import should be performed asynchronously. |
|
|
In |
The data center into which the network is to be imported. |
6.140. OpenstackNetworkProvider
This service manages OpenStack network provider.
Name | Summary |
---|---|
|
Returns the representation of the object managed by this service. |
|
|
|
Removes the provider. |
|
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider. |
|
Updates the provider. |
6.140.1. get GET
Returns the representation of the object managed by this service.
For example, to get the OpenStack network provider with identifier 1234
, send a request like this:
GET /ovirt-engine/api/openstacknetworkproviders/1234
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.140.2. importcertificates POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
6.140.3. remove DELETE
Removes the provider.
For example, to remove the OpenStack network provider with identifier 1234
, send a request like this:
DELETE /ovirt-engine/api/openstacknetworkproviders/1234
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.140.4. testconnectivity POST
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider.
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the test should be performed asynchronously. |
6.140.5. update PUT
Updates the provider.
For example, to update provider_name
, requires_authentication
, url
, tenant_name
and type
properties,
for the OpenStack network provider with identifier 1234
, send a request like this:
PUT /ovirt-engine/api/openstacknetworkproviders/1234
With a request body like this:
<openstack_network_provider>
<name>ovn-network-provider</name>
<requires_authentication>false</requires_authentication>
<url>http://some_server_url.domain.com:9696</url>
<tenant_name>oVirt</tenant_name>
<type>external</type>
</openstack_network_provider>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
The provider to update. |
6.141. OpenstackNetworkProviders
This service manages OpenStack network providers.
Name | Summary |
---|---|
|
The operation adds a new network provider to the system. |
|
Returns the list of providers. |
6.141.1. add POST
The operation adds a new network provider to the system.
If the type
property is not present, a default value of NEUTRON
will be used.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.142. OpenstackNetworks
Name | Summary |
---|---|
|
Returns the list of networks. |
6.143. OpenstackSubnet
Name | Summary |
---|---|
|
|
|
6.144. OpenstackSubnets
Name | Summary |
---|---|
|
|
|
Returns the list of sub-networks. |
6.145. OpenstackVolumeAuthenticationKey
Name | Summary |
---|---|
|
|
|
|
|
6.145.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.146. OpenstackVolumeAuthenticationKeys
Name | Summary |
---|---|
|
|
|
Returns the list of authentication keys. |
6.147. OpenstackVolumeProvider
Name | Summary |
---|---|
|
|
|
|
|
|
|
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider. |
|
6.147.2. importcertificates POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
6.147.3. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.147.4. testconnectivity POST
In order to test connectivity for external provider we need to run following request where 123 is an id of a provider.
POST /ovirt-engine/api/externalhostproviders/123/testconnectivity
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the test should be performed asynchronously. |
6.148. OpenstackVolumeProviders
Name | Summary |
---|---|
|
Adds a new volume provider. |
|
Retrieves the list of volume providers. |
6.148.1. add POST
Adds a new volume provider.
For example:
POST /ovirt-engine/api/openstackvolumeproviders
With a request body like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.149. OpenstackVolumeType
Name | Summary |
---|---|
|
6.150. OpenstackVolumeTypes
Name | Summary |
---|---|
|
Returns the list of volume types. |
6.151. OperatingSystem
Name | Summary |
---|---|
|
6.152. OperatingSystems
Manages the set of types of operating systems available in the system.
Name | Summary |
---|---|
|
Returns the list of types of operating system available in the system. |
6.153. Permission
Name | Summary |
---|---|
|
|
|
6.154. Permit
A service to manage a specific permit of the role.
Name | Summary |
---|---|
|
Gets the information about the permit of the role. |
|
Removes the permit from the role. |
6.154.1. get GET
Gets the information about the permit of the role.
For example to retrieve the information about the permit with the id 456
of the role with the id 123
send a request like this:
GET /ovirt-engine/api/roles/123/permits/456
<permit href="/ovirt-engine/api/roles/123/permits/456" id="456">
<name>change_vm_cd</name>
<administrative>false</administrative>
<role href="/ovirt-engine/api/roles/123" id="123"/>
</permit>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The permit of the role. |
6.154.2. remove DELETE
Removes the permit from the role.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.155. Permits
Represents a permits sub-collection of the specific role.
Name | Summary |
---|---|
|
Adds a permit to the role. |
|
List the permits of the role. |
6.155.1. add POST
Adds a permit to the role. The permit name can be retrieved from the ClusterLevels service.
For example to assign a permit create_vm
to the role with id 123
send a request like this:
POST /ovirt-engine/api/roles/123/permits
With a request body like this:
<permit>
<name>create_vm</name>
</permit>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The permit to add. |
6.155.2. list GET
List the permits of the role.
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>
The order of the returned list of permits isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of permits to return. |
|
|
Out |
List of permits. |
6.156. Qos
Name | Summary |
---|---|
|
Get specified QoS in the data center. |
|
Remove specified QoS from datacenter. |
|
Update the specified QoS in the dataCenter. |
6.156.1. get GET
Get specified QoS in the data center.
GET /ovirt-engine/api/datacenters/123/qoss/123
You will get response like this one below:
<qos href="/ovirt-engine/api/datacenters/123/qoss/123" id="123">
<name>123</name>
<description>123</description>
<max_iops>1</max_iops>
<max_throughput>1</max_throughput>
<type>storage</type>
<data_center href="/ovirt-engine/api/datacenters/123" id="123"/>
</qos>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Queried QoS object. |
6.156.2. remove DELETE
Remove specified QoS from datacenter.
DELETE /ovirt-engine/api/datacenters/123/qoss/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.156.3. update PUT
Update the specified QoS in the dataCenter.
PUT /ovirt-engine/api/datacenters/123/qoss/123
For example with curl:
curl -u admin@internal:123456 -X PUT -H "content-type: application/xml" -d \
"<qos><name>321</name><description>321</description><max_iops>10</max_iops></qos>" \
https://engine/ovirt-engine/api/datacenters/123/qoss/123
You will receive response like this:
<qos href="/ovirt-engine/api/datacenters/123/qoss/123" id="123">
<name>321</name>
<description>321</description>
<max_iops>10</max_iops>
<max_throughput>1</max_throughput>
<type>storage</type>
<data_center href="/ovirt-engine/api/datacenters/123" id="123"/>
</qos>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
Updated QoS object. |
6.157. Qoss
Manages the set of quality of service configurations available in a data center.
Name | Summary |
---|---|
|
|
|
Returns the list of quality of service configurations available in the data center. |
6.157.2. list GET
Returns the list of quality of service configurations available in the data center.
GET /ovirt-engine/api/datacenter/123/qoss
You will get response which will look like this:
<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>
The returned list of quality of service configurations isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of QoS descriptors to return. |
|
|
Out |
6.158. Quota
Name | Summary |
---|---|
|
Retrieves a quota. |
|
Delete a quota. |
|
Updates a quota. |
6.158.1. get GET
Retrieves a quota.
An example of retrieving a quota:
GET /ovirt-engine/api/datacenters/123/quotas/456
<quota id="456">
<name>myquota</name>
<description>My new quota for virtual machines</description>
<cluster_hard_limit_pct>20</cluster_hard_limit_pct>
<cluster_soft_limit_pct>80</cluster_soft_limit_pct>
<storage_hard_limit_pct>20</storage_hard_limit_pct>
<storage_soft_limit_pct>80</storage_soft_limit_pct>
</quota>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.158.2. remove DELETE
Delete a quota.
An example of deleting a quota:
DELETE /ovirt-engine/api/datacenters/123-456/quotas/654-321
-0472718ab224 HTTP/1.1
Accept: application/xml
Content-type: application/xml
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.158.3. update PUT
Updates a quota.
An example of updating a quota:
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>
<storage_hard_limit_pct>20</storage_hard_limit_pct>
<storage_soft_limit_pct>80</storage_soft_limit_pct>
</quota>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.159. QuotaClusterLimit
Name | Summary |
---|---|
|
|
|
6.160. QuotaClusterLimits
Manages the set of quota limits configured for a cluster.
Name | Summary |
---|---|
|
|
|
Returns the set of quota limits configured for the cluster. |
6.161. QuotaStorageLimit
Name | Summary |
---|---|
|
|
|
6.162. QuotaStorageLimits
Manages the set of storage limits configured for a quota.
Name | Summary |
---|---|
|
Adds a storage limit to a specified quota. |
|
Returns the list of storage limits configured for the quota. |
6.162.1. add POST
Adds a storage limit to a specified quota.
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
With a request body like this:
<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
With a request body like this:
<quota_storage_limit>
<limit>50</limit>
<storage_domain id="000"/>
</quota_storage_limit>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.163. Quotas
Manages the set of quotas configured for a data center.
Name | Summary |
---|---|
|
Creates a new quota. |
|
Lists quotas of a data center. |
6.163.1. add POST
Creates a new quota.
An example of creating a new quota:
POST /ovirt-engine/api/datacenters/123/quotas
<quota>
<name>myquota</name>
<description>My new quota for virtual machines</description>
</quota>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.164. Role
Name | Summary |
---|---|
|
Get the role. |
|
Removes the role. |
|
Updates a role. |
6.164.1. get GET
Get the role.
GET /ovirt-engine/api/roles/123
You will receive XML response like this one:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved role. |
6.164.2. remove DELETE
Removes the role.
To remove the role you need to know its id, then send request like this:
DELETE /ovirt-engine/api/roles/{role_id}
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.164.3. update PUT
Updates a role. You are allowed to update name
, description
and administrative
attributes after role is
created. Within this endpoint you can’t add or remove roles permits you need to use
service that manages permits of role.
For example to update role’s name
, description
and administrative
attributes send a request like this:
PUT /ovirt-engine/api/roles/123
With a request body like this:
<role>
<name>MyNewRoleName</name>
<description>My new description of the role</description>
<administrative>true</administrative>
</group>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
Updated role. |
6.165. Roles
Provides read-only access to the global set of roles
Name | Summary |
---|---|
|
Create a new role. |
|
List roles. |
6.165.1. add POST
Create a new role. The role can be administrative or non-administrative and can have different permits.
For example, to add the MyRole
non-administrative role with permits to login and create virtual machines
send a request like this (note that you have to pass permit id):
POST /ovirt-engine/api/roles
With a request body like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
Role that will be added. |
6.165.2. list GET
List roles.
GET /ovirt-engine/api/roles
You will receive response in XML like this one:
<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>
The order of the returned list of roles isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of roles to return. |
|
|
Out |
Retrieved list of roles. |
6.166. SchedulingPolicies
Manages the set of scheduling policies available in the system.
Name | Summary |
---|---|
|
|
|
Returns the list of scheduling policies available in the system. |
6.166.2. list GET
Returns the list of scheduling policies available in the system.
The order of the returned list of scheduling policies isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of policies to return. |
|
|
Out |
6.167. SchedulingPolicy
Name | Summary |
---|---|
|
|
|
|
|
6.167.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
6.167.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.168. SchedulingPolicyUnit
Name | Summary |
---|---|
|
|
|
6.168.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
6.169. SchedulingPolicyUnits
Manages the set of scheduling policy units available in the system.
Name | Summary |
---|---|
|
Returns the list of scheduling policy units available in the system. |
6.169.1. list GET
Returns the list of scheduling policy units available in the system.
The order of the returned list of scheduling policy units isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of policy units to return. |
|
|
Out |
6.170. Snapshot
Name | Summary |
---|---|
|
|
|
|
|
Restores a virtual machine snapshot. |
6.170.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.170.3. restore POST
Restores a virtual machine snapshot.
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
With an empty action
in the body:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the restore should be performed asynchronously. |
|
|
In |
||
|
In |
6.171. SnapshotCdrom
Name | Summary |
---|---|
|
6.172. SnapshotCdroms
Manages the set of CD-ROM devices of a virtual machine snapshot.
Name | Summary |
---|---|
|
Returns the list of CD-ROM devices of the snapshot. |
6.173. SnapshotDisk
Name | Summary |
---|---|
|
6.174. SnapshotDisks
Manages the set of disks of an snapshot.
Name | Summary |
---|---|
|
Returns the list of disks of the snapshot. |
6.175. SnapshotNic
Name | Summary |
---|---|
|
6.176. SnapshotNics
Manages the set of NICs of an snapshot.
Name | Summary |
---|---|
|
Returns the list of NICs of the snapshot. |
6.177. Snapshots
Manages the set of snapshots of a storage domain or virtual machine.
Name | Summary |
---|---|
|
Creates a virtual machine snapshot. |
|
Returns the list of snapshots of the storage domain or virtual machine. |
6.177.1. add POST
Creates a virtual machine snapshot.
For example, to create a new snapshot for virtual machine 123
send a request like this:
POST /ovirt-engine/api/vms/123/snapshots
With a request body like this:
<snapshot>
<description>My snapshot</description>
</snapshot>
When a snapshot is created the default value for the persist_memorystate attribute is
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.178. SshPublicKey
Name | Summary |
---|---|
|
|
|
|
|
6.178.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.179. SshPublicKeys
Name | Summary |
---|---|
|
|
|
Returns a list of SSH public keys of the user. |
6.179.2. list GET
Returns a list of SSH public keys of the user.
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
The result will be the following XML document:
<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>
Or the following JSON object
{
"ssh_public_key": [
{
"content": "ssh-rsa ...",
"user": {
"href": "/ovirt-engine/api/users/123",
"id": "123"
},
"href": "/ovirt-engine/api/users/123/sshpublickeys/456",
"id": "456"
}
]
}
The order of the returned list of keys is not guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
||
|
In |
Sets the maximum number of keys to return. |
6.180. Statistic
Name | Summary |
---|---|
|
6.181. Statistics
Name | Summary |
---|---|
|
Retrieves a list of statistics. |
6.181.1. list GET
Retrieves a list of statistics.
For example, to retrieve the statistics for virtual machine 123
send a
request like this:
GET /ovirt-engine/api/vms/123/statistics
The result will be like this:
<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:
<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>
The order of the returned list of statistics isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of statistics to return. |
|
|
Out |
6.182. Step
A service to manage a step.
Name | Summary |
---|---|
|
Marks an external step execution as ended. |
|
Retrieves a step. |
6.182.1. end POST
Marks an external step execution as ended.
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
With the following request body:
<action>
<force>true</force>
<succeeded>true</succeeded>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
Indicates if the step should be forcibly terminated. |
|
|
In |
Indicates if the step should be marked as successfully finished or as failed. |
6.182.2. get GET
Retrieves a step.
GET /ovirt-engine/api/jobs/123/steps/456
You will receive response in XML like this one:
<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>
<end_time>2016-12-12T23:07:26.627+02:00</end_time>
<external>false</external>
<number>0</number>
<start_time>2016-12-12T23:07:26.605+02:00</start_time>
<status>finished</status>
<type>validating</type>
<job href="/ovirt-engine/api/jobs/123" id="123"/>
</step>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieves the representation of the step. |
6.183. Steps
A service to manage steps.
Name | Summary |
---|---|
|
Add an external step to an existing job or to an existing step. |
|
Retrieves the representation of the steps. |
6.183.1. add POST
Add an external step to an existing job or to an existing step.
For example, to add a step to job
with identifier 123
send the
following request:
POST /ovirt-engine/api/jobs/123/steps
With the following request body:
<step>
<description>Validating</description>
<start_time>2016-12-12T23:07:26.605+02:00</start_time>
<status>started</status>
<type>validating</type>
</step>
The response should look like:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
Step that will be added. |
6.183.2. list GET
Retrieves the representation of the steps.
GET /ovirt-engine/api/job/123/steps
You will receive response in XML like this one:
<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>
The order of the returned list of steps isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of steps to return. |
|
|
Out |
A representation of steps. |
6.184. Storage
Name | Summary |
---|---|
|
6.184.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the status of the LUNs in the storage should be checked. |
|
|
Out |
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.
The default is true
for backward compatibility.
Here an example with the LUN status :
<host_storage id="360014051136c20574f743bdbd28177fd">
<logical_units>
<logical_unit id="360014051136c20574f743bdbd28177fd">
<lun_mapping>0</lun_mapping>
<paths>1</paths>
<product_id>lun0</product_id>
<serial>SLIO-ORG_lun0_1136c205-74f7-43bd-bd28-177fd5ce6993</serial>
<size>10737418240</size>
<status>used</status>
<vendor_id>LIO-ORG</vendor_id>
<volume_group_id>O9Du7I-RahN-ECe1-dZ1w-nh0b-64io-MNzIBZ</volume_group_id>
</logical_unit>
</logical_units>
<type>iscsi</type>
<host id="8bb5ade5-e988-4000-8b93-dbfc6717fe50"/>
</host_storage>
Here an example without the LUN status :
<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.185. StorageDomain
Name | Summary |
---|---|
|
|
|
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. |
|
This operation reduces logical units from the storage domain. |
|
This operation refreshes the LUN size. |
|
Removes the storage domain. |
|
Updates a storage domain. |
|
This operation forces the update of the |
6.185.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
6.185.2. isattached POST
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. IMPORTANT: Executing this API will cause the host to disconnect from the storage domain.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
|
|
In |
||
|
Out |
6.185.3. reduceluns POST
This operation reduces logical units from the storage domain.
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
With a request body like this:
<action>
<logical_units>
<logical_unit id="1IET_00010001"/>
<logical_unit id="1IET_00010002"/>
</logical_units>
</action>
Note that this operation is only applicable to block storage domains (i.e., storage domains with the <<types/storage_type, storage type> of iSCSI or FCP).
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
The logical units that need to be reduced from the storage domain. |
6.185.4. refreshluns POST
This operation refreshes the LUN size.
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
With a request body like this:
<action>
<logical_units>
<logical_unit id="1IET_00010001"/>
<logical_unit id="1IET_00010002"/>
</logical_units>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the refresh should be performed asynchronously. |
|
|
In |
The LUNs that need to be refreshed. |
6.185.5. remove DELETE
Removes the storage domain.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
|
|
In |
Indicates if the operation should succeed, and the storage domain removed from the database, even if the storage is not accessible. |
|
|
In |
Indicates if the actual storage should be formatted, removing all the metadata from the underlying LUN or directory: [source] ---- DELETE /ovirt-engine/api/storagedomains/123?format=true ---- This parameter is optional, and the default value is |
|
|
In |
Indicates which host should be used to remove the storage domain. |
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.
host
Indicates which host should be used to remove the storage domain.
This parameter is mandatory, except if the destroy
parameter is included and its value is true
, in that
case the host
parameter will be ignored.
The value should contain the name or the identifier of the host. For example, to use the host named myhost
to remove the storage domain with identifier 123
send a request like this:
DELETE /ovirt-engine/api/storagedomains/123?host=myhost
6.185.6. update PUT
Updates a storage domain.
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
With a request body as follows:
<storage_domain>
<name>data2</name>
<wipe_after_delete>true</wipe_after_delete>
</storage_domain>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.185.7. updateovfstore POST
This operation forces the update of the OVF_STORE
of this 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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the |
6.187. StorageDomainContentDisks
Manages the set of disks available in a storage domain.
Name | Summary |
---|---|
|
Returns the list of disks available in the storage domain. |
6.187.1. list GET
Returns the list of disks available in the storage domain.
The order of the returned list of disks is guaranteed only if the sortby
clause is included in
the search
parameter.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
Out |
||
|
In |
Sets the maximum number of disks to return. |
|
|
In |
A query string used to restrict the returned disks. |
6.188. StorageDomainServerConnection
Name | Summary |
---|---|
|
|
|
Detaches a storage connection from storage. |
6.189. StorageDomainServerConnections
Manages the set of connections to storage servers that exist in a storage domain.
Name | Summary |
---|---|
|
|
|
Returns the list of connections to storage servers that existin the storage domain. |
6.190. StorageDomainTemplate
Name | Summary |
---|---|
|
|
|
Action to import a template from an export storage domain. |
|
|
|
6.190.2. import POST
Action to import a template from an export storage domain.
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
With the following request body:
<action>
<storage_domain>
<name>myexport</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the import should be performed asynchronously. |
|
|
In |
Use the optional |
|
|
In |
||
|
In |
||
|
In |
||
|
In |
||
|
In |
6.190.3. register POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates whether a template is allowed to be registered with only some of its disks. |
|
|
In |
Indicates if the registration should be performed asynchronously. |
|
|
In |
||
|
In |
||
|
In |
||
|
In |
allow_partial_import
Indicates whether a template 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 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.191. StorageDomainTemplates
Manages the set of templates available in a storage domain.
Name | Summary |
---|---|
|
Returns the list of templates availalbe in the storage domain. |
6.191.1. list GET
Returns the list of templates availalbe in the storage domain.
The order of the returned list of templates isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of templates to return. |
|
|
Out |
||
|
In |
Indicates whether to retrieve a list of registered or unregistered templates which contain disks on the storage domain. |
max
Sets the maximum number of templates to return. If not specified all the templates are returned.
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.192. StorageDomainVm
Name | Summary |
---|---|
|
|
|
Imports a virtual machine from an export storage domain. |
|
|
|
Deletes a virtual machine from an export storage domain. |
6.192.2. import POST
Imports a virtual machine from an export storage domain.
For example, send a request like this:
POST /ovirt-engine/api/storagedomains/123/vms/456/import
With a request body like this:
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
</action>
To import a virtual machine as a new entity add the clone
parameter:
<action>
<storage_domain>
<name>mydata</name>
</storage_domain>
<cluster>
<name>mycluster</name>
</cluster>
<clone>true</clone>
<vm>
<name>myvm</name>
</vm>
</action>
Include an optional disks
parameter to choose which disks to import. For example, to import the disks
of the template that have the identifiers 123
and 456
send the following request body:
<action>
<cluster>
<name>mycluster</name>
</cluster>
<vm>
<name>myvm</name>
</vm>
<disks>
<disk id="123"/>
<disk id="456"/>
</disks>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the import should be performed asynchronously. |
|
|
In |
Indicates if the identifiers of the imported virtual machine should be regenerated. |
|
|
In |
||
|
In |
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. |
|
|
In |
||
|
In |
clone
Indicates if the identifiers of the imported virtual machine should be regenerated.
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.192.3. register POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates whether a virtual machine is allowed to be registered with only some of its disks. |
|
|
In |
Indicates if the registration should be performed asynchronously. |
|
|
In |
||
|
In |
||
|
In |
Indicates if the problematic MAC addresses should be re-assigned during the import process by the engine. |
|
|
In |
||
|
In |
Mapping rules for virtual NIC profiles that will be applied during the import process. |
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
.
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.
-
It’s out of the range of the target MAC address pool.
6.192.4. remove DELETE
Deletes a virtual machine from an export storage domain.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.193. StorageDomainVmDiskAttachment
Returns the details of the disks attached to a virtual machine in the export domain.
Name | Summary |
---|---|
|
Returns the details of the attachment with all its properties and a link to the disk. |
6.194. StorageDomainVmDiskAttachments
Returns the details of a disk attached to a virtual machine in the export domain.
Name | Summary |
---|---|
|
List the disks that are attached to the virtual machine. |
6.195. StorageDomainVms
Lists the virtual machines of an export storage domain.
For example, to retrieve the virtual machines that are available in the storage domain with identifier 123
send the
following request:
GET /ovirt-engine/api/storagedomains/123/vms
This will return the following response body:
<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 |
---|---|
|
Returns the list of virtual machines of the export storage domain. |
6.195.1. list GET
Returns the list of virtual machines of the export storage domain.
The order of the returned list of virtual machines isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of virtual machines to return. |
|
|
In |
Indicates whether to retrieve a list of registered or unregistered virtual machines which contain disks on the storage domain. |
|
|
Out |
max
Sets the maximum number of virtual machines to return. If not specified all the virtual machines are returned.
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.196. StorageDomains
Manages the set of storage domains of the system.
Name | Summary |
---|---|
|
Adds a new storage domain. |
|
Returns the list of storage domains of the system. |
6.196.1. add POST
Adds a new storage domain.
Creation of a new StorageDomain requires the name
, type
, host
and storage
attributes. Identify the host
attribute with the id
or name
attributes. In oVirt 3.6 and later you can
enable the wipe after delete option by default on the storage domain. To configure this, specify
wipe_after_delete
in the POST request. This option can be edited after the domain is created, but doing so will
not change the wipe after delete property of disks that already exist.
To add a new storage domain with specified name
, type
, storage.type
, storage.address
and storage.path
and by using a host with an id 123
, send a request as follows:
POST /ovirt-engine/api/storagedomains
With a request body as follows:
<storage_domain>
<name>mydata</name>
<type>data</type>
<storage>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/exports/mydata</path>
</storage>
<host>
<name>myhost</name>
</host>
</storage_domain>
To create a new NFS ISO storage domain send a request like this:
<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>
To create a new iSCSI storage domain send a request like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.196.2. list GET
Returns the list of storage domains of the system.
The order of the returned list of storage domains is guaranteed only if the sortby
clause is included
in the search
parameter.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of storage domains to return. |
|
|
In |
A query string used to restrict the returned storage domains. |
|
|
Out |
6.197. StorageServerConnection
Name | Summary |
---|---|
|
|
|
Removes a storage connection. |
|
Updates the storage connection. |
6.197.2. remove DELETE
Removes a storage connection.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
|
|
In |
The name or identifier of the host from which the connection would be unmounted (disconnected). |
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
6.197.3. update PUT
Updates the storage connection.
For example, to change the address of the storage server send a request like this:
PUT /ovirt-engine/api/storageconnections/123
With a request body like this:
<storage_connection>
<address>mynewnfs.example.com</address>
<host>
<name>myhost</name>
</host>
</storage_connection>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
||
|
In |
Indicates if the operation should succeed regardless to the relevant storage domain’s status (i. |
6.198. StorageServerConnectionExtension
Name | Summary |
---|---|
|
|
|
|
|
Update a storage server connection extension for the given host. |
6.198.2. remove DELETE
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.198.3. update PUT
Update a storage server connection extension for the given host.
To update the storage connection 456
of host 123
send a request like this:
PUT /ovirt-engine/api/hosts/123/storageconnectionextensions/456
With a request body like this:
<storage_connection_extension>
<target>iqn.2016-01.com.example:mytarget</target>
<username>myuser</username>
<password>mypassword</password>
</storage_connection_extension>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.199. StorageServerConnectionExtensions
Name | Summary |
---|---|
|
Creates a new storage server connection extension for the given host. |
|
Returns the list os storage connection extensions. |
6.199.1. add POST
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
With a request body like this:
<storage_connection_extension>
<target>iqn.2016-01.com.example:mytarget</target>
<username>myuser</username>
<password>mypassword</password>
</storage_connection_extension>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.200. StorageServerConnections
Name | Summary |
---|---|
|
Creates a new storage connection. |
|
Returns the list of storage connections. |
6.200.1. add POST
Creates a new storage connection.
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
With a request body like this:
<storage_connection>
<type>nfs</type>
<address>mynfs.example.com</address>
<path>/export/mydata</path>
<host>
<name>myhost</name>
</host>
</storage_connection>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.201. System
Name | Summary |
---|---|
|
Returns basic information describing the API, like the product name, the version number and a summary of the number of relevant objects. |
|
6.201.1. get GET
Returns basic information describing the API, like the product name, the version number and a summary of the number of relevant objects.
GET /ovirt-engine/api
We get following response:
<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>
<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
.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.202. 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 |
---|---|
|
Assign a new permission to a user or group for specific entity. |
|
List all the permissions of the specific entity. |
6.202.1. add POST
Assign a new permission to a user or group for specific entity.
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
With a request body like this:
<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
With a request body like this:
<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
With a request body like this:
<permission>
<role>
<name>UserRole</name>
</role>
<group id="789"/>
</permission>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The permission. |
6.202.2. list GET
List all the permissions of the specific entity.
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>
The order of the returned permissions isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of permissions. |
6.203. Tag
A service to manage a specific tag in the system.
Name | Summary |
---|---|
|
Gets the information about the tag. |
|
Removes the tag from the system. |
|
Updates the tag entity. |
6.203.1. get GET
Gets the information about the tag.
For example to retrieve the information about the tag with the id 123
send a request like this:
GET /ovirt-engine/api/tags/123
<tag href="/ovirt-engine/api/tags/123" id="123">
<name>root</name>
<description>root</description>
</tag>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The tag. |
6.203.2. remove DELETE
Removes the tag from the system.
For example to remove the tag with id 123
send a request like this:
DELETE /ovirt-engine/api/tags/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.203.3. update PUT
Updates the tag entity.
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
With request body like:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
The updated tag. |
6.204. Tags
Represents a service to manage collection of the tags in the system.
Name | Summary |
---|---|
|
Add a new tag to the system. |
|
List the tags in the system. |
6.204.1. add POST
Add a new tag to the system.
For example, to add new tag with name mytag
to the system send a request like this:
POST /ovirt-engine/api/tags
With a request body like this:
<tag>
<name>mytag</name>
</tag>
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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The added tag. |
6.204.2. list GET
List the tags in the system.
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:
root: (id: 111) - root2 (id: 222) - root3 (id: 333)
The order of the returned list of tags isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of tags to return. |
|
|
Out |
List of all tags in the system. |
6.205. Template
Manages the virtual machine template and template versions.
Name | Summary |
---|---|
|
Exports a template to the data center export domain. |
|
Returns the information about this template or template version. |
|
Removes a virtual machine template. |
|
Updates the template. |
6.205.1. export POST
Exports a template to the data center export domain.
For example, the operation can be facilitated using the following request:
POST /ovirt-engine/api/templates/123/export
With a request body like this:
<action>
<storage_domain id="456"/>
<exclusive>true<exclusive/>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the existing templates with the same name should be overwritten. |
|
|
In |
Specifies the destination export storage domain. |
6.205.2. get GET
Returns the information about this template or template version.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
The information about the template or template version. |
6.205.3. remove DELETE
Removes a virtual machine template.
DELETE /ovirt-engine/api/templates/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.205.4. update PUT
Updates the template.
The name
, description
, type
, memory
, cpu
, topology
, os
, high_availability
, display
,
stateless
, usb
and timezone
elements can be updated after a template has been created.
For example, to update a template to so that it has 1 GiB of memory send a request like this:
PUT /ovirt-engine/api/templates/123
With the following request body:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.206. TemplateCdrom
A service managing a CD-ROM device on templates.
Name | Summary |
---|---|
|
Returns the information about this CD-ROM device. |
6.206.1. get GET
Returns the information about this CD-ROM device.
For example, to get information about the CD-ROM device of template 123
send a request like:
GET /ovirt-engine/api/templates/123/cdroms/
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the CD-ROM device. |
cdrom
The information about the CD-ROM device.
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:
<cdrom href="..." id="00000000-0000-0000-0000-000000000000">
<template href="/ovirt-engine/api/templates/123" id="123"/>
<file id="mycd.iso"/>
</cdrom>
If there is no disk inserted then the file
attribute won’t be reported:
<cdrom href="..." id="00000000-0000-0000-0000-000000000000">
<template href="/ovirt-engine/api/templates/123" id="123"/>
</cdrom>
6.207. TemplateCdroms
Lists the CD-ROM devices of a template.
Name | Summary |
---|---|
|
Returns the list of CD-ROM devices of the template. |
6.207.1. list GET
Returns the list of CD-ROM devices of the template.
The order of the returned list of CD-ROM devices isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of CD-ROM devices of the template. |
|
|
In |
Sets the maximum number of CD-ROMs to return. |
6.208. TemplateDisk
Name | Summary |
---|---|
|
|
|
|
|
|
|
6.208.1. copy POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the copy should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.208.2. export POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the export should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.209. TemplateDiskAttachment
This service manages the attachment of a disk to a template.
Name | Summary |
---|---|
|
Returns the details of the attachment. |
|
Removes the disk from the template. |
6.209.1. get GET
Returns the details of the attachment.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.209.2. remove DELETE
Removes the disk from the template. The disk will only be removed if there are other existing copies of the disk on other storage domains.
A storage domain has to be specified to determine which of the copies should be removed (template disks can have copies on multiple storage domains).
DELETE /ovirt-engine/api/templates/{template:id}/diskattachments/{attachment:id}?storage_domain=072fbaa1-08f3-4a40-9f34-a5ca22dd1d74
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
||
|
In |
Specifies the identifier of the storage domain the image to be removed resides on. |
6.210. TemplateDiskAttachments
This service manages the set of disks attached to a template. Each attached disk is represented by a DiskAttachment.
Name | Summary |
---|---|
|
List the disks that are attached to the template. |
6.211. TemplateDisks
Name | Summary |
---|---|
|
Returns the list of disks of the template. |
6.212. TemplateGraphicsConsole
Name | Summary |
---|---|
|
Gets graphics console configuration of the template. |
|
Remove the graphics console from the template. |
6.212.1. get GET
Gets graphics console configuration of the template.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the graphics console of the template. |
6.213. TemplateGraphicsConsoles
Name | Summary |
---|---|
|
Add new graphics console to the template. |
|
Lists all the configured graphics consoles of the template. |
6.213.1. add POST
Add new graphics console to the template.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.213.2. list GET
Lists all the configured graphics consoles of the template.
The order of the returned list of graphics consoles isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of graphics consoles of the template. |
|
|
In |
Sets the maximum number of consoles to return. |
6.214. TemplateNic
Name | Summary |
---|---|
|
|
|
|
|
6.215. TemplateNics
Name | Summary |
---|---|
|
|
|
Returns the list of NICs of the template. |
6.216. TemplateWatchdog
Name | Summary |
---|---|
|
|
|
|
|
6.217. TemplateWatchdogs
Name | Summary |
---|---|
|
|
|
Returns the list of watchdogs. |
6.218. Templates
This service manages the virtual machine templates available in the system.
Name | Summary |
---|---|
|
Creates a new template. |
|
Returns the list of virtual machine templates. |
6.218.1. add POST
Creates a new template.
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 virtual machine with identifier 123
send a request
like this:
POST /ovirt-engine/api/templates
With a request body like this:
<template>
<name>mytemplate</name>
<vm id="123"/>
</template>
The disks of the template can be customized, making some of their characteristics different to 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 identifier 456
, and, for that disk, you want to change the format to
Copy On Write and make the disk sparse, send a request body
like this:
<template>
<name>mytemplate</name>
<vm id="123">
<disk_attachments>
<disk_attachment>
<disk id="456">
<format>cow</format>
<sparse>true</sparse>
</disk>
</disk_attachment>
</disk_attachments>
</vm>
</template>
The template can be created as a sub version of an existing template.This requires the name
and vm
attributes
for the new template, and the base_template
and version_name
attributes for the new template version. The
base_template
and version_name
attributes must be specified within a version
section enclosed in the
template
section. Identify the virtual machine with the id
or name
attributes.
<template>
<name>mytemplate</name>
<vm id="123"/>
<version>
<base_template id="456"/>
<version_name>mytemplate_001</version_name>
</version>
</template>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Specifies if the permissions of the virtual machine should be copied to the template. |
|
|
In |
Seal the template. |
|
|
In/Out |
The information about the template or template version. |
clone_permissions
Specifies if the permissions of the virtual machine should be copied to the template.
If this optional parameter is provided, and its values is true
then the permissions of the virtual machine
(only the direct ones, not the inherited ones) will be copied to the created template. For example, to create
a template from the myvm
virtual machine copying its permissions, send a request like this:
POST /ovirt-engine/api/templates?clone_permissions=true
With a request body like this:
<template>
<name>mytemplate<name>
<vm>
<name>myvm<name>
</vm>
</template>
seal
Seal the template.
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 etc., thus making easy to use the template to create multiple virtual machines without manual intervention.
Currently sealing is supported only for Linux OS.
6.218.2. list GET
Returns the list of virtual machine templates.
For example:
GET /ovirt-engine/api/templates
Will return the list of virtual machines and virtual machine templates.
The order of the returned list of templates isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of templates to return. |
|
|
In |
A query string used to restrict the returned templates. |
|
|
Out |
The list of virtual machine templates. |
6.219. UnmanagedNetwork
Name | Summary |
---|---|
|
|
|
6.220. UnmanagedNetworks
Name | Summary |
---|---|
|
Returns the list of unmanaged networks of the host. |
6.221. User
A service to manage a user in the system. Use this service to either get users details or remove users. In order to add new users please use Users.
Name | Summary |
---|---|
|
Gets the system user information. |
|
Removes the system user. |
6.221.1. get GET
Gets the system user information.
Usage:
GET /ovirt-engine/api/users/1234
Will return the user information:
<user href="/ovirt-engine/api/users/1234" id="1234">
<name>admin</name>
<link href="/ovirt-engine/api/users/1234/sshpublickeys" rel="sshpublickeys"/>
<link href="/ovirt-engine/api/users/1234/roles" rel="roles"/>
<link href="/ovirt-engine/api/users/1234/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/users/1234/tags" rel="tags"/>
<department></department>
<domain_entry_id>23456</domain_entry_id>
<email>user1@domain.com</email>
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The system user. |
6.222. Users
A service to manage the users in the system.
Name | Summary |
---|---|
|
Add user from a directory service. |
|
List all the users in the system. |
6.222.1. add POST
Add user from a directory service.
For example, to add the myuser
user from the myextension-authz
authorization provider send a request
like this:
POST /ovirt-engine/api/users
With a request body like this:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.222.2. list GET
List all the users in the system.
Usage:
GET /ovirt-engine/api/users
Will return the list of users:
<users>
<user href="/ovirt-engine/api/users/1234" id="1234">
<name>admin</name>
<link href="/ovirt-engine/api/users/1234/sshpublickeys" rel="sshpublickeys"/>
<link href="/ovirt-engine/api/users/1234/roles" rel="roles"/>
<link href="/ovirt-engine/api/users/1234/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/users/1234/tags" rel="tags"/>
<domain_entry_id>23456</domain_entry_id>
<namespace>*</namespace>
<principal>user1</principal>
<user_name>user1@domain-authz</user_name>
<domain href="/ovirt-engine/api/domains/45678" id="45678">
<name>domain-authz</name>
</domain>
</user>
</users>
The order of the returned list of users isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Sets the maximum number of users to return. |
|
|
In |
A query string used to restrict the returned users. |
|
|
Out |
The list of users. |
6.223. VirtualFunctionAllowedNetwork
Name | Summary |
---|---|
|
|
|
6.224. VirtualFunctionAllowedNetworks
Name | Summary |
---|---|
|
|
|
Returns the list of networks. |
6.225. Vm
Name | Summary |
---|---|
|
This operation stops any migration of a virtual machine to another physical host. |
|
|
|
Permanently restores the virtual machine to the state of the previewed snapshot. |
|
Detaches a virtual machine from a pool. |
|
Exports a virtual machine to an export domain. |
|
Freezes virtual machine file systems. |
|
Retrieves the description of the virtual machine. |
|
Initiates the automatic user logon to access a virtual machine from an external console. |
|
Sets the global maintenance mode on the hosted engine virtual machine. |
|
Migrates a virtual machine to another physical host. |
|
Temporarily restores the virtual machine to the state of a snapshot. |
|
Sends a reboot request to a virtual machine. |
|
Removes the virtual machine, including the virtual disks attached to it. |
|
|
|
This operation sends a shutdown request to a virtual machine. |
|
Starts the virtual machine. |
|
This operation forces a virtual machine to power-off. |
|
This operation saves the virtual machine state to disk and stops it. |
|
Thaws virtual machine file systems. |
|
Generates a time-sensitive authentication token for accessing a virtual machine’s display. |
|
Restores the virtual machine to the state it had before previewing the snapshot. |
|
6.225.1. cancelmigration POST
This operation stops any migration of a virtual machine to another physical host.
POST /ovirt-engine/api/vms/123/cancelmigration
The cancel migration action does not take any action specific parameters;
therefore, the request body should contain an empty action
:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the migration should cancelled asynchronously. |
6.225.2. clone POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the clone should be performed asynchronously. |
|
|
In |
6.225.3. commitsnapshot POST
Permanently restores the virtual machine to the state of the previewed snapshot.
See the preview_snapshot operation for details.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the snapshots should be committed asynchronously. |
6.225.4. detach POST
Detaches a virtual machine from a pool.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the detach action should be performed asynchronously. |
6.225.5. export POST
Exports a virtual machine to an export domain.
For example, to export virtual machine 123
to the export domain myexport
:
POST /ovirt-engine/api/vms/123/export
With a request body like this:
<action>
<storage_domain>
<name>myexport</name>
</storage_domain>
<exclusive>true</exclusive>
<discard_snapshots>true</discard_snapshots>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the export should be performed asynchronously. |
|
|
In |
Use the |
|
|
In |
Use the |
|
|
In |
6.225.6. freezefilesystems POST
Freezes virtual machine file systems.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the freeze should be performed asynchronously. |
6.225.7. get GET
Retrieves the description of the virtual machine.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if all of the attributes of the virtual machine should be included in the response. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
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. |
|
|
Out |
Description of the virtual machine. |
all_content
Indicates if all of the attributes of the virtual machine should be included in the response.
By default the following attributes are excluded:
-
console
-
initialization.configuration.data
- The OVF document describing the virtual machine. -
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
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. |
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
Is equivalent to using the value true
:
GET /vms/{vm:id};next_run=true
6.225.8. logon POST
Initiates the automatic user logon to access a virtual machine from an external console.
This action requires the ovirt-guest-agent-gdm-plugin
and the ovirt-guest-agent-pam-module
packages to be
installed and the ovirt-guest-agent
service to be running on the virtual machine.
Users require the appropriate user permissions for the virtual machine in order to access the virtual machine from an external console.
For example:
POST /ovirt-engine/api/vms/123/logon
Request body:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the logon should be performed asynchronously. |
6.225.9. maintenance POST
Sets the global maintenance mode on the hosted engine virtual machine.
This action has no effect on other virtual machines.
Example:
POST /ovirt-engine/api/vms/123/maintenance
<action>
<maintenance_enabled>true<maintenance_enabled/>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the global maintenance action should be performed asynchronously. |
|
|
In |
Indicates if global maintenance should be enabled or disabled. |
6.225.10. migrate POST
Migrates a virtual machine to another physical host.
Example:
POST /ovirt-engine/api/vms/123/migrate
To specify a specific host to migrate the virtual machine to:
<action>
<host id="2ab5e1da-b726-4274-bbf7-0a42b16a0fc3"/>
</action>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the migration should be performed asynchronously. |
|
|
In |
Specifies the cluster the virtual machine should migrate to. |
|
|
In |
Specifies that the virtual machine should migrate even if the virtual machine is defined as non-migratable. |
|
|
In |
Specifies a specific host that the virtual machine should migrate to. |
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.
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
.
host
Specifies a specific host that the virtual machine should migrate to. This is an optional parameter. By default,
the oVirt Engine automatically selects a default host for migration within the same cluster. If an API user
requires a specific host, the user can specify the host with either an id
or name
parameter.
6.225.11. previewsnapshot POST
Temporarily restores the virtual machine to the state of a snapshot.
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the preview should be performed asynchronously. |
|
|
In |
||
|
In |
||
|
In |
||
|
In |
6.225.12. reboot POST
Sends a reboot request to a virtual machine.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the reboot should be performed asynchronously. |
6.225.13. remove DELETE
Removes the virtual machine, including the virtual disks attached to it.
For example, to remove the virtual machine with identifier 123
:
DELETE /ovirt-engine/api/vms/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
|
|
In |
Indicates if the attached virtual disks should be detached first and preserved instead of being removed. |
|
|
In |
Indicates if the virtual machine should be forcibly removed. |
6.225.14. reordermacaddresses POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the action should be performed asynchronously. |
6.225.15. shutdown POST
This operation sends a shutdown request to a virtual machine.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the shutdown should be performed asynchronously. |
6.225.16. start POST
Starts the virtual machine.
If the virtual environment is complete and the virtual machine contains all necessary components to function, it can be started.
This example starts the virtual machine:
POST /ovirt-engine/api/vms/123/start
With a request body:
<action/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the start action should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
If set to |
|
|
In |
If set to |
|
|
In |
If set to |
|
|
In |
The definition of the virtual machine for this specific run. |
use_cloud_init
If set to true
, the initialization type is set to cloud-init. The default value is false
.
See this for details.
use_sysprep
If set to true
, the initialization type is set to Sysprep. The default value is false
.
See this for details.
vm
The definition of the virtual machine for this specific run.
For example:
<action>
<vm>
<os>
<boot>
<devices>
<device>cdrom</device>
</devices>
</boot>
</os>
</vm>
</action>
This will set the boot device to the CDROM only for this specific start. After the virtual machine is powered off, this definition will be reverted.
6.225.17. stop POST
This operation forces a virtual machine to power-off.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the stop action should be performed asynchronously. |
6.225.18. suspend POST
This operation saves the virtual machine state to disk and stops it. Start a suspended virtual machine and restore the virtual machine state with the start action.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the suspend action should be performed asynchronously. |
6.225.19. thawfilesystems POST
Thaws virtual machine file systems.
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the thaw file systems action should be performed asynchronously. |
6.225.20. ticket POST
Generates a time-sensitive authentication token for accessing a virtual machine’s display.
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>
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
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the generation of the ticket should be performed asynchronously. |
|
|
In/Out |
6.225.21. undosnapshot POST
Restores the virtual machine to the state it had before previewing the snapshot.
See the preview_snapshot operation for details.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the undo snapshot action should be performed asynchronously. |
6.225.22. update PUT
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In |
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. |
|
|
In/Out |
6.226. VmApplication
A service that provides information about an application installed in a virtual machine.
Name | Summary |
---|---|
|
Returns the information about the application. |
6.226.1. get GET
Returns the information about the application.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the application. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
application
The information about the 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.
For example, a request like this:
GET /ovirt-engine/api/vms/123/applications/789
May return information like this:
<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>
6.227. VmApplications
A service that provides information about applications installed in a virtual machine.
Name | Summary |
---|---|
|
Returns a list of applications installed in the virtual machine. |
6.227.1. list GET
Returns a list of applications installed in the virtual machine.
The order of the returned list of applications isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
A list of applications installed in the virtual machine. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of applications to return. |
applications
A list of applications installed in the virtual machine.
For example, a request like this:
GET /ovirt-engine/api/vms/123/applications/
May return a list like this:
<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.228. 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 |
---|---|
|
Returns the information about this CDROM device. |
|
Updates the information about this CDROM device. |
6.228.1. get GET
Returns the information about this CDROM device.
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:
<cdrom href="..." id="00000000-0000-0000-0000-000000000000">
<file id="mycd.iso"/>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</cdrom>
If there is no disk inserted then the file
attribute won’t be reported:
<cdrom href="..." id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</cdrom>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the CDROM device. |
|
|
In |
Indicates if the operation should return the information for the currently running virtual machine. |
6.228.2. update PUT
Updates the information about this CDROM device.
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.
To eject the disk use a file
with an empty id
:
<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
With a request body like this:
<cdrom>
<file id=""/>
</cdrom>
The changes made with the current=true parameter are never persisted, so they won’t have any
effect after the virtual machine is rebooted.
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The information about the CDROM device. |
|
|
In |
Indicates if the update should apply to the currently running virtual machine, or to the virtual machine after the next boot. |
6.229. 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 |
---|---|
|
Returns the list of CDROM devices of the virtual machine. |
6.229.1. list GET
Returns the list of CDROM devices of the virtual machine.
The order of the returned list of CD-ROM devices isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of CDROM devices of the virtual machine. |
|
|
In |
Sets the maximum number of CDROMs to return. |
6.230. VmDisk
Name | Summary |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Detach the disk from the virtual machine. |
|
6.230.1. activate POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the activation should be performed asynchronously. |
6.230.2. deactivate POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the deactivation should be performed asynchronously. |
6.230.3. export POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the export should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.230.5. move POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the move should be performed asynchronously. |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
6.230.6. remove DELETE
Detach the disk from the virtual machine.
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. |
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.231. VmDisks
Name | Summary |
---|---|
|
|
|
Returns the list of disks of the virtual machine. |
6.232. VmGraphicsConsole
Name | Summary |
---|---|
|
Retrieves the graphics console configuration of the virtual machine. |
|
|
|
Generates the file which is compatible with |
|
Remove the graphics console from the virtual machine. |
|
Generates a time-sensitive authentication token for accessing this virtual machine’s console. |
6.232.1. get GET
Retrieves the graphics console configuration of the virtual machine.
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 .
|
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the graphics console of the virtual machine. |
|
|
In |
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the current execution. |
current
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the current execution.
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
The default value is false
.
6.232.2. proxyticket POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the generation of the ticket should be performed asynchronously. |
|
|
Out |
6.232.3. remoteviewerconnectionfile POST
Generates the file which is compatible with remote-viewer
client.
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
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:
# Find the virtual machine:
vm = vms_service.list(search='name=myvm')[0]
# Locate the service that manages the virtual machine, as that is where
# the locators are defined:
vm_service = vms_service.vm_service(vm.id)
# Find the graphic console of the virtual machine:
graphics_consoles_service = vm_service.graphics_consoles_service()
graphics_console = graphics_consoles_service.list()[0]
# Generate the remote viewer connection file:
console_service = graphics_consoles_service.console_service(graphics_console.id)
remote_viewer_connection_file = console_service.remote_viewer_connection_file()
# Write the content to file "/tmp/remote_viewer_connection_file.vv"
path = "/tmp/remote_viewer_connection_file.vv"
with open(path, "w") as f:
f.write(remote_viewer_connection_file)
When you create the remote viewer connection file, then you can connect to virtual machine graphic console, as follows:
#!/bin/sh -ex
remote-viewer --ovirt-ca-file=/etc/pki/ovirt-engine/ca.pem /tmp/remote_viewer_connection_file.vv
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Contains the file which is compatible with |
6.232.4. remove DELETE
Remove the graphics console from the virtual machine.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.232.5. ticket POST
Generates a time-sensitive authentication token for accessing this virtual machine’s 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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The generated ticket that can be used to access this console. |
6.233. VmGraphicsConsoles
Name | Summary |
---|---|
|
Add new graphics console to the virtual machine. |
|
Lists all the configured graphics consoles of the virtual machine. |
6.233.1. add POST
Add new graphics console to the virtual machine.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.233.2. list GET
Lists all the configured graphics consoles of the virtual machine.
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 .
|
The order of the returned list of graphics consoles is not guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The list of graphics consoles of the virtual machine. |
|
|
In |
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the current execution. |
|
|
In |
Sets the maximum number of consoles to return. |
current
Specifies if the data returned should correspond to the next execution of the virtual machine, or to the current execution.
The address and port attributes will not be populated unless the value is
true .
|
For example, to get data for the current execution of the virtual machine, including the
address
and port
attributes, send a request like this:
GET /ovirt-engine/api/vms/123/graphicsconsoles?current=true
The default value is false
.
6.234. VmHostDevice
A service to manage individual host device attached to a virtual machine.
Name | Summary |
---|---|
|
Retrieve information about particular host device attached to given virtual machine. |
|
Remove the attachment of this host device from given virtual machine. |
6.234.1. get GET
Retrieve information about particular host device attached to given virtual machine.
Example:
GET /ovirt-engine/api/vms/123/hostdevices/456
<host_device href="/ovirt-engine/api/hosts/543/devices/456" id="456">
<name>pci_0000_04_00_0</name>
<capability>pci</capability>
<iommu_group>30</iommu_group>
<placeholder>true</placeholder>
<product id="0x13ba">
<name>GM107GL [Quadro K2200]</name>
</product>
<vendor id="0x10de">
<name>NVIDIA Corporation</name>
</vendor>
<host href="/ovirt-engine/api/hosts/543" id="543"/>
<parent_device href="/ovirt-engine/api/hosts/543/devices/456" id="456">
<name>pci_0000_00_03_0</name>
</parent_device>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</host_device>
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved information about the host device attached to given virtual machine. |
6.234.2. remove DELETE
Remove the attachment of this host device from given virtual machine.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.235. VmHostDevices
A service to manage host devices attached to a virtual machine.
Name | Summary |
---|---|
|
Attach target device to given virtual machine. |
|
List the host devices assigned to given virtual machine. |
6.235.1. add POST
Attach target device to given virtual machine.
Example:
POST /ovirt-engine/api/vms/123/hostdevices
With request body of type HostDevice, for example
<host_device id="123" />
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. |
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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The host device to be attached to given virtual machine. |
6.235.2. list GET
List the host devices assigned to given virtual machine.
The order of the returned list of devices isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
Retrieved list of host devices attached to given virtual machine. |
|
|
In |
Sets the maximum number of devices to return. |
6.236. VmNic
Name | Summary |
---|---|
|
|
|
|
|
|
|
Removes the NIC. |
|
Updates the NIC. |
6.236.1. activate POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the activation should be performed asynchronously. |
6.236.2. deactivate POST
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the deactivation should be performed asynchronously. |
6.236.4. remove DELETE
Removes the NIC.
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
The hotplugging feature only supports virtual machine operating systems with hotplugging operations. Example operating systems include:
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.236.5. update PUT
Updates the NIC.
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
With a request body like this:
<nic>
<name>mynic</name>
<interface>e1000</interface>
<vnic_profile id='789'/>
</nic>
The hotplugging feature only supports virtual machine operating systems with hotplugging operations. Example operating systems include:
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.237. VmNics
Name | Summary |
---|---|
|
Adds a NIC to the virtual machine. |
|
Returns the list of NICs of the virtual machine. |
6.237.1. add POST
Adds a NIC to the virtual machine.
The following example adds to the virtual machine 123
a network interface named mynic
using virtio
and the
NIC profile 456
.
POST /ovirt-engine/api/vms/123/nics
<nic>
<name>mynic</name>
<interface>virtio</interface>
<vnic_profile id="456"/>
</nic>
The following example sends that request using curl
:
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
The hotplugging feature only supports virtual machine operating systems with hotplugging operations. Example operating systems include:
|
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.238. VmNumaNode
Name | Summary |
---|---|
|
|
|
Removes a virtual NUMA node. |
|
Updates a virtual NUMA node. |
6.238.2. remove DELETE
Removes a virtual NUMA node.
An example of removing a virtual NUMA node:
DELETE /ovirt-engine/api/vms/123/numanodes/456
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.238.3. update PUT
Updates a virtual NUMA node.
An example of pinning a virtual NUMA node to a physical NUMA node on the host:
PUT /ovirt-engine/api/vms/123/numanodes/456
The request body should contain the following:
<vm_numa_node>
<numa_node_pins>
<numa_node_pin>
<index>0</index>
</numa_node_pin>
</numa_node_pins>
</vm_numa_node>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
6.239. VmNumaNodes
Name | Summary |
---|---|
|
Creates a new virtual NUMA node for the virtual machine. |
|
Lists virtual NUMA nodes of a virtual machine. |
6.239.1. add POST
Creates a new virtual NUMA node for the virtual machine.
An example of creating a NUMA node:
POST /ovirt-engine/api/vms/c7ecd2dc/numanodes
Accept: application/xml
Content-type: application/xml
The request body can contain the following:
<vm_numa_node>
<cpu>
<cores>
<core>
<index>0</index>
</core>
</cores>
</cpu>
<index>0</index>
<memory>1024</memory>
</vm_numa_node>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
6.240. VmPool
A service to manage a virtual machines pool.
Name | Summary |
---|---|
|
This operation allocates a virtual machine in the virtual machine pool. |
|
Get the virtual machine pool. |
|
Removes a virtual machine pool. |
|
Update the virtual machine pool. |
6.240.1. allocatevm POST
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/>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the allocation should be performed asynchronously. |
6.240.2. get GET
Get the virtual machine pool.
GET /ovirt-engine/api/vmpools/123
You will get a XML response like that one:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
Retrieved virtual machines pool. |
6.240.3. remove DELETE
Removes a virtual machine pool.
DELETE /ovirt-engine/api/vmpools/123
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.240.4. update PUT
Update the virtual machine pool.
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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
The virtual machine pool that is being updated. |
6.241. VmPools
Provides read-write access to virtual machines pools.
Name | Summary |
---|---|
|
Creates a new virtual machine pool. |
|
Get a list of available virtual machines pools. |
6.241.1. add POST
Creates a new virtual machine pool.
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
With the following body:
<vmpool>
<name>mypool</name>
<cluster id="123"/>
<template id="456"/>
</vmpool>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
Pool to add. |
6.241.2. list GET
Get a list of available virtual machines pools.
GET /ovirt-engine/api/vmpools
You will receive the following response:
<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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the search performed using the |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of pools to return. |
|
|
Out |
Retrieved pools. |
|
|
In |
A query string used to restrict the returned pools. |
6.242. VmReportedDevice
Name | Summary |
---|---|
|
6.243. VmReportedDevices
Name | Summary |
---|---|
|
Returns the list of reported devices of the virtual machine. |
6.244. VmSession
Name | Summary |
---|---|
|
6.245. VmSessions
Provides information about virtual machine user sessions.
Name | Summary |
---|---|
|
Lists all user sessions for this virtual machine. |
6.245.1. list GET
Lists all user sessions for this virtual machine.
For example, to retrieve the session information for virtual machine 123
send a request like this:
GET /ovirt-engine/api/vms/123/sessions
The response body will contain something like this:
<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>
The order of the returned list of sessions isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of sessions to return. |
|
|
Out |
6.246. VmWatchdog
A service managing a watchdog on virtual machines.
Name | Summary |
---|---|
|
Returns the information about the watchdog. |
|
Removes the watchdog from the virtual machine. |
|
Updates the information about the watchdog. |
6.246.1. get GET
Returns the information about the watchdog.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
The information about the watchdog. |
watchdog
The information about the watchdog.
The information consists of model
element, action
element and the reference to the
virtual machine. It may look like this:
<watchdogs>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>poweroff</action>
<model>i6300esb</model>
</watchdog>
</watchdogs>
6.246.2. remove DELETE
Removes the watchdog from the virtual machine.
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
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.246.3. update PUT
Updates the information about the watchdog.
You can update the information using action
and model
elements.
For example, to update a watchdog, send a request like this:
PUT /ovirt-engine/api/vms/123/watchdogs
<watchdog>
<action>reset</action>
</watchdog>
with response body:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the update should be performed asynchronously. |
|
|
In/Out |
The information about the watchdog. |
6.247. VmWatchdogs
Lists the watchdogs of a virtual machine.
Name | Summary |
---|---|
|
Adds new watchdog to the virtual machine. |
|
The list of watchdogs of the virtual machine. |
6.247.1. add POST
Adds new watchdog to the virtual machine.
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>
with response body:
<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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The information about the watchdog. |
6.247.2. list GET
The list of watchdogs of the virtual machine.
The order of the returned list of watchdogs isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Sets the maximum number of watchdogs to return. |
|
|
Out |
The information about the watchdog. |
max
Sets the maximum number of watchdogs to return. If not specified all the watchdogs are returned.
watchdogs
The information about the watchdog.
The information consists of model
element, action
element and the reference to the
virtual machine. It may look like this:
<watchdogs>
<watchdog href="/ovirt-engine/api/vms/123/watchdogs/00000000-0000-0000-0000-000000000000" id="00000000-0000-0000-0000-000000000000">
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<action>poweroff</action>
<model>i6300esb</model>
</watchdog>
</watchdogs>
6.248. Vms
Name | Summary |
---|---|
|
Creates a new virtual machine. |
|
Returns the list of virtual machines of the system. |
6.248.1. add POST
Creates a new virtual machine.
The virtual machine can be created in different ways:
-
From a template. In this case the identifier or name of the template must be provided. For example, using a plain shell script and XML:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Version: 4" \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<vm>
<name>myvm</name>
<template>
<name>Blank</name>
</template>
<cluster>
<name>mycluster</name>
</cluster>
</vm>
' \
"${url}/vms"
-
From a snapshot. In this case the identifier of the snapshot has to be provided. For example, using a plain shel script and XML:
#!/bin/sh -ex
url="https://engine.example.com/ovirt-engine/api"
user="admin@internal"
password="..."
curl \
--verbose \
--cacert /etc/pki/ovirt-engine/ca.pem \
--user "${user}:${password}" \
--request POST \
--header "Content-Type: application/xml" \
--header "Accept: application/xml" \
--data '
<vm>
<name>myvm</name>
<snapshots>
<snapshot id="266742a5-6a65-483c-816d-d2ce49746680"/>
</snapshots>
<cluster>
<name>mycluster</name>
</cluster>
</vm>
' \
"${url}/vms"
When creating a virtual machine from a template or from a snapshot it is usually useful to explicitly indicate
in what storage domain to create the disks for the virtual machine. If the virtual machine is created from
a template then this is achieved passing a set of disk_attachment
elements that indicate the mapping:
<vm>
...
<disk_attachments>
<disk_attachment>
<disk id="8d4bd566-6c86-4592-a4a7-912dbf93c298">
<storage_domains>
<storage_domain id="9cb6cb0a-cf1d-41c2-92ca-5a6d665649c9"/>
</storage_domains>
</disk>
<disk_attachment>
</disk_attachments>
</vm>
When the virtual machine is created from a snapshot this set of disks is slightly different, it uses the
image_id
attribute instead of id
.
<vm>
...
<disk_attachments>
<disk_attachment>
<disk>
<image_id>8d4bd566-6c86-4592-a4a7-912dbf93c298</image_id>
<storage_domains>
<storage_domain id="9cb6cb0a-cf1d-41c2-92ca-5a6d665649c9"/>
</storage_domains>
</disk>
<disk_attachment>
</disk_attachments>
</vm>
It is possible to specify additional virtual machine parameters in the XML description, e.g. a virtual machine
of desktop
type, with 2 GiB of RAM and additional description can be added sending a request body like the
following:
<vm>
<name>myvm</name>
<description>My Desktop Virtual Machine</description>
<type>desktop</type>
<memory>2147483648</memory>
...
</vm>
A bootable CDROM device can be set like this:
<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.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Specifies if the virtual machine should be independent of the template. |
|
|
In |
Specifies if the permissions of the template should be copied to the virtual machine. |
|
|
In/Out |
clone
Specifies if the virtual machine should be independent of the template.
When a virtual machine is created from a template by default the disks of the virtual machine depend on
the disks of the template, they are using the copy on write
mechanism so that only the differences from the template take up real storage space. If this parameter is
specified and the value is true
then the disks of the created virtual machine will be cloned, and
independent of the template. For example, to create an independent virtual machine, send a request like this:
POST /ovirt-engine/vms?clone=true
With a request body like this:
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
</vm>
When this parameter is true the permissions of the template will also be copied, as when using
clone_permissions=true .
|
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
With a request body like this:
<vm>
<name>myvm<name>
<template>
<name>mytemplate<name>
</template>
<cluster>
<name>mycluster<name>
</cluster>
</vm>
6.248.2. list GET
Returns the list of virtual machines of the system.
The order of the returned list of virtual machines is guaranteed only if the sortby
clause is included
in the search
parameter.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if all the attributes of the virtual machines should be included in the response. |
|
|
In |
Indicates if the search performed using the |
|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
The maximum number of results to return. |
|
|
In |
A query string used to restrict the returned virtual machines. |
|
|
Out |
all_content
Indicates if all the attributes of the virtual machines should be included in the response.
By default the following attributes are excluded:
-
console
-
initialization.configuration.data
- The OVF document describing the virtual machine. -
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
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.249. VnicProfile
This service manages a vNIC profile.
Name | Summary |
---|---|
|
Retrieves details about a vNIC profile. |
|
Removes the vNIC profile. |
|
Updates details of a vNIC profile. |
6.249.1. get GET
Retrieves details about a vNIC profile.
Name | Type | Direction | Summary |
---|---|---|---|
|
Out |
6.249.2. remove DELETE
Removes the vNIC profile.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the remove should be performed asynchronously. |
6.250. VnicProfiles
This service manages the collection of all vNIC profiles.
Name | Summary |
---|---|
|
Add a vNIC profile. |
|
List all vNIC profiles. |
6.250.1. add POST
Add a vNIC profile.
For example to add vNIC profile 123
to network 456
send a request to:
POST /ovirt-engine/api/networks/456/vnicprofiles
With the following body:
<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.
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:
<vnic_profile href="/ovirt-engine/api/vnicprofiles/123" id="123">
<name>new_vNIC_name</name>
<link href="/ovirt-engine/api/vnicprofiles/123/permissions" rel="permissions"/>
<pass_through>
<mode>disabled</mode>
</pass_through>
<port_mirroring>false</port_mirroring>
<network href="/ovirt-engine/api/networks/456" id="456"/>
<network_filter href="/ovirt-engine/api/networkfilters/789" id="789"/>
</vnic_profile>
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>
Name | Type | Direction | Summary |
---|---|---|---|
|
In/Out |
The vNIC profile that is being added. |
6.251. Weight
Name | Summary |
---|---|
|
|
|
6.251.1. get GET
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
Out |
6.252. Weights
Name | Summary |
---|---|
|
|
|
Returns the list of weights. |
6.252.2. list GET
Returns the list of weights.
The order of the returned list of weights isn’t guaranteed.
Name | Type | Direction | Summary |
---|---|---|---|
|
In |
Indicates if the results should be filtered according to the permissions of the user. |
|
|
In |
Sets the maximum number of weights to return. |
|
|
Out |
7. Types
This section enumerates all the data types that are available in the API.
7.1. AccessProtocol enum
Represents the access protocols supported by Gluster volumes.
gluster
and nfs
are enabled by default.
Name | Summary |
---|---|
|
CIFS access protocol. |
|
Gluster access protocol. |
|
NFS access protocol. |
7.2. Action struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Free text containing comments about this object. |
|
|
||
|
||
|
||
|
A human-readable description in plain text. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
A unique identifier. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
7.3. AffinityGroup struct
An affinity group represents a group of virtual machines with a defined relationship.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
Specifies whether the affinity group uses hard or soft enforcement of the affinity applied to virtual machines that are members of that affinity group. |
|
|
Specifies the affinity rule applied between virtual machines and hosts that are members of this affinity group. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Specifies whether the affinity group applies positive affinity or negative affinity to virtual machines that are members of that affinity group. |
|
|
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.
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.
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.
|
Name | Type | Summary |
---|---|---|
|
A reference to the cluster to which the affinity group applies. |
|
|
A list of all hosts assigned to this affinity group. |
|
|
A list of all virtual machines assigned to this affinity group. |
7.4. AffinityLabel struct
The affinity label can influence virtual machine scheduling. It is most frequently used to create a sub-cluster from the available hosts.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The |
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.
Name | Type | Summary |
---|---|---|
|
A list of hosts that were labeled using this scheduling label. |
|
|
A list of virtual machines that were labeled using this scheduling label. |
7.5. AffinityRule struct
Generic rule definition for affinity group. Each supported resource type (virtual machine, host) is controlled by a separate rule. This allows expressing of rules like: no affinity between defined virtual machines, but hard affinity between defined virtual machines and virtual hosts.
Name | Type | Summary |
---|---|---|
|
Specifies whether the affinity group uses this rule or not. |
|
|
Specifies whether the affinity group uses hard or soft enforcement of the affinity applied to the resources that are controlled by this rule. |
|
|
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.6. Agent struct
Type representing a fence agent.
Name | Type | Summary |
---|---|---|
|
Fence agent address. |
|
|
Free text containing comments about this object. |
|
|
Specifies whether the agent should be used concurrently or sequentially. |
|
|
A human-readable description in plain text. |
|
|
Specifies whether the options should be encrypted. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Fence agent options (comma-delimited list of key-value pairs). |
|
|
The order of this agent if used with other agents. |
|
|
Fence agent password. |
|
|
Fence agent port. |
|
|
Fence agent type. |
|
|
Fence agent user name. |
Name | Type | Summary |
---|---|---|
|
Reference to the host service. |
7.7. AgentConfiguration struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
7.8. Api struct
This type contains the information returned by the root service of the API.
To get that information send a request like this:
GET /ovirt-engine/api
The result will be like this:
<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>
Name | Type | Summary |
---|---|---|
|
Information about the product, such as its name, the name of the vendor, and the version. |
|
|
References to special objects, such as the blank template and the root of the hierarchy of tags. |
|
|
A summary containing the total number of relevant objects, such as virtual machines, hosts, and storage domains. |
|
|
The date and time when this information was generated. |
7.9. ApiSummary struct
A summary containing the total number of relevant objects, such as virtual machines, hosts, and storage domains.
Name | Type | Summary |
---|---|---|
|
The summary of hosts. |
|
|
The summary of storage domains. |
|
|
The summary of users. |
|
|
The summary of virtual machines. |
7.10. ApiSummaryItem struct
This type contains an item of the API summary. Each item contains the total and active number of some kind of object.
Name | Type | Summary |
---|---|---|
|
The total number of active objects. |
|
|
The total number of objects. |
7.11. Application struct
Represents an application installed on a virtual machine. Applications are reported by the guest agent, if you deploy one on the virtual machine operating system.
To get that information send a request like this:
GET /ovirt-engine/api/vms/123/applications/456
The result will be like this:
<application href="/ovirt-engine/api/vms/123/applications/456" id="456">
<name>application-test-1.0.0-0.el7</name>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
</application>
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
A reference to the virtual machine the application is installed on. |
7.13. AuthorizedKey struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
7.15. Balance struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
||
|
7.18. Bonding struct
Represents a network interfaces bond.
Name | Type | Summary |
---|---|---|
|
The |
|
|
A list of option elements for a bonded interface. |
|
|
A list of slave NICs for a bonded interface. |
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 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.
Name | Type | Summary |
---|---|---|
|
The |
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:
<host_nic href="/ovirt-engine/api/hosts/123/nics/321" id="321">
...
<bonding>
<slaves>
<host_nic href="/ovirt-engine/api/hosts/123/nics/456" id="456" />
...
</slaves>
<active_slave href="/ovirt-engine/api/hosts/123/nics/456" id="456" />
</bonding>
...
</host_nic>
7.19. Bookmark struct
Represents a bookmark in the system.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The bookmark value, representing a search in the engine. |
7.20. Boot struct
Configuration of the boot sequence of a virtual machine.
Name | Type | Summary |
---|---|---|
|
Ordered list of boot devices. |
7.21. BootDevice enum
Represents the kinds of devices that a virtual machine can boot from.
Name | Summary |
---|---|
|
Boot from CD-ROM. |
|
Boot from the hard drive. |
|
Boot from the network, using PXE. |
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.
7.22. BootMenu struct
Represents boot menu configuration for virtual machines and templates.
Name | Type | Summary |
---|---|---|
|
Whether the boot menu is enabled for this virtual machine (or template), or not. |
7.23. BootProtocol enum
Defines the options of the IP address assignment method to a NIC.
Name | Summary |
---|---|
|
Stateless address auto-configuration. |
|
Dynamic host configuration protocol. |
|
No address configuration. |
|
Statically-defined address, mask and gateway. |
7.23.1. autoconf
Stateless address auto-configuration.
The mechanism is defined by RFC 4862. Please refer to this wikipedia article for more information.
The value is valid for IPv6 addresses only. |
7.23.2. dhcp
Dynamic host configuration protocol.
Please refer to this wikipedia article for more information.
7.24. BrickProfileDetail struct
Name | Type | Summary |
---|---|---|
|
Name | Type | Summary |
---|---|---|
|
7.25. Cdrom struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Optionally references to an instance type the device is used by. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.26. Certificate struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
7.27. CloudInit struct
Deprecated type to specify cloud-init configuration.
This type has been deprecated and replaced by alternative attributes inside the Initialization type. See the cloud_init attribute documentation for details.
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
7.28. Cluster struct
Type representation of a cluster.
A JSON representation of a cluster
{
"cluster" : [ {
"ballooning_enabled" : "false",
"cpu" : {
"architecture" : "x86_64",
"type" : "Intel SandyBridge Family"
},
"custom_scheduling_policy_properties" : {
"property" : [ {
"name" : "HighUtilization",
"value" : "80"
}, {
"name" : "CpuOverCommitDurationMinutes",
"value" : "2"
} ]
},
"error_handling" : {
"on_error" : "migrate"
},
"fencing_policy" : {
"enabled" : "true",
"skip_if_connectivity_broken" : {
"enabled" : "false",
"threshold" : "50"
},
"skip_if_gluster_bricks_up" : "false",
"skip_if_gluster_quorum_not_met" : "false",
"skip_if_sd_active" : {
"enabled" : "false"
}
},
"gluster_service" : "false",
"ha_reservation" : "false",
"ksm" : {
"enabled" : "true",
"merge_across_nodes" : "true"
},
"maintenance_reason_required" : "false",
"memory_policy" : {
"over_commit" : {
"percent" : "100"
},
"transparent_hugepages" : {
"enabled" : "true"
}
},
"migration" : {
"auto_converge" : "inherit",
"bandwidth" : {
"assignment_method" : "auto"
},
"compressed" : "inherit",
"policy" : {
"id" : "00000000-0000-0000-0000-000000000000"
}
},
"optional_reason" : "false",
"required_rng_sources" : {
"required_rng_source" : [ "random" ]
},
"switch_type" : "legacy",
"threads_as_cores" : "false",
"trusted_service" : "false",
"tunnel_migration" : "false",
"version" : {
"major" : "4",
"minor" : "1"
},
"virt_service" : "true",
"data_center" : {
"href" : "/ovirt-engine/api/datacenters/123",
"id" : "123"
},
"mac_pool" : {
"href" : "/ovirt-engine/api/macpools/456",
"id" : "456"
},
"scheduling_policy" : {
"href" : "/ovirt-engine/api/schedulingpolicies/789",
"id" : "789"
},
"actions" : {
"link" : [ {
"href" : "/ovirt-engine/api/clusters/234/resetemulatedmachine",
"rel" : "resetemulatedmachine"
} ]
},
"name" : "Default",
"description" : "The default server cluster",
"href" : "/ovirt-engine/api/clusters/234",
"id" : "234",
"link" : [ {
"href" : "/ovirt-engine/api/clusters/234/permissions",
"rel" : "permissions"
}, {
"href" : "/ovirt-engine/api/clusters/234/cpuprofiles",
"rel" : "cpuprofiles"
}, {
"href" : "/ovirt-engine/api/clusters/234/networkfilters",
"rel" : "networkfilters"
}, {
"href" : "/ovirt-engine/api/clusters/234/networks",
"rel" : "networks"
}, {
"href" : "/ovirt-engine/api/clusters/234/affinitygroups",
"rel" : "affinitygroups"
}, {
"href" : "/ovirt-engine/api/clusters/234/glusterhooks",
"rel" : "glusterhooks"
}, {
"href" : "/ovirt-engine/api/clusters/234/glustervolumes",
"rel" : "glustervolumes"
} ]
} ]
}
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
||
|
Custom scheduling policy properties of the cluster. |
|
|
A human-readable description in plain text. |
|
|
||
|
||
|
Custom fencing policy can be defined for a cluster. |
|
|
||
|
The name of the https://fedorahosted. |
|
|
||
|
A unique identifier. |
|
|
||
|
||
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
Set of random number generator (RNG) sources required from each host in the cluster. |
|
|
||
|
||
|
Type of switch to be used by all networks in given cluster. |
|
|
||
|
||
|
||
|
The compatibility version of the cluster. |
|
|
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.
For example, to update the custom properties of the cluster, send a request:
PUT /ovirt-engine/api/clusters/123
With a request body:
<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
Custom fencing policy can be defined for a cluster.
Here is an example:
PUT /ovirt-engine/api/cluster/123
With request body:
<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. gluster_tuned_profile
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.4. 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.
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 |
Engine version 4.1 introduces a new RNG source |
7.28.5. 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
Will respond:
<cluster>
...
<version>
<major>4</major>
<minor>0</minor>
</version>
...
</cluster>
To update the compatibility version, use:
PUT /ovirt-engine/api/clusters/123
With a request body:
<cluster>
<version>
<major>4</major>
<minor>1</minor>
</version>
</cluster>
In order to update the cluster compatibility version, all hosts in the cluster must support the new compatibility version.
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
Custom features that are enabled for the cluster. |
|
|
||
|
||
|
A reference to the MAC pool used by this cluster. |
|
|
||
|
||
|
||
|
||
|
Reference to the default scheduling policy used by this cluster. |
7.28.6. scheduling_policy
Reference to the default scheduling policy used by this cluster.
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.
|
7.29. ClusterFeature struct
Type represents an additional feature that is available at a cluster level.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Reference to the cluster level. |
7.30. ClusterLevel struct
Describes the capabilities supported by a specific cluster level.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
The CPU types supported by this cluster level. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The permits supported by this cluster level. |
Name | Type | Summary |
---|---|---|
|
The additional features supported by this cluster level. |
7.31. Configuration struct
Name | Type | Summary |
---|---|---|
|
The document describing the virtual machine. |
|
|
7.31.1. data
The document describing the virtual machine.
Example of the OVF document:
<?xml version='1.0' encoding='UTF-8'?>
<ovf:Envelope xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1/"
xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ovf:version="3.5.0.0">
<References/>
<Section xsi:type="ovf:NetworkSection_Type">
<Info>List of networks</Info>
<Network ovf:name="Network 1"/>
</Section>
<Section xsi:type="ovf:DiskSection_Type">
<Info>List of Virtual Disks</Info>
</Section>
<Content ovf:id="out" xsi:type="ovf:VirtualSystem_Type">
<CreationDate>2014/12/03 04:25:45</CreationDate>
<ExportDate>2015/02/09 14:12:24</ExportDate>
<DeleteProtected>false</DeleteProtected>
<SsoMethod>guest_agent</SsoMethod>
<IsSmartcardEnabled>false</IsSmartcardEnabled>
<TimeZone>Etc/GMT</TimeZone>
<default_boot_sequence>0</default_boot_sequence>
<Generation>1</Generation>
<VmType>1</VmType>
<MinAllocatedMem>1024</MinAllocatedMem>
<IsStateless>false</IsStateless>
<IsRunAndPause>false</IsRunAndPause>
<AutoStartup>false</AutoStartup>
<Priority>1</Priority>
<CreatedByUserId>fdfc627c-d875-11e0-90f0-83df133b58cc</CreatedByUserId>
<IsBootMenuEnabled>false</IsBootMenuEnabled>
<IsSpiceFileTransferEnabled>true</IsSpiceFileTransferEnabled>
<IsSpiceCopyPasteEnabled>true</IsSpiceCopyPasteEnabled>
<Name>VM_export</Name>
<TemplateId>00000000-0000-0000-0000-000000000000</TemplateId>
<TemplateName>Blank</TemplateName>
<IsInitilized>false</IsInitilized>
<Origin>3</Origin>
<DefaultDisplayType>1</DefaultDisplayType>
<TrustedService>false</TrustedService>
<OriginalTemplateId>00000000-0000-0000-0000-000000000000</OriginalTemplateId>
<OriginalTemplateName>Blank</OriginalTemplateName>
<UseLatestVersion>false</UseLatestVersion>
<Section ovf:id="70b4d9a7-4f73-4def-89ca-24fc5f60e01a"
ovf:required="false"
xsi:type="ovf:OperatingSystemSection_Type">
<Info>Guest Operating System</Info>
<Description>other</Description>
</Section>
<Section xsi:type="ovf:VirtualHardwareSection_Type">
<Info>1 CPU, 1024 Memory</Info>
<System>
<vssd:VirtualSystemType>ENGINE 3.5.0.0</vssd:VirtualSystemType>
</System>
<Item>
<rasd:Caption>1 virtual cpu</rasd:Caption>
<rasd:Description>Number of virtual CPU</rasd:Description>
<rasd:InstanceId>1</rasd:InstanceId>
<rasd:ResourceType>3</rasd:ResourceType>
<rasd:num_of_sockets>1</rasd:num_of_sockets>
<rasd:cpu_per_socket>1</rasd:cpu_per_socket>
</Item>
<Item>
<rasd:Caption>1024 MB of memory</rasd:Caption>
<rasd:Description>Memory Size</rasd:Description>
<rasd:InstanceId>2</rasd:InstanceId>
<rasd:ResourceType>4</rasd:ResourceType>
<rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits>
<rasd:VirtualQuantity>1024</rasd:VirtualQuantity>
</Item>
<Item>
<rasd:Caption>USB Controller</rasd:Caption>
<rasd:InstanceId>3</rasd:InstanceId>
<rasd:ResourceType>23</rasd:ResourceType>
<rasd:UsbPolicy>DISABLED</rasd:UsbPolicy>
</Item>
</Section>
</Content>
</ovf:Envelope>
7.32. ConfigurationType enum
Configuration format types.
Name | Summary |
---|---|
|
ConfigurationType of type OVF. |
7.33. Console struct
Representation for serial console device.
Name | Type | Summary |
---|---|---|
|
Enable/disable the serial console device. |
7.35. Cpu struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
7.37. CpuProfile struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.40. CpuType struct
Describes a supported CPU type.
Name | Type | Summary |
---|---|---|
|
The architecture of the CPU. |
|
|
The level of the CPU type. |
|
|
The name of the CPU type, for example |
7.41. CreationStatus enum
Name | Summary |
---|---|
|
|
|
|
|
|
|
7.42. CustomProperty struct
Custom property representation.
Name | Type | Summary |
---|---|---|
|
Property name. |
|
|
A regular expression defining the available values a custom property can get. |
|
|
Property value. |
7.43. DataCenter struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
||
|
The compatibility version of the data center. |
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>
To update the compatibility version, use:
PUT /ovirt-engine/api/datacenters/123
With a request body:
<data_center>
<version>
<major>4</major>
<minor>1</minor>
</version>
</data_center>
Name | Type | Summary |
---|---|---|
|
Reference to clusters inside this data center. |
|
|
Reference to ISCSI bonds used by this data center. |
|
|
Reference to the MAC pool used by this data center. |
|
|
Reference to networks attached to this data center. |
|
|
Reference to permissions assigned to this data center. |
|
|
Reference to quality of service used by this data center. |
|
|
Reference to quotas assigned to this data center. |
|
|
Reference to storage domains attached to this data center. |
7.44. DataCenterStatus enum
Name | Summary |
---|---|
|
|
|
|
|
|
|
|
|
|
|
7.45. Device struct
A device wraps links to potential parents of a device.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Optionally references to an instance type the device is used by. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.46. Disk struct
Represents a virtual disk device.
Name | Type | Summary |
---|---|---|
|
Indicates if the disk is visible to the virtual machine. |
|
|
The actual size of the disk, in bytes. |
|
|
||
|
Indicates if the disk is marked as bootable. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The underlying storage format. |
|
|
A unique identifier. |
|
|
||
|
The initial size of a sparse image disk created on block storage, in bytes. |
|
|
The type of interface driver used to connect the disk device to the virtual machine. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
Indicates if disk errors should cause virtual machine to be paused or if disk errors should be propagated to the the guest operating system instead. |
|
|
The virtual size of the disk, in bytes. |
|
|
The underlying QCOW version of a QCOW volume. |
|
|
Indicates if the disk is in read-only mode. |
|
|
||
|
Indicates if the disk can be attached to multiple virtual machines. |
|
|
Indicates if the physical storage for the disk should not be preallocated. |
|
|
The status of the disk device. |
|
|
||
|
||
|
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. |
7.46.1. active
Indicates if the disk is visible to the virtual machine.
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.
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.
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.
This attribute is mandatory when creating a new disk.
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 oVirt Engine 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.10. 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.
Name | Type | Summary |
---|---|---|
|
||
|
Optionally references to an instance type the device is used by. |
|
|
||
|
||
|
||
|
||
|
Statistics exposed by the disk. |
|
|
||
|
The storage domains associated with this disk. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.46.11. statistics
Statistics exposed by the disk. For example:
<statistics>
<statistic href="/ovirt-engine/api/disks/123/statistics/456" id="456">
<name>data.current.read</name>
<description>Read data rate</description>
<kind>gauge</kind>
<type>decimal</type>
<unit>bytes_per_second</unit>
<values>
<value>
<datum>1052</datum>
</value>
</values>
<disk href="/ovirt-engine/api/disks/123" id="123"/>
</statistic>
...
</statistics>
These statistics are not directly included when the disk is retrieved, only a link. To obtain the statistics follow the included link:
GET /ovirt-engine/api/disks/123/statistics
7.47. DiskAttachment struct
Describes how a disk is attached to a virtual machine.
Name | Type | Summary |
---|---|---|
|
Defines whether the disk is active in the virtual machine it’s attached to. |
|
|
Defines whether the disk is bootable. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The type of interface driver used to connect the disk device to the virtual machine. |
|
|
The logical name of the virtual machine’s disk, as seen from inside the virtual machine. |
|
|
A human-readable name in plain text. |
|
|
Defines whether the virtual machine passes discard commands to the storage. |
|
|
Indicates whether the disk is connected to the virtual machine as read only. |
|
|
Defines whether SCSI reservation is enabled for this disk. |
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.
When adding a new disk attachment the default value is false
.
<disk_attachment>
...
<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 | Type | Summary |
---|---|---|
|
The reference to the disk. |
|
|
The reference to the template. |
|
|
The reference to the virtual machine. |
7.48. DiskFormat enum
The underlying storage format of disks.
Name | Summary |
---|---|
|
The Copy On Write format allows snapshots, with a small performance overhead. |
|
The raw format does not allow snapshots, but offers improved performance. |
7.49. DiskInterface enum
The underlying storage interface of disks communication with controller.
Name | Summary |
---|---|
|
Legacy controller device. |
|
Para-virtualized device supported by the IBM pSeries family of machines, using the SCSI protocol. |
|
Virtualization interface where just the guest’s device driver knows it is running in a virtual environment. |
|
Para-virtualized SCSI controller device. |
7.49.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. DiskProfile struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.51. DiskSnapshot struct
Name | Type | Summary |
---|---|---|
|
Indicates if the disk is visible to the virtual machine. |
|
|
The actual size of the disk, in bytes. |
|
|
||
|
Indicates if the disk is marked as bootable. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The underlying storage format. |
|
|
A unique identifier. |
|
|
||
|
The initial size of a sparse image disk created on block storage, in bytes. |
|
|
The type of interface driver used to connect the disk device to the virtual machine. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
Indicates if disk errors should cause virtual machine to be paused or if disk errors should be propagated to the the guest operating system instead. |
|
|
The virtual size of the disk, in bytes. |
|
|
The underlying QCOW version of a QCOW volume. |
|
|
Indicates if the disk is in read-only mode. |
|
|
||
|
Indicates if the disk can be attached to multiple virtual machines. |
|
|
Indicates if the physical storage for the disk should not be preallocated. |
|
|
The status of the disk device. |
|
|
||
|
||
|
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. |
7.51.1. active
Indicates if the disk is visible to the virtual machine.
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.51.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.51.3. bootable
Indicates if the disk is marked as bootable.
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.51.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.51.5. interface
The type of interface driver used to connect the disk device to the virtual machine.
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.51.6. provisioned_size
The virtual size of the disk, in bytes.
This attribute is mandatory when creating a new disk.
7.51.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.51.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 oVirt Engine 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.51.10. 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.
Name | Type | Summary |
---|---|---|
|
||
|
||
|
Optionally references to an instance type the device is used by. |
|
|
||
|
||
|
||
|
||
|
Statistics exposed by the disk. |
|
|
||
|
The storage domains associated with this disk. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.51.11. statistics
Statistics exposed by the disk. For example:
<statistics>
<statistic href="/ovirt-engine/api/disks/123/statistics/456" id="456">
<name>data.current.read</name>
<description>Read data rate</description>
<kind>gauge</kind>
<type>decimal</type>
<unit>bytes_per_second</unit>
<values>
<value>
<datum>1052</datum>
</value>
</values>
<disk href="/ovirt-engine/api/disks/123" id="123"/>
</statistic>
...
</statistics>
These statistics are not directly included when the disk is retrieved, only a link. To obtain the statistics follow the included link:
GET /ovirt-engine/api/disks/123/statistics
7.52. DiskStatus enum
Current status representation for disk.
Name | Summary |
---|---|
|
Disk cannot be accessed by the virtual machine, and the user needs to take action to resolve the issue. |
|
The disk is being used by the system, therefore it cannot be accessed by virtual machines at this point. |
|
The disk status is normal and can be accessed by the virtual machine. |
7.55. Display struct
Represents a graphic console configuration.
Name | Type | Summary |
---|---|---|
|
The IP address of the guest to connect the graphic console client to. |
|
|
Indicates if to override the display address per host. |
|
|
The TLS certificate in case of a TLS connection. |
|
|
Indicates whether a user is able to copy and paste content from an external host into the graphic console. |
|
|
Returns the action that will take place when the graphic console is disconnected. |
|
|
Indicates if a user is able to drag and drop files from an external host into the graphic console. |
|
|
The keyboard layout to use with this graphic console. |
|
|
The number of monitors opened for this graphic console. |
|
|
The port address on the guest to connect the graphic console client to. |
|
|
The proxy IP which will be used by the graphic console client to connect to the guest. |
|
|
The secured port address on the guest, in case of using TLS, to connect the graphic console client to. |
|
|
Indicates if to use one PCI slot for each monitor or to use a single PCI channel for all multiple monitors. |
|
|
Indicates if to use smart card authentication. |
|
|
The graphic console protocol type. |
7.55.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.55.2. certificate
The TLS certificate in case of a TLS connection. If TLS isn’t enabled then it won’t be reported.
7.55.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.55.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.
This option is only available for the SPICE console type.
7.55.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.55.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.55.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.55.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.55.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. DisplayType enum
Represents an enumeration of the protocol used to connect to the graphic console of the virtual machine.
Name | Summary |
---|---|
|
Display of type SPICE. |
|
Display of type VNC. |
7.56.1. spice
Display of type SPICE. See https://www.spice-space.org for more details.
7.57. Dns struct
Represents the DNS resolver configuration.
Name | Type | Summary |
---|---|---|
|
Array of hosts serving as search domains. |
|
|
Array of hosts serving as DNS servers. |
7.58. DnsResolverConfiguration struct
Represents the DNS resolver configuration.
Name | Type | Summary |
---|---|---|
|
Array of addresses of name servers. |
7.59. Domain struct
This type represents a directory service domain.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
A reference to all groups in the directory service. |
|
|
A reference to a list of all users in the directory service. |
7.60. EntityExternalStatus enum
Type representing an external entity status.
Name | Summary |
---|---|
|
The external entity status is erroneous. |
|
The external entity has an issue that causes failures. |
|
There external entity status is okay but with some information that might be relevant. |
|
The external entity status is okay. |
|
The external entity status is okay but with an issue that might require attention. |
7.63. Event struct
Type representing an event.
Name | Type | Summary |
---|---|---|
|
The event code. |
|
|
Free text containing comments about this object. |
|
|
The event correlation identifier. |
|
|
Free text representing custom event data. |
|
|
A custom event identifier. |
|
|
A human-readable description in plain text. |
|
|
Defines the flood rate. |
|
|
A unique identifier. |
|
|
The numeric index of this event. |
|
|
A human-readable name in plain text. |
|
|
Free text identifying the origin of the event. |
|
|
The event severity. |
|
|
The event time. |
7.63.1. correlation_id
The event correlation identifier. Used in order to correlate several events together.
7.63.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.63.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.
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.
|
Name | Type | Summary |
---|---|---|
|
Reference to the cluster service. |
|
|
Reference to the data center service. |
|
|
Reference to the host service. |
|
|
Reference to the storage domain service. |
|
|
Reference to the template service. |
|
|
Reference to the user service. |
|
|
Reference to the virtual machine service. |
7.63.5. data_center
Reference to the data center service. Event can be associated with a data center.
7.64. ExternalComputeResource struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
7.65. ExternalDiscoveredHost struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
||
|
||
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
7.66. ExternalHost struct
Represents a host provisioned by a host provider (such as Foreman/Satellite).
See https://www.theforeman.org/ for more details on Foreman. See https://access.redhat.com/products/red-hat-satellite for more details on Red Hat Satellite.
Name | Type | Summary |
---|---|---|
|
The address of the host, either IP address of FQDN (Fully Qualified Domain Name). |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
A reference to the external host provider that the host is managed by. |
7.67. ExternalHostGroup struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
Name | Type | Summary |
---|---|---|
|
7.68. ExternalHostProvider struct
Represents an external host provider, such as Foreman or Satellite.
See https://www.theforeman.org/ for more details on Foreman. See https://access.redhat.com/products/red-hat-satellite for more details on Red Hat Satellite.
Name | Type | Summary |
---|---|---|
|
Defines the external provider authentication URL address. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines password for the user during the authentication process. |
|
|
Array of provider name/value properties. |
|
|
Defines whether provider authentication is required or not. |
|
|
Defines URL address of the external provider. |
|
|
Defines user name to be used during authentication process. |
7.68.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 | Type | Summary |
---|---|---|
|
A reference to the certificates the engine supports for this provider. |
|
|
A reference to the compute resource as represented in the host provider. |
|
|
A reference to the discovered hosts in the host provider. |
|
|
A reference to the host groups in the host provider. |
|
|
A reference to the hosts provisioned by the host provider. |
7.68.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. ExternalProvider struct
Represents an external provider.
Name | Type | Summary |
---|---|---|
|
Defines the external provider authentication URL address. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines password for the user during the authentication process. |
|
|
Array of provider name/value properties. |
|
|
Defines whether provider authentication is required or not. |
|
|
Defines URL address of the external provider. |
|
|
Defines user name to be used during authentication process. |
7.70. ExternalStatus enum
Represents an external status. This status is currently used for hosts and storage domains, and allows an external system to update status of objects it is aware of.
Name | Summary |
---|---|
|
Error status. |
|
Failure status. |
|
Info status. |
|
OK status. |
|
Warning status. |
7.71. ExternalSystemType enum
Represents the type of the external system that is associated with the step
.
Name | Summary |
---|---|
|
Represents |
|
Represents |
7.72. ExternalVmImport struct
Describes the parameters for the virtual machine import operation from an external system.
Name | Type | Summary |
---|---|---|
|
The name of the virtual machine to be imported, as is defined within the external system. |
|
|
The password to authenticate against the external hypervisor system. |
|
|
The type of external virtual machine provider. |
|
|
Specifies the disk allocation policy of the resulting virtual machine: |
|
|
The URL to be passed to the |
|
|
The username to authenticate against the external hypervisor system. |
7.72.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
More examples can be found at http://libguestfs.org/virt-v2v.1.html.
Name | Type | Summary |
---|---|---|
|
Specifies the target cluster for the resulting virtual machine. |
|
|
Optional. |
|
|
Optional. |
|
|
Optional. |
|
|
Optional. |
|
|
Specifies the target storage domain for converted disks. |
|
|
The virtual machine entity used to specify a name for the newly created virtual machine. |
7.72.3. drivers_iso
Optional. The name of the ISO containing drivers that can be used during the virt-v2v
conversion process.
7.73. ExternalVmProviderType enum
Describes the type of external hypervisor system.
Name | Summary |
---|---|
|
|
|
|
|
7.75. FenceType enum
Type representing the type of the fence operation.
Name | Summary |
---|---|
|
Manual host fencing via power management. |
|
Restart the host via power management. |
|
Start the host via power management. |
|
Check the host power status via power management. |
|
Stop the host via power management. |
7.76. FencingPolicy struct
Type representing a cluster fencing policy.
Name | Type | Summary |
---|---|---|
|
Enable or disable fencing on this cluster. |
|
|
If enabled, we will not fence a host in case more than a configurable percentage of hosts in the cluster lost connectivity as well. |
|
|
A flag indicating if fencing should be skipped if Gluster bricks are up and running in the host being fenced. |
|
|
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. |
|
|
If enabled, we will skip fencing in case the host maintains its lease in the storage. |
7.76.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.76.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.77. File struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
7.78. Filter struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
7.79. Floppy struct
The underlying representation of a floppy file.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
File object that represent the Floppy device’s content and its type. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Optionally references to an instance type the device is used by. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.81. GlusterBrick struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
||
|
||
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
Optionally references to an instance type the device is used by. |
|
|
||
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.82. GlusterBrickAdvancedDetails struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
||
|
||
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
Name | Type | Summary |
---|---|---|
|
Optionally references to an instance type the device is used by. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.84. GlusterBrickStatus enum
Name | Summary |
---|---|
|
Brick is in |
|
When the status cannot be determined due to host being non-responsive. |
|
Brick is in |
7.85. GlusterClient struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
7.86. GlusterHook struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
||
|
||
|
||
|
||
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
7.87. GlusterHookStatus enum
Name | Summary |
---|---|
|
Hook is disabled in the cluster. |
|
Hook is enabled in the cluster. |
|
Unknown/missing hook status. |
7.88. GlusterMemoryPool struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
7.89. GlusterServerHook struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
7.91. GlusterVolume struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.92. GlusterVolumeProfileDetails struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
7.93. GlusterVolumeStatus enum
Name | Summary |
---|---|
|
Volume needs to be started, for clients to be able to mount and use it. |
|
When the status cannot be determined due to host being non-responsive. |
|
Volume is started, and can be mounted and used by clients. |
7.94. GlusterVolumeType enum
Type representing the type of Gluster Volume.
Name | Summary |
---|---|
|
Dispersed volumes are based on erasure codes, providing space-efficient protection against disk or server failures. |
|
Distributed volumes distributes files throughout the bricks in the volume. |
|
Distributed dispersed volumes distribute files across dispersed subvolumes. |
|
Distributed replicated volumes distributes files across replicated bricks in the volume. |
|
Distributed striped volumes stripe data across two or more nodes in the cluster. |
|
Distributed striped replicated volumes distributes striped data across replicated bricks in the cluster. |
|
Replicated volumes replicates files across bricks in the volume. |
|
Striped volumes stripes data across bricks in the volume. |
|
Striped replicated volumes stripes data across replicated bricks in the cluster. |
7.94.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.94.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.94.3. distributed_disperse
Distributed dispersed volumes distribute files across dispersed subvolumes.
This has the same advantages of distribute replicate volumes, but using disperse to store the data into the bricks.
7.94.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.94.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.94.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.94.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.94.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.94.9. striped_replicate
Striped replicated volumes stripes data across replicated bricks in the cluster.
For best results, striped replicated volumes should be used in highly concurrent environments where there is parallel access of very large files and performance is critical.
Note: With the introduction of Sharding in Glusterfs 3.7 releases, striped volumes are not recommended and it will be removed in future release.
7.96. GraphicsConsole struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.97. GraphicsType enum
The graphics protocol used to connect to the graphic console.
Name | Summary |
---|---|
|
Graphics protocol of type SPICE. |
|
Graphics protocol of type VNC. |
7.97.1. spice
Graphics protocol of type SPICE. See https://www.spice-space.org for more details.
7.98. Group struct
This type represents all groups in the directory service.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The containing directory service domain id. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Namespace where group resides. |
Name | Type | Summary |
---|---|---|
|
A link to the domain containing this group. |
|
|
A link to the permissions sub-collection for permissions attached to this group. |
|
|
A link to the roles sub-collection for roles attached to this group. |
|
|
A link to the tags sub-collection for tags attached to this group. |
7.99. GuestOperatingSystem struct
Represents an operating system installed on the virtual machine.
To get that information send a request like this:
GET /ovirt-engine/api/vms/123
The result will be like this:
<vm href="/ovirt-engine/api/vms/123" id="123">
...
<guest_operating_system>
<architecture>x86_64</architecture>
<codename>Maipo</codename>
<distribution>Red Hat Enterprise Linux Server</distribution>
<family>Linux</family>
<kernel>
<version>
<build>0</build>
<full_version>3.10.0-514.10.2.el7.x86_64</full_version>
<major>3</major>
<minor>10</minor>
<revision>514</revision>
</version>
</kernel>
<version>
<full_version>7.3</full_version>
<major>7</major>
<minor>3</minor>
</version>
</guest_operating_system>
</vm>
Name | Type | Summary |
---|---|---|
|
The architecture of the operating system, such as x86_64. |
|
|
Code name of the operating system, such as |
|
|
Full name of operating system distribution. |
|
|
Family of operating system, such as |
|
|
Kernel version of the operating system. |
|
|
Version of the installed operating system. |
7.100. HardwareInformation struct
Represents hardware information of host.
To get that information send a request like this:
GET /ovirt-engine/api/hosts/123
The result will be like this:
<host href="/ovirt-engine/api/hosts/123" id="123">
...
<hardware_information>
<family>Red Hat Enterprise Linux</family>
<manufacturer>Red Hat</manufacturer>
<product_name>RHEV Hypervisor</product_name>
<serial_number>01234567-89AB-CDEF-0123-456789ABCDEF</serial_number>
<supported_rng_sources>
<supported_rng_source>random</supported_rng_source>
</supported_rng_sources>
<uuid>12345678-9ABC-DEF0-1234-56789ABCDEF0</uuid>
<version>1.2-34.5.el7ev</version>
</hardware_information>
...
</application>
Name | Type | Summary |
---|---|---|
|
Type of host’s CPU. |
|
|
Manufacturer of the host’s machine and hardware vendor. |
|
|
Host’s product name (for example |
|
|
Unique ID for host’s chassis. |
|
|
Supported sources of random number generator. |
|
|
Unique ID for each host. |
|
|
Unique name for each of the manufacturer. |
7.101. HighAvailability struct
Type representing high availability of a virtual machine.
Name | Type | Summary |
---|---|---|
|
Define if the virtual machine should be consider highly available. |
|
|
Indicates the priority of the virtual machine inside the run and migration queues. |
7.101.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:
API Value | GUI Label |
---|---|
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:
GUI Label | API Value |
---|---|
Low |
1 |
Medium |
50 |
High |
100 |
7.102. Hook struct
Represents a hook.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
Name of the event to execute the hook on. |
|
|
A unique identifier. |
|
|
Checksum of the hook. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Reference to the host the hook belongs to. |
7.103. HookContentType enum
Represents content type of hook script.
Name | Summary |
---|---|
|
Binary content type of the hook. |
|
Text content type of the hook. |
7.104. HookStage enum
Type represents a stage of volume event at which hook executes.
Name | Summary |
---|---|
|
Stage after start of volume. |
|
Stage before start of volume. |
7.105. HookStatus enum
Type represents the status of a hook.
Name | Summary |
---|---|
|
Hook is disabled. |
|
Hook is enabled. |
|
Hook is missing. |
7.106. Host struct
Type representing a host.
Name | Type | Summary |
---|---|---|
|
The host address (FQDN/IP). |
|
|
The host auto non uniform memory access (NUMA) status. |
|
|
The host certificate. |
|
|
Free text containing comments about this object. |
|
|
The CPU type of this host. |
|
|
A human-readable description in plain text. |
|
|
Specifies whether host device passthrough is enabled on this host. |
|
|
Optionally specify the display address of this host explicitly. |
|
|
The host external status. |
|
|
The host hardware information. |
|
|
The self-hosted engine status of this host. |
|
|
A unique identifier. |
|
|
The host iSCSI details. |
|
|
The host KDUMP status. |
|
|
Kernel SamePage Merging (KSM) reduces references to memory pages from multiple identical pages to a single page reference. |
|
|
The host libvirt version. |
|
|
The max scheduling memory on this host in bytes. |
|
|
The amount of physical memory on this host in bytes. |
|
|
A human-readable name in plain text. |
|
|
Specifies whether non uniform memory access (NUMA) is supported on this host. |
|
|
The operating system on this host. |
|
|
Specifies whether we should override firewall definitions. |
|
|
The host port. |
|
|
The host power management definitions. |
|
|
The protocol that the engine uses to communicate with the host. |
|
|
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. |
|
|
The host SElinux status. |
|
|
The host storage pool manager (SPM) status and definition. |
|
|
The SSH definitions. |
|
|
The host status. |
|
|
The host status details. |
|
|
The virtual machine summary - how many are active, migrating and total. |
|
|
Transparent huge page support expands the size of memory pages beyond the standard 4 KiB limit. |
|
|
Indicates if the host contains a full installation of the operating system or a scaled-down version intended only to host virtual machines. |
|
|
Specifies whether there is an oVirt-related update on this host. |
|
|
The version of VDSM. |
7.106.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.106.3. kdump_status
The host KDUMP status. KDUMP happens when the host kernel has crashed and it is now going through memory dumping.
7.106.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
With a request body like this:
<host>
<ksm>
<enabled>true</enabled>
</ksm>
</host>
7.106.5. libvirt_version
The host libvirt version. For more information on libvirt please go to libvirt.
7.106.6. override_iptables
Specifies whether we should override firewall definitions. This applies only when the host is installed or re-installed.
7.106.7. protocol
The protocol that the engine uses to communicate with the host.
Since version 4.1 of the engine the protocol
is always set to stomp since xml was removed.
|
7.106.8. se_linux
The host SElinux status. Security-Enhanced Linux (SELinux) is a component in the Linux kernel that provides a mechanism for supporting access control security policies.
7.106.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.106.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
With a request body like this:
<host>
<transparent_hugepages>
<enabled>true</enabled>
</transparent_hugepages>
</host>
7.106.12. version
The version of VDSM.
For example:
GET /ovirt-engine/api/hosts/123
This GET
request will return the following output:
<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>
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
Lists all the Katello errata assigned to the host. |
|
|
||
|
||
|
||
|
||
|
Each host resource exposes a statistics sub-collection for host-specific statistics. |
|
|
||
|
||
|
||
|
7.106.13. katello_errata
Lists all the Katello errata assigned to the host.
GET /ovirt-engine/api/hosts/123/katelloerrata
You will receive response in XML like this one:
<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.106.14. statistics
Each host resource exposes a statistics sub-collection for host-specific statistics.
An example of an XML representation:
<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>
This statistics sub-collection is read-only. |
The following list shows the statistic types for hosts:
Name | Description |
---|---|
|
Total memory in bytes on the host. |
|
Memory in bytes used on the host. |
|
Memory in bytes free on the host. |
|
Memory in bytes shared on the host. |
|
I/O buffers in bytes. |
|
OS caches in bytes. |
|
Total swap memory in bytes on the host. |
|
Swap memory in bytes free on the host. |
|
Swap memory in bytes used on the host. |
|
Swap memory in bytes also cached in host’s memory. |
|
Percentage of CPU usage for Kernel SamePage Merging. |
|
Percentage of CPU usage for user slice. |
|
Percentage of CPU usage for system. |
|
Percentage of idle CPU usage. |
|
CPU load average per five minutes. |
|
Boot time of the machine. |
7.107. HostDevice struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The name of the driver this device is bound to. |
|
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
||
|
7.109. HostNic struct
Represents a host NIC.
For example, the XML representation of a host NIC looks like this:
<host_nic href="/ovirt-engine/api/hosts/123/nics/456" id="456">
<name>eth0</name>
<boot_protocol>static</boot_protocol>
<bridged>true</bridged>
<custom_configuration>true</custom_configuration>
<ip>
<address>192.168.122.39</address>
<gateway>192.168.122.1</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
<ipv6>
<gateway>::</gateway>
<version>v6</version>
</ipv6>
<ipv6_boot_protocol>none</ipv6_boot_protocol>
<mac>
<address>52:54:00:0c:79:1d</address>
</mac>
<mtu>1500</mtu>
<status>up</status>
</host_nic>
A bonded interface is represented as a HostNic object
containing the bonding
and slaves
attributes.
For example, the XML representation of a bonded host NIC looks like this:
<host_nic href="/ovirt-engine/api/hosts/123/nics/456" id="456">
<name>bond0</name>
<mac address="00:00:00:00:00:00"/>
<ip>
<address>192.168.122.39</address>
<gateway>192.168.122.1</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
<boot_protocol>dhcp</boot_protocol>
<bonding>
<options>
<option>
<name>mode</name>
<value>4</value>
<type>Dynamic link aggregation (802.3ad)</type>
</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>
Name | Type | Summary |
---|---|---|
|
The |
|
|
The base interface of the NIC. |
|
|
The bonding parameters of the NIC. |
|
|
The IPv4 boot protocol configuration of the NIC. |
|
|
Defines the bridged network status. |
|
|
||
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The IPv4 address of the NIC. |
|
|
The IPv6 address of the NIC. |
|
|
The IPv6 boot protocol configuration of the NIC. |
|
|
The MAC address of the NIC. |
|
|
The maximum transmission unit for the interface. |
|
|
A human-readable name in plain text. |
|
|
The labels that are applied to this NIC. |
|
|
||
|
||
|
||
|
A link to the statistics of the NIC. |
|
|
||
|
Describes the virtual functions configuration of a physical function NIC. |
|
|
7.109.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.109.2. bridged
Defines the bridged network status. Set to true
for a bridged network
and false
for a bridgeless network.
7.109.3. statistics
A link to the statistics of the NIC.
The data types for HostNic statistical values:
-
data.current.rx - The rate in bytes per second of data received.
-
data.current.tx - The rate in bytes per second of data transmitted.
-
data.total.rx - Total received data.
-
data.total.tx - Total transmitted data.
-
errors.total.rx - Total errors from receiving data.
-
errors.total.tx - Total errors from transmitting data.
Name | Type | Summary |
---|---|---|
|
||
|
A reference to the network to which the interface should be connected. |
|
|
A reference to the physical function NIC of a SR-IOV virtual function NIC. |
|
|
A link to the quality-of-service configuration of the interface. |
7.110. HostNicVirtualFunctionsConfiguration struct
Describes the virtual functions configuration of an SR-IOV-enabled physical function NIC.
Name | Type | Summary |
---|---|---|
|
Defines whether all networks are allowed to be defined on the related virtual functions, or specified ones only. |
|
|
The maximum number of virtual functions the NIC supports. |
|
|
The number of virtual functions currently defined. |
7.111. HostProtocol enum
The protocol used by the engine to communicate with a host.
Since version 4.1 of the engine the protocol
is always set to stomp since xml was removed.
|
Name | Summary |
---|---|
|
JSON-RPC protocol on top of STOMP. |
|
XML-RPC protocol. |
7.112. HostStatus enum
Type representing a host status.
Name | Summary |
---|---|
|
The engine cannot communicate with the host for a specific threshold so it is now trying to connect before going through fencing. |
|
The host is down. |
|
The host is in error status. |
|
The host is initializing. |
|
The host installation failed. |
|
The host is being installed. |
|
The host operating system is now installing. |
|
The host kernel has crashed and it is now going through memory dumping. |
|
The host is in maintenance status. |
|
The host is non operational. |
|
The host is not responsive. |
|
The host is pending administrator approval. |
|
The host is preparing for maintenance. |
|
The host is being rebooted. |
|
The host is in activation process. |
|
The host is up. |
7.112.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.112.2. initializing
The host is initializing. This is an intermediate step before moving the host to 'up' status.
7.112.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.112.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.112.5. maintenance
The host is in maintenance status. When a host is in maintenance it cannot run virtual machines.
7.112.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.112.7. non_responsive
The host is not responsive. This means that the engine is not able to communicate with the host.
7.113. HostStorage struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
The number of times to retry a request before attempting further recovery actions. |
|
|
The time in tenths of a second to wait for a response before retrying NFS requests. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
7.113.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.114. HostType enum
This enumerated type is used to determine which type of operating system is used by the host.
Name | Summary |
---|---|
|
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 host contains a full Red Hat Enterprise Linux, CentOS, or Fedora installation. |
|
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.114.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.
7.115. HostedEngine struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
7.116. Icon struct
Icon of virtual machine or template.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
Base64 encode content of the icon file. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
Format of icon file. |
|
|
A human-readable name in plain text. |
7.117. Identified struct
This interface is the base model for all types that represent objects with an identifier.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
7.118. Image struct
Represents an image entity.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
The storage domain associated with this image. |
7.119. ImageTransfer struct
This type contains information regarding an image transfer being performed.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The direction indicates whether the transfer is sending image data ( |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The current phase of the image transfer in progress. |
|
|
The URL of the proxy server that the user inputs or outputs to. |
|
|
The signed ticket that should be attached as an |
7.119.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.119.2. 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.119.3. proxy_url
The URL of the proxy server that the user inputs or outputs to. This attribute is
available only if the image transfer entity is in the transferring
phase. See phase
for details.
Name | Type | Summary |
---|---|---|
|
The host which will be used to write to the image which is targeted for input or output. |
|
|
The image which is targeted for input or output. |
7.120. ImageTransferDirection enum
The image transfer direction for a transfer.
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.
Please refer to image transfer for further documentation.
Name | Summary |
---|---|
|
The user must choose |
|
The user can choose |
7.121. ImageTransferPhase enum
A list of possible phases for an image transfer entity. Each of these values defines a specific point in a transfer flow.
Please refer to image transfer for more information.
Name | Summary |
---|---|
|
This phase will be set as a result of the user cancelling the transfer. |
|
This phase can only be set in the Administration Portal, and indicates that there was an error during the transfer, and it is being finalized with a failure. |
|
This phase will be set when the user calls finalize. |
|
Indicates that the targeted image failed the verification, and cannot be used. |
|
Indicates that the transfer session was successfully closed, and the targeted image was verified and ready to be used. |
|
The initial phase of an image transfer. |
|
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. |
|
This phase is a result of a pause call by the user, using pause. |
|
The phase where the transfer has been resumed by the client calling resume. |
|
The phase where the transfer session is open, and the client can input or output the desired image using the preferred tools. |
|
An unknown phase. |
7.121.1. cancelled
This phase will be set as a result of the user cancelling the transfer. The cancellation can only be performed in the Administration Portal.
7.121.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
.
Refer to image transfer for more information.
7.121.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.121.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.121.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.121.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.121.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.122. InheritableBoolean enum
Enum representing the boolean value that can be either set, or inherited from a higher level. The inheritance order is virtual machine → cluster → engine-config.
Name | Summary |
---|---|
|
Set the value to false on this level. |
|
Inherit the value from higher level. |
|
Set the value to true on this level. |
7.123. Initialization struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
Deprecated attribute to specify cloud-init configuration. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
7.123.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 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.124. InstanceType struct
Describes the hardware configuration of virtual machines.
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
An instance type inherits it’s attributes from the template entity although most template attributes are not used in instance types. |
Name | Type | Summary |
---|---|---|
|
Reference to virtual machine’s BIOS configuration. |
|
|
Free text containing comments about this object. |
|
|
Console configured for this virtual machine. |
|
|
The configuration of the virtual machine CPU. |
|
|
||
|
The virtual machine creation date. |
|
|
Virtual machine custom compatibility version. |
|
|
||
|
||
|
Properties sent to VDSM to configure various hooks. |
|
|
If |
|
|
A human-readable description in plain text. |
|
|
The virtual machine display configuration. |
|
|
Domain configured for this virtual machine. |
|
|
The virtual machine high availability configuration. |
|
|
A unique identifier. |
|
|
Reference to the virtual machine’s initialization configuration. |
|
|
For performance tuning of IO threading. |
|
|
Virtual machine’s large icon. |
|
|
Reference to the storage domain this virtual machine/template lease reside on. |
|
|
The virtual machine’s memory, in bytes. |
|
|
Reference to virtual machine’s memory management configuration. |
|
|
Reference to configuration of migration of running virtual machine to another host. |
|
|
Maximum time the virtual machine can be non responsive during its live migration to another host in ms. |
|
|
A human-readable name in plain text. |
|
|
The origin of this virtual machine. |
|
|
Operating system type installed on the virtual machine. |
|
|
Random Number Generator device configuration for this virtual machine. |
|
|
Virtual machine’s serial number in a cluster. |
|
|
Virtual machine’s small icon. |
|
|
If |
|
|
Reference to the Single Sign On configuration this virtual machine is configured for. |
|
|
If |
|
|
If |
|
|
The status of the template. |
|
|
The virtual machine’s time zone set by oVirt. |
|
|
If |
|
|
Determines whether the virtual machine is optimized for desktop or server. |
|
|
Configuration of USB devices for this virtual machine (count, type). |
|
|
Indicates whether this is a base version or a sub version of another template. |
|
|
Reference to VirtIO SCSI configuration. |
|
|
The virtual machine configuration associated with this template. |
7.124.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
With a request body:
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.124.2. custom_compatibility_version
Virtual machine custom compatibility version.
Enables a virtual machine to be customized to its own compatibility version. If
custom_compatibility_version
is set, it overrides the cluster’s compatibility version
for this particular virtual machine.
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.124.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically restarted when it unexpectedly goes down.
7.124.4. initialization
Reference to the virtual machine’s initialization configuration.
Since oVirt 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
With a request body like this:
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true
will still contain this attribute.
7.124.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.124.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.124.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
With the following request body:
<vm>
<memory>1073741824</memory>
</vm>
Memory in the example is converted to bytes using the following formula: 1 GiB = 230 bytes = 1073741824 bytes. |
Memory hot plug is supported from oVirt 3.6 onwards. You can use the example above to increase memory while the virtual machine is running. |
7.124.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
Set either explicitly for the virtual machine or by engine-config -s DefaultMaximumMigrationDowntime=[value]
7.124.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.124.10. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.124.11. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be automatically signed in the virtual machine’s operating system when console is opened.
Name | Type | Summary |
---|---|---|
|
References to the CD-ROM devices attached to the template. |
|
|
Reference to cluster the virtual machine belongs to. |
|
|
Reference to CPU profile used by this virtual machine. |
|
|
References to the disks attached to the template. |
|
|
References to the graphic consoles attached to the template. |
|
|
References to the network interfaces attached to the template. |
|
|
References to the user permissions attached to the template. |
|
|
Reference to quota configuration set for this virtual machine. |
|
|
Reference to storage domain the virtual machine belongs to. |
|
|
References to the tags attached to the template. |
|
|
References to the watchdog devices attached to the template. |
7.126. Ip struct
Represents the IP configuration of a network interface.
Name | Type | Summary |
---|---|---|
|
The text representation of the IP address. |
|
|
The address of the default gateway. |
|
|
The network mask. |
|
|
The version of the IP protocol. |
7.126.1. address
The text representation of the IP address.
For example, an IPv4 address will be represented as follows:
<ip>
<address>192.168.0.1</address>
...
</ip>
An IPv6 address will be represented as follows:
<ip>
<address>2620:52:0:20f0:4216:7eff:feaa:1b50</address>
...
</ip>
7.127. IpAddressAssignment struct
Represents an IP address assignment for a network device.
For a static boot protocol assignment, subnet mask and IP address (and optinally default gateway) must be provided in the IP configuration.
Name | Type | Summary |
---|---|---|
|
Sets the boot protocol used to assign the IP configuration for a network device. |
|
|
Sets the IP configuration for a network device. |
7.128. IpVersion enum
Defines the values for the IP protocol version.
Name | Summary |
---|---|
|
IPv4. |
|
IPv6. |
7.129. IscsiBond struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.130. IscsiDetails struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
7.131. Job struct
Represents a job, which monitors execution of a flow in the system. A job can contain multiple steps in a hierarchic structure. The steps can be processed in parallel, depends on the implementation of the flow.
Name | Type | Summary |
---|---|---|
|
Indicates if the job should be cleared automatically after it was completed by the system. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The end time of the job. |
|
|
Indicates if the job is originated by an external system. |
|
|
A unique identifier. |
|
|
The last update date of the job. |
|
|
A human-readable name in plain text. |
|
|
The start time of the job. |
|
|
The status of the job. |
7.132. JobStatus enum
Represents the status of the job.
Name | Summary |
---|---|
|
The aborted job status. |
|
The failed job status. |
|
The finished job status. |
|
The started job status. |
|
The unknown job status. |
7.132.1. aborted
The aborted job status. This status is applicable for an external job that was forcibly aborted.
7.133. KatelloErratum struct
Type representing a Katello erratum.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The date when the Katello erratum was issued. |
|
|
A human-readable name in plain text. |
|
|
The list of packages which solve the issue reported by the Katello erratum. |
|
|
The severity of the Katello erratum. |
|
|
The solution for the issue described by the Katello erratum. |
|
|
The summary of the Katello erratum. |
|
|
The title of the Katello erratum. |
|
|
The type of the Katello erratum. |
7.137. LinkLayerDiscoveryProtocolElement struct
Represents an information element received by Link Layer Discovery Protocol (LLDP). IEEE 802.1AB defines type, length, value (TLV) as a "short, variable length encoding of an information element". This type represents such an information element.
The attribute name
is a human-readable string used to describe what the value is about, and may not be unique.
The name is redundant, because it could be created from type
and the optional oui
and subtype
.
The purpose of name
is to simplify the reading of the information element.
The name
of a property is exactly the same string which is used in IEEE 802.1AB chapter 8.
Organizationally-specific information elements have the type
of 127
and the attributes
oui
and subtype
.
For example, the XML representation of an information element may look like this:
<link_layer_discovery_protocol_element>
<name>Port VLAN Id</name>
<oui>32962</oui>
<properties>
<property>
<name>vlan id</name>
<value>488</value>
</property>
<property>
<name>vlan name</name>
<value>v2-0488-03-0505</value>
</property>
</properties>
<subtype>3</subtype>
<type>127</type>
</link_layer_discovery_protocol_element>
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The organizationally-unique identifier (OUI) encoded as an integer. |
|
|
Represents structured data transported by the information element as a list of name/value pairs. |
|
|
The organizationally-defined subtype encoded as an integer. |
|
|
The type of the LinkLayerDiscoveryProtocolElement encoded as an integer. |
7.138. LogSeverity enum
Enum representing a severity of an event.
Name | Summary |
---|---|
|
Alert severity. |
|
Error severity. |
|
Normal severity. |
|
Warning severity. |
7.139. LogicalUnit struct
Name | Type | Summary |
---|---|---|
|
||
|
The maximum number of bytes that can be discarded by the logical unit’s underlying storage in a single operation. |
|
|
True, if previously discarded blocks in the logical unit’s underlying storage are read back as zeros. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
7.139.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.
This is the software limit, and not the hardware limit, as noted in the
documentation of
queue-sysfs for discard_max_bytes .
|
7.139.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
.
7.141. Mac struct
Represents a MAC address of a virtual network interface.
Name | Type | Summary |
---|---|---|
|
MAC address. |
7.142. MacPool struct
Represents a MAC address pool.
Example of an XML representation of a MAC address pool:
<mac_pool href="/ovirt-engine/api/macpools/123" id="123">
<name>Default</name>
<description>Default MAC pool</description>
<allow_duplicates>false</allow_duplicates>
<default_pool>true</default_pool>
<ranges>
<range>
<from>00:1A:4A:16:01:51</from>
<to>00:1A:4A:16:01:E6</to>
</range>
</ranges>
</mac_pool>
Name | Type | Summary |
---|---|---|
|
Defines whether duplicate MAC addresses are permitted in the pool. |
|
|
Free text containing comments about this object. |
|
|
Defines whether this is the default pool. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines the range of MAC addresses for the pool. |
7.142.1. allow_duplicates
Defines whether duplicate MAC addresses are permitted in the pool. If not specified, defaults to false
.
7.144. MemoryPolicy struct
Logical grouping of memory related properties of virtual machine-like entities.
Name | Type | Summary |
---|---|---|
|
||
|
||
|
Maximum virtual machine’s memory, in bytes. |
|
|
||
|
7.144.1. max
Maximum virtual machine’s memory, in bytes.
The user provides the value in bytes, and the engine 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 oVirt Engine will truncate that value to the nearest lower MiB boundary: in this case 1073741824 (1 GiB).
7.147. MigrateOnError enum
Name | Summary |
---|---|
|
|
|
|
|
7.148. MigrationBandwidth struct
Defines the bandwidth used by migration.
Name | Type | Summary |
---|---|---|
|
The method used to assign the bandwidth. |
|
|
Custom bandwidth in Mbps. |
7.149. MigrationBandwidthAssignmentMethod enum
Defines how the migration bandwidth is assigned.
Name | Summary |
---|---|
|
Takes the bandwidth from the Quality of Service if the Quality of Service is defined. |
|
Custom defined bandwidth in Mbit/s. |
|
Takes the value as configured on the hypervisor. |
7.150. MigrationOptions struct
The type for migration options.
Name | Type | Summary |
---|---|---|
|
||
|
The bandwidth that is allowed to be used by the migration. |
|
|
Name | Type | Summary |
---|---|---|
|
A reference to the migration policy, as defined using |
7.151. MigrationPolicy struct
A policy describing how the migration is treated, such as convergence or how many parallel migrations are allowed.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
7.152. Network struct
The type for a logical network.
An example of the JSON representation of a logical network:
{
"network" : [ {
"data_center" : {
"href" : "/ovirt-engine/api/datacenters/123",
"id" : "123"
},
"stp" : "false",
"mtu" : "0",
"usages" : {
"usage" : [ "vm" ]
},
"name" : "ovirtmgmt",
"description" : "Management Network",
"href" : "/ovirt-engine/api/networks/456",
"id" : "456",
"link" : [ {
"href" : "/ovirt-engine/api/networks/456/permissions",
"rel" : "permissions"
}, {
"href" : "/ovirt-engine/api/networks/456/vnicprofiles",
"rel" : "vnicprofiles"
}, {
"href" : "/ovirt-engine/api/networks/456/labels",
"rel" : "labels"
} ]
} ]
}
An example of the XML representation of the same logical network:
<network href="/ovirt-engine/api/networks/456" id="456">
<name>ovirtmgmt</name>
<description>Management Network</description>
<link href="/ovirt-engine/api/networks/456/permissions" rel="permissions"/>
<link href="/ovirt-engine/api/networks/456/vnicprofiles" rel="vnicprofiles"/>
<link href="/ovirt-engine/api/networks/456/labels" rel="labels"/>
<data_center href="/ovirt-engine/api/datacenters/123" id="123"/>
<stp>false</stp>
<mtu>0</mtu>
<usages>
<usage>vm</usage>
</usages>
</network>
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
Deprecated, 'usages' should be used to define network as a display network. |
|
|
||
|
A unique identifier. |
|
|
Deprecated, not in use. |
|
|
Specifies the maximum transmission unit for the network. |
|
|
A human-readable name in plain text. |
|
|
Specifies whether upon creation of the network a virtual network interface profile should automatically be created. |
|
|
Defines whether the network is mandatory for all the hosts in the cluster. |
|
|
The status of the network. |
|
|
Specifies whether the spanning tree protocol is enabled for the network. |
|
|
Defines a set of usage elements for the network. |
|
|
A VLAN tag. |
7.152.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.152.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.152.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.
Name | Type | Summary |
---|---|---|
|
A reference to the cluster this network is attached to. |
|
|
A reference to the data center that the network is a member of. |
|
|
A reference to the labels assigned to the network. |
|
|
A reference to the permissions of the network. |
|
|
Reference to quality of service. |
|
|
A reference to the profiles of the network. |
7.153. NetworkAttachment struct
Describes how a host connects to a network.
An XML representation of a network attachment on a host:
<network_attachment href="/ovirt-engine/api/hosts/123/nics/456/networkattachments/789" id="789">
<network href="/ovirt-engine/api/networks/234" id="234"/>
<host_nic href="/ovirt-engine/api/hosts/123/nics/123" id="123"/>
<in_sync>true</in_sync>
<ip_address_assignments>
<ip_address_assignment>
<assignment_method>static</assignment_method>
<ip>
<address>192.168.122.39</address>
<gateway>192.168.122.1</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
</ip_address_assignment>
</ip_address_assignments>
<reported_configurations>
<reported_configuration>
<name>mtu</name>
<expected_value>1500</expected_value>
<actual_value>1500</actual_value>
<in_sync>true</in_sync>
</reported_configuration>
<reported_configuration>
<name>bridged</name>
<expected_value>true</expected_value>
<actual_value>true</actual_value>
<in_sync>true</in_sync>
</reported_configuration>
...
</reported_configurations>
</network_attachment>
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
With a request body like this:
<networkattachment>
<network id="234"/>
</networkattachment>
To attach a network to a host, send a request like this:
POST /ovirt-engine/api/hosts/123/networkattachments
With a request body like this:
<network_attachment>
<network id="234"/>
<host_nic id="456"/>
</network_attachment>
The ip_address_assignments
and properties
elements are updatable post-creation.
For example, to update a network attachment, send a request like this:
PUT /ovirt-engine/api/hosts/123/nics/456/networkattachments/789
With a request body like this:
<network_attachment>
<ip_address_assignments>
<ip_address_assignment>
<assignment_method>static</assignment_method>
<ip>
<address>7.1.1.1</address>
<gateway>7.1.1.2</gateway>
<netmask>255.255.255.0</netmask>
<version>v4</version>
</ip>
</ip_address_assignment>
</ip_address_assignments>
</network_attachment>
To detach a network from the network interface card send a request like this:
DELETE /ovirt-engine/api/hosts/123/nics/456/networkattachments/789
Changes to network attachment configuration must be explicitly committed. |
An XML representation of a network attachment’s properties
sub-collection:
<network_attachment>
<properties>
<property>
<name>bridge_opts</name>
<value>
forward_delay=1500 group_fwd_mask=0x0 multicast_snooping=1
</value>
</property>
</properties>
...
</network_attachment>
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
DNS resolver configuration will be reported when retrieving the network attachment using GET. |
|
|
A unique identifier. |
|
|
||
|
The IP configuration of the network. |
|
|
A human-readable name in plain text. |
|
|
Defines custom properties for the network configuration. |
|
|
A read-only list of configuration properties. |
7.153.1. dns_resolver_configuration
DNS resolver configuration will be reported when retrieving the network attachment using GET. It is optional when creating a new network attachment or updating an existing one.
7.153.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
:
Name | Default value |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Name | Type | Summary |
---|---|---|
|
||
|
A reference to the host network interface. |
|
|
A reference to the network that the interface is attached to. |
|
|
7.155. NetworkFilter struct
Network filters filter packets sent to and from the virtual machine’s NIC according to defined rules.
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.
This is a example of the XML representation:
<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>
If any part of the version is not present, it is represented by -1.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The minimum supported version of a specific NetworkFilter. |
7.156. NetworkLabel struct
Represents a label which can be added to a host network interface and to a network.
The label binds the network to the host network interface by the label id
.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
A reference to the host network interface which contains this label. |
|
|
A reference to the network which contains this label. |
7.159. NetworkUsage enum
This type indicates the purpose that the network is used for in the cluster.
Name | Summary |
---|---|
|
The network will be used for SPICE and VNC traffic. |
|
The network will be used for Gluster (bricks) data traffic. |
|
The network will be used for communication between the oVirt Engine and the nodes. |
|
The network will be used for virtual machine migration. |
|
7.160. NfsProfileDetail struct
Name | Type | Summary |
---|---|---|
|
||
|
7.162. Nic struct
Represents a virtual machine NIC.
For example, the XML representation of a NIC will look like this:
<nic href="/ovirt-engine/api/vms/123/nics/456" id="456">
<name>nic1</name>
<vm href="/ovirt-engine/api/vms/123" id="123"/>
<interface>virtio</interface>
<linked>true</linked>
<mac>
<address>02:00:00:00:00:00</address>
</mac>
<plugged>true</plugged>
<vnic_profile href="/ovirt-engine/api/vnicprofiles/789" id="789"/>
</nic>
Name | Type | Summary |
---|---|---|
|
Defines how an IP address is assigned to the NIC. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The type of driver used for the NIC. |
|
|
Defines if the NIC is linked to the virtual machine. |
|
|
The MAC address of the interface. |
|
|
A human-readable name in plain text. |
|
|
Defines if the network interface should be activated upon operation system startup. |
|
|
Defines if the NIC is plugged in to the virtual machine. |
Name | Type | Summary |
---|---|---|
|
Optionally references to an instance type the device is used by. |
|
|
A reference to the network that the interface should be connected to. |
|
|
A link to a collection of network attachments that are associated with the host NIC. |
|
|
A link to a collection of network labels that are associated with the host NIC. |
|
|
A link to a collection of reported devices that are associated with the virtual network interface. |
|
|
A link to the statistics for the NIC. |
|
|
Optionally references to a template the device is used by. |
|
|
A link to a collection of network labels that are allowed to be attached to the virtual functions of an SR-IOV NIC. |
|
|
A link to a collection of networks that are allowed to be attached to the virtual functions of an SR-IOV NIC. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
|
|
A link to an associated virtual network interface profile. |
7.162.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.163. NicConfiguration struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
7.164. NicInterface enum
Defines the options for an emulated virtual network interface device model.
Name | Summary |
---|---|
|
e1000. |
|
PCI Passthrough. |
|
rtl8139. |
|
Dual mode rtl8139, VirtIO. |
|
sPAPR VLAN. |
|
VirtIO. |
7.165. NicStatus enum
Network interface card status.
Name | Summary |
---|---|
|
The NIC is down and cannot be accessed. |
|
The NIC is up and can be accessed. |
7.166. NumaNode struct
Represents a physical NUMA node.
Example XML representation:
<host_numa_node href="/ovirt-engine/api/hosts/0923f1ea/numanodes/007cf1ab" id="007cf1ab">
<cpu>
<cores>
<core>
<index>0</index>
</core>
</cores>
</cpu>
<index>0</index>
<memory>65536</memory>
<node_distance>40 20 40 10</node_distance>
<host href="/ovirt-engine/api/hosts/0923f1ea" id="0923f1ea"/>
</host_numa_node>
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
Memory of the NUMA node in MB. |
|
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
||
|
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific statistics. |
7.166.1. statistics
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific statistics.
An example of an XML representation:
<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>
This statistics sub-collection is read-only. |
The following list shows the statistic types for a host NUMA node:
Name | Description |
---|---|
|
Total memory in bytes on the NUMA node. |
|
Memory in bytes used on the NUMA node. |
|
Memory in bytes free on the NUMA node. |
|
Percentage of CPU usage for user slice. |
|
Percentage of CPU usage for system. |
|
Percentage of idle CPU usage. |
7.167. NumaNodePin struct
Represents the pinning of a virtual NUMA node to a physical NUMA node.
Name | Type | Summary |
---|---|---|
|
Deprecated. |
|
|
The index of a physical NUMA node to which the virtual NUMA node is pinned. |
|
|
Deprecated. |
7.169. OpenStackImage struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
7.170. OpenStackImageProvider struct
Name | Type | Summary |
---|---|---|
|
Defines the external provider authentication URL address. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines password for the user during the authentication process. |
|
|
Array of provider name/value properties. |
|
|
Defines whether provider authentication is required or not. |
|
|
||
|
Defines URL address of the external provider. |
|
|
Defines user name to be used during authentication process. |
7.171. OpenStackNetwork struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
7.172. OpenStackNetworkProvider struct
Name | Type | Summary |
---|---|---|
|
Agent configuration settings. |
|
|
Defines the external provider authentication URL address. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines password for the user during the authentication process. |
|
|
Network plugin type. |
|
|
Array of provider name/value properties. |
|
|
Indicates whether the provider is read-only. |
|
|
Defines whether provider authentication is required or not. |
|
|
||
|
The type of provider. |
|
|
Defines URL address of the external provider. |
|
|
Defines user name to be used during authentication process. |
7.172.1. 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.172.2. 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 | Type | Summary |
---|---|---|
|
Reference to the certificates list. |
|
|
Reference to OpenStack networks list. |
|
|
Reference to OpenStack networks subnets list. |
7.173. OpenStackNetworkProviderType enum
The OpenStack network provider can either be implemented by OpenStack Neutron, in which case the Neutron agent is automatically installed on the hosts, or it can be an external provider implementing the OpenStack API, in which case the virtual interface driver is a custom solution installed manually.
Name | Summary |
---|---|
|
Indicates that the provider is an external one, implementing the OpenStack Neutron API. |
|
Indicates that the provider is OpenStack Neutron. |
7.174. OpenStackProvider struct
Name | Type | Summary |
---|---|---|
|
Defines the external provider authentication URL address. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines password for the user during the authentication process. |
|
|
Array of provider name/value properties. |
|
|
Defines whether provider authentication is required or not. |
|
|
||
|
Defines URL address of the external provider. |
|
|
Defines user name to be used during authentication process. |
7.175. OpenStackSubnet struct
Name | Type | Summary |
---|---|---|
|
Defines network CIDR. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
Defines a list of DNS servers. |
|
|
Defines IP gateway. |
|
|
A unique identifier. |
|
|
Defines IP version. |
|
|
A human-readable name in plain text. |
7.176. OpenStackVolumeProvider struct
Name | Type | Summary |
---|---|---|
|
Defines the external provider authentication URL address. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Defines password for the user during the authentication process. |
|
|
Array of provider name/value properties. |
|
|
Defines whether provider authentication is required or not. |
|
|
||
|
Defines URL address of the external provider. |
|
|
Defines user name to be used during authentication process. |
7.177. OpenStackVolumeType struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
7.178. OpenstackVolumeAuthenticationKey struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
7.180. OperatingSystem struct
Information describing the operating system. This is used for both virtual machines and hosts.
Name | Type | Summary |
---|---|---|
|
Configuration of the boot sequence. |
|
|
Custom kernel parameters for start the virtual machine with if Linux operating system is used. |
|
|
A custom part of the host kernel command line. |
|
|
Path to custom initial ramdisk on ISO storage domain if Linux operating system is used. |
|
|
Path to custom kernel on ISO storage domain if Linux operating system is used. |
|
|
The host kernel command line as reported by a running host. |
|
|
Operating system name in human readable form. |
|
|
7.180.2. cmdline
Custom kernel parameters for start the virtual machine with if Linux operating system is used.
Not used for hosts. |
7.180.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.
This attribute is currently only used for hosts. |
7.180.4. initrd
Path to custom initial ramdisk on ISO storage domain if Linux operating system is used.
For example iso://initramfs-3.10.0-514.6.1.el7.x86_64.img
.
Not used for hosts. |
7.180.5. kernel
Path to custom kernel on ISO storage domain if Linux operating system is used.
For example iso://vmlinuz-3.10.0-514.6.1.el7.x86_64
.
Not used for hosts. |
7.180.6. reported_kernel_cmdline
The host kernel command line as reported by a running host.
This is a read-only attribute. Attempts to change this attribute are silently ignored.
This attribute is currently only used for hosts. |
7.180.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.
Read only for hosts. |
7.181. OperatingSystemInfo struct
Represents a guest operating system.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
Large icon of the guest operating system. |
|
|
A human-readable name in plain text. |
|
|
Small icon of the guest operating system. |
7.183. OsType enum
Type representing kind of operating system.
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 type of operating system, not specified by the other values. |
|
Distribution of Linux other than those specified by the other values. |
|
Red Hat Enterprise Linux 3 32-bit. |
|
Red Hat Enterprise Linux 3 64-bit. |
|
Red Hat Enterprise Linux 4 32-bit. |
|
Red Hat Enterprise Linux 4 64-bit. |
|
Red Hat Enterprise Linux 5 32-bit. |
|
Red Hat Enterprise Linux 5 64-bit. |
|
Red Hat Enterprise Linux 6 32-bit. |
|
Red Hat Enterprise Linux 6 64-bit. |
|
This value is mapped to |
|
Windows 2003 32-bit. |
|
Windows 2003 64-bit. |
|
Windows 2008 32-bit. |
|
Windows 2008 R2 64-bit. |
|
Windows 2008 64-bit. |
|
Windows 2012 64-bit. |
|
Windows 7 32-bit. |
|
Windows 7 64-bit. |
|
Windows 8 32-bit. |
|
Windows 8 64-bit. |
|
Windows XP. |
7.184. Package struct
Type representing a package.
This is an example of the package element:
<package>
<name>libipa_hbac-1.9.2-82.11.el6_4.i686</name>
</package>
Name | Type | Summary |
---|---|---|
|
The name of the package. |
7.187. Permission struct
Type represents a permission.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Reference to cluster. |
|
|
Reference to data center. |
|
|
Reference to disk. |
|
|
Reference to group. |
|
|
Reference to host. |
|
|
Reference to role. |
|
|
Reference to storage domain. |
|
|
Reference to template. |
|
|
Reference to user. |
|
|
Reference to virtual machine. |
|
|
Reference to virtual machines pool. |
7.188. Permit struct
Type represents a permit.
Name | Type | Summary |
---|---|---|
|
Specifies whether permit is administrative or not. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Reference to the role the permit belongs to. |
7.190. PmProxyType enum
Name | Summary |
---|---|
|
The fence proxy is selected from the same cluster as the fenced host. |
|
The fence proxy is selected from the same data center as the fenced host. |
|
The fence proxy is selected from a different data center than the fenced host. |
7.191. PolicyUnitType enum
Holds the types of all internal policy unit types.
Name | Summary |
---|---|
|
|
|
|
|
7.193. PowerManagement struct
Name | Type | Summary |
---|---|---|
|
The host name or IP address of the host. |
|
|
Specifies fence agent options when multiple fences are used. |
|
|
Toggles the automated power control of the host in order to save energy. |
|
|
Indicates whether power management configuration is enabled or disabled. |
|
|
Toggles whether to determine if kdump is running on the host before it is shut down. |
|
|
Fencing options for the selected type= specified with the option name="" and value="" strings. |
|
|
A valid, robust password for power management. |
|
|
Determines the power management proxy. |
|
|
Determines the power status of the host. |
|
|
Fencing device code. |
|
|
A valid user name for power management. |
7.193.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.193.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.194. PowerManagementStatus enum
Name | Summary |
---|---|
|
Host is OFF. |
|
Host is ON. |
|
Unknown status. |
7.195. Product struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
7.196. ProductInfo struct
Product information.
The entry point contains a product_info
element to help an API user determine the legitimacy of the
oVirt environment. This includes the name of the product, the vendor
and the version
.
Verify a genuine oVirt environment
The follow elements identify a genuine oVirt environment:
<api>
...
<product_info>
<name>oVirt Engine</name>
<vendor>ovirt.org</vendor>
<version>
<build>0</build>
<full_version>4.1.0_master</full_version>
<major>4</major>
<minor>1</minor>
<revision>0</revision>
</version>
</product_info>
...
</api>
Name | Type | Summary |
---|---|---|
|
The name of the product, for example |
|
|
The name of the vendor, for example `ovirt. |
|
|
The version number of the product. |
7.197. ProfileDetail struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
||
|
7.200. QcowVersion enum
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 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 |
---|---|
|
The Copy On Write default compatibility version It means that every QEMU can use it. |
|
The Copy On Write compatibility version which was introduced in QEMU 1. |
7.201. Qos struct
This type represents the attributes to define Quality of service (QoS).
For storage the type
is storage, the attributes max_throughput
, max_read_throughput
,
max_write_throughput
, max_iops
, max_read_iops
and max_write_iops
are relevant.
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.
For host networks the type
is hostnetwork, the attributes outbound_average_linkshare
,
outbound_average_upperlimit
and outbound_average_realtime
are relevant.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
The maximum processing capability in %. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The desired average inbound bit rate in Mbps. |
|
|
The amount of data that can be delivered in a single burst in MiB. |
|
|
The maximum inbound rate in Mbps. |
|
|
Maximum permitted number of input and output operations per second. |
|
|
Maximum permitted number of input operations per second. |
|
|
Maximum permitted throughput for read operations. |
|
|
Maximum permitted total throughput. |
|
|
Maximum permitted number of output operations per second. |
|
|
Maximum permitted throughput for write operations. |
|
|
A human-readable name in plain text. |
|
|
The desired average outbound bit rate in Mbps. |
|
|
Weighted share. |
|
|
The committed rate in Mbps. |
|
|
The maximum bandwidth to be used by a network in Mbps. |
|
|
The amount of data that can be sent in a single burst in MiB. |
|
|
The maximum outbound rate in Mbps. |
|
|
The kind of resources this entry can be assigned. |
7.201.2. inbound_average
The desired average inbound bit rate in Mbps.
Used to configure virtual machines networks. If defined, inbound_peak
and inbound_burst
also has to be set.
See Libvirt-QOS for further details.
7.201.3. inbound_burst
The amount of data that can be delivered in a single burst in MiB.
Used to configure virtual machines networks. If defined, inbound_average
and inbound_peak
also has to be set.
See Libvirt-QOS for further details.
7.201.4. inbound_peak
The maximum inbound rate in Mbps.
Used to configure virtual machines networks. If defined, inbound_average
and inbound_burst
also has to be set.
See Libvirt-QOS for further details.
7.201.5. max_iops
Maximum permitted number of input and output operations per second.
Used to configure storage. Must not be set if max_read_iops
or max_write_iops
is set.
7.201.6. max_read_iops
Maximum permitted number of input operations per second.
Used to configure storage. Must not be set if max_iops
is set.
7.201.7. max_read_throughput
Maximum permitted throughput for read operations.
Used to configure storage. Must not be set if max_throughput
is set.
7.201.8. max_throughput
Maximum permitted total throughput.
Used to configure storage. Must not be set if max_read_throughput
or max_write_throughput
is set.
7.201.9. max_write_iops
Maximum permitted number of output operations per second.
Used to configure storage. Must not be set if max_iops
is set.
7.201.10. max_write_throughput
Maximum permitted throughput for write operations.
Used to configure storage. Must not be set if max_throughput
is set.
7.201.11. outbound_average
The desired average outbound bit rate in Mbps.
Used to configure virtual machines networks. If defined, outbound_peak
and outbound_burst
also has to be set.
See Libvirt-QOS for further details.
7.201.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.201.13. outbound_average_realtime
The committed rate in Mbps.
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.201.14. outbound_average_upperlimit
The maximum bandwidth to be used by a network in Mbps.
Used to configure host networks. If outboundAverageUpperlimit
and outbound_average_realtime
are provided, the
outbound_averageUpperlimit
must not be lower than the outbound_average_realtime
.
See Libvirt-QOS for further details.
7.201.15. outbound_burst
The amount of data that can be sent in a single burst in MiB.
Used to configure virtual machines networks. If defined, outbound_average
and outbound_peak
also has to be
set.
See Libvirt-QOS for further details.
7.201.16. outbound_peak
The maximum outbound rate in Mbps.
Used to configure virtual machines networks. If defined, outbound_average
and outbound_burst
also has to be
set.
See Libvirt-QOS for further details.
Name | Type | Summary |
---|---|---|
|
The data center the QoS is assiciated to. |
7.202. QosType enum
This type represents the kind of resource the Quality of service (QoS) can be assigned to.
Name | Summary |
---|---|
|
The Quality of service (QoS) can be assigned to resources with computing capabilities. |
|
The Quality of service (QoS) can be assigned to host networks. |
|
The Quality of service (QoS) can be assigned to virtual machines networks. |
|
The Quality of service (QoS) can be assigned to storage. |
7.203. Quota struct
Represents a quota object.
An example XML representation of a quota:
<quota href="/ovirt-engine/api/datacenters/7044934e/quotas/dcad5ddc" id="dcad5ddc">
<name>My Quota</name>
<description>A quota for my oVirt environment</description>
<cluster_hard_limit_pct>0</cluster_hard_limit_pct>
<cluster_soft_limit_pct>0</cluster_soft_limit_pct>
<data_center href="/ovirt-engine/api/datacenters/7044934e" id="7044934e"/>
<storage_hard_limit_pct>0</storage_hard_limit_pct>
<storage_soft_limit_pct>0</storage_soft_limit_pct>
</quota>
Name | Type | Summary |
---|---|---|
|
||
|
||
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.204. QuotaClusterLimit struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
7.206. QuotaStorageLimit struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
||
|
7.208. Rate struct
Determines maximum speed of consumption of bytes from random number generator device.
Name | Type | Summary |
---|---|---|
|
Number of bytes allowed to consume per period. |
|
|
Duration of one period in milliseconds. |
7.209. ReportedConfiguration struct
Name | Type | Summary |
---|---|---|
|
||
|
||
|
|
|
|
7.210. ReportedDevice struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
7.213. RngDevice struct
Random number generator (RNG) device model.
Name | Type | Summary |
---|---|---|
|
Determines maximum speed of consumption of bytes from random number generator device. |
|
|
Backend of the random number generator device. |
7.214. RngSource enum
Representing the random generator backend types.
Name | Summary |
---|---|
|
Obtains random data from the |
|
Obtains random data from the |
|
Obtains random data from the |
7.215. Role struct
Represents a system role.
Name | Type | Summary |
---|---|---|
|
Defines the role as administrative-only or not. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
Defines the ability to update or delete the role. |
|
|
A human-readable name in plain text. |
7.216. RoleType enum
Type representing whether a role is administrative or not. A user which was granted at least one administrative role is considered an administrator.
Name | Summary |
---|---|
|
Administrative role. |
|
User role. |
7.217. SchedulingPolicy struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
|
|
Name | Type | Summary |
---|---|---|
|
||
|
||
|
7.218. SchedulingPolicyUnit struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
|
|
||
|
7.220. SeLinux struct
Represents SELinux in the system.
Name | Type | Summary |
---|---|---|
|
SELinux current mode. |
7.221. SeLinuxMode enum
Represents an SELinux enforcement mode.
Name | Summary |
---|---|
|
SELinux is disabled in the kernel. |
|
SELinux is running and enforcing permissions. |
|
SELinux is running and logging but not enforcing permissions. |
7.224. Session struct
Describes a user session to a virtual machine.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
Indicates if this is a console session. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The IP address the user is connected from. |
|
|
A human-readable name in plain text. |
|
|
The protocol used by the session. |
7.224.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.225. SkipIfConnectivityBroken struct
Name | Type | Summary |
---|---|---|
|
If enabled, we will not fence a host in case more than a configurable percentage of hosts in the cluster lost connectivity as well. |
|
|
Threshold for connectivity testing. |
7.226. SkipIfSdActive struct
This type represents the storage related configuration in the fencing policy.
Name | Type | Summary |
---|---|---|
|
If enabled, we will skip fencing in case the host maintains its lease in the storage. |
7.227. Snapshot struct
Represents a snapshot object.
Example XML representation:
<snapshot id="456" href="/ovirt-engine/api/vms/123/snapshots/456">
<actions>
<link rel="restore" href="/ovirt-engine/api/vms/123/snapshots/456/restore"/>
</actions>
<vm id="123" href="/ovirt-engine/api/vms/123"/>
<description>Virtual Machine 1 - Snapshot A</description>
<type>active</type>
<date>2010-08-16T14:24:29</date>
<persist_memorystate>false</persist_memorystate>
</snapshot>
Name | Type | Summary |
---|---|---|
|
Reference to virtual machine’s BIOS configuration. |
|
|
Free text containing comments about this object. |
|
|
Console configured for this virtual machine. |
|
|
The configuration of the virtual machine CPU. |
|
|
||
|
The virtual machine creation date. |
|
|
Virtual machine custom compatibility version. |
|
|
||
|
||
|
Properties sent to VDSM to configure various hooks. |
|
|
The date when this snapshot has been created. |
|
|
If |
|
|
A human-readable description in plain text. |
|
|
The virtual machine display configuration. |
|
|
Domain configured for this virtual machine. |
|
|
Fully qualified domain name of the virtual machine. |
|
|
What operating system is installed on the virtual machine. |
|
|
What time zone is used by the virtual machine (as returned by guest agent). |
|
|
Indicates whether the virtual machine has snapshots with disks in |
|
|
The virtual machine high availability configuration. |
|
|
A unique identifier. |
|
|
Reference to the virtual machine’s initialization configuration. |
|
|
For performance tuning of IO threading. |
|
|
Virtual machine’s large icon. |
|
|
Reference to the storage domain this virtual machine/template lease reside on. |
|
|
The virtual machine’s memory, in bytes. |
|
|
Reference to virtual machine’s memory management configuration. |
|
|
Reference to configuration of migration of running virtual machine to another host. |
|
|
Maximum time the virtual machine can be non responsive during its live migration to another host in ms. |
|
|
A human-readable name in plain text. |
|
|
Virtual machine configuration has been changed and requires restart of the virtual machine. |
|
|
How the NUMA topology is applied. |
|
|
The origin of this virtual machine. |
|
|
Operating system type installed on the virtual machine. |
|
|
Optional payloads of the virtual machine, used for ISOs to configure it. |
|
|
Indicates if the content of the memory of the virtual machine is included in the snapshot. |
|
|
The configuration of the virtual machine’s placement policy. |
|
|
Random Number Generator device configuration for this virtual machine. |
|
|
If |
|
|
Virtual machine’s serial number in a cluster. |
|
|
Virtual machine’s small icon. |
|
|
Status of the snapshot. |
|
|
Type of the snapshot. |
|
|
If |
|
|
Reference to the Single Sign On configuration this virtual machine is configured for. |
|
|
If |
|
|
The date in which the virtual machine was started. |
|
|
If |
|
|
The current status of the virtual machine. |
|
|
Human readable detail of current status. |
|
|
The reason the virtual machine was stopped. |
|
|
The date in which the virtual machine was stopped. |
|
|
The virtual machine’s time zone set by oVirt. |
|
|
If |
|
|
Determines whether the virtual machine is optimized for desktop or server. |
|
|
Configuration of USB devices for this virtual machine (count, type). |
|
|
If |
|
|
Reference to VirtIO SCSI configuration. |
7.227.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
With a request body:
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.227.2. custom_compatibility_version
Virtual machine custom compatibility version.
Enables a virtual machine to be customized to its own compatibility version. If
custom_compatibility_version
is set, it overrides the cluster’s compatibility version
for this particular virtual machine.
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.227.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically restarted when it unexpectedly goes down.
7.227.4. initialization
Reference to the virtual machine’s initialization configuration.
Since oVirt 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
With a request body like this:
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true
will still contain this attribute.
7.227.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.227.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.227.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
With the following request body:
<vm>
<memory>1073741824</memory>
</vm>
Memory in the example is converted to bytes using the following formula: 1 GiB = 230 bytes = 1073741824 bytes. |
Memory hot plug is supported from oVirt 3.6 onwards. You can use the example above to increase memory while the virtual machine is running. |
7.227.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
Set either explicitly for the virtual machine or by engine-config -s DefaultMaximumMigrationDowntime=[value]
7.227.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.227.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.227.11. persist_memorystate
Indicates if the content of the memory of the virtual machine is included in the snapshot.
When a snapshot is created the default value is true
.
7.227.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.
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
With a request body like this:
<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.227.13. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.227.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.227.15. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual machine.
Name | Type | Summary |
---|---|---|
|
Optional. |
|
|
List of applications installed on the virtual machine. |
|
|
Reference to the ISO mounted to the CDROM. |
|
|
Reference to cluster the virtual machine belongs to. |
|
|
Reference to CPU profile used by this virtual machine. |
|
|
References the disks attached to the virtual machine. |
|
|
||
|
Reference to the ISO mounted to the floppy. |
|
|
List of graphics consoles configured for this virtual machine. |
|
|
Reference to the host the virtual machine is running on. |
|
|
References devices associated to this virtual machine. |
|
|
The virtual machine configuration can be optionally predefined via one of the instance types. |
|
|
Lists all the Katello errata assigned to the virtual machine. |
|
|
References the list of network interface devices on the virtual machine. |
|
|
Refers to the NUMA Nodes configuration used by this virtual machine. |
|
|
References the original template used to create the virtual machine. |
|
|
Permissions set for this virtual machine. |
|
|
Reference to quota configuration set for this virtual machine. |
|
|
||
|
List of user sessions opened for this virtual machine. |
|
|
Refers to all snapshots taken from the virtual machine. |
|
|
Statistics data collected from this virtual machine. |
|
|
Reference to storage domain the virtual machine belongs to. |
|
|
||
|
Reference to the template the virtual machine is based on. |
|
|
The virtual machine this snapshot has been taken for. |
|
|
Reference to the pool the virtual machine is optionally member of. |
|
|
Refers to the Watchdog configuration. |
7.227.17. katello_errata
Lists all the Katello errata assigned to the virtual machine.
GET /ovirt-engine/api/vms/123/katelloerrata
You will receive response in XML like this one:
<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.227.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.
Otherwise the template
and original_template
are the same.
7.228. SnapshotStatus enum
Represents the current status of the snapshot.
Name | Summary |
---|---|
|
The snapshot is being previewed. |
|
The snapshot is locked. |
|
The snapshot is OK. |
7.229. SnapshotType enum
Represents the type of the snapshot.
Name | Summary |
---|---|
|
Reference to the current configuration of the virtual machines. |
|
The |
|
Snapshot created by user. |
|
Snapshot created internally for stateless virtual machines. |
7.230. SpecialObjects struct
This type contains references to special objects, such as blank templates and the root of a hierarchy of tags.
Name | Type | Summary |
---|---|---|
|
A reference to a blank template. |
|
|
A reference to the root of a hierarchy of tags. |
7.233. Ssh struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
7.235. SshPublicKey struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
Contains a saved SSH key. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
7.238. Statistic struct
A generic type used for all kinds of statistics.
Statistic contains the statistics values for various entities. The following object contain statistics:
-
Disk
-
Host
-
HostNic
-
NumaNode
-
Nic
-
Vm
-
GlusterBrick
-
Step
-
GlusterVolume
An example of a XML representation:
<statistics>
<statistic id="1234" href="/ovirt-engine/api/hosts/1234/nics/1234/statistics/1234">
<name>data.current.rx</name>
<description>Receive data rate</description>
<values type="DECIMAL">
<value>
<datum>0</datum>
</value>
</values>
<type>GAUGE</type>
<unit>BYTES_PER_SECOND</unit>
<host_nic id="1234" href="/ovirt-engine/api/hosts/1234/nics/1234"/>
</statistic>
...
</statistics>
This statistics sub-collection is read-only. |
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
The type of statistic measures. |
|
|
A human-readable name in plain text. |
|
|
The data type for the statistical values that follow. |
|
|
The unit or rate to measure of the statistical values. |
|
|
A data set that contains |
Name | Type | Summary |
---|---|---|
|
||
|
A relationship to the containing |
|
|
||
|
||
|
A reference to the host NIC. |
|
|
||
|
||
|
||
|
7.240. StatisticUnit enum
Name | Summary |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.241. Step struct
Represents a step, which is part of job
execution.
Step is used to describe and track a specific execution unit which is part of a wider sequence.
Some steps support reporting their progress.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The end time of the step. |
|
|
Indicates if the step is originated by an external system. |
|
|
The external system which is referenced by the step. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
The order of the step in current hierarchy level. |
|
|
The step progress (if reported) in percentages. |
|
|
The start time of the step. |
|
|
The status of the step. |
|
|
The type of the step. |
7.241.1. external
Indicates if the step is originated by an external system. External steps are managed externally, by the creator of the step.
Name | Type | Summary |
---|---|---|
|
The host used for the step execution (optional). |
|
|
References the |
|
|
References the parent step of the current step in the hierarchy. |
|
|
7.242. StepEnum enum
Type representing a step type.
Name | Summary |
---|---|
|
The executing step type. |
|
The finalizing step type. |
|
The |
|
The |
|
The unknown step type. |
|
The validation step type. |
7.242.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.242.2. finalizing
The finalizing step type.
Describes the post-execution steps requires to complete the job
.
7.242.3. rebalancing_volume
The rebalancing volume
step type.
Describes a step type which is part of Gluster
flow.
7.243. StepStatus enum
Represents the status of the step.
Name | Summary |
---|---|
|
The aborted step status. |
|
The failed step status. |
|
The finished step status. |
|
The started step status. |
|
The unknown step status. |
7.243.1. aborted
The aborted step status. This status is applicable for an external step that was forcibly aborted.
7.244. StorageConnection struct
Represents a storage server connection.
Example XML representation:
<storage_connection id="123">
<address>mynfs.example.com</address>
<type>nfs</type>
<path>/exports/mydata</path>
</storage_connection>
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
7.245. StorageConnectionExtension struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
|
|
||
|
||
|
Name | Type | Summary |
---|---|---|
|
7.246. StorageDomain struct
Storage domain.
An XML representation of a NFS storage domain with identifier 123
:
<storage_domain href="/ovirt-engine/api/storagedomains/123" id="123">
<name>mydata</name>
<description>My data</description>
<available>38654705664</available>
<committed>1073741824</committed>
<critical_space_action_blocker>5</critical_space_action_blocker>
<external_status>ok</external_status>
<master>true</master>
<storage>
<address>mynfs.example.com</address>
<nfs_version>v3</nfs_version>
<path>/exports/mydata</path>
<type>nfs</type>
</storage>
<storage_format>v3</storage_format>
<type>data</type>
<used>13958643712</used>
<warning_low_space_indicator>10</warning_low_space_indicator>
<wipe_after_delete>false</wipe_after_delete>
<data_centers>
<data_center href="/ovirt-engine/api/datacenters/456" id="456"/>
</data_centers>
</storage_domain>
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
||
|
||
|
A human-readable description in plain text. |
|
|
Indicates whether disks' blocks on block storage domains will be discarded right before they are deleted. |
|
|
||
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
||
|
||
|
||
|
Indicates whether a block storage domain supports discard operations. |
|
|
Indicates whether a block storage domain supports the property that discard zeroes the data. |
|
|
||
|
||
|
||
|
Serves as the default value of |
7.246.1. 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:
-
It is first wiped.
-
Then its blocks are discarded.
-
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.246.2. 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.
Since the engine cannot check if the underlying block device supports
discard for file storage domains, this attribute will not be reported
for them at all.
7.246.3. supports_discard_zeroes_data
Indicates whether a block storage domain supports the property that
discard zeroes the data.
A storage domain only supports the property that
discard zeroes the data if all of the
logical units that it is built from support it;
that is, if each logical unit’s discard_zeroes_data
value is true.
This is one of the conditions necessary for a virtual disk in this
storage domain to have both wipe_after_delete
and pass_discard
attributes enabled.
Since the engine cannot check if the underlying block device supports
the property that discard zeroes the data for file storage domains,
this attribute will not be reported for them at all.
7.246.4. 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.
Name | Type | Summary |
---|---|---|
|
A link to the data center that the storage domain is attached to. |
|
|
A set of links to the data centers that the storage domain is attached to. |
|
|
||
|
||
|
||
|
||
|
Host is only relevant at creation time. |
|
|
||
|
||
|
||
|
||
|
7.247. StorageDomainLease struct
Represents a lease residing on a storage domain.
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.
Name | Type | Summary |
---|---|---|
|
Reference to the storage domain on which the lock resides on. |
7.248. StorageDomainStatus enum
Name | Summary |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.249. StorageDomainType enum
Indicates the kind of data managed by a storage domain.
Name | Summary |
---|---|
|
Data domains are used to store the disks and snapshots of the virtual machines and templates in the system. |
|
Export domains are temporary storage repositories used to copy and move virtual machines and templates between data centers and oVirt environments. |
|
Image domain store images that can be imported into from an external system. |
|
ISO domains store ISO files (or logical CDs) used to install and boot operating systems and applications for the virtual machines. |
|
Volume domains store logical volumes that can be used as disks for virtual machines. |
7.249.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.249.2. export
Export domains are temporary storage repositories used to copy and move virtual machines and templates between data centers and oVirt 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.249.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.250. StorageFormat enum
Type which represents a format of storage domain.
Name | Summary |
---|---|
|
Version 1 of the storage domain format is applicable to NFS, iSCSI and FC storage domains. |
|
Version 2 of the storage domain format is applicable to iSCSI and FC storage domains. |
|
Version 3 of the storage domain format is applicable to NFS, POSIX, iSCSI and FC storage domains. |
|
Version 4 of the storage domain format. |
7.250.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.250.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.250.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.
7.251. StorageType enum
Type representing a storage domain type.
Name | Summary |
---|---|
|
Cinder storage domain. |
|
Fibre-Channel storage domain. |
|
Glance storage domain. |
|
Gluster-FS storage domain. |
|
iSCSI storage domain. |
|
Storage domain on Local storage. |
|
NFS storage domain. |
|
POSIX-FS storage domain. |
7.251.1. cinder
Cinder storage domain. For more details on Cinder please go to Cinder.
7.251.2. glance
Glance storage domain. For more details on Glance please go to Glance.
7.251.3. glusterfs
Gluster-FS storage domain. For more details on Gluster please go to Gluster.
7.252. SwitchType enum
Describes all switch types supported by the Manager.
Name | Summary |
---|---|
|
The native switch type. |
|
The Open vSwitch type. |
7.253. Tag struct
Represents a tag in the system.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
Reference to the group which has this tag assigned. |
|
|
Reference to the host which has this tag assigned. |
|
|
Reference to the parent tag of this tag. |
|
|
Reference to the template which has this tag assigned. |
|
|
Reference to the user who has this tag assigned. |
|
|
Reference to the virtual machine which has this tag assigned. |
7.254. Template struct
Type representing a virtual machine template. This allows a rapid instanstiation of virtual machines with common configuration and disk states.
Name | Type | Summary |
---|---|---|
|
Reference to virtual machine’s BIOS configuration. |
|
|
Free text containing comments about this object. |
|
|
Console configured for this virtual machine. |
|
|
The configuration of the virtual machine CPU. |
|
|
||
|
The virtual machine creation date. |
|
|
Virtual machine custom compatibility version. |
|
|
||
|
||
|
Properties sent to VDSM to configure various hooks. |
|
|
If |
|
|
A human-readable description in plain text. |
|
|
The virtual machine display configuration. |
|
|
Domain configured for this virtual machine. |
|
|
The virtual machine high availability configuration. |
|
|
A unique identifier. |
|
|
Reference to the virtual machine’s initialization configuration. |
|
|
For performance tuning of IO threading. |
|
|
Virtual machine’s large icon. |
|
|
Reference to the storage domain this virtual machine/template lease reside on. |
|
|
The virtual machine’s memory, in bytes. |
|
|
Reference to virtual machine’s memory management configuration. |
|
|
Reference to configuration of migration of running virtual machine to another host. |
|
|
Maximum time the virtual machine can be non responsive during its live migration to another host in ms. |
|
|
A human-readable name in plain text. |
|
|
The origin of this virtual machine. |
|
|
Operating system type installed on the virtual machine. |
|
|
Random Number Generator device configuration for this virtual machine. |
|
|
Virtual machine’s serial number in a cluster. |
|
|
Virtual machine’s small icon. |
|
|
If |
|
|
Reference to the Single Sign On configuration this virtual machine is configured for. |
|
|
If |
|
|
If |
|
|
The status of the template. |
|
|
The virtual machine’s time zone set by oVirt. |
|
|
If |
|
|
Determines whether the virtual machine is optimized for desktop or server. |
|
|
Configuration of USB devices for this virtual machine (count, type). |
|
|
Indicates whether this is a base version or a sub version of another template. |
|
|
Reference to VirtIO SCSI configuration. |
|
|
The virtual machine configuration associated with this template. |
7.254.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
With a request body:
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.254.2. custom_compatibility_version
Virtual machine custom compatibility version.
Enables a virtual machine to be customized to its own compatibility version. If
custom_compatibility_version
is set, it overrides the cluster’s compatibility version
for this particular virtual machine.
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.254.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically restarted when it unexpectedly goes down.
7.254.4. initialization
Reference to the virtual machine’s initialization configuration.
Since oVirt 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
With a request body like this:
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true
will still contain this attribute.
7.254.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.254.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.254.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
With the following request body:
<vm>
<memory>1073741824</memory>
</vm>
Memory in the example is converted to bytes using the following formula: 1 GiB = 230 bytes = 1073741824 bytes. |
Memory hot plug is supported from oVirt 3.6 onwards. You can use the example above to increase memory while the virtual machine is running. |
7.254.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
Set either explicitly for the virtual machine or by engine-config -s DefaultMaximumMigrationDowntime=[value]
7.254.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.254.10. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.254.11. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be automatically signed in the virtual machine’s operating system when console is opened.
Name | Type | Summary |
---|---|---|
|
References to the CD-ROM devices attached to the template. |
|
|
Reference to cluster the virtual machine belongs to. |
|
|
Reference to CPU profile used by this virtual machine. |
|
|
References to the disks attached to the template. |
|
|
References to the graphic consoles attached to the template. |
|
|
References to the network interfaces attached to the template. |
|
|
References to the user permissions attached to the template. |
|
|
Reference to quota configuration set for this virtual machine. |
|
|
Reference to storage domain the virtual machine belongs to. |
|
|
References to the tags attached to the template. |
|
|
References to the watchdog devices attached to the template. |
7.255. TemplateStatus enum
Type representing a status of a virtual machine template.
Name | Summary |
---|---|
|
This status indicates that at least one of the disks of the template is illegal. |
|
This status indicates that some operation that prevents other operations with the template is being executed. |
|
This status indicates that the template is valid and ready for use. |
7.256. TemplateVersion struct
Type representing a version of a virtual machine template.
Name | Type | Summary |
---|---|---|
|
The name of this version. |
|
|
The index of this version in the versions hierarchy of the template. |
7.256.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.
Name | Type | Summary |
---|---|---|
|
References the template that this version is associated with. |
7.257. Ticket struct
Type representing a ticket that allows virtual machine access.
Name | Type | Summary |
---|---|---|
|
Time to live for the ticket in seconds. |
|
|
The virtual machine access ticket. |
7.258. TimeZone struct
Time zone representation.
Name | Type | Summary |
---|---|---|
|
Name of the time zone. |
|
|
Offset from https://en. |
7.258.1. utc_offset
Offset from UTC.
7.259. TransparentHugePages struct
Type representing a transparent huge pages (THP) support.
Name | Type | Summary |
---|---|---|
|
Enable THP support. |
7.260. TransportType enum
Protocol used to access a Gluster volume.
Name | Summary |
---|---|
|
Remote direct memory access. |
|
TCP. |
7.261. UnmanagedNetwork struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
||
|
7.262. Usb struct
Configuration of the USB device of a virtual machine.
Name | Type | Summary |
---|---|---|
|
Determines whether the USB device should be included or not. |
|
|
USB type, currently only |
7.263. UsbType enum
Type of USB device redirection.
Name | Summary |
---|---|
|
Legacy USB redirection. |
|
Native USB redirection. |
7.263.1. legacy
Legacy USB redirection.
This USB type has been deprecated since version 3.6 of the engine, and has been completely removed in version
4.1. It is preserved only to avoid syntax errors in existing scripts. If it is used it will be automatically
replaced by native
.
7.263.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.
7.264. User struct
Represents a user in the system.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
||
|
||
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
Namespace where the user resides. |
|
|
||
|
Similar to |
|
|
The user’s username. |
7.264.1. namespace
Namespace where the user resides. When using the authorization provider that stores users in the LDAP server, this attribute equals the naming context of the LDAP server. See 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.264.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.264.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.
Name | Type | Summary |
---|---|---|
|
||
|
||
|
||
|
A link to the roles sub-collection for user resources. |
|
|
||
|
A link to the tags sub-collection for user resources. |
7.268. Vendor struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
A human-readable name in plain text. |
7.269. Version struct
Name | Type | Summary |
---|---|---|
|
||
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
||
|
||
|
A human-readable name in plain text. |
|
|
7.270. VirtioScsi struct
Type representing the support of virtio-SCSI. If it supported we use virtio driver for SCSI guest device.
Name | Type | Summary |
---|---|---|
|
Enable Virtio SCSI support. |
7.271. VirtualNumaNode struct
Represents the virtual NUMA node.
An example XML representation:
<vm_numa_node href="/ovirt-engine/api/vms/123/numanodes/456" id="456">
<cpu>
<cores>
<core>
<index>0</index>
</core>
</cores>
</cpu>
<index>0</index>
<memory>1024</memory>
<numa_node_pins>
<numa_node_pin>
<index>0</index>
</numa_node_pin>
</numa_node_pins>
<vm href="/ovirt-engine/api/vms/123" id="123" />
</vm_numa_node>
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
||
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
||
|
Memory of the NUMA node in MB. |
|
|
A human-readable name in plain text. |
|
|
||
|
Name | Type | Summary |
---|---|---|
|
||
|
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific statistics. |
|
|
7.271.1. statistics
Each host NUMA node resource exposes a statistics sub-collection for host NUMA node specific statistics.
An example of an XML representation:
<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>
This statistics sub-collection is read-only. |
The following list shows the statistic types for a host NUMA node:
Name | Description |
---|---|
|
Total memory in bytes on the NUMA node. |
|
Memory in bytes used on the NUMA node. |
|
Memory in bytes free on the NUMA node. |
|
Percentage of CPU usage for user slice. |
|
Percentage of CPU usage for system. |
|
Percentage of idle CPU usage. |
7.272. Vlan struct
Type representing a Virtual LAN (VLAN) type.
Name | Type | Summary |
---|---|---|
|
Virtual LAN ID. |
7.273. Vm struct
Represents a virtual machine.
Name | Type | Summary |
---|---|---|
|
Reference to virtual machine’s BIOS configuration. |
|
|
Free text containing comments about this object. |
|
|
Console configured for this virtual machine. |
|
|
The configuration of the virtual machine CPU. |
|
|
||
|
The virtual machine creation date. |
|
|
Virtual machine custom compatibility version. |
|
|
||
|
||
|
Properties sent to VDSM to configure various hooks. |
|
|
If |
|
|
A human-readable description in plain text. |
|
|
The virtual machine display configuration. |
|
|
Domain configured for this virtual machine. |
|
|
Fully qualified domain name of the virtual machine. |
|
|
What operating system is installed on the virtual machine. |
|
|
What time zone is used by the virtual machine (as returned by guest agent). |
|
|
Indicates whether the virtual machine has snapshots with disks in |
|
|
The virtual machine high availability configuration. |
|
|
A unique identifier. |
|
|
Reference to the virtual machine’s initialization configuration. |
|
|
For performance tuning of IO threading. |
|
|
Virtual machine’s large icon. |
|
|
Reference to the storage domain this virtual machine/template lease reside on. |
|
|
The virtual machine’s memory, in bytes. |
|
|
Reference to virtual machine’s memory management configuration. |
|
|
Reference to configuration of migration of running virtual machine to another host. |
|
|
Maximum time the virtual machine can be non responsive during its live migration to another host in ms. |
|
|
A human-readable name in plain text. |
|
|
Virtual machine configuration has been changed and requires restart of the virtual machine. |
|
|
How the NUMA topology is applied. |
|
|
The origin of this virtual machine. |
|
|
Operating system type installed on the virtual machine. |
|
|
Optional payloads of the virtual machine, used for ISOs to configure it. |
|
|
The configuration of the virtual machine’s placement policy. |
|
|
Random Number Generator device configuration for this virtual machine. |
|
|
If |
|
|
Virtual machine’s serial number in a cluster. |
|
|
Virtual machine’s small icon. |
|
|
If |
|
|
Reference to the Single Sign On configuration this virtual machine is configured for. |
|
|
If |
|
|
The date in which the virtual machine was started. |
|
|
If |
|
|
The current status of the virtual machine. |
|
|
Human readable detail of current status. |
|
|
The reason the virtual machine was stopped. |
|
|
The date in which the virtual machine was stopped. |
|
|
The virtual machine’s time zone set by oVirt. |
|
|
If |
|
|
Determines whether the virtual machine is optimized for desktop or server. |
|
|
Configuration of USB devices for this virtual machine (count, type). |
|
|
If |
|
|
Reference to VirtIO SCSI configuration. |
7.273.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
With a request body:
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.273.2. custom_compatibility_version
Virtual machine custom compatibility version.
Enables a virtual machine to be customized to its own compatibility version. If
custom_compatibility_version
is set, it overrides the cluster’s compatibility version
for this particular virtual machine.
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.273.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically restarted when it unexpectedly goes down.
7.273.4. initialization
Reference to the virtual machine’s initialization configuration.
Since oVirt 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
With a request body like this:
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true
will still contain this attribute.
7.273.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.273.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.273.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
With the following request body:
<vm>
<memory>1073741824</memory>
</vm>
Memory in the example is converted to bytes using the following formula: 1 GiB = 230 bytes = 1073741824 bytes. |
Memory hot plug is supported from oVirt 3.6 onwards. You can use the example above to increase memory while the virtual machine is running. |
7.273.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
Set either explicitly for the virtual machine or by engine-config -s DefaultMaximumMigrationDowntime=[value]
7.273.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.273.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.273.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.
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
With a request body like this:
<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.273.12. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.273.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.273.14. stop_reason
The reason the virtual machine was stopped. Optionally set by user when shutting down the virtual machine.
Name | Type | Summary |
---|---|---|
|
Optional. |
|
|
List of applications installed on the virtual machine. |
|
|
Reference to the ISO mounted to the CDROM. |
|
|
Reference to cluster the virtual machine belongs to. |
|
|
Reference to CPU profile used by this virtual machine. |
|
|
References the disks attached to the virtual machine. |
|
|
||
|
Reference to the ISO mounted to the floppy. |
|
|
List of graphics consoles configured for this virtual machine. |
|
|
Reference to the host the virtual machine is running on. |
|
|
References devices associated to this virtual machine. |
|
|
The virtual machine configuration can be optionally predefined via one of the instance types. |
|
|
Lists all the Katello errata assigned to the virtual machine. |
|
|
References the list of network interface devices on the virtual machine. |
|
|
Refers to the NUMA Nodes configuration used by this virtual machine. |
|
|
References the original template used to create the virtual machine. |
|
|
Permissions set for this virtual machine. |
|
|
Reference to quota configuration set for this virtual machine. |
|
|
||
|
List of user sessions opened for this virtual machine. |
|
|
Refers to all snapshots taken from the virtual machine. |
|
|
Statistics data collected from this virtual machine. |
|
|
Reference to storage domain the virtual machine belongs to. |
|
|
||
|
Reference to the template the virtual machine is based on. |
|
|
Reference to the pool the virtual machine is optionally member of. |
|
|
Refers to the Watchdog configuration. |
7.273.16. katello_errata
Lists all the Katello errata assigned to the virtual machine.
GET /ovirt-engine/api/vms/123/katelloerrata
You will receive response in XML like this one:
<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.273.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.
Otherwise the template
and original_template
are the same.
7.275. VmBase struct
Represents basic virtual machine configuration. This is used by virtual machines, templates and instance types.
Name | Type | Summary |
---|---|---|
|
Reference to virtual machine’s BIOS configuration. |
|
|
Free text containing comments about this object. |
|
|
Console configured for this virtual machine. |
|
|
The configuration of the virtual machine CPU. |
|
|
||
|
The virtual machine creation date. |
|
|
Virtual machine custom compatibility version. |
|
|
||
|
||
|
Properties sent to VDSM to configure various hooks. |
|
|
If |
|
|
A human-readable description in plain text. |
|
|
The virtual machine display configuration. |
|
|
Domain configured for this virtual machine. |
|
|
The virtual machine high availability configuration. |
|
|
A unique identifier. |
|
|
Reference to the virtual machine’s initialization configuration. |
|
|
For performance tuning of IO threading. |
|
|
Virtual machine’s large icon. |
|
|
Reference to the storage domain this virtual machine/template lease reside on. |
|
|
The virtual machine’s memory, in bytes. |
|
|
Reference to virtual machine’s memory management configuration. |
|
|
Reference to configuration of migration of running virtual machine to another host. |
|
|
Maximum time the virtual machine can be non responsive during its live migration to another host in ms. |
|
|
A human-readable name in plain text. |
|
|
The origin of this virtual machine. |
|
|
Operating system type installed on the virtual machine. |
|
|
Random Number Generator device configuration for this virtual machine. |
|
|
Virtual machine’s serial number in a cluster. |
|
|
Virtual machine’s small icon. |
|
|
If |
|
|
Reference to the Single Sign On configuration this virtual machine is configured for. |
|
|
If |
|
|
If |
|
|
The virtual machine’s time zone set by oVirt. |
|
|
If |
|
|
Determines whether the virtual machine is optimized for desktop or server. |
|
|
Configuration of USB devices for this virtual machine (count, type). |
|
|
Reference to VirtIO SCSI configuration. |
7.275.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
With a request body:
<vm>
<cpu>
<topology>
<sockets>4</sockets>
<cores>2</cores>
<threads>2</threads>
</topology>
</cpu>
</vm>
7.275.2. custom_compatibility_version
Virtual machine custom compatibility version.
Enables a virtual machine to be customized to its own compatibility version. If
custom_compatibility_version
is set, it overrides the cluster’s compatibility version
for this particular virtual machine.
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.275.3. high_availability
The virtual machine high availability configuration. If set, the virtual machine will be automatically restarted when it unexpectedly goes down.
7.275.4. initialization
Reference to the virtual machine’s initialization configuration.
Since oVirt 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
With a request body like this:
<vm>
<initialization/>
</vm>
The response to such a request, and requests with the header All-Content: true
will still contain this attribute.
7.275.5. large_icon
Virtual machine’s large icon. Either set by user or refers to image set according to operating system.
7.275.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.275.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
With the following request body:
<vm>
<memory>1073741824</memory>
</vm>
Memory in the example is converted to bytes using the following formula: 1 GiB = 230 bytes = 1073741824 bytes. |
Memory hot plug is supported from oVirt 3.6 onwards. You can use the example above to increase memory while the virtual machine is running. |
7.275.8. migration_downtime
Maximum time the virtual machine can be non responsive during its live migration to another host in ms.
Set either explicitly for the virtual machine or by engine-config -s DefaultMaximumMigrationDowntime=[value]
7.275.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.275.10. small_icon
Virtual machine’s small icon. Either set by user or refers to image set according to operating system.
7.275.11. sso
Reference to the Single Sign On configuration this virtual machine is configured for. The user can be automatically signed in the virtual machine’s operating system when console is opened.
Name | Type | Summary |
---|---|---|
|
Reference to cluster the virtual machine belongs to. |
|
|
Reference to CPU profile used by this virtual machine. |
|
|
Reference to quota configuration set for this virtual machine. |
|
|
Reference to storage domain the virtual machine belongs to. |
7.277. VmPlacementPolicy struct
Name | Type | Summary |
---|---|---|
|
Name | Type | Summary |
---|---|---|
|
7.278. VmPool struct
Type represeting a virtual machines pool.
Name | Type | Summary |
---|---|---|
|
Indicates if the pool should automatically distribute the disks of the virtual machines across the multiple storage domains where the template is copied. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
The display settings configured for virtual machines in the pool. |
|
|
A unique identifier. |
|
|
The maximum number of virtual machines in the pool that could be assigned to a particular user. |
|
|
A human-readable name in plain text. |
|
|
The system attempts to prestart the specified number of virtual machines from the pool. |
|
|
The random number generator device configured for virtual machines in the pool. |
|
|
The number of virtual machines in the pool. |
|
|
Indicates if sound card should be configured for virtual machines in the pool. |
|
|
Virtual machine pool’s stateful flag. |
|
|
The deallocation policy of virtual machines in the pool. |
|
|
Indicates if virtual machines in the pool are updated to newer versions of the template the pool is based on. |
7.278.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.278.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.278.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.
Name | Type | Summary |
---|---|---|
|
Reference to the cluster the pool resides in. |
|
|
Reference to the instance type on which this pool is based. |
|
|
Permissions set for this virtual machine pool. |
|
|
Reference to the template the pool is based on. |
|
|
Reference to an arbitrary virtual machine that is part of the pool. |
7.279. VmPoolType enum
Type represeting the deallocation policy of virtual machines in a virtual machines pool.
Name | Summary |
---|---|
|
This policy indicates that virtual machines in the pool are automcatically deallocated by the system. |
|
This policy indicates that virtual machines in the pool are deallocated manually by the administrator. |
7.279.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.279.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.
7.280. VmStatus enum
Type represeting a status of a virtual machine.
Name | Summary |
---|---|
|
This status indicates that the virtual machine process is not running. |
|
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. |
|
This status indicates that the virtual machine process is running and the virtual machine is being migrated from one host to another. |
|
This status indicates that the hypervisor detected that the virtual machine is not responding. |
|
This status indicates that the virtual machine process is running and the virtual machine is paused. |
|
This status indicates that the virtual machine process is running and it is about to stop running. |
|
This status indicates that the virtual machine process is running and the guest operating system is being loaded. |
|
This status indicates that the virtual machine process is running and the guest operating system is being rebooted. |
|
This status indicates that the virtual machine process is about to run and the virtual machine is going to awake from hibernation. |
|
This status indicates that the virtual machine process is running and the virtual machine is being hibernated. |
|
This status indicates that the virtual machine process is not running and a running state of the virtual machine was saved. |
|
This status is set when an invalid status is received. |
|
This status indicates that the system failed to determine the status of the virtual machine. |
|
This status indicates that the virtual machine process is running and the guest operating system is loaded. |
|
This status indicates that the virtual machine process is about to run. |
7.280.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.280.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.280.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.280.4. saving_state
This status indicates that the virtual machine process is running and the virtual machine is being hibernated. In this status, the running state of the virtual machine is being saved. Note that this status does not mean that the guest operating system is being hibernated.
7.280.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.280.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.281. VmSummary struct
Type containing information related to virtual machines on a particular host.
Name | Type | Summary |
---|---|---|
|
The number of virtual machines active on the host. |
|
|
The number of virtual machines migrating to or from the host. |
|
|
The number of virtual machines present on the host. |
7.282. VmType enum
Type representing what the virtual machine is optimized for.
Name | Summary |
---|---|
|
The virtual machine is intended to be used as a desktop. |
|
The virtual machine is intended to be used as a server. |
7.283. VnicPassThrough struct
Name | Type | Summary |
---|---|---|
|
Defines whether the vNIC will be implemented as a virtual device, or as a pass-through to a host device. |
7.284. VnicPassThroughMode enum
Describes whether the vNIC is to be implemented as a pass-through device or a virtual one.
Name | Summary |
---|---|
|
To be implemented as a virtual device. |
|
To be implemented as a pass-through device. |
7.285. VnicProfile struct
A vNIC profile is a collection of settings that can be applied to individual NIC.
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
Custom properties applied to the vNIC profile. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
Marks whether |
|
|
A human-readable name in plain text. |
|
|
Enables passthrough to an SR-IOV-enabled host NIC. |
|
|
Enables port mirroring. |
7.285.1. migratable
Marks whether pass_through
NIC is migratable or not.
If pass_through.mode
is set to disabled
this option has no meaning, and it will be considered to be true
.
If you omit this option from a request, by default, this will be set to true
.
When migrating a virtual machine, this virtual machine will be migrated only if all pass_through
NICs are
flagged as migratable
.
7.285.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.285.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.
Port mirroring has the following limitations:
-
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.
Enabling port mirroring reduces the privacy of other network users. |
Name | Type | Summary |
---|---|---|
|
Reference to the network that the vNIC profile is applied to. |
|
|
Reference to the top-level network filter that applies to the NICs that use this profile. |
|
|
Permissions to allow usage of the vNIC profile. |
|
|
Reference to the quality of service attributes to apply to the vNIC profile. |
7.285.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.286. VnicProfileMapping struct
Maps an external virtual NIC profile to one that exists in the oVirt Engine.
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 |
---|---|---|
|
|
|
|
|
|
It should be expressed in the following form:
<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>
Name | Type | Summary |
---|---|---|
|
Specifies the name of the external network. |
|
|
Specifies the name of the external network profile. |
Name | Type | Summary |
---|---|---|
|
Points to an existing virtual NIC profile. |
7.288. Watchdog struct
This type represents a watchdog configuration.
Name | Type | Summary |
---|---|---|
|
Watchdog action to be performed when watchdog is triggered. |
|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
A unique identifier. |
|
|
Model of watchdog device. |
|
|
A human-readable name in plain text. |
7.288.1. model
Model of watchdog device. Currently supported only I6300ESB.
Name | Type | Summary |
---|---|---|
|
Optionally references to an instance type the device is used by. |
|
|
Optionally references to a template the device is used by. |
|
|
Don’t use this element, use |
|
|
References to the virtual machines that are using this device. |
7.289. WatchdogAction enum
This type describes available watchdog actions.
Name | Summary |
---|---|
|
Virtual machine process will get core dumped to the default path on the host. |
|
No action will be performed when watchdog action is triggered. |
|
Virtual machine will be paused when watchdog action is triggered. |
|
Virtual machine will be powered off when watchdog action is triggered. |
|
Virtual machine will be rebooted when watchdog action is triggered. |
7.290. WatchdogModel enum
This type represents the watchdog model.
Name | Summary |
---|---|
|
Currently only model supported is model I6300ESB. |
7.291. Weight struct
Name | Type | Summary |
---|---|---|
|
Free text containing comments about this object. |
|
|
A human-readable description in plain text. |
|
|
||
|
A unique identifier. |
|
|
A human-readable name in plain text. |
Name | Type | Summary |
---|---|---|
|
||
|
Appendix A: Primitive types
This section describes the primitive data types supported by the API.
A.1. String primitive
A finite sequence of Unicode characters.
A.2. Boolean primitive
Represents the false and true concepts used in mathematical logic.
The valid values are the strings false
and true
.
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.
A.3. Integer primitive
Represents the mathematical concept of integer number.
The valid values are finite sequences of decimal digits.
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
-
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).
In the future the integer type will be implemented using unlimited precission integers, so the above limitations and exceptions will eventually disappear. |
A.4. Decimal primitive
Represents the mathematical concept of real number.
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
In the future the decimal type will be implemented using unlimited precision decimal numbers, so the above limitations and exceptions will eventually disappear. |
A.5. Date primitive
Represents a date and time.
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
The response body will contain the following XML document:
<vm id="123" href="/ovirt-engine/api/vms/123">
...
<creation_time>2016-09-08T09:53:35.138+02:00</creation_time>
...
</vm>
When requesting the JSON representation the engine uses a different, format: an integer containing the number of seconds since Jan 1st 1970, also know as epoch time. For example, if you send a request like this to retrieve the JSON representation of a virtual machine:
GET /ovirt-engine/api/vms/123
Accept: application/json
The response body will contain the following JSON document:
{
"id": "123",
"href="/ovirt-engine/api/vms/123",
...
"creation_time": 1472564909990,
...
}
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. |
Appendix B: Changes in version 4 of the API
This section enumerates the backwards compatibility breaking changes that have been introduced in version 4 of the API.
B.2. Renamed complex types
The following XML schema complex types have been renamed:
Version 3 | Version 4 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B.3. Replaced the Status
type with enum types
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>
B.4. Remove the NIC network
and port_mirroring
properties
The NIC network
and port_mirroring
elements have been replaced by
the vnic_profile
element, so when creating or updating a NIC instead
of specifying the network and port mirroring configuration, these are
previusly specified creating a vNIC profile:
POST /ovirt-engine/api/vnicprofiles
<vnic_profile>
<name>myprofile</name>
<network id="..."/>
<port_mirroring>true</port_mirroring>
</vnic_profile>
And then the NIC is created or referencing the existing vNIC profile:
PUT /ovirt-engine/api/vms/123/nics/456
<nic>
<vnic_profile id="/vnicprofiles/...">
</nic>
The old elements and their meaning were preserved for backwards compatibility, but they have now been completely removed.
Note that the network
element hasn’t been removed from the XML schema
because it is still used by the initialization
element, but it will be
completely ignored if provided when creating or updating a NIC.
B.5. Remove the NIC active
property
The NIC active
property was replaced by plugged
some time ago. It
has been completely removed now.
B.6. Remove the disk type
property
The type
property of disks has been removed, but kept in the XML
schema and ignored. It has been completely removed now.
B.7. Remove the disk size
property
The disk size
property has been replaced by provisioned_size
long
ago. It has been completely removed now.
B.8. Removed support for pinning a VM to a single host
Before version 3.6 the API had the possibility to pin a VM to a single
host, using the placement_policy
element of the VM entity:
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.
B.9. Removed the capabilities.permits
element
The list of permits is potentiall different for each cluster level, and
it has been added to the version
element long ago, but it has been
kept into the capabilities
element as well, just for backwards
compatibility.
In 4.0 it the capabilities
service has been completely removed, and
replaced by the new clusterlevels
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:
<cluster_level id="4.0" href="/clusterlevels/4.0">
...
<permits>
<permit id="1">
<name>create_vm</name>
<administrative>false</administrative>
</permit>
...
</permits>
</cluster_level>
B.10. Removed the storage_manager
element
The storage_manager
element was replaced by the spm
element some
time ago. The old one was kept for backwards compatibility, but it has
been completely removed now.
B.11. Removed the data center storage_type
element
Data centers used to be associated to a specific storage type (NFS,
Fiber Channel, iSCSI, etc) but they have been changed some time so that
there are only two types: with local storage and with shared storage. A
new local
element was introduced to indicate this, and the old
storage_type
was element was preserved for backwards compatibility.
This old element has now been completely removed.
B.12. Remove the timezone
element
The VM resource used to contain a timezone
element to represent the
time zone. This element only allowed a string:
<vm>
<timezone>Europe/Madrid</timezone>
</vm>
This doesn’t allow extension, and as a it was necessary to add the UTC
offset, it was replaced with a new structured time_zone
element:
<vm>
<time_zone>
<name>Europe/Madrid</name>
<utc_offset>GMT+1</utc_offset>
</time_zone>
</vm>
The old timezone
element was preserved, but it has been completely
removed now.
B.13. Removed the guest_info
element
The guest_info
element was used to hold information gathered by the
guest agent, like the IP addresses and the fully qualified host name.
This information is also available in other places. For example, the IP
addresses are available within VM resource:
GET /ovirt-engine/api/vms/123
<vm>
<guest_info>
<ips>
<ip address="192.168.122.30"/>
</ips>
<fqdn>myvm.example.com</fqdn>
</guest_info>
</vm>
And also within the NIC resource, using the newer reported_devices
element:
GET /ovirt-engine/api/vms/{vm:id}/nics/{nic:id}
<nic>
<reported_devices>
<reported_device>
<name>eth0</name>
<mac address="00:1a:4a:b5:4c:94"/>
<ips>
<ip address="192.168.1.115" version="v4"/>
<ip address="fe80::21a:4aff:feb5:4c94" version="v6"/>
<ip address="::1:21a:4aff:feb5:4c94" version="v6"/>
</ips>
</reported_device>
</reported_devices>
</nic>
In addition this newer reported_devices
element provides more complete
information, like multiple IP addresses, MAC addresses, etc.
To remove this duplication the guest_info
element has been removed.
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.
B.14. Replaced CPU id
attribute with type
element
The cpu
element used to have an id
attribute that indicates the type
of CPU:
<cpu id="Intel Conroe Family">
<architecture>X86_64</architecture>
...
</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>
B.15. Use elements instead of attributes in CPU topology
In the past the CPU topology element used attributes for its properties:
<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>
B.16. Use elements instead of attributes in VCPU pin
In the past the VCPU pin element used attributes for its properties:
<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>
B.17. Use elements instead of attributes in VCPU pin
In the past the version
element used attributes for its properties:
<version major="3" minor="5" ../>
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>
B.18. Use elements instead of attributes in memory overcommit
In the past the overcommit
element used attributes for its properties:
<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>
B.19. Use elements instead of attributes in console
In the past the console
element used attributes for its properties:
<console enabled="true"/>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<console>
<enabled>true</enabled>
</console>
B.20. Use elements instead of attributes in VIRTIO SCSI
In the past the VIRTIO ISCSI element used attributes for its properties:
<virtio_scsi enabled="true"/>
This is contrary to the common practice in the API. They have been replaced by inner elements:
<virtio_scsi>
<enabled>true</enabled>
</virtio_scsi>
B.21. Use element instead of attribute for power management agent type
The power management type
property was represented as an attribute:
<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>
B.22. Use elements instead of attributes in power management agent options
In the past the power management agent options element used attributes for its properties:
<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>
B.23. Use elements instead of attributes in IP address:
In the past the IP address element used attributes for its properties:
<ip address="192.168.122.1" netmask="255.255.255.0"/>
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>
B.24. Use elements instead of attributes in MAC address:
In the past the MAC address element used attributes for its properties:
<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>
B.25. Use elements instead of attributes in boot device:
In the past the boot device element used attributes for its properties:
<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>
B.26. Use element instead of attribute for operating system type
The operating system type
property was represented as an attribute:
<os type="other">
...
</os>
This is contrary to the common practice in the API. It has been replaced with an inner element:
<os>
<type>other</type>
...
</os>
B.27. Removed the force
parameter from the request to retrieve a host
The request to retrieve a host used to support a force
matrix
parameter to indicate that the data of the host should be refreshed
(calling VDSM to reload host capabilities and devices) before retrieving
it from the database:
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/>
And then one to retrieve it, without the force
parameter:
GET /ovirt-engine/api/hosts/123
B.28. Removed deprecated host power management configuration
The host power management configuration used to be part of the host resource, using embedded configuration elements:
<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.
B.29. Use multiple boot.devices.device
instead of multiple boot
In the past the way to specify the boot sequence when starting a virtual
machine was to use multiple boot
elements, each containing a dev
element. For example, to specify that the virtual machine should first
try to boot from CDROM and then from hard disk the following request was
used:
POST /ovirt-engine/api/vms/123/start
<action>
<vm>
...
<boot>
<dev>cdrom</dev>
</boot>
<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>
B.30. Removed the disks.clone
and disks.detach_only
elements
These elements aren’t really part of the representation of disks, but parameters of the operations to add and remove virtual machines.
The disks.clone
element was used to indicate that the disks of a new
virtual machine have to be cloned:
POST /ovirt-engine/api/vms
<vm>
...
<disks>
<clone>true</clone>
</disks>
<vm>
This has been now removed, and replaced by a new clone
query parameter:
POST /ovirt-engine/api/vms?clone=true
<vm>
...
</vm>
The disks.detach_only
element was used to indicate that when removing
a virtual machine the disks 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
B.31. Rename element vmpool
to vm_pool
The names of the elements that represent pools of virtual machines used
to be vmpool
and vmpools
. They have been renamed to vm_pool
and
vm_pools
in order to have a consistent correspondence between names of
complex types (VmPool
and VmPools
in this case) and elements.
B.32. Use logical_units
instead of multiple logical_unit
The logical units that are part of a volume group used to be reported as
an unbounded number of logical_unit
elements. For example, when
reporting the details of a storage domain:
GET /ovirt-engine/api/storagedomains/123
<storage_domain>
...
<storage>
...
<volume_group>
<logical_unit>
<!-- First LU -->
</logical_unit>
<logical_unit>
<!-- Second LU -->
</logical_unit>
...
</volume_group>
</storage>
</storage_domain>
This is contrary to the usual practice in the API, as list of elements
are always wrapped with an element. This has been fixed now, so the list
of logical units will be wrapped with the logical_units
element:
GET /ovirt-engine/api/storagedomains/123
<storage_domain>
...
<storage>
...
<volume_group>
<logical_units>
<logical_unit>
<!-- First LU -->
</logical_unit>
<logical_unit>
<!-- Second LU -->
</logical_unit>
...
</logical_units>
</volume_group>
</storage>
</storage_domain>
B.33. Removed the snapshots.collapse_snapshots
element
This element isn’t really part of the representation of snapshots, but a parameter of the operation that imports a virtual machine from an export storage domain:
POST /ovirt-engine/api/storagedomains/123/vms/456/import
<action>
<vm>
<snapshots>
<collapse_snapshots>true</collapse_snapshots>
</snapshots>
</vm>
</action>
This has been now removed, and replaced by a new collapse_snapshots
query parameter:
POST /ovirt-engine/api/storagedomains/123/vms/456/import?collapse_snapshots=true
<action/>
B.34. Renamed storage
and host_storage
elements
The host storage collection used the storage
and host_storage
elements and the Storage
and HostStorage
complex types to report the
storage associated to a host:
GET /ovirt-engine/api/hosts/123/storage
<host_storage>
<storage>
...
</storage>
<storage>
...
</storage>
...
</host_storage>
This doesn’t follow the pattern used in the rest of the API, where the
outer element is a plural name and 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>
B.35. Removed the permissions.clone
element
This element isn’t really part of the representation of permissions, but a parameter of the operations to create virtual machines or templates:
POST /ovirt-engine/api/vms
<vm>
<template id="...">
<permissions>
<clone>true</clone>
</permissions>
</template>
</action>
POST /ovirt-engine/api/templates
<template>
<vm id="...">
<permissions>
<clone>true</clone>
</permissions>
</vm>
</template>
This has been now removed, and replaced by a new clone_permissions
query parameter:
POST /ovirt-engine/api/vms?clone_permissions=true
<vm>
<template id="..."/>
</vm>
POST /ovirt-engine/api/templates?clone_permissions=true
<template>
<vm id="..."/>
</template>
B.36. Renamed the random number generator source
elements
The random number generator sources used to be reported using a
collection of source
elements wrapped by an element with a name
reflecting its use. For example, the required random number generator
sources of a cluster used to be reported as follows:
GET /ovirt-engine/api/clusters/123
<cluster>
...
<required_rng_sources>
<source>random</source>
</required_rng_sources>
...
</cluster>
And the random number generator sources suported by a host used to be reported as follows:
GET /ovirt-engine/api/hosts/123
<host>
...
<hardware_information>
<supported_rng_sources>
<source>random</source>
</supported_rng_sources>
</hardware_information>
...
</host>
This isn’t consistent with the rest of the API, where collections are wrapped by a name in plural and elements by the same name in singular. This has been now fixed. The required random number generator sources will now be reported as follows:
GET /ovirt-engine/api/clusters/123
<cluster>
<required_rng_sources>
<required_rng_sources>random</required_rng_source>
</required_rng_sources>
...
</cluster>
And the random number generator sources supported by a host will be reported as follows:
GET /ovirt-engine/api/hosts/123
<host>
...
<hardware_information>
<supported_rng_sources>
<supported_rng_source>random</supported_rng_source>
</supported_rng_sources>
</hardware_information>
...
</host>
Note the use of required_rng_source
and supported_rng_source
instead
of just source
.
B.37. Removed the intermediate tag.parent
element
The relationship bettween a tag and it’s parent tag used to be
represented using an intermedite parent
tag, that in turn contains
another tag
element:
<tag>
<name>mytag</name>
<parent>
<tag id="..." href="..."/>
</parent>
</tag>
This structure has been simplified so that only one parent
element is
used now:
<tag>
<name>mytag</name>
<parent id="..." href="..."/>
</tag>
B.38. Remove scheduling built-in names and thresholds
In the past the specification of scheduling policies for clusters was based in built-in names and thresholds. For example a cluster that used the evenly distributed scheduling policy was represented as follows:
<cluster>
<name>mycluster</name>
<scheduling_policy>
<policy>evenly_distributed</policy>
<thresholds high="80" duration="120"/>
</scheduling_policy>
...
</cluster>
This mechanism was replaced with a top level /schedulingpolicies
collection where scheduling policies can be defined with arbitrary names
and properties. For example, the same scheduling policy is represented
as follows in that top level collection:
<scheduling_policy>
<name>evenly_distributed</name>
<properties>
<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>
When creating or updating a cluster only the id
will be accepted.
B.39. Removed the bricks.replica_count
and bricks.stripe_count
elements
These elements aren’t really part of the representation of a collection of
bricks, but parameters of the operations to add and remove bricks. They have
now been removed, and replaced by new replica_count
and stripe_count
parameters:
POST .../bricks?replica_count=3&stripe_count=2
DELETE .../bricks?replica_count=3
B.40. Renamed the statistics type
property to kind
The statistics used to be represented using a type
element that indicates the
kind of statistic (gauge, counter, etc) and also a type
attribute that
indicates the type of the values (integer, string, etc):
<statistic>
<type>GAUGE</type>
<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>
B.41. Use multiple vcpu_pins.vcpu_pin
instead of multiple vcpu_pin
In the past the way to specify the virtual to physical CPU pinning of a virtual
machine was to use multiple vcpu_pin
elements:
<vm>
<cpu>
<cpu_tune>
<vcpu_pin>...</vcpu_pin>
<vcpu_pin>...</vcpu_pin>
...
</cpu_tune>
</cpu>
</vm>
In order to conform to the common practice in other parts of the API this has
been changed to use a wrapper element, in this case vcpu_pins
:
<vm>
<cpu>
<cpu_tune>
<vcpu_pins>
<vcpu_pin>...</vcpu_pin>
<vcpu_pin>...</vcpu_pin>
...
</vcpu_pins>
</cpu_tune>
</cpu>
</vm>
B.42. Use force
parameter to force remove a data center
The operation that removes a data center supports a force
parameter. In
order to use it the DELETE
operation used to support an optional action
parameter:
DELETE /ovirt-engine/api/datacenters/123
<action>
<force>true</force>
</action>
This optional action parameter has been replaced with an optional parameter:
DELETE /ovirt-engine/api/datacenters/123?force=true
B.43. Use force
parameter to force remove a host
The operation that removes a host supports a force
parameter. In order to use
it the DELETE
operation used to support an optional action parameter:
DELETE /ovirt-engine/api/host/123
<action>
<force>true</force>
</action>
This optional action parameter has been replaced with an optional parameter:
DELETE /ovirt-engine/api/host/123?force=true
B.44. Use parameters for force remove storage domain
The operation that removes a storage domain supports the force
, destroy
and
host
parameters. These parameters were passed to the DELETE
method using
the representation of the storage domain as the body:
DELETE /ovirt-engine/api/storagedomains/123
<storage_domain>
<force>...</force>
<destroy>...</destroy>
<host id="...">
<name>...</name>
</host>
</storage_domain>
This was problematic, as the HTTP DELETE
parameters shouldn’t have a body,
and the representation of the storage domain shouldn’t include things that
aren’t attributes of the storage domain, rather parameters of the operation.
The force
, delete
and host
attributes have been replaced by equivalent
parameters, and the operation doesn’t now accept a body. For example, now the
correct way to delete a storage domain with the force
parameter is the
following:
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&force=true
To delete with the destroy
parameter:
DELETE /ovirt-engine/api/storagedomain/123?host=myhost&destroy=true
B.45. Use host
parameter to remove storage server connection
The operation that removes a storage server connection supports a host
parameter. In order to use it the DELETE
method used to support an optional
action parameter:
DELETE /ovirt-engine/api/storageconnections/123
<action>
<host id="...">
<name>...</name>
</host>
</action>
This optional action parameter has been replaced with an optional parameter:
DELETE /ovirt-engine/api/storageconnections/123?host=myhost
B.46. Use force
and storage_domain
parameters to remove template disks
The operation that removes a template disk supports the force
and
storage_domain
parameters. In order to use it them the DELETE
method used
to support an optional action parameter:
DELETE /ovirt-engine/api/templates/123/disks/456
<action>
<force>...</force>
<storage_domain id="..."/>
</action>
In version 4 of the API this operation has been moved to the new
diskattachments
collection, and the request body has been replaced with the
query parameters force
and storage_domain
:
DELETE /ovirt-engine/api/templates/123/disksattachments/456?force=true
DELETE /ovirt-engine/api/templates/123/disksattachments/456?storage_domain=123
B.47. Don’t remove disks via the VM disk API
Removing an entity by deleting /vms/123/disks/456
means removing the
relationship between the VM and the disk - i.e., this operation should just
detach the disk from the VM. This operation is no longer able to remove disks
completely from the system, which was prone to user errors and had
unreverseable consequences. To remove a disk, instead use the
/disk/456
API:
DELETE /ovirt-engine/api/disks/456
B.48. Use force
query parameter to force remove a virtual machine
The operation that removes a virtual machine supports a force
parameter. In
order to use it the DELETE
method used to support an optional action
parameter:
DELETE /ovirt-engine/api/vms/123
<action>
<force>true</force>
</action>
This optional action parameter has been replaced with an optional query parameter:
DELETE /ovirt-engine/api/vms/123?force=true
B.49. Use POST
instead of DELETE
to remove multiple bricks
The operation that removes multiple Gluster bricks was implemented using the
DELETE
method and passing the list of bricks as the body of the request:
DELETE /ovirt-engine/api/clusters/123/glustervolumes/456/bricks
<bricks>
<bricks id="..."/>
<bricks id="..."/>
...
</bricks>
This is problematic because the DELETE
method shouldn’t have a body, so it
has been replaced with a new remove
action that uses the POST
method:
POST /ovirt-engine/api/clusters/123/glustervolumes/456/bricks/remove
<bricks>
<bricks id="..."/>
<bricks id="..."/>
...
</bricks>
B.50. Removed the scheduling_policy.policy
element
The element was kept for backward compatibility. Use scheduling_policy.name
instead.
POST /ovirt-engine/api/schedulingpolicies
<scheduling_policy>
...
<name>policy_name</name>
...
</scheduling_policy>
PUT /ovirt-engine/api/schedulingpolicies/123
<scheduling_policy>
...
<name>policy_name</name>
...
</scheduling_policy>
B.51. Added snapshot.snapshot_type
Enums are being gradually introduces to the API. Some fields which were string
until now, are replaced with an appropriate enum. One such field is vm.type.
But this field is inherited by snapshot, and snapshot type is different than vm
type. So a new field has been added to snapshot entity:
snapshot.snapshot_type
.
<snapshot>
...
<snapshot_type>regular|active|stateless|preview</snapshot_type>
...
</snapshot>
B.52. Removed move
action from VM
The deprecated move
action of the VM
entity has been removed. Instead, you
can move inidividual disks.
B.53. Moved reported_configurations.in_sync
to network_attachment
In version 3 of the API the XML schema type ReportedConfigurations
had a
in_sync
property:
<network_attachment>
<reported_configurations>
<in_sync>true</in_sync>
<reported_configuration>
...
</reported_configuration>
...
</reported_configurations>
</network_attachment>
In the specification mechanism used by version 4 of the API this can’t be
expressed, because list types (the list of reported configurations) can’t have
attributes. To be able to represent it the attribute has been moved to the
enclosing network_attachment
:
<network_attachment>
<in_sync>true</in_sync>
<reported_configurations>
<reported_configuration>
...
</reported_configuration>
...
</reported_configurations>
</network_attachment>
B.54. Replaced capabilities
with clusterlevels
The top level capabilities
collection has been replaced by the new
clusterlevels
collection. This new collection will contain the information
that isn’t available in the model, like the list of CPU types available for
each cluster level:
GET /ovirt-engine/api/clusterlevels
This will return a list of ClusterLevel
objects containing the details for
all the cluster levels supported by the system:
<cluster_levels>
<cluster_level id="3.6" href="/clusterlevels/3.6">
<cpu_types>
<cpu_type>
<name>Intel 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
This will return the details of that version:
<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>
B.55. Replaced disks
with diskattachments
In version 3 of the API virtual machines and templates had a disks
collection
containing all the information of the disks attached to them. In version 4 of
the API these disks
collections have been removed and replaced with a new
diskattachments
collection that will contain only the references to the disk
and the attributes that are specific of the relationship between disks and the
virtual machine or template that they are attached to: interface
and
bootable
.
To find what disks are attached to a virtual machine, for example, send a request like this:
GET /ovirt-engine/api/vms/123/diskattachments
That will return a response like this:
<disk_attachments>
<disk_attachment href="/vms/123/diskattachments/456" id="456">
<bootable>false</bootable>
<interface>virtio</interface>
<disk href="/disks/456" id="456"/>
<vm href="/vms/123" id="123"/>
</disk_attachment>
...
<disk_attachments>
To find the rest of the details of the disk, follow the link provided.
Adding disks to a virtual machine or template uses the new disk_attachment
element as well: request like this:
POST /ovirt-engine/api/vms/123/diskattachments
With the following body if the disk doesn’t exist and you want to create it:
<disk_attachment>
<bootable>false</bootable>
<interface>virtio</interface>
<disk>
<description>My disk</description>
<format>cow</format>
<name>mydisk</name>
<provisioned_size>1048576</provisioned_size>
<storage_domains>
<storage_domain>
<name>mydata</name>
</storage_domain>
</storage_domains>
</disk>
</disk_attachment>
Or with the following body if the disk already exists, and you just want to attach it to the virtual machine:
<disk_attachment>
<bootable>false</bootable>
<interface>virtio</interface>
<disk id="456"/>
</disk_attachment>
Take into account that the vm.disks
and template.disks
attribtes have
disk_attachments
for all usages. For example, when creating a template the
vm.disks
element was used to indicate in which 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>
B.56. Use iscsi_targets
element to discover unregistered storage
In version 3 of the API the operation to discover unregistered storage domains
used to receive a list of iSCSI targets, using multiple iscsi_target
elements:
POST /ovirt-engine/api/hosts/123/unregisteredstoragedomaindiscover
<action>
<iscsi>
<address>myiscsiserver</address>
</iscsi>
<iscsi_target>iqn.2016-07.com.example:mytarget1</iscsi_target>
<iscsi_target>iqn.2016-07.com.example:mytarget2</iscsi_target>
</action>
In version 4 of the API all repeating elements, like iscsi_target
in this case, are wrapped with another element, iscsi_targets
in
case. So the same request should now look like this:
POST /ovirt-engine/api/hosts/123/unregisteredstoragedomaindiscover
<action>
<iscsi>
<address>myiscsiserver</address>
</iscsi>
<iscsi_targets>
<iscsi_target>iqn.2016-07.com.example:mytarget1</iscsi_target>
<iscsi_target>iqn.2016-07.com.example:mytarget2</iscsi_target>
</iscsi_targets>
</action>