Skip to content

Commit

Permalink
Merge pull request #816 from criteo-forks/linux_kernel_modules
Browse files Browse the repository at this point in the history
Adding version for linux module when avalaible
  • Loading branch information
tas50 committed May 19, 2016
2 parents 79eb966 + 0abbb2e commit eb75927
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
5 changes: 5 additions & 0 deletions lib/ohai/plugins/kernel.rb
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,11 @@ def os_lookup(sys_type)
so.stdout.lines do |line|
if line =~ /([a-zA-Z0-9\_]+)\s+(\d+)\s+(\d+)/
modules[$1] = { :size => $2, :refcount => $3 }
# Making sure to get the module version that has been loaded
if File.exist?("/sys/module/#{$1}/version")
version = File.read("/sys/module/#{$1}/version").chomp.strip
modules[$1]["version"] = version unless version.empty?
end
end
end

Expand Down
26 changes: 26 additions & 0 deletions spec/unit/plugins/linux/kernel_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,41 @@
virtio_balloon 13168 0
floppy 55441 0
ENV_LSMOD
@version_module = {
dm_crypt: "",
psmouse: "",
acpiphp: "",
microcode: "1.2.3",
serio_raw: "",
virtio_balloon: "",
floppy: "",
}

@expected_result = {
"dm_crypt" => { "size" => "22321", "refcount" => "0" },
"psmouse" => { "size" => "81038", "refcount" => "0" },
"acpiphp" => { "size" => "23314", "refcount" => "0" },
"microcode" => { "size" => "18286", "refcount" => "0", "version" => "1.2.3" },
"serio_raw" => { "size" => "13031", "refcount" => "0" },
"virtio_balloon" => { "size" => "13168", "refcount" => "0" },
"floppy" => { "size" => "55441", "refcount" => "0" },
}
@plugin = get_plugin("kernel")
allow(@plugin).to receive(:collect_os).and_return(:linux)
allow(@plugin).to receive(:init_kernel).and_return({})
allow(@plugin).to receive(:shell_out).with("uname -o").and_return(mock_shell_out(0, "Linux", ""))
allow(@plugin).to receive(:shell_out).with("env lsmod").and_return(mock_shell_out(0, @env_lsmod, ""))
@version_module.each do |mod, vers|
allow(File).to receive(:exist?).with("/sys/module/#{mod}/version").and_return(true)
allow(File).to receive(:read).with("/sys/module/#{mod}/version").and_return(vers)
end
expect(@plugin).to receive(:shell_out).with("env lsmod").at_least(1).times
@plugin.run
end

it_should_check_from_deep_mash("linux::kernel", "kernel", "os", "uname -o", [0, "Linux", ""])

it "collects linux::kernel::modules" do
expect(@plugin.data["kernel"]["modules"]).to eq(@expected_result)
end
end

0 comments on commit eb75927

Please sign in to comment.