Sha256: b6a115d9e51ef8a80613cca80ce7ebff48e699a39d4ba6af4166cd67d9ae78cd

Contents?: true

Size: 1.52 KB

Versions: 5

Compression:

Stored size: 1.52 KB

Contents

# encoding: utf-8

module Inspec::Resources
  class KernelParameter < Inspec.resource(1)
    name 'kernel_parameter'
    supports platform: 'unix'
    desc 'Use the kernel_parameter InSpec audit resource to test kernel parameters on Linux platforms.'
    example "
      describe kernel_parameter('net.ipv4.conf.all.forwarding') do
        its('value') { should eq 0 }
      end
    "

    def initialize(parameter = nil)
      @parameter = parameter

      # this resource is only supported on Linux
      return skip_resource 'The `kernel_parameter` resource is not supported on your OS.' if !inspec.os.linux?
    end

    def value
      cmd = inspec.command("/sbin/sysctl -q -n #{@parameter}")
      return nil if cmd.exit_status != 0
      # remove whitespace
      cmd = cmd.stdout.chomp.strip
      # convert to number if possible
      cmd = cmd.to_i if cmd =~ /^\d+$/
      cmd
    end

    def to_s
      "Kernel Parameter #{@parameter}"
    end
  end

  # for compatability with serverspec
  # this is deprecated syntax and will be removed in future versions
  class LinuxKernelParameter < KernelParameter
    name 'linux_kernel_parameter'

    def initialize(parameter)
      super(parameter)
    end

    def value
      deprecated
      super()
    end

    def deprecated
      warn '[DEPRECATION] `linux_kernel_parameter(parameter)` is deprecated.  Please use `kernel_parameter(parameter)` instead.'
    end

    def to_s
      "Kernel Parameter #{@parameter}"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
inspec-2.1.81 lib/resources/kernel_parameter.rb
inspec-2.1.21 lib/resources/kernel_parameter.rb
inspec-2.1.10 lib/resources/kernel_parameter.rb
inspec-2.0.32 lib/resources/kernel_parameter.rb
inspec-2.0.17 lib/resources/kernel_parameter.rb