class Inspec::Resources::Mongodb

Attributes

conf_path[R]

Public Class Methods

new() click to toggle source
# File lib/inspec/resources/mongodb.rb, line 11
def initialize
  case inspec.os[:family]
  when "debian", "fedora", "redhat", "linux", "suse"
    init_linux
  when "darwin"
    init_macos
  when "windows"
    init_windows
  end
end

Public Instance Methods

to_s() click to toggle source
# File lib/inspec/resources/mongodb.rb, line 22
def to_s
  "MongoDB"
end

Private Instance Methods

dir_to_version(dir) click to toggle source
# File lib/inspec/resources/mongodb.rb, line 61
def dir_to_version(dir)
  dir.chomp.split("/").last
end
init_linux() click to toggle source
# File lib/inspec/resources/mongodb.rb, line 28
def init_linux
  @conf_path = "/etc/mongod.conf"
end
init_macos() click to toggle source
# File lib/inspec/resources/mongodb.rb, line 32
def init_macos
  @conf_path = "/usr/local/etc/mongod.conf"
end
init_windows() click to toggle source
# File lib/inspec/resources/mongodb.rb, line 36
def init_windows
  dir = "C:\\Program Files\\MongoDB\\Server"
  @version = version_from_dir(dir)
  unless @version.to_s.empty?
    @conf_path = "#{dir}\\#{@version}\\bin\\mongod.cfg"
  end
end
version_from_dir(dir) click to toggle source
# File lib/inspec/resources/mongodb.rb, line 44
def version_from_dir(dir)
  dirs = inspec.command("Get-ChildItem -Path \"#{dir}\" -Name").stdout
  entries = dirs.lines.count
  case entries
  when 0
    warn "Could not determine version of installed MongoDB by inspecting #{dir}"
    nil
  when 1
    dir_to_version(dirs)
  else
    warn "Multiple versions of MongoDB installed or incorrect base dir #{dir}"
    first = dir_to_version(dirs.lines.first)
    warn "Using the first version found: #{first}"
    first
  end
end