td 0.16.9 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6aea3ef4a96f7d2d1042cbf337e5f95288022f39
4
- data.tar.gz: 7ab665de173e7ce66dfa7b4622cb4513dcef6426
2
+ SHA256:
3
+ metadata.gz: 39aaf12ff04af9701e21625ab329b422a890edfe295f450ee3b36e7cdbc3e94b
4
+ data.tar.gz: c3d8a021e9b4c0b2c599882ee4ca109c691f81d2d2777e085ffcff1326628876
5
5
  SHA512:
6
- metadata.gz: 114f5e1e8763474cb53cdead4f511dd30a988457c8d72e0115fe20f4a013aae7fdbee3c13e8a627381145e05db4d5bf584690bdf863bc9d6fe35bbae66be9b35
7
- data.tar.gz: 61f72c29b14c70627680248852303d878a92ea571e140c4e5c60318944248367f6509df81b1c19553e4a271ee8ce4f9bc54747610f8263f7ef4cc3fa6d053581
6
+ metadata.gz: 55d1ffecf734507573af5d49c8e3f6a70bf9f4859465722ed9a05f07ab405660e6e4c6c395404699ea9b09a426cfe2fb15f2f59cbe0363349b293f29c70a6566
7
+ data.tar.gz: 36d7f0ddec937b81ed7a7f08e5f9e88638e96e1545af529b42eaae11152ce51459408363cbf96d6be7b53cf0ce9829d75a881b7d7e677a33a8fa18080200cf46
@@ -0,0 +1,88 @@
1
+ version: 2.1
2
+
3
+
4
+ orbs:
5
+ ruby: circleci/ruby@2.0.0
6
+ win: circleci/windows@5.0.0
7
+
8
+
9
+ commands:
10
+ install_windows_requirements:
11
+ description: "Install windows requirements"
12
+ steps:
13
+ - run:
14
+ name: "Install MSYS2"
15
+ command: choco install msys2 -y
16
+ - run:
17
+ name: "Install Ruby devkit"
18
+ command: ridk install 2 3
19
+ bundle-install:
20
+ description: "Install dependencies"
21
+ steps:
22
+ - run:
23
+ name: Which bundler?
24
+ command: ruby -v; bundle -v
25
+ - run:
26
+ name: Bundle install
27
+ command: bundle install
28
+ run-tests:
29
+ description: "Run tests"
30
+ steps:
31
+ - run:
32
+ name: Run tests
33
+ command: bundle exec rake spec SPEC_OPTS="-fd"
34
+ run-tests-flow:
35
+ description: "Single flow for running tests"
36
+ steps:
37
+ - checkout
38
+ - bundle-install
39
+ - run-tests
40
+
41
+
42
+ jobs:
43
+
44
+ ruby_27:
45
+ docker:
46
+ - image: cimg/ruby:2.7-browsers
47
+ steps:
48
+ - run-tests-flow
49
+
50
+ ruby_30:
51
+ docker:
52
+ - image: cimg/ruby:3.0-browsers
53
+ steps:
54
+ - run-tests-flow
55
+
56
+ ruby_31:
57
+ docker:
58
+ - image: cimg/ruby:3.1-browsers
59
+ steps:
60
+ - run-tests-flow
61
+
62
+ ruby_32:
63
+ docker:
64
+ - image: cimg/ruby:3.2-browsers
65
+ steps:
66
+ - run-tests-flow
67
+
68
+ win_ruby:
69
+ executor:
70
+ name: win/default
71
+ shell: powershell.exe
72
+ steps:
73
+ - install_windows_requirements
74
+ - run:
75
+ name: "Install bundler"
76
+ shell: powershell.exe
77
+ command: gem install bundler
78
+ - run-tests-flow
79
+
80
+
81
+ workflows:
82
+ tests:
83
+ jobs:
84
+ - ruby_27
85
+ - ruby_30
86
+ - ruby_31
87
+ - ruby_32
88
+ - win_ruby
@@ -0,0 +1 @@
1
+ * @treasure-data/integrations
@@ -0,0 +1,72 @@
1
+ # For most projects, this workflow file will not need changing; you simply need
2
+ # to commit it to your repository.
3
+ #
4
+ # You may wish to alter this file to override the set of languages analyzed,
5
+ # or to provide custom queries or build logic.
6
+ #
7
+ # ******** NOTE ********
8
+ # We have attempted to detect the languages in your repository. Please check
9
+ # the `language` matrix defined below to confirm you have the correct set of
10
+ # supported CodeQL languages.
11
+ #
12
+ name: "CodeQL"
13
+
14
+ on:
15
+ push:
16
+ branches: [ master ]
17
+ pull_request:
18
+ # The branches below must be a subset of the branches above
19
+ branches: [ master ]
20
+ schedule:
21
+ - cron: '29 4 * * 5'
22
+
23
+ jobs:
24
+ analyze:
25
+ name: Analyze
26
+ runs-on: ubuntu-latest
27
+ permissions:
28
+ actions: read
29
+ contents: read
30
+ security-events: write
31
+
32
+ strategy:
33
+ fail-fast: false
34
+ matrix:
35
+ language: [ 'ruby' ]
36
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
37
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
38
+
39
+ steps:
40
+ - name: Checkout repository
41
+ uses: actions/checkout@v3
42
+
43
+ # Initializes the CodeQL tools for scanning.
44
+ - name: Initialize CodeQL
45
+ uses: github/codeql-action/init@v2
46
+ with:
47
+ languages: ${{ matrix.language }}
48
+ # If you wish to specify custom queries, you can do so here or in a config file.
49
+ # By default, queries listed here will override any specified in a config file.
50
+ # Prefix the list here with "+" to use these queries and those in the config file.
51
+
52
+ # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
53
+ # queries: security-extended,security-and-quality
54
+
55
+
56
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
57
+ # If this step fails, then you should remove it and run the build manually (see below)
58
+ - name: Autobuild
59
+ uses: github/codeql-action/autobuild@v2
60
+
61
+ # ℹ️ Command-line programs to run using the OS shell.
62
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
63
+
64
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
65
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
66
+
67
+ # - run: |
68
+ # echo "Run, Build Application using script"
69
+ # ./location_of_script_within_repo/buildscript.sh
70
+
71
+ - name: Perform CodeQL Analysis
72
+ uses: github/codeql-action/analyze@v2
data/.gitignore CHANGED
@@ -1,9 +1,11 @@
1
1
  .bundle
2
2
  .DS_Store
3
+ bundler
3
4
  build/td-import-java
4
5
  Gemfile.lock
5
6
  vendor/*
6
7
  /pkg/
7
8
  build/*
8
9
  coverage/
10
+ dist/resources/pkg/ruby*.pkg
9
11
  *~
data/ChangeLog CHANGED
@@ -1,3 +1,18 @@
1
+ == 2023-03-28 version 0.17.0
2
+
3
+ * Show job's start & end time for td job:show [job_id] #253
4
+ * Support Ruby 3.2 by updating deprecated File.exists? to File.exist? #260
5
+
6
+ == 2020-09-16 version 0.16.10
7
+
8
+ * Support proxy with username and password
9
+ * Increase the summary_width value to fix the broken options help message format
10
+ * Support AP03 Region
11
+ * Change old document urls to new document urls
12
+ * Show message to ask -w option in td query
13
+ * Adding users commnad help
14
+ * Allow trailing slash for endpoints
15
+
1
16
  == 2020-04-10 version 0.16.9
2
17
 
3
18
  * Update new workflow pattern to support ap02 #232
data/README.rdoc CHANGED
@@ -1,14 +1,14 @@
1
1
  = Treasure Data command line tool
2
- {<img src="https://travis-ci.org/treasure-data/td.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/treasure-data/td]
2
+ {<img src="https://circleci.com/gh/treasure-data/td.svg?style=svg" alt="Build Status" />}[https://circleci.com/gh/treasure-data/td.svg?style=svg]
3
3
  {<img src="https://ci.appveyor.com/api/projects/status/github/treasure-data/td?branch=master&svg=true" alt="appveyor" />}[https://ci.appveyor.com/project/treasure-data/td/branch/master]
4
4
  {<img src="https://coveralls.io/repos/treasure-data/td/badge.svg?branch=master&service=github" alt="Coverage Status" />}[https://coveralls.io/github/treasure-data/td?branch=master]
5
5
 
6
6
  This CUI utility wraps the {Ruby Client Library td-client-ruby}[https://github.com/treasure-data/td-client-ruby]
7
7
  to interact with the REST API in managing databases and jobs on the Treasure Data Cloud.
8
8
 
9
- For more info about Treasure Data, see <http://treasure-data.com/>.
9
+ For more info about Treasure Data, see <https://www.treasuredata.com/>.
10
10
 
11
- For full documentation see <https://support.treasuredata.com/hc/en-us>.
11
+ For full documentation see <https://docs.treasuredata.com/>.
12
12
 
13
13
  = Getting Started
14
14
 
@@ -71,7 +71,7 @@ The Bulk Import CLI is downloaded automatically at the first call to any of the
71
71
  need internet connectivity in order to fetch the Bulk Import CLI JAR file from the
72
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
- {documentation}[https://support.treasuredata.com/hc/en-us/articles/360001502527-Legacy-Bulk-Import-Tips-and-Tricks#How%20to%20use%20a%20proxy%20server] page.
74
+ {documentation}[https://docs.treasuredata.com/display/public/INT/Legacy+Bulk+Import+Tips+and+Tricks#LegacyBulkImportTipsandTricks-UsingaProxyServer] page.
75
75
 
76
76
  The log levels and properties of the Bulk Import CLI can be configured in a +logging.properties+ file. A default
77
77
  configuration is provided in a file within the gem or Toolbelt folder root, in the +java/+ folder. If you wish to
data/Rakefile CHANGED
@@ -50,9 +50,12 @@ def install_use_gems(target_dir)
50
50
  puts "Copy local gem #{ENV['TD_TOOLBELT_LOCAL_CLIENT_GEM']} to #{Dir.pwd}"
51
51
  FileUtils.cp File.expand_path(ENV['TD_TOOLBELT_LOCAL_CLIENT_GEM']), Dir.pwd
52
52
  end
53
- Gem::GemRunner.new.run ["install", gem, "--no-rdoc", "--no-ri"]
53
+ Gem::GemRunner.new.run ["install", gem, "--no-document"] # Use one of two commands bellow. Gem::GemRunner on ruby 3.0.5 has some weird bug
54
+ # sh "gem install \"#{gem}" --no-document"
55
+ # sh "/usr/local/td/ruby/bin/gem install \"#{gem}\" --no-document" # On OSX
54
56
  rescue Gem::SystemExitException => e
55
57
  unless e.exit_code.zero?
58
+ puts e, e.backtrace.join("\n")
56
59
  raise e
57
60
  end
58
61
  end
data/appveyor.yml CHANGED
@@ -13,5 +13,5 @@ test_script:
13
13
  - bundle exec rake spec
14
14
  environment:
15
15
  matrix:
16
- - ruby_version: "22"
17
- - ruby_version: "22-x64"
16
+ - ruby_version: "26"
17
+ - ruby_version: "26-x64"
@@ -41,7 +41,7 @@ module Command
41
41
  end
42
42
  end
43
43
 
44
- $stdout.puts "Enter your Treasure Data credentials. For Google SSO user, please see https://support.treasuredata.com/hc/en-us/articles/360000720048-Treasure-Data-Toolbelt-Command-line-Interface#Google%20SSO%20Users"
44
+ $stdout.puts "Enter your Treasure Data credentials. For Google SSO user, please see https://docs.treasuredata.com/display/public/PD/Configuring+Authentication+for+TD+Using+the+TD+Toolbelt#ConfiguringAuthenticationforTDUsingtheTDToolbelt-SettingUpGoogleSSOUsers"
45
45
  unless user_name
46
46
  begin
47
47
  $stdout.print "Email: "
@@ -67,13 +67,11 @@ 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
70
  def get_import_client
73
71
  import_endpoint = begin
74
- Config.import_endpoint || DEFAULT_IMPORT_ENDPOINT
72
+ Config.import_endpoint || nil
75
73
  rescue TreasureData::ConfigNotFoundError
76
- DEFAULT_IMPORT_ENDPOINT
74
+ nil
77
75
  end
78
76
  get_client(endpoint: import_endpoint)
79
77
  end
@@ -107,7 +105,7 @@ module Command
107
105
  headers = options[:fields]
108
106
  csv_opts = {}
109
107
  csv_opts[:col_sep] = "\t" if format == 'tsv'
110
- CSV.generate('', csv_opts) { |csv|
108
+ CSV.generate('', **csv_opts) { |csv|
111
109
  csv << headers
112
110
  rows.each { |row|
113
111
  r = []
@@ -368,12 +366,9 @@ EOS
368
366
 
369
367
  def self.get_http_class
370
368
  # use Net::HTTP::Proxy in place of Net::HTTP if a proxy is provided
371
- http_proxy = ENV['HTTP_PROXY']
372
- if http_proxy
373
- http_proxy = (http_proxy =~ /\Ahttp:\/\/(.*)\z/) ? $~[1] : http_proxy
374
- host, port = http_proxy.split(':', 2)
375
- port = (port ? port.to_i : 80)
376
- return Net::HTTP::Proxy(host, port)
369
+ if ENV['HTTP_PROXY']
370
+ uri = URI.parse(ENV['HTTP_PROXY'])
371
+ return Net::HTTP::Proxy(uri.host, uri.port, uri.user, uri.password)
377
372
  else
378
373
  return Net::HTTP
379
374
  end
@@ -67,6 +67,9 @@ module Command
67
67
  encryption = nil
68
68
  assume_role = nil
69
69
 
70
+ # Increase the summary_width value from default 32 into 36, to show the options help message properly.
71
+ op.summary_width = 36
72
+
70
73
  op.on('-w', '--wait', 'wait until the job is completed', TrueClass) {|b|
71
74
  wait = b
72
75
  }
@@ -173,6 +173,8 @@ private
173
173
  $stdout.puts "Status : #{job.status}"
174
174
  $stdout.puts "Type : #{job.type}"
175
175
  $stdout.puts "Database : #{job.db_name}"
176
+ $stdout.puts "Start At : #{job.start_at}"
177
+ $stdout.puts "End At : #{job.end_at}"
176
178
  # exclude some fields from bulk_import_perform type jobs
177
179
  if [:hive, :pig, :impala, :presto].include?(job.type)
178
180
  $stdout.puts "Priority : #{job_priority_name_of(job.priority)}"
@@ -404,7 +406,7 @@ private
404
406
  raise "Unknown format #{format.inspect}"
405
407
  end
406
408
 
407
- if tempfile && File.exists?(tempfile)
409
+ if tempfile && File.exist?(tempfile)
408
410
  FileUtils.mv(tempfile, output.respond_to?(:path) ? output.path : output)
409
411
  end
410
412
  end
@@ -160,6 +160,8 @@ module Command
160
160
  rescue TreasureData::NotFoundError => e
161
161
  end
162
162
  end
163
+ elsif output
164
+ $stdout.puts "The output file won't be generated without additional `-w` or `--wait` option."
163
165
  end
164
166
  end
165
167
 
@@ -48,7 +48,9 @@ Basic commands:
48
48
  sched # create/delete/list schedules that run a query periodically
49
49
  schema # create/delete/modify schemas of tables
50
50
  connector # manage connectors
51
+ users # show/create/list users
51
52
  workflow # manage workflows
53
+ user # manage users
52
54
 
53
55
  Additional commands:
54
56
 
@@ -41,7 +41,7 @@ module Command
41
41
  if HIVE_RESERVED_KEYWORDS.include?(table_name.upcase)
42
42
  $stderr.puts "* WARNING *"
43
43
  $stderr.puts " '#{table_name}' is a reserved keyword in Hive. We recommend renaming the table."
44
- $stderr.puts " For a list of all reserved keywords, see our FAQ: https://support.treasuredata.com/hc/en-us/articles/360009531173/"
44
+ $stderr.puts " For a list of all reserved keywords, see our FAQ: https://docs.treasuredata.com/display/public/PD/Hive+Reserved+and+Non-Reserved+Keywords"
45
45
  end
46
46
 
47
47
  client = get_client
@@ -171,7 +171,7 @@ module Command
171
171
  if rows.empty?
172
172
  if db_name
173
173
  if databases.first.permission == :import_only
174
- $stderr.puts "Database '#{db_name}' is import only, cannot list or create tables."
174
+ $stderr.puts "Database '#{db_name}' is import only, cannot list."
175
175
  else
176
176
  $stderr.puts "Database '#{db_name}' has no tables."
177
177
  $stderr.puts "Use '#{$prog} " + Config.cl_options_string + "table:create <db> <table>' to create a table."
@@ -96,7 +96,7 @@ module TreasureData
96
96
  def workflow_version(op)
97
97
  op.cmd_parse # to show help
98
98
 
99
- unless File.exists?(digdag_cli_path)
99
+ unless File.exist?(digdag_cli_path)
100
100
  $stderr.puts('Workflow module not yet installed.')
101
101
  return 1
102
102
  end
@@ -246,7 +246,7 @@ 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+)?(?:_(\d+))?"/)
250
250
  if not m or m.size < 4
251
251
  return false
252
252
  end
@@ -309,7 +309,7 @@ EOF
309
309
 
310
310
  private
311
311
  def download_java
312
- if File.exists?(digdag_jre_dir)
312
+ if File.exist?(digdag_jre_dir)
313
313
  return
314
314
  end
315
315
 
@@ -427,7 +427,7 @@ EOF
427
427
  def check_digdag_cli
428
428
  check_system_java unless bundled_java?
429
429
 
430
- unless File.exists?(digdag_cli_path)
430
+ unless File.exist?(digdag_cli_path)
431
431
  $stderr.puts 'Workflow module not yet installed, download now? [Y/n]'
432
432
  line = $stdin.gets
433
433
  line.strip!
data/lib/td/config.rb CHANGED
@@ -148,7 +148,8 @@ class Config
148
148
 
149
149
 
150
150
  def self.endpoint
151
- @@endpoint || Config.read['account.endpoint']
151
+ endpoint = @@endpoint || Config.read['account.endpoint']
152
+ endpoint.sub(/(\/)+$/, '') if endpoint
152
153
  end
153
154
 
154
155
  def self.endpoint=(endpoint)
@@ -168,7 +169,8 @@ class Config
168
169
  end
169
170
 
170
171
  def self.import_endpoint
171
- @@import_endpoint || Config.read['account.import_endpoint']
172
+ endpoint = @@import_endpoint || Config.read['account.import_endpoint']
173
+ endpoint.sub(/(\/)+$/, '') if endpoint
172
174
  end
173
175
 
174
176
  def self.import_endpoint=(endpoint)
@@ -185,7 +187,7 @@ class Config
185
187
 
186
188
  def self.workflow_endpoint
187
189
  case self.endpoint_domain
188
- when /\Aapi(-(?:staging|development))?(-[a-z0-9]+)?\.(connect\.)?((?:eu01|ap02)\.)?treasuredata\.(com|co\.jp)\z/i
190
+ when /\Aapi(-(?:staging|development))?(-[a-z0-9]+)?\.(connect\.)?((?:eu01|ap02|ap03)\.)?treasuredata\.(com|co\.jp)\z/i
189
191
  "https://api#{$1}-workflow#{$2}.#{$3}#{$4}treasuredata.#{$5}"
190
192
  else
191
193
  raise ConfigError, "Workflow is not supported for '#{self.endpoint}'"
@@ -96,10 +96,10 @@ module TreasureData
96
96
  csv_opts[:quote_char] = opts[:quote_char] if opts[:quote_char]
97
97
  begin
98
98
  require 'fastercsv'
99
- @io = FasterCSV.new(io, csv_opts)
99
+ @io = FasterCSV.new(io, **csv_opts)
100
100
  rescue LoadError => e
101
101
  require 'csv'
102
- @io = CSV.new(io, csv_opts)
102
+ @io = CSV.new(io, **csv_opts)
103
103
  end
104
104
  @error = error
105
105
  # @escape_char = opts[:escape_char]
data/lib/td/helpers.rb CHANGED
@@ -11,7 +11,7 @@ module TreasureData
11
11
  end
12
12
 
13
13
  def on_windows?
14
- RUBY_PLATFORM =~ /mswin32|mingw32/
14
+ RUBY_PLATFORM =~ /mswin32|mingw32|mingw-ucrt/
15
15
  end
16
16
 
17
17
  def on_mac?
data/lib/td/updater.rb CHANGED
@@ -21,7 +21,7 @@ module ModuleDefinition
21
21
  end
22
22
 
23
23
  def on_windows?
24
- RUBY_PLATFORM =~ /mswin32|mingw32/
24
+ RUBY_PLATFORM =~ /mswin32|mingw32|mingw-ucrt/
25
25
  end
26
26
 
27
27
  def on_mac?
@@ -82,7 +82,7 @@ module ModuleDefinition
82
82
 
83
83
  def wait_for_lock(path, wait_for = 5, check_every = 0.5)
84
84
  start = Time.now.to_i
85
- while File.exists?(path)
85
+ while File.exist?(path)
86
86
  sleep check_every
87
87
  if (Time.now.to_i - start) > wait_for
88
88
  raise_error "Unable to acquire update lock"
@@ -142,14 +142,15 @@ module ModuleDefinition
142
142
  end
143
143
 
144
144
  def version_endpoint
145
- "#{endpoint_root}/latest_version_0_16.#{package_category}"
145
+ "#{endpoint_root}/latest_version_0_17.#{package_category}"
146
146
  end
147
147
 
148
148
  def update_package_endpoint
149
- "#{endpoint_root}/td-update-#{package_category}-0-16.zip"
149
+ "#{endpoint_root}/td-update-#{package_category}-0-17.zip"
150
150
  end
151
151
 
152
152
  def update(autoupdate = false)
153
+ FileUtils.mkdir_p File.dirname(updating_lock_path)
153
154
  wait_for_lock(updating_lock_path, 5) do
154
155
  require "td"
155
156
  require 'open-uri'
@@ -305,7 +306,7 @@ end # module ModuleDefinition
305
306
  last_updated = existent_jar_updated_time
306
307
 
307
308
  if updated > last_updated
308
- FileUtils.mkdir_p(Updater.jarfile_dest_path) unless File.exists?(Updater.jarfile_dest_path)
309
+ FileUtils.mkdir_p(Updater.jarfile_dest_path) unless File.exist?(Updater.jarfile_dest_path)
309
310
  Dir.chdir(Updater.jarfile_dest_path) do
310
311
  status = nil
311
312
  indicator = Command::TimeBasedDownloadProgressIndicator.new(
@@ -334,7 +335,7 @@ end # module ModuleDefinition
334
335
  else
335
336
  $stdout.puts "Update of td-import.jar failed."
336
337
  $stdout.puts "Please execute 'td import:jar_update' later to update td-import.jar correctly."
337
- File.delete 'td-import.jar.new' if File.exists? 'td-import.jar.new'
338
+ File.delete 'td-import.jar.new' if File.exist? 'td-import.jar.new'
338
339
  end
339
340
  end
340
341
  else
@@ -359,7 +360,7 @@ end # module ModuleDefinition
359
360
  end
360
361
  end
361
362
 
362
- if File.exists?(last_jar_autoupdate_timestamp) && \
363
+ if File.exist?(last_jar_autoupdate_timestamp) && \
363
364
  (Time.now - File.mtime(last_jar_autoupdate_timestamp)).to_i < (60 * 60 * 1) # every hour
364
365
  return
365
366
  end
data/lib/td/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module TreasureData
2
- TOOLBELT_VERSION = '0.16.9'
2
+ TOOLBELT_VERSION = '0.17.0'
3
3
  end
@@ -271,6 +271,8 @@ text
271
271
 
272
272
  describe '#job_show' do
273
273
  let(:job_id) { "12345" }
274
+ let(:start_at) { Time.now.strftime('%Y-%m-%d %H:%M:%S UTC') }
275
+ let(:end_at) { (Time.now + 60).strftime('%Y-%m-%d %H:%M:%S UTC') }
274
276
 
275
277
  let :job_classs do
276
278
  Struct.new(:job_id,
@@ -278,6 +280,8 @@ text
278
280
  :type,
279
281
  :db_name,
280
282
  :priority,
283
+ :start_at,
284
+ :end_at,
281
285
  :retry_limit,
282
286
  :result_url,
283
287
  :query,
@@ -292,6 +296,8 @@ text
292
296
  :hive,
293
297
  "db_name",
294
298
  1,
299
+ start_at,
300
+ end_at,
295
301
  1,
296
302
  "test_url",
297
303
  "test_qury",
@@ -410,7 +416,7 @@ ACTUAL
410
416
  end
411
417
 
412
418
  let(:line_separator) {
413
- if RUBY_PLATFORM =~ /mswin32|mingw32/
419
+ if RUBY_PLATFORM =~ /mswin32|mingw32|mingw-ucrt/
414
420
  "\r\n"
415
421
  else
416
422
  "\n"
@@ -32,6 +32,10 @@ describe TreasureData::Config do
32
32
  let(:api_endpoint){ 'api.ap02.treasuredata.com' }
33
33
  it { is_expected.to eq 'https://api-workflow.ap02.treasuredata.com' }
34
34
  end
35
+ context 'api.ap03.treasuredata.com' do
36
+ let(:api_endpoint){ 'api.ap03.treasuredata.com' }
37
+ it { is_expected.to eq 'https://api-workflow.ap03.treasuredata.com' }
38
+ end
35
39
 
36
40
  context 'api-hoge.connect.treasuredata.com' do
37
41
  let(:api_endpoint){ 'api-hoge.connect.treasuredata.com' }
@@ -58,6 +62,10 @@ describe TreasureData::Config do
58
62
  let(:api_endpoint){ 'api-staging.ap02.treasuredata.com' }
59
63
  it { is_expected.to eq 'https://api-staging-workflow.ap02.treasuredata.com' }
60
64
  end
65
+ context 'api-staging.ap03.treasuredata.com' do
66
+ let(:api_endpoint){ 'api-staging.ap03.treasuredata.com' }
67
+ it { is_expected.to eq 'https://api-staging-workflow.ap03.treasuredata.com' }
68
+ end
61
69
 
62
70
  context 'api-development.treasuredata.com' do
63
71
  let(:api_endpoint){ 'api-development.treasuredata.com' }
@@ -75,6 +83,10 @@ describe TreasureData::Config do
75
83
  let(:api_endpoint){ 'api-development.ap02.treasuredata.com' }
76
84
  it { is_expected.to eq 'https://api-development-workflow.ap02.treasuredata.com' }
77
85
  end
86
+ context 'api-development.ap03.treasuredata.com' do
87
+ let(:api_endpoint){ 'api-development.ap03.treasuredata.com' }
88
+ it { is_expected.to eq 'https://api-development-workflow.ap03.treasuredata.com' }
89
+ end
78
90
 
79
91
  context 'ybi.jp-east.idcfcloud.com' do
80
92
  let(:api_endpoint){ 'ybi.jp-east.idcfcloud.com' }
@@ -84,6 +96,64 @@ describe TreasureData::Config do
84
96
  end
85
97
  end
86
98
 
99
+ describe 'allow endpoint with trailing slash' do
100
+ context 'self.endpoint' do
101
+ before { TreasureData::Config.endpoint = api_endpoint }
102
+ subject { TreasureData::Config.endpoint }
103
+
104
+ context 'api.treasuredata.com' do
105
+ let(:api_endpoint) { 'https://api.treasuredata.com/' }
106
+ it { is_expected.to eq 'https://api.treasuredata.com' }
107
+ end
108
+ context 'api.treasuredata.co.jp' do
109
+ let(:api_endpoint) { 'https://api.treasuredata.co.jp/' }
110
+ it { is_expected.to eq 'https://api.treasuredata.co.jp' }
111
+ end
112
+ context 'api.eu01.treasuredata.com' do
113
+ let(:api_endpoint) { 'https://api.eu01.treasuredata.com/' }
114
+ it { is_expected.to eq 'https://api.eu01.treasuredata.com' }
115
+ end
116
+ context 'api.ap02.treasuredata.com' do
117
+ let(:api_endpoint) { 'https://api.ap02.treasuredata.com/' }
118
+ it { is_expected.to eq 'https://api.ap02.treasuredata.com' }
119
+ end
120
+ context 'api.ap03.treasuredata.com' do
121
+ let(:api_endpoint) { 'https://api.ap03.treasuredata.com/' }
122
+ it { is_expected.to eq 'https://api.ap03.treasuredata.com' }
123
+ end
124
+ context 'api-hoge.connect.treasuredata.com' do
125
+ let(:api_endpoint){ 'https://api-hoge.connect.treasuredata.com/' }
126
+ it { is_expected.to eq 'https://api-hoge.connect.treasuredata.com' }
127
+ end
128
+ end
129
+
130
+ context 'self.import_endpoint' do
131
+ before { TreasureData::Config.import_endpoint = api_endpoint }
132
+ subject { TreasureData::Config.import_endpoint }
133
+
134
+ context 'api-import.treasuredata.com' do
135
+ let(:api_endpoint) { 'https://api-import.treasuredata.com/' }
136
+ it { is_expected.to eq 'https://api-import.treasuredata.com' }
137
+ end
138
+ context 'api-import.treasuredata.co.jp' do
139
+ let(:api_endpoint) { 'https://api-import.treasuredata.co.jp/' }
140
+ it { is_expected.to eq 'https://api-import.treasuredata.co.jp' }
141
+ end
142
+ context 'api-import.eu01.treasuredata.com' do
143
+ let(:api_endpoint) { 'https://api-import.eu01.treasuredata.com/' }
144
+ it { is_expected.to eq 'https://api-import.eu01.treasuredata.com' }
145
+ end
146
+ context 'api-import.ap02.treasuredata.com' do
147
+ let(:api_endpoint) { 'https://api-import.ap02.treasuredata.com/' }
148
+ it { is_expected.to eq 'https://api-import.ap02.treasuredata.com' }
149
+ end
150
+ context 'api-import.ap03.treasuredata.com' do
151
+ let(:api_endpoint) { 'https://api-import.ap03.treasuredata.com/' }
152
+ it { is_expected.to eq 'https://api-import.ap03.treasuredata.com' }
153
+ end
154
+ end
155
+ end
156
+
87
157
  describe '#read' do
88
158
  it 'sets @conf' do
89
159
  Tempfile.create('td.conf') do |f|
@@ -0,0 +1,19 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIDBDCCAewCCQCQdq0wStTtITANBgkqhkiG9w0BAQsFADBEMR0wGwYDVQQDDBR3
3
+ d3cudHJlYXN1cmVkYXRhLmNvbTELMAkGA1UEBhMCVVMxFjAUBgNVBAcMDVNhbiBG
4
+ cmFuc2lzY28wHhcNMjIxMDE0MDQzNjA0WhcNMzIwNzEzMDQzNjA0WjBEMR0wGwYD
5
+ VQQDDBR3d3cudHJlYXN1cmVkYXRhLmNvbTELMAkGA1UEBhMCVVMxFjAUBgNVBAcM
6
+ DVNhbiBGcmFuc2lzY28wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCU
7
+ 4RbAD5pop+AUYyJT0L4r/ZwOFz72TqQwyPh8EbpPlkvErWPP07kLO1gmfPHPH6zE
8
+ 4sAd8Pl5HZ29Z3fF9zO4ZaOehO+kMHp3jp1nq6vURzMjxDj42CyP+M7DOLrov98m
9
+ uwcZMdVjJlz9ZWt7P4x/F5cyqnzmFYxefi0xbgFFXKaWL1W3Fmq1dKMCgbCVWxlA
10
+ cufRFQmmO+OOcKfJTpcZZXH+VKai81OLjjoBkEERqZU8ySv2zR3gLBMAU3x/VL6/
11
+ AxcAi6ZbxQ29O28VTojQ44dA0op5wDtbI3reH9cMgALI1Swo2DyxXejYoZJYKqk3
12
+ AH2BiM0dbPnzOoufxjm/AgMBAAEwDQYJKoZIhvcNAQELBQADggEBACLeA1a/TU4E
13
+ 8bKVEr8X9CMROG2j5lsmPLZRTDUQT50iu5MBZzCNQi2tzUC+QHWC8m/xrhsg4b4t
14
+ r52dQuZlPSEGbzdiltrzQPODnSkA6tmgPeaea5wKG8abDgVQRbMBiamwgJruIi1s
15
+ ynX2yD4qdo07fTAC9CyKd9kogMRMXaqVppfIrob+HL3KQJ4MQPRJb+IN3K14Bdq8
16
+ /XL+8zH4zsWxPCkJyKlcUwGx3M0NHnYX0l8Enap65McTiaPIiCgr5TnkJmctDKBm
17
+ Zrv+c1sb69oJtlayGKWNymxdU+1f79IVioQf4qCa7ZB1//ON60KrQ9cRsmObJtnE
18
+ KD6Oett1Kto=
19
+ -----END CERTIFICATE-----
@@ -0,0 +1,23 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIID2jCCAsKgAwIBAgIJALE6L1U9f459MA0GCSqGSIb3DQEBCwUAMEQxHTAbBgNV
3
+ BAMMFHd3dy50cmVhc3VyZWRhdGEuY29tMQswCQYDVQQGEwJVUzEWMBQGA1UEBwwN
4
+ U2FuIEZyYW5zaXNjbzAeFw0yMjEwMTQwOTU3NDdaFw0zMjEwMTEwOTU3NDdaMGwx
5
+ CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4g
6
+ RnJhbnNpc2NvMRYwFAYDVQQKDA1UcmVhc3VyZSBEYXRhMQwwCgYDVQQLDANFbmcx
7
+ CjAIBgNVBAMMASowggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6TBzz
8
+ TnMXEwQhmsF9ggvyjzhsVQRQnVafPjR45mKgN5+4QmkW+t1RUv93ysz2UOXM1XfN
9
+ HptcrgbdsEmhDDWopsPgfJrSdN6O44oxplZOTusn20lJDG4Ogm0Kdn2k0P6Cj1bG
10
+ PmFLgw4BeXqhMWI60rbQw/HtFDMx6MWU555wr//jJNPIPOVBzVOiGhmoWYJY8ARB
11
+ WlplKeW0BkQ2J+650Q4dcqrrq4R6UbnyTjf9pqxSa2qP5y9ZQr+69COveX26ZSmA
12
+ 76PRzGE1oohsB37OCcQMwU+CuIHZkS9CMEGgkYfmfKaGtrsGtG52eGGwiYoAwSGJ
13
+ BJ/v53Pp3BGKWo9tAgMBAAGjgaYwgaMwXgYDVR0jBFcwVaFIpEYwRDEdMBsGA1UE
14
+ AwwUd3d3LnRyZWFzdXJlZGF0YS5jb20xCzAJBgNVBAYTAlVTMRYwFAYDVQQHDA1T
15
+ YW4gRnJhbnNpc2NvggkAkHatMErU7SEwCQYDVR0TBAIwADALBgNVHQ8EBAMCBPAw
16
+ EwYDVR0lBAwwCgYIKwYBBQUHAwEwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA0GCSqG
17
+ SIb3DQEBCwUAA4IBAQBQkwlcEc98Pj9NB9NjhwZalgI36ptmj7vxyD8GXaJQWh7P
18
+ BKnOTxwbqhY68B7QgQ+NTusltnWsiO2IBAZR3MZGeLh4rFUUi4daww7fCLbYQD0t
19
+ YKOjUv8C4rlp8lRs/IMDMl1i2w1R6x78+RKSy1OhIvxT3qV9Zxx8RfqINboyDlbo
20
+ 6lOEQlLYGGUJutIbkUoPCo3TO3/oaLfwlFhnxgEwf+lX/qHoqTkz16JRzil6yFOx
21
+ qc5ugRF0S34lpnBd6qfbhV1QFY17WvSbbXmpBPONI2SLs0WSwwCTFVRg8Z+Y90oG
22
+ oGH+JdWsxn+9e8JTB/UOpxr+vWTyQ63wLaElPOyC
23
+ -----END CERTIFICATE-----
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEAukwc805zFxMEIZrBfYIL8o84bFUEUJ1Wnz40eOZioDefuEJp
3
+ FvrdUVL/d8rM9lDlzNV3zR6bXK4G3bBJoQw1qKbD4Hya0nTejuOKMaZWTk7rJ9tJ
4
+ SQxuDoJtCnZ9pND+go9Wxj5hS4MOAXl6oTFiOtK20MPx7RQzMejFlOeecK//4yTT
5
+ yDzlQc1TohoZqFmCWPAEQVpaZSnltAZENifuudEOHXKq66uEelG58k43/aasUmtq
6
+ j+cvWUK/uvQjr3l9umUpgO+j0cxhNaKIbAd+zgnEDMFPgriB2ZEvQjBBoJGH5nym
7
+ hra7BrRudnhhsImKAMEhiQSf7+dz6dwRilqPbQIDAQABAoIBAF8IKpB2yUDRA398
8
+ 6Qz0BNIz+u1QJQZWbHSJD81IgLEIDuK4hdEiITm14/mgqxNPSxpFHnq1DT2mzHvT
9
+ zItppgmlIDBof7WxxkIPklQnbMk/erd3JhgsTgv6vlLjBM7JibriEbrI4WrarI9V
10
+ /5cwkNI+4OD3w3ZTopXoDroZuPnz/v0EKhDz05E4jHijfiRL3OxaAvZ2zWVKifVh
11
+ elilbCeLR2KgKG6jPrBzub2Yll9C7Xxt7emIMvyTg5jEOkmm7IWfAZ6uIraI7pAs
12
+ 5MlwQDIb/Ypby4gHJ0CPWy2AhdybF2Y+hm5jXY1aD7xjlG8pjudidYtnrpWO1kPV
13
+ bbqIvUUCgYEA3G5JQvcA9ZTiHculyW/6O++NXrOkznXI04JhhKN6JvdTdp3xC61k
14
+ H+gnP0e2/FeqqZWF6KWlmPBuonofEQqyCwJdHRZESaixgw7iKqN2t11Z9EhWzoGq
15
+ UGc1oMT90AIHxsGUBbUIZdlj1D8KDx/qymlsKp8ozTKwyCqNesiYet8CgYEA2FvQ
16
+ 94zgOauOCwfOwDipwivrJ9nblykMfcp8NCC2jLxI3rjH30EhRWBZrc0V55erjfrz
17
+ QgJYlj4kN/3GwLVq2Agr5EczjePScRlkpPNHdfAfXKvg7dHHsgrYf9lP6j2Adz8B
18
+ mhyYs1gfo6ekeHLoqKBlSn08AosfSTpETuIdizMCgYBFATFmCTT/rA/tC+dmW+uV
19
+ /7PdxZb+Gtk3fUVR5GtE73/tThw7b5g8dMx0ftrFvBvs4qX84n4olnvL2TcIerSp
20
+ xZ+oj2PpOyn2wR4EAxAS7uJOGqcyFl1etjCPl5ttFnWgvtC7yKRMXfVmaCWZ/n/d
21
+ xYra/OAk/I1i3A9WNJ2nOQKBgD83jLZYPkf7fXRxopJ9u/RVOs+ZE1V2lATJPkNI
22
+ 763tcelJ2nS8JgmMXoeu7eCOa3z/v0YhQ1sa6yBFEWbLW12l/ZUkzMZ/s8SCI+si
23
+ flXShIdiXUV/zzaRfrLUf0o1EC1HhqNOCbwVWqFJ4X+kK6DhxNbgAsHHfqu5z62w
24
+ 2esLAoGAbIbd5Xd+lRXbuNTyIqAONf4KgH529hU4W9tw+kR5OFqadC557Jvs33nn
25
+ iSqGgET+DZTxaOZk8KeCKZys8IcIxvWyhq22/Pd0BKl1ozWj4w/bkDlqO2V9I9NY
26
+ 32DBk4iAHljJqkmxnJkSXgGypf4guPZlNGPbTijXw3oHaIpvPl0=
27
+ -----END RSA PRIVATE KEY-----
@@ -8,7 +8,7 @@ require 'logger'
8
8
 
9
9
  module TreasureData::Updater
10
10
 
11
- %w(x86_64-darwin14 x64-mingw32).each do |platform|
11
+ %w(x86_64-darwin14 x64-mingw32).each do |platform|
12
12
  describe "RUBY_PLATFORM is '#{platform}'" do
13
13
  before do
14
14
  stub_const('RUBY_PLATFORM', platform)
@@ -128,7 +128,7 @@ module TreasureData::Updater
128
128
  subject
129
129
  end
130
130
  tmpfile = File.join(TreasureData::Updater.jarfile_dest_path, 'td-import.jar.new')
131
- expect(File.exists?(tmpfile)).to eq false
131
+ expect(File.exist?(tmpfile)).to eq false
132
132
  end
133
133
  end
134
134
 
@@ -171,7 +171,7 @@ module TreasureData::Updater
171
171
  @proxy_server = WEBrick::HTTPProxyServer.new(
172
172
  :BindAddress => "localhost",
173
173
  :Logger => logger,
174
- :Port => 0,
174
+ :Port => 1000 + rand(1000),
175
175
  :AccessLog => []
176
176
  )
177
177
  @proxy_server_thread = start_server_thread(@proxy_server)
@@ -185,13 +185,13 @@ module TreasureData::Updater
185
185
  @server = WEBrick::HTTPServer.new(
186
186
  :BindAddress => "localhost",
187
187
  :Logger => logger,
188
- :Port => 0,
188
+ :Port => 1000 + rand(1000),
189
189
  :AccessLog => [],
190
190
  :DocumentRoot => '.',
191
191
  :SSLEnable => true,
192
- :SSLCACertificateFile => fixture_file('ca.cert'),
193
- :SSLCertificate => cert('server.cert'),
194
- :SSLPrivateKey => key('server.key')
192
+ :SSLCACertificateFile => fixture_file('testRootCA.crt'),
193
+ :SSLCertificate => cert('testServer.crt'),
194
+ :SSLPrivateKey => key('testServer.key')
195
195
  )
196
196
  @serverport = @server.config[:Port]
197
197
  @server.mount(
data/td.gemspec CHANGED
@@ -15,18 +15,21 @@ Gem::Specification.new do |gem|
15
15
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
16
  gem.require_paths = ['lib']
17
17
  gem.required_ruby_version = '>= 2.1'
18
+ gem.licenses = ["Apache-2.0"]
18
19
 
19
20
  gem.add_dependency "msgpack"
20
- gem.add_dependency "yajl-ruby", "~> 1.1"
21
+ gem.add_dependency "rexml"
22
+ gem.add_dependency "yajl-ruby", ">= 1.3.1", "< 2.0"
21
23
  gem.add_dependency "hirb", ">= 0.4.5"
22
- gem.add_dependency "parallel", "~> 1.8"
23
- gem.add_dependency "td-client", ">= 1.0.6", "< 2"
24
+ gem.add_dependency "parallel", "~> 1.20.0"
25
+ gem.add_dependency "td-client", ">= 1.0.8", "< 2"
24
26
  gem.add_dependency "td-logger", ">= 0.3.21", "< 2"
25
27
  gem.add_dependency "rubyzip", "~> 1.3.0"
26
28
  gem.add_dependency "zip-zip", "~> 0.3"
27
29
  gem.add_dependency "ruby-progressbar", "~> 1.7"
28
30
  gem.add_development_dependency "rake"
29
31
  gem.add_development_dependency "rspec"
32
+ gem.add_development_dependency 'webrick'
30
33
  gem.add_development_dependency "simplecov"
31
34
  gem.add_development_dependency 'coveralls'
32
35
  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.9
4
+ version: 0.17.0
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: 2020-04-10 00:00:00.000000000 Z
11
+ date: 2023-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -24,20 +24,40 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rexml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: yajl-ruby
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.1
48
+ - - "<"
32
49
  - !ruby/object:Gem::Version
33
- version: '1.1'
50
+ version: '2.0'
34
51
  type: :runtime
35
52
  prerelease: false
36
53
  version_requirements: !ruby/object:Gem::Requirement
37
54
  requirements:
38
- - - "~>"
55
+ - - ">="
39
56
  - !ruby/object:Gem::Version
40
- version: '1.1'
57
+ version: 1.3.1
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.0'
41
61
  - !ruby/object:Gem::Dependency
42
62
  name: hirb
43
63
  requirement: !ruby/object:Gem::Requirement
@@ -58,21 +78,21 @@ dependencies:
58
78
  requirements:
59
79
  - - "~>"
60
80
  - !ruby/object:Gem::Version
61
- version: '1.8'
81
+ version: 1.20.0
62
82
  type: :runtime
63
83
  prerelease: false
64
84
  version_requirements: !ruby/object:Gem::Requirement
65
85
  requirements:
66
86
  - - "~>"
67
87
  - !ruby/object:Gem::Version
68
- version: '1.8'
88
+ version: 1.20.0
69
89
  - !ruby/object:Gem::Dependency
70
90
  name: td-client
71
91
  requirement: !ruby/object:Gem::Requirement
72
92
  requirements:
73
93
  - - ">="
74
94
  - !ruby/object:Gem::Version
75
- version: 1.0.6
95
+ version: 1.0.8
76
96
  - - "<"
77
97
  - !ruby/object:Gem::Version
78
98
  version: '2'
@@ -82,7 +102,7 @@ dependencies:
82
102
  requirements:
83
103
  - - ">="
84
104
  - !ruby/object:Gem::Version
85
- version: 1.0.6
105
+ version: 1.0.8
86
106
  - - "<"
87
107
  - !ruby/object:Gem::Version
88
108
  version: '2'
@@ -176,6 +196,20 @@ dependencies:
176
196
  - - ">="
177
197
  - !ruby/object:Gem::Version
178
198
  version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: webrick
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - ">="
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ type: :development
207
+ prerelease: false
208
+ version_requirements: !ruby/object:Gem::Requirement
209
+ requirements:
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: '0'
179
213
  - !ruby/object:Gem::Dependency
180
214
  name: simplecov
181
215
  requirement: !ruby/object:Gem::Requirement
@@ -211,9 +245,11 @@ executables:
211
245
  extensions: []
212
246
  extra_rdoc_files: []
213
247
  files:
248
+ - ".circleci/config.yml"
214
249
  - ".coveralls.yml"
250
+ - ".github/CODEOWNERS"
251
+ - ".github/workflows/codeql-analysis.yml"
215
252
  - ".gitignore"
216
- - ".travis.yml"
217
253
  - ChangeLog
218
254
  - Gemfile
219
255
  - README.rdoc
@@ -285,13 +321,17 @@ files:
285
321
  - spec/td/fixture/ca.cert
286
322
  - spec/td/fixture/server.cert
287
323
  - spec/td/fixture/server.key
324
+ - spec/td/fixture/testRootCA.crt
325
+ - spec/td/fixture/testServer.crt
326
+ - spec/td/fixture/testServer.key
288
327
  - spec/td/fixture/tmp.zip
289
328
  - spec/td/helpers_spec.rb
290
329
  - spec/td/updater_spec.rb
291
330
  - spec/td/version_spec.rb
292
331
  - td.gemspec
293
332
  homepage: http://treasure-data.com/
294
- licenses: []
333
+ licenses:
334
+ - Apache-2.0
295
335
  metadata: {}
296
336
  post_install_message:
297
337
  rdoc_options: []
@@ -308,8 +348,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
308
348
  - !ruby/object:Gem::Version
309
349
  version: '0'
310
350
  requirements: []
311
- rubyforge_project:
312
- rubygems_version: 2.6.14.3
351
+ rubygems_version: 3.1.6
313
352
  signing_key:
314
353
  specification_version: 4
315
354
  summary: CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing
@@ -338,6 +377,9 @@ test_files:
338
377
  - spec/td/fixture/ca.cert
339
378
  - spec/td/fixture/server.cert
340
379
  - spec/td/fixture/server.key
380
+ - spec/td/fixture/testRootCA.crt
381
+ - spec/td/fixture/testServer.crt
382
+ - spec/td/fixture/testServer.key
341
383
  - spec/td/fixture/tmp.zip
342
384
  - spec/td/helpers_spec.rb
343
385
  - spec/td/updater_spec.rb
data/.travis.yml DELETED
@@ -1,23 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 2.1.10
5
- - 2.2.10
6
- - 2.3.8
7
- - 2.4.5
8
- - 2.5.3
9
- - ruby-head
10
-
11
- gemfile:
12
- - Gemfile
13
-
14
- script: bundle exec rake spec SPEC_OPTS="-fd"
15
-
16
- matrix:
17
- allow_failures:
18
- - rvm: ruby-head
19
-
20
- sudo: false
21
-
22
- notifications:
23
- webhooks: http://td-beda.herokuapp.com/travisci_callback