spec/unit/plugins/linux/filesystem_spec.rb in ohai-6.24.0.rc.0 vs spec/unit/plugins/linux/filesystem_spec.rb in ohai-6.24.0
- old
+ new
@@ -40,14 +40,19 @@
:timeout => 120,
}
@ohai.stub!(:run_command).with(@df_cmd).and_return([0,stdout,stderr])
@ohai.stub!(:run_command).with(@mount_cmd).and_return([0,stdout,stderr])
+ File.stub!(:exists?).with("/bin/lsblk").and_return(false)
@ohai.stub!(:popen4).with("blkid -s TYPE").and_return(false)
@ohai.stub!(:popen4).with("blkid -s UUID").and_return(false)
@ohai.stub!(:popen4).with("blkid -s LABEL").and_return(false)
+ @ohai.stub!(:popen4).with("lsblk -r -o NAME,FSTYPE -n").and_return(false)
+ @ohai.stub!(:popen4).with("lsblk -r -o NAME,UUID -n").and_return(false)
+ @ohai.stub!(:popen4).with("lsblk -r -o NAME,LABEL -n").and_return(false)
+
File.stub!(:exists?).with("/proc/mounts").and_return(false)
end
describe "when gathering filesystem usage data from df" do
before(:each) do
@@ -190,10 +195,41 @@
@ohai._require_plugin("linux::filesystem")
@ohai[:filesystem]["/dev/md1"][:fs_type].should be == "LVM2_member"
end
end
+ describe "when gathering filesystem type data from lsblk" do
+ before(:each) do
+ File.stub!(:exists?).with('/bin/lsblk').and_return(true)
+ @stdin = mock("STDIN", { :close => true })
+ @pid = 10
+ @stderr = mock("STDERR")
+ @stdout = mock("STDOUT")
+ @status = 0
+
+ @stdout.stub!(:each).
+ and_yield("/dev/sdb1 linux_raid_member").
+ and_yield("/dev/sdb2 linux_raid_member").
+ and_yield("/dev/sda1 linux_raid_member").
+ and_yield("/dev/sda2 linux_raid_member").
+ and_yield("/dev/md0 ext3").
+ and_yield("/dev/md1 LVM2_member").
+ and_yield("/dev/mapper/sys.vg-root.lv ext4").
+ and_yield("/dev/mapper/sys.vg-swap.lv swap").
+ and_yield("/dev/mapper/sys.vg-tmp.lv ext4").
+ and_yield("/dev/mapper/sys.vg-usr.lv ext4").
+ and_yield("/dev/mapper/sys.vg-var.lv ext4").
+ and_yield("/dev/mapper/sys.vg-home.lv xfs")
+ end
+
+ it "should run lsblk -r -o NAME,FSTYPE -n" do
+ @ohai.should_receive(:popen4).with("lsblk -r -o NAME,FSTYPE -n").
+ and_return(true)
+ @ohai._require_plugin("linux::filesystem")
+ end
+ end
+
describe "when gathering filesystem uuid data from blkid" do
before(:each) do
@stdin = mock("STDIN", { :close => true })
@pid = 10
@stderr = mock("STDERR")
@@ -225,10 +261,48 @@
@ohai._require_plugin("linux::filesystem")
@ohai[:filesystem]["/dev/sda2"][:uuid].should be == "e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa"
end
end
+ describe "when gathering filesystem uuid data from lsblk" do
+ before(:each) do
+ File.stub!(:exists?).with('/bin/lsblk').and_return(true)
+ @stdin = mock("STDIN", { :close => true })
+ @pid = 10
+ @stderr = mock("STDERR")
+ @stdout = mock("STDOUT")
+ @status = 0
+
+ @stdout.stub!(:each).
+ and_yield("/dev/sdb1 bd1197e0-6997-1f3a-e27e-7801388308b5").
+ and_yield("/dev/sdb2 e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa").
+ and_yield("/dev/sda1 bd1197e0-6997-1f3a-e27e-7801388308b5").
+ and_yield("/dev/sda2 e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa").
+ and_yield("/dev/md0 37b8de8e-0fe3-4b5a-b9b4-dde33e19bb32").
+ and_yield("/dev/md1 YsIe0R-fj1y-LXTd-imla-opKo-OuIe-TBoxSK").
+ and_yield("/dev/mapper/sys.vg-root.lv 7742d14b-80a3-4e97-9a32-478be9ea9aea").
+ and_yield("/dev/mapper/sys.vg-swap.lv 9bc2e515-8ddc-41c3-9f63-4eaebde9ce96").
+ and_yield("/dev/mapper/sys.vg-tmp.lv 74cf7eb9-428f-479e-9a4a-9943401e81e5").
+ and_yield("/dev/mapper/sys.vg-usr.lv 26ec33c5-d00b-4f88-a550-492def013bbc").
+ and_yield("/dev/mapper/sys.vg-var.lv 6b559c35-7847-4ae2-b512-c99012d3f5b3").
+ and_yield("/dev/mapper/sys.vg-home.lv d6efda02-1b73-453c-8c74-7d8dee78fa5e")
+ end
+
+ it "should run lsblk -r -o NAME,UUID -n" do
+ @ohai.should_receive(:popen4).with("lsblk -r -o NAME,UUID -n").
+ and_return(true)
+ @ohai._require_plugin("linux::filesystem")
+ end
+
+ it "should set kb_size to value from lsblk -r -o NAME,UUID -n" do
+ @ohai.stub!(:popen4).with("lsblk -r -o NAME,UUID -n").
+ and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ @ohai._require_plugin("linux::filesystem")
+ @ohai[:filesystem]["/dev/sda2"][:uuid].should be == "e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa"
+ end
+ end
+
describe "when gathering filesystem label data from blkid" do
before(:each) do
@stdin = mock("STDIN", { :close => true })
@pid = 10
@stderr = mock("STDERR")
@@ -258,32 +332,77 @@
@ohai._require_plugin("linux::filesystem")
@ohai[:filesystem]["/dev/md0"][:label].should be == "/boot"
end
end
+ describe "when gathering filesystem label data from lsblk" do
+ before(:each) do
+ File.stub!(:exists?).with('/bin/lsblk').and_return(true)
+ @stdin = mock("STDIN", { :close => true })
+ @pid = 10
+ @stderr = mock("STDERR")
+ @stdout = mock("STDOUT")
+ @status = 0
+
+ @stdout.stub!(:each).
+ and_yield("/dev/sda1 fuego:0").
+ and_yield("/dev/sda2 fuego:1").
+ and_yield("/dev/sdb1 fuego:0").
+ and_yield("/dev/sdb2 fuego:1").
+ and_yield("/dev/md0 /boot").
+ and_yield("/dev/mapper/sys.vg-root.lv /").
+ and_yield("/dev/mapper/sys.vg-tmp.lv /tmp").
+ and_yield("/dev/mapper/sys.vg-usr.lv /usr").
+ and_yield("/dev/mapper/sys.vg-var.lv /var").
+ and_yield("/dev/mapper/sys.vg-home.lv /home")
+ end
+
+ it "should run lsblk -r -o NAME,LABEL -n" do
+ @ohai.should_receive(:popen4).with("lsblk -r -o NAME,LABEL -n").
+ and_return(true)
+ @ohai._require_plugin("linux::filesystem")
+ end
+
+ it "should set kb_size to value from lsblk -r -o NAME,LABEL -n" do
+ @ohai.stub!(:popen4).with("lsblk -r -o NAME,LABEL -n").
+ and_yield(@pid, @stdin, @stdout, @stderr).and_return(@status)
+ @ohai._require_plugin("linux::filesystem")
+ @ohai[:filesystem]["/dev/md0"][:label].should be == "/boot"
+ end
+ end
+
+
describe "when gathering data from /proc/mounts" do
before(:each) do
File.stub!(:exists?).with("/proc/mounts").and_return(true)
@mock_file = mock("/proc/mounts")
@mock_file.stub!(:read_nonblock).and_return(@mock_file)
- @mock_file.stub!(:each_line).
- and_yield("rootfs / rootfs rw 0 0").
- and_yield("none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0").
- and_yield("none /proc proc rw,nosuid,nodev,noexec,relatime 0 0").
- and_yield("none /dev devtmpfs rw,relatime,size=2025576k,nr_inodes=506394,mode=755 0 0").
- and_yield("none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0").
- and_yield("/dev/mapper/sys.vg-root.lv / ext4 rw,noatime,errors=remount-ro,barrier=1,data=ordered 0 0").
- and_yield("tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0").
- and_yield("tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0").
- and_yield("/dev/mapper/sys.vg-home.lv /home xfs rw,noatime,attr2,noquota 0 0").
- and_yield("/dev/mapper/sys.vg-special.lv /special xfs ro,noatime,attr2,noquota 0 0").
- and_yield("/dev/mapper/sys.vg-tmp.lv /tmp ext4 rw,noatime,barrier=1,data=ordered 0 0").
- and_yield("/dev/mapper/sys.vg-usr.lv /usr ext4 rw,noatime,barrier=1,data=ordered 0 0").
- and_yield("/dev/mapper/sys.vg-var.lv /var ext4 rw,noatime,barrier=1,data=ordered 0 0").
- and_yield("/dev/md0 /boot ext3 rw,noatime,errors=remount-ro,data=ordered 0 0").
- and_yield("fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0").
- and_yield("binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0")
+ @mounts = <<-MOUNTS
+rootfs / rootfs rw 0 0
+none /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
+none /proc proc rw,nosuid,nodev,noexec,relatime 0 0
+none /dev devtmpfs rw,relatime,size=2025576k,nr_inodes=506394,mode=755 0 0
+none /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
+/dev/mapper/sys.vg-root.lv / ext4 rw,noatime,errors=remount-ro,barrier=1,data=ordered 0 0
+tmpfs /lib/init/rw tmpfs rw,nosuid,relatime,mode=755 0 0
+tmpfs /dev/shm tmpfs rw,nosuid,nodev,relatime 0 0
+/dev/mapper/sys.vg-home.lv /home xfs rw,noatime,attr2,noquota 0 0
+/dev/mapper/sys.vg-special.lv /special xfs ro,noatime,attr2,noquota 0 0
+/dev/mapper/sys.vg-tmp.lv /tmp ext4 rw,noatime,barrier=1,data=ordered 0 0
+/dev/mapper/sys.vg-usr.lv /usr ext4 rw,noatime,barrier=1,data=ordered 0 0
+/dev/mapper/sys.vg-var.lv /var ext4 rw,noatime,barrier=1,data=ordered 0 0
+/dev/md0 /boot ext3 rw,noatime,errors=remount-ro,data=ordered 0 0
+fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
+binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
+MOUNTS
+ @counter = 0
+ @mock_file.stub(:read_nonblock) do
+ @counter += 1
+ raise EOFError if @counter == 2
+ @mounts
+ end
+ @mock_file.stub(:close)
File.stub!(:open).with("/proc/mounts").and_return(@mock_file)
end
it "should set mount to value from /proc/mounts" do
@ohai._require_plugin("linux::filesystem")
@@ -298,7 +417,6 @@
it "should set mount_options to an array of values from /proc/mounts" do
@ohai._require_plugin("linux::filesystem")
@ohai[:filesystem]["/dev/mapper/sys.vg-special.lv"][:mount_options].should be == [ "ro", "noatime", "attr2", "noquota" ]
end
end
-
end