Class: HbaseRestIface::Client

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/active_record/connection_adapters/hbase/client.rb

Instance Method Summary collapse

Constructor Details

#initialize(ops) ⇒ Client



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 9

def initialize(ops)
  ops ||= {}
  ops[:host] ||= 'localhost'
  ops[:port] ||= '9191'
  
  @ops = ops
  @query_options = {}
  @info = { :version => '1' }
  
  connect
end

Instance Method Details

#[](key) ⇒ Object



21
22
23
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 21

def [](key)
  @ops[key]
end

#[]=(key, val) ⇒ Object



24
25
26
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 24

def []=(key,val)
  @ops[key]=val
end

#abandon_results!Object



98
99
100
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 98

def abandon_results!
  nil
end

#affected_rowsObject



126
127
128
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 126

def affected_rows
  nil
end

#async_resultObject



118
119
120
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 118

def async_result
  nil
end

#charset_name=(o) ⇒ Object



182
183
184
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 182

def charset_name=(o)
  nil
end

#closeObject



94
95
96
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 94

def close
  nil
end

#connectObject



42
43
44
45
46
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 42

def connect
  self.class.base_uri "#{@ops[:host]}:#{@ops[:port]}"
  #File.open('/tmp/thing.txt', 'a') { |file| file.write("\n\n!!!connect\n#{@ops[:host]}:#{@ops[:port]}") }
  ping
end

#connect_timeout=(o) ⇒ Object



166
167
168
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 166

def connect_timeout=(o)
  nil
end

#default_file=(o) ⇒ Object



190
191
192
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 190

def default_file=(o)
  nil
end

#default_group=(o) ⇒ Object



194
195
196
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 194

def default_group=(o)
  nil
end

#encodingObject



162
163
164
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 162

def encoding
  nil
end

#escape(string) ⇒ Object



102
103
104
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 102

def escape(string)
  string
end

#infoObject



86
87
88
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 86

def info
  @info
end

#init_command=(o) ⇒ Object



198
199
200
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 198

def init_command=(o)
  nil
end

#initialize_extObject



206
207
208
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 206

def initialize_ext
  nil
end

#last_idObject



122
123
124
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 122

def last_id
  nil
end

#local_infile=(o) ⇒ Object



178
179
180
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 178

def local_infile=(o)
  nil
end

#more_results?Boolean



138
139
140
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 138

def more_results?
  nil
end

#next_resultObject



142
143
144
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 142

def next_result
  nil
end

#pingObject



48
49
50
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 48

def ping
  simple_request("/ping")[0]
end

#query(sql) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 28

def query(sql)
  #File.open('/tmp/thing.txt', 'a') { |file| file.write("\n\n!!!query\n#{sql}") }
  query_object = HipsterSqlToHbase.parse_hash(sql)
  #File.open('/tmp/thing.txt', 'a') { |file| file.write("\n#{query_object.inspect}") }
  begin
    #TODO: make these be msgpack instead of json
    result = secure_request("/exec", { body: {query: JSON.generate(query_object)} })
    Hbase::Result.new(result)
  rescue Exception => e  
    #File.open('/tmp/thing.txt', 'a') { |file| file.write("\n\n!!!error\n#{e.message}") }
    Hbase::Result.new()
  end
end

#query_info_stringObject



158
159
160
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 158

def query_info_string
  nil
end

#query_optionsObject



90
91
92
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 90

def query_options
  @query_options
end

#read_timeout=(o) ⇒ Object



170
171
172
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 170

def read_timeout=(o)
  nil
end

#reconnect=Object



150
151
152
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 150

def reconnect=
  nil
end

#secure_auth=(o) ⇒ Object



186
187
188
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 186

def secure_auth=(o)
  nil
end

#secure_request(route, body = nil) ⇒ Object



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 69

def secure_request(route, body=nil)
  if body.nil?
    response = self.class.post(route)
  else
    response = self.class.post(route, body)
  end
  
  if response.code.to_s =~ /2\d\d/
    #TODO: make these be msgpack instead of json
    JSON.parse(response.body)
  else
    error = Nokogiri::HTML(response.body)
    #binding.pry
    raise error.css("title")[0].text
  end
end

#select_dbObject



134
135
136
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 134

def select_db
  nil
end

#server_infoObject



110
111
112
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 110

def server_info
  nil
end

#simple_request(route, query = nil) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 52

def simple_request(route, query=nil)
  if query.nil?
    response = self.class.get(route)
  else
    response = self.class.get(route, query)
  end
  
  if response.code.to_s =~ /2\d\d/
    #TODO: make these be msgpack instead of json
    JSON.parse(response.body)
  else
    error = Nokogiri::HTML(response.body)
    #binding.pry
    raise error.css("title")[0].text
  end
end

#socketObject



114
115
116
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 114

def socket
  nil
end

#ssl_setObject



202
203
204
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 202

def ssl_set
  nil
end

#store_resultObject



146
147
148
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 146

def store_result
  nil
end

#thread_idObject



130
131
132
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 130

def thread_id
  nil
end

#warning_countObject



154
155
156
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 154

def warning_count
  nil
end

#write_timeout=(o) ⇒ Object



174
175
176
# File 'lib/active_record/connection_adapters/hbase/client.rb', line 174

def write_timeout=(o)
  nil
end