6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/disk/modules/RhevmDiskProbe.rb', line 6
def self.probe(ostruct)
return nil unless ostruct.fileName
ext = File.extname(ostruct.fileName).downcase
return nil unless ext.length.zero?
format = ostruct.format.to_s.downcase
return RAW_MOD if format == 'raw'
return QCOW_MOD if format == 'cow'
descriptor_file = ostruct.fileName + '.meta'
return nil unless File.exist?(descriptor_file)
if ostruct.Descriptor.nil?
f = File.open(descriptor_file, "r")
descriptor = f.read; f.close
if descriptor.include?('EOF')
ostruct.Descriptor = descriptor
desc = parseDescriptor(descriptor)
return RAW_MOD if desc[:format].to_s.include?('RAW')
return QCOW_MOD if desc[:format].to_s.include?('COW')
return DESC_MOD
end
else
desc = parseDescriptor(ostruct.Descriptor)
return RAW_MOD if desc[:format].to_s.include?('RAW')
return QCOW_MOD if desc[:format].to_s.include?('COW')
end
nil
end
|