td 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,4 +1,12 @@
1
1
 
2
+ == 2011-09-08 version 0.9.2
3
+
4
+ * Added job:kill subcommand
5
+ * Added apikey:show and apikey:set subcommands
6
+ * requires td-logger for Rails
7
+ * Fixed command/account.rb file is missed
8
+
9
+
2
10
  == 2011-09-08 version 0.9.1
3
11
 
4
12
  * Accepts the 'TREASURE_DATA_API_KEY' environment variable to set API key
data/lib/td.rb ADDED
@@ -0,0 +1 @@
1
+ require 'td-logger'
@@ -0,0 +1,91 @@
1
+
2
+ module TreasureData
3
+ module Command
4
+
5
+ def account(op)
6
+ op.banner << "\noptions:\n"
7
+
8
+ force = false
9
+ op.on('-f', '--force', 'overwrite current account setting', TrueClass) {|b|
10
+ force = true
11
+ }
12
+
13
+ user_name = op.cmd_parse
14
+
15
+ conf = nil
16
+ begin
17
+ conf = Config.read
18
+ rescue ConfigError
19
+ end
20
+ if conf && conf['account.apikey']
21
+ unless force
22
+ if conf['account.user']
23
+ $stderr.puts "Account is already configured with '#{conf['account.user']}' account."
24
+ else
25
+ $stderr.puts "Account is already configured."
26
+ end
27
+ $stderr.puts "Add '-f' option to overwrite."
28
+ exit 0
29
+ end
30
+ end
31
+
32
+ unless user_name
33
+ begin
34
+ print "User name: "
35
+ line = STDIN.gets || ""
36
+ user_name = line.strip
37
+ rescue Interrupt
38
+ $stderr.puts "\ncanceled."
39
+ exit 1
40
+ end
41
+ end
42
+
43
+ if user_name.empty?
44
+ $stderr.puts "canceled."
45
+ exit 0
46
+ end
47
+
48
+ client = nil
49
+
50
+ 3.times do
51
+ begin
52
+ system "stty -echo" # TODO termios
53
+ print "Password: "
54
+ password = STDIN.gets || ""
55
+ password = password[0..-2] # strip \n
56
+ rescue Interrupt
57
+ $stderr.print "\ncanceled."
58
+ exit 1
59
+ ensure
60
+ system "stty echo" # TODO termios
61
+ print "\n"
62
+ end
63
+
64
+ if password.empty?
65
+ $stderr.puts "canceled."
66
+ exit 0
67
+ end
68
+
69
+ begin
70
+ client = Client.authenticate(user_name, password)
71
+ rescue TreasureData::AuthError
72
+ $stderr.puts "User name or password mismatched."
73
+ end
74
+
75
+ break if client
76
+ end
77
+ return unless client
78
+
79
+ $stderr.puts "Authenticated successfully."
80
+
81
+ conf ||= Config.new
82
+ conf["account.user"] = user_name
83
+ conf["account.apikey"] = client.apikey
84
+ conf.save
85
+
86
+ $stderr.puts "Use '#{$prog} db:create <db_name>' to create a database."
87
+ end
88
+
89
+ end
90
+ end
91
+
@@ -0,0 +1,59 @@
1
+
2
+ module TreasureData
3
+ module Command
4
+
5
+ def apikey_show(op)
6
+ conf = nil
7
+ begin
8
+ conf = Config.read
9
+ rescue ConfigError
10
+ end
11
+
12
+ if !conf || !conf['account.apikey']
13
+ $stderr.puts "Account is not configured yet."
14
+ $stderr.puts "Use '#{$prog} apikey:set' or '#{$prog} account' first."
15
+ exit 1
16
+ end
17
+
18
+ puts conf['account.apikey']
19
+ end
20
+
21
+ def apikey_set(op)
22
+ op.banner << "\noptions:\n"
23
+
24
+ force = false
25
+ op.on('-f', '--force', 'overwrite current account setting', TrueClass) {|b|
26
+ force = true
27
+ }
28
+
29
+ apikey = op.cmd_parse
30
+
31
+ conf = nil
32
+ begin
33
+ conf = Config.read
34
+ rescue ConfigError
35
+ end
36
+ if conf && conf['account.apikey']
37
+ unless force
38
+ if conf['account.user']
39
+ $stderr.puts "Account is already configured with '#{conf['account.user']}' account."
40
+ else
41
+ $stderr.puts "Account is already configured."
42
+ end
43
+ $stderr.puts "Add '-f' option to overwrite."
44
+ exit 0
45
+ end
46
+ end
47
+
48
+ conf ||= Config.new
49
+ conf.delete("account.user")
50
+ conf["account.apikey"] = apikey
51
+ conf.save
52
+
53
+ $stderr.puts "API key is set."
54
+
55
+ $stderr.puts "Use '#{$prog} db:create <db_name>' to create a database."
56
+ end
57
+
58
+ end
59
+ end
data/lib/td/command/db.rb CHANGED
@@ -37,7 +37,7 @@ module Command
37
37
 
38
38
  if dbs.empty?
39
39
  $stderr.puts "There are no databases."
40
- $stderr.puts "Use '#{$prog} create-database <db_name>' to create a database."
40
+ $stderr.puts "Use '#{$prog} db:create <db_name>' to create a database."
41
41
  end
42
42
  end
43
43
 
@@ -56,7 +56,7 @@ module Command
56
56
  end
57
57
 
58
58
  $stderr.puts "Database '#{db_name}' is created."
59
- $stderr.puts "Use '#{$prog} create-log-table #{db_name} <table_name>' to create a table."
59
+ $stderr.puts "Use '#{$prog} table:create #{db_name} <table_name>' to create a table."
60
60
  end
61
61
 
62
62
  def db_delete(op)
@@ -126,8 +126,17 @@ module Command
126
126
 
127
127
  client = get_client
128
128
 
129
- client.kill_job(job_id)
130
- # TODO error
129
+ former_status = client.kill(job_id)
130
+ if TreasureData::Job::FINISHED_STATUS.include?(former_status)
131
+ $stderr.puts "Job #{job_id} is already finished (#{former_status})"
132
+ exit 0
133
+ end
134
+
135
+ if former_status == TreasureData::Job::STATUS_RUNNING
136
+ $stderr.puts "Job #{job_id} is killed."
137
+ else
138
+ $stderr.puts "Job #{job_id} is canceled."
139
+ end
131
140
  end
132
141
 
133
142
  private
@@ -194,9 +194,11 @@ module List
194
194
 
195
195
  add_list 'job:show', %w[job_id], 'Show status and result of a job'
196
196
  add_list 'job:list', %w[max?], 'Show list of jobs'
197
- #add_list 'job:kill', %w[job_id], 'Kill a job'
197
+ add_list 'job:kill', %w[job_id], 'Kill or cancel a job'
198
198
 
199
- add_list 'account', %w[], 'Setup a Treasure Data account'
199
+ add_list 'account', %w[user_name?], 'Setup a Treasure Data account'
200
+ add_list 'apikey:show', %w[], 'Show Treasure Data API key'
201
+ add_list 'apikey:set', %w[apikey], 'Set Treasure Data API key'
200
202
 
201
203
  add_list 'server:status', %w[], 'Show status of the Treasure Data server'
202
204
 
@@ -220,6 +222,9 @@ module List
220
222
 
221
223
  add_alias 'job', 'job:show'
222
224
  add_alias 'jobs', 'job:list'
225
+ add_alias 'kill', 'job:kill'
226
+
227
+ add_alias 'apikey', 'apikey:show'
223
228
 
224
229
  # backward compatibility
225
230
  add_alias 'show-databases', 'db:list'
@@ -15,7 +15,7 @@ module Command
15
15
  rescue NotFoundError
16
16
  cmd_debug_error $!
17
17
  $stderr.puts "Database '#{db_name}' does not exist."
18
- $stderr.puts "Use '#{$prog} create-database #{db_name}' to create the database."
18
+ $stderr.puts "Use '#{$prog} db:create #{db_name}' to create the database."
19
19
  exit 1
20
20
  rescue AlreadyExistsError
21
21
  cmd_debug_error $!
@@ -76,7 +76,7 @@ module Command
76
76
  $stderr.puts "Use '#{$prog} table:create <db.table>' to create a table."
77
77
  elsif dbs.empty?
78
78
  $stderr.puts "There are no databases."
79
- $stderr.puts "Use '#{$prog} database:create <db>' to create a database."
79
+ $stderr.puts "Use '#{$prog} db:create <db>' to create a database."
80
80
  else
81
81
  $stderr.puts "There are no tables."
82
82
  $stderr.puts "Use '#{$prog} table:create <db.table>' to create a table."
data/lib/td/config.rb CHANGED
@@ -30,6 +30,10 @@ class Config
30
30
  @conf[cate_key] = val
31
31
  end
32
32
 
33
+ def delete(cate_key)
34
+ @conf.delete(cate_key)
35
+ end
36
+
33
37
  def read(path=@path)
34
38
  @path = path
35
39
  begin
data/lib/td/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module TreasureData
2
2
 
3
- VERSION = '0.9.1'
3
+ VERSION = '0.9.2'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: td
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 1
10
- version: 0.9.1
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sadayuki Furuhashi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-09-08 00:00:00 +09:00
18
+ date: 2011-09-09 00:00:00 +09:00
19
19
  default_executable: td
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -74,12 +74,12 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- hash: 63
77
+ hash: 61
78
78
  segments:
79
79
  - 0
80
80
  - 8
81
- - 0
82
- version: 0.8.0
81
+ - 1
82
+ version: 0.8.1
83
83
  type: :runtime
84
84
  version_requirements: *id004
85
85
  - !ruby/object:Gem::Dependency
@@ -90,12 +90,12 @@ dependencies:
90
90
  requirements:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
- hash: 19
93
+ hash: 17
94
94
  segments:
95
95
  - 0
96
96
  - 2
97
- - 2
98
- version: 0.2.2
97
+ - 3
98
+ version: 0.2.3
99
99
  type: :runtime
100
100
  version_requirements: *id005
101
101
  description:
@@ -108,6 +108,9 @@ extra_rdoc_files:
108
108
  - ChangeLog
109
109
  - README.rdoc
110
110
  files:
111
+ - lib/td.rb
112
+ - lib/td/command/account.rb
113
+ - lib/td/command/apikey.rb
111
114
  - lib/td/command/common.rb
112
115
  - lib/td/command/db.rb
113
116
  - lib/td/command/help.rb