enterprise-ohai 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,11 +20,36 @@ by_path_root = '/dev/disk/by-path'
20
20
  by_label_root = '/dev/disk/by-label'
21
21
  by_uuid_root = '/dev/disk/by-uuid'
22
22
 
23
+ %x{parted --list --script}.split("\n\n\n").each do |section|
24
+ path, headers, info = nil, nil, Mash.new
25
+
26
+ section.split("\n").each do |line|
27
+ case line
28
+ when %r{^Model: (.*)$} then info[:model] = $1
29
+ when %r{^Disk (.*): (.*)$} then path, info[:size] = $1, $2
30
+ when %r{^Number\s+} then headers = line.split(/\s{2,}/).map {|h| h.downcase.gsub(/\W/, '_') }
31
+ when %r{^ \d+} then
32
+ next if headers.nil?
33
+ keys = headers.map {|h| h.downcase.gsub(/\W/, '_') }
34
+ values = line.split
35
+
36
+ partition_info = keys.zip(values).inject(Mash.new) do |m, (k,v)|
37
+ m.update(k => v)
38
+ end
39
+
40
+ (info[:partitions] ||= []) << partition_info
41
+ end
42
+ end
43
+
44
+ (disks[path] ||= Mash.new).merge!(info)
45
+ end
46
+
23
47
  Dir.glob(File.join(by_path_root, '*')).each do |disk_name_link|
24
48
  disk_name = File.basename(disk_name_link)
25
49
  path = disk_path(disk_name_link)
26
50
 
27
- disks[path] ||= Mash.new
51
+ next unless disks[path]
52
+
28
53
  disks[path][:name] = disk_name
29
54
  end
30
55
 
@@ -32,7 +57,8 @@ Dir.glob(File.join(by_label_root, '*')).each do |disk_label_link|
32
57
  disk_label = File.basename(disk_label_link)
33
58
  path = disk_path(File.join(by_label_root, disk_label))
34
59
 
35
- disks[path] ||= Mash.new
60
+ next unless disks[path]
61
+
36
62
  disks[path][:label] = disk_label
37
63
  end
38
64
 
@@ -40,15 +66,14 @@ Dir.glob(File.join(by_uuid_root, '*')).each do |disk_uuid_link|
40
66
  disk_uuid = File.basename(disk_uuid_link)
41
67
  path = disk_path(File.join(by_uuid_root, disk_uuid))
42
68
 
43
- disks[path] ||= Mash.new
69
+ next unless disks[path]
70
+
44
71
  disks[path][:uuid] = disk_uuid
45
72
  end
46
73
 
47
74
  disks.keys.each do |device|
48
75
  disks[device].update(filesystem[device]) if filesystem[device]
49
76
  disks[device].update(:swap => true) if swap[device]
50
-
51
- disks[device].update(:size => disk_size(device))
52
77
  end
53
78
 
54
79
  disk disks
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enterprise-ohai
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - GitHub
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-11-10 00:00:00 -08:00
18
+ date: 2011-12-08 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency