td-client 0.8.14 → 0.8.15
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|