Sha256: 56fa008926af39f6b6b668a36d13b3b227eb1f1af0dedea51531b98c12eff5a6

Contents?: true

Size: 1.72 KB

Versions: 25

Compression:

Stored size: 1.72 KB

Contents

module Inspec::Resources
  class Cassandra < Inspec.resource(1)
    name "cassandra"
    supports platform: "unix"
    supports platform: "windows"

    desc "The 'cassandra' resource is a helper for the 'cql_conf'"

    attr_reader :conf_path

    def initialize
      case inspec.os[:family]
      when "debian", "redhat", "linux", "suse"
        determine_conf_dir_and_path_in_linux
      when "windows"
        determine_conf_dir_and_path_in_windows
      end
    end

    def to_s
      "CassandraDB"
    end

    private

    def determine_conf_dir_and_path_in_linux
      cassandra_home = inspec.os_env("CASSANDRA_HOME").content

      if cassandra_home.nil? || cassandra_home.empty?
        warn "$CASSANDRA_HOME environment variable not set in the system"
        nil
      else
        conf_path = "#{cassandra_home}/cassandra.yaml"
        if !inspec.file(conf_path).exist?
          warn "Cassandra conf file not found in #{cassandra_home} directory."
          nil
        else
          @conf_path = conf_path
        end
      end
    rescue => e
      fail_resource "Errors reading cassandra conf file: #{e}"
    end

    def determine_conf_dir_and_path_in_windows
      cassandra_home = inspec.os_env("CASSANDRA_HOME").content

      if cassandra_home.nil? || cassandra_home.empty?
        warn "CASSANDRA_HOME environment variable not set in the system"
        nil
      else
        conf_path = "#{cassandra_home}\\conf\\cassandra.yaml"
        if !inspec.file(conf_path).exist?
          warn "Cassandra conf file not found in #{cassandra_home}\\conf directory."
          nil
        else
          @conf_path = conf_path
        end
      end
    rescue => e
      fail_resource "Errors reading cassandra conf file: #{e}"
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
inspec-core-6.8.24 lib/inspec/resources/cassandra.rb
inspec-core-5.22.65 lib/inspec/resources/cassandra.rb
inspec-core-6.8.11 lib/inspec/resources/cassandra.rb
inspec-core-5.22.58 lib/inspec/resources/cassandra.rb
inspec-core-5.22.55 lib/inspec/resources/cassandra.rb
inspec-core-6.8.1 lib/inspec/resources/cassandra.rb
inspec-core-5.22.40 lib/inspec/resources/cassandra.rb
inspec-core-6.6.0 lib/inspec/resources/cassandra.rb
inspec-core-5.22.36 lib/inspec/resources/cassandra.rb
inspec-core-5.22.29 lib/inspec/resources/cassandra.rb
inspec-core-4.56.58 lib/inspec/resources/cassandra.rb
inspec-core-5.22.3 lib/inspec/resources/cassandra.rb
inspec-core-5.21.29 lib/inspec/resources/cassandra.rb
inspec-core-5.18.14 lib/inspec/resources/cassandra.rb
inspec-core-5.17.4 lib/inspec/resources/cassandra.rb
inspec-core-5.14.0 lib/inspec/resources/cassandra.rb
inspec-core-4.56.20 lib/inspec/resources/cassandra.rb
inspec-core-5.12.2 lib/inspec/resources/cassandra.rb
inspec-core-5.10.5 lib/inspec/resources/cassandra.rb
inspec-core-4.56.19 lib/inspec/resources/cassandra.rb