summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom May <thom@may.lt>2015-06-24 10:39:39 +0100
committerThom May <thom@may.lt>2015-06-24 10:39:39 +0100
commit0ab65b32cb9bd1fa6340a2c12bcdf6b8a47d2cd6 (patch)
tree4549334772f4d5dec5e005f6a26bae2a6f8251c9
parent45b56dfc3277f8b0e9ac57d0b5bcd113e4250382 (diff)
parent8ae883723a9d88991bd3c4871dd404850d751025 (diff)
downloadohai-0ab65b32cb9bd1fa6340a2c12bcdf6b8a47d2cd6.tar.gz
Merge pull request #550 from josqu4red/linux_filesystem
Change lsblk usage in linux filesystem plugin
-rw-r--r--lib/ohai/plugins/linux/filesystem.rb11
-rw-r--r--spec/unit/plugins/linux/filesystem_spec.rb128
2 files changed, 84 insertions, 55 deletions
diff --git a/lib/ohai/plugins/linux/filesystem.rb b/lib/ohai/plugins/linux/filesystem.rb
index ced1a6a9..8f7989cb 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)
@@ -60,7 +65,7 @@ Ohai.plugin(:Filesystem) do
fs[filesystem][:mount] = $6
end
end
-
+
# Grab filesystem inode data from df
so = shell_out("df -iP")
so.stdout.lines do |line|
diff --git a/spec/unit/plugins/linux/filesystem_spec.rb b/spec/unit/plugins/linux/filesystem_spec.rb
index 651c6fd9..eac9dd55 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)
@@ -50,6 +50,7 @@ describe Ohai::System, "Linux filesystem plugin" do
sys.vg-usr.lv
sys.vg-var.lv
sys.vg-home.lv
+ debian--7-root
}.each do |name|
allow(File).to receive(:exist?).with("/dev/#{name}").and_return(false)
allow(File).to receive(:exist?).with("/dev/mapper/#{name}").and_return(true)
@@ -189,6 +190,7 @@ MOUNT
/dev/mapper/sys.vg-usr.lv: TYPE=\"ext4\"
/dev/mapper/sys.vg-var.lv: TYPE=\"ext4\"
/dev/mapper/sys.vg-home.lv: TYPE=\"xfs\"
+/dev/mapper/debian--7-root: TYPE=\"ext4\"
BLKID_TYPE
allow(@plugin).to receive(:shell_out).with("blkid -s TYPE").and_return(mock_shell_out(0, @stdout, ""))
end
@@ -198,7 +200,7 @@ BLKID_TYPE
@plugin.run
end
- it "should set kb_size to value from blkid -s TYPE" do
+ it "should set fs_type to value from blkid -s TYPE" do
@plugin.run
expect(@plugin[:filesystem]["/dev/md1"][:fs_type]).to eq("LVM2_member")
end
@@ -208,33 +210,39 @@ 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"
+NAME="debian--7-root (dm-0)" FSTYPE="ext4"
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 kb_size 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
+
+ it "should ignore extra info in name and set fs_type to value from lsblk -P -n -o NAME,FSTYPE" do
+ @plugin.run
+ expect(@plugin[:filesystem]["/dev/mapper/debian--7-root"][:fs_type]).to eq("ext4")
+ end
end
describe "when gathering filesystem uuid data from blkid" do
@@ -252,6 +260,7 @@ BLKID_TYPE
/dev/mapper/sys.vg-usr.lv: UUID=\"26ec33c5-d00b-4f88-a550-492def013bbc\"
/dev/mapper/sys.vg-var.lv: UUID=\"6b559c35-7847-4ae2-b512-c99012d3f5b3\"
/dev/mapper/sys.vg-home.lv: UUID=\"d6efda02-1b73-453c-8c74-7d8dee78fa5e\"
+/dev/mapper/debian--7-root: UUID=\"09187faa-3512-4505-81af-7e86d2ccb99a\"
BLKID_UUID
allow(@plugin).to receive(:shell_out).with("blkid -s UUID").and_return(mock_shell_out(0, @stdout, ""))
end
@@ -261,7 +270,7 @@ BLKID_UUID
@plugin.run
end
- it "should set kb_size to value from blkid -s UUID" do
+ it "should set uuid to value from blkid -s UUID" do
@plugin.run
expect(@plugin[:filesystem]["/dev/sda2"][:uuid]).to eq("e36d933e-e5b9-cfe5-6845-1f84d0f7fbfa")
end
@@ -271,35 +280,43 @@ 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"
+NAME="debian--7-root (dm-0)" UUID="09187faa-3512-4505-81af-7e86d2ccb99a"
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 kb_size 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"
)
end
+
+ it "should ignore extra info in name and set uuid to value from lsblk -P -n -o NAME,UUID" do
+ @plugin.run
+ expect(@plugin[:filesystem]["/dev/mapper/debian--7-root"][:uuid]).to eq(
+ "09187faa-3512-4505-81af-7e86d2ccb99a"
+ )
+ end
end
describe "when gathering filesystem label data from blkid" do
@@ -315,6 +332,7 @@ BLKID_UUID
/dev/mapper/sys.vg-usr.lv: LABEL=\"/usr\"
/dev/mapper/sys.vg-var.lv: LABEL=\"/var\"
/dev/mapper/sys.vg-home.lv: LABEL=\"/home\"
+/dev/mapper/debian--7-root: LABEL=\"root\"
BLKID_LABEL
allow(@plugin).to receive(:shell_out).with("blkid -s LABEL").and_return(mock_shell_out(0, @stdout, ""))
end
@@ -324,7 +342,7 @@ BLKID_LABEL
@plugin.run
end
- it "should set kb_size to value from blkid -s LABEL" do
+ it "should set label to value from blkid -s LABEL" do
@plugin.run
expect(@plugin[:filesystem]["/dev/md0"][:label]).to eq("/boot")
end
@@ -334,31 +352,37 @@ 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"
+NAME="debian--7-root (dm-0)" LABEL="root"
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 blkid -s 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 kb_size to value from blkid -s 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
+
+ it "should ignore extra info in name and set label to value from lsblk -P -n -o NAME,LABEL" do
+ @plugin.run
+ expect(@plugin[:filesystem]["/dev/mapper/debian--7-root"][:label]).to eq("root")
+ end
end