Sha256: 975ec3eaedf689df9de0e0ba695756a14fc4536bf692cdcfa3b551a0e992fa4e

Contents?: true

Size: 1.45 KB

Versions: 11

Compression:

Stored size: 1.45 KB

Contents

require "inspec/utils/erlang_parser"
require "inspec/utils/file_reader"

module Inspec::Resources
  class RabbitmqConfig < Inspec.resource(1)
    name "rabbitmq_conf" # TODO: this is an alias. do we want this?
    name "rabbitmq_config"
    supports platform: "unix"
    desc "Use the rabbitmq_config InSpec resource to test configuration data "\
         "for the RabbitMQ service located in /etc/rabbitmq/rabbitmq.config on "\
         "Linux and UNIX platforms."
    example <<~EXAMPLE
      describe rabbitmq_config.params('rabbit', 'ssl_listeners') do
        it { should cmp 5671 }
      end
    EXAMPLE

    include FileReader

    def initialize(conf_path = nil)
      @conf_path = conf_path || "/etc/rabbitmq/rabbitmq.config"
      @content = read_file_content(@conf_path, allow_empty: true)
    end

    def params(*opts)
      opts.inject(read_params) do |res, nxt|
        res.respond_to?(:key) ? res[nxt] : nil
      end
    end

    def to_s
      "rabbitmq_config #{@conf_path}"
    end

    def resource_id
      @conf_path
    end

    private

    def read_content
      return @content if defined?(@content)

      @content = read_file_content(@conf_path, allow_empty: true)
    end

    def read_params
      return @params if defined?(@params)
      return @params = {} if read_content.nil?

      @params = ErlangConfigFile.parse(read_content)
    rescue Parslet::ParseFailed
      raise "Cannot parse RabbitMQ config: \"#{read_content}\""
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
inspec-core-6.8.11 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.22.58 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.22.55 lib/inspec/resources/rabbitmq_config.rb
inspec-core-6.8.1 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.22.40 lib/inspec/resources/rabbitmq_config.rb
inspec-core-6.6.0 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.22.36 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.22.29 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.22.3 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.21.29 lib/inspec/resources/rabbitmq_config.rb
inspec-core-5.18.14 lib/inspec/resources/rabbitmq_config.rb