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 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, rset=nil)
108
- job_id = @api.hive_query(q, db_name, rset)
109
- Job.new(self, job_id, :hive, q) # TODO url
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,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)
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, rset, hive_result_schema = @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, 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, rset, hive_result_schema = @api.show_job(job_id)
132
- rset = ResultSet.new(self, rset) if rset
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, tbl_name, storage_type, opts={})
158
- job_id = @api.export(db_name, tbl_name, storage_type, opts)
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,rset,timezone,delay,next_time|
179
- rset = ResultSet.new(self, rset) if rset
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,rset|
193
- rset = ResultSet.new(self, rset) if rset
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
- # => [ResultSet]
212
- def result_sets
213
- info, names = @api.list_result_set
214
- sets = names.map {|name|
215
- ResultSet.new(self, name)
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 sets
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 create_result_set(name)
229
- @api.create_result_set(name)
216
+ def create_result(name, url)
217
+ @api.create_result(name, url)
230
218
  end
231
219
 
232
220
  # => true
233
- def delete_result_set(name)
234
- @api.delete_result_set(name)
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, rset: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
- rset = m['result']
292
- result << [job_id, type, status, query, start_at, end_at, rset]
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, rset=nil)
377
+ def hive_query(q, db=nil, result_url=nil)
378
378
  params = {'query' => q}
379
- params['result'] = rset if rset
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, tbl, storage_type, opts={})
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 tbl}", params)
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, rset: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
- rset = m['result']
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, rset, timezone, delay, next_time]
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
- rset = m['result']
478
- result << [scheduled_at, job_id, type, status, query, start_at, end_at, rset]
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 set API
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 set failed", res)
529
- end
530
- js = checked_json(body, %w[host port user pass])
531
- type = (js["type"] || 'unknown').to_s
532
- host = js["host"].to_s
533
- port = js["port"].to_i
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
- info = [type, host, port, database, user, pass]
541
- return info, names
531
+ return result
542
532
  end
543
533
 
544
534
  # => true
545
- def create_result_set(db)
546
- code, body, res = post("/v3/result/create/#{e db}")
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 set failed", res)
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 delete_result_set(db)
555
- code, body, res = post("/v3/result/delete/#{e db}")
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 set failed", res)
547
+ raise_error("Delete result table failed", res)
558
548
  end
559
549
  return true
560
550
  end
@@ -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, rset=nil, hive_result_schema=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
- @rset = rset
189
+ @result_url = result_url
190
190
  @hive_result_schema = hive_result_schema
191
191
  end
192
192
 
193
- attr_reader :job_id, :type, :rset
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, rset, hive_result_schema = @client.job_status(@job_id)
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, rset=nil, timezone=nil, delay=nil, next_time=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
- @rset = rset
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
- def rset_name
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 ResultSetInfo < Model
344
- def initialize(client, type, host, port, database, user, password)
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
 
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
 
3
- VERSION = '0.8.14'
3
+ VERSION = '0.8.15'
4
4
 
5
5
  end
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.14
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-03 00:00:00.000000000Z
12
+ date: 2012-04-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: msgpack
16
- requirement: &70097319678140 !ruby/object:Gem::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: *70097319678140
24
+ version_requirements: *70230453942020
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70097319677440 !ruby/object:Gem::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: *70097319677440
35
+ version_requirements: *70230453937480
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70097319676680 !ruby/object:Gem::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: *70097319676680
46
+ version_requirements: *70230453936700
47
47
  description:
48
48
  email:
49
49
  executables: []