Class: SensuPluginsOracle::Session
- Inherits:
-
Object
- Object
- SensuPluginsOracle::Session
- Defined in:
- lib/sensu-plugins-oracle/session.rb
Constant Summary collapse
- PRIVILEDGES =
[:SYSDBA, :SYSOPER, :SYSASM, :SYSBACKUP, :SYSDG, :SYSKM]
Instance Attribute Summary collapse
-
#connect_string ⇒ Object
readonly
Returns the value of attribute connect_string.
-
#database ⇒ Object
readonly
Returns the value of attribute database.
-
#error_message ⇒ Object
readonly
Returns the value of attribute error_message.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#password ⇒ Object
readonly
Returns the value of attribute password.
-
#priviledge ⇒ Object
readonly
Returns the value of attribute priviledge.
-
#rows ⇒ Object
Returns the value of attribute rows.
-
#server_version ⇒ Object
readonly
Returns the value of attribute server_version.
-
#username ⇒ Object
readonly
Returns the value of attribute username.
Class Method Summary collapse
Instance Method Summary collapse
- #alive? ⇒ Boolean
- #handle_query_result(config = {}) ⇒ Object
-
#initialize(args) ⇒ Session
constructor
A new instance of Session.
- #query(query_string) ⇒ Object
Constructor Details
#initialize(args) ⇒ Session
16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/sensu-plugins-oracle/session.rb', line 16 def initialize(args) @name = args[:name] @error_message = nil @rows = [] @connect_string = args[:connect_string] @username = args[:username] @password = args[:password] @database = args[:database] @priviledge = args[:priviledge].upcase.to_sym if args[:priviledge] && PRIVILEDGES.include?(args[:priviledge].upcase.to_sym) @provide_name_in_result = args[:provide_name_in_result] || false end |
Instance Attribute Details
#connect_string ⇒ Object (readonly)
Returns the value of attribute connect_string.
7 8 9 |
# File 'lib/sensu-plugins-oracle/session.rb', line 7 def connect_string @connect_string end |
#database ⇒ Object (readonly)
Returns the value of attribute database.
8 9 10 |
# File 'lib/sensu-plugins-oracle/session.rb', line 8 def database @database end |
#error_message ⇒ Object (readonly)
Returns the value of attribute error_message.
6 7 8 |
# File 'lib/sensu-plugins-oracle/session.rb', line 6 def @error_message end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/sensu-plugins-oracle/session.rb', line 6 def name @name end |
#password ⇒ Object (readonly)
Returns the value of attribute password.
8 9 10 |
# File 'lib/sensu-plugins-oracle/session.rb', line 8 def password @password end |
#priviledge ⇒ Object (readonly)
Returns the value of attribute priviledge.
8 9 10 |
# File 'lib/sensu-plugins-oracle/session.rb', line 8 def priviledge @priviledge end |
#rows ⇒ Object
Returns the value of attribute rows.
12 13 14 |
# File 'lib/sensu-plugins-oracle/session.rb', line 12 def rows @rows end |
#server_version ⇒ Object (readonly)
Returns the value of attribute server_version.
10 11 12 |
# File 'lib/sensu-plugins-oracle/session.rb', line 10 def server_version @server_version end |
#username ⇒ Object (readonly)
Returns the value of attribute username.
8 9 10 |
# File 'lib/sensu-plugins-oracle/session.rb', line 8 def username @username end |
Class Method Details
.parse_from_file(file) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/sensu-plugins-oracle/session.rb', line 31 def self.parse_from_file(file) sessions = [] File.open(file) do |input| input.each_line do |line| line.strip! next if line.size == 0 || line =~ /^#/ a = line.split(/:|,|;/) sessions << Session.new(name: a[0], connect_string: a[1], provide_name_in_result: true) end end return sessions end |
.set_timeout_properties(timeout) ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/sensu-plugins-oracle/session.rb', line 89 def self.set_timeout_properties(timeout) return unless timeout timeout = timeout.to_i OCI8.properties[:tcp_connect_timeout] = timeout OCI8.properties[:connect_timeout] = timeout OCI8.properties[:send_timeout] = timeout OCI8.properties[:recv_timeout] = timeout end |
Instance Method Details
#alive? ⇒ Boolean
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/sensu-plugins-oracle/session.rb', line 46 def alive? connect @server_version = @connection.oracle_server_version true rescue StandardError, OCIError => e @error_message = [@name, e..split("\n").first].compact.join(": ") false ensure disconnect end |
#handle_query_result(config = {}) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/sensu-plugins-oracle/session.rb', line 75 def handle_query_result(config={}) # check if query is ok, warning, or critical value = @rows.size value = @rows[0][0].to_f if @rows[0] && !config[:tuples] calc = Dentaku::Calculator.new method = :ok method = :warning if config[:warning] && calc.evaluate(config[:warning], value: value) method = :critical if config[:critical] && calc.evaluate(config[:critical], value: value) return method, show(config[:show]) end |
#query(query_string) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/sensu-plugins-oracle/session.rb', line 57 def query(query_string) connect @rows = [] cursor = @connection.exec(query_string) @rows = [] while (row = cursor.fetch) @rows << row end cursor.close return true rescue StandardError, OCIError => e @error_message = [@name, e..split("\n").first].compact.join(": ") return false end |