rbhive-u2i 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module RBHive
2
+ class TCLIResultSet < ResultSet; end
3
+ end
@@ -0,0 +1,89 @@
1
+ require 'json'
2
+ require File.join(File.dirname(__FILE__), *%w[.. thrift t_c_l_i_service_constants])
3
+
4
+ module RBHive
5
+ class TCLISchemaDefinition
6
+ attr_reader :schema
7
+
8
+ NAN = Float::NAN rescue 0.0/0.0
9
+ INFINITY = Float::INFINITY rescue 1.0/0.0
10
+ TYPES = {
11
+ :boolean => :to_s,
12
+ :string => :to_s,
13
+ :float => :to_f,
14
+ :double => :to_f,
15
+ :int => :to_i,
16
+ :bigint => :to_i,
17
+ :smallint => :to_i,
18
+ :tinyint => :to_i,
19
+ }
20
+
21
+ def initialize(schema, example_row)
22
+ @schema = schema
23
+ @example_row = example_row ? example_row.colVals : []
24
+ end
25
+
26
+ def column_names
27
+ @column_names ||= begin
28
+ schema_names = @schema.columns.map {|c| c.columnName }
29
+
30
+ # In rare cases Hive can return two identical column names
31
+ # consider SELECT a.foo, b.foo...
32
+ # in this case you get two columns called foo with no disambiguation.
33
+ # as a (far from ideal) solution we detect this edge case and rename them
34
+ # a.foo => foo1, b.foo => foo2
35
+ # otherwise we will trample one of the columns during Hash mapping.
36
+ s = Hash.new(0)
37
+ schema_names.map! { |c| s[c] += 1; s[c] > 1 ? "#{c}---|---#{s[c]}" : c }
38
+ schema_names.map! { |c| s[c] > 1 ? "#{c}---|---1" : c }
39
+ schema_names.map! { |c| c.gsub('---|---', '_').to_sym }
40
+
41
+ # Lets fix the fact that Hive doesn't return schema data for partitions on SELECT * queries
42
+ # For now we will call them :_p1, :_p2, etc. to avoid collisions.
43
+ offset = 0
44
+ while schema_names.length < @example_row.length
45
+ schema_names.push(:"_p#{offset+=1}")
46
+ end
47
+ schema_names
48
+ end
49
+ end
50
+
51
+ def column_type_map
52
+ @column_type_map ||= column_names.inject({}) do |hsh, c|
53
+ definition = @schema.columns.find {|s| s.columnName.to_sym == c }
54
+ # If the column isn't in the schema (eg partitions in SELECT * queries) assume they are strings
55
+ type = Hive2::Thrift::TYPE_NAMES[definition.typeDesc.types.first.primitiveEntry.type].downcase rescue nil
56
+ hsh[c] = definition && type ? type.to_sym : :string
57
+ hsh
58
+ end
59
+ end
60
+
61
+ def coerce_row(row)
62
+ column_names.zip(row.colVals.map(&:get_value).map(&:value)).inject({}) do |hsh, (column_name, value)|
63
+ hsh[column_name] = coerce_column(column_name, value)
64
+ hsh
65
+ end
66
+ end
67
+
68
+ def coerce_column(column_name, value)
69
+ return nil if value.nil?
70
+ type = column_type_map[column_name]
71
+ return INFINITY if (type != :string && value == "Infinity")
72
+ return NAN if (type != :string && value == "NaN")
73
+ return coerce_complex_value(value) if type.to_s =~ /^array/
74
+ conversion_method = TYPES[type]
75
+ conversion_method ? value.send(conversion_method) : value
76
+ end
77
+
78
+ def coerce_row_to_array(row)
79
+ column_names.map { |n| row[n] }
80
+ end
81
+
82
+ def coerce_complex_value(value)
83
+ return nil if value.nil?
84
+ return nil if value.length == 0
85
+ return nil if value == 'null'
86
+ JSON.parse(value)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,122 @@
1
+ module RBHive
2
+ class TableSchema
3
+ attr_accessor :name
4
+ attr_reader :columns, :partitions
5
+ def initialize(name, comment=nil, options={}, &blk)
6
+ @name, @comment = name, comment
7
+ @location = options[:location] || nil
8
+ @field_sep = options[:field_sep] || "\t"
9
+ @line_sep = options[:line_sep] || "\n"
10
+ @collection_sep = options[:collection_sep] || "|"
11
+ @stored_as = options[:stored_as] || :textfile
12
+ @columns = []
13
+ @partitions = []
14
+ @serde_name = nil
15
+ @serde_properties = {}
16
+ instance_eval(&blk) if blk
17
+ end
18
+
19
+ def column(name, type, comment=nil)
20
+ @columns << Column.new(name, type, comment)
21
+ end
22
+
23
+ def partition(name, type, comment=nil)
24
+ @partitions << Column.new(name, type, comment)
25
+ end
26
+
27
+ def serde(name, properties={})
28
+ @serde_name = name
29
+ @serde_properties = properties
30
+ end
31
+
32
+ def create_table_statement()
33
+ %[CREATE #{external}TABLE #{table_statement}
34
+ ROW FORMAT #{row_format_statement}
35
+ STORED AS #{stored_as}
36
+ #{location}]
37
+ end
38
+
39
+ def stored_as
40
+ @stored_as.to_s.upcase
41
+ end
42
+
43
+ def row_format_statement
44
+ if @serde_name
45
+ serde_statement
46
+ else
47
+ delimited_statement
48
+ end
49
+ end
50
+
51
+ def delimited_statement
52
+ %(DELIMITED
53
+ FIELDS TERMINATED BY '#{@field_sep}'
54
+ COLLECTION ITEMS TERMINATED BY '#{@collection_sep}'
55
+ LINES TERMINATED BY '#{@line_sep}')
56
+ end
57
+
58
+ def serde_statement
59
+ %(SERDE '#{@serde_name}'\n#{serde_properties_statement})
60
+ end
61
+
62
+ def serde_properties_statement
63
+ return '' unless @serde_properties.any?
64
+ kvs = @serde_properties.map { |k,v| %("#{k}" = "#{v}") }.join(",\n")
65
+ %(WITH SERDEPROPERTIES (#{kvs}))
66
+ end
67
+
68
+ def replace_columns_statement
69
+ alter_columns_statement("REPLACE")
70
+ end
71
+
72
+ def add_columns_statement
73
+ alter_columns_statement("ADD")
74
+ end
75
+
76
+ def to_s
77
+ table_statement
78
+ end
79
+
80
+ private
81
+
82
+ def external
83
+ @location.nil? ? '' : 'EXTERNAL '
84
+ end
85
+
86
+ def table_statement
87
+ comment_string = (@comment.nil? ? '' : " COMMENT '#{@comment}'")
88
+ %[`#{@name}` #{column_statement}#{comment_string}\n#{partition_statement}]
89
+ end
90
+
91
+ def location
92
+ @location.nil? ? '' : "LOCATION '#{@location}'"
93
+ end
94
+
95
+ def alter_columns_statement(add_or_replace)
96
+ %[ALTER TABLE `#{name}` #{add_or_replace} COLUMNS #{column_statement}]
97
+ end
98
+
99
+ def column_statement
100
+ cols = @columns.join(",\n")
101
+ "(\n#{cols}\n)"
102
+ end
103
+
104
+ def partition_statement
105
+ return "" if @partitions.nil? || @partitions.empty?
106
+ cols = @partitions.join(",\n")
107
+ "PARTITIONED BY (\n#{cols}\n)"
108
+ end
109
+
110
+ class Column
111
+ attr_reader :name, :type, :comment
112
+ def initialize(name, type, comment=nil)
113
+ @name, @type, @comment = name, type, comment
114
+ end
115
+
116
+ def to_s
117
+ comment_string = @comment.nil? ? '' : " COMMENT '#{@comment}'"
118
+ "`#{@name}` #{@type.to_s.upcase}#{comment_string}"
119
+ end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,3 @@
1
+ module RBHive
2
+ VERSION = '1.0.0'
3
+ end
@@ -0,0 +1,700 @@
1
+ #
2
+ # Autogenerated by Thrift Compiler (0.9.0)
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require_relative 'fb303_types'
9
+
10
+ module FacebookService
11
+ class Client
12
+ include ::Thrift::Client
13
+
14
+ def getName()
15
+ send_getName()
16
+ return recv_getName()
17
+ end
18
+
19
+ def send_getName()
20
+ send_message('getName', GetName_args)
21
+ end
22
+
23
+ def recv_getName()
24
+ result = receive_message(GetName_result)
25
+ return result.success unless result.success.nil?
26
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getName failed: unknown result')
27
+ end
28
+
29
+ def getVersion()
30
+ send_getVersion()
31
+ return recv_getVersion()
32
+ end
33
+
34
+ def send_getVersion()
35
+ send_message('getVersion', GetVersion_args)
36
+ end
37
+
38
+ def recv_getVersion()
39
+ result = receive_message(GetVersion_result)
40
+ return result.success unless result.success.nil?
41
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getVersion failed: unknown result')
42
+ end
43
+
44
+ def getStatus()
45
+ send_getStatus()
46
+ return recv_getStatus()
47
+ end
48
+
49
+ def send_getStatus()
50
+ send_message('getStatus', GetStatus_args)
51
+ end
52
+
53
+ def recv_getStatus()
54
+ result = receive_message(GetStatus_result)
55
+ return result.success unless result.success.nil?
56
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getStatus failed: unknown result')
57
+ end
58
+
59
+ def getStatusDetails()
60
+ send_getStatusDetails()
61
+ return recv_getStatusDetails()
62
+ end
63
+
64
+ def send_getStatusDetails()
65
+ send_message('getStatusDetails', GetStatusDetails_args)
66
+ end
67
+
68
+ def recv_getStatusDetails()
69
+ result = receive_message(GetStatusDetails_result)
70
+ return result.success unless result.success.nil?
71
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getStatusDetails failed: unknown result')
72
+ end
73
+
74
+ def getCounters()
75
+ send_getCounters()
76
+ return recv_getCounters()
77
+ end
78
+
79
+ def send_getCounters()
80
+ send_message('getCounters', GetCounters_args)
81
+ end
82
+
83
+ def recv_getCounters()
84
+ result = receive_message(GetCounters_result)
85
+ return result.success unless result.success.nil?
86
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCounters failed: unknown result')
87
+ end
88
+
89
+ def getCounter(key)
90
+ send_getCounter(key)
91
+ return recv_getCounter()
92
+ end
93
+
94
+ def send_getCounter(key)
95
+ send_message('getCounter', GetCounter_args, :key => key)
96
+ end
97
+
98
+ def recv_getCounter()
99
+ result = receive_message(GetCounter_result)
100
+ return result.success unless result.success.nil?
101
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCounter failed: unknown result')
102
+ end
103
+
104
+ def setOption(key, value)
105
+ send_setOption(key, value)
106
+ recv_setOption()
107
+ end
108
+
109
+ def send_setOption(key, value)
110
+ send_message('setOption', SetOption_args, :key => key, :value => value)
111
+ end
112
+
113
+ def recv_setOption()
114
+ result = receive_message(SetOption_result)
115
+ return
116
+ end
117
+
118
+ def getOption(key)
119
+ send_getOption(key)
120
+ return recv_getOption()
121
+ end
122
+
123
+ def send_getOption(key)
124
+ send_message('getOption', GetOption_args, :key => key)
125
+ end
126
+
127
+ def recv_getOption()
128
+ result = receive_message(GetOption_result)
129
+ return result.success unless result.success.nil?
130
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getOption failed: unknown result')
131
+ end
132
+
133
+ def getOptions()
134
+ send_getOptions()
135
+ return recv_getOptions()
136
+ end
137
+
138
+ def send_getOptions()
139
+ send_message('getOptions', GetOptions_args)
140
+ end
141
+
142
+ def recv_getOptions()
143
+ result = receive_message(GetOptions_result)
144
+ return result.success unless result.success.nil?
145
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getOptions failed: unknown result')
146
+ end
147
+
148
+ def getCpuProfile(profileDurationInSec)
149
+ send_getCpuProfile(profileDurationInSec)
150
+ return recv_getCpuProfile()
151
+ end
152
+
153
+ def send_getCpuProfile(profileDurationInSec)
154
+ send_message('getCpuProfile', GetCpuProfile_args, :profileDurationInSec => profileDurationInSec)
155
+ end
156
+
157
+ def recv_getCpuProfile()
158
+ result = receive_message(GetCpuProfile_result)
159
+ return result.success unless result.success.nil?
160
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCpuProfile failed: unknown result')
161
+ end
162
+
163
+ def aliveSince()
164
+ send_aliveSince()
165
+ return recv_aliveSince()
166
+ end
167
+
168
+ def send_aliveSince()
169
+ send_message('aliveSince', AliveSince_args)
170
+ end
171
+
172
+ def recv_aliveSince()
173
+ result = receive_message(AliveSince_result)
174
+ return result.success unless result.success.nil?
175
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'aliveSince failed: unknown result')
176
+ end
177
+
178
+ def reinitialize()
179
+ send_reinitialize()
180
+ end
181
+
182
+ def send_reinitialize()
183
+ send_message('reinitialize', Reinitialize_args)
184
+ end
185
+ def shutdown()
186
+ send_shutdown()
187
+ end
188
+
189
+ def send_shutdown()
190
+ send_message('shutdown', Shutdown_args)
191
+ end
192
+ end
193
+
194
+ class Processor
195
+ include ::Thrift::Processor
196
+
197
+ def process_getName(seqid, iprot, oprot)
198
+ args = read_args(iprot, GetName_args)
199
+ result = GetName_result.new()
200
+ result.success = @handler.getName()
201
+ write_result(result, oprot, 'getName', seqid)
202
+ end
203
+
204
+ def process_getVersion(seqid, iprot, oprot)
205
+ args = read_args(iprot, GetVersion_args)
206
+ result = GetVersion_result.new()
207
+ result.success = @handler.getVersion()
208
+ write_result(result, oprot, 'getVersion', seqid)
209
+ end
210
+
211
+ def process_getStatus(seqid, iprot, oprot)
212
+ args = read_args(iprot, GetStatus_args)
213
+ result = GetStatus_result.new()
214
+ result.success = @handler.getStatus()
215
+ write_result(result, oprot, 'getStatus', seqid)
216
+ end
217
+
218
+ def process_getStatusDetails(seqid, iprot, oprot)
219
+ args = read_args(iprot, GetStatusDetails_args)
220
+ result = GetStatusDetails_result.new()
221
+ result.success = @handler.getStatusDetails()
222
+ write_result(result, oprot, 'getStatusDetails', seqid)
223
+ end
224
+
225
+ def process_getCounters(seqid, iprot, oprot)
226
+ args = read_args(iprot, GetCounters_args)
227
+ result = GetCounters_result.new()
228
+ result.success = @handler.getCounters()
229
+ write_result(result, oprot, 'getCounters', seqid)
230
+ end
231
+
232
+ def process_getCounter(seqid, iprot, oprot)
233
+ args = read_args(iprot, GetCounter_args)
234
+ result = GetCounter_result.new()
235
+ result.success = @handler.getCounter(args.key)
236
+ write_result(result, oprot, 'getCounter', seqid)
237
+ end
238
+
239
+ def process_setOption(seqid, iprot, oprot)
240
+ args = read_args(iprot, SetOption_args)
241
+ result = SetOption_result.new()
242
+ @handler.setOption(args.key, args.value)
243
+ write_result(result, oprot, 'setOption', seqid)
244
+ end
245
+
246
+ def process_getOption(seqid, iprot, oprot)
247
+ args = read_args(iprot, GetOption_args)
248
+ result = GetOption_result.new()
249
+ result.success = @handler.getOption(args.key)
250
+ write_result(result, oprot, 'getOption', seqid)
251
+ end
252
+
253
+ def process_getOptions(seqid, iprot, oprot)
254
+ args = read_args(iprot, GetOptions_args)
255
+ result = GetOptions_result.new()
256
+ result.success = @handler.getOptions()
257
+ write_result(result, oprot, 'getOptions', seqid)
258
+ end
259
+
260
+ def process_getCpuProfile(seqid, iprot, oprot)
261
+ args = read_args(iprot, GetCpuProfile_args)
262
+ result = GetCpuProfile_result.new()
263
+ result.success = @handler.getCpuProfile(args.profileDurationInSec)
264
+ write_result(result, oprot, 'getCpuProfile', seqid)
265
+ end
266
+
267
+ def process_aliveSince(seqid, iprot, oprot)
268
+ args = read_args(iprot, AliveSince_args)
269
+ result = AliveSince_result.new()
270
+ result.success = @handler.aliveSince()
271
+ write_result(result, oprot, 'aliveSince', seqid)
272
+ end
273
+
274
+ def process_reinitialize(seqid, iprot, oprot)
275
+ args = read_args(iprot, Reinitialize_args)
276
+ @handler.reinitialize()
277
+ return
278
+ end
279
+
280
+ def process_shutdown(seqid, iprot, oprot)
281
+ args = read_args(iprot, Shutdown_args)
282
+ @handler.shutdown()
283
+ return
284
+ end
285
+
286
+ end
287
+
288
+ # HELPER FUNCTIONS AND STRUCTURES
289
+
290
+ class GetName_args
291
+ include ::Thrift::Struct, ::Thrift::Struct_Union
292
+
293
+ FIELDS = {
294
+
295
+ }
296
+
297
+ def struct_fields; FIELDS; end
298
+
299
+ def validate
300
+ end
301
+
302
+ ::Thrift::Struct.generate_accessors self
303
+ end
304
+
305
+ class GetName_result
306
+ include ::Thrift::Struct, ::Thrift::Struct_Union
307
+ SUCCESS = 0
308
+
309
+ FIELDS = {
310
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
311
+ }
312
+
313
+ def struct_fields; FIELDS; end
314
+
315
+ def validate
316
+ end
317
+
318
+ ::Thrift::Struct.generate_accessors self
319
+ end
320
+
321
+ class GetVersion_args
322
+ include ::Thrift::Struct, ::Thrift::Struct_Union
323
+
324
+ FIELDS = {
325
+
326
+ }
327
+
328
+ def struct_fields; FIELDS; end
329
+
330
+ def validate
331
+ end
332
+
333
+ ::Thrift::Struct.generate_accessors self
334
+ end
335
+
336
+ class GetVersion_result
337
+ include ::Thrift::Struct, ::Thrift::Struct_Union
338
+ SUCCESS = 0
339
+
340
+ FIELDS = {
341
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
342
+ }
343
+
344
+ def struct_fields; FIELDS; end
345
+
346
+ def validate
347
+ end
348
+
349
+ ::Thrift::Struct.generate_accessors self
350
+ end
351
+
352
+ class GetStatus_args
353
+ include ::Thrift::Struct, ::Thrift::Struct_Union
354
+
355
+ FIELDS = {
356
+
357
+ }
358
+
359
+ def struct_fields; FIELDS; end
360
+
361
+ def validate
362
+ end
363
+
364
+ ::Thrift::Struct.generate_accessors self
365
+ end
366
+
367
+ class GetStatus_result
368
+ include ::Thrift::Struct, ::Thrift::Struct_Union
369
+ SUCCESS = 0
370
+
371
+ FIELDS = {
372
+ SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success', :enum_class => ::Fb_status}
373
+ }
374
+
375
+ def struct_fields; FIELDS; end
376
+
377
+ def validate
378
+ unless @success.nil? || ::Fb_status::VALID_VALUES.include?(@success)
379
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field success!')
380
+ end
381
+ end
382
+
383
+ ::Thrift::Struct.generate_accessors self
384
+ end
385
+
386
+ class GetStatusDetails_args
387
+ include ::Thrift::Struct, ::Thrift::Struct_Union
388
+
389
+ FIELDS = {
390
+
391
+ }
392
+
393
+ def struct_fields; FIELDS; end
394
+
395
+ def validate
396
+ end
397
+
398
+ ::Thrift::Struct.generate_accessors self
399
+ end
400
+
401
+ class GetStatusDetails_result
402
+ include ::Thrift::Struct, ::Thrift::Struct_Union
403
+ SUCCESS = 0
404
+
405
+ FIELDS = {
406
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
407
+ }
408
+
409
+ def struct_fields; FIELDS; end
410
+
411
+ def validate
412
+ end
413
+
414
+ ::Thrift::Struct.generate_accessors self
415
+ end
416
+
417
+ class GetCounters_args
418
+ include ::Thrift::Struct, ::Thrift::Struct_Union
419
+
420
+ FIELDS = {
421
+
422
+ }
423
+
424
+ def struct_fields; FIELDS; end
425
+
426
+ def validate
427
+ end
428
+
429
+ ::Thrift::Struct.generate_accessors self
430
+ end
431
+
432
+ class GetCounters_result
433
+ include ::Thrift::Struct, ::Thrift::Struct_Union
434
+ SUCCESS = 0
435
+
436
+ FIELDS = {
437
+ SUCCESS => {:type => ::Thrift::Types::MAP, :name => 'success', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::I64}}
438
+ }
439
+
440
+ def struct_fields; FIELDS; end
441
+
442
+ def validate
443
+ end
444
+
445
+ ::Thrift::Struct.generate_accessors self
446
+ end
447
+
448
+ class GetCounter_args
449
+ include ::Thrift::Struct, ::Thrift::Struct_Union
450
+ KEY = 1
451
+
452
+ FIELDS = {
453
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
454
+ }
455
+
456
+ def struct_fields; FIELDS; end
457
+
458
+ def validate
459
+ end
460
+
461
+ ::Thrift::Struct.generate_accessors self
462
+ end
463
+
464
+ class GetCounter_result
465
+ include ::Thrift::Struct, ::Thrift::Struct_Union
466
+ SUCCESS = 0
467
+
468
+ FIELDS = {
469
+ SUCCESS => {:type => ::Thrift::Types::I64, :name => 'success'}
470
+ }
471
+
472
+ def struct_fields; FIELDS; end
473
+
474
+ def validate
475
+ end
476
+
477
+ ::Thrift::Struct.generate_accessors self
478
+ end
479
+
480
+ class SetOption_args
481
+ include ::Thrift::Struct, ::Thrift::Struct_Union
482
+ KEY = 1
483
+ VALUE = 2
484
+
485
+ FIELDS = {
486
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'},
487
+ VALUE => {:type => ::Thrift::Types::STRING, :name => 'value'}
488
+ }
489
+
490
+ def struct_fields; FIELDS; end
491
+
492
+ def validate
493
+ end
494
+
495
+ ::Thrift::Struct.generate_accessors self
496
+ end
497
+
498
+ class SetOption_result
499
+ include ::Thrift::Struct, ::Thrift::Struct_Union
500
+
501
+ FIELDS = {
502
+
503
+ }
504
+
505
+ def struct_fields; FIELDS; end
506
+
507
+ def validate
508
+ end
509
+
510
+ ::Thrift::Struct.generate_accessors self
511
+ end
512
+
513
+ class GetOption_args
514
+ include ::Thrift::Struct, ::Thrift::Struct_Union
515
+ KEY = 1
516
+
517
+ FIELDS = {
518
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
519
+ }
520
+
521
+ def struct_fields; FIELDS; end
522
+
523
+ def validate
524
+ end
525
+
526
+ ::Thrift::Struct.generate_accessors self
527
+ end
528
+
529
+ class GetOption_result
530
+ include ::Thrift::Struct, ::Thrift::Struct_Union
531
+ SUCCESS = 0
532
+
533
+ FIELDS = {
534
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
535
+ }
536
+
537
+ def struct_fields; FIELDS; end
538
+
539
+ def validate
540
+ end
541
+
542
+ ::Thrift::Struct.generate_accessors self
543
+ end
544
+
545
+ class GetOptions_args
546
+ include ::Thrift::Struct, ::Thrift::Struct_Union
547
+
548
+ FIELDS = {
549
+
550
+ }
551
+
552
+ def struct_fields; FIELDS; end
553
+
554
+ def validate
555
+ end
556
+
557
+ ::Thrift::Struct.generate_accessors self
558
+ end
559
+
560
+ class GetOptions_result
561
+ include ::Thrift::Struct, ::Thrift::Struct_Union
562
+ SUCCESS = 0
563
+
564
+ FIELDS = {
565
+ SUCCESS => {:type => ::Thrift::Types::MAP, :name => 'success', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}}
566
+ }
567
+
568
+ def struct_fields; FIELDS; end
569
+
570
+ def validate
571
+ end
572
+
573
+ ::Thrift::Struct.generate_accessors self
574
+ end
575
+
576
+ class GetCpuProfile_args
577
+ include ::Thrift::Struct, ::Thrift::Struct_Union
578
+ PROFILEDURATIONINSEC = 1
579
+
580
+ FIELDS = {
581
+ PROFILEDURATIONINSEC => {:type => ::Thrift::Types::I32, :name => 'profileDurationInSec'}
582
+ }
583
+
584
+ def struct_fields; FIELDS; end
585
+
586
+ def validate
587
+ end
588
+
589
+ ::Thrift::Struct.generate_accessors self
590
+ end
591
+
592
+ class GetCpuProfile_result
593
+ include ::Thrift::Struct, ::Thrift::Struct_Union
594
+ SUCCESS = 0
595
+
596
+ FIELDS = {
597
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
598
+ }
599
+
600
+ def struct_fields; FIELDS; end
601
+
602
+ def validate
603
+ end
604
+
605
+ ::Thrift::Struct.generate_accessors self
606
+ end
607
+
608
+ class AliveSince_args
609
+ include ::Thrift::Struct, ::Thrift::Struct_Union
610
+
611
+ FIELDS = {
612
+
613
+ }
614
+
615
+ def struct_fields; FIELDS; end
616
+
617
+ def validate
618
+ end
619
+
620
+ ::Thrift::Struct.generate_accessors self
621
+ end
622
+
623
+ class AliveSince_result
624
+ include ::Thrift::Struct, ::Thrift::Struct_Union
625
+ SUCCESS = 0
626
+
627
+ FIELDS = {
628
+ SUCCESS => {:type => ::Thrift::Types::I64, :name => 'success'}
629
+ }
630
+
631
+ def struct_fields; FIELDS; end
632
+
633
+ def validate
634
+ end
635
+
636
+ ::Thrift::Struct.generate_accessors self
637
+ end
638
+
639
+ class Reinitialize_args
640
+ include ::Thrift::Struct, ::Thrift::Struct_Union
641
+
642
+ FIELDS = {
643
+
644
+ }
645
+
646
+ def struct_fields; FIELDS; end
647
+
648
+ def validate
649
+ end
650
+
651
+ ::Thrift::Struct.generate_accessors self
652
+ end
653
+
654
+ class Reinitialize_result
655
+ include ::Thrift::Struct, ::Thrift::Struct_Union
656
+
657
+ FIELDS = {
658
+
659
+ }
660
+
661
+ def struct_fields; FIELDS; end
662
+
663
+ def validate
664
+ end
665
+
666
+ ::Thrift::Struct.generate_accessors self
667
+ end
668
+
669
+ class Shutdown_args
670
+ include ::Thrift::Struct, ::Thrift::Struct_Union
671
+
672
+ FIELDS = {
673
+
674
+ }
675
+
676
+ def struct_fields; FIELDS; end
677
+
678
+ def validate
679
+ end
680
+
681
+ ::Thrift::Struct.generate_accessors self
682
+ end
683
+
684
+ class Shutdown_result
685
+ include ::Thrift::Struct, ::Thrift::Struct_Union
686
+
687
+ FIELDS = {
688
+
689
+ }
690
+
691
+ def struct_fields; FIELDS; end
692
+
693
+ def validate
694
+ end
695
+
696
+ ::Thrift::Struct.generate_accessors self
697
+ end
698
+
699
+ end
700
+