Class: OvirtSDK4::VmService
- Inherits:
-
MeasurableService
- Object
- Service
- MeasurableService
- OvirtSDK4::VmService
- Defined in:
- lib/ovirtsdk4/services.rb,
lib/ovirtsdk4/services.rb
Instance Method Summary collapse
-
#affinity_labels_service ⇒ AssignedAffinityLabelsService
List of scheduling labels assigned to this virtual machine.
-
#applications_service ⇒ VmApplicationsService
Locates the
applications
service. -
#cancel_migration(opts = {}) ⇒ Object
This operation stops any migration of a virtual machine to another physical host.
-
#cdroms_service ⇒ VmCdromsService
Locates the
cdroms
service. -
#clone(opts = {}) ⇒ Object
Executes the
clone
method. -
#commit_snapshot(opts = {}) ⇒ Object
Permanently restores the virtual machine to the state of the previewed snapshot.
-
#detach(opts = {}) ⇒ Object
Detaches a virtual machine from a pool.
-
#disk_attachments_service ⇒ DiskAttachmentsService
List of disks attached to this virtual machine.
-
#export(opts = {}) ⇒ Object
Exports the virtual machine.
-
#export_to_export_domain(opts = {}) ⇒ Object
Exports a virtual machine to an export domain.
-
#export_to_path_on_host(opts = {}) ⇒ Object
Exports a virtual machine as an OVA file to a given path on a specified host.
-
#freeze_filesystems(opts = {}) ⇒ Object
Freezes virtual machine file systems.
-
#get(opts = {}) ⇒ Vm
Retrieves the description of the virtual machine.
-
#graphics_consoles_service ⇒ VmGraphicsConsolesService
Locates the
graphics_consoles
service. -
#host_devices_service ⇒ VmHostDevicesService
Locates the
host_devices
service. -
#katello_errata_service ⇒ KatelloErrataService
Reference to the service that can show the applicable errata available on the virtual machine.
-
#logon(opts = {}) ⇒ Object
Initiates the automatic user logon to access a virtual machine from an external console.
-
#maintenance(opts = {}) ⇒ Object
Sets the global maintenance mode on the hosted engine virtual machine.
-
#migrate(opts = {}) ⇒ Object
Migrates a virtual machine to another physical host.
-
#nics_service ⇒ VmNicsService
Locates the
nics
service. -
#numa_nodes_service ⇒ VmNumaNodesService
Locates the
numa_nodes
service. -
#permissions_service ⇒ AssignedPermissionsService
Locates the
permissions
service. -
#preview_snapshot(opts = {}) ⇒ Object
Temporarily restores the virtual machine to the state of a snapshot.
-
#reboot(opts = {}) ⇒ Object
Sends a reboot request to a virtual machine.
-
#remove(opts = {}) ⇒ Object
Removes the virtual machine, including the virtual disks attached to it.
-
#reorder_mac_addresses(opts = {}) ⇒ Object
Executes the
reorder_mac_addresses
method. -
#reported_devices_service ⇒ VmReportedDevicesService
Locates the
reported_devices
service. -
#service(path) ⇒ Service
Locates the service corresponding to the given path.
-
#sessions_service ⇒ VmSessionsService
Reference to the service that provides information about virtual machine user sessions.
-
#shutdown(opts = {}) ⇒ Object
This operation sends a shutdown request to a virtual machine.
-
#snapshots_service ⇒ SnapshotsService
Locates the
snapshots
service. -
#start(opts = {}) ⇒ Object
Starts the virtual machine.
-
#statistics_service ⇒ StatisticsService
Locates the
statistics
service. -
#stop(opts = {}) ⇒ Object
This operation forces a virtual machine to power-off.
-
#suspend(opts = {}) ⇒ Object
This operation saves the virtual machine state to disk and stops it.
-
#tags_service ⇒ AssignedTagsService
Locates the
tags
service. -
#thaw_filesystems(opts = {}) ⇒ Object
Thaws virtual machine file systems.
-
#ticket(opts = {}) ⇒ Object
Generates a time-sensitive authentication token for accessing a virtual machine’s display.
-
#undo_snapshot(opts = {}) ⇒ Object
Restores the virtual machine to the state it had before previewing the snapshot.
-
#update(vm, opts = {}) ⇒ Vm
Update the virtual machine in the system for the given virtual machine id.
-
#watchdogs_service ⇒ VmWatchdogsService
Locates the
watchdogs
service.
Methods inherited from Service
Instance Method Details
#affinity_labels_service ⇒ AssignedAffinityLabelsService
List of scheduling labels assigned to this virtual machine.
29202 29203 29204 |
# File 'lib/ovirtsdk4/services.rb', line 29202 def affinity_labels_service @affinity_labels_service ||= AssignedAffinityLabelsService.new(self, 'affinitylabels') end |
#applications_service ⇒ VmApplicationsService
Locates the applications
service.
29211 29212 29213 |
# File 'lib/ovirtsdk4/services.rb', line 29211 def applications_service @applications_service ||= VmApplicationsService.new(self, 'applications') end |
#cancel_migration(opts = {}) ⇒ Object
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/>
28106 28107 28108 |
# File 'lib/ovirtsdk4/services.rb', line 28106 def cancel_migration(opts = {}) internal_action(:cancelmigration, nil, CANCEL_MIGRATION, opts) end |
#cdroms_service ⇒ VmCdromsService
Locates the cdroms
service.
29220 29221 29222 |
# File 'lib/ovirtsdk4/services.rb', line 29220 def cdroms_service @cdroms_service ||= VmCdromsService.new(self, 'cdroms') end |
#clone(opts = {}) ⇒ Object
Executes the clone
method.
28135 28136 28137 |
# File 'lib/ovirtsdk4/services.rb', line 28135 def clone(opts = {}) internal_action(:clone, nil, CLONE, opts) end |
#commit_snapshot(opts = {}) ⇒ Object
Permanently restores the virtual machine to the state of the previewed snapshot.
See the preview_snapshot operation for details.
28163 28164 28165 |
# File 'lib/ovirtsdk4/services.rb', line 28163 def commit_snapshot(opts = {}) internal_action(:commitsnapshot, nil, COMMIT_SNAPSHOT, opts) end |
#detach(opts = {}) ⇒ Object
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/>
28202 28203 28204 |
# File 'lib/ovirtsdk4/services.rb', line 28202 def detach(opts = {}) internal_action(:detach, nil, DETACH, opts) end |
#disk_attachments_service ⇒ DiskAttachmentsService
List of disks attached to this virtual machine.
29229 29230 29231 |
# File 'lib/ovirtsdk4/services.rb', line 29229 def @disk_attachments_service ||= DiskAttachmentsService.new(self, 'diskattachments') end |
#export(opts = {}) ⇒ Object
Exports the virtual machine.
A virtual machine can be exported to an export domain.
For example, to export virtual machine 123
to the export domain myexport
:
POST /ovirt-engine/api/vms/123/export
With a request body like this:
<action>
<storage_domain>
<name>myexport</name>
</storage_domain>
<exclusive>true</exclusive>
<discard_snapshots>true</discard_snapshots>
</action>
Since version 4.2 of the engine it is also possible to export a virtual machine as a virtual appliance (OVA).
For example, to export virtual machine 123
as an OVA file named myvm.ova
that is placed in the directory /home/ovirt/
on host myhost
:
POST /ovirt-engine/api/vms/123/export
With a request body like this:
<action>
<host>
<name>myhost</name>
</host>
<directory>/home/ovirt</directory>
<filename>myvm.ova</filename>
</action>
28281 28282 28283 |
# File 'lib/ovirtsdk4/services.rb', line 28281 def export(opts = {}) internal_action(:export, nil, EXPORT, opts) end |
#export_to_export_domain(opts = {}) ⇒ Object
Exports a virtual machine to an export domain.
29082 29083 29084 |
# File 'lib/ovirtsdk4/services.rb', line 29082 def export_to_export_domain(opts = {}) internal_action(:export, nil, EXPORT_TO_EXPORT_DOMAIN, opts) end |
#export_to_path_on_host(opts = {}) ⇒ Object
Exports a virtual machine as an OVA file to a given path on a specified host.
29131 29132 29133 |
# File 'lib/ovirtsdk4/services.rb', line 29131 def export_to_path_on_host(opts = {}) internal_action(:export, nil, EXPORT_TO_PATH_ON_HOST, opts) end |
#freeze_filesystems(opts = {}) ⇒ Object
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/>
28323 28324 28325 |
# File 'lib/ovirtsdk4/services.rb', line 28323 def freeze_filesystems(opts = {}) internal_action(:freezefilesystems, nil, FREEZE_FILESYSTEMS, opts) end |
#get(opts = {}) ⇒ Vm
Retrieves the description of the virtual machine.
28395 28396 28397 |
# File 'lib/ovirtsdk4/services.rb', line 28395 def get(opts = {}) internal_get(GET, opts) end |
#graphics_consoles_service ⇒ VmGraphicsConsolesService
Locates the graphics_consoles
service.
29238 29239 29240 |
# File 'lib/ovirtsdk4/services.rb', line 29238 def graphics_consoles_service @graphics_consoles_service ||= VmGraphicsConsolesService.new(self, 'graphicsconsoles') end |
#host_devices_service ⇒ VmHostDevicesService
Locates the host_devices
service.
29247 29248 29249 |
# File 'lib/ovirtsdk4/services.rb', line 29247 def host_devices_service @host_devices_service ||= VmHostDevicesService.new(self, 'hostdevices') end |
#katello_errata_service ⇒ KatelloErrataService
Reference to the service that can show the applicable errata available on the virtual machine. This information is taken from Katello.
29257 29258 29259 |
# File 'lib/ovirtsdk4/services.rb', line 29257 def katello_errata_service @katello_errata_service ||= KatelloErrataService.new(self, 'katelloerrata') end |
#logon(opts = {}) ⇒ Object
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/>
28441 28442 28443 |
# File 'lib/ovirtsdk4/services.rb', line 28441 def logon(opts = {}) internal_action(:logon, nil, LOGON, opts) end |
#maintenance(opts = {}) ⇒ Object
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>
28486 28487 28488 |
# File 'lib/ovirtsdk4/services.rb', line 28486 def maintenance(opts = {}) internal_action(:maintenance, nil, MAINTENANCE, opts) end |
#migrate(opts = {}) ⇒ Object
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>
28541 28542 28543 |
# File 'lib/ovirtsdk4/services.rb', line 28541 def migrate(opts = {}) internal_action(:migrate, nil, MIGRATE, opts) end |
#nics_service ⇒ VmNicsService
Locates the nics
service.
29266 29267 29268 |
# File 'lib/ovirtsdk4/services.rb', line 29266 def nics_service @nics_service ||= VmNicsService.new(self, 'nics') end |
#numa_nodes_service ⇒ VmNumaNodesService
Locates the numa_nodes
service.
29275 29276 29277 |
# File 'lib/ovirtsdk4/services.rb', line 29275 def numa_nodes_service @numa_nodes_service ||= VmNumaNodesService.new(self, 'numanodes') end |
#permissions_service ⇒ AssignedPermissionsService
Locates the permissions
service.
29284 29285 29286 |
# File 'lib/ovirtsdk4/services.rb', line 29284 def @permissions_service ||= AssignedPermissionsService.new(self, 'permissions') end |
#preview_snapshot(opts = {}) ⇒ Object
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.
28617 28618 28619 |
# File 'lib/ovirtsdk4/services.rb', line 28617 def preview_snapshot(opts = {}) internal_action(:previewsnapshot, nil, PREVIEW_SNAPSHOT, opts) end |
#reboot(opts = {}) ⇒ Object
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/>
28658 28659 28660 |
# File 'lib/ovirtsdk4/services.rb', line 28658 def reboot(opts = {}) internal_action(:reboot, nil, REBOOT, opts) end |
#remove(opts = {}) ⇒ Object
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
28697 28698 28699 |
# File 'lib/ovirtsdk4/services.rb', line 28697 def remove(opts = {}) internal_remove(REMOVE, opts) end |
#reorder_mac_addresses(opts = {}) ⇒ Object
Executes the reorder_mac_addresses
method.
28723 28724 28725 |
# File 'lib/ovirtsdk4/services.rb', line 28723 def reorder_mac_addresses(opts = {}) internal_action(:reordermacaddresses, nil, REORDER_MAC_ADDRESSES, opts) end |
#reported_devices_service ⇒ VmReportedDevicesService
Locates the reported_devices
service.
29293 29294 29295 |
# File 'lib/ovirtsdk4/services.rb', line 29293 def reported_devices_service @reported_devices_service ||= VmReportedDevicesService.new(self, 'reporteddevices') end |
#service(path) ⇒ Service
Locates the service corresponding to the given path.
29349 29350 29351 29352 29353 29354 29355 29356 29357 29358 29359 29360 29361 29362 29363 29364 29365 29366 29367 29368 29369 29370 29371 29372 29373 29374 29375 29376 29377 29378 29379 29380 29381 29382 29383 29384 29385 29386 29387 29388 29389 29390 29391 29392 29393 29394 29395 29396 29397 29398 29399 29400 29401 29402 29403 29404 29405 29406 29407 29408 29409 29410 29411 29412 29413 29414 29415 29416 29417 29418 29419 29420 29421 29422 29423 29424 29425 29426 29427 29428 29429 29430 29431 29432 29433 29434 29435 29436 29437 29438 29439 29440 29441 29442 29443 29444 29445 29446 29447 29448 29449 29450 |
# File 'lib/ovirtsdk4/services.rb', line 29349 def service(path) if path.nil? || path == '' return self end if path == 'affinitylabels' return affinity_labels_service end if path.start_with?('affinitylabels/') return affinity_labels_service.service(path[15..-1]) end if path == 'applications' return applications_service end if path.start_with?('applications/') return applications_service.service(path[13..-1]) end if path == 'cdroms' return cdroms_service end if path.start_with?('cdroms/') return cdroms_service.service(path[7..-1]) end if path == 'diskattachments' return end if path.start_with?('diskattachments/') return .service(path[16..-1]) end if path == 'graphicsconsoles' return graphics_consoles_service end if path.start_with?('graphicsconsoles/') return graphics_consoles_service.service(path[17..-1]) end if path == 'hostdevices' return host_devices_service end if path.start_with?('hostdevices/') return host_devices_service.service(path[12..-1]) end if path == 'katelloerrata' return katello_errata_service end if path.start_with?('katelloerrata/') return katello_errata_service.service(path[14..-1]) end if path == 'nics' return nics_service end if path.start_with?('nics/') return nics_service.service(path[5..-1]) end if path == 'numanodes' return numa_nodes_service end if path.start_with?('numanodes/') return numa_nodes_service.service(path[10..-1]) end if path == 'permissions' return end if path.start_with?('permissions/') return .service(path[12..-1]) end if path == 'reporteddevices' return reported_devices_service end if path.start_with?('reporteddevices/') return reported_devices_service.service(path[16..-1]) end if path == 'sessions' return sessions_service end if path.start_with?('sessions/') return sessions_service.service(path[9..-1]) end if path == 'snapshots' return snapshots_service end if path.start_with?('snapshots/') return snapshots_service.service(path[10..-1]) end if path == 'statistics' return statistics_service end if path.start_with?('statistics/') return statistics_service.service(path[11..-1]) end if path == 'tags' return end if path.start_with?('tags/') return .service(path[5..-1]) end if path == 'watchdogs' return watchdogs_service end if path.start_with?('watchdogs/') return watchdogs_service.service(path[10..-1]) end raise Error.new("The path \"#{path}\" doesn't correspond to any service") end |
#sessions_service ⇒ VmSessionsService
Reference to the service that provides information about virtual machine user sessions.
29302 29303 29304 |
# File 'lib/ovirtsdk4/services.rb', line 29302 def sessions_service @sessions_service ||= VmSessionsService.new(self, 'sessions') end |
#shutdown(opts = {}) ⇒ Object
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/>
28764 28765 28766 |
# File 'lib/ovirtsdk4/services.rb', line 28764 def shutdown(opts = {}) internal_action(:shutdown, nil, SHUTDOWN, opts) end |
#snapshots_service ⇒ SnapshotsService
Locates the snapshots
service.
29311 29312 29313 |
# File 'lib/ovirtsdk4/services.rb', line 29311 def snapshots_service @snapshots_service ||= SnapshotsService.new(self, 'snapshots') end |
#start(opts = {}) ⇒ Object
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/>
28851 28852 28853 |
# File 'lib/ovirtsdk4/services.rb', line 28851 def start(opts = {}) internal_action(:start, nil, START, opts) end |
#statistics_service ⇒ StatisticsService
Locates the statistics
service.
29320 29321 29322 |
# File 'lib/ovirtsdk4/services.rb', line 29320 def statistics_service @statistics_service ||= StatisticsService.new(self, 'statistics') end |
#stop(opts = {}) ⇒ Object
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/>
28892 28893 28894 |
# File 'lib/ovirtsdk4/services.rb', line 28892 def stop(opts = {}) internal_action(:stop, nil, STOP, opts) end |
#suspend(opts = {}) ⇒ Object
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/>
28934 28935 28936 |
# File 'lib/ovirtsdk4/services.rb', line 28934 def suspend(opts = {}) internal_action(:suspend, nil, SUSPEND, opts) end |
#tags_service ⇒ AssignedTagsService
Locates the tags
service.
29329 29330 29331 |
# File 'lib/ovirtsdk4/services.rb', line 29329 def @tags_service ||= AssignedTagsService.new(self, 'tags') end |
#thaw_filesystems(opts = {}) ⇒ Object
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/>
28976 28977 28978 |
# File 'lib/ovirtsdk4/services.rb', line 28976 def thaw_filesystems(opts = {}) internal_action(:thawfilesystems, nil, THAW_FILESYSTEMS, opts) end |
#ticket(opts = {}) ⇒ Object
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>
Important
|
If the virtual machine is configured to support only one graphics protocol then the generated authentication token will be valid for that protocol. But if the virtual machine is configured to support multiple protocols, VNC and SPICE, then the authentication token will only be valid for the SPICE protocol. In order to obtain an authentication token for a specific protocol, for
example for VNC, use the
|
29045 29046 29047 |
# File 'lib/ovirtsdk4/services.rb', line 29045 def ticket(opts = {}) internal_action(:ticket, :ticket, TICKET, opts) end |
#undo_snapshot(opts = {}) ⇒ Object
Restores the virtual machine to the state it had before previewing the snapshot.
See the preview_snapshot operation for details.
29159 29160 29161 |
# File 'lib/ovirtsdk4/services.rb', line 29159 def undo_snapshot(opts = {}) internal_action(:undosnapshot, nil, UNDO_SNAPSHOT, opts) end |
#update(vm, opts = {}) ⇒ Vm
Update the virtual machine in the system for the given virtual machine id.
29193 29194 29195 |
# File 'lib/ovirtsdk4/services.rb', line 29193 def update(vm, opts = {}) internal_update(vm, Vm, UPDATE, opts) end |
#watchdogs_service ⇒ VmWatchdogsService
Locates the watchdogs
service.
29338 29339 29340 |
# File 'lib/ovirtsdk4/services.rb', line 29338 def watchdogs_service @watchdogs_service ||= VmWatchdogsService.new(self, 'watchdogs') end |