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:



22641
22642
22643
# File 'lib/ovirtsdk4/services.rb', line 22641

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

#disks_serviceStorageDomainContentDisksService

Locates the disks service.

Returns:



22650
22651
22652
# File 'lib/ovirtsdk4/services.rb', line 22650

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:



22416
22417
22418
# File 'lib/ovirtsdk4/services.rb', line 22416

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.



22534
22535
22536
# File 'lib/ovirtsdk4/services.rb', line 22534

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.



22600
22601
22602
# File 'lib/ovirtsdk4/services.rb', line 22600

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.



22632
22633
22634
# File 'lib/ovirtsdk4/services.rb', line 22632

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:



22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
# File 'lib/ovirtsdk4/services.rb', line 22661

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