td-client 0.8.5 → 0.8.6
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 +5 -0
- data/lib/td/client/api.rb +35 -34
- data/lib/td/client/version.rb +1 -1
- metadata +7 -7
data/ChangeLog
CHANGED
data/lib/td/client/api.rb
CHANGED
|
@@ -88,8 +88,7 @@ class API
|
|
|
88
88
|
if code != "200"
|
|
89
89
|
raise_error("List databases failed", res)
|
|
90
90
|
end
|
|
91
|
-
|
|
92
|
-
js = JSON.load(body)
|
|
91
|
+
js = checked_json(body, %w[databases])
|
|
93
92
|
names = js["databases"].map {|dbinfo| dbinfo['name'] }
|
|
94
93
|
return names
|
|
95
94
|
end
|
|
@@ -123,8 +122,7 @@ class API
|
|
|
123
122
|
if code != "200"
|
|
124
123
|
raise_error("List tables failed", res)
|
|
125
124
|
end
|
|
126
|
-
|
|
127
|
-
js = JSON.load(body)
|
|
125
|
+
js = checked_json(body, %w[tables])
|
|
128
126
|
result = {}
|
|
129
127
|
js["tables"].map {|m|
|
|
130
128
|
name = m['name']
|
|
@@ -180,8 +178,7 @@ class API
|
|
|
180
178
|
if code != "200"
|
|
181
179
|
raise_error("Drop table failed", res)
|
|
182
180
|
end
|
|
183
|
-
|
|
184
|
-
js = JSON.load(body)
|
|
181
|
+
js = checked_json(body, %w[])
|
|
185
182
|
type = (js['type'] || '?').to_sym
|
|
186
183
|
return type
|
|
187
184
|
end
|
|
@@ -217,8 +214,7 @@ class API
|
|
|
217
214
|
if code != "200"
|
|
218
215
|
raise_error("List jobs failed", res)
|
|
219
216
|
end
|
|
220
|
-
|
|
221
|
-
js = JSON.load(body)
|
|
217
|
+
js = checked_json(body, %w[jobs])
|
|
222
218
|
result = []
|
|
223
219
|
js['jobs'].each {|m|
|
|
224
220
|
job_id = m['job_id']
|
|
@@ -239,8 +235,7 @@ class API
|
|
|
239
235
|
if code != "200"
|
|
240
236
|
raise_error("Show job failed", res)
|
|
241
237
|
end
|
|
242
|
-
|
|
243
|
-
js = JSON.load(body)
|
|
238
|
+
js = checked_json(body, %w[status])
|
|
244
239
|
# TODO debug
|
|
245
240
|
type = (js['type'] || '?').to_sym # TODO
|
|
246
241
|
query = js['query']
|
|
@@ -302,8 +297,7 @@ class API
|
|
|
302
297
|
if code != "200"
|
|
303
298
|
raise_error("Get job result failed", res)
|
|
304
299
|
end
|
|
305
|
-
|
|
306
|
-
js = JSON.load(body)
|
|
300
|
+
js = checked_json(body, %w[])
|
|
307
301
|
former_status = js['former_status']
|
|
308
302
|
return former_status
|
|
309
303
|
end
|
|
@@ -316,8 +310,7 @@ class API
|
|
|
316
310
|
if code != "200"
|
|
317
311
|
raise_error("Query failed", res)
|
|
318
312
|
end
|
|
319
|
-
|
|
320
|
-
js = JSON.load(body)
|
|
313
|
+
js = checked_json(body, %w[job_id])
|
|
321
314
|
return js['job_id'].to_s
|
|
322
315
|
end
|
|
323
316
|
|
|
@@ -333,8 +326,7 @@ class API
|
|
|
333
326
|
if code != "200"
|
|
334
327
|
raise_error("Create schedule failed", res)
|
|
335
328
|
end
|
|
336
|
-
|
|
337
|
-
js = JSON.load(body)
|
|
329
|
+
js = checked_json(body, %w[start])
|
|
338
330
|
return js['start']
|
|
339
331
|
end
|
|
340
332
|
|
|
@@ -344,8 +336,7 @@ class API
|
|
|
344
336
|
if code != "200"
|
|
345
337
|
raise_error("Delete schedule failed", res)
|
|
346
338
|
end
|
|
347
|
-
|
|
348
|
-
js = JSON.load(body)
|
|
339
|
+
js = checked_json(body, %w[])
|
|
349
340
|
return js['cron'], js["query"]
|
|
350
341
|
end
|
|
351
342
|
|
|
@@ -355,8 +346,7 @@ class API
|
|
|
355
346
|
if code != "200"
|
|
356
347
|
raise_error("List schedules failed", res)
|
|
357
348
|
end
|
|
358
|
-
|
|
359
|
-
js = JSON.load(body)
|
|
349
|
+
js = checked_json(body, %w[schedules])
|
|
360
350
|
result = []
|
|
361
351
|
js['schedules'].each {|m|
|
|
362
352
|
name = m['name']
|
|
@@ -377,8 +367,7 @@ class API
|
|
|
377
367
|
if code != "200"
|
|
378
368
|
raise_error("List history failed", res)
|
|
379
369
|
end
|
|
380
|
-
|
|
381
|
-
js = JSON.load(body)
|
|
370
|
+
js = checked_json(body, %w[history])
|
|
382
371
|
result = []
|
|
383
372
|
js['history'].each {|m|
|
|
384
373
|
job_id = m['job_id']
|
|
@@ -405,8 +394,7 @@ class API
|
|
|
405
394
|
if code[0] != ?2
|
|
406
395
|
raise_error("Import failed", res)
|
|
407
396
|
end
|
|
408
|
-
|
|
409
|
-
js = JSON.load(body)
|
|
397
|
+
js = checked_json(body, %w[])
|
|
410
398
|
time = js['time'].to_f
|
|
411
399
|
return time
|
|
412
400
|
end
|
|
@@ -425,8 +413,7 @@ class API
|
|
|
425
413
|
if code != "200"
|
|
426
414
|
raise_error("List result set failed", res)
|
|
427
415
|
end
|
|
428
|
-
|
|
429
|
-
js = JSON.load(body)
|
|
416
|
+
js = checked_json(body, %w[host port user pass])
|
|
430
417
|
type = (js["type"] || 'unknown').to_s
|
|
431
418
|
host = js["host"].to_s
|
|
432
419
|
port = js["port"].to_i
|
|
@@ -469,8 +456,7 @@ class API
|
|
|
469
456
|
if code != "200"
|
|
470
457
|
raise_error("List aggregation schema failed", res)
|
|
471
458
|
end
|
|
472
|
-
|
|
473
|
-
js = JSON.load(body)
|
|
459
|
+
js = checked_json(body, %w[aggrs])
|
|
474
460
|
result = js["aggrs"].map {|aggrinfo|
|
|
475
461
|
name = aggrinfo['name'].to_s
|
|
476
462
|
relation_key = aggrinfo['relation_key'].to_s
|
|
@@ -513,8 +499,7 @@ class API
|
|
|
513
499
|
if code != "200"
|
|
514
500
|
raise_error("Show job failed", res)
|
|
515
501
|
end
|
|
516
|
-
|
|
517
|
-
js = JSON.load(body)
|
|
502
|
+
js = checked_json(body, %w[relation_key logs attrs])
|
|
518
503
|
relation_key = js['relation_key']
|
|
519
504
|
logs = js['logs'].map {|loginfo|
|
|
520
505
|
entry_name = loginfo['name'].to_s
|
|
@@ -605,8 +590,7 @@ class API
|
|
|
605
590
|
raise_error("Authentication failed", res)
|
|
606
591
|
end
|
|
607
592
|
end
|
|
608
|
-
|
|
609
|
-
js = JSON.load(body)
|
|
593
|
+
js = checked_json(body, %w[apikey])
|
|
610
594
|
apikey = js['apikey']
|
|
611
595
|
return apikey
|
|
612
596
|
end
|
|
@@ -621,8 +605,7 @@ class API
|
|
|
621
605
|
if code != "200"
|
|
622
606
|
return "Server is down (#{code})"
|
|
623
607
|
end
|
|
624
|
-
|
|
625
|
-
js = JSON.load(body)
|
|
608
|
+
js = checked_json(body, %w[status])
|
|
626
609
|
status = js['status']
|
|
627
610
|
return status
|
|
628
611
|
end
|
|
@@ -754,6 +737,24 @@ class API
|
|
|
754
737
|
require 'cgi'
|
|
755
738
|
CGI.escape(s.to_s)
|
|
756
739
|
end
|
|
740
|
+
|
|
741
|
+
def checked_json(body, required)
|
|
742
|
+
js = nil
|
|
743
|
+
begin
|
|
744
|
+
js = JSON.load(body)
|
|
745
|
+
rescue
|
|
746
|
+
raise "Unexpected API response: #{$!}"
|
|
747
|
+
end
|
|
748
|
+
unless js.is_a?(Hash)
|
|
749
|
+
raise "Unexpected API response: #{body}"
|
|
750
|
+
end
|
|
751
|
+
required.each {|k|
|
|
752
|
+
unless js[k]
|
|
753
|
+
raise "Unexpected API response: #{body}"
|
|
754
|
+
end
|
|
755
|
+
}
|
|
756
|
+
js
|
|
757
|
+
end
|
|
757
758
|
end
|
|
758
759
|
|
|
759
760
|
|
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.6
|
|
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:
|
|
12
|
+
date: 2012-01-20 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: msgpack
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &70253485013900 !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: *70253485013900
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: json
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &70253485012660 !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: *70253485012660
|
|
36
36
|
description:
|
|
37
37
|
email:
|
|
38
38
|
executables: []
|
|
@@ -68,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
68
68
|
version: '0'
|
|
69
69
|
requirements: []
|
|
70
70
|
rubyforge_project:
|
|
71
|
-
rubygems_version: 1.8.
|
|
71
|
+
rubygems_version: 1.8.12
|
|
72
72
|
signing_key:
|
|
73
73
|
specification_version: 3
|
|
74
74
|
summary: Treasure Data API library for Ruby
|