Class: DiskID::Inspector

Inherits:
Object
  • Object
show all
Defined in:
lib/diskid.rb

Instance Method Summary collapse

Constructor Details

#initialize(file, qemu_img_bin = 'qemu-img-bleeding') ⇒ Inspector

Returns a new instance of Inspector.



48
49
50
51
# File 'lib/diskid.rb', line 48

def initialize(file, qemu_img_bin='qemu-img-bleeding')
  @qemu_img_bin = qemu_img_bin
  @file = file
end

Instance Method Details

#inspectObject

Raises:

  • (Exception)


53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/diskid.rb', line 53

def inspect
  out = `#{@qemu_img_bin} info #{@file}`
  raise Exception.new("Error getting info from #{@file}") if $? != 0

  md = /image:(.*)$\nfile format:(.*)$\nvirtual size:(.*)$\ndisk size:(.*)\n/.match out
  @file_name,@format,@virtual_size,@disk_size = [md[1], md[2], md[3], md[4]].map { |e| e.strip.chomp }
  @virtual_size = @virtual_size.split()[0]
  DiskInfo.new({
    'file_name' =>  @file_name,
    'format' => @format,
    'virtual_size' => @virtual_size,
    'disk_size' => @disk_size
  })
end