Class: Inspec::Resources::OracledbSession

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ OracledbSession

Returns a new instance of OracledbSession.



18
19
20
21
22
23
24
25
# File 'lib/resources/oracledb_session.rb', line 18

def initialize(opts = {})
  @user = opts[:user]
  @pass = opts[:pass]
  @host = opts[:host] || 'localhost'
  @sid = opts[:sid]
  @sqlplus_bin = opts[:sqlplus_bin] || 'sqlplus'
  return skip_resource("Can't run Oracle checks without authentication") if @user.nil? or @pass.nil?
end

Instance Attribute Details

#hostObject (readonly)

Returns the value of attribute host.



16
17
18
# File 'lib/resources/oracledb_session.rb', line 16

def host
  @host
end

#passObject (readonly)

Returns the value of attribute pass.



16
17
18
# File 'lib/resources/oracledb_session.rb', line 16

def pass
  @pass
end

#sidObject (readonly)

Returns the value of attribute sid.



16
17
18
# File 'lib/resources/oracledb_session.rb', line 16

def sid
  @sid
end

#sqlplus_binObject (readonly)

Returns the value of attribute sqlplus_bin.



16
17
18
# File 'lib/resources/oracledb_session.rb', line 16

def sqlplus_bin
  @sqlplus_bin
end

#userObject (readonly)

Returns the value of attribute user.



16
17
18
# File 'lib/resources/oracledb_session.rb', line 16

def user
  @user
end

Instance Method Details

#query(q) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/resources/oracledb_session.rb', line 27

def query(q)
  escaped_query = q.gsub(/\\/, '\\\\').gsub(/"/, '\\"')
  cmd = inspec.command("echo \"#{escaped_query}\" | #{@sqlplus_bin} -s #{@user}/#{@pass}@#{@host}/#{@sid}")
  out = cmd.stdout + "\n" + cmd.stderr
  if out.downcase =~ /^error/
    skip_resource("Can't connect to Oracle instance for SQL checks.")
  end

  cmd
end

#to_sObject



38
39
40
# File 'lib/resources/oracledb_session.rb', line 38

def to_s
  'Oracle Session'
end