class Inspec::Resources::KernelModule

Public Class Methods

new(modulename = nil) click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 36
def initialize(modulename = nil)
  @module = modulename
  # this resource is only supported on Linux
  return skip_resource "The `kernel_parameter` resource is not supported on your OS." unless inspec.os.linux?
end

Public Instance Methods

blacklisted?() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 63
def blacklisted?
  !modprobe_output.match(/^blacklist\s+#{@module}/).nil? || disabled_via_bin_true? || disabled_via_bin_false?
end
disabled?() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 59
def disabled?
  !modprobe_output.match(%r{^install\s+#{@module}\s+/(s?)bin/(true|false)}).nil?
end
loaded?() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 42
def loaded?
  if inspec.os.redhat? || inspec.os.name == "fedora"
    lsmod_cmd = "/sbin/lsmod"
  else
    lsmod_cmd = "lsmod"
  end

  # get list of all modules
  cmd = inspec.command(lsmod_cmd)
  return false if cmd.exit_status != 0

  # check if module is loaded
  re = Regexp.new("^" + Regexp.quote(@module) + '\s')
  found = cmd.stdout.match(re)
  !found.nil?
end
to_s() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 72
def to_s
  "Kernel Module #{@module}"
end
version() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 67
def version
  cmd = inspec.command("#{modinfo_cmd_for_os} -F version #{@module}")
  cmd.exit_status == 0 ? cmd.stdout.delete("\n") : nil
end

Private Instance Methods

disabled_via_bin_false?() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 102
def disabled_via_bin_false?
  !modprobe_output.match(%r{^install\s+#{@module}\s+/(s?)bin/false}).nil?
end
disabled_via_bin_true?() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 98
def disabled_via_bin_true?
  !modprobe_output.match(%r{^install\s+#{@module}\s+/(s?)bin/true}).nil?
end
modinfo_cmd_for_os() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 82
def modinfo_cmd_for_os
  if inspec.os.redhat? || inspec.os.name == "fedora"
    "/sbin/modinfo"
  else
    "modinfo"
  end
end
modprobe_cmd_for_os() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 90
def modprobe_cmd_for_os
  if inspec.os.redhat? || inspec.os.name == "fedora"
    "/sbin/modprobe"
  else
    "modprobe"
  end
end
modprobe_output() click to toggle source
# File lib/inspec/resources/kernel_module.rb, line 78
def modprobe_output
  @modprobe_output ||= inspec.command("#{modprobe_cmd_for_os} --showconfig").stdout
end