diff options
author | Tim Smith <tsmith@chef.io> | 2016-05-19 09:12:37 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2016-05-19 09:12:37 -0700 |
commit | eb75927881b10f1c60a26add31f6afe9f773330f (patch) | |
tree | dda53489185c37b9aa14128fed303a81a269611d | |
parent | 79eb9662769be557567586dc79a408df6838a946 (diff) | |
parent | 0abbb2e46bbaecb4de0366f5e086cd0516375ff1 (diff) | |
download | ohai-eb75927881b10f1c60a26add31f6afe9f773330f.tar.gz |
Merge pull request #816 from criteo-forks/linux_kernel_modules
Adding version for linux module when avalaible
-rw-r--r-- | lib/ohai/plugins/kernel.rb | 5 | ||||
-rw-r--r-- | spec/unit/plugins/linux/kernel_spec.rb | 26 |
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/ohai/plugins/kernel.rb b/lib/ohai/plugins/kernel.rb index b4c73b48..d0c44842 100644 --- a/lib/ohai/plugins/kernel.rb +++ b/lib/ohai/plugins/kernel.rb @@ -117,6 +117,11 @@ Ohai.plugin(:Kernel) do 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 diff --git a/spec/unit/plugins/linux/kernel_spec.rb b/spec/unit/plugins/linux/kernel_spec.rb index 75313114..18646156 100644 --- a/spec/unit/plugins/linux/kernel_spec.rb +++ b/spec/unit/plugins/linux/kernel_spec.rb @@ -31,15 +31,41 @@ serio_raw 13031 0 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 |