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
applicationsservice. -
#cancel_migration(opts = {}) ⇒ Object
This operation stops any migration of a virtual machine to another physical host.
-
#cdroms_service ⇒ VmCdromsService
Locates the
cdromsservice. -
#clone(opts = {}) ⇒ Object
Executes the
clonemethod. -
#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_consolesservice. -
#host_devices_service ⇒ VmHostDevicesService
Locates the
host_devicesservice. -
#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
nicsservice. -
#numa_nodes_service ⇒ VmNumaNodesService
Locates the
numa_nodesservice. -
#permissions_service ⇒ AssignedPermissionsService
Locates the
permissionsservice. -
#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_addressesmethod. -
#reported_devices_service ⇒ VmReportedDevicesService
Locates the
reported_devicesservice. -
#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
snapshotsservice. -
#start(opts = {}) ⇒ Object
Starts the virtual machine.
-
#statistics_service ⇒ StatisticsService
Locates the
statisticsservice. -
#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
tagsservice. -
#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
watchdogsservice.
Methods inherited from Service
Instance Method Details
#affinity_labels_service ⇒ AssignedAffinityLabelsService
List of scheduling labels assigned to this virtual machine.
28858 28859 28860 |
# File 'lib/ovirtsdk4/services.rb', line 28858 def affinity_labels_service @affinity_labels_service ||= AssignedAffinityLabelsService.new(self, 'affinitylabels') end |
#applications_service ⇒ VmApplicationsService
Locates the applications service.
28867 28868 28869 |
# File 'lib/ovirtsdk4/services.rb', line 28867 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/>
27786 27787 27788 |
# File 'lib/ovirtsdk4/services.rb', line 27786 def cancel_migration(opts = {}) internal_action(:cancelmigration, nil, CANCEL_MIGRATION, opts) end |
#cdroms_service ⇒ VmCdromsService
Locates the cdroms service.
28876 28877 28878 |
# File 'lib/ovirtsdk4/services.rb', line 28876 def cdroms_service @cdroms_service ||= VmCdromsService.new(self, 'cdroms') end |
#clone(opts = {}) ⇒ Object
Executes the clone method.
27815 27816 27817 |
# File 'lib/ovirtsdk4/services.rb', line 27815 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.
27843 27844 27845 |
# File 'lib/ovirtsdk4/services.rb', line 27843 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/>
27882 27883 27884 |
# File 'lib/ovirtsdk4/services.rb', line 27882 def detach(opts = {}) internal_action(:detach, nil, DETACH, opts) end |
#disk_attachments_service ⇒ DiskAttachmentsService
List of disks attached to this virtual machine.
28885 28886 28887 |
# File 'lib/ovirtsdk4/services.rb', line 28885 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>
27961 27962 27963 |
# File 'lib/ovirtsdk4/services.rb', line 27961 def export(opts = {}) internal_action(:export, nil, EXPORT, opts) end |
#export_to_export_domain(opts = {}) ⇒ Object
Exports a virtual machine to an export domain.
28738 28739 28740 |
# File 'lib/ovirtsdk4/services.rb', line 28738 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.
28787 28788 28789 |
# File 'lib/ovirtsdk4/services.rb', line 28787 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/>
28003 28004 28005 |
# File 'lib/ovirtsdk4/services.rb', line 28003 def freeze_filesystems(opts = {}) internal_action(:freezefilesystems, nil, FREEZE_FILESYSTEMS, opts) end |
#get(opts = {}) ⇒ Vm
Retrieves the description of the virtual machine.
28075 28076 28077 |
# File 'lib/ovirtsdk4/services.rb', line 28075 def get(opts = {}) internal_get(GET, opts) end |
#graphics_consoles_service ⇒ VmGraphicsConsolesService
Locates the graphics_consoles service.
28894 28895 28896 |
# File 'lib/ovirtsdk4/services.rb', line 28894 def graphics_consoles_service @graphics_consoles_service ||= VmGraphicsConsolesService.new(self, 'graphicsconsoles') end |
#host_devices_service ⇒ VmHostDevicesService
Locates the host_devices service.
28903 28904 28905 |
# File 'lib/ovirtsdk4/services.rb', line 28903 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.
28913 28914 28915 |
# File 'lib/ovirtsdk4/services.rb', line 28913 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/>
28121 28122 28123 |
# File 'lib/ovirtsdk4/services.rb', line 28121 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>
28166 28167 28168 |
# File 'lib/ovirtsdk4/services.rb', line 28166 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>
28221 28222 28223 |
# File 'lib/ovirtsdk4/services.rb', line 28221 def migrate(opts = {}) internal_action(:migrate, nil, MIGRATE, opts) end |
#nics_service ⇒ VmNicsService
Locates the nics service.
28922 28923 28924 |
# File 'lib/ovirtsdk4/services.rb', line 28922 def nics_service @nics_service ||= VmNicsService.new(self, 'nics') end |
#numa_nodes_service ⇒ VmNumaNodesService
Locates the numa_nodes service.
28931 28932 28933 |
# File 'lib/ovirtsdk4/services.rb', line 28931 def numa_nodes_service @numa_nodes_service ||= VmNumaNodesService.new(self, 'numanodes') end |
#permissions_service ⇒ AssignedPermissionsService
Locates the permissions service.
28940 28941 28942 |
# File 'lib/ovirtsdk4/services.rb', line 28940 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.
28273 28274 28275 |
# File 'lib/ovirtsdk4/services.rb', line 28273 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/>
28314 28315 28316 |
# File 'lib/ovirtsdk4/services.rb', line 28314 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
28353 28354 28355 |
# File 'lib/ovirtsdk4/services.rb', line 28353 def remove(opts = {}) internal_remove(REMOVE, opts) end |
#reorder_mac_addresses(opts = {}) ⇒ Object
Executes the reorder_mac_addresses method.
28379 28380 28381 |
# File 'lib/ovirtsdk4/services.rb', line 28379 def reorder_mac_addresses(opts = {}) internal_action(:reordermacaddresses, nil, REORDER_MAC_ADDRESSES, opts) end |
#reported_devices_service ⇒ VmReportedDevicesService
Locates the reported_devices service.
28949 28950 28951 |
# File 'lib/ovirtsdk4/services.rb', line 28949 def reported_devices_service @reported_devices_service ||= VmReportedDevicesService.new(self, 'reporteddevices') end |
#service(path) ⇒ Service
Locates the service corresponding to the given path.
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 29049 29050 29051 29052 29053 29054 29055 29056 29057 29058 29059 29060 29061 29062 29063 29064 29065 29066 29067 29068 29069 29070 29071 29072 29073 29074 29075 29076 29077 29078 29079 29080 29081 29082 29083 29084 29085 29086 29087 29088 29089 29090 29091 29092 29093 29094 29095 29096 29097 29098 29099 29100 29101 29102 29103 29104 29105 29106 |
# File 'lib/ovirtsdk4/services.rb', line 29005 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.
28958 28959 28960 |
# File 'lib/ovirtsdk4/services.rb', line 28958 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/>
28420 28421 28422 |
# File 'lib/ovirtsdk4/services.rb', line 28420 def shutdown(opts = {}) internal_action(:shutdown, nil, SHUTDOWN, opts) end |
#snapshots_service ⇒ SnapshotsService
Locates the snapshots service.
28967 28968 28969 |
# File 'lib/ovirtsdk4/services.rb', line 28967 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/>
28507 28508 28509 |
# File 'lib/ovirtsdk4/services.rb', line 28507 def start(opts = {}) internal_action(:start, nil, START, opts) end |
#statistics_service ⇒ StatisticsService
Locates the statistics service.
28976 28977 28978 |
# File 'lib/ovirtsdk4/services.rb', line 28976 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/>
28548 28549 28550 |
# File 'lib/ovirtsdk4/services.rb', line 28548 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/>
28590 28591 28592 |
# File 'lib/ovirtsdk4/services.rb', line 28590 def suspend(opts = {}) internal_action(:suspend, nil, SUSPEND, opts) end |
#tags_service ⇒ AssignedTagsService
Locates the tags service.
28985 28986 28987 |
# File 'lib/ovirtsdk4/services.rb', line 28985 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/>
28632 28633 28634 |
# File 'lib/ovirtsdk4/services.rb', line 28632 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
|
28701 28702 28703 |
# File 'lib/ovirtsdk4/services.rb', line 28701 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.
28815 28816 28817 |
# File 'lib/ovirtsdk4/services.rb', line 28815 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.
28849 28850 28851 |
# File 'lib/ovirtsdk4/services.rb', line 28849 def update(vm, opts = {}) internal_update(vm, Vm, UPDATE, opts) end |
#watchdogs_service ⇒ VmWatchdogsService
Locates the watchdogs service.
28994 28995 28996 |
# File 'lib/ovirtsdk4/services.rb', line 28994 def watchdogs_service @watchdogs_service ||= VmWatchdogsService.new(self, 'watchdogs') end |