td-client 1.0.0-java

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.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/data/ca-bundle.crt +3448 -0
  3. data/lib/td-client.rb +1 -0
  4. data/lib/td/client.rb +606 -0
  5. data/lib/td/client/api.rb +707 -0
  6. data/lib/td/client/api/access_control.rb +74 -0
  7. data/lib/td/client/api/account.rb +45 -0
  8. data/lib/td/client/api/bulk_import.rb +184 -0
  9. data/lib/td/client/api/bulk_load.rb +172 -0
  10. data/lib/td/client/api/database.rb +50 -0
  11. data/lib/td/client/api/export.rb +38 -0
  12. data/lib/td/client/api/import.rb +38 -0
  13. data/lib/td/client/api/job.rb +390 -0
  14. data/lib/td/client/api/partial_delete.rb +27 -0
  15. data/lib/td/client/api/result.rb +46 -0
  16. data/lib/td/client/api/schedule.rb +120 -0
  17. data/lib/td/client/api/server_status.rb +21 -0
  18. data/lib/td/client/api/table.rb +132 -0
  19. data/lib/td/client/api/user.rb +134 -0
  20. data/lib/td/client/api_error.rb +37 -0
  21. data/lib/td/client/compat_gzip_reader.rb +22 -0
  22. data/lib/td/client/model.rb +816 -0
  23. data/lib/td/client/version.rb +5 -0
  24. data/lib/td/core_ext/openssl/ssl/sslcontext/set_params.rb +18 -0
  25. data/spec/spec_helper.rb +63 -0
  26. data/spec/td/client/access_control_api_spec.rb +37 -0
  27. data/spec/td/client/account_api_spec.rb +34 -0
  28. data/spec/td/client/api_error_spec.rb +77 -0
  29. data/spec/td/client/api_spec.rb +269 -0
  30. data/spec/td/client/api_ssl_connection_spec.rb +109 -0
  31. data/spec/td/client/bulk_import_spec.rb +199 -0
  32. data/spec/td/client/bulk_load_spec.rb +401 -0
  33. data/spec/td/client/db_api_spec.rb +123 -0
  34. data/spec/td/client/export_api_spec.rb +51 -0
  35. data/spec/td/client/import_api_spec.rb +148 -0
  36. data/spec/td/client/job_api_spec.rb +833 -0
  37. data/spec/td/client/model_job_spec.rb +136 -0
  38. data/spec/td/client/model_schedule_spec.rb +26 -0
  39. data/spec/td/client/model_schema_spec.rb +134 -0
  40. data/spec/td/client/partial_delete_api_spec.rb +58 -0
  41. data/spec/td/client/result_api_spec.rb +77 -0
  42. data/spec/td/client/sched_api_spec.rb +109 -0
  43. data/spec/td/client/server_status_api_spec.rb +25 -0
  44. data/spec/td/client/spec_resources.rb +99 -0
  45. data/spec/td/client/table_api_spec.rb +226 -0
  46. data/spec/td/client/user_api_spec.rb +118 -0
  47. data/spec/td/client_sched_spec.rb +79 -0
  48. data/spec/td/client_spec.rb +46 -0
  49. metadata +271 -0
@@ -0,0 +1,79 @@
1
+ require 'spec_helper'
2
+ require 'td/client/spec_resources'
3
+
4
+ describe 'Schedule Command' do
5
+ include_context 'spec symbols'
6
+ include_context 'common helper'
7
+
8
+ let :api do
9
+ API.new(nil)
10
+ end
11
+
12
+ let :client do
13
+ client = TreasureData::Client.new('dummy')
14
+ client.instance_variable_set('@api', api)
15
+ client
16
+ end
17
+
18
+ describe 'create' do
19
+ let :opts do
20
+ {:database => db_name, :cron => '', :type => 'hive', :query => 'select 1;'}
21
+ end
22
+
23
+ before do
24
+ stub_api_request(:post, "/v3/schedule/create/#{e(sched_name)}").
25
+ with(:body => opts).
26
+ to_return(:body => {'name' => sched_name, 'start' => start}.to_json)
27
+ end
28
+ context 'start is now' do
29
+ let (:start){ Time.now.round }
30
+ it 'returns Time object' do
31
+ expect(client.create_schedule(sched_name, opts)).to eq(start)
32
+ end
33
+ end
34
+
35
+ context 'start is nil' do
36
+ let (:start){ nil }
37
+ it do
38
+ expect(client.create_schedule(sched_name, opts)).to eq(start)
39
+ end
40
+ end
41
+ end
42
+
43
+ describe 'history' do
44
+ let :opts do
45
+ {'database' => db_name}
46
+ end
47
+
48
+ let :history do
49
+ ['history', 'scheduled_at', 'job_id', 'type', 'database', 'status', 'query', 'start_at', 'end_at', 'result', 'priority'].inject({}) { |r, e|
50
+ r[e] = e
51
+ r
52
+ }
53
+ end
54
+
55
+ it 'returns scheduled_job' do
56
+ h = history; h['scheduled_at'] = '2015-02-17 14:16:00 +0900'
57
+ stub_api_request(:get, "/v3/schedule/history/#{e(sched_name)}?from=0&to=19").
58
+ to_return(:body => {'count' => 1, 'history' => [h]}.to_json)
59
+
60
+ client.history(sched_name, 0, 19).each do |scheduled_job|
61
+ expect(scheduled_job.scheduled_at.xmlschema).to eq(Time.parse('2015-02-17T14:16:00+09:00').xmlschema) #avoid depending on CI's Locale
62
+ expect(scheduled_job.job_id).to eq('job_id')
63
+ expect(scheduled_job.status).to eq('status')
64
+ expect(scheduled_job.priority).to eq('priority')
65
+ expect(scheduled_job.result_url).to eq('result')
66
+ end
67
+ end
68
+
69
+ it 'works when scheduled_at == ""' do
70
+ h = history; h['scheduled_at'] = ''
71
+ stub_api_request(:get, "/v3/schedule/history/#{e(sched_name)}?from=0&to=19").
72
+ to_return(:body => {'count' => 1, 'history' => [h]}.to_json)
73
+
74
+ client.history(sched_name, 0, 19).each do |scheduled_job|
75
+ expect(scheduled_job.scheduled_at).to eq(nil)
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+ require 'td/client/spec_resources'
3
+
4
+ describe 'Command' do
5
+ include_context 'spec symbols'
6
+ include_context 'common helper'
7
+ include_context 'job resources'
8
+
9
+ before do
10
+ stub_api_request(:post, "/v3/user/authenticate").
11
+ to_return(:body => {'apikey' => 'apikey'}.to_json)
12
+ end
13
+
14
+ let :client do
15
+ Client.authenticate('user', 'password')
16
+ end
17
+
18
+ describe '#job' do
19
+ before do
20
+ stub_api_request(:get, "/v3/job/list").to_return(:body => {'jobs' => raw_jobs}.to_json)
21
+ end
22
+
23
+ it 'return jobs created with API result' do
24
+ jobs = client.jobs
25
+
26
+ expect(jobs).to be_kind_of Array
27
+ jobs.each.with_index do |job, i|
28
+ expect(job.job_id).to eq raw_jobs[i]['job_id']
29
+ expect(job.type).to eq raw_jobs[i]['type']
30
+ expect(job.status).to eq raw_jobs[i]['status']
31
+ expect(job.query).to eq raw_jobs[i]['query']
32
+ expect(job.start_at).to eq Time.parse(raw_jobs[i]['start_at'])
33
+ expect(job.end_at).to eq Time.parse(raw_jobs[i]['end_at'])
34
+ expect(job.cpu_time).to eq raw_jobs[i]['cpu_time']
35
+ expect(job.result_size).to eq raw_jobs[i]['result_size']
36
+ expect(job.result_url).to eq raw_jobs[i]['result_url']
37
+ expect(job.priority).to eq raw_jobs[i]['priority']
38
+ expect(job.retry_limit).to eq raw_jobs[i]['retry_limit']
39
+ expect(job.org_name).to eq raw_jobs[i]['organization']
40
+ expect(job.db_name).to eq raw_jobs[i]['database']
41
+ expect(job.duration).to eq raw_jobs[i]['duration']
42
+ expect(job.num_records).to eq raw_jobs[i]['num_records']
43
+ end
44
+ end
45
+ end
46
+ end
metadata ADDED
@@ -0,0 +1,271 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: td-client
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: java
6
+ authors:
7
+ - Treasure Data, Inc.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 0.5.6
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '2'
22
+ name: msgpack
23
+ prerelease: false
24
+ type: :runtime
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.5.6
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2'
33
+ - !ruby/object:Gem::Dependency
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '2.7'
39
+ name: httpclient
40
+ prerelease: false
41
+ type: :runtime
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '2.7'
47
+ - !ruby/object:Gem::Dependency
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '3.0'
53
+ name: rspec
54
+ prerelease: false
55
+ type: :development
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.0'
61
+ - !ruby/object:Gem::Dependency
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ name: coveralls
68
+ prerelease: false
69
+ type: :development
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ - !ruby/object:Gem::Dependency
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.16'
81
+ name: webmock
82
+ prerelease: false
83
+ type: :development
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '1.16'
89
+ - !ruby/object:Gem::Dependency
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 0.5.4
95
+ name: simplecov
96
+ prerelease: false
97
+ type: :development
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 0.5.4
103
+ - !ruby/object:Gem::Dependency
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ name: rake
110
+ prerelease: false
111
+ type: :development
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: '0'
123
+ name: yard
124
+ prerelease: false
125
+ type: :development
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ requirement: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '1.7'
137
+ name: tins
138
+ prerelease: false
139
+ type: :development
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: '1.7'
145
+ - !ruby/object:Gem::Dependency
146
+ requirement: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - "<"
149
+ - !ruby/object:Gem::Version
150
+ version: '1.5'
151
+ name: public_suffix
152
+ prerelease: false
153
+ type: :development
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "<"
157
+ - !ruby/object:Gem::Version
158
+ version: '1.5'
159
+ - !ruby/object:Gem::Dependency
160
+ requirement: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "<"
163
+ - !ruby/object:Gem::Version
164
+ version: '1.4'
165
+ name: term-ansicolor
166
+ prerelease: false
167
+ type: :development
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "<"
171
+ - !ruby/object:Gem::Version
172
+ version: '1.4'
173
+ description: Treasure Data API library for Ruby
174
+ email: support@treasure-data.com
175
+ executables: []
176
+ extensions: []
177
+ extra_rdoc_files: []
178
+ files:
179
+ - data/ca-bundle.crt
180
+ - lib/td-client.rb
181
+ - lib/td/client.rb
182
+ - lib/td/client/api.rb
183
+ - lib/td/client/api/access_control.rb
184
+ - lib/td/client/api/account.rb
185
+ - lib/td/client/api/bulk_import.rb
186
+ - lib/td/client/api/bulk_load.rb
187
+ - lib/td/client/api/database.rb
188
+ - lib/td/client/api/export.rb
189
+ - lib/td/client/api/import.rb
190
+ - lib/td/client/api/job.rb
191
+ - lib/td/client/api/partial_delete.rb
192
+ - lib/td/client/api/result.rb
193
+ - lib/td/client/api/schedule.rb
194
+ - lib/td/client/api/server_status.rb
195
+ - lib/td/client/api/table.rb
196
+ - lib/td/client/api/user.rb
197
+ - lib/td/client/api_error.rb
198
+ - lib/td/client/compat_gzip_reader.rb
199
+ - lib/td/client/model.rb
200
+ - lib/td/client/version.rb
201
+ - lib/td/core_ext/openssl/ssl/sslcontext/set_params.rb
202
+ - spec/spec_helper.rb
203
+ - spec/td/client/access_control_api_spec.rb
204
+ - spec/td/client/account_api_spec.rb
205
+ - spec/td/client/api_error_spec.rb
206
+ - spec/td/client/api_spec.rb
207
+ - spec/td/client/api_ssl_connection_spec.rb
208
+ - spec/td/client/bulk_import_spec.rb
209
+ - spec/td/client/bulk_load_spec.rb
210
+ - spec/td/client/db_api_spec.rb
211
+ - spec/td/client/export_api_spec.rb
212
+ - spec/td/client/import_api_spec.rb
213
+ - spec/td/client/job_api_spec.rb
214
+ - spec/td/client/model_job_spec.rb
215
+ - spec/td/client/model_schedule_spec.rb
216
+ - spec/td/client/model_schema_spec.rb
217
+ - spec/td/client/partial_delete_api_spec.rb
218
+ - spec/td/client/result_api_spec.rb
219
+ - spec/td/client/sched_api_spec.rb
220
+ - spec/td/client/server_status_api_spec.rb
221
+ - spec/td/client/spec_resources.rb
222
+ - spec/td/client/table_api_spec.rb
223
+ - spec/td/client/user_api_spec.rb
224
+ - spec/td/client_sched_spec.rb
225
+ - spec/td/client_spec.rb
226
+ homepage: http://treasuredata.com/
227
+ licenses: []
228
+ metadata: {}
229
+ post_install_message:
230
+ rdoc_options: []
231
+ require_paths:
232
+ - lib
233
+ required_ruby_version: !ruby/object:Gem::Requirement
234
+ requirements:
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: '0'
238
+ required_rubygems_version: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: '0'
243
+ requirements: []
244
+ rubyforge_project:
245
+ rubygems_version: 2.4.8
246
+ signing_key:
247
+ specification_version: 4
248
+ summary: Treasure Data API library for Ruby
249
+ test_files:
250
+ - spec/td/client_sched_spec.rb
251
+ - spec/td/client_spec.rb
252
+ - spec/td/client/access_control_api_spec.rb
253
+ - spec/td/client/account_api_spec.rb
254
+ - spec/td/client/api_error_spec.rb
255
+ - spec/td/client/api_spec.rb
256
+ - spec/td/client/api_ssl_connection_spec.rb
257
+ - spec/td/client/bulk_import_spec.rb
258
+ - spec/td/client/bulk_load_spec.rb
259
+ - spec/td/client/db_api_spec.rb
260
+ - spec/td/client/export_api_spec.rb
261
+ - spec/td/client/import_api_spec.rb
262
+ - spec/td/client/job_api_spec.rb
263
+ - spec/td/client/model_job_spec.rb
264
+ - spec/td/client/model_schedule_spec.rb
265
+ - spec/td/client/model_schema_spec.rb
266
+ - spec/td/client/partial_delete_api_spec.rb
267
+ - spec/td/client/result_api_spec.rb
268
+ - spec/td/client/sched_api_spec.rb
269
+ - spec/td/client/server_status_api_spec.rb
270
+ - spec/td/client/table_api_spec.rb
271
+ - spec/td/client/user_api_spec.rb