td-client 0.8.14 → 0.8.15
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 +25 -37
- data/lib/td/client/api.rb +27 -37
- data/lib/td/client/model.rb +11 -33
- data/lib/td/client/version.rb +1 -1
- metadata +8 -8
data/ChangeLog
CHANGED
@@ -1,4 +1,11 @@
|
|
1
1
|
|
2
|
+
== 2012-04-26 version 0.8.15
|
3
|
+
|
4
|
+
* Result model replaces ResultSet model
|
5
|
+
* Removed methods related to ResultSet from Job and Schedule models
|
6
|
+
* Added methods related to Result to Job and Schedule models
|
7
|
+
|
8
|
+
|
2
9
|
== 2012-04-03 version 0.8.14
|
3
10
|
|
4
11
|
* Added Database#count, #created_at and #updated_at
|
data/lib/td/client.rb
CHANGED
@@ -104,33 +104,30 @@ 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,
|
109
|
-
Job.new(self, job_id, :hive, q)
|
107
|
+
def query(db_name, q, result_url=nil)
|
108
|
+
job_id = @api.hive_query(q, db_name, result_url)
|
109
|
+
Job.new(self, job_id, :hive, q)
|
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
|
-
|
117
|
-
Job.new(self, job_id, type, query, status, nil, nil, start_at, end_at, nil, rset)
|
115
|
+
result.map {|job_id,type,status,query,start_at,end_at,result_url|
|
116
|
+
Job.new(self, job_id, type, query, status, nil, nil, start_at, end_at, nil, result_url)
|
118
117
|
}
|
119
118
|
end
|
120
119
|
|
121
120
|
# => Job
|
122
121
|
def job(job_id)
|
123
122
|
job_id = job_id.to_s
|
124
|
-
type, query, status, url, debug, start_at, end_at,
|
125
|
-
|
126
|
-
Job.new(self, job_id, type, query, status, url, debug, start_at, end_at, nil, rset, hive_result_schema)
|
123
|
+
type, query, status, url, debug, start_at, end_at, result_url, hive_result_schema = @api.show_job(job_id)
|
124
|
+
Job.new(self, job_id, type, query, status, url, debug, start_at, end_at, nil, result_url, hive_result_schema)
|
127
125
|
end
|
128
126
|
|
129
127
|
# => type:Symbol, url:String
|
130
128
|
def job_status(job_id)
|
131
|
-
type, query, status, url, debug, start_at, end_at,
|
132
|
-
|
133
|
-
return query, status, url, debug, start_at, end_at, rset, hive_result_schema
|
129
|
+
type, query, status, url, debug, start_at, end_at, result_url, hive_result_schema = @api.show_job(job_id)
|
130
|
+
return query, status, url, debug, start_at, end_at, result_url, hive_result_schema
|
134
131
|
end
|
135
132
|
|
136
133
|
# => result:[{column:String=>value:Object]
|
@@ -154,8 +151,8 @@ class Client
|
|
154
151
|
end
|
155
152
|
|
156
153
|
# => Job
|
157
|
-
def export(db_name,
|
158
|
-
job_id = @api.export(db_name,
|
154
|
+
def export(db_name, table_name, storage_type, opts={})
|
155
|
+
job_id = @api.export(db_name, table_name, storage_type, opts)
|
159
156
|
Job.new(self, job_id, :export, nil)
|
160
157
|
end
|
161
158
|
|
@@ -175,9 +172,8 @@ class Client
|
|
175
172
|
# [Schedule]
|
176
173
|
def schedules
|
177
174
|
result = @api.list_schedules
|
178
|
-
result.map {|name,cron,query,database,
|
179
|
-
|
180
|
-
Schedule.new(self, name, cron, query, database, rset, timezone, delay, next_time)
|
175
|
+
result.map {|name,cron,query,database,result_url,timezone,delay,next_time|
|
176
|
+
Schedule.new(self, name, cron, query, database, result_url, timezone, delay, next_time)
|
181
177
|
}
|
182
178
|
end
|
183
179
|
|
@@ -189,9 +185,8 @@ class Client
|
|
189
185
|
# [ScheduledJob]
|
190
186
|
def history(name, from=nil, to=nil)
|
191
187
|
result = @api.history(name, from, to)
|
192
|
-
result.map {|scheduled_at,job_id,type,status,query,start_at,end_at,
|
193
|
-
|
194
|
-
ScheduledJob.new(self, scheduled_at, job_id, type, query, status, nil, nil, start_at, end_at, nil, rset)
|
188
|
+
result.map {|scheduled_at,job_id,type,status,query,start_at,end_at,result_url|
|
189
|
+
ScheduledJob.new(self, scheduled_at, job_id, type, query, status, nil, nil, start_at, end_at, nil, result_url)
|
195
190
|
}
|
196
191
|
end
|
197
192
|
|
@@ -208,30 +203,23 @@ class Client
|
|
208
203
|
@api.import(db_name, table_name, format, stream, size)
|
209
204
|
end
|
210
205
|
|
211
|
-
# => [
|
212
|
-
def
|
213
|
-
|
214
|
-
|
215
|
-
|
206
|
+
# => [Result]
|
207
|
+
def results
|
208
|
+
results = @api.list_result
|
209
|
+
rs = results.map {|name,url|
|
210
|
+
Result.new(self, name, url)
|
216
211
|
}
|
217
|
-
return
|
218
|
-
end
|
219
|
-
|
220
|
-
# => ResultSetInfo
|
221
|
-
def result_set_info
|
222
|
-
info, names = @api.list_result_set
|
223
|
-
info = ResultSetInfo.new(self, *info)
|
224
|
-
return info
|
212
|
+
return rs
|
225
213
|
end
|
226
214
|
|
227
215
|
# => true
|
228
|
-
def
|
229
|
-
@api.
|
216
|
+
def create_result(name, url)
|
217
|
+
@api.create_result(name, url)
|
230
218
|
end
|
231
219
|
|
232
220
|
# => true
|
233
|
-
def
|
234
|
-
@api.
|
221
|
+
def delete_result(name)
|
222
|
+
@api.delete_result(name)
|
235
223
|
end
|
236
224
|
|
237
225
|
# => [AggregationSchema]
|
data/lib/td/client/api.rb
CHANGED
@@ -270,7 +270,7 @@ class API
|
|
270
270
|
## Job API
|
271
271
|
##
|
272
272
|
|
273
|
-
# => [(jobId:String, type:Symbol, status:String, start_at:String, end_at:String,
|
273
|
+
# => [(jobId:String, type:Symbol, status:String, start_at:String, end_at:String, result_url:String)]
|
274
274
|
def list_jobs(from=0, to=nil)
|
275
275
|
params = {}
|
276
276
|
params['from'] = from.to_s if from
|
@@ -288,8 +288,8 @@ class API
|
|
288
288
|
query = m['query']
|
289
289
|
start_at = m['start_at']
|
290
290
|
end_at = m['end_at']
|
291
|
-
|
292
|
-
result << [job_id, type, status, query, start_at, end_at,
|
291
|
+
result_url = m['result']
|
292
|
+
result << [job_id, type, status, query, start_at, end_at, result_url]
|
293
293
|
}
|
294
294
|
return result
|
295
295
|
end
|
@@ -374,9 +374,9 @@ class API
|
|
374
374
|
end
|
375
375
|
|
376
376
|
# => jobId:String
|
377
|
-
def hive_query(q, db=nil,
|
377
|
+
def hive_query(q, db=nil, result_url=nil)
|
378
378
|
params = {'query' => q}
|
379
|
-
params['result'] =
|
379
|
+
params['result'] = result_url if result_url
|
380
380
|
code, body, res = post("/v3/job/issue/hive/#{e db}", params)
|
381
381
|
if code != "200"
|
382
382
|
raise_error("Query failed", res)
|
@@ -390,10 +390,10 @@ class API
|
|
390
390
|
##
|
391
391
|
|
392
392
|
# => jobId:String
|
393
|
-
def export(db,
|
393
|
+
def export(db, table, storage_type, opts={})
|
394
394
|
params = opts.dup
|
395
395
|
params['storage_type'] = storage_type
|
396
|
-
code, body, res = post("/v3/export/run/#{e db}/#{e
|
396
|
+
code, body, res = post("/v3/export/run/#{e db}/#{e table}", params)
|
397
397
|
if code != "200"
|
398
398
|
raise_error("Export failed", res)
|
399
399
|
end
|
@@ -426,7 +426,7 @@ class API
|
|
426
426
|
return js['cron'], js["query"]
|
427
427
|
end
|
428
428
|
|
429
|
-
# => [(name:String, cron:String, query:String, database:String,
|
429
|
+
# => [(name:String, cron:String, query:String, database:String, result_url:String)]
|
430
430
|
def list_schedules
|
431
431
|
code, body, res = get("/v3/schedule/list")
|
432
432
|
if code != "200"
|
@@ -439,11 +439,11 @@ class API
|
|
439
439
|
cron = m['cron']
|
440
440
|
query = m['query']
|
441
441
|
database = m['database']
|
442
|
-
|
442
|
+
result_url = m['result']
|
443
443
|
timezone = m['timezone']
|
444
444
|
delay = m['delay']
|
445
445
|
next_time = m['next_time']
|
446
|
-
result << [name, cron, query, database,
|
446
|
+
result << [name, cron, query, database, result_url, timezone, delay, next_time]
|
447
447
|
}
|
448
448
|
return result
|
449
449
|
end
|
@@ -474,8 +474,8 @@ class API
|
|
474
474
|
start_at = m['start_at']
|
475
475
|
end_at = m['end_at']
|
476
476
|
scheduled_at = m['scheduled_at']
|
477
|
-
|
478
|
-
result << [scheduled_at, job_id, type, status, query, start_at, end_at,
|
477
|
+
result_url = m['result']
|
478
|
+
result << [scheduled_at, job_id, type, status, query, start_at, end_at, result_url]
|
479
479
|
}
|
480
480
|
return result
|
481
481
|
end
|
@@ -515,46 +515,36 @@ class API
|
|
515
515
|
|
516
516
|
|
517
517
|
####
|
518
|
-
## Result
|
518
|
+
## Result API
|
519
519
|
##
|
520
520
|
|
521
|
-
|
522
|
-
# info:(type:String, host:String, port:Integer, database:String, user:String, pass:String)
|
523
|
-
# entries:[name:String]
|
524
|
-
# )
|
525
|
-
def list_result_set
|
521
|
+
def list_result
|
526
522
|
code, body, res = get("/v3/result/list")
|
527
523
|
if code != "200"
|
528
|
-
raise_error("List result
|
529
|
-
end
|
530
|
-
js = checked_json(body, %w[
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
database = js["database"].to_s
|
535
|
-
user = js["user"].to_s
|
536
|
-
pass = js["pass"].to_s
|
537
|
-
names = (js["results"] || []).map {|rsets|
|
538
|
-
rsets['name'].to_s
|
524
|
+
raise_error("List result table failed", res)
|
525
|
+
end
|
526
|
+
js = checked_json(body, %w[results])
|
527
|
+
result = []
|
528
|
+
js['results'].map {|m|
|
529
|
+
result << [m['name'], m['url']]
|
539
530
|
}
|
540
|
-
|
541
|
-
return info, names
|
531
|
+
return result
|
542
532
|
end
|
543
533
|
|
544
534
|
# => true
|
545
|
-
def
|
546
|
-
code, body, res = post("/v3/result/create/#{e
|
535
|
+
def create_result(name, url)
|
536
|
+
code, body, res = post("/v3/result/create/#{e name}", {'url'=>url})
|
547
537
|
if code != "200"
|
548
|
-
raise_error("Create result
|
538
|
+
raise_error("Create result table failed", res)
|
549
539
|
end
|
550
540
|
return true
|
551
541
|
end
|
552
542
|
|
553
543
|
# => true
|
554
|
-
def
|
555
|
-
code, body, res = post("/v3/result/delete/#{e
|
544
|
+
def delete_result(name)
|
545
|
+
code, body, res = post("/v3/result/delete/#{e name}")
|
556
546
|
if code != "200"
|
557
|
-
raise_error("Delete result
|
547
|
+
raise_error("Delete result table failed", res)
|
558
548
|
end
|
559
549
|
return true
|
560
550
|
end
|
data/lib/td/client/model.rb
CHANGED
@@ -175,7 +175,7 @@ class Job < Model
|
|
175
175
|
STATUS_KILLED = "killed"
|
176
176
|
FINISHED_STATUS = [STATUS_SUCCESS, STATUS_ERROR, STATUS_KILLED]
|
177
177
|
|
178
|
-
def initialize(client, job_id, type, query, status=nil, url=nil, debug=nil, start_at=nil, end_at=nil, result=nil,
|
178
|
+
def initialize(client, job_id, type, query, status=nil, url=nil, debug=nil, start_at=nil, end_at=nil, result=nil, result_url=nil, hive_result_schema=nil)
|
179
179
|
super(client)
|
180
180
|
@job_id = job_id
|
181
181
|
@type = type
|
@@ -186,11 +186,11 @@ class Job < Model
|
|
186
186
|
@start_at = start_at
|
187
187
|
@end_at = end_at
|
188
188
|
@result = result
|
189
|
-
@
|
189
|
+
@result_url = result_url
|
190
190
|
@hive_result_schema = hive_result_schema
|
191
191
|
end
|
192
192
|
|
193
|
-
attr_reader :job_id, :type, :
|
193
|
+
attr_reader :job_id, :type, :result_url
|
194
194
|
attr_reader :hive_result_schema
|
195
195
|
|
196
196
|
def wait(timeout=nil)
|
@@ -231,10 +231,6 @@ class Job < Model
|
|
231
231
|
@end_at && !@end_at.empty? ? Time.parse(@end_at) : nil
|
232
232
|
end
|
233
233
|
|
234
|
-
def rset_name
|
235
|
-
@rset ? @rset.name : nil
|
236
|
-
end
|
237
|
-
|
238
234
|
def result
|
239
235
|
unless @result
|
240
236
|
return nil unless finished?
|
@@ -286,7 +282,7 @@ class Job < Model
|
|
286
282
|
end
|
287
283
|
|
288
284
|
def update_status!
|
289
|
-
query, status, url, debug, start_at, end_at,
|
285
|
+
query, status, url, debug, start_at, end_at, result_url, hive_result_schema = @client.job_status(@job_id)
|
290
286
|
@query = query
|
291
287
|
@status = status
|
292
288
|
@url = url
|
@@ -312,23 +308,19 @@ end
|
|
312
308
|
|
313
309
|
|
314
310
|
class Schedule < Model
|
315
|
-
def initialize(client, name, cron, query, database=nil,
|
311
|
+
def initialize(client, name, cron, query, database=nil, result_url=nil, timezone=nil, delay=nil, next_time=nil)
|
316
312
|
super(client)
|
317
313
|
@name = name
|
318
314
|
@cron = cron
|
319
315
|
@query = query
|
320
316
|
@database = database
|
321
|
-
@
|
317
|
+
@result_url = result_url
|
322
318
|
@timezone = timezone
|
323
319
|
@delay = delay
|
324
320
|
@next_time = next_time
|
325
321
|
end
|
326
322
|
|
327
|
-
|
328
|
-
@rset ? @rset.name : nil
|
329
|
-
end
|
330
|
-
|
331
|
-
attr_reader :name, :cron, :query, :database, :rset, :timezone, :delay
|
323
|
+
attr_reader :name, :cron, :query, :database, :result_url, :timezone, :delay
|
332
324
|
|
333
325
|
def next_time
|
334
326
|
@next_time ? Time.parse(@next_time) : nil
|
@@ -340,28 +332,14 @@ class Schedule < Model
|
|
340
332
|
end
|
341
333
|
|
342
334
|
|
343
|
-
class
|
344
|
-
def initialize(client,
|
345
|
-
super(client)
|
346
|
-
@type = type
|
347
|
-
@host = host
|
348
|
-
@port = port
|
349
|
-
@database = database
|
350
|
-
@user = user
|
351
|
-
@password = password
|
352
|
-
end
|
353
|
-
|
354
|
-
attr_reader :type, :host, :port, :database, :user, :password
|
355
|
-
end
|
356
|
-
|
357
|
-
|
358
|
-
class ResultSet < Model
|
359
|
-
def initialize(client, name)
|
335
|
+
class Result < Model
|
336
|
+
def initialize(client, name, url)
|
360
337
|
super(client)
|
361
338
|
@name = name
|
339
|
+
@url = url
|
362
340
|
end
|
363
341
|
|
364
|
-
attr_reader :name
|
342
|
+
attr_reader :name, :url
|
365
343
|
end
|
366
344
|
|
367
345
|
|
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.15
|
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: 2012-04-
|
12
|
+
date: 2012-04-27 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|
16
|
-
requirement: &
|
16
|
+
requirement: &70230453942020 !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: *70230453942020
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &70230453937480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.4.3
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70230453937480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70230453936700 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 2.8.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70230453936700
|
47
47
|
description:
|
48
48
|
email:
|
49
49
|
executables: []
|