td 0.16.7 → 0.16.8
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/.travis.yml +0 -3
- data/ChangeLog +4 -0
- data/README.rdoc +3 -3
- data/lib/td/command/common.rb +12 -1
- data/lib/td/command/runner.rb +13 -1
- data/lib/td/command/table.rb +8 -6
- data/lib/td/command/workflow.rb +9 -3
- data/lib/td/config.rb +22 -4
- data/lib/td/updater.rb +1 -1
- data/lib/td/version.rb +1 -1
- data/spec/td/command/table_spec.rb +4 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc8c50e05e0ed05da8a93a7b7e39f5c7577e2115
|
4
|
+
data.tar.gz: a5d08d636a3d28cf2c2a35047e3e7fe415e268d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7536bf0689d4f7fd05bbb1d3c7a42d8e712cfeed53dda3d3f896f3803f2aff7cc036f41c7c6cf20e9f1203e538dbad0b81791d12f346f9f0b5c7ce478066131f
|
7
|
+
data.tar.gz: 2b5872b1402f8f5302f8814e9100e8e129b65637fc66d330fc439071cc458a5e956d065307107deafe55cd168e921a663d2824789bf708f46daa43b2abe70c47
|
data/.travis.yml
CHANGED
data/ChangeLog
CHANGED
data/README.rdoc
CHANGED
@@ -69,7 +69,7 @@ to process and Bulk load data in the Treasure Data Cloud.
|
|
69
69
|
|
70
70
|
The Bulk Import CLI is downloaded automatically at the first call to any of the command that require it; the use will
|
71
71
|
need internet connectivity in order to fetch the Bulk Import CLI JAR file from the
|
72
|
-
{Central Maven repository}[
|
72
|
+
{Central Maven repository}[https://repo1.maven.org/maven2/com/treasuredata/td-import/]
|
73
73
|
and take advantage of these advanced features. If you need to setup a proxy, please consult this
|
74
74
|
{documentation}[https://support.treasuredata.com/hc/en-us/articles/360001502527-Legacy-Bulk-Import-Tips-and-Tricks#How%20to%20use%20a%20proxy%20server] page.
|
75
75
|
|
@@ -144,9 +144,9 @@ These are the available hooks:
|
|
144
144
|
|
145
145
|
$ TD_TOOLBELT_UPDATE_ROOT="http://toolbelt.treasuredata.com"
|
146
146
|
|
147
|
-
* Specify an alternative endpoint to use updating the JAR file (default:
|
147
|
+
* Specify an alternative endpoint to use updating the JAR file (default: https://repo1.maven.org):
|
148
148
|
|
149
|
-
$ TD_TOOLBELT_JARUPDATE_ROOT="
|
149
|
+
$ TD_TOOLBELT_JARUPDATE_ROOT="https://repo1.maven.org"
|
150
150
|
|
151
151
|
|
152
152
|
= Copyright
|
data/lib/td/command/common.rb
CHANGED
@@ -47,7 +47,7 @@ module Command
|
|
47
47
|
|
48
48
|
# optional, if not provided a default is used from the ruby client library
|
49
49
|
begin
|
50
|
-
if Config.endpoint
|
50
|
+
if !opts[:endpoint] && Config.endpoint
|
51
51
|
opts[:endpoint] = Config.endpoint
|
52
52
|
end
|
53
53
|
rescue ConfigNotFoundError => e
|
@@ -67,6 +67,17 @@ module Command
|
|
67
67
|
Client.new(apikey, opts)
|
68
68
|
end
|
69
69
|
|
70
|
+
DEFAULT_IMPORT_ENDPOINT = "https://" + TreasureData::API::DEFAULT_IMPORT_ENDPOINT
|
71
|
+
|
72
|
+
def get_import_client
|
73
|
+
import_endpoint = begin
|
74
|
+
Config.import_endpoint || DEFAULT_IMPORT_ENDPOINT
|
75
|
+
rescue TreasureData::ConfigNotFoundError
|
76
|
+
DEFAULT_IMPORT_ENDPOINT
|
77
|
+
end
|
78
|
+
get_client(endpoint: import_endpoint)
|
79
|
+
end
|
80
|
+
|
70
81
|
def get_ssl_client(opts={})
|
71
82
|
opts[:ssl] = true
|
72
83
|
get_client(opts)
|
data/lib/td/command/runner.rb
CHANGED
@@ -6,11 +6,12 @@ class Runner
|
|
6
6
|
@config_path = nil
|
7
7
|
@apikey = nil
|
8
8
|
@endpoint = nil
|
9
|
+
@import_endpoint = nil
|
9
10
|
@prog_name = nil
|
10
11
|
@insecure = false
|
11
12
|
end
|
12
13
|
|
13
|
-
attr_accessor :apikey, :endpoint, :config_path, :prog_name, :insecure
|
14
|
+
attr_accessor :apikey, :endpoint, :import_endpoint, :config_path, :prog_name, :insecure
|
14
15
|
|
15
16
|
def run(argv=ARGV)
|
16
17
|
require 'td/version'
|
@@ -73,6 +74,7 @@ EOF
|
|
73
74
|
config_path = @config_path
|
74
75
|
apikey = @apikey
|
75
76
|
endpoint = @endpoint
|
77
|
+
import_endpoint = @import_endpoint || @endpoint
|
76
78
|
insecure = nil
|
77
79
|
$verbose = false
|
78
80
|
#$debug = false
|
@@ -94,6 +96,12 @@ EOF
|
|
94
96
|
endpoint = e
|
95
97
|
}
|
96
98
|
|
99
|
+
op.on('--import-endpoint API_IMPORT_SERVER', "specify the URL for API Import server to use (default: https://api-import.treasuredata.com).") { |e|
|
100
|
+
require 'td/command/common'
|
101
|
+
Command.validate_api_endpoint(e)
|
102
|
+
import_endpoint = e
|
103
|
+
}
|
104
|
+
|
97
105
|
op.on('--insecure', "Insecure access: disable SSL (enabled by default)") {|b|
|
98
106
|
insecure = true
|
99
107
|
}
|
@@ -140,6 +148,10 @@ EOF
|
|
140
148
|
Config.endpoint = endpoint
|
141
149
|
Config.cl_endpoint = true
|
142
150
|
end
|
151
|
+
if import_endpoint
|
152
|
+
Config.import_endpoint = import_endpoint
|
153
|
+
Config.cl_import_endpoint = true
|
154
|
+
end
|
143
155
|
if insecure
|
144
156
|
Config.secure = false
|
145
157
|
end
|
data/lib/td/command/table.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'td/helpers'
|
2
2
|
require 'td/command/job'
|
3
|
+
require 'td/client/api'
|
3
4
|
|
4
5
|
module TreasureData
|
5
6
|
module Command
|
@@ -453,17 +454,18 @@ module Command
|
|
453
454
|
import_params[:table_name] = table_name
|
454
455
|
import_params[:paths] = paths
|
455
456
|
|
456
|
-
|
457
|
+
api_client = get_client
|
458
|
+
import_client = get_import_client
|
457
459
|
|
458
460
|
if auto_create
|
459
|
-
create_database_and_table_if_not_exist(
|
461
|
+
create_database_and_table_if_not_exist(api_client, db_name, table_name)
|
460
462
|
end
|
461
463
|
|
462
|
-
do_table_import(
|
464
|
+
do_table_import(api_client, import_client, import_params)
|
463
465
|
end
|
464
466
|
|
465
467
|
private
|
466
|
-
def do_table_import(
|
468
|
+
def do_table_import(api_client, import_client, import_params)
|
467
469
|
case import_params[:format]
|
468
470
|
when 'json', 'msgpack'
|
469
471
|
#unless time_key
|
@@ -488,7 +490,7 @@ module Command
|
|
488
490
|
end
|
489
491
|
|
490
492
|
begin
|
491
|
-
db =
|
493
|
+
db = api_client.database(import_params[:db_name])
|
492
494
|
rescue ForbiddenError => e
|
493
495
|
$stdout.puts "Warning: database and table validation skipped - #{e.message}"
|
494
496
|
else
|
@@ -521,7 +523,7 @@ module Command
|
|
521
523
|
#require 'thread'
|
522
524
|
|
523
525
|
files.zip(import_params[:paths]).each {|file, path|
|
524
|
-
import_log_file(file, path,
|
526
|
+
import_log_file(file, path, import_client, import_params[:db_name], import_params[:table_name], parser)
|
525
527
|
}
|
526
528
|
|
527
529
|
$stdout.puts "done."
|
data/lib/td/command/workflow.rb
CHANGED
@@ -246,14 +246,20 @@ EOF
|
|
246
246
|
return false
|
247
247
|
end
|
248
248
|
if output =~ /openjdk version/ or output =~ /java version/
|
249
|
-
m = output.match(/version "(\d+)\.(\d+)\.(\d+)(?:_(\d+))"/)
|
249
|
+
m = output.match(/version "(\d+)\.(\d+)\.(\d+)(?:_(\d+))?"/)
|
250
250
|
if not m or m.size < 4
|
251
251
|
return false
|
252
252
|
end
|
253
|
-
# Check for at least Java 8. Let digdag itself verify revision.
|
254
253
|
major = m[1].to_i
|
255
254
|
minor = m[2].to_i
|
256
|
-
|
255
|
+
# Check for at least Java 8. Let digdag itself verify revision.
|
256
|
+
if major < 1
|
257
|
+
return false
|
258
|
+
elsif major == 1 # suppose the version style: 1.8.10_52 (JDK8 and before)
|
259
|
+
if minor < 8
|
260
|
+
return false
|
261
|
+
end
|
262
|
+
elsif major < 9 # suppose the version style: 11.0.2
|
257
263
|
return false
|
258
264
|
end
|
259
265
|
end
|
data/lib/td/config.rb
CHANGED
@@ -21,6 +21,9 @@ class Config
|
|
21
21
|
@@endpoint = ENV['TREASURE_DATA_API_SERVER'] || ENV['TD_API_SERVER']
|
22
22
|
@@endpoint = nil if @@endpoint == ""
|
23
23
|
@@cl_endpoint = false # flag to indicate whether an endpoint has been provided through the command-line
|
24
|
+
@@import_endpoint = ENV['TREASURE_DATA_API_IMPORT_SERVER'] || ENV['TD_API_IMPORT_SERVER']
|
25
|
+
@@import_endpoint = nil if @@endpoint == ""
|
26
|
+
@@cl_import_endpoint = false # flag to indicate whether an endpoint has been provided through the command-line option
|
24
27
|
@@secure = true
|
25
28
|
@@retry_post_requests = false
|
26
29
|
|
@@ -164,6 +167,22 @@ class Config
|
|
164
167
|
@@cl_endpoint = flag
|
165
168
|
end
|
166
169
|
|
170
|
+
def self.import_endpoint
|
171
|
+
@@import_endpoint || Config.read['account.import_endpoint']
|
172
|
+
end
|
173
|
+
|
174
|
+
def self.import_endpoint=(endpoint)
|
175
|
+
@@import_endpoint = endpoint
|
176
|
+
end
|
177
|
+
|
178
|
+
def self.cl_import_endpoint
|
179
|
+
@@cl_import_endpoint
|
180
|
+
end
|
181
|
+
|
182
|
+
def self.cl_import_endpoint=(flag)
|
183
|
+
@@cl_import_endpoint = flag
|
184
|
+
end
|
185
|
+
|
167
186
|
def self.workflow_endpoint
|
168
187
|
case self.endpoint_domain
|
169
188
|
when /\Aapi(-(?:staging|development))?(-[a-z0-9]+)?\.(connect\.)?(eu01\.)?treasuredata\.(com|co\.jp)\z/i
|
@@ -176,10 +195,9 @@ class Config
|
|
176
195
|
# renders the apikey and endpoint options as a string for the helper commands
|
177
196
|
def self.cl_options_string
|
178
197
|
string = ""
|
179
|
-
string += "-k #{@@apikey}" if @@cl_apikey
|
180
|
-
string += " "
|
181
|
-
string += "-
|
182
|
-
string += " " unless string.empty?
|
198
|
+
string += "-k #{@@apikey} " if @@cl_apikey
|
199
|
+
string += "-e #{@@endpoint} " if @@cl_endpoint
|
200
|
+
string += "--import-endpoint #{@@import_endpoint} " if @@cl_import_endpoint
|
183
201
|
string
|
184
202
|
end
|
185
203
|
|
data/lib/td/updater.rb
CHANGED
data/lib/td/version.rb
CHANGED
@@ -302,6 +302,7 @@ module TreasureData::Command
|
|
302
302
|
let(:db_name) { 'database' }
|
303
303
|
let(:table_name) { 'table' }
|
304
304
|
let(:client) { double('client') }
|
305
|
+
let(:import_client) { double('import-client') }
|
305
306
|
let(:command) { Class.new { include TreasureData::Command }.new }
|
306
307
|
|
307
308
|
describe 'auto create table' do
|
@@ -336,6 +337,7 @@ module TreasureData::Command
|
|
336
337
|
describe 'time key' do
|
337
338
|
before do
|
338
339
|
allow(command).to receive(:get_client) { client }
|
340
|
+
allow(command).to receive(:get_import_client) { import_client }
|
339
341
|
allow(command).to receive(:do_table_import)
|
340
342
|
end
|
341
343
|
let(:input_params) {{
|
@@ -355,7 +357,7 @@ module TreasureData::Command
|
|
355
357
|
end
|
356
358
|
|
357
359
|
it "with '#{tk_option}' option" do
|
358
|
-
expect(command).to receive(:do_table_import).with(client, input_params)
|
360
|
+
expect(command).to receive(:do_table_import).with(client, import_client, input_params)
|
359
361
|
command.table_import(option)
|
360
362
|
end
|
361
363
|
end
|
@@ -371,7 +373,7 @@ module TreasureData::Command
|
|
371
373
|
end
|
372
374
|
|
373
375
|
it 'without \'-t / --time-key\' option' do
|
374
|
-
expect(command).to receive(:do_table_import).with(client, input_params)
|
376
|
+
expect(command).to receive(:do_table_import).with(client, import_client, input_params)
|
375
377
|
command.table_import(option)
|
376
378
|
end
|
377
379
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: td
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.16.
|
4
|
+
version: 0.16.8
|
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:
|
11
|
+
date: 2020-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|