td-client 0.8.4 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +7 -0
- data/lib/td/client.rb +97 -12
- data/lib/td/client/api.rb +198 -8
- data/lib/td/client/model.rb +102 -5
- data/lib/td/client/version.rb +1 -1
- metadata +6 -6
data/ChangeLog
CHANGED
data/lib/td/client.rb
CHANGED
@@ -104,30 +104,33 @@ class Client
|
|
104
104
|
end
|
105
105
|
|
106
106
|
# => Job
|
107
|
-
def query(db_name, q)
|
108
|
-
job_id = @api.hive_query(q, db_name)
|
107
|
+
def query(db_name, q, rset=nil)
|
108
|
+
job_id = @api.hive_query(q, db_name, rset)
|
109
109
|
Job.new(self, job_id, :hive, q) # TODO url
|
110
110
|
end
|
111
111
|
|
112
112
|
# => [Job]
|
113
113
|
def jobs(from=nil, to=nil)
|
114
114
|
result = @api.list_jobs(from, to)
|
115
|
-
result.map {|job_id,type,status,query,start_at,end_at|
|
116
|
-
|
115
|
+
result.map {|job_id,type,status,query,start_at,end_at,rset|
|
116
|
+
rset = ResultSet.new(self, rset) if rset
|
117
|
+
Job.new(self, job_id, type, query, status, nil, nil, start_at, end_at, nil, rset)
|
117
118
|
}
|
118
119
|
end
|
119
120
|
|
120
121
|
# => Job
|
121
122
|
def job(job_id)
|
122
123
|
job_id = job_id.to_s
|
123
|
-
type, query, status, url, debug, start_at, end_at = @api.show_job(job_id)
|
124
|
-
|
124
|
+
type, query, status, url, debug, start_at, end_at, rset = @api.show_job(job_id)
|
125
|
+
rset = ResultSet.new(self, rset) if rset
|
126
|
+
Job.new(self, job_id, type, query, status, url, debug, start_at, end_at, nil, rset)
|
125
127
|
end
|
126
128
|
|
127
129
|
# => type:Symbol, url:String
|
128
130
|
def job_status(job_id)
|
129
|
-
type, query, status, url, debug, start_at, end_at = @api.show_job(job_id)
|
130
|
-
|
131
|
+
type, query, status, url, debug, start_at, end_at, rset = @api.show_job(job_id)
|
132
|
+
rset = ResultSet.new(self, rset) if rset
|
133
|
+
return query, status, url, debug, start_at, end_at, rset
|
131
134
|
end
|
132
135
|
|
133
136
|
# => result:[{column:String=>value:Object]
|
@@ -166,16 +169,18 @@ class Client
|
|
166
169
|
# [Schedule]
|
167
170
|
def schedules
|
168
171
|
result = @api.list_schedules
|
169
|
-
result.map {|name,cron,query,database|
|
170
|
-
|
172
|
+
result.map {|name,cron,query,database,rset|
|
173
|
+
rset = ResultSet.new(self, rset) if rset
|
174
|
+
Schedule.new(self, name, cron, query, database, rset)
|
171
175
|
}
|
172
176
|
end
|
173
177
|
|
174
178
|
# [ScheduledJob]
|
175
179
|
def history(name, from=nil, to=nil)
|
176
180
|
result = @api.history(name, from, to)
|
177
|
-
result.map {|scheduled_at,job_id,type,status,query,start_at,end_at|
|
178
|
-
|
181
|
+
result.map {|scheduled_at,job_id,type,status,query,start_at,end_at,rset|
|
182
|
+
rset = ResultSet.new(self, rset) if rset
|
183
|
+
ScheduledJob.new(self, scheduled_at, job_id, type, query, status, nil, nil, start_at, end_at, nil, rset)
|
179
184
|
}
|
180
185
|
end
|
181
186
|
|
@@ -183,6 +188,86 @@ class Client
|
|
183
188
|
def import(db_name, table_name, format, stream, size)
|
184
189
|
@api.import(db_name, table_name, format, stream, size)
|
185
190
|
end
|
191
|
+
|
192
|
+
# => [ResultSet]
|
193
|
+
def result_sets
|
194
|
+
info, names = @api.list_result_set
|
195
|
+
sets = names.map {|name|
|
196
|
+
ResultSet.new(self, name)
|
197
|
+
}
|
198
|
+
return sets
|
199
|
+
end
|
200
|
+
|
201
|
+
# => ResultSetInfo
|
202
|
+
def result_set_info
|
203
|
+
info, names = @api.list_result_set
|
204
|
+
info = ResultSetInfo.new(self, *info)
|
205
|
+
return info
|
206
|
+
end
|
207
|
+
|
208
|
+
# => true
|
209
|
+
def create_result_set(name)
|
210
|
+
@api.create_result_set(name)
|
211
|
+
end
|
212
|
+
|
213
|
+
# => true
|
214
|
+
def delete_result_set(name)
|
215
|
+
@api.delete_result_set(name)
|
216
|
+
end
|
217
|
+
|
218
|
+
# => [AggregationSchema]
|
219
|
+
def aggregation_schemas
|
220
|
+
list = @api.list_aggregation_schema
|
221
|
+
list.map {|name,relation_key|
|
222
|
+
AggregationSchema.new(self, name, relation_key)
|
223
|
+
}
|
224
|
+
end
|
225
|
+
|
226
|
+
# => true
|
227
|
+
def create_aggregation_schema(name, relation_key)
|
228
|
+
@api.create_aggregation_schema(name, relation_key)
|
229
|
+
end
|
230
|
+
|
231
|
+
# => true
|
232
|
+
def delete_aggregation_schema(name)
|
233
|
+
@api.delete_aggregation_schema(name)
|
234
|
+
end
|
235
|
+
|
236
|
+
# => AggregationSchema
|
237
|
+
def aggregation_schema(name)
|
238
|
+
relation_key, logs, attrs = @api.show_aggregation_schema(name)
|
239
|
+
logs.map! {|name,comment,database,table,okeys,value_key,count_key|
|
240
|
+
table = Table.new(self, database, table, 'log', nil, nil)
|
241
|
+
LogAggregationSchemaEntry.new(self, name, comment, table,
|
242
|
+
okeys, value_key, count_key)
|
243
|
+
}
|
244
|
+
attrs.map! {|name,comment,database,table,method_name,parameters|
|
245
|
+
table = Table.new(self, database, table, 'log', nil, nil)
|
246
|
+
AttributeAggregationSchemaEntry.new(self, name, comment, table,
|
247
|
+
method_name, parameters)
|
248
|
+
}
|
249
|
+
AggregationSchema.new(self, name, relation_key, logs, attrs)
|
250
|
+
end
|
251
|
+
|
252
|
+
# => true
|
253
|
+
def create_aggregation_log_entry(name, entry_name, comment, db, table, okeys, value_key, count_key)
|
254
|
+
@api.create_aggregation_log_entry(name, entry_name, comment, db, table, okeys, value_key, count_key)
|
255
|
+
end
|
256
|
+
|
257
|
+
# => true
|
258
|
+
def delete_aggregation_log_entry(name, entry_name)
|
259
|
+
@api.delete_aggregation_log_entry(name, entry_name)
|
260
|
+
end
|
261
|
+
|
262
|
+
# => true
|
263
|
+
def create_aggregation_attr_entry(name, entry_name, comment, db, table, method_name, parameters)
|
264
|
+
@api.create_aggregation_attr_entry(name, entry_name, comment, db, table, method_name, parameters)
|
265
|
+
end
|
266
|
+
|
267
|
+
# => true
|
268
|
+
def delete_aggregation_attr_entry(name, entry_name)
|
269
|
+
@api.delete_aggregation_attr_entry(name, entry_name)
|
270
|
+
end
|
186
271
|
end
|
187
272
|
|
188
273
|
|
data/lib/td/client/api.rb
CHANGED
@@ -44,6 +44,10 @@ class API
|
|
44
44
|
validate_database_name(name)
|
45
45
|
end
|
46
46
|
|
47
|
+
def self.validate_result_set_name(name)
|
48
|
+
validate_database_name(name)
|
49
|
+
end
|
50
|
+
|
47
51
|
def self.validate_column_name(name)
|
48
52
|
name = name.to_s
|
49
53
|
if name.empty?
|
@@ -204,7 +208,7 @@ class API
|
|
204
208
|
## Job API
|
205
209
|
##
|
206
210
|
|
207
|
-
# => [(jobId:String, type:Symbol, status:String, start_at:String, end_at:String)]
|
211
|
+
# => [(jobId:String, type:Symbol, status:String, start_at:String, end_at:String, rset:String)]
|
208
212
|
def list_jobs(from=0, to=nil)
|
209
213
|
params = {}
|
210
214
|
params['from'] = from.to_s if from
|
@@ -223,12 +227,13 @@ class API
|
|
223
227
|
query = m['query']
|
224
228
|
start_at = m['start_at']
|
225
229
|
end_at = m['end_at']
|
226
|
-
|
230
|
+
rset = m['result']
|
231
|
+
result << [job_id, type, status, query, start_at, end_at, rset]
|
227
232
|
}
|
228
233
|
return result
|
229
234
|
end
|
230
235
|
|
231
|
-
# => (type:Symbol, status:String, result:String, url:String)
|
236
|
+
# => (type:Symbol, status:String, result:String, url:String, result:String)
|
232
237
|
def show_job(job_id)
|
233
238
|
code, body, res = get("/v3/job/show/#{e job_id}")
|
234
239
|
if code != "200"
|
@@ -244,7 +249,8 @@ class API
|
|
244
249
|
url = js['url']
|
245
250
|
start_at = js['start_at']
|
246
251
|
end_at = js['end_at']
|
247
|
-
|
252
|
+
result = js['result']
|
253
|
+
return [type, query, status, url, debug, start_at, end_at, result]
|
248
254
|
end
|
249
255
|
|
250
256
|
def job_result(job_id)
|
@@ -303,8 +309,10 @@ class API
|
|
303
309
|
end
|
304
310
|
|
305
311
|
# => jobId:String
|
306
|
-
def hive_query(q, db=nil)
|
307
|
-
|
312
|
+
def hive_query(q, db=nil, rset=nil)
|
313
|
+
params = {'query' => q}
|
314
|
+
params['result'] = rset if rset
|
315
|
+
code, body, res = post("/v3/job/issue/hive/#{e db}", params)
|
308
316
|
if code != "200"
|
309
317
|
raise_error("Query failed", res)
|
310
318
|
end
|
@@ -341,6 +349,7 @@ class API
|
|
341
349
|
return js['cron'], js["query"]
|
342
350
|
end
|
343
351
|
|
352
|
+
# => [(name:String, cron:String, query:String, database:String, rset:String)]
|
344
353
|
def list_schedules
|
345
354
|
code, body, res = get("/v3/schedule/list")
|
346
355
|
if code != "200"
|
@@ -354,7 +363,8 @@ class API
|
|
354
363
|
cron = m['cron']
|
355
364
|
query = m['query']
|
356
365
|
database = m['database']
|
357
|
-
|
366
|
+
rset = m['result']
|
367
|
+
result << [name, cron, query, database, rset]
|
358
368
|
}
|
359
369
|
return result
|
360
370
|
end
|
@@ -378,7 +388,8 @@ class API
|
|
378
388
|
start_at = m['start_at']
|
379
389
|
end_at = m['end_at']
|
380
390
|
scheduled_at = m['scheduled_at']
|
381
|
-
|
391
|
+
rset = m['result']
|
392
|
+
result << [scheduled_at, job_id, type, status, query, start_at, end_at, rset]
|
382
393
|
}
|
383
394
|
return result
|
384
395
|
end
|
@@ -401,6 +412,185 @@ class API
|
|
401
412
|
end
|
402
413
|
|
403
414
|
|
415
|
+
####
|
416
|
+
## Result set API
|
417
|
+
##
|
418
|
+
|
419
|
+
# => (
|
420
|
+
# info:(type:String, host:String, port:Integer, database:String, user:String, pass:String)
|
421
|
+
# entries:[name:String]
|
422
|
+
# )
|
423
|
+
def list_result_set
|
424
|
+
code, body, res = get("/v3/result/list")
|
425
|
+
if code != "200"
|
426
|
+
raise_error("List result set failed", res)
|
427
|
+
end
|
428
|
+
# TODO format check
|
429
|
+
js = JSON.load(body)
|
430
|
+
type = (js["type"] || 'unknown').to_s
|
431
|
+
host = js["host"].to_s
|
432
|
+
port = js["port"].to_i
|
433
|
+
database = js["database"].to_s
|
434
|
+
user = js["user"].to_s
|
435
|
+
pass = js["pass"].to_s
|
436
|
+
names = (js["results"] || []).map {|rsets|
|
437
|
+
rsets['name'].to_s
|
438
|
+
}
|
439
|
+
info = [type, host, port, database, user, pass]
|
440
|
+
return info, names
|
441
|
+
end
|
442
|
+
|
443
|
+
# => true
|
444
|
+
def create_result_set(db)
|
445
|
+
code, body, res = post("/v3/result/create/#{e db}")
|
446
|
+
if code != "200"
|
447
|
+
raise_error("Create result set failed", res)
|
448
|
+
end
|
449
|
+
return true
|
450
|
+
end
|
451
|
+
|
452
|
+
# => true
|
453
|
+
def delete_result_set(db)
|
454
|
+
code, body, res = post("/v3/result/delete/#{e db}")
|
455
|
+
if code != "200"
|
456
|
+
raise_error("Delete result set failed", res)
|
457
|
+
end
|
458
|
+
return true
|
459
|
+
end
|
460
|
+
|
461
|
+
|
462
|
+
####
|
463
|
+
## Aggregation Schema API
|
464
|
+
##
|
465
|
+
|
466
|
+
# => [(name:String, relation_key:String)]
|
467
|
+
def list_aggregation_schema
|
468
|
+
code, body, res = get("/v3/aggr/list")
|
469
|
+
if code != "200"
|
470
|
+
raise_error("List aggregation schema failed", res)
|
471
|
+
end
|
472
|
+
# TODO format check
|
473
|
+
js = JSON.load(body)
|
474
|
+
result = js["aggrs"].map {|aggrinfo|
|
475
|
+
name = aggrinfo['name'].to_s
|
476
|
+
relation_key = aggrinfo['relation_key'].to_s
|
477
|
+
[name, relation_key]
|
478
|
+
}
|
479
|
+
return result
|
480
|
+
end
|
481
|
+
|
482
|
+
# => true
|
483
|
+
def create_aggregation_schema(name, relation_key)
|
484
|
+
params = {}
|
485
|
+
params['relation_key'] = relation_key if relation_key
|
486
|
+
code, body, res = post("/v3/aggr/create/#{e name}", params)
|
487
|
+
if code != "200"
|
488
|
+
raise_error("Create aggregation schema failed", res)
|
489
|
+
end
|
490
|
+
return true
|
491
|
+
end
|
492
|
+
|
493
|
+
# => true
|
494
|
+
def delete_aggregation_schema(name)
|
495
|
+
code, body, res = post("/v3/aggr/delete/#{e name}")
|
496
|
+
if code != "200"
|
497
|
+
raise_error("Delete aggregation schema failed", res)
|
498
|
+
end
|
499
|
+
return true
|
500
|
+
end
|
501
|
+
|
502
|
+
# => [
|
503
|
+
# {
|
504
|
+
# relation_key: String,
|
505
|
+
# logs: (entry_name:String, comment:String, database:String, table:String,
|
506
|
+
# os:Array[String], value_key:String?, count_key:String?),
|
507
|
+
# attrs: (entry_name:String, comment:String, database:String, table:String,
|
508
|
+
# method_name:String, parameters:Hash[String=>Object])
|
509
|
+
# }
|
510
|
+
# ]
|
511
|
+
def show_aggregation_schema(name)
|
512
|
+
code, body, res = get("/v3/aggr/show/#{e name}")
|
513
|
+
if code != "200"
|
514
|
+
raise_error("Show job failed", res)
|
515
|
+
end
|
516
|
+
# TODO format check
|
517
|
+
js = JSON.load(body)
|
518
|
+
relation_key = js['relation_key']
|
519
|
+
logs = js['logs'].map {|loginfo|
|
520
|
+
entry_name = loginfo['name'].to_s
|
521
|
+
comment = loginfo['comment'].to_s
|
522
|
+
database = loginfo['database'].to_s
|
523
|
+
table = loginfo['table'].to_s
|
524
|
+
os = loginfo['os']
|
525
|
+
value_key = loginfo['value_key'].to_s
|
526
|
+
count_key = loginfo['count_key'].to_s
|
527
|
+
value_key = nil if value_key.empty?
|
528
|
+
count_key = nil if count_key.empty?
|
529
|
+
[entry_name, comment, database, table, os, value_key, count_key]
|
530
|
+
}
|
531
|
+
attrs = js['attrs'].map {|attrinfo|
|
532
|
+
entry_name = attrinfo['name'].to_s
|
533
|
+
comment = attrinfo['comment'].to_s
|
534
|
+
database = attrinfo['database'].to_s
|
535
|
+
table = attrinfo['table'].to_s
|
536
|
+
method_name = attrinfo['method_name'].to_s
|
537
|
+
parameters = attrinfo['parameters'].to_s
|
538
|
+
parameters = "{}" if parameters.empty?
|
539
|
+
parameters = JSON.parse(parameters)
|
540
|
+
[entry_name, comment, database, table, method_name, parameters]
|
541
|
+
}
|
542
|
+
return [relation_key, logs, attrs]
|
543
|
+
end
|
544
|
+
|
545
|
+
# => true
|
546
|
+
def create_aggregation_log_entry(name, entry_name, comment, db, table, okeys, value_key, count_key)
|
547
|
+
params = {}
|
548
|
+
params['comment'] = comment if comment
|
549
|
+
okeys.each_with_index {|okey,i|
|
550
|
+
params["os[#{i}]"] = okey
|
551
|
+
}
|
552
|
+
params['value_key'] = value_key if value_key
|
553
|
+
params['count_key'] = count_key if count_key
|
554
|
+
code, body, res = post("/v3/aggr/entry/log/create/#{e name}/#{e entry_name}/#{e db}/#{e table}", params)
|
555
|
+
if code != "200"
|
556
|
+
raise_error("Create aggregation log entry failed", res)
|
557
|
+
end
|
558
|
+
return true
|
559
|
+
end
|
560
|
+
|
561
|
+
# => true
|
562
|
+
def delete_aggregation_log_entry(name, entry_name)
|
563
|
+
code, body, res = post("/v3/aggr/entry/log/delete/#{e name}/#{e entry_name}")
|
564
|
+
if code != "200"
|
565
|
+
raise_error("Delete aggregation log entry failed", res)
|
566
|
+
end
|
567
|
+
return true
|
568
|
+
end
|
569
|
+
|
570
|
+
# => true
|
571
|
+
def create_aggregation_attr_entry(name, entry_name, comment, db, table, method_name, parameters)
|
572
|
+
params = {}
|
573
|
+
parameters.each_pair {|k,v|
|
574
|
+
params["parameters[#{k}]"] = v.to_s
|
575
|
+
}
|
576
|
+
params['comment'] = comment if comment
|
577
|
+
code, body, res = post("/v3/aggr/entry/attr/create/#{e name}/#{e entry_name}/#{e db}/#{e table}/#{e method_name}", params)
|
578
|
+
if code != "200"
|
579
|
+
raise_error("Create aggregation attr entry failed", res)
|
580
|
+
end
|
581
|
+
return true
|
582
|
+
end
|
583
|
+
|
584
|
+
# => true
|
585
|
+
def delete_aggregation_attr_entry(name, entry_name)
|
586
|
+
code, body, res = post("/v3/aggr/entry/attr/delete/#{e name}/#{e entry_name}")
|
587
|
+
if code != "200"
|
588
|
+
raise_error("Delete aggregation attr entry failed", res)
|
589
|
+
end
|
590
|
+
return true
|
591
|
+
end
|
592
|
+
|
593
|
+
|
404
594
|
####
|
405
595
|
## User API
|
406
596
|
##
|
data/lib/td/client/model.rb
CHANGED
@@ -148,7 +148,7 @@ class Job < Model
|
|
148
148
|
STATUS_KILLED = "killed"
|
149
149
|
FINISHED_STATUS = [STATUS_SUCCESS, STATUS_ERROR, STATUS_KILLED]
|
150
150
|
|
151
|
-
def initialize(client, job_id, type, query, status=nil, url=nil, debug=nil, start_at=nil, end_at=nil, result=nil)
|
151
|
+
def initialize(client, job_id, type, query, status=nil, url=nil, debug=nil, start_at=nil, end_at=nil, result=nil, rset=nil)
|
152
152
|
super(client)
|
153
153
|
@job_id = job_id
|
154
154
|
@type = type
|
@@ -159,9 +159,10 @@ class Job < Model
|
|
159
159
|
@start_at = start_at
|
160
160
|
@end_at = end_at
|
161
161
|
@result = result
|
162
|
+
@rset = rset
|
162
163
|
end
|
163
164
|
|
164
|
-
attr_reader :job_id, :type
|
165
|
+
attr_reader :job_id, :type, :rset
|
165
166
|
|
166
167
|
def wait(timeout=nil)
|
167
168
|
# TODO
|
@@ -201,6 +202,10 @@ class Job < Model
|
|
201
202
|
@end_at && !@end_at.empty? ? Time.parse(@end_at) : nil
|
202
203
|
end
|
203
204
|
|
205
|
+
def rset_name
|
206
|
+
@rset ? @rset.name : nil
|
207
|
+
end
|
208
|
+
|
204
209
|
def result
|
205
210
|
unless @result
|
206
211
|
return nil unless finished?
|
@@ -252,7 +257,7 @@ class Job < Model
|
|
252
257
|
end
|
253
258
|
|
254
259
|
def update_status!
|
255
|
-
query, status, url, debug, start_at, end_at = @client.job_status(@job_id)
|
260
|
+
query, status, url, debug, start_at, end_at, rset = @client.job_status(@job_id)
|
256
261
|
@query = query
|
257
262
|
@status = status
|
258
263
|
@url = url
|
@@ -277,15 +282,107 @@ end
|
|
277
282
|
|
278
283
|
|
279
284
|
class Schedule < Model
|
280
|
-
def initialize(client, name, cron, query, database=nil)
|
285
|
+
def initialize(client, name, cron, query, database=nil, rset=nil)
|
281
286
|
super(client)
|
282
287
|
@name = name
|
283
288
|
@cron = cron
|
284
289
|
@query = query
|
285
290
|
@database = database
|
291
|
+
@rset = rset
|
292
|
+
end
|
293
|
+
|
294
|
+
def rset_name
|
295
|
+
@rset ? @rset.name : nil
|
296
|
+
end
|
297
|
+
|
298
|
+
attr_reader :name, :cron, :query, :database, :rset
|
299
|
+
end
|
300
|
+
|
301
|
+
|
302
|
+
class ResultSetInfo < Model
|
303
|
+
def initialize(client, type, host, port, database, user, password)
|
304
|
+
super(client)
|
305
|
+
@type = type
|
306
|
+
@host = host
|
307
|
+
@port = port
|
308
|
+
@database = database
|
309
|
+
@user = user
|
310
|
+
@password = password
|
311
|
+
end
|
312
|
+
|
313
|
+
attr_reader :type, :host, :port, :database, :user, :password
|
314
|
+
end
|
315
|
+
|
316
|
+
|
317
|
+
class ResultSet < Model
|
318
|
+
def initialize(client, name)
|
319
|
+
super(client)
|
320
|
+
@name = name
|
321
|
+
end
|
322
|
+
|
323
|
+
attr_reader :name
|
324
|
+
end
|
325
|
+
|
326
|
+
|
327
|
+
class AggregationSchema < Model
|
328
|
+
def initialize(client, name, relation_key, logs=nil, attributes=nil)
|
329
|
+
super(client)
|
330
|
+
@name = name
|
331
|
+
@relation_key = relation_key
|
332
|
+
@logs = logs
|
333
|
+
@attributes = attributes
|
334
|
+
end
|
335
|
+
|
336
|
+
attr_reader :name, :relation_key
|
337
|
+
|
338
|
+
def logs
|
339
|
+
update_entries! unless @logs
|
340
|
+
@logs
|
341
|
+
end
|
342
|
+
|
343
|
+
def attributes
|
344
|
+
update_entries! unless @attributes
|
345
|
+
@attributes
|
346
|
+
end
|
347
|
+
|
348
|
+
def update_entries!
|
349
|
+
sc = @client.aggregation_schema(@name)
|
350
|
+
@relation_key = sc.relation_key
|
351
|
+
@logs = sc.logs
|
352
|
+
@attributes = sc.attributes
|
353
|
+
self
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
|
358
|
+
class LogAggregationSchemaEntry < Model
|
359
|
+
def initialize(client, name, comment, table, okeys, value_key, count_key)
|
360
|
+
super(client)
|
361
|
+
@name = name
|
362
|
+
@comment = comment
|
363
|
+
@table = table
|
364
|
+
@okeys = okeys
|
365
|
+
@value_key = value_key
|
366
|
+
@count_key = count_key
|
367
|
+
end
|
368
|
+
|
369
|
+
attr_reader :name, :comment, :table
|
370
|
+
attr_reader :okeys, :value_key, :count_key
|
371
|
+
end
|
372
|
+
|
373
|
+
|
374
|
+
class AttributeAggregationSchemaEntry < Model
|
375
|
+
def initialize(client, name, comment, table, method_name, parameters)
|
376
|
+
super(client)
|
377
|
+
@name = name
|
378
|
+
@comment = comment
|
379
|
+
@table = table
|
380
|
+
@method_name = method_name
|
381
|
+
@parameters = parameters
|
286
382
|
end
|
287
383
|
|
288
|
-
attr_reader :name, :
|
384
|
+
attr_reader :name, :comment, :table
|
385
|
+
attr_reader :method_name, :parameters
|
289
386
|
end
|
290
387
|
|
291
388
|
|
data/lib/td/client/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: td-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-04 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|
16
|
-
requirement: &
|
16
|
+
requirement: &70311656540280 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.4.4
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70311656540280
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70311656539740 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.4.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70311656539740
|
36
36
|
description:
|
37
37
|
email:
|
38
38
|
executables: []
|