td-client 0.8.66 → 0.8.67
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.
- checksums.yaml +4 -4
- data/lib/td/client/api.rb +11 -8
- data/lib/td/client/version.rb +1 -1
- data/spec/spec_helper.rb +5 -1
- data/spec/td/client/bulk_import_spec.rb +8 -8
- data/spec/td/client/db_api_spec.rb +13 -13
- data/spec/td/client/export_api_spec.rb +4 -4
- data/spec/td/client/partial_delete_api_spec.rb +6 -6
- data/spec/td/client/result_api_spec.rb +7 -7
- data/spec/td/client/sched_api_spec.rb +14 -14
- data/spec/td/client/table_api_spec.rb +21 -21
- metadata +32 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13c565f827556460635d600c91a409818904e256
|
4
|
+
data.tar.gz: 2ff8ec8823177a04c69dd767040fc844dcf47e9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e45453b9ce95aa5054436ce1131c66c36b35b8a85e91c7b49df632b4cf940ce8969c8325f6d5bb1d6d686529e609f7cb28cd626d60de2ebb83d30074caad94b1
|
7
|
+
data.tar.gz: c0c9b534f3d0e33947387d3a73394e281e61f74b2f896220b4e9dba2a87166059d40788c8a9cc7951e8cfb39d698d987d5bc2fb09875cc87cab073a84da36888
|
data/lib/td/client/api.rb
CHANGED
@@ -1418,15 +1418,18 @@ class API
|
|
1418
1418
|
end
|
1419
1419
|
|
1420
1420
|
response = client.put(target, body, header)
|
1421
|
-
|
1422
|
-
|
1423
|
-
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1421
|
+
begin
|
1422
|
+
unless ENV['TD_CLIENT_DEBUG'].nil?
|
1423
|
+
puts "DEBUG: REST PUT response:"
|
1424
|
+
puts "DEBUG: header: " + response.header.to_s
|
1425
|
+
puts "DEBUG: status: " + response.code.to_s
|
1426
|
+
puts "DEBUG: body: <omitted>"
|
1427
|
+
end
|
1428
|
+
return [response.code.to_s, response.body, response]
|
1429
|
+
ensure
|
1430
|
+
# Disconnect keep-alive connection explicitly here, not by GC.
|
1431
|
+
client.reset(target) rescue nil
|
1427
1432
|
end
|
1428
|
-
|
1429
|
-
return [response.code.to_s, response.body, response]
|
1430
1433
|
end
|
1431
1434
|
|
1432
1435
|
def build_endpoint(url, host)
|
data/lib/td/client/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -25,7 +25,11 @@ shared_context 'common helper' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
let :headers do
|
28
|
-
|
28
|
+
if RUBY_VERSION >= "2.0.0"
|
29
|
+
{'Accept' => '*/*', 'Accept-Encoding' => /gzip/, 'Date' => /.*/, 'User-Agent' => /Ruby/}
|
30
|
+
else
|
31
|
+
{'Accept' => '*/*', 'Date' => /.*/, 'User-Agent' => /Ruby/}
|
32
|
+
end
|
29
33
|
end
|
30
34
|
|
31
35
|
def stub_api_request(method, path, opts = nil)
|
@@ -11,8 +11,8 @@ describe 'BulkImport API' do
|
|
11
11
|
|
12
12
|
describe 'create_bulk_import' do
|
13
13
|
it 'should create a new bulk_import' do
|
14
|
-
stub_api_request(:post, "/v3/bulk_import/create/#{e(bi_name)}/#{e(db_name)}/#{e(table_name)}")
|
15
|
-
|
14
|
+
stub_api_request(:post, "/v3/bulk_import/create/#{e(bi_name)}/#{e(db_name)}/#{e(table_name)}").
|
15
|
+
to_return(:body => {'bulk_import' => bi_name}.to_json)
|
16
16
|
|
17
17
|
api.create_bulk_import(bi_name, db_name, table_name).should be_nil
|
18
18
|
end
|
@@ -20,8 +20,8 @@ describe 'BulkImport API' do
|
|
20
20
|
it 'should return 422 error with invalid name' do
|
21
21
|
name = 'D'
|
22
22
|
err_msg = "Validation failed: Name is too short" # " (minimum is 3 characters)"
|
23
|
-
stub_api_request(:post, "/v3/bulk_import/create/#{e(name)}/#{e(db_name)}/#{e(table_name)}")
|
24
|
-
|
23
|
+
stub_api_request(:post, "/v3/bulk_import/create/#{e(name)}/#{e(db_name)}/#{e(table_name)}").
|
24
|
+
to_return(:status => 422, :body => {'message' => err_msg}.to_json)
|
25
25
|
|
26
26
|
expect {
|
27
27
|
api.create_bulk_import(name, db_name, table_name)
|
@@ -31,8 +31,8 @@ describe 'BulkImport API' do
|
|
31
31
|
it 'should return 404 error with non exist database name' do
|
32
32
|
db = 'no_such_db'
|
33
33
|
err_msg = "Couldn't find UserDatabase with name = #{db}"
|
34
|
-
stub_api_request(:post, "/v3/bulk_import/create/#{e(bi_name)}/#{e(db)}/#{e(table_name)}")
|
35
|
-
|
34
|
+
stub_api_request(:post, "/v3/bulk_import/create/#{e(bi_name)}/#{e(db)}/#{e(table_name)}").
|
35
|
+
to_return(:status => 404, :body => {'message' => err_msg}.to_json)
|
36
36
|
|
37
37
|
expect {
|
38
38
|
api.create_bulk_import(bi_name, db, table_name)
|
@@ -42,8 +42,8 @@ describe 'BulkImport API' do
|
|
42
42
|
it 'should return 404 error with non exist table name' do
|
43
43
|
table = 'no_such_table'
|
44
44
|
err_msg = "Couldn't find UserTableReference with name = #{table}"
|
45
|
-
stub_api_request(:post, "/v3/bulk_import/create/#{e(bi_name)}/#{e(db_name)}/#{e(table)}")
|
46
|
-
|
45
|
+
stub_api_request(:post, "/v3/bulk_import/create/#{e(bi_name)}/#{e(db_name)}/#{e(table)}").
|
46
|
+
to_return(:status => 404, :body => {'message' => err_msg}.to_json)
|
47
47
|
|
48
48
|
expect {
|
49
49
|
api.create_bulk_import(bi_name, db_name, table)
|
@@ -15,8 +15,8 @@ describe 'Database API' do
|
|
15
15
|
|
16
16
|
describe "'create_database' API" do
|
17
17
|
it 'should create a new database' do
|
18
|
-
stub_api_request(:post, "/v3/database/create/#{e(db_name)}")
|
19
|
-
|
18
|
+
stub_api_request(:post, "/v3/database/create/#{e(db_name)}").
|
19
|
+
to_return(:body => {'database' => db_name}.to_json)
|
20
20
|
|
21
21
|
api.create_database(db_name).should be true
|
22
22
|
end
|
@@ -24,8 +24,8 @@ describe 'Database API' do
|
|
24
24
|
it 'should return 400 error with invalid name' do
|
25
25
|
invalid_name = 'a'
|
26
26
|
err_msg = "Name must be 3 to 256 characters, got #{invalid_name.length} characters. name = '#{invalid_name}'"
|
27
|
-
stub_api_request(:post, "/v3/database/create/#{e(invalid_name)}")
|
28
|
-
|
27
|
+
stub_api_request(:post, "/v3/database/create/#{e(invalid_name)}").
|
28
|
+
to_return(:status => 400, :body => {'message' => err_msg}.to_json)
|
29
29
|
|
30
30
|
expect {
|
31
31
|
api.create_database(invalid_name)
|
@@ -34,8 +34,8 @@ describe 'Database API' do
|
|
34
34
|
|
35
35
|
it 'should return 409 error with duplicated name' do
|
36
36
|
err_msg = "Database #{db_name} already exists"
|
37
|
-
stub_api_request(:post, "/v3/database/create/#{e(db_name)}")
|
38
|
-
|
37
|
+
stub_api_request(:post, "/v3/database/create/#{e(db_name)}").
|
38
|
+
to_return(:status => 409, :body => {'message' => err_msg}.to_json)
|
39
39
|
|
40
40
|
expect {
|
41
41
|
api.create_database(db_name)
|
@@ -51,8 +51,8 @@ describe 'Database API' do
|
|
51
51
|
["db_3", 333, "2013-03-23 03:53:43 UTC", "2014-03-23 03:53:43 UTC", nil, "import_only"],
|
52
52
|
["db_4", 444, "2013-04-24 04:54:44 UTC", "2014-04-24 04:54:44 UTC", nil, "query_only"]
|
53
53
|
]
|
54
|
-
stub_api_request(:get, "/v3/database/list")
|
55
|
-
|
54
|
+
stub_api_request(:get, "/v3/database/list").
|
55
|
+
to_return(:body => {'databases' => [
|
56
56
|
{'name' => databases[0][0], 'count' => databases[0][1], 'created_at' => databases[0][2], 'updated_at' => databases[0][3], 'organization' => databases[0][4], 'permission' => databases[0][5]},
|
57
57
|
{'name' => databases[1][0], 'count' => databases[1][1], 'created_at' => databases[1][2], 'updated_at' => databases[1][3], 'organization' => databases[1][4], 'permission' => databases[1][5]},
|
58
58
|
{'name' => databases[2][0], 'count' => databases[2][1], 'created_at' => databases[2][2], 'updated_at' => databases[2][3], 'organization' => databases[2][4], 'permission' => databases[2][5]},
|
@@ -74,15 +74,15 @@ describe 'Database API' do
|
|
74
74
|
["db_3", 333, "2013-03-23 03:53:43 UTC", "2014-03-23 03:53:43 UTC", nil, "import_only"],
|
75
75
|
["db_4", 444, "2013-04-24 04:54:44 UTC", "2014-04-24 04:54:44 UTC", nil, "query_only"]
|
76
76
|
]
|
77
|
-
stub_api_request(:get, "/v3/database/list")
|
78
|
-
|
77
|
+
stub_api_request(:get, "/v3/database/list").
|
78
|
+
to_return(:body => {'databases' => [
|
79
79
|
{'name' => databases[0][0], 'count' => databases[0][1], 'created_at' => databases[0][2], 'updated_at' => databases[0][3], 'organization' => databases[0][4], 'permission' => databases[0][5]},
|
80
80
|
{'name' => databases[1][0], 'count' => databases[1][1], 'created_at' => databases[1][2], 'updated_at' => databases[1][3], 'organization' => databases[1][4], 'permission' => databases[1][5]},
|
81
81
|
{'name' => databases[2][0], 'count' => databases[2][1], 'created_at' => databases[2][2], 'updated_at' => databases[2][3], 'organization' => databases[2][4], 'permission' => databases[2][5]},
|
82
82
|
{'name' => databases[3][0], 'count' => databases[3][1], 'created_at' => databases[3][2], 'updated_at' => databases[3][3], 'organization' => databases[3][4], 'permission' => databases[3][5]}
|
83
83
|
]}.to_json)
|
84
84
|
|
85
|
-
db_list = client.databases
|
85
|
+
db_list = client.databases.sort_by { |e| e.name }
|
86
86
|
databases.length.times {|i|
|
87
87
|
expect(db_list[i].name).to eq(databases[i][0])
|
88
88
|
expect(db_list[i].count).to eq(databases[i][1])
|
@@ -102,8 +102,8 @@ describe 'Database API' do
|
|
102
102
|
["db_3", 333, "2013-03-23 03:53:43 UTC", "2014-03-23 03:53:43 UTC", nil, "import_only"],
|
103
103
|
["db_4", 444, "2013-04-24 04:54:44 UTC", "2014-04-24 04:54:44 UTC", nil, "query_only"]
|
104
104
|
]
|
105
|
-
stub_api_request(:get, "/v3/database/list")
|
106
|
-
|
105
|
+
stub_api_request(:get, "/v3/database/list").
|
106
|
+
to_return(:body => {'databases' => [
|
107
107
|
{'name' => databases[0][0], 'count' => databases[0][1], 'created_at' => databases[0][2], 'updated_at' => databases[0][3], 'organization' => databases[0][4], 'permission' => databases[0][5]},
|
108
108
|
{'name' => databases[1][0], 'count' => databases[1][1], 'created_at' => databases[1][2], 'updated_at' => databases[1][3], 'organization' => databases[1][4], 'permission' => databases[1][5]},
|
109
109
|
{'name' => databases[2][0], 'count' => databases[2][1], 'created_at' => databases[2][2], 'updated_at' => databases[2][3], 'organization' => databases[2][4], 'permission' => databases[2][5]},
|
@@ -17,8 +17,8 @@ describe 'Export API' do
|
|
17
17
|
it 'should export successfully' do
|
18
18
|
# TODO: Use correnty values
|
19
19
|
params = {'file_format' => 'json.gz', 'bucket' => 'bin', 'access_key_id' => 'id', 'secret_access_key' => 'secret'}
|
20
|
-
stub_api_request(:post, "/v3/export/run/#{e(db_name)}/#{e(table_name)}").with(:body => params.merge('storage_type' => storage_type))
|
21
|
-
|
20
|
+
stub_api_request(:post, "/v3/export/run/#{e(db_name)}/#{e(table_name)}").with(:body => params.merge('storage_type' => storage_type)).
|
21
|
+
to_return(:body => {'database' => db_name, 'job_id' => '1', 'debug' => {}}.to_json)
|
22
22
|
|
23
23
|
api.export(db_name, table_name, storage_type, params).should == '1'
|
24
24
|
end
|
@@ -27,8 +27,8 @@ describe 'Export API' do
|
|
27
27
|
invalid_type = 'gridfs'
|
28
28
|
params = {'storage_type' => invalid_type}
|
29
29
|
err_msg = "Only s3 output type is supported: #{invalid_type}"
|
30
|
-
stub_api_request(:post, "/v3/export/run/#{e(db_name)}/#{e(table_name)}").with(:body => params)
|
31
|
-
|
30
|
+
stub_api_request(:post, "/v3/export/run/#{e(db_name)}/#{e(table_name)}").with(:body => params).
|
31
|
+
to_return(:status => 400, :body => {'message' => err_msg}.to_json)
|
32
32
|
|
33
33
|
expect {
|
34
34
|
api.export(db_name, table_name, invalid_type)
|
@@ -24,8 +24,8 @@ describe 'PartialDelete API' do
|
|
24
24
|
|
25
25
|
it 'should partial_delete successfully' do
|
26
26
|
# TODO: Use correnty values
|
27
|
-
stub_api_request(:post, "/v3/table/partialdelete/#{e(db_name)}/#{e(table_name)}").with(:body => from_to)
|
28
|
-
|
27
|
+
stub_api_request(:post, "/v3/table/partialdelete/#{e(db_name)}/#{e(table_name)}").with(:body => from_to).
|
28
|
+
to_return(:body => {'database' => db_name, 'table' => table_name, 'job_id' => '1'}.to_json)
|
29
29
|
|
30
30
|
api.partial_delete(db_name, table_name, to, from).should == '1'
|
31
31
|
end
|
@@ -33,8 +33,8 @@ describe 'PartialDelete API' do
|
|
33
33
|
it 'should return 404 error with non exist database name' do
|
34
34
|
db = 'no_such_db'
|
35
35
|
err_msg = "Couldn't find UserDatabase with name = #{db}"
|
36
|
-
stub_api_request(:post, "/v3/table/partialdelete/#{e(db)}/#{e(table_name)}").with(:body => from_to)
|
37
|
-
|
36
|
+
stub_api_request(:post, "/v3/table/partialdelete/#{e(db)}/#{e(table_name)}").with(:body => from_to).
|
37
|
+
to_return(:status => 404, :body => {'message' => err_msg}.to_json)
|
38
38
|
|
39
39
|
expect {
|
40
40
|
api.partial_delete(db, table_name, to, from)
|
@@ -44,8 +44,8 @@ describe 'PartialDelete API' do
|
|
44
44
|
it 'should return 404 error with non exist table name' do
|
45
45
|
table = 'no_such_table'
|
46
46
|
err_msg = "Unknown table: #{table}"
|
47
|
-
stub_api_request(:post, "/v3/table/partialdelete/#{e(db_name)}/#{e(table)}").with(:body => from_to)
|
48
|
-
|
47
|
+
stub_api_request(:post, "/v3/table/partialdelete/#{e(db_name)}/#{e(table)}").with(:body => from_to).
|
48
|
+
to_return(:status => 404, :body => {'message' => err_msg}.to_json)
|
49
49
|
|
50
50
|
expect {
|
51
51
|
api.partial_delete(db_name, table, to, from)
|
@@ -12,7 +12,7 @@ describe 'Result API' do
|
|
12
12
|
describe 'create_result' do
|
13
13
|
it 'should create a new result' do
|
14
14
|
params = {'url' => result_url}
|
15
|
-
stub_api_request(:post, "/v3/result/create/#{e(result_name)}").with(:body => params).to_return(:body => {'result' => result_name})
|
15
|
+
stub_api_request(:post, "/v3/result/create/#{e(result_name)}").with(:body => params).to_return(:body => {'result' => result_name}.to_json)
|
16
16
|
|
17
17
|
api.create_result(result_name, result_url).should be true
|
18
18
|
end
|
@@ -21,8 +21,8 @@ describe 'Result API' do
|
|
21
21
|
name = '1'
|
22
22
|
params = {'url' => result_url}
|
23
23
|
err_msg = "Validation failed: Name is too short" # " (minimum is 3 characters)"
|
24
|
-
stub_api_request(:post, "/v3/result/create/#{e(name)}").with(:body => params)
|
25
|
-
|
24
|
+
stub_api_request(:post, "/v3/result/create/#{e(name)}").with(:body => params).
|
25
|
+
to_return(:status => 422, :body => {'message' => err_msg}.to_json)
|
26
26
|
|
27
27
|
expect {
|
28
28
|
api.create_result(name, result_url)
|
@@ -32,8 +32,8 @@ describe 'Result API' do
|
|
32
32
|
it 'should return 422 error without url' do
|
33
33
|
params = {'url' => 'false'} # I want to use nil, but nil doesn't work on WebMock...
|
34
34
|
err_msg = "'url' parameter is required"
|
35
|
-
stub_api_request(:post, "/v3/result/create/#{e(result_name)}").with(:body => params)
|
36
|
-
|
35
|
+
stub_api_request(:post, "/v3/result/create/#{e(result_name)}").with(:body => params).
|
36
|
+
to_return(:status => 422, :body => {'message' => err_msg}.to_json)
|
37
37
|
|
38
38
|
expect {
|
39
39
|
api.create_result(result_name, false)
|
@@ -43,8 +43,8 @@ describe 'Result API' do
|
|
43
43
|
it 'should return 409 error with duplicated name' do
|
44
44
|
params = {'url' => result_url}
|
45
45
|
err_msg = "Result must be unique"
|
46
|
-
stub_api_request(:post, "/v3/result/create/#{e(result_name)}").with(:body => params)
|
47
|
-
|
46
|
+
stub_api_request(:post, "/v3/result/create/#{e(result_name)}").with(:body => params).
|
47
|
+
to_return(:status => 409, :body => {'message' => err_msg}.to_json)
|
48
48
|
|
49
49
|
expect {
|
50
50
|
api.create_result(result_name, result_url)
|
@@ -16,9 +16,9 @@ describe 'Schedule API' do
|
|
16
16
|
|
17
17
|
it 'should create a new schedule' do
|
18
18
|
start = Time.now
|
19
|
-
stub_api_request(:post, "/v3/schedule/create/#{e(sched_name)}")
|
20
|
-
|
21
|
-
|
19
|
+
stub_api_request(:post, "/v3/schedule/create/#{e(sched_name)}").
|
20
|
+
with(:body => opts.merge('type' => 'hive')).
|
21
|
+
to_return(:body => {'name' => sched_name, 'start' => start.to_s}.to_json)
|
22
22
|
|
23
23
|
api.create_schedule(sched_name, opts.merge('type' => 'hive')).should == start.to_s
|
24
24
|
end
|
@@ -26,9 +26,9 @@ describe 'Schedule API' do
|
|
26
26
|
it 'should return 422 error with invalid name' do
|
27
27
|
name = '1'
|
28
28
|
err_msg = "Validation failed: Name is too short" # " (minimum is 3 characters)"
|
29
|
-
stub_api_request(:post, "/v3/schedule/create/#{e(name)}")
|
30
|
-
|
31
|
-
|
29
|
+
stub_api_request(:post, "/v3/schedule/create/#{e(name)}").
|
30
|
+
with(:body => opts.merge('type' => 'hive')).
|
31
|
+
to_return(:status => 422, :body => {'message' => err_msg}.to_json)
|
32
32
|
|
33
33
|
expect {
|
34
34
|
api.create_schedule(name, opts.merge('type' => 'hive'))
|
@@ -45,9 +45,9 @@ describe 'Schedule API' do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'should not return 414 even if the query text is very long' do
|
48
|
-
stub_api_request(:post, "/v3/schedule/update/#{e(sched_name)}")
|
49
|
-
|
50
|
-
|
48
|
+
stub_api_request(:post, "/v3/schedule/update/#{e(sched_name)}").
|
49
|
+
with(:body => opts.merge('type' => 'pig')).
|
50
|
+
to_return(:body => {'name' => sched_name, 'query' => pig_query}.to_json)
|
51
51
|
|
52
52
|
expect {
|
53
53
|
api.update_schedule(sched_name, opts.merge('type' => 'pig'))
|
@@ -55,12 +55,12 @@ describe 'Schedule API' do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it 'should update the schedule with the new query' do
|
58
|
-
stub_api_request(:post, "/v3/schedule/update/#{e(sched_name)}")
|
59
|
-
|
60
|
-
|
58
|
+
stub_api_request(:post, "/v3/schedule/update/#{e(sched_name)}").
|
59
|
+
with(:body => opts.merge('type' => 'pig')).
|
60
|
+
to_return(:body => {'name' => sched_name, 'query' => pig_query}.to_json)
|
61
61
|
|
62
|
-
stub_api_request(:get, "/v3/schedule/list")
|
63
|
-
|
62
|
+
stub_api_request(:get, "/v3/schedule/list").
|
63
|
+
to_return(:body => {'schedules' => [{'name' => sched_name, 'query' => pig_query}]}.to_json)
|
64
64
|
|
65
65
|
expect(api.list_schedules.first[2]).to eq(pig_query)
|
66
66
|
end
|
@@ -16,8 +16,8 @@ describe 'Table API' do
|
|
16
16
|
describe "'create_log_table' API" do
|
17
17
|
it 'should return 404 error if the database does not exist' do
|
18
18
|
err_msg = "Create log table failed: Couldn't find UserDatabase with name = #{db_name}"
|
19
|
-
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e(table_name)}/log")
|
20
|
-
|
19
|
+
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e(table_name)}/log").
|
20
|
+
to_return(:status => 404, :body => {'message' => err_msg}.to_json)
|
21
21
|
|
22
22
|
expect {
|
23
23
|
api.create_log_table(db_name, table_name)
|
@@ -25,16 +25,16 @@ describe 'Table API' do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'should create a new table if the database exists' do
|
28
|
-
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e(table_name)}/log")
|
29
|
-
|
28
|
+
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e(table_name)}/log").
|
29
|
+
to_return(:body => {'database' => db_name, 'table' => table_name, 'type' => 'log'}.to_json)
|
30
30
|
api.create_log_table(db_name, table_name).should be true
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'should return 400 error with invalid name' do
|
34
34
|
invalid_name = 'a'
|
35
35
|
err_msg = "Name must be 3 to 256 characters, got #{invalid_name.length} characters. name = '#{invalid_name}'"
|
36
|
-
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e invalid_name}/log")
|
37
|
-
|
36
|
+
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e invalid_name}/log").
|
37
|
+
to_return(:status => 400, :body => {'message' => err_msg}.to_json)
|
38
38
|
|
39
39
|
expect {
|
40
40
|
api.create_log_table(db_name, invalid_name)
|
@@ -43,8 +43,8 @@ describe 'Table API' do
|
|
43
43
|
|
44
44
|
it 'should return 409 error with duplicated name' do
|
45
45
|
err_msg = "Table #{table_name} already exists"
|
46
|
-
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e table_name}/log")
|
47
|
-
|
46
|
+
stub_api_request(:post, "/v3/table/create/#{e db_name}/#{e table_name}/log").
|
47
|
+
to_return(:status => 409, :body => {'message' => err_msg}.to_json)
|
48
48
|
|
49
49
|
expect {
|
50
50
|
api.create_log_table(db_name, table_name)
|
@@ -60,8 +60,8 @@ describe 'Table API' do
|
|
60
60
|
["table_3", "item", "[[\"time\",\"long\"],[\"value\",\"string\"]]", 333, "2013-03-23 03:53:43 UTC", "2014-03-23 03:53:43 UTC"],
|
61
61
|
["table_4", "log", "[[\"time\",\"long\"],[\"value\",\"long\"]]", 444, "2013-04-24 04:54:44 UTC", "2014-04-24 04:54:44 UTC"]
|
62
62
|
]
|
63
|
-
stub_api_request(:get, "/v3/table/list/#{e db_name}")
|
64
|
-
|
63
|
+
stub_api_request(:get, "/v3/table/list/#{e db_name}").
|
64
|
+
to_return(:body => {'tables' => [
|
65
65
|
{'name' => tables[0][0], 'type' => tables[0][1], 'schema' => tables[0][2], 'count' => tables[0][3], 'created_at' => tables[0][4], 'updated_at' => tables[0][5]},
|
66
66
|
{'name' => tables[1][0], 'type' => tables[1][1], 'schema' => tables[1][2], 'count' => tables[1][3], 'created_at' => tables[1][4], 'updated_at' => tables[1][5]},
|
67
67
|
{'name' => tables[2][0], 'type' => tables[2][1], 'schema' => tables[2][2], 'count' => tables[2][3], 'created_at' => tables[2][4], 'updated_at' => tables[2][5]},
|
@@ -87,15 +87,15 @@ describe 'Table API' do
|
|
87
87
|
["table_3", "item", "[[\"time\",\"long\"],[\"value\",\"string\"]]", 333, "2013-03-23 03:53:43 UTC", "2014-03-23 03:53:43 UTC"],
|
88
88
|
["table_4", "log", "[[\"time\",\"long\"],[\"value\",\"long\"]]", 444, "2013-04-24 04:54:44 UTC", "2014-04-24 04:54:44 UTC"]
|
89
89
|
]
|
90
|
-
stub_api_request(:get, "/v3/table/list/#{e db_name}")
|
91
|
-
|
90
|
+
stub_api_request(:get, "/v3/table/list/#{e db_name}").
|
91
|
+
to_return(:body => {'tables' => [
|
92
92
|
{'name' => tables[0][0], 'type' => tables[0][1], 'schema' => tables[0][2], 'count' => tables[0][3], 'created_at' => tables[0][4], 'updated_at' => tables[0][5]},
|
93
93
|
{'name' => tables[1][0], 'type' => tables[1][1], 'schema' => tables[1][2], 'count' => tables[1][3], 'created_at' => tables[1][4], 'updated_at' => tables[1][5]},
|
94
94
|
{'name' => tables[2][0], 'type' => tables[2][1], 'schema' => tables[2][2], 'count' => tables[2][3], 'created_at' => tables[2][4], 'updated_at' => tables[2][5]},
|
95
95
|
{'name' => tables[3][0], 'type' => tables[3][1], 'schema' => tables[3][2], 'count' => tables[3][3], 'created_at' => tables[3][4], 'updated_at' => tables[3][5]}
|
96
96
|
]}.to_json)
|
97
97
|
|
98
|
-
table_list = client.tables(db_name)
|
98
|
+
table_list = client.tables(db_name).sort_by { |e| e.name }
|
99
99
|
|
100
100
|
db_count = 0
|
101
101
|
tables.each {|table|
|
@@ -103,8 +103,8 @@ describe 'Table API' do
|
|
103
103
|
}
|
104
104
|
|
105
105
|
# REST API call to fetch the database permission
|
106
|
-
stub_api_request(:get, "/v3/database/list")
|
107
|
-
|
106
|
+
stub_api_request(:get, "/v3/database/list").
|
107
|
+
to_return(:body => {'databases' => [
|
108
108
|
{'name' => db_name, 'count' => db_count, 'created_at' => tables[0][4], 'updated_at' => tables[0][5], 'permission' => 'full_access'}
|
109
109
|
]}.to_json)
|
110
110
|
|
@@ -118,16 +118,16 @@ describe 'Table API' do
|
|
118
118
|
expect(table_list[i].updated_at).to eq(Time.parse(tables[i][5]))
|
119
119
|
|
120
120
|
# REST API call to fetch the database permission
|
121
|
-
stub_api_request(:get, "/v3/database/list")
|
122
|
-
|
121
|
+
stub_api_request(:get, "/v3/database/list").
|
122
|
+
to_return(:body => {'databases' => [
|
123
123
|
{'name' => db_name, 'count' => db_count, 'created_at' => tables[0][4], 'updated_at' => tables[0][5], 'permission' => 'full_access'}
|
124
124
|
]}.to_json)
|
125
125
|
expect(table_list[i].permission).to eq(:full_access)
|
126
126
|
|
127
127
|
# set up a trap to check this call never happens
|
128
128
|
# - if it did, the next assertion on the count would fail
|
129
|
-
stub_api_request(:get, "/v3/database/list")
|
130
|
-
|
129
|
+
stub_api_request(:get, "/v3/database/list").
|
130
|
+
to_return(:body => {'databases' => [
|
131
131
|
{'name' => db_name, 'count' => db_count + 100, 'created_at' => tables[0][4], 'updated_at' => tables[0][5], 'permission' => 'full_access'}
|
132
132
|
]}.to_json)
|
133
133
|
expect(table_list[i].database.count).to eq(db_count)
|
@@ -143,8 +143,8 @@ describe 'Table API' do
|
|
143
143
|
["table_3", "item", "[[\"time\",\"long\"],[\"value\",\"string\"]]", 333, "2013-03-23 03:53:43 UTC", "2014-03-23 03:53:43 UTC"],
|
144
144
|
["table_4", "log", "[[\"time\",\"long\"],[\"value\",\"long\"]]", 444, "2013-04-24 04:54:44 UTC", "2014-04-24 04:54:44 UTC"]
|
145
145
|
]
|
146
|
-
stub_api_request(:get, "/v3/table/list/#{e db_name}")
|
147
|
-
|
146
|
+
stub_api_request(:get, "/v3/table/list/#{e db_name}").
|
147
|
+
to_return(:body => {'tables' => [
|
148
148
|
{'name' => tables[0][0], 'type' => tables[0][1], 'schema' => tables[0][2], 'count' => tables[0][3], 'created_at' => tables[0][4], 'updated_at' => tables[0][5]},
|
149
149
|
{'name' => tables[1][0], 'type' => tables[1][1], 'schema' => tables[1][2], 'count' => tables[1][3], 'created_at' => tables[1][4], 'updated_at' => tables[1][5]},
|
150
150
|
{'name' => tables[2][0], 'type' => tables[2][1], 'schema' => tables[2][2], 'count' => tables[2][3], 'created_at' => tables[2][4], 'updated_at' => tables[2][5]},
|
metadata
CHANGED
@@ -1,141 +1,141 @@
|
|
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.67
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Treasure Data, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 0.4.4
|
20
|
-
- -
|
20
|
+
- - '!='
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: 0.5.0
|
23
|
-
- -
|
23
|
+
- - '!='
|
24
24
|
- !ruby/object:Gem::Version
|
25
25
|
version: 0.5.1
|
26
|
-
- -
|
26
|
+
- - '!='
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
version: 0.5.2
|
29
|
-
- -
|
29
|
+
- - '!='
|
30
30
|
- !ruby/object:Gem::Version
|
31
31
|
version: 0.5.3
|
32
|
-
- -
|
32
|
+
- - <
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 0.6.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 0.4.4
|
42
|
-
- -
|
42
|
+
- - '!='
|
43
43
|
- !ruby/object:Gem::Version
|
44
44
|
version: 0.5.0
|
45
|
-
- -
|
45
|
+
- - '!='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 0.5.1
|
48
|
-
- -
|
48
|
+
- - '!='
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: 0.5.2
|
51
|
-
- -
|
51
|
+
- - '!='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: 0.5.3
|
54
|
-
- -
|
54
|
+
- - <
|
55
55
|
- !ruby/object:Gem::Version
|
56
56
|
version: 0.6.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: json
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
|
-
- -
|
61
|
+
- - '>='
|
62
62
|
- !ruby/object:Gem::Version
|
63
63
|
version: 1.7.6
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
|
-
- -
|
68
|
+
- - '>='
|
69
69
|
- !ruby/object:Gem::Version
|
70
70
|
version: 1.7.6
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: httpclient
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
|
-
- -
|
75
|
+
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: 2.4.0
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
|
-
- -
|
82
|
+
- - ~>
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: 2.4.0
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: rspec
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - ~>
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '2.8'
|
92
92
|
type: :development
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
|
-
- -
|
96
|
+
- - ~>
|
97
97
|
- !ruby/object:Gem::Version
|
98
98
|
version: '2.8'
|
99
99
|
- !ruby/object:Gem::Dependency
|
100
100
|
name: webmock
|
101
101
|
requirement: !ruby/object:Gem::Requirement
|
102
102
|
requirements:
|
103
|
-
- -
|
103
|
+
- - ~>
|
104
104
|
- !ruby/object:Gem::Version
|
105
105
|
version: '1.16'
|
106
106
|
type: :development
|
107
107
|
prerelease: false
|
108
108
|
version_requirements: !ruby/object:Gem::Requirement
|
109
109
|
requirements:
|
110
|
-
- -
|
110
|
+
- - ~>
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '1.16'
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: simplecov
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - '>='
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: 0.5.4
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
123
|
requirements:
|
124
|
-
- -
|
124
|
+
- - '>='
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: 0.5.4
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: rake
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
|
-
- -
|
131
|
+
- - '>='
|
132
132
|
- !ruby/object:Gem::Version
|
133
133
|
version: '0'
|
134
134
|
type: :development
|
135
135
|
prerelease: false
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
137
137
|
requirements:
|
138
|
-
- -
|
138
|
+
- - '>='
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: '0'
|
141
141
|
description: Treasure Data API library for Ruby
|
@@ -144,13 +144,13 @@ executables: []
|
|
144
144
|
extensions: []
|
145
145
|
extra_rdoc_files: []
|
146
146
|
files:
|
147
|
-
- data/ca-bundle.crt
|
148
|
-
- lib/td-client.rb
|
149
|
-
- lib/td/client.rb
|
150
147
|
- lib/td/client/api.rb
|
151
148
|
- lib/td/client/compat_gzip_reader.rb
|
152
149
|
- lib/td/client/model.rb
|
153
150
|
- lib/td/client/version.rb
|
151
|
+
- lib/td/client.rb
|
152
|
+
- lib/td-client.rb
|
153
|
+
- data/ca-bundle.crt
|
154
154
|
- spec/spec_helper.rb
|
155
155
|
- spec/td/client/api_spec.rb
|
156
156
|
- spec/td/client/api_ssl_connection_spec.rb
|
@@ -172,17 +172,17 @@ require_paths:
|
|
172
172
|
- lib
|
173
173
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
174
|
requirements:
|
175
|
-
- -
|
175
|
+
- - '>='
|
176
176
|
- !ruby/object:Gem::Version
|
177
177
|
version: '0'
|
178
178
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
179
|
requirements:
|
180
|
-
- -
|
180
|
+
- - '>='
|
181
181
|
- !ruby/object:Gem::Version
|
182
182
|
version: '0'
|
183
183
|
requirements: []
|
184
184
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.
|
185
|
+
rubygems_version: 2.0.14
|
186
186
|
signing_key:
|
187
187
|
specification_version: 4
|
188
188
|
summary: Treasure Data API library for Ruby
|