diff --git a/Gemfile b/Gemfile index 6da8011cfce..22f3852df78 100644 --- a/Gemfile +++ b/Gemfile @@ -63,6 +63,7 @@ gem 'fog-azure-rm', git: 'https://github.com/fog/fog-azure-rm.git', branch: 'fog gem 'fog-google', '~> 1.18.0' gem 'fog-local' gem 'fog-openstack' +gem 'fog-core', '~> 2.1.2' gem 'cf-uaa-lib', '~> 4.0.1' gem 'vcap-concurrency', git: 'https://github.com/cloudfoundry/vcap-concurrency.git', ref: '2a5b0179' diff --git a/Gemfile.lock b/Gemfile.lock index 1d46e85cff6..de770c7730f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,8 @@ GIT branch: fog-arm-cf specs: fog-azure-rm (0.4.7) - azure-storage (>= 0.11.5.preview, < 1.0) + azure-storage-blob (~> 1.1) + azure-storage-common (~> 1.1) azure_mgmt_compute (~> 0.9.0) azure_mgmt_dns (~> 0.9.0) azure_mgmt_key_vault (~> 0.9.0) @@ -20,8 +21,8 @@ GIT azure_mgmt_sql (~> 0.9.0) azure_mgmt_storage (~> 0.9.0) azure_mgmt_traffic_manager (~> 0.9.0) - fog-core (~> 1.43) - fog-json (~> 1.0.2) + fog-core (>= 1.43) + fog-json (>= 1.0.2) mime-types (~> 3.0) vhd (= 0.0.4) @@ -79,7 +80,7 @@ GEM i18n ast (2.4.2) awesome_print (1.9.2) - azure-core (0.1.14) + azure-core (0.1.15) faraday (~> 0.9) faraday_middleware (~> 0.10) nokogiri (~> 1.6) @@ -88,6 +89,13 @@ GEM faraday (~> 0.9) faraday_middleware (~> 0.10) nokogiri (~> 1.6, >= 1.6.8) + azure-storage-blob (1.1.0) + azure-core (~> 0.1.13) + azure-storage-common (~> 1.0) + nokogiri (~> 1.6, >= 1.6.8) + azure-storage-common (1.1.0) + azure-core (~> 0.1.13) + nokogiri (~> 1.6, >= 1.6.8) azure_mgmt_compute (0.9.0) ms_rest_azure (~> 0.7.0) azure_mgmt_dns (0.9.0) @@ -107,7 +115,7 @@ GEM backport (1.2.0) beefcake (1.0.0) benchmark (0.2.0) - bit-struct (0.16) + bit-struct (0.17) bits_service_client (3.4.0) activesupport statsd-ruby (~> 1.4.0) @@ -136,8 +144,7 @@ GEM debase (0.2.5.beta2) debase-ruby_core_source (>= 0.10.12) debase-ruby_core_source (0.10.12) - declarative (0.0.10) - declarative-option (0.1.0) + declarative (0.0.20) delayed_job (4.1.9) activesupport (>= 3.0, < 6.2) diff-lcs (1.5.0) @@ -158,10 +165,10 @@ GEM excon (0.91.0) faraday (0.17.4) multipart-post (>= 1.2, < 3) - faraday-cookie_jar (0.0.6) - faraday (>= 0.7.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) http-cookie (~> 1.0.0) - faraday_middleware (0.12.2) + faraday_middleware (0.14.0) faraday (>= 0.7.4, < 1.0) ffi (1.15.5) ffi-compiler (1.0.1) @@ -175,30 +182,31 @@ GEM fog-json ipaddress (~> 0.8) xml-simple (~> 1.1) - fog-aws (2.0.1) - fog-core (~> 1.38) - fog-json (~> 1.0) + fog-aws (3.12.0) + fog-core (~> 2.1) + fog-json (~> 1.1) fog-xml (~> 0.1) ipaddress (~> 0.8) - fog-core (1.45.0) + fog-core (2.1.2) builder excon (~> 0.58) formatador (~> 0.2) + mime-types fog-google (1.7.1) fog-core fog-json fog-xml google-api-client (~> 0.23.0) - fog-json (1.0.2) - fog-core (~> 1.0) + fog-json (1.2.0) + fog-core multi_json (~> 1.10) fog-local (0.8.0) fog-core (>= 1.27, < 3.0) - fog-openstack (0.3.10) - fog-core (>= 1.45, <= 2.1.0) + fog-openstack (1.0.11) + fog-core (~> 2.1) fog-json (>= 1.0) ipaddress (>= 0.8) - fog-xml (0.1.3) + fog-xml (0.1.4) fog-core nokogiri (>= 1.5.11, < 2.0.0) formatador (0.3.0) @@ -262,7 +270,7 @@ GEM json_pure (2.6.1) jsonpath (1.1.0) multi_json - jwt (2.2.1) + jwt (2.3.0) kramdown (2.3.1) rexml kramdown-parser-gfm (1.1.0) @@ -286,12 +294,12 @@ GEM nokogiri (>= 1.5.9) machinist (1.0.6) membrane (1.1.0) - memoist (0.16.0) + memoist (0.16.2) method_source (1.0.0) middleware (0.1.0) mime-types (3.4.1) mime-types-data (~> 3.2015) - mime-types-data (3.2021.1115) + mime-types-data (3.2022.0105) mini_portile2 (2.7.1) minitest (5.15.0) ms_rest (0.6.4) @@ -323,7 +331,7 @@ GEM nokogiri (1.13.1-x86_64-linux) racc (~> 1.4) oj (3.13.11) - os (1.0.1) + os (1.1.4) palm_civet (1.1.0) parallel (1.21.0) parallel_tests (3.7.3) @@ -368,9 +376,9 @@ GEM ffi (~> 1.0) recursive-open-struct (1.1.3) regexp_parser (2.2.0) - representable (3.0.4) + representable (3.1.1) declarative (< 0.1.0) - declarative-option (< 0.2.0) + trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) rest-client (2.1.0) http-accept (>= 1.7.0, < 2.0) @@ -442,9 +450,9 @@ GEM pg (>= 0.18.0, != 1.2.0) sequel (>= 4.38.0) sexp_processor (4.7.0) - signet (0.11.0) - addressable (~> 2.3) - faraday (~> 0.9) + signet (0.16.0) + addressable (~> 2.8) + faraday (>= 0.17.3, < 2.0) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) simplecov (0.13.0) @@ -497,7 +505,8 @@ GEM thread_safe (0.3.6) tilt (2.0.10) timecop (0.9.4) - timeliness (0.3.10) + timeliness (0.4.4) + trailblazer-option (0.1.2) tzinfo (2.0.4) concurrent-ruby (~> 1.0) uber (0.1.0) @@ -550,6 +559,7 @@ DEPENDENCIES fog-aws fog-azure-rm! fog-google (~> 1.7.1) + fog-core (~> 2.1.2) fog-local fog-openstack googleapis-common-protos (>= 1.3.12) diff --git a/lib/cloud_controller/blobstore/fog/fog_client.rb b/lib/cloud_controller/blobstore/fog/fog_client.rb index 894ce624f81..d2fdfe04e86 100644 --- a/lib/cloud_controller/blobstore/fog/fog_client.rb +++ b/lib/cloud_controller/blobstore/fog/fog_client.rb @@ -114,7 +114,7 @@ def blob(key) end def files_for(prefix, _ignored_directory_prefixes=[]) - if connection.is_a? Fog::Storage::Local::Real + if connection.is_a? Fog::Local::Storage::Real directory = connection.directories.get(File.join(dir.key, prefix || '')) directory ? directory.files : [] else @@ -126,7 +126,7 @@ def ensure_bucket_exists return if local? options = { max_keys: 1 } - options['limit'] = 1 if connection.service == Fog::Storage::OpenStack + options['limit'] = 1 if connection.service == Fog::OpenStack::Storage connection.directories.get(@directory_key, options) || connection.directories.create(key: @directory_key, public: false) end diff --git a/lib/cloud_controller/blobstore/fog/providers.rb b/lib/cloud_controller/blobstore/fog/providers.rb index ad21e49b0ad..a6b23fecd12 100644 --- a/lib/cloud_controller/blobstore/fog/providers.rb +++ b/lib/cloud_controller/blobstore/fog/providers.rb @@ -1,6 +1,19 @@ +require 'fog/core' + +# This can be removed once fog-google fixes +# https://github.com/fog/fog-google/issues/421, which will allow us to upgrade +# fog-core to 2.2.4. +original = Fog::Logger[:deprecation] +Fog::Logger[:deprecation] = nil + require 'fog/aliyun' +# Hack until https://github.com/fog/fog-aliyun/pull/155 is merged and released +Fog::Aliyun::Compute = Fog::Compute::Aliyun + require 'fog/aws' require 'fog/local' require 'fog/google' require 'fog/azurerm' require 'fog/openstack' + +Fog::Logger[:deprecation] = original diff --git a/spec/unit/lib/cloud_controller/blobstore/fog/fog_client_spec.rb b/spec/unit/lib/cloud_controller/blobstore/fog/fog_client_spec.rb index 82272304887..82398dbd4af 100644 --- a/spec/unit/lib/cloud_controller/blobstore/fog/fog_client_spec.rb +++ b/spec/unit/lib/cloud_controller/blobstore/fog/fog_client_spec.rb @@ -729,21 +729,21 @@ def upload_tmpfile(client, key='abcdef') end it 'gets the bucket' do - expect_any_instance_of(Fog::Storage::AWS::Directories).to receive(:get).with(directory_key, max_keys: 1) + expect_any_instance_of(Fog::AWS::Storage::Directories).to receive(:get).with(directory_key, max_keys: 1) subject.ensure_bucket_exists end context 'the bucket exists' do it 'does not create the bucket' do subject.ensure_bucket_exists - expect_any_instance_of(Fog::Storage::AWS::Directories).not_to receive(:create).with(key: directory_key, public: false) + expect_any_instance_of(Fog::AWS::Storage::Directories).not_to receive(:create).with(key: directory_key, public: false) subject.ensure_bucket_exists end end context 'the bucket does not exist' do it 'creates the bucket' do - expect_any_instance_of(Fog::Storage::AWS::Directories).to receive(:create).with(key: directory_key, public: false) + expect_any_instance_of(Fog::AWS::Storage::Directories).to receive(:create).with(key: directory_key, public: false) subject.ensure_bucket_exists end end