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:



22742
22743
22744
# File 'lib/ovirtsdk4/services.rb', line 22742

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

#disks_serviceStorageDomainContentDisksService

Locates the disks service.

Returns:



22751
22752
22753
# File 'lib/ovirtsdk4/services.rb', line 22751

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:



22517
22518
22519
# File 'lib/ovirtsdk4/services.rb', line 22517

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.



22635
22636
22637
# File 'lib/ovirtsdk4/services.rb', line 22635

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.



22701
22702
22703
# File 'lib/ovirtsdk4/services.rb', line 22701

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.



22733
22734
22735
# File 'lib/ovirtsdk4/services.rb', line 22733

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:



22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
# File 'lib/ovirtsdk4/services.rb', line 22762

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