diff options
author | Jonathan Amiez <jonathan.amiez@gmail.com> | 2015-06-03 16:48:53 +0200 |
---|---|---|
committer | Jonathan Amiez <jonathan.amiez@gmail.com> | 2015-06-04 11:22:57 +0200 |
commit | fda2099013b0d5e7ddd5c34ebb66b27611efac5d (patch) | |
tree | 09dd1ea46e55dc0b84768c92d8199b31dded3b62 | |
parent | 0d5d7bb6017db1897340081d655e368414616bbf (diff) | |
download | ohai-fda2099013b0d5e7ddd5c34ebb66b27611efac5d.tar.gz |
Change lsblk options and output parsing in linux filesystem
-rw-r--r-- | lib/ohai/plugins/linux/filesystem.rb | 9 | ||||
-rw-r--r-- | spec/unit/plugins/linux/filesystem_spec.rb | 98 |
2 files changed, 56 insertions, 51 deletions
diff --git a/lib/ohai/plugins/linux/filesystem.rb b/lib/ohai/plugins/linux/filesystem.rb index ced1a6a9..a985ccc0 100644 --- a/lib/ohai/plugins/linux/filesystem.rb +++ b/lib/ohai/plugins/linux/filesystem.rb @@ -22,14 +22,19 @@ Ohai.plugin(:Filesystem) do def get_blk_cmd(attr, have_lsblk) if have_lsblk attr = 'FSTYPE' if attr == 'TYPE' - "lsblk -r -n -o NAME,#{attr}" + "lsblk -P -n -o NAME,#{attr}" else "blkid -s #{attr}" end end def get_blk_regex(attr, have_lsblk) - have_lsblk ? /^(\S+) (\S+)/ : /^(\S+): #{attr}="(\S+)"/ + if have_lsblk + attr = 'FSTYPE' if attr == 'TYPE' + /^NAME="(\S+)" #{attr}="(\S+)"/ + else + /^(\S+): #{attr}="(\S+)"/ + end end def find_device(name) diff --git a/spec/unit/plugins/linux/filesystem_spec.rb b/spec/unit/plugins/linux/filesystem_spec.rb index 81956f9e..21ff5f12 100644 --- a/spec/unit/plugins/linux/filesystem_spec.rb +++ b/spec/unit/plugins/linux/filesystem_spec.rb @@ -31,11 +31,11 @@ describe Ohai::System, "Linux filesystem plugin" do allow(@plugin).to receive(:shell_out).with("blkid -s UUID").and_return(mock_shell_out(0, "", "")) allow(@plugin).to receive(:shell_out).with("blkid -s LABEL").and_return(mock_shell_out(0, "", "")) - allow(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,FSTYPE"). + allow(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,FSTYPE"). and_return(mock_shell_out(0, "", "")) - allow(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,UUID"). + allow(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,UUID"). and_return(mock_shell_out(0, "", "")) - allow(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,LABEL"). + allow(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,LABEL"). and_return(mock_shell_out(0, "", "")) allow(File).to receive(:exist?).with("/proc/mounts").and_return(false) @@ -208,30 +208,30 @@ BLKID_TYPE before(:each) do allow(File).to receive(:exist?).with("/bin/lsblk").and_return(true) @stdout = <<-BLKID_TYPE -sdb1 linux_raid_member -sdb2 linux_raid_member -sda1 linux_raid_member -sda2 linux_raid_member -md0 ext3 -md1 LVM2_member -sys.vg-root.lv ext4 -sys.vg-swap.lv swap -sys.vg-tmp.lv ext4 -sys.vg-usr.lv ext4 -sys.vg-var.lv ext4 -sys.vg-home.lv xfs +NAME="sdb1" FSTYPE="linux_raid_member" +NAME="sdb2" FSTYPE="linux_raid_member" +NAME="sda1" FSTYPE="linux_raid_member" +NAME="sda2" FSTYPE="linux_raid_member" +NAME="md0" FSTYPE="ext3" +NAME="md1" FSTYPE="LVM2_member" +NAME="sys.vg-root.lv" FSTYPE="ext4" +NAME="sys.vg-swap.lv" FSTYPE="swap" +NAME="sys.vg-tmp.lv" FSTYPE="ext4" +NAME="sys.vg-usr.lv" FSTYPE="ext4" +NAME="sys.vg-var.lv" FSTYPE="ext4" +NAME="sys.vg-home.lv" FSTYPE="xfs" BLKID_TYPE - allow(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,FSTYPE"). + allow(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,FSTYPE"). and_return(mock_shell_out(0, @stdout, "")) end - it "should run lsblk -r -n -o NAME,FSTYPE" do - expect(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,FSTYPE"). + it "should run lsblk -P -n -o NAME,FSTYPE" do + expect(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,FSTYPE"). and_return(mock_shell_out(0, @stdout, "")) @plugin.run end - it "should set fs_type to value from lsblk -r -n -o NAME,FSTYPE" do + it "should set fs_type to value from lsblk -P -n -o NAME,FSTYPE" do @plugin.run expect(@plugin[:filesystem]["/dev/md1"][:fs_type]).to eq("LVM2_member") end @@ -271,30 +271,30 @@ BLKID_UUID before(:each) do allow(File).to receive(:exist?).with("/bin/lsblk").and_return(true) @stdout = <<-BLKID_UUID -sdb1 bd1197e0-6997-1f3a-e27e-7801388308b5 -sdb2 e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa -sda1 bd1197e0-6997-1f3a-e27e-7801388308b5 -sda2 e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa -md0 37b8de8e-0fe3-4b5a-b9b4-dde33e19bb32 -md1 YsIe0R-fj1y-LXTd-imla-opKo-OuIe-TBoxSK -sys.vg-root.lv 7742d14b-80a3-4e97-9a32-478be9ea9aea -sys.vg-swap.lv 9bc2e515-8ddc-41c3-9f63-4eaebde9ce96 -sys.vg-tmp.lv 74cf7eb9-428f-479e-9a4a-9943401e81e5 -sys.vg-usr.lv 26ec33c5-d00b-4f88-a550-492def013bbc -sys.vg-var.lv 6b559c35-7847-4ae2-b512-c99012d3f5b3 -sys.vg-home.lv d6efda02-1b73-453c-8c74-7d8dee78fa5e +NAME="sdb1" UUID="bd1197e0-6997-1f3a-e27e-7801388308b5" +NAME="sdb2" UUID="e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa" +NAME="sda1" UUID="bd1197e0-6997-1f3a-e27e-7801388308b5" +NAME="sda2" UUID="e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa" +NAME="md0" UUID="37b8de8e-0fe3-4b5a-b9b4-dde33e19bb32" +NAME="md1" UUID="YsIe0R-fj1y-LXTd-imla-opKo-OuIe-TBoxSK" +NAME="sys.vg-root.lv" UUID="7742d14b-80a3-4e97-9a32-478be9ea9aea" +NAME="sys.vg-swap.lv" UUID="9bc2e515-8ddc-41c3-9f63-4eaebde9ce96" +NAME="sys.vg-tmp.lv" UUID="74cf7eb9-428f-479e-9a4a-9943401e81e5" +NAME="sys.vg-usr.lv" UUID="26ec33c5-d00b-4f88-a550-492def013bbc" +NAME="sys.vg-var.lv" UUID="6b559c35-7847-4ae2-b512-c99012d3f5b3" +NAME="sys.vg-home.lv" UUID="d6efda02-1b73-453c-8c74-7d8dee78fa5e" BLKID_UUID - allow(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,UUID"). + allow(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,UUID"). and_return(mock_shell_out(0, @stdout, "")) end - it "should run lsblk -r -n -o NAME,UUID" do - expect(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,UUID"). + it "should run lsblk -P -n -o NAME,UUID" do + expect(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,UUID"). and_return(mock_shell_out(0, @stdout, "")) @plugin.run end - it "should set uuid to value from lsblk -r -n -o NAME,UUID" do + it "should set uuid to value from lsblk -P -n -o NAME,UUID" do @plugin.run expect(@plugin[:filesystem]["/dev/sda2"][:uuid]).to eq( "e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa" @@ -334,28 +334,28 @@ BLKID_LABEL before(:each) do allow(File).to receive(:exist?).with("/bin/lsblk").and_return(true) @stdout = <<-BLKID_LABEL -sda1 fuego:0 -sda2 fuego:1 -sdb1 fuego:0 -sdb2 fuego:1 -md0 /boot -sys.vg-root.lv / -sys.vg-tmp.lv /tmp -sys.vg-usr.lv /usr -sys.vg-var.lv /var -sys.vg-home.lv /home +NAME="sda1" LABEL="fuego:0" +NAME="sda2" LABEL="fuego:1" +NAME="sdb1" LABEL="fuego:0" +NAME="sdb2" LABEL="fuego:1" +NAME="md0" LABEL="/boot" +NAME="sys.vg-root.lv" LABEL="/" +NAME="sys.vg-tmp.lv" LABEL="/tmp" +NAME="sys.vg-usr.lv" LABEL="/usr" +NAME="sys.vg-var.lv" LABEL="/var" +NAME="sys.vg-home.lv" LABEL="/home" BLKID_LABEL - allow(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,LABEL"). + allow(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,LABEL"). and_return(mock_shell_out(0, @stdout, "")) end - it "should run lsblk -r -n -o NAME,LABEL" do - expect(@plugin).to receive(:shell_out).with("lsblk -r -n -o NAME,LABEL"). + it "should run lsblk -P -n -o NAME,LABEL" do + expect(@plugin).to receive(:shell_out).with("lsblk -P -n -o NAME,LABEL"). and_return(mock_shell_out(0, @stdout, "")) @plugin.run end - it "should set label to value from lsblk -r -n -o NAME,LABEL" do + it "should set label to value from lsblk -P -n -o NAME,LABEL" do @plugin.run expect(@plugin[:filesystem]["/dev/md0"][:label]).to eq("/boot") end |