Sha256: 5670546a4b273c148060fc66c9bfa9dff5fc05516fa4a6d20f5f541ead37eab9

Contents?: true

Size: 1.28 KB

Versions: 67

Compression:

Stored size: 1.28 KB

Contents

require 'VMwareWebService/VixDiskLib/VixDiskLib'

module VixDiskMod
  def d_init
    self.diskType = "VixDisk"
    @vdi = dInfo.vixDiskInfo
    @connection = @vdi[:connection]

    if dInfo.mountMode.nil? || dInfo.mountMode == "r"
      dInfo.mountMode = "r"
      fileMode = VixDiskLib::VIXDISKLIB_FLAG_OPEN_READ_ONLY
    elsif dInfo.mountMode == "rw"
      fileMode = 0
    else
      raise "Unrecognized mountMode: #{dInfo.mountMode}"
    end

    dInfo.fileName = @vdi[:fileName]
    unless (@diskObj = dInfo.vixDiskObj)
      @diskObj = @connection.getDisk(@vdi[:fileName], fileMode)
      dInfo.vixDiskObj = @diskObj
    end
    self.blockSize = @diskObj.sectorSize
  end

  def getBase
    self
  end

  def d_read(pos, len)
    pos += @dInfo.offset if @dInfo.offset
    @diskObj.read(pos, len)
  end

  def d_write(pos, buf, len)
    pos += @dInfo.offset if @dInfo.offset
    @diskObj.write(pos, buf, len)
  end

  def d_close
    if @partNum == 0
      $log.debug "VixDiskMod: closing disk #{@dInfo.fileName}" if $log
      $log.debug "VixDiskMod: closing base VdlDisk <#{@diskObj.ssId}>" if $log
      @diskObj.close
    else
      $log.debug "VixDiskMod: not base disk, not closing base VdlDisk" if $log
    end
  end

  # Disk size in sectors.
  def d_size
    @diskObj.info[:capacity]
  end
end

Version data entries

67 entries across 67 versions & 1 rubygems

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