Class: Gloo::Objs::Mysql

Inherits:
Core::Obj show all
Defined in:
lib/gloo/objs/data/mysql.rb

Constant Summary collapse

KEYWORD =
'mysql'.freeze
KEYWORD_SHORT =
'mysql'.freeze
HOST =
'host'.freeze
DB =
'database'.freeze
USER =
'username'.freeze
PASSWD =
'password'.freeze

Constants inherited from Core::Baseo

Core::Baseo::NOT_IMPLEMENTED_ERR

Instance Attribute Summary

Attributes inherited from Core::Obj

#children, #parent, #value

Attributes inherited from Core::Baseo

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Core::Obj

#add_child, can_create?, #can_receive_message?, #child_count, #contains_child?, #delete_children, #dispatch, #display_value, #find_add_child, #find_child, help, inherited, #initialize, #msg_reload, #msg_unload, #multiline_value?, #pn, #remove_child, #root?, #send_message, #set_parent, #set_value, #type_display, #value_display, #value_is_array?, #value_is_blank?, #value_string?

Methods inherited from Core::Baseo

#initialize, #type_display

Constructor Details

This class inherits a constructor from Gloo::Core::Obj

Class Method Details

.messagesObject

Get a list of message names that this object receives.



80
81
82
# File 'lib/gloo/objs/data/mysql.rb', line 80

def self.messages
  return super + [ 'verify' ]
end

.short_typenameObject

The short name of the object type.



43
44
45
# File 'lib/gloo/objs/data/mysql.rb', line 43

def self.short_typename
  return KEYWORD_SHORT
end

.typenameObject

The name of the object type.



36
37
38
# File 'lib/gloo/objs/data/mysql.rb', line 36

def self.typename
  return KEYWORD
end

Instance Method Details

#add_children_on_create?Boolean

Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.

Returns:



56
57
58
# File 'lib/gloo/objs/data/mysql.rb', line 56

def add_children_on_create?
  return true
end

#add_default_childrenObject

Add children to this object. This is used by containers to add children needed for default configurations.



65
66
67
68
69
70
71
# File 'lib/gloo/objs/data/mysql.rb', line 65

def add_default_children
  fac = @engine.factory
  fac.create_string HOST, nil, self
  fac.create_string DB, nil, self
  fac.create_string USER, nil, self
  fac.create_string PASSWD, nil, self
end

#msg_verifyObject

SSH to the host and execute the command, then update result.



87
88
89
90
91
# File 'lib/gloo/objs/data/mysql.rb', line 87

def msg_verify
  return unless connects?

  @engine.heap.it.set_to true
end

#query(sql, params = nil) ⇒ Object

Open a connection and execute the SQL statement. Return the resulting data.



101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# File 'lib/gloo/objs/data/mysql.rb', line 101

def query( sql, params = nil )
  h = {
    host: host_value,
    database: db_value,
    username: user_value,
    password: passwd_value
  }
  client = Mysql2::Client.new( h )

  heads = []
  data = []
  if params
    pst = client.prepare( sql )
    rs = pst.execute( *params, :as => :array )
    if rs
      rs.each do |row|
        arr = []
        row.each do |o| 
          arr << o
        end
        data << arr
      end
    end
  else
    rs = client.query( sql, :as => :array ) 
    if rs
      rs.each do |row|
        data << row
      end
    end
  end

  heads = rs.fields if rs
  return [ heads, data ]
end