ohai 7.2.0 → 7.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8f5021abfe73ff336fe9486ae97057693bf26393
4
- data.tar.gz: 5071190fbdfb48ac7f082ad9414c11ef2e4d3258
3
+ metadata.gz: 4329545c173368396f653fe483a8c05a0bbfcbf7
4
+ data.tar.gz: 82c031fc26ba2f9fd0a1c0a91d68eb344c3d44f5
5
5
  SHA512:
6
- metadata.gz: b8c615bbf2ac0859d6d5880e8c3189abca58270a0e115ce364a443e9f7d34c3b36b9ef679f67d0788501c6d4cb4b0c002cd00dc80fca57229db462f88d264056
7
- data.tar.gz: 92dc7cdb0928b81d0695bf2298725fe50887d85c81129c1c765790ca0ca72f6e2069913f2914744f61135e356f1b62eff4372c6f15b21b81b92ce4f7898724b0
6
+ metadata.gz: eece99b024c9d7e9ee89cd3eaa6213f92bc39586a520e914226e9127f3368edf1c3b11c3d5756c14533742e778f2c0cc80cf951dc1632fe9616615274f140071
7
+ data.tar.gz: 9c681cd6d5f724a472e8181d4924265edf463a7bc99ccf71f200fc9ca53c4208062e25a40d0f8f890eb6fdce31a423fc0a18e24d14506ceb08f3e5e50293b7c4
@@ -19,8 +19,22 @@
19
19
  Ohai.plugin(:Filesystem) do
20
20
  provides "filesystem"
21
21
 
22
+ def get_blk_cmd(attr, have_lsblk)
23
+ if have_lsblk
24
+ attr = 'FSTYPE' if attr == 'TYPE'
25
+ "lsblk -r -n -o NAME,#{attr}"
26
+ else
27
+ "blkid -s #{attr}"
28
+ end
29
+ end
30
+
31
+ def get_blk_regex(attr, have_lsblk)
32
+ have_lsblk ? /^(\S+) (\S+)/ : /^(\S+): #{attr}="(\S+)"/
33
+ end
34
+
22
35
  collect_data(:linux) do
23
36
  fs = Mash.new
37
+ have_lsblk = File.executable?('/bin/lsblk')
24
38
 
25
39
  # Grab filesystem data from df
26
40
  so = shell_out("df -P")
@@ -68,10 +82,14 @@ Ohai.plugin(:Filesystem) do
68
82
  end
69
83
  end
70
84
 
85
+ have_lsblk = File.exists?('/bin/lsblk')
86
+
71
87
  # Gather more filesystem types via libuuid, even devices that's aren't mounted
72
- so = shell_out("blkid -s TYPE")
88
+ cmd = get_blk_cmd('TYPE', have_lsblk)
89
+ regex = get_blk_regex('TYPE', have_lsblk)
90
+ so = shell_out(cmd)
73
91
  so.stdout.lines do |line|
74
- if line =~ /^(\S+): TYPE="(\S+)"/
92
+ if line =~ regex
75
93
  filesystem = $1
76
94
  fs[filesystem] = Mash.new unless fs.has_key?(filesystem)
77
95
  fs[filesystem][:fs_type] = $2
@@ -79,9 +97,11 @@ Ohai.plugin(:Filesystem) do
79
97
  end
80
98
 
81
99
  # Gather device UUIDs via libuuid
82
- so = shell_out("blkid -s UUID")
100
+ cmd = get_blk_cmd('UUID', have_lsblk)
101
+ regex = get_blk_regex('UUID', have_lsblk)
102
+ so = shell_out(cmd)
83
103
  so.stdout.lines do |line|
84
- if line =~ /^(\S+): UUID="(\S+)"/
104
+ if line =~ regex
85
105
  filesystem = $1
86
106
  fs[filesystem] = Mash.new unless fs.has_key?(filesystem)
87
107
  fs[filesystem][:uuid] = $2
@@ -89,9 +109,11 @@ Ohai.plugin(:Filesystem) do
89
109
  end
90
110
 
91
111
  # Gather device labels via libuuid
92
- so = shell_out("blkid -s LABEL")
112
+ cmd = get_blk_cmd('LABEL', have_lsblk)
113
+ regex = get_blk_regex('LABEL', have_lsblk)
114
+ so = shell_out(cmd)
93
115
  so.stdout.lines do |line|
94
- if line =~ /^(\S+): LABEL="(\S+)"/
116
+ if line =~ regex
95
117
  filesystem = $1
96
118
  fs[filesystem] = Mash.new unless fs.has_key?(filesystem)
97
119
  fs[filesystem][:label] = $2
@@ -100,7 +122,24 @@ Ohai.plugin(:Filesystem) do
100
122
 
101
123
  # Grab any missing mount information from /proc/mounts
102
124
  if File.exists?('/proc/mounts')
103
- File.open('/proc/mounts').read_nonblock(4096).each_line do |line|
125
+ mounts = ''
126
+ # Due to https://tickets.opscode.com/browse/OHAI-196
127
+ # we have to non-block read dev files. Ew.
128
+ f = File.open('/proc/mounts')
129
+ loop do
130
+ begin
131
+ data = f.read_nonblock(4096)
132
+ mounts << data
133
+ # We should just catch EOFError, but the kernel had a period of
134
+ # bugginess with reading virtual files, so we're being extra
135
+ # cautious here, catching all exceptions, and then we'll read
136
+ # whatever data we might have
137
+ rescue Exception
138
+ break
139
+ end
140
+ end
141
+ f.close
142
+ mounts.each_line do |line|
104
143
  if line =~ /^(\S+) (\S+) (\S+) (\S+) \S+ \S+$/
105
144
  filesystem = $1
106
145
  next if fs.has_key?(filesystem)
data/lib/ohai/version.rb CHANGED
@@ -18,5 +18,5 @@
18
18
 
19
19
  module Ohai
20
20
  OHAI_ROOT = File.expand_path(File.dirname(__FILE__))
21
- VERSION = '7.2.0'
21
+ VERSION = '7.2.2'
22
22
  end
@@ -26,10 +26,18 @@ describe Ohai::System, "Linux filesystem plugin" do
26
26
  @plugin.stub(:shell_out).with("df -P").and_return(mock_shell_out(0, "", ""))
27
27
  @plugin.stub(:shell_out).with("df -i").and_return(mock_shell_out(0, "", ""))
28
28
  @plugin.stub(:shell_out).with("mount").and_return(mock_shell_out(0, "", ""))
29
+ File.stub(:exists?).with("/bin/lsblk").and_return(false)
29
30
  @plugin.stub(:shell_out).with("blkid -s TYPE").and_return(mock_shell_out(0, "", ""))
30
31
  @plugin.stub(:shell_out).with("blkid -s UUID").and_return(mock_shell_out(0, "", ""))
31
32
  @plugin.stub(:shell_out).with("blkid -s LABEL").and_return(mock_shell_out(0, "", ""))
32
33
 
34
+ @plugin.stub(:shell_out).with("lsblk -r -n -o NAME,FSTYPE").
35
+ and_return(mock_shell_out(0, "", ""))
36
+ @plugin.stub(:shell_out).with("lsblk -r -n -o NAME,UUID").
37
+ and_return(mock_shell_out(0, "", ""))
38
+ @plugin.stub(:shell_out).with("lsblk -r -n -o NAME,LABEL").
39
+ and_return(mock_shell_out(0, "", ""))
40
+
33
41
  File.stub(:exists?).with("/proc/mounts").and_return(false)
34
42
  end
35
43
 
@@ -154,7 +162,7 @@ MOUNT
154
162
  describe "when gathering filesystem type data from blkid" do
155
163
  before(:each) do
156
164
  @stdout = <<-BLKID_TYPE
157
- dev/sdb1: TYPE=\"linux_raid_member\"
165
+ /dev/sdb1: TYPE=\"linux_raid_member\"
158
166
  /dev/sdb2: TYPE=\"linux_raid_member\"
159
167
  /dev/sda1: TYPE=\"linux_raid_member\"
160
168
  /dev/sda2: TYPE=\"linux_raid_member\"
@@ -181,6 +189,39 @@ BLKID_TYPE
181
189
  end
182
190
  end
183
191
 
192
+ describe "when gathering filesystem type data from lsblk" do
193
+ before(:each) do
194
+ File.stub(:exists?).with("/bin/lsblk").and_return(true)
195
+ @stdout = <<-BLKID_TYPE
196
+ /dev/sdb1 linux_raid_member
197
+ /dev/sdb2 linux_raid_member
198
+ /dev/sda1 linux_raid_member
199
+ /dev/sda2 linux_raid_member
200
+ /dev/md0 ext3
201
+ /dev/md1 LVM2_member
202
+ /dev/mapper/sys.vg-root.lv ext4
203
+ /dev/mapper/sys.vg-swap.lv swap
204
+ /dev/mapper/sys.vg-tmp.lv ext4
205
+ /dev/mapper/sys.vg-usr.lv ext4
206
+ /dev/mapper/sys.vg-var.lv ext4
207
+ /dev/mapper/sys.vg-home.lv xfs
208
+ BLKID_TYPE
209
+ @plugin.stub(:shell_out).with("lsblk -r -n -o NAME,FSTYPE").
210
+ and_return(mock_shell_out(0, @stdout, ""))
211
+ end
212
+
213
+ it "should run lsblk -r -n -o NAME,FSTYPE" do
214
+ @plugin.should_receive(:shell_out).with("lsblk -r -n -o NAME,FSTYPE").
215
+ and_return(mock_shell_out(0, @stdout, ""))
216
+ @plugin.run
217
+ end
218
+
219
+ it "should set kb_size to value from lsblk -r -n -o NAME,FSTYPE" do
220
+ @plugin.run
221
+ @plugin[:filesystem]["/dev/md1"][:fs_type].should be == "LVM2_member"
222
+ end
223
+ end
224
+
184
225
  describe "when gathering filesystem uuid data from blkid" do
185
226
  before(:each) do
186
227
  @stdout = <<-BLKID_UUID
@@ -211,6 +252,40 @@ BLKID_UUID
211
252
  end
212
253
  end
213
254
 
255
+ describe "when gathering filesystem uuid data from lsblk" do
256
+ before(:each) do
257
+ File.stub(:exists?).with("/bin/lsblk").and_return(true)
258
+ @stdout = <<-BLKID_UUID
259
+ /dev/sdb1 bd1197e0-6997-1f3a-e27e-7801388308b5
260
+ /dev/sdb2 e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa
261
+ /dev/sda1 bd1197e0-6997-1f3a-e27e-7801388308b5
262
+ /dev/sda2 e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa
263
+ /dev/md0 37b8de8e-0fe3-4b5a-b9b4-dde33e19bb32
264
+ /dev/md1 YsIe0R-fj1y-LXTd-imla-opKo-OuIe-TBoxSK
265
+ /dev/mapper/sys.vg-root.lv 7742d14b-80a3-4e97-9a32-478be9ea9aea
266
+ /dev/mapper/sys.vg-swap.lv 9bc2e515-8ddc-41c3-9f63-4eaebde9ce96
267
+ /dev/mapper/sys.vg-tmp.lv 74cf7eb9-428f-479e-9a4a-9943401e81e5
268
+ /dev/mapper/sys.vg-usr.lv 26ec33c5-d00b-4f88-a550-492def013bbc
269
+ /dev/mapper/sys.vg-var.lv 6b559c35-7847-4ae2-b512-c99012d3f5b3
270
+ /dev/mapper/sys.vg-home.lv d6efda02-1b73-453c-8c74-7d8dee78fa5e
271
+ BLKID_UUID
272
+ @plugin.stub(:shell_out).with("lsblk -r -n -o NAME,UUID").
273
+ and_return(mock_shell_out(0, @stdout, ""))
274
+ end
275
+
276
+ it "should run lsblk -r -n -o NAME,UUID" do
277
+ @plugin.should_receive(:shell_out).with("lsblk -r -n -o NAME,UUID").
278
+ and_return(mock_shell_out(0, @stdout, ""))
279
+ @plugin.run
280
+ end
281
+
282
+ it "should set kb_size to value from lsblk -r -n -o NAME,UUID" do
283
+ @plugin.run
284
+ @plugin[:filesystem]["/dev/sda2"][:uuid].should be ==
285
+ "e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa"
286
+ end
287
+ end
288
+
214
289
  describe "when gathering filesystem label data from blkid" do
215
290
  before(:each) do
216
291
  @stdout = <<-BLKID_LABEL
@@ -239,28 +314,67 @@ BLKID_LABEL
239
314
  end
240
315
  end
241
316
 
317
+ describe "when gathering filesystem label data from lsblk" do
318
+ before(:each) do
319
+ File.stub(:exists?).with("/bin/lsblk").and_return(true)
320
+ @stdout = <<-BLKID_LABEL
321
+ /dev/sda1 fuego:0
322
+ /dev/sda2 fuego:1
323
+ /dev/sdb1 fuego:0
324
+ /dev/sdb2 fuego:1
325
+ /dev/md0 /boot
326
+ /dev/mapper/sys.vg-root.lv /
327
+ /dev/mapper/sys.vg-tmp.lv /tmp
328
+ /dev/mapper/sys.vg-usr.lv /usr
329
+ /dev/mapper/sys.vg-var.lv /var
330
+ /dev/mapper/sys.vg-home.lv /home
331
+ BLKID_LABEL
332
+ @plugin.stub(:shell_out).with("lsblk -r -n -o NAME,LABEL").
333
+ and_return(mock_shell_out(0, @stdout, ""))
334
+ end
335
+
336
+ it "should run blkid -s LABEL" do
337
+ @plugin.should_receive(:shell_out).with("lsblk -r -n -o NAME,LABEL").
338
+ and_return(mock_shell_out(0, @stdout, ""))
339
+ @plugin.run
340
+ end
341
+
342
+ it "should set kb_size to value from blkid -s LABEL" do
343
+ @plugin.run
344
+ @plugin[:filesystem]["/dev/md0"][:label].should be == "/boot"
345
+ end
346
+ end
347
+
348
+
242
349
  describe "when gathering data from /proc/mounts" do
243
350
  before(:each) do
244
351
  File.stub(:exists?).with("/proc/mounts").and_return(true)
245
352
  @double_file = double("/proc/mounts")
246
- @double_file.stub(:read_nonblock).and_return(@double_file)
247
- @double_file.stub(:each_line).
248
- and_yield("rootfs / rootfs rw 0 0").
249
- and_yield("none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0").
250
- and_yield("none /proc proc rw,nosuid,nodev,noexec,relatime 0 0").
251
- and_yield("none /dev devtmpfs rw,relatime,size=2025576k,nr_inodes=506394,mode=755 0 0").
252
- and_yield("none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0").
253
- and_yield("/dev/mapper/sys.vg-root.lv / ext4 rw,noatime,errors=remount-ro,barrier=1,data=ordered 0 0").
254
- and_yield("tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0").
255
- and_yield("tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0").
256
- and_yield("/dev/mapper/sys.vg-home.lv /home xfs rw,noatime,attr2,noquota 0 0").
257
- and_yield("/dev/mapper/sys.vg-special.lv /special xfs ro,noatime,attr2,noquota 0 0").
258
- and_yield("/dev/mapper/sys.vg-tmp.lv /tmp ext4 rw,noatime,barrier=1,data=ordered 0 0").
259
- and_yield("/dev/mapper/sys.vg-usr.lv /usr ext4 rw,noatime,barrier=1,data=ordered 0 0").
260
- and_yield("/dev/mapper/sys.vg-var.lv /var ext4 rw,noatime,barrier=1,data=ordered 0 0").
261
- and_yield("/dev/md0 /boot ext3 rw,noatime,errors=remount-ro,data=ordered 0 0").
262
- and_yield("fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0").
263
- and_yield("binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0")
353
+ @mounts = <<-MOUNTS
354
+ rootfs / rootfs rw 0 0
355
+ none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
356
+ none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
357
+ none /dev devtmpfs rw,relatime,size=2025576k,nr_inodes=506394,mode=755 0 0
358
+ none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
359
+ /dev/mapper/sys.vg-root.lv / ext4 rw,noatime,errors=remount-ro,barrier=1,data=ordered 0 0
360
+ tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
361
+ tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
362
+ /dev/mapper/sys.vg-home.lv /home xfs rw,noatime,attr2,noquota 0 0
363
+ /dev/mapper/sys.vg-special.lv /special xfs ro,noatime,attr2,noquota 0 0
364
+ /dev/mapper/sys.vg-tmp.lv /tmp ext4 rw,noatime,barrier=1,data=ordered 0 0
365
+ /dev/mapper/sys.vg-usr.lv /usr ext4 rw,noatime,barrier=1,data=ordered 0 0
366
+ /dev/mapper/sys.vg-var.lv /var ext4 rw,noatime,barrier=1,data=ordered 0 0
367
+ /dev/md0 /boot ext3 rw,noatime,errors=remount-ro,data=ordered 0 0
368
+ fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
369
+ binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
370
+ MOUNTS
371
+ @counter = 0
372
+ @double_file.stub(:read_nonblock) do
373
+ @counter += 1
374
+ raise EOFError if @counter == 2
375
+ @mounts
376
+ end
377
+ @double_file.stub(:close)
264
378
  File.stub(:open).with("/proc/mounts").and_return(@double_file)
265
379
  end
266
380
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ohai
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.2.0
4
+ version: 7.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-23 00:00:00.000000000 Z
11
+ date: 2014-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mime-types