Sha256: 358b9f1802b84d28391a5e1ca37e7731334ba587e415f2d65c3aecede98bae8c

Contents?: true

Size: 1.19 KB

Versions: 53

Compression:

Stored size: 1.19 KB

Contents

require "disk/modules/AzureDiskCommon"
require_relative "../MiqDisk"
require 'ostruct'

module AzureManagedDisk
  include AzureDiskCommon
  def self.new(svc, disk_name, dInfo = nil)
    d_info = dInfo || OpenStruct.new
    d_info.storage_disk_svc = svc
    d_info.disk_name        = disk_name
    d_info.fileName         = disk_name

    MiqDisk.new(self, d_info, 0)
  end

  def d_init
    @diskType         = "azure-managed"
    @blockSize        = SECTOR_LENGTH
    @disk_name        = @dInfo.disk_name
    @storage_disk_svc = @dInfo.storage_disk_svc
    @resource_group   = @dInfo.resource_group
    d_init_common(@dInfo)
  end

  def d_close
    d_close_common
  end

  def d_read(pos, len)
    $log.debug("AzureManagedDisk#d_read(#{pos}, #{len})")
    d_read_common(pos, len)
  end

  def d_size
    @d_size ||= blob_headers[:content_range].split("/")[1].to_i
  end

  def d_write(_pos, _buf, _len)
    raise "Write operation not supported."
  end

  private

  def blob_headers
    $log.debug("AzureManagedDisk#blob_headers")
    @blob_headers ||= begin
      options = {
        :start_byte => 0,
        :length     => 1
      }
      data = managed_disk.read(options)
      data.headers
    end
  end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
manageiq-smartstate-0.11.0 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.10.1 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.10.0 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.9.0 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.8.1 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.8.0 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.7.0 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.6.2 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.5.10 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.3.10 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.6.1 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.3.9 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.6.0 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.5.9 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.5.8 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.3.8 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.5.7 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.3.7 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.5.6 lib/disk/modules/AzureManagedDisk.rb
manageiq-smartstate-0.3.6 lib/disk/modules/AzureManagedDisk.rb