Class: OvirtSDK4::StorageDomainVmService

Inherits:
Service
  • Object
show all
Defined in:
lib/ovirtsdk4/services.rb,
lib/ovirtsdk4/services.rb

Instance Method Summary collapse

Methods inherited from Service

#inspect, #to_s

Instance Method Details

#disk_attachments_serviceStorageDomainVmDiskAttachmentsService

Returns a reference to the service that manages the disk attachments of the virtual machine.

Returns:


23807
23808
23809
# File 'lib/ovirtsdk4/services.rb', line 23807

def disk_attachments_service
  @disk_attachments_service ||= StorageDomainVmDiskAttachmentsService.new(self, 'diskattachments')
end

#disks_serviceStorageDomainContentDisksService

Locates the disks service.

Returns:


23816
23817
23818
# File 'lib/ovirtsdk4/services.rb', line 23816

def disks_service
  @disks_service ||= StorageDomainContentDisksService.new(self, 'disks')
end

#get(opts = {}) ⇒ Vm

Returns the representation of the object managed by this service.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :follow (String)

    Indicates which inner links should be followed. The objects referenced by these links will be fetched as part of the current request. See here for details.

  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.

Returns:


23582
23583
23584
# File 'lib/ovirtsdk4/services.rb', line 23582

def get(opts = {})
  internal_get(GET, opts)
end

#import(opts = {}) ⇒ Object

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>

If you register an entity without specifying the cluster ID or name, the cluster name from the entity’s OVF will be used (unless the register request also includes the cluster mapping).

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the import should be performed asynchronously.

  • :clone (Boolean)

    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.

  • :cluster (Cluster)
  • :collapse_snapshots (Boolean)

    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.

    This parameter is optional, and if it isn’t explicitly specified the default value is false.

  • :exclusive (Boolean)
  • :storage_domain (StorageDomain)
  • :vm (Vm)
  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.


23700
23701
23702
# File 'lib/ovirtsdk4/services.rb', line 23700

def import(opts = {})
  internal_action(:import, nil, IMPORT, opts)
end

#register(opts = {}) ⇒ Object

Executes the register method.

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :allow_partial_import (Boolean)

    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.

  • :async (Boolean)

    Indicates if the registration should be performed asynchronously.

  • :clone (Boolean)
  • :cluster (Cluster)
  • :reassign_bad_macs (Boolean)

    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.

  • :registration_configuration (RegistrationConfiguration)

    This parameter describes how the virtual machine should be registered.

    This parameter is optional. If the parameter is not specified, the virtual machine will be registered with the same configuration that it had in the original environment where it was created.

  • :vm (Vm)
  • :vnic_profile_mappings (Array<VnicProfileMapping>)

    Deprecated attribute describing mapping rules for virtual NIC profiles that will be applied during the import\register process.

    Warning
    Please note that this attribute has been deprecated since version 4.2.1 of the engine, and preserved only for backward compatibility. It will be removed in the future. To specify vnic_profile_mappings use the vnic_profile_mappings attribute inside the RegistrationConfiguration type.
  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.


23766
23767
23768
# File 'lib/ovirtsdk4/services.rb', line 23766

def register(opts = {})
  internal_action(:register, nil, REGISTER, opts)
end

#remove(opts = {}) ⇒ Object

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

Parameters:

  • opts (Hash) (defaults to: {})

    Additional options.

Options Hash (opts):

  • :async (Boolean)

    Indicates if the remove should be performed asynchronously.

  • :headers (Hash) — default: {}

    Additional HTTP headers.

  • :query (Hash) — default: {}

    Additional URL query parameters.

  • :timeout (Integer) — default: nil

    The timeout for this request, in seconds. If no value is explicitly given then the timeout set globally for the connection will be used.

  • :wait (Boolean) — default: true

    If true wait for the response.


23798
23799
23800
# File 'lib/ovirtsdk4/services.rb', line 23798

def remove(opts = {})
  internal_remove(REMOVE, opts)
end

#service(path) ⇒ Service

Locates the service corresponding to the given path.

Parameters:

  • path (String)

    The path of the service.

Returns:

  • (Service)

    A reference to the service.

Raises:


23827
23828
23829
23830
23831
23832
23833
23834
23835
23836
23837
23838
23839
23840
23841
23842
23843
23844
# File 'lib/ovirtsdk4/services.rb', line 23827

def service(path)
  if path.nil? || path == ''
    return self
  end
  if path == 'diskattachments'
    return disk_attachments_service
  end
  if path.start_with?('diskattachments/')
    return disk_attachments_service.service(path[16..-1])
  end
  if path == 'disks'
    return disks_service
  end
  if path.start_with?('disks/')
    return disks_service.service(path[6..-1])
  end
  raise Error.new("The path \"#{path}\" doesn't correspond to any service")
end