td 0.11.9 → 0.11.10
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +13 -0
- data/lib/td/command/account.rb +5 -5
- data/lib/td/command/acl.rb +1 -1
- data/lib/td/command/apikey.rb +4 -4
- data/lib/td/command/bulk_import.rb +19 -7
- data/lib/td/command/common.rb +12 -10
- data/lib/td/command/connector.rb +35 -31
- data/lib/td/command/db.rb +2 -2
- data/lib/td/command/export.rb +6 -1
- data/lib/td/command/help.rb +3 -3
- data/lib/td/command/import.rb +3 -3
- data/lib/td/command/job.rb +60 -83
- data/lib/td/command/list.rb +19 -6
- data/lib/td/command/options.rb +61 -0
- data/lib/td/command/password.rb +7 -7
- data/lib/td/command/query.rb +14 -9
- data/lib/td/command/result.rb +5 -5
- data/lib/td/command/runner.rb +9 -9
- data/lib/td/command/sched.rb +97 -15
- data/lib/td/command/schema.rb +3 -3
- data/lib/td/command/server.rb +1 -1
- data/lib/td/command/status.rb +5 -5
- data/lib/td/command/table.rb +28 -23
- data/lib/td/command/update.rb +3 -3
- data/lib/td/command/user.rb +13 -13
- data/lib/td/helpers.rb +1 -6
- data/lib/td/updater.rb +9 -9
- data/lib/td/version.rb +1 -1
- data/spec/td/command/connector_spec.rb +54 -0
- data/spec/td/command/job_spec.rb +147 -0
- data/spec/td/command/sched_spec.rb +136 -14
- data/spec/td/command/table_spec.rb +1 -4
- data/spec/td/fixture/bulk_load.yml +24 -0
- data/td.gemspec +1 -1
- metadata +70 -40
- checksums.yaml +0 -7
data/spec/td/command/job_spec.rb
CHANGED
@@ -22,9 +22,81 @@ module TreasureData::Command
|
|
22
22
|
@result_size = 3
|
23
23
|
@status = 'success'
|
24
24
|
end
|
25
|
+
job.stub(:result_format) # for msgpack, msgpack.gz
|
25
26
|
job
|
26
27
|
end
|
27
28
|
|
29
|
+
describe "using tempfile" do
|
30
|
+
let(:tempfile) { "#{file.path}.tmp" }
|
31
|
+
|
32
|
+
subject { command.send(:show_result, job, file, nil, format) }
|
33
|
+
|
34
|
+
context "format: json" do
|
35
|
+
let(:format) { "json" }
|
36
|
+
|
37
|
+
it do
|
38
|
+
FileUtils.should_receive(:mv).with(tempfile, file.path)
|
39
|
+
subject
|
40
|
+
end
|
41
|
+
it do
|
42
|
+
command.should_receive(:open_file).with(tempfile, "w")
|
43
|
+
subject
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context "format: csv" do
|
48
|
+
let(:format) { "csv" }
|
49
|
+
|
50
|
+
it do
|
51
|
+
FileUtils.should_receive(:mv).with(tempfile, file.path)
|
52
|
+
subject
|
53
|
+
end
|
54
|
+
it do
|
55
|
+
command.should_receive(:open_file).with(tempfile, "w")
|
56
|
+
subject
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "format: tsv" do
|
61
|
+
let(:format) { "tsv" }
|
62
|
+
|
63
|
+
it do
|
64
|
+
FileUtils.should_receive(:mv).with(tempfile, file.path)
|
65
|
+
subject
|
66
|
+
end
|
67
|
+
it do
|
68
|
+
command.should_receive(:open_file).with(tempfile, "w")
|
69
|
+
subject
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
context "format: msgpack" do
|
74
|
+
let(:format) { "msgpack" }
|
75
|
+
|
76
|
+
it do
|
77
|
+
FileUtils.should_receive(:mv).with(tempfile, file.path)
|
78
|
+
subject
|
79
|
+
end
|
80
|
+
it do
|
81
|
+
command.should_receive(:open_file).with(tempfile, "wb")
|
82
|
+
subject
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "format: msgpack.gz" do
|
87
|
+
let(:format) { "msgpack.gz" }
|
88
|
+
|
89
|
+
it do
|
90
|
+
FileUtils.should_receive(:mv).with(tempfile, file.path)
|
91
|
+
subject
|
92
|
+
end
|
93
|
+
it do
|
94
|
+
command.should_receive(:open_file).with(tempfile, "wb")
|
95
|
+
subject
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
28
100
|
context 'result without nil' do
|
29
101
|
it 'supports json output' do
|
30
102
|
command.send(:show_result, job, file, nil, 'json')
|
@@ -238,6 +310,81 @@ module TreasureData::Command
|
|
238
310
|
end
|
239
311
|
end
|
240
312
|
|
313
|
+
describe '#job_list' do
|
314
|
+
subject do
|
315
|
+
backup = $stdout.dup
|
316
|
+
buf = StringIO.new
|
317
|
+
op = List::CommandParser.new("job:list", [], [:max], nil, [], true)
|
318
|
+
|
319
|
+
begin
|
320
|
+
$stdout = buf
|
321
|
+
command.job_list(op)
|
322
|
+
buf.string
|
323
|
+
ensure
|
324
|
+
$stdout = backup
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
let(:job_id) { "12345" }
|
329
|
+
|
330
|
+
let :job_class do
|
331
|
+
Struct.new(:job_id,
|
332
|
+
:status,
|
333
|
+
:type,
|
334
|
+
:db_name,
|
335
|
+
:priority,
|
336
|
+
:retry_limit,
|
337
|
+
:result_url,
|
338
|
+
:query,
|
339
|
+
:start_at,
|
340
|
+
:end_at,
|
341
|
+
:cpu_time,
|
342
|
+
:result_size,
|
343
|
+
:duration
|
344
|
+
)
|
345
|
+
end
|
346
|
+
|
347
|
+
let :start_at do
|
348
|
+
Time.now
|
349
|
+
end
|
350
|
+
|
351
|
+
let :jobs do
|
352
|
+
[job_class.new(job_id,
|
353
|
+
nil,
|
354
|
+
:hive,
|
355
|
+
"db_name",
|
356
|
+
1,
|
357
|
+
1,
|
358
|
+
"test_url",
|
359
|
+
"test_qury",
|
360
|
+
start_at,
|
361
|
+
start_at + 10,
|
362
|
+
1,
|
363
|
+
3,
|
364
|
+
100
|
365
|
+
)] * 3
|
366
|
+
end
|
367
|
+
|
368
|
+
before do
|
369
|
+
client = Object.new
|
370
|
+
client.stub(:jobs).and_return(jobs)
|
371
|
+
command.stub(:get_client).and_return(client)
|
372
|
+
end
|
373
|
+
|
374
|
+
it 'should display all job list' do
|
375
|
+
expect(subject).to eq <<ACTUAL
|
376
|
+
+-------+--------+---------------------------+-------------+-------------------+------------+----------+----------+------+----------+---------------+----------+
|
377
|
+
| JobID | Status | Start | Elapsed | CPUTime | ResultSize | Priority | Result | Type | Database | Query | Duration |
|
378
|
+
+-------+--------+---------------------------+-------------+-------------------+------------+----------+----------+------+----------+---------------+----------+
|
379
|
+
| 12345 | | #{start_at} | 10s | 001ms | 3 B | HIGH | test_url | hive | db_name | test_qury ... | 00:01:40 |
|
380
|
+
| 12345 | | #{start_at} | 10s | 001ms | 3 B | HIGH | test_url | hive | db_name | test_qury ... | 00:01:40 |
|
381
|
+
| 12345 | | #{start_at} | 10s | 001ms | 3 B | HIGH | test_url | hive | db_name | test_qury ... | 00:01:40 |
|
382
|
+
+-------+--------+---------------------------+-------------+-------------------+------------+----------+----------+------+----------+---------------+----------+
|
383
|
+
3 rows in set
|
384
|
+
ACTUAL
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
241
388
|
describe 'multibyte chars' do
|
242
389
|
let :multibyte_string do
|
243
390
|
# Originally a Windows-31J but in UTF-8 like msgpack-ruby populates
|
@@ -7,22 +7,144 @@ require 'td/client/model'
|
|
7
7
|
require 'time'
|
8
8
|
|
9
9
|
module TreasureData::Command
|
10
|
+
describe TreasureData::Command do
|
11
|
+
let(:client) { Object.new }
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
let :job_params do
|
14
|
+
['job_id', :type, 'query', 'status', nil, nil, time, time, 123, 456]
|
15
|
+
end
|
16
|
+
|
17
|
+
let(:job1) { TreasureData::ScheduledJob.new(client, '2015-02-17 13:22:52 +0900', *job_params) }
|
18
|
+
let(:job2) { TreasureData::ScheduledJob.new(client, nil, *job_params) }
|
19
|
+
let(:time) { Time.now.xmlschema }
|
20
|
+
let(:command) { Class.new { include TreasureData::Command }.new }
|
21
|
+
let(:argv) { [] }
|
22
|
+
let(:schedules) { [] }
|
23
|
+
let(:op) { List::CommandParser.new('sched:last_job', %w[], %w[], false, argv, []) }
|
24
|
+
|
25
|
+
before do
|
26
|
+
client.stub(:schedules).and_return(schedules)
|
21
27
|
command.stub(:get_client).and_return(client)
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
28
|
+
end
|
29
|
+
|
30
|
+
describe 'sched_history' do
|
31
|
+
before do
|
32
|
+
client.stub(:history).and_return(history)
|
33
|
+
end
|
34
|
+
|
35
|
+
let(:history) { [job1, job2] }
|
36
|
+
|
37
|
+
it 'runs' do
|
38
|
+
expect {
|
39
|
+
command.sched_history(op)
|
40
|
+
}.to_not raise_exception
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'sched_result' do
|
45
|
+
subject { command.sched_result(op) }
|
46
|
+
|
47
|
+
before do
|
48
|
+
command.stub(:get_history).with(client, nil, (back_number - 1), back_number).and_return(history)
|
49
|
+
end
|
50
|
+
|
51
|
+
shared_examples_for("passing argv and job_id to job:show") do
|
52
|
+
it "invoke 'job:show [original argv] [job id]'" do
|
53
|
+
TreasureData::Command::Runner.any_instance.should_receive(:run).with(["job:show", *show_arg, job_id])
|
54
|
+
subject
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context "history exists" do
|
59
|
+
|
60
|
+
let(:job_id) { history.first.job_id }
|
61
|
+
|
62
|
+
context 'without --last option' do
|
63
|
+
let(:history) { [job1] }
|
64
|
+
let(:back_number) { 1 }
|
65
|
+
|
66
|
+
let(:argv) { %w(--last --format csv) }
|
67
|
+
let(:show_arg) { %w(--format csv) }
|
68
|
+
it_behaves_like "passing argv and job_id to job:show"
|
69
|
+
end
|
70
|
+
|
71
|
+
context '--last witout Num' do
|
72
|
+
let(:history) { [job1] }
|
73
|
+
let(:back_number) { 1 }
|
74
|
+
|
75
|
+
let(:argv) { %w(--last --format csv) }
|
76
|
+
let(:show_arg) { %w(--format csv) }
|
77
|
+
it_behaves_like "passing argv and job_id to job:show"
|
78
|
+
end
|
79
|
+
|
80
|
+
context '--last 1' do
|
81
|
+
let(:history) { [job1] }
|
82
|
+
let(:back_number) { 1 }
|
83
|
+
|
84
|
+
let(:argv) { %w(--last 1 --format csv) }
|
85
|
+
let(:show_arg) { %w(--format csv) }
|
86
|
+
it_behaves_like "passing argv and job_id to job:show"
|
87
|
+
end
|
88
|
+
|
89
|
+
context '--last 1 and --limit 1' do
|
90
|
+
let(:history) { [job1] }
|
91
|
+
let(:back_number) { 1 }
|
92
|
+
|
93
|
+
let(:argv) { %w(--last 1 --format csv --limit 1) }
|
94
|
+
let(:show_arg) { %w(--format csv --limit 1) }
|
95
|
+
it_behaves_like "passing argv and job_id to job:show"
|
96
|
+
end
|
97
|
+
|
98
|
+
context '--last 2 after format option' do
|
99
|
+
let(:history) { [job2] }
|
100
|
+
let(:back_number) { 2 }
|
101
|
+
|
102
|
+
let(:argv) { %w(--format csv --last 2 ) }
|
103
|
+
let(:show_arg) { %w(--format csv) }
|
104
|
+
it_behaves_like "passing argv and job_id to job:show"
|
105
|
+
end
|
106
|
+
|
107
|
+
context '--last 3(too back over)' do
|
108
|
+
let(:history) { [] }
|
109
|
+
let(:back_number) { 3 }
|
110
|
+
|
111
|
+
let(:argv) { %w(--last 3 --format csv) }
|
112
|
+
it 'raise ' do
|
113
|
+
expect {
|
114
|
+
command.sched_result(op)
|
115
|
+
}.to raise_exception, "No jobs available for this query. Refer to 'sched:history'"
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
context '--last WRONGARG(not a number)' do
|
120
|
+
let(:history) { [job1] }
|
121
|
+
let(:back_number) { 1 }
|
122
|
+
|
123
|
+
let(:argv) { %w(--last TEST --format csv) }
|
124
|
+
|
125
|
+
it "exit with 1" do
|
126
|
+
begin
|
127
|
+
command.sched_result(op)
|
128
|
+
rescue SystemExit => e
|
129
|
+
expect(e.status).to eq 1
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
context "history dose not exists" do
|
136
|
+
let(:back_number) { 1 }
|
137
|
+
let(:history) { [] }
|
138
|
+
before { client.stub(:history) { raise TreasureData::NotFoundError } }
|
139
|
+
|
140
|
+
it "exit with 1" do
|
141
|
+
begin
|
142
|
+
subject
|
143
|
+
rescue SystemExit => e
|
144
|
+
expect(e.status).to eq 1
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
26
148
|
end
|
27
149
|
end
|
28
150
|
end
|
@@ -130,11 +130,8 @@ module TreasureData::Command
|
|
130
130
|
before do
|
131
131
|
create_tables = lambda {|db_name|
|
132
132
|
(1..6).map {|i|
|
133
|
-
# NOTE: TreasureData::Helpers.format_with_delimiter uses `gsub!` to their argument
|
134
|
-
# the argument (in our case, `number_raw`) will be rewritten by them
|
135
|
-
# To avoid that behavior, pass `number_raw.dup` instead of `number_raw`
|
136
133
|
schema = TreasureData::Schema.new.from_json(JSON.parse('[]'))
|
137
|
-
TreasureData::Table.new(client, db_name, db_name + "_table_#{i}", 'log', schema, number_raw
|
134
|
+
TreasureData::Table.new(client, db_name, db_name + "_table_#{i}", 'log', schema, number_raw, Time.now.to_i, Time.now.to_i, 0, nil, nil, nil, nil, nil)
|
138
135
|
}
|
139
136
|
}
|
140
137
|
db_tables = create_tables.call(db.name)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
---
|
2
|
+
config:
|
3
|
+
type: s3
|
4
|
+
access_key_id: ACCESS_KEY
|
5
|
+
secret_access_key: SECRET_ACCESS
|
6
|
+
bucket: test-bucket
|
7
|
+
path_prefix: dummy.csv.gz
|
8
|
+
parser:
|
9
|
+
charset: ISO-8859-9
|
10
|
+
newline: CRLF
|
11
|
+
type: csv
|
12
|
+
delimiter: ","
|
13
|
+
quote: ''
|
14
|
+
escape: ''
|
15
|
+
skip_header_lines: 1
|
16
|
+
columns:
|
17
|
+
- name: foo
|
18
|
+
type: long
|
19
|
+
- name: bar
|
20
|
+
type: long
|
21
|
+
- name: baz
|
22
|
+
type: long
|
23
|
+
decoders:
|
24
|
+
- type: gzip
|
data/td.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_dependency "yajl-ruby", "~> 1.1"
|
22
22
|
gem.add_dependency "hirb", ">= 0.4.5"
|
23
23
|
gem.add_dependency "parallel", "~> 0.6.1"
|
24
|
-
gem.add_dependency "td-client", "~> 0.8.
|
24
|
+
gem.add_dependency "td-client", "~> 0.8.70"
|
25
25
|
gem.add_dependency "td-logger", "~> 0.3.21"
|
26
26
|
gem.add_dependency "rubyzip", "~> 0.9.9"
|
27
27
|
gem.add_development_dependency "rake", "~> 0.9"
|
metadata
CHANGED
@@ -1,183 +1,204 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: td
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.10
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Treasure Data, Inc.
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-05-19 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: msgpack
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.4.4
|
20
|
-
- -
|
22
|
+
- - ! '!='
|
21
23
|
- !ruby/object:Gem::Version
|
22
24
|
version: 0.5.0
|
23
|
-
- -
|
25
|
+
- - ! '!='
|
24
26
|
- !ruby/object:Gem::Version
|
25
27
|
version: 0.5.1
|
26
|
-
- -
|
28
|
+
- - ! '!='
|
27
29
|
- !ruby/object:Gem::Version
|
28
30
|
version: 0.5.2
|
29
|
-
- -
|
31
|
+
- - ! '!='
|
30
32
|
- !ruby/object:Gem::Version
|
31
33
|
version: 0.5.3
|
32
|
-
- -
|
34
|
+
- - <
|
33
35
|
- !ruby/object:Gem::Version
|
34
36
|
version: 0.6.0
|
35
37
|
type: :runtime
|
36
38
|
prerelease: false
|
37
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
38
41
|
requirements:
|
39
|
-
- -
|
42
|
+
- - ! '>='
|
40
43
|
- !ruby/object:Gem::Version
|
41
44
|
version: 0.4.4
|
42
|
-
- -
|
45
|
+
- - ! '!='
|
43
46
|
- !ruby/object:Gem::Version
|
44
47
|
version: 0.5.0
|
45
|
-
- -
|
48
|
+
- - ! '!='
|
46
49
|
- !ruby/object:Gem::Version
|
47
50
|
version: 0.5.1
|
48
|
-
- -
|
51
|
+
- - ! '!='
|
49
52
|
- !ruby/object:Gem::Version
|
50
53
|
version: 0.5.2
|
51
|
-
- -
|
54
|
+
- - ! '!='
|
52
55
|
- !ruby/object:Gem::Version
|
53
56
|
version: 0.5.3
|
54
|
-
- -
|
57
|
+
- - <
|
55
58
|
- !ruby/object:Gem::Version
|
56
59
|
version: 0.6.0
|
57
60
|
- !ruby/object:Gem::Dependency
|
58
61
|
name: yajl-ruby
|
59
62
|
requirement: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
60
64
|
requirements:
|
61
|
-
- -
|
65
|
+
- - ~>
|
62
66
|
- !ruby/object:Gem::Version
|
63
67
|
version: '1.1'
|
64
68
|
type: :runtime
|
65
69
|
prerelease: false
|
66
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
67
72
|
requirements:
|
68
|
-
- -
|
73
|
+
- - ~>
|
69
74
|
- !ruby/object:Gem::Version
|
70
75
|
version: '1.1'
|
71
76
|
- !ruby/object:Gem::Dependency
|
72
77
|
name: hirb
|
73
78
|
requirement: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
74
80
|
requirements:
|
75
|
-
- -
|
81
|
+
- - ! '>='
|
76
82
|
- !ruby/object:Gem::Version
|
77
83
|
version: 0.4.5
|
78
84
|
type: :runtime
|
79
85
|
prerelease: false
|
80
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
81
88
|
requirements:
|
82
|
-
- -
|
89
|
+
- - ! '>='
|
83
90
|
- !ruby/object:Gem::Version
|
84
91
|
version: 0.4.5
|
85
92
|
- !ruby/object:Gem::Dependency
|
86
93
|
name: parallel
|
87
94
|
requirement: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
88
96
|
requirements:
|
89
|
-
- -
|
97
|
+
- - ~>
|
90
98
|
- !ruby/object:Gem::Version
|
91
99
|
version: 0.6.1
|
92
100
|
type: :runtime
|
93
101
|
prerelease: false
|
94
102
|
version_requirements: !ruby/object:Gem::Requirement
|
103
|
+
none: false
|
95
104
|
requirements:
|
96
|
-
- -
|
105
|
+
- - ~>
|
97
106
|
- !ruby/object:Gem::Version
|
98
107
|
version: 0.6.1
|
99
108
|
- !ruby/object:Gem::Dependency
|
100
109
|
name: td-client
|
101
110
|
requirement: !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
102
112
|
requirements:
|
103
|
-
- -
|
113
|
+
- - ~>
|
104
114
|
- !ruby/object:Gem::Version
|
105
|
-
version: 0.8.
|
115
|
+
version: 0.8.70
|
106
116
|
type: :runtime
|
107
117
|
prerelease: false
|
108
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
109
120
|
requirements:
|
110
|
-
- -
|
121
|
+
- - ~>
|
111
122
|
- !ruby/object:Gem::Version
|
112
|
-
version: 0.8.
|
123
|
+
version: 0.8.70
|
113
124
|
- !ruby/object:Gem::Dependency
|
114
125
|
name: td-logger
|
115
126
|
requirement: !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
116
128
|
requirements:
|
117
|
-
- -
|
129
|
+
- - ~>
|
118
130
|
- !ruby/object:Gem::Version
|
119
131
|
version: 0.3.21
|
120
132
|
type: :runtime
|
121
133
|
prerelease: false
|
122
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
123
136
|
requirements:
|
124
|
-
- -
|
137
|
+
- - ~>
|
125
138
|
- !ruby/object:Gem::Version
|
126
139
|
version: 0.3.21
|
127
140
|
- !ruby/object:Gem::Dependency
|
128
141
|
name: rubyzip
|
129
142
|
requirement: !ruby/object:Gem::Requirement
|
143
|
+
none: false
|
130
144
|
requirements:
|
131
|
-
- -
|
145
|
+
- - ~>
|
132
146
|
- !ruby/object:Gem::Version
|
133
147
|
version: 0.9.9
|
134
148
|
type: :runtime
|
135
149
|
prerelease: false
|
136
150
|
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
137
152
|
requirements:
|
138
|
-
- -
|
153
|
+
- - ~>
|
139
154
|
- !ruby/object:Gem::Version
|
140
155
|
version: 0.9.9
|
141
156
|
- !ruby/object:Gem::Dependency
|
142
157
|
name: rake
|
143
158
|
requirement: !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
144
160
|
requirements:
|
145
|
-
- -
|
161
|
+
- - ~>
|
146
162
|
- !ruby/object:Gem::Version
|
147
163
|
version: '0.9'
|
148
164
|
type: :development
|
149
165
|
prerelease: false
|
150
166
|
version_requirements: !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
151
168
|
requirements:
|
152
|
-
- -
|
169
|
+
- - ~>
|
153
170
|
- !ruby/object:Gem::Version
|
154
171
|
version: '0.9'
|
155
172
|
- !ruby/object:Gem::Dependency
|
156
173
|
name: rspec
|
157
174
|
requirement: !ruby/object:Gem::Requirement
|
175
|
+
none: false
|
158
176
|
requirements:
|
159
|
-
- -
|
177
|
+
- - ~>
|
160
178
|
- !ruby/object:Gem::Version
|
161
179
|
version: 2.11.0
|
162
180
|
type: :development
|
163
181
|
prerelease: false
|
164
182
|
version_requirements: !ruby/object:Gem::Requirement
|
183
|
+
none: false
|
165
184
|
requirements:
|
166
|
-
- -
|
185
|
+
- - ~>
|
167
186
|
- !ruby/object:Gem::Version
|
168
187
|
version: 2.11.0
|
169
188
|
- !ruby/object:Gem::Dependency
|
170
189
|
name: simplecov
|
171
190
|
requirement: !ruby/object:Gem::Requirement
|
191
|
+
none: false
|
172
192
|
requirements:
|
173
|
-
- -
|
193
|
+
- - ~>
|
174
194
|
- !ruby/object:Gem::Version
|
175
195
|
version: 0.5.4
|
176
196
|
type: :development
|
177
197
|
prerelease: false
|
178
198
|
version_requirements: !ruby/object:Gem::Requirement
|
199
|
+
none: false
|
179
200
|
requirements:
|
180
|
-
- -
|
201
|
+
- - ~>
|
181
202
|
- !ruby/object:Gem::Version
|
182
203
|
version: 0.5.4
|
183
204
|
description: CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing
|
@@ -187,7 +208,7 @@ executables:
|
|
187
208
|
extensions: []
|
188
209
|
extra_rdoc_files: []
|
189
210
|
files:
|
190
|
-
-
|
211
|
+
- .gitignore
|
191
212
|
- ChangeLog
|
192
213
|
- Gemfile
|
193
214
|
- README.rdoc
|
@@ -211,6 +232,7 @@ files:
|
|
211
232
|
- lib/td/command/import.rb
|
212
233
|
- lib/td/command/job.rb
|
213
234
|
- lib/td/command/list.rb
|
235
|
+
- lib/td/command/options.rb
|
214
236
|
- lib/td/command/password.rb
|
215
237
|
- lib/td/command/query.rb
|
216
238
|
- lib/td/command/result.rb
|
@@ -238,11 +260,13 @@ files:
|
|
238
260
|
- spec/file_reader/shared_context.rb
|
239
261
|
- spec/file_reader_spec.rb
|
240
262
|
- spec/spec_helper.rb
|
263
|
+
- spec/td/command/connector_spec.rb
|
241
264
|
- spec/td/command/import_spec.rb
|
242
265
|
- spec/td/command/job_spec.rb
|
243
266
|
- spec/td/command/sched_spec.rb
|
244
267
|
- spec/td/command/table_spec.rb
|
245
268
|
- spec/td/common_spec.rb
|
269
|
+
- spec/td/fixture/bulk_load.yml
|
246
270
|
- spec/td/fixture/ca.cert
|
247
271
|
- spec/td/fixture/server.cert
|
248
272
|
- spec/td/fixture/server.key
|
@@ -253,26 +277,30 @@ files:
|
|
253
277
|
- td.gemspec
|
254
278
|
homepage: http://treasure-data.com/
|
255
279
|
licenses: []
|
256
|
-
metadata: {}
|
257
280
|
post_install_message:
|
258
281
|
rdoc_options: []
|
259
282
|
require_paths:
|
260
283
|
- lib
|
261
284
|
required_ruby_version: !ruby/object:Gem::Requirement
|
285
|
+
none: false
|
262
286
|
requirements:
|
263
|
-
- -
|
287
|
+
- - ! '>='
|
264
288
|
- !ruby/object:Gem::Version
|
265
289
|
version: '1.9'
|
266
290
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
291
|
+
none: false
|
267
292
|
requirements:
|
268
|
-
- -
|
293
|
+
- - ! '>='
|
269
294
|
- !ruby/object:Gem::Version
|
270
295
|
version: '0'
|
296
|
+
segments:
|
297
|
+
- 0
|
298
|
+
hash: -1990136432195876879
|
271
299
|
requirements: []
|
272
300
|
rubyforge_project:
|
273
|
-
rubygems_version:
|
301
|
+
rubygems_version: 1.8.23.2
|
274
302
|
signing_key:
|
275
|
-
specification_version:
|
303
|
+
specification_version: 3
|
276
304
|
summary: CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing
|
277
305
|
test_files:
|
278
306
|
- spec/file_reader/filter_spec.rb
|
@@ -282,11 +310,13 @@ test_files:
|
|
282
310
|
- spec/file_reader/shared_context.rb
|
283
311
|
- spec/file_reader_spec.rb
|
284
312
|
- spec/spec_helper.rb
|
313
|
+
- spec/td/command/connector_spec.rb
|
285
314
|
- spec/td/command/import_spec.rb
|
286
315
|
- spec/td/command/job_spec.rb
|
287
316
|
- spec/td/command/sched_spec.rb
|
288
317
|
- spec/td/command/table_spec.rb
|
289
318
|
- spec/td/common_spec.rb
|
319
|
+
- spec/td/fixture/bulk_load.yml
|
290
320
|
- spec/td/fixture/ca.cert
|
291
321
|
- spec/td/fixture/server.cert
|
292
322
|
- spec/td/fixture/server.key
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 35121e210f89e8af8d88f3de09c5da1a46f465f5
|
4
|
-
data.tar.gz: 2ed8a007214c1861d9653ad88a6e204b11959487
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: e29254a97c4170455119d3d0d11a8c026d05b431f3fe58ad69bbaeb7f6837805fcdbe51fdd91c8ebe3ae6a9c7077f3312cd681a0f865a3bf2eddb43399446be0
|
7
|
-
data.tar.gz: 908f511b6ed2f6b293cdc809b203a367869607f7fd0d130c5f85919cc5d0462fec372a214c31df2ecde30cde248804c173fb9a5d32136d84f605d5557fc09cb3
|