Class: Inspec::Resources::OracledbSession
- Inherits:
-
Object
- Object
- Inspec::Resources::OracledbSession
- Defined in:
- lib/resources/oracledb_session.rb
Instance Attribute Summary collapse
-
#host ⇒ Object
readonly
Returns the value of attribute host.
-
#pass ⇒ Object
readonly
Returns the value of attribute pass.
-
#sid ⇒ Object
readonly
Returns the value of attribute sid.
-
#sqlplus_bin ⇒ Object
readonly
Returns the value of attribute sqlplus_bin.
-
#user ⇒ Object
readonly
Returns the value of attribute user.
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ OracledbSession
constructor
A new instance of OracledbSession.
- #query(q) ⇒ Object
- #to_s ⇒ Object
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
#host ⇒ Object (readonly)
Returns the value of attribute host.
16 17 18 |
# File 'lib/resources/oracledb_session.rb', line 16 def host @host end |
#pass ⇒ Object (readonly)
Returns the value of attribute pass.
16 17 18 |
# File 'lib/resources/oracledb_session.rb', line 16 def pass @pass end |
#sid ⇒ Object (readonly)
Returns the value of attribute sid.
16 17 18 |
# File 'lib/resources/oracledb_session.rb', line 16 def sid @sid end |
#sqlplus_bin ⇒ Object (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 |
#user ⇒ Object (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_s ⇒ Object
38 39 40 |
# File 'lib/resources/oracledb_session.rb', line 38 def to_s 'Oracle Session' end |