summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Amiez <jonathan.amiez@gmail.com>2015-06-03 16:48:53 +0200
committerJonathan Amiez <jonathan.amiez@gmail.com>2015-06-04 11:22:57 +0200
commitfda2099013b0d5e7ddd5c34ebb66b27611efac5d (patch)
tree09dd1ea46e55dc0b84768c92d8199b31dded3b62
parent0d5d7bb6017db1897340081d655e368414616bbf (diff)
downloadohai-fda2099013b0d5e7ddd5c34ebb66b27611efac5d.tar.gz
Change lsblk options and output parsing in linux filesystem
-rw-r--r--lib/ohai/plugins/linux/filesystem.rb9
-rw-r--r--spec/unit/plugins/linux/filesystem_spec.rb98
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