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:



22572
22573
22574
# File 'lib/ovirtsdk4/services.rb', line 22572

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

#disks_serviceStorageDomainContentDisksService

Locates the disks service.

Returns:



22581
22582
22583
# File 'lib/ovirtsdk4/services.rb', line 22581

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:



22355
22356
22357
# File 'lib/ovirtsdk4/services.rb', line 22355

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>

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.



22469
22470
22471
# File 'lib/ovirtsdk4/services.rb', line 22469

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>)

    Mapping rules for virtual NIC profiles that will be applied during the import process.

  • :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.



22531
22532
22533
# File 'lib/ovirtsdk4/services.rb', line 22531

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.



22563
22564
22565
# File 'lib/ovirtsdk4/services.rb', line 22563

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:



22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
# File 'lib/ovirtsdk4/services.rb', line 22592

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