spec/unit/plugins/linux/mdadm_spec.rb in ohai-13.6.0 vs spec/unit/plugins/linux/mdadm_spec.rb in ohai-13.7.0
- old
+ new
@@ -104,10 +104,24 @@
expect(@plugin[:mdadm][:md0][:members].sort).to eq(
%w{sdc sdd sde sdf sdg sdh}
)
end
+ it "should detect member devices even if there are multi-digit numbers" do
+ new_mdstat = double("/proc/mdstat2")
+ allow(new_mdstat).to receive(:each).
+ and_yield("Personalities : [raid1] [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid10]").
+ and_yield("md0 : active raid10 sdj[2010] sdi[99] sdh[5] sdg[4] sdf[3] sde[2] sdd[1] sdc[0]").
+ and_yield(" 2929893888 blocks super 1.2 256K chunks 2 near-copies [6/6] [UUUUUU]")
+ allow(File).to receive(:open).with("/proc/mdstat").and_return(new_mdstat)
+
+ @plugin.run
+ expect(@plugin[:mdadm][:md0][:members].sort).to eq(
+ %w{sdc sdd sde sdf sdg sdh sdi sdj}
+ )
+ end
+
it "should detect member devices even if mdstat has extra entries" do
new_mdstat = double("/proc/mdstat2")
allow(new_mdstat).to receive(:each).
and_yield("Personalities : [raid1] [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid10]").
and_yield("md0 : active (somecraphere) <morestuff> raid10 sdh[5] sdg[4] sdf[3] sde[2] sdd[1] sdc[0]").
@@ -126,10 +140,31 @@
and_yield("Personalities :").
and_yield("md0 : inactive nvme2n1p3[2](S)")
allow(File).to receive(:open).with("/proc/mdstat").and_return(new_mdstat)
@plugin.run
- expect(@plugin[:mdadm][:md0][:members].sort).to eq(%w{nvme2n1p3})
+ expect(@plugin[:mdadm][:md0][:spares]).to eq(%w{nvme2n1p3})
end
- end
+ it "should report journal devices" do
+ new_mdstat = double("/proc/mdstat_journal")
+ allow(new_mdstat).to receive(:each).
+ and_yield("Personalies : [raid6]").
+ and_yield("md0 : active (somecraphere) <morestuff raid6 sdbc1[7] sdd1[6] sde1[5] sdd1[4] sde1[3] sdf1[2] sdg1[1] nvme2n1p3[0](J)")
+ allow(File).to receive(:open).with("/proc/mdstat").and_return(new_mdstat)
+
+ @plugin.run
+ expect(@plugin[:mdadm][:md0][:journal]).to eq("nvme2n1p3")
+ end
+
+ it "should report spare devices" do
+ new_mdstat = double("/proc/mdstat_spare")
+ allow(new_mdstat).to receive(:each).
+ and_yield("Personalies : [raid6]").
+ and_yield("md0 : active (somecraphere) <morestuff raid6 sdbc1[7] sdd1[6] sde1[5] sdd1[4] sde1[3] sdf1[2] sdg1[1] sdh1[0](S)")
+ allow(File).to receive(:open).with("/proc/mdstat").and_return(new_mdstat)
+
+ @plugin.run
+ expect(@plugin[:mdadm][:md0][:spares]).to eq(%w{sdh1})
+ end
+ end
end