Class: SensuPluginsOracle::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/sensu-plugins-oracle/session.rb

Constant Summary collapse

PRIVILEDGES =
[:SYSDBA, :SYSOPER, :SYSASM, :SYSBACKUP, :SYSDG, :SYSKM]

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ Session

Returns a new instance of Session.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/sensu-plugins-oracle/session.rb', line 12

def initialize(args)
  @name = args[:name]
  @error_message = nil

  @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)
end

Instance Attribute Details

#connect_stringObject (readonly)

Returns the value of attribute connect_string.



5
6
7
# File 'lib/sensu-plugins-oracle/session.rb', line 5

def connect_string
  @connect_string
end

#databaseObject (readonly)

Returns the value of attribute database.



6
7
8
# File 'lib/sensu-plugins-oracle/session.rb', line 6

def database
  @database
end

#error_messageObject (readonly)

Returns the value of attribute error_message.



4
5
6
# File 'lib/sensu-plugins-oracle/session.rb', line 4

def error_message
  @error_message
end

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/sensu-plugins-oracle/session.rb', line 4

def name
  @name
end

#passwordObject (readonly)

Returns the value of attribute password.



6
7
8
# File 'lib/sensu-plugins-oracle/session.rb', line 6

def password
  @password
end

#priviledgeObject (readonly)

Returns the value of attribute priviledge.



6
7
8
# File 'lib/sensu-plugins-oracle/session.rb', line 6

def priviledge
  @priviledge
end

#server_versionObject (readonly)

Returns the value of attribute server_version.



8
9
10
# File 'lib/sensu-plugins-oracle/session.rb', line 8

def server_version
  @server_version
end

#usernameObject (readonly)

Returns the value of attribute username.



6
7
8
# File 'lib/sensu-plugins-oracle/session.rb', line 6

def username
  @username
end

Class Method Details

.parse_from_file(file) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/sensu-plugins-oracle/session.rb', line 24

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])
    end
  end

  return sessions
end

Instance Method Details

#alive?Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/sensu-plugins-oracle/session.rb', line 39

def alive?
  connection = OCI8.new(@connect_string) if @connect_string
  connection = OCI8.new(@username, @password, @database) if @username

  @server_version = connection.oracle_server_version

  true
rescue OCIError => e
  @error_message = [@name, e.message.split("\n").first].compact.join(": ")
  false
ensure
  connection.logoff if connection
end