Sha256: 7aeaf679e2af723934016c72dd55568cdc645128f92e4d895209b6f918939e0e

Contents?: true

Size: 1.2 KB

Versions: 5

Compression:

Stored size: 1.2 KB

Contents

module Fog
  module Ovirt
    class Compute
      class V4
        class Real
          # rubocop:disable Metrics/AbcSize
          def list_vm_volumes(vm_id)
            vm = client.system_service.vms_service.vm_service(vm_id).get
            attachments = client.follow_link(vm.disk_attachments)
            attachments.map do |attachment|
              attachment_disk = client.follow_link(attachment.disk)
              attachment = client.follow_link(attachment)
              bootable = attachment.bootable
              interface = attachment.interface
              attachment_disk.bootable = bootable if attachment_disk.bootable.nil?
              attachment_disk.interface = interface if attachment_disk.interface.nil?
              attachment_disk.storage_domain = attachment_disk.storage_domains[0].id
              ovirt_attrs attachment_disk
            end
          end
          # rubocop:enable Metrics/AbcSize
        end
        class Mock
          def list_vm_volumes(_vm_id)
            xml = read_xml "volumes.xml"
            Nokogiri::XML(xml).xpath("/disks/disk").map do |vol|
              ovirt_attrs OvirtSDK4::Reader.read(vol.to_s)
            end
          end
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fog-ovirt-1.2.4 lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb
fog-ovirt-1.2.3 lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb
fog-ovirt-1.2.2 lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb
fog-ovirt-1.2.1 lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb
fog-ovirt-1.2.0 lib/fog/ovirt/requests/compute/v4/list_vm_volumes.rb