Sha256: 85f2bdaf33df86b6c612e96e12c76a3f457492da641eee8fc8b4a0c3ce02e58a

Contents?: true

Size: 1.46 KB

Versions: 102

Compression:

Stored size: 1.46 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

102 entries across 102 versions & 2 rubygems

Version Path
inspec-core-3.7.1 lib/resources/kernel_parameter.rb
inspec-3.7.1 lib/resources/kernel_parameter.rb
inspec-core-3.6.6 lib/resources/kernel_parameter.rb
inspec-3.6.6 lib/resources/kernel_parameter.rb
inspec-core-3.6.4 lib/resources/kernel_parameter.rb
inspec-3.6.4 lib/resources/kernel_parameter.rb
inspec-core-2.3.28 lib/resources/kernel_parameter.rb
inspec-2.3.28 lib/resources/kernel_parameter.rb
inspec-core-3.6.2 lib/resources/kernel_parameter.rb
inspec-3.6.2 lib/resources/kernel_parameter.rb
inspec-core-3.5.0 lib/resources/kernel_parameter.rb
inspec-3.5.0 lib/resources/kernel_parameter.rb
inspec-core-3.4.1 lib/resources/kernel_parameter.rb
inspec-3.4.1 lib/resources/kernel_parameter.rb
inspec-core-3.3.14 lib/resources/kernel_parameter.rb
inspec-3.3.14 lib/resources/kernel_parameter.rb
inspec-core-3.2.6 lib/resources/kernel_parameter.rb
inspec-3.2.6 lib/resources/kernel_parameter.rb
inspec-core-3.1.3 lib/resources/kernel_parameter.rb
inspec-3.1.3 lib/resources/kernel_parameter.rb