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.
28800 28801 28802 |
# File 'lib/ovirtsdk4/services.rb', line 28800 def affinity_labels_service @affinity_labels_service ||= AssignedAffinityLabelsService.new(self, 'affinitylabels') end |
#applications_service ⇒ VmApplicationsService
Locates the applications
service.
28809 28810 28811 |
# File 'lib/ovirtsdk4/services.rb', line 28809 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/>
27737 27738 27739 |
# File 'lib/ovirtsdk4/services.rb', line 27737 def cancel_migration(opts = {}) internal_action(:cancelmigration, nil, CANCEL_MIGRATION, opts) end |
#cdroms_service ⇒ VmCdromsService
Locates the cdroms
service.
28818 28819 28820 |
# File 'lib/ovirtsdk4/services.rb', line 28818 def cdroms_service @cdroms_service ||= VmCdromsService.new(self, 'cdroms') end |
#clone(opts = {}) ⇒ Object
Executes the clone
method.
27766 27767 27768 |
# File 'lib/ovirtsdk4/services.rb', line 27766 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.
27794 27795 27796 |
# File 'lib/ovirtsdk4/services.rb', line 27794 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/>
27833 27834 27835 |
# File 'lib/ovirtsdk4/services.rb', line 27833 def detach(opts = {}) internal_action(:detach, nil, DETACH, opts) end |
#disk_attachments_service ⇒ DiskAttachmentsService
List of disks attached to this virtual machine.
28827 28828 28829 |
# File 'lib/ovirtsdk4/services.rb', line 28827 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>
27912 27913 27914 |
# File 'lib/ovirtsdk4/services.rb', line 27912 def export(opts = {}) internal_action(:export, nil, EXPORT, opts) end |
#export_to_export_domain(opts = {}) ⇒ Object
Exports a virtual machine to an export domain.
28680 28681 28682 |
# File 'lib/ovirtsdk4/services.rb', line 28680 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.
28729 28730 28731 |
# File 'lib/ovirtsdk4/services.rb', line 28729 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/>
27954 27955 27956 |
# File 'lib/ovirtsdk4/services.rb', line 27954 def freeze_filesystems(opts = {}) internal_action(:freezefilesystems, nil, FREEZE_FILESYSTEMS, opts) end |
#get(opts = {}) ⇒ Vm
Retrieves the description of the virtual machine.
28026 28027 28028 |
# File 'lib/ovirtsdk4/services.rb', line 28026 def get(opts = {}) internal_get(GET, opts) end |
#graphics_consoles_service ⇒ VmGraphicsConsolesService
Locates the graphics_consoles
service.
28836 28837 28838 |
# File 'lib/ovirtsdk4/services.rb', line 28836 def graphics_consoles_service @graphics_consoles_service ||= VmGraphicsConsolesService.new(self, 'graphicsconsoles') end |
#host_devices_service ⇒ VmHostDevicesService
Locates the host_devices
service.
28845 28846 28847 |
# File 'lib/ovirtsdk4/services.rb', line 28845 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.
28855 28856 28857 |
# File 'lib/ovirtsdk4/services.rb', line 28855 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/>
28072 28073 28074 |
# File 'lib/ovirtsdk4/services.rb', line 28072 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>
28117 28118 28119 |
# File 'lib/ovirtsdk4/services.rb', line 28117 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>
28172 28173 28174 |
# File 'lib/ovirtsdk4/services.rb', line 28172 def migrate(opts = {}) internal_action(:migrate, nil, MIGRATE, opts) end |
#nics_service ⇒ VmNicsService
Locates the nics
service.
28864 28865 28866 |
# File 'lib/ovirtsdk4/services.rb', line 28864 def nics_service @nics_service ||= VmNicsService.new(self, 'nics') end |
#numa_nodes_service ⇒ VmNumaNodesService
Locates the numa_nodes
service.
28873 28874 28875 |
# File 'lib/ovirtsdk4/services.rb', line 28873 def numa_nodes_service @numa_nodes_service ||= VmNumaNodesService.new(self, 'numanodes') end |
#permissions_service ⇒ AssignedPermissionsService
Locates the permissions
service.
28882 28883 28884 |
# File 'lib/ovirtsdk4/services.rb', line 28882 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.
28215 28216 28217 |
# File 'lib/ovirtsdk4/services.rb', line 28215 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/>
28256 28257 28258 |
# File 'lib/ovirtsdk4/services.rb', line 28256 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
28295 28296 28297 |
# File 'lib/ovirtsdk4/services.rb', line 28295 def remove(opts = {}) internal_remove(REMOVE, opts) end |
#reorder_mac_addresses(opts = {}) ⇒ Object
Executes the reorder_mac_addresses
method.
28321 28322 28323 |
# File 'lib/ovirtsdk4/services.rb', line 28321 def reorder_mac_addresses(opts = {}) internal_action(:reordermacaddresses, nil, REORDER_MAC_ADDRESSES, opts) end |
#reported_devices_service ⇒ VmReportedDevicesService
Locates the reported_devices
service.
28891 28892 28893 |
# File 'lib/ovirtsdk4/services.rb', line 28891 def reported_devices_service @reported_devices_service ||= VmReportedDevicesService.new(self, 'reporteddevices') end |
#service(path) ⇒ Service
Locates the service corresponding to the given path.
28947 28948 28949 28950 28951 28952 28953 28954 28955 28956 28957 28958 28959 28960 28961 28962 28963 28964 28965 28966 28967 28968 28969 28970 28971 28972 28973 28974 28975 28976 28977 28978 28979 28980 28981 28982 28983 28984 28985 28986 28987 28988 28989 28990 28991 28992 28993 28994 28995 28996 28997 28998 28999 29000 29001 29002 29003 29004 29005 29006 29007 29008 29009 29010 29011 29012 29013 29014 29015 29016 29017 29018 29019 29020 29021 29022 29023 29024 29025 29026 29027 29028 29029 29030 29031 29032 29033 29034 29035 29036 29037 29038 29039 29040 29041 29042 29043 29044 29045 29046 29047 29048 |
# File 'lib/ovirtsdk4/services.rb', line 28947 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.
28900 28901 28902 |
# File 'lib/ovirtsdk4/services.rb', line 28900 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/>
28362 28363 28364 |
# File 'lib/ovirtsdk4/services.rb', line 28362 def shutdown(opts = {}) internal_action(:shutdown, nil, SHUTDOWN, opts) end |
#snapshots_service ⇒ SnapshotsService
Locates the snapshots
service.
28909 28910 28911 |
# File 'lib/ovirtsdk4/services.rb', line 28909 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/>
28449 28450 28451 |
# File 'lib/ovirtsdk4/services.rb', line 28449 def start(opts = {}) internal_action(:start, nil, START, opts) end |
#statistics_service ⇒ StatisticsService
Locates the statistics
service.
28918 28919 28920 |
# File 'lib/ovirtsdk4/services.rb', line 28918 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/>
28490 28491 28492 |
# File 'lib/ovirtsdk4/services.rb', line 28490 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/>
28532 28533 28534 |
# File 'lib/ovirtsdk4/services.rb', line 28532 def suspend(opts = {}) internal_action(:suspend, nil, SUSPEND, opts) end |
#tags_service ⇒ AssignedTagsService
Locates the tags
service.
28927 28928 28929 |
# File 'lib/ovirtsdk4/services.rb', line 28927 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/>
28574 28575 28576 |
# File 'lib/ovirtsdk4/services.rb', line 28574 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
|
28643 28644 28645 |
# File 'lib/ovirtsdk4/services.rb', line 28643 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.
28757 28758 28759 |
# File 'lib/ovirtsdk4/services.rb', line 28757 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.
28791 28792 28793 |
# File 'lib/ovirtsdk4/services.rb', line 28791 def update(vm, opts = {}) internal_update(vm, Vm, UPDATE, opts) end |
#watchdogs_service ⇒ VmWatchdogsService
Locates the watchdogs
service.
28936 28937 28938 |
# File 'lib/ovirtsdk4/services.rb', line 28936 def watchdogs_service @watchdogs_service ||= VmWatchdogsService.new(self, 'watchdogs') end |