From 9bd20085777d080bb2ae34eb3fab1ac3437ecc93 Mon Sep 17 00:00:00 2001 From: Brian Lamar Date: Fri, 16 Feb 2018 11:04:46 -0500 Subject: [PATCH 01/10] Update package.rb --- lib/deb/s3/package.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/deb/s3/package.rb b/lib/deb/s3/package.rb index a22fa97..cb44513 100644 --- a/lib/deb/s3/package.rb +++ b/lib/deb/s3/package.rb @@ -73,7 +73,7 @@ def extract_control(package) Dir.mktmpdir do |path| safesystem("#{extract_control_tarball_cmd} | tar -zxf - -C #{path}") - File.read(File.join(path, "control")) + File.read(File.join(path, "control"), :encoding => "UTF-8") end end end From f197ce44795d681bbabee216a76f1929fa0731d1 Mon Sep 17 00:00:00 2001 From: Mitsuhiro Tanda Date: Tue, 17 Jul 2018 17:40:08 +0900 Subject: [PATCH 02/10] fix Content-Type to same type as official --- lib/deb/s3/manifest.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/deb/s3/manifest.rb b/lib/deb/s3/manifest.rb index 6f382a6..bafa8b2 100644 --- a/lib/deb/s3/manifest.rb +++ b/lib/deb/s3/manifest.rb @@ -106,7 +106,7 @@ def write_to_s3 # store any packages that need to be stored @packages_to_be_upload.each do |pkg| yield pkg.url_filename(@codename) if block_given? - s3_store(pkg.filename, pkg.url_filename(@codename), 'application/octet-stream; charset=binary', self.cache_control, self.fail_if_exists) + s3_store(pkg.filename, pkg.url_filename(@codename), 'application/x-debian-package', self.cache_control, self.fail_if_exists) end end @@ -126,7 +126,7 @@ def write_to_s3 Zlib::GzipWriter.open(gztemp.path) { |gz| gz.write manifest } f = "dists/#{@codename}/#{@component}/binary-#{@architecture}/Packages.gz" yield f if block_given? - s3_store(gztemp.path, f, 'application/x-gzip; charset=binary', self.cache_control) + s3_store(gztemp.path, f, 'application/x-gzip', self.cache_control) @files["#{@component}/binary-#{@architecture}/Packages.gz"] = hashfile(gztemp.path) gztemp.unlink From 838e3b6b8cc76cf05e762de43a8101bd9b672b40 Mon Sep 17 00:00:00 2001 From: Chris Tompkinson Date: Wed, 18 Jul 2018 14:36:55 +0100 Subject: [PATCH 03/10] Ensure that a lock is made to avoid conflicts due to s3 latency --- lib/deb/s3/lock.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/deb/s3/lock.rb b/lib/deb/s3/lock.rb index 1538984..f943107 100644 --- a/lib/deb/s3/lock.rb +++ b/lib/deb/s3/lock.rb @@ -2,6 +2,7 @@ require "tempfile" require "socket" require "etc" +require "securerandom" class Deb::S3::Lock attr_accessor :user @@ -14,6 +15,7 @@ def initialize class << self def locked?(codename, component = nil, architecture = nil, cache_control = nil) + puts lock_path(codename, component, architecture, cache_control) Deb::S3::Utils.s3_exists?(lock_path(codename, component, architecture, cache_control)) end @@ -28,13 +30,18 @@ def wait_for_lock(codename, component = nil, architecture = nil, cache_control = def lock(codename, component = nil, architecture = nil, cache_control = nil) lockfile = Tempfile.new("lockfile") - lockfile.write("#{Etc.getlogin}@#{Socket.gethostname}") + + lockfile_content = "#{Etc.getlogin}@#{Socket.gethostname}_#{SecureRandom.hex}" + lockfile.write lockfile_content lockfile.close Deb::S3::Utils.s3_store(lockfile.path, lock_path(codename, component, architecture, cache_control), "text/plain", cache_control) + + return if lockfile_content == Deb::S3::Utils.s3_read(lock_path(codename, component, architecture, cache_control)) + throw "Failed to acquire lock, was overwritten by another deb-s3 process" end def unlock(codename, component = nil, architecture = nil, cache_control = nil) From 8384808eddac702e2536f3d4cc4246fbbae71101 Mon Sep 17 00:00:00 2001 From: Chris Tompkinson Date: Wed, 18 Jul 2018 14:42:18 +0100 Subject: [PATCH 04/10] ensure lock information is still readable --- lib/deb/s3/lock.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/deb/s3/lock.rb b/lib/deb/s3/lock.rb index f943107..e306348 100644 --- a/lib/deb/s3/lock.rb +++ b/lib/deb/s3/lock.rb @@ -50,7 +50,7 @@ def unlock(codename, component = nil, architecture = nil, cache_control = nil) def current(codename, component = nil, architecture = nil, cache_control = nil) lock_content = Deb::S3::Utils.s3_read(lock_path(codename, component, architecture, cache_control)) - lock_content = lock_content.split('@') + lock_content = lock_content.split('_').first.split('@') lock = Deb::S3::Lock.new lock.user = lock_content[0] lock.host = lock_content[1] if lock_content.size > 1 From 987b1d1c86f167a486310add54cfc2d295dae700 Mon Sep 17 00:00:00 2001 From: Chris Tompkinson Date: Wed, 18 Jul 2018 16:41:20 +0100 Subject: [PATCH 05/10] remove debug message --- lib/deb/s3/lock.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/deb/s3/lock.rb b/lib/deb/s3/lock.rb index e306348..8219200 100644 --- a/lib/deb/s3/lock.rb +++ b/lib/deb/s3/lock.rb @@ -15,7 +15,6 @@ def initialize class << self def locked?(codename, component = nil, architecture = nil, cache_control = nil) - puts lock_path(codename, component, architecture, cache_control) Deb::S3::Utils.s3_exists?(lock_path(codename, component, architecture, cache_control)) end From 2fe040000066c8048e2cd207fd02e0ba67057b9c Mon Sep 17 00:00:00 2001 From: Chris Tompkinson Date: Wed, 18 Jul 2018 16:57:10 +0100 Subject: [PATCH 06/10] add number on next line to make sure we dont use a character that could be in the hostname --- lib/deb/s3/lock.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/deb/s3/lock.rb b/lib/deb/s3/lock.rb index 8219200..34a7b92 100644 --- a/lib/deb/s3/lock.rb +++ b/lib/deb/s3/lock.rb @@ -30,7 +30,8 @@ def wait_for_lock(codename, component = nil, architecture = nil, cache_control = def lock(codename, component = nil, architecture = nil, cache_control = nil) lockfile = Tempfile.new("lockfile") - lockfile_content = "#{Etc.getlogin}@#{Socket.gethostname}_#{SecureRandom.hex}" + # Write lock using a random number to ensure collisions dont occur from the same machine + lockfile_content = "#{Etc.getlogin}@#{Socket.gethostname}\n#{SecureRandom.hex}" lockfile.write lockfile_content lockfile.close @@ -49,7 +50,7 @@ def unlock(codename, component = nil, architecture = nil, cache_control = nil) def current(codename, component = nil, architecture = nil, cache_control = nil) lock_content = Deb::S3::Utils.s3_read(lock_path(codename, component, architecture, cache_control)) - lock_content = lock_content.split('_').first.split('@') + lock_content = lock_content.split.first.split('@') lock = Deb::S3::Lock.new lock.user = lock_content[0] lock.host = lock_content[1] if lock_content.size > 1 From 88c96d7291efa36854d40aee43e4ced3abca3181 Mon Sep 17 00:00:00 2001 From: Chris Tompkinson Date: Mon, 23 Jul 2018 11:34:29 +0100 Subject: [PATCH 07/10] Update tests to cover lockfile generate --- lib/deb/s3/lock.rb | 10 +++++++--- spec/deb/s3/lock_spec.rb | 24 +++++++++++++++++++----- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/lib/deb/s3/lock.rb b/lib/deb/s3/lock.rb index 34a7b92..d72f458 100644 --- a/lib/deb/s3/lock.rb +++ b/lib/deb/s3/lock.rb @@ -31,8 +31,8 @@ def lock(codename, component = nil, architecture = nil, cache_control = nil) lockfile = Tempfile.new("lockfile") # Write lock using a random number to ensure collisions dont occur from the same machine - lockfile_content = "#{Etc.getlogin}@#{Socket.gethostname}\n#{SecureRandom.hex}" - lockfile.write lockfile_content + lock_content = generate_lock_content + lockfile.write lock_content lockfile.close Deb::S3::Utils.s3_store(lockfile.path, @@ -40,7 +40,7 @@ def lock(codename, component = nil, architecture = nil, cache_control = nil) "text/plain", cache_control) - return if lockfile_content == Deb::S3::Utils.s3_read(lock_path(codename, component, architecture, cache_control)) + return if lock_content == Deb::S3::Utils.s3_read(lock_path(codename, component, architecture, cache_control)) throw "Failed to acquire lock, was overwritten by another deb-s3 process" end @@ -61,5 +61,9 @@ def current(codename, component = nil, architecture = nil, cache_control = nil) def lock_path(codename, component = nil, architecture = nil, cache_control = nil) "dists/#{codename}/#{component}/binary-#{architecture}/lockfile" end + + def generate_lock_content + "#{Etc.getlogin}@#{Socket.gethostname}\n#{SecureRandom.hex}" + end end end diff --git a/spec/deb/s3/lock_spec.rb b/spec/deb/s3/lock_spec.rb index f42f503..4c6133e 100644 --- a/spec/deb/s3/lock_spec.rb +++ b/spec/deb/s3/lock_spec.rb @@ -19,12 +19,26 @@ describe :lock do it 'creates a lock file' do - mock = MiniTest::Mock.new - mock.expect(:call, nil, 4.times.map {Object}) - Deb::S3::Utils.stub :s3_store, mock do - Deb::S3::Lock.lock("stable") + s3_store_mock = MiniTest::Mock.new + s3_store_mock.expect(:call, nil, 4.times.map {Object}) + + s3_read_mock = MiniTest::Mock.new + s3_read_mock.expect(:call, "foo@bar\nabcde", [String]) + + lock_content_mock = MiniTest::Mock.new + lock_content_mock.expect(:call, "foo@bar\nabcde") + + Deb::S3::Utils.stub :s3_store, s3_store_mock do + Deb::S3::Utils.stub :s3_read, s3_read_mock do + Deb::S3::Lock.stub :generate_lock_content, lock_content_mock do + Deb::S3::Lock.lock("stable") + end + end end - mock.verify + + s3_read_mock.verify + s3_store_mock.verify + lock_content_mock.verify end end From df4ef440b6279867d47f52cc0e41c0826616b87d Mon Sep 17 00:00:00 2001 From: Holden Omans Date: Fri, 17 Aug 2018 15:32:20 -0400 Subject: [PATCH 08/10] bug fixes --- lib/deb/s3/cli.rb | 2 +- lib/deb/s3/package.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/deb/s3/cli.rb b/lib/deb/s3/cli.rb index d9228d0..99fc262 100644 --- a/lib/deb/s3/cli.rb +++ b/lib/deb/s3/cli.rb @@ -515,7 +515,7 @@ def verify missing_packages = [] manifest.packages.each do |p| - unless Deb::S3::Utils.s3_exists? p.url_filename_encoded + unless Deb::S3::Utils.s3_exists? p.url_filename_encoded(options[:codename]) sublog("The following packages are missing:\n\n") if missing_packages.empty? puts(p.generate) puts("") diff --git a/lib/deb/s3/package.rb b/lib/deb/s3/package.rb index 3d6630c..293815b 100644 --- a/lib/deb/s3/package.rb +++ b/lib/deb/s3/package.rb @@ -135,7 +135,7 @@ def url_filename_encoded(codename) @url_filename || "pool/#{codename}/#{self.name[0]}/#{self.name[0..1]}/#{s3_escape(File.basename(self.filename))}" end - def generate(codename) + def generate(codename = nil) template("package.erb").result(binding) end From 1da132706aac0a23e4ce9c3ff199f547bb9bb8f8 Mon Sep 17 00:00:00 2001 From: Holden Omans Date: Fri, 17 Aug 2018 15:43:39 -0400 Subject: [PATCH 09/10] update gems and rakefile --- .gitignore | 2 ++ Gemfile.lock | 20 ++++++++++---------- Rakefile | 1 + 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 677c465..b50cf99 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ .bundle +pkg/*.gem +.idea \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 8e03320..a1473b8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,17 +8,17 @@ PATH GEM remote: https://rubygems.org/ specs: - aws-sdk (2.7.12) - aws-sdk-resources (= 2.7.12) - aws-sdk-core (2.7.12) + aws-sdk (2.11.110) + aws-sdk-resources (= 2.11.110) + aws-sdk-core (2.11.110) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.7.12) - aws-sdk-core (= 2.7.12) - aws-sigv4 (1.0.0) - jmespath (1.3.1) - minitest (5.0.8) - rake (11.1.2) + aws-sdk-resources (2.11.110) + aws-sdk-core (= 2.11.110) + aws-sigv4 (1.0.3) + jmespath (1.4.0) + minitest (5.11.3) + rake (11.3.0) thor (0.19.4) PLATFORMS @@ -30,4 +30,4 @@ DEPENDENCIES rake (~> 11) BUNDLED WITH - 1.15.4 + 1.16.3 diff --git a/Rakefile b/Rakefile index 79bf614..bc307c1 100644 --- a/Rakefile +++ b/Rakefile @@ -1,4 +1,5 @@ require 'rake/testtask' +require 'bundler/gem_tasks' Rake::TestTask.new do |t| t.pattern = "spec/**/*_spec.rb" From ceb9eca35521840535194afbb6129b574ee1bd93 Mon Sep 17 00:00:00 2001 From: Holden Omans Date: Fri, 28 Sep 2018 10:50:56 -0400 Subject: [PATCH 10/10] updated aws sdk --- Gemfile.lock | 599 ++++++++++++++++++++++++++++++++++++++++++++++++- deb-s3.gemspec | 2 +- 2 files changed, 593 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a1473b8..09e0e23 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,19 +2,604 @@ PATH remote: . specs: deb-s3 (0.10.0) - aws-sdk (~> 2) + aws-sdk (~> 3) thor (~> 0.19.0) GEM remote: https://rubygems.org/ specs: - aws-sdk (2.11.110) - aws-sdk-resources (= 2.11.110) - aws-sdk-core (2.11.110) + aws-eventstream (1.0.1) + aws-partitions (1.105.0) + aws-sdk (3.0.1) + aws-sdk-resources (~> 3) + aws-sdk-acm (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-acmpca (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-alexaforbusiness (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-apigateway (1.17.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-applicationautoscaling (1.13.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-applicationdiscoveryservice (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-appstream (1.15.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-appsync (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-athena (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-autoscaling (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-autoscalingplans (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-batch (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-budgets (1.10.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloud9 (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-clouddirectory (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudformation (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudfront (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudhsm (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudhsmv2 (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudsearch (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudsearchdomain (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudtrail (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudwatch (1.10.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudwatchevents (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cloudwatchlogs (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-codebuild (1.18.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-codecommit (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-codedeploy (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-codepipeline (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-codestar (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cognitoidentity (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cognitoidentityprovider (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-cognitosync (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-comprehend (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-configservice (1.16.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-connect (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-core (3.28.0) + aws-eventstream (~> 1.0) + aws-partitions (~> 1.0) aws-sigv4 (~> 1.0) jmespath (~> 1.0) - aws-sdk-resources (2.11.110) - aws-sdk-core (= 2.11.110) + aws-sdk-costandusagereportservice (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-costexplorer (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-databasemigrationservice (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-datapipeline (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-dax (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-devicefarm (1.10.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-directconnect (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-directoryservice (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-dlm (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-dynamodb (1.13.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-dynamodbstreams (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-ec2 (1.49.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-ecr (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-ecs (1.20.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-efs (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-eks (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-elasticache (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-elasticbeanstalk (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-elasticloadbalancing (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-elasticloadbalancingv2 (1.14.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-elasticsearchservice (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-elastictranscoder (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-emr (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-firehose (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-fms (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-gamelift (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-glacier (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-glue (1.17.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-greengrass (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-guardduty (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-health (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iam (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-importexport (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv2 (~> 1.0) + aws-sdk-inspector (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iot (1.15.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iot1clickdevicesservice (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iot1clickprojects (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iotanalytics (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iotdataplane (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-iotjobsdataplane (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-kinesis (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-kinesisanalytics (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-kinesisvideo (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-kinesisvideoarchivedmedia (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-kinesisvideomedia (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-kms (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-lambda (1.10.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-lambdapreview (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-lex (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-lexmodelbuildingservice (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-lightsail (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-machinelearning (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-macie (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-marketplacecommerceanalytics (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-marketplaceentitlementservice (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-marketplacemetering (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mediaconvert (1.13.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-medialive (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mediapackage (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mediastore (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mediastoredata (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mediatailor (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-migrationhub (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mobile (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mq (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-mturk (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-neptune (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-opsworks (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-opsworkscm (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-organizations (1.13.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-pi (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-pinpoint (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-polly (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-pricing (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-rds (1.32.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-redshift (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-rekognition (1.10.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-resourcegroups (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-resourcegroupstaggingapi (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-resources (3.25.0) + aws-sdk-acm (~> 1) + aws-sdk-acmpca (~> 1) + aws-sdk-alexaforbusiness (~> 1) + aws-sdk-apigateway (~> 1) + aws-sdk-applicationautoscaling (~> 1) + aws-sdk-applicationdiscoveryservice (~> 1) + aws-sdk-appstream (~> 1) + aws-sdk-appsync (~> 1) + aws-sdk-athena (~> 1) + aws-sdk-autoscaling (~> 1) + aws-sdk-autoscalingplans (~> 1) + aws-sdk-batch (~> 1) + aws-sdk-budgets (~> 1) + aws-sdk-cloud9 (~> 1) + aws-sdk-clouddirectory (~> 1) + aws-sdk-cloudformation (~> 1) + aws-sdk-cloudfront (~> 1) + aws-sdk-cloudhsm (~> 1) + aws-sdk-cloudhsmv2 (~> 1) + aws-sdk-cloudsearch (~> 1) + aws-sdk-cloudsearchdomain (~> 1) + aws-sdk-cloudtrail (~> 1) + aws-sdk-cloudwatch (~> 1) + aws-sdk-cloudwatchevents (~> 1) + aws-sdk-cloudwatchlogs (~> 1) + aws-sdk-codebuild (~> 1) + aws-sdk-codecommit (~> 1) + aws-sdk-codedeploy (~> 1) + aws-sdk-codepipeline (~> 1) + aws-sdk-codestar (~> 1) + aws-sdk-cognitoidentity (~> 1) + aws-sdk-cognitoidentityprovider (~> 1) + aws-sdk-cognitosync (~> 1) + aws-sdk-comprehend (~> 1) + aws-sdk-configservice (~> 1) + aws-sdk-connect (~> 1) + aws-sdk-costandusagereportservice (~> 1) + aws-sdk-costexplorer (~> 1) + aws-sdk-databasemigrationservice (~> 1) + aws-sdk-datapipeline (~> 1) + aws-sdk-dax (~> 1) + aws-sdk-devicefarm (~> 1) + aws-sdk-directconnect (~> 1) + aws-sdk-directoryservice (~> 1) + aws-sdk-dlm (~> 1) + aws-sdk-dynamodb (~> 1) + aws-sdk-dynamodbstreams (~> 1) + aws-sdk-ec2 (~> 1) + aws-sdk-ecr (~> 1) + aws-sdk-ecs (~> 1) + aws-sdk-efs (~> 1) + aws-sdk-eks (~> 1) + aws-sdk-elasticache (~> 1) + aws-sdk-elasticbeanstalk (~> 1) + aws-sdk-elasticloadbalancing (~> 1) + aws-sdk-elasticloadbalancingv2 (~> 1) + aws-sdk-elasticsearchservice (~> 1) + aws-sdk-elastictranscoder (~> 1) + aws-sdk-emr (~> 1) + aws-sdk-firehose (~> 1) + aws-sdk-fms (~> 1) + aws-sdk-gamelift (~> 1) + aws-sdk-glacier (~> 1) + aws-sdk-glue (~> 1) + aws-sdk-greengrass (~> 1) + aws-sdk-guardduty (~> 1) + aws-sdk-health (~> 1) + aws-sdk-iam (~> 1) + aws-sdk-importexport (~> 1) + aws-sdk-inspector (~> 1) + aws-sdk-iot (~> 1) + aws-sdk-iot1clickdevicesservice (~> 1) + aws-sdk-iot1clickprojects (~> 1) + aws-sdk-iotanalytics (~> 1) + aws-sdk-iotdataplane (~> 1) + aws-sdk-iotjobsdataplane (~> 1) + aws-sdk-kinesis (~> 1) + aws-sdk-kinesisanalytics (~> 1) + aws-sdk-kinesisvideo (~> 1) + aws-sdk-kinesisvideoarchivedmedia (~> 1) + aws-sdk-kinesisvideomedia (~> 1) + aws-sdk-kms (~> 1) + aws-sdk-lambda (~> 1) + aws-sdk-lambdapreview (~> 1) + aws-sdk-lex (~> 1) + aws-sdk-lexmodelbuildingservice (~> 1) + aws-sdk-lightsail (~> 1) + aws-sdk-machinelearning (~> 1) + aws-sdk-macie (~> 1) + aws-sdk-marketplacecommerceanalytics (~> 1) + aws-sdk-marketplaceentitlementservice (~> 1) + aws-sdk-marketplacemetering (~> 1) + aws-sdk-mediaconvert (~> 1) + aws-sdk-medialive (~> 1) + aws-sdk-mediapackage (~> 1) + aws-sdk-mediastore (~> 1) + aws-sdk-mediastoredata (~> 1) + aws-sdk-mediatailor (~> 1) + aws-sdk-migrationhub (~> 1) + aws-sdk-mobile (~> 1) + aws-sdk-mq (~> 1) + aws-sdk-mturk (~> 1) + aws-sdk-neptune (~> 1) + aws-sdk-opsworks (~> 1) + aws-sdk-opsworkscm (~> 1) + aws-sdk-organizations (~> 1) + aws-sdk-pi (~> 1) + aws-sdk-pinpoint (~> 1) + aws-sdk-polly (~> 1) + aws-sdk-pricing (~> 1) + aws-sdk-rds (~> 1) + aws-sdk-redshift (~> 1) + aws-sdk-rekognition (~> 1) + aws-sdk-resourcegroups (~> 1) + aws-sdk-resourcegroupstaggingapi (~> 1) + aws-sdk-route53 (~> 1) + aws-sdk-route53domains (~> 1) + aws-sdk-s3 (~> 1) + aws-sdk-sagemaker (~> 1) + aws-sdk-sagemakerruntime (~> 1) + aws-sdk-secretsmanager (~> 1) + aws-sdk-serverlessapplicationrepository (~> 1) + aws-sdk-servicecatalog (~> 1) + aws-sdk-servicediscovery (~> 1) + aws-sdk-ses (~> 1) + aws-sdk-shield (~> 1) + aws-sdk-signer (~> 1) + aws-sdk-simpledb (~> 1) + aws-sdk-sms (~> 1) + aws-sdk-snowball (~> 1) + aws-sdk-sns (~> 1) + aws-sdk-sqs (~> 1) + aws-sdk-ssm (~> 1) + aws-sdk-states (~> 1) + aws-sdk-storagegateway (~> 1) + aws-sdk-support (~> 1) + aws-sdk-swf (~> 1) + aws-sdk-transcribeservice (~> 1) + aws-sdk-translate (~> 1) + aws-sdk-waf (~> 1) + aws-sdk-wafregional (~> 1) + aws-sdk-workdocs (~> 1) + aws-sdk-workmail (~> 1) + aws-sdk-workspaces (~> 1) + aws-sdk-xray (~> 1) + aws-sdk-route53 (1.12.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-route53domains (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-s3 (1.20.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.0) + aws-sdk-sagemaker (1.18.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-sagemakerruntime (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-secretsmanager (1.15.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-serverlessapplicationrepository (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-servicecatalog (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-servicediscovery (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-ses (1.11.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-shield (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-signer (1.2.0) + aws-sdk-core (~> 3) + aws-sigv4 (~> 1.0) + aws-sdk-simpledb (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv2 (~> 1.0) + aws-sdk-sms (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-snowball (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-sns (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-sqs (1.7.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-ssm (1.26.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-states (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-storagegateway (1.9.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-support (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-swf (1.3.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-transcribeservice (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-translate (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-waf (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-wafregional (1.8.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-workdocs (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-workmail (1.4.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-workspaces (1.5.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sdk-xray (1.6.0) + aws-sdk-core (~> 3, >= 3.26.0) + aws-sigv4 (~> 1.0) + aws-sigv2 (1.0.1) aws-sigv4 (1.0.3) jmespath (1.4.0) minitest (5.11.3) @@ -30,4 +615,4 @@ DEPENDENCIES rake (~> 11) BUNDLED WITH - 1.16.3 + 1.16.4 diff --git a/deb-s3.gemspec b/deb-s3.gemspec index c08d096..ef9ab03 100644 --- a/deb-s3.gemspec +++ b/deb-s3.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = '>= 1.9.3' gem.add_dependency "thor", "~> 0.19.0" - gem.add_dependency "aws-sdk", "~> 2" + gem.add_dependency "aws-sdk", "~> 3" gem.add_development_dependency "minitest", "~> 5" gem.add_development_dependency "rake", "~> 11" end