td-client 0.8.9 → 0.8.10

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 CHANGED
@@ -1,4 +1,11 @@
1
1
 
2
+ == 2012-02-22 version 0.8.10
3
+
4
+ * Added Client#run_schedule and update_schedule
5
+ * Added timezone, delay and next_time fields to the Schedule model
6
+ * create_aggregation_schema accepts params argument
7
+
8
+
2
9
  == 2012-02-12 version 0.8.9
3
10
 
4
11
  * Added API#normalize_table_name and API#normalize_database_name
@@ -169,12 +169,17 @@ class Client
169
169
  # [Schedule]
170
170
  def schedules
171
171
  result = @api.list_schedules
172
- result.map {|name,cron,query,database,rset|
172
+ result.map {|name,cron,query,database,rset,timezone,delay,next_time|
173
173
  rset = ResultSet.new(self, rset) if rset
174
- Schedule.new(self, name, cron, query, database, rset)
174
+ Schedule.new(self, name, cron, query, database, rset, timezone, delay, next_time)
175
175
  }
176
176
  end
177
177
 
178
+ def update_schedule(name, params)
179
+ @api.update_schedule(name, params)
180
+ nil
181
+ end
182
+
178
183
  # [ScheduledJob]
179
184
  def history(name, from=nil, to=nil)
180
185
  result = @api.history(name, from, to)
@@ -184,6 +189,12 @@ class Client
184
189
  }
185
190
  end
186
191
 
192
+ # TODO nil -> [ScheduledJob] or [Job]
193
+ def run_schedule(name, time, num)
194
+ @api.run_schedule(name, time, num)
195
+ nil
196
+ end
197
+
187
198
  # => time:Flaot
188
199
  def import(db_name, table_name, format, stream, size)
189
200
  @api.import(db_name, table_name, format, stream, size)
@@ -218,14 +229,14 @@ class Client
218
229
  # => [AggregationSchema]
219
230
  def aggregation_schemas
220
231
  list = @api.list_aggregation_schema
221
- list.map {|name,relation_key|
222
- AggregationSchema.new(self, name, relation_key)
232
+ list.map {|name,relation_key,timezone|
233
+ AggregationSchema.new(self, name, relation_key, nil, nil, timezone)
223
234
  }
224
235
  end
225
236
 
226
237
  # => true
227
- def create_aggregation_schema(name, relation_key)
228
- @api.create_aggregation_schema(name, relation_key)
238
+ def create_aggregation_schema(name, relation_key, params={})
239
+ @api.create_aggregation_schema(name, relation_key, params)
229
240
  end
230
241
 
231
242
  # => true
@@ -410,11 +410,22 @@ class API
410
410
  query = m['query']
411
411
  database = m['database']
412
412
  rset = m['result']
413
- result << [name, cron, query, database, rset]
413
+ timezone = m['timezone']
414
+ delay = m['delay']
415
+ next_time = m['next_time']
416
+ result << [name, cron, query, database, rset, timezone, delay, next_time]
414
417
  }
415
418
  return result
416
419
  end
417
420
 
421
+ def update_schedule(name, params)
422
+ code, body, res = get("/v3/schedule/update/#{e name}", params)
423
+ if code != "200"
424
+ raise_error("Update schedule failed", res)
425
+ end
426
+ return nil
427
+ end
428
+
418
429
  def history(name, from=0, to=nil)
419
430
  params = {}
420
431
  params['from'] = from.to_s if from
@@ -439,6 +450,22 @@ class API
439
450
  return result
440
451
  end
441
452
 
453
+ def run_schedule(name, time, num)
454
+ params = {}
455
+ params = {'num' => num} if num
456
+ code, body, res = post("/v3/schedule/run/#{e name}/#{e time}", params)
457
+ if code != "200"
458
+ raise_error("Run schedule failed", res)
459
+ end
460
+ js = checked_json(body, %w[jobs])
461
+ result = []
462
+ js['jobs'].each {|m|
463
+ job_id = m['job_id']
464
+ scheduled_at = m['scheduled_at']
465
+ result << [job_id, scheduled_at]
466
+ }
467
+ return result
468
+ end
442
469
 
443
470
  ####
444
471
  ## Import API
@@ -516,14 +543,14 @@ class API
516
543
  result = js["aggrs"].map {|aggrinfo|
517
544
  name = aggrinfo['name'].to_s
518
545
  relation_key = aggrinfo['relation_key'].to_s
519
- [name, relation_key]
546
+ timezone = aggrinfo['timezone'].to_s
547
+ [name, relation_key, timezone]
520
548
  }
521
549
  return result
522
550
  end
523
551
 
524
552
  # => true
525
- def create_aggregation_schema(name, relation_key)
526
- params = {}
553
+ def create_aggregation_schema(name, relation_key, params={})
527
554
  params['relation_key'] = relation_key if relation_key
528
555
  code, body, res = post("/v3/aggr/create/#{e name}", params)
529
556
  if code != "200"
@@ -282,20 +282,31 @@ end
282
282
 
283
283
 
284
284
  class Schedule < Model
285
- def initialize(client, name, cron, query, database=nil, rset=nil)
285
+ def initialize(client, name, cron, query, database=nil, rset=nil, timezone=nil, delay=nil, next_time=nil)
286
286
  super(client)
287
287
  @name = name
288
288
  @cron = cron
289
289
  @query = query
290
290
  @database = database
291
291
  @rset = rset
292
+ @timezone = timezone
293
+ @delay = delay
294
+ @next_time = next_time
292
295
  end
293
296
 
294
297
  def rset_name
295
298
  @rset ? @rset.name : nil
296
299
  end
297
300
 
298
- attr_reader :name, :cron, :query, :database, :rset
301
+ attr_reader :name, :cron, :query, :database, :rset, :timezone, :delay
302
+
303
+ def next_time
304
+ @next_time ? Time.parse(@next_time) : nil
305
+ end
306
+
307
+ def run(time, num)
308
+ @client.run_schedule(time, num)
309
+ end
299
310
  end
300
311
 
301
312
 
@@ -325,15 +336,16 @@ end
325
336
 
326
337
 
327
338
  class AggregationSchema < Model
328
- def initialize(client, name, relation_key, logs=nil, attributes=nil)
339
+ def initialize(client, name, relation_key, logs=nil, attributes=nil, timezone=nil)
329
340
  super(client)
330
341
  @name = name
331
342
  @relation_key = relation_key
332
343
  @logs = logs
333
344
  @attributes = attributes
345
+ @timezone = timezone
334
346
  end
335
347
 
336
- attr_reader :name, :relation_key
348
+ attr_reader :name, :relation_key, :timezone
337
349
 
338
350
  def logs
339
351
  update_entries! unless @logs
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
 
3
- VERSION = '0.8.9'
3
+ VERSION = '0.8.10'
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.9
4
+ version: 0.8.10
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-02-14 00:00:00.000000000Z
12
+ date: 2012-02-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: msgpack
16
- requirement: &70135893795480 !ruby/object:Gem::Requirement
16
+ requirement: &70267150692160 !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: *70135893795480
24
+ version_requirements: *70267150692160
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &70135893794220 !ruby/object:Gem::Requirement
27
+ requirement: &70267150691460 !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: *70135893794220
35
+ version_requirements: *70267150691460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70135893792760 !ruby/object:Gem::Requirement
38
+ requirement: &70267150690860 !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: *70135893792760
46
+ version_requirements: *70267150690860
47
47
  description:
48
48
  email:
49
49
  executables: []