Class: Inspec::Resources::PostgresSession

Inherits:
Object
  • Object
show all
Defined in:
lib/inspec/resources/postgres_session.rb

Instance Method Summary collapse

Constructor Details

#initialize(user, pass, host = nil, port = nil) ⇒ PostgresSession

Returns a new instance of PostgresSession.



43
44
45
46
47
48
# File 'lib/inspec/resources/postgres_session.rb', line 43

def initialize(user, pass, host = nil, port = nil)
  @user = user || "postgres"
  @pass = pass
  @host = host || "localhost"
  @port = port || 5432
end

Instance Method Details

#query(query, db = []) ⇒ Object



50
51
52
53
54
55
56
57
58
59
# File 'lib/inspec/resources/postgres_session.rb', line 50

def query(query, db = [])
  psql_cmd = create_psql_cmd(query, db)
  cmd = inspec.command(psql_cmd, redact_regex: /(PGPASSWORD=').+(' psql .*)/)
  out = cmd.stdout + "\n" + cmd.stderr
  if cmd.exit_status != 0 || out =~ /could not connect to .*/ || out.downcase =~ /^error:.*/
    Lines.new(out, "PostgreSQL query with errors: #{query}")
  else
    Lines.new(cmd.stdout.strip, "PostgreSQL query: #{query}")
  end
end