Skip to content

Commit ff727cd

Browse files
committed
Fix broken specs after fog-aws removal
Replace obsolete FogClient/fog_connection test setup with LocalClient and blobstore_type: 'local'. Job and controller specs that used FogClient as a test double now use LocalClient directly; config-based specs switch from fog_connection to blobstore_type/local_blobstore_path. Remove Fog::Mock.reset calls that are no longer needed. Delete fog_client_spec.rb — it tested the deprecated FogClient which requires fog provider gems no longer bundled. * Tests were broken because fog-aws removal left no registered fog provider, so Fog::Storage.new(provider: ...) raised ArgumentError at runtime. * Blobstore behavior under test is the job/controller logic, not fog internals, so LocalClient is the right substitute.
1 parent 2b0f11e commit ff727cd

12 files changed

Lines changed: 38 additions & 781 deletions

File tree

lib/cloud_controller/blobstore/fog/fog_client.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ def initialize(connection_config:,
2323
root_dir: nil,
2424
min_size: nil,
2525
max_size: nil)
26-
)
2726
@root_dir = root_dir
2827
@connection_config = connection_config
2928
@directory_key = directory_key

spec/api/documentation/buildpack_cache_api_spec.rb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
external_port: cc_port,
1717
droplets: {
1818
droplet_directory_key: 'cc-droplets',
19-
fog_connection: {
20-
provider: 'local'
21-
}
19+
blobstore_type: 'local',
20+
local_blobstore_path: Dir.mktmpdir('droplets', workspace)
2221
},
2322
directories: {
2423
tmpdir: Dir.mktmpdir('tmpdir', workspace)
@@ -30,11 +29,9 @@
3029

3130
before do
3231
TestConfig.override(**blobstore_config)
33-
CloudController::DependencyLocator.instance.buildpack_cache_blobstore.ensure_bucket_exists
3432
end
3533

3634
after do
37-
Fog::Mock.reset
3835
FileUtils.rm_rf(workspace)
3936
end
4037

spec/support/shared_examples/controllers/resource_pool.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
@nonexisting_descriptor = { 'sha1' => Digester.new.digest('abc'), 'size' => 1, 'mode' => '666' }
1212
@tmpdir = Dir.mktmpdir
13+
@resource_pool_blobstore_path = Dir.mktmpdir
1314

1415
@descriptors = []
1516
num_dirs.times do
@@ -34,16 +35,15 @@
3435
File.write("#{path}-not-allowed", 'A' * @max_file_size)
3536
end
3637
end
37-
38-
Fog.mock!
3938
end
4039

4140
let(:resource_pool_config) do
4241
{
4342
maximum_size: maximum_file_size,
4443
minimum_size: minimum_file_size,
4544
resource_directory_key: 'spec-cc-resources',
46-
fog_connection: {}
45+
blobstore_type: 'local',
46+
local_blobstore_path: @resource_pool_blobstore_path
4747
}
4848
end
4949

@@ -59,5 +59,6 @@
5959

6060
after(:all) do
6161
FileUtils.rm_rf(@tmpdir)
62+
FileUtils.rm_rf(@resource_pool_blobstore_path)
6263
end
6364
end

spec/unit/controllers/internal/download_droplets_controller_spec.rb

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,18 @@
55
module VCAP::CloudController
66
RSpec.describe DownloadDropletsController do
77
describe 'GET /internal/v2/droplets/:guid/:droplet_hash/download' do
8+
let(:workspace) { Dir.mktmpdir }
89
let(:original_staging_config) do
910
{
1011
packages: {
11-
fog_connection: {
12-
provider: 'local'
13-
},
12+
blobstore_type: 'local',
13+
local_blobstore_path: Dir.mktmpdir('packages', workspace),
1414
app_package_directory_key: 'cc-packages'
1515
},
1616
droplets: {
1717
droplet_directory_key: 'cc-droplets',
18-
fog_connection: {
19-
provider: 'local'
20-
}
18+
blobstore_type: 'local',
19+
local_blobstore_path: Dir.mktmpdir('droplets', workspace)
2120
}
2221
}
2322
end
@@ -32,10 +31,9 @@ module VCAP::CloudController
3231

3332
before do
3433
TestConfig.override(**staging_config)
35-
blobstore.ensure_bucket_exists
3634
end
3735

38-
after { Fog::Mock.reset }
36+
after { FileUtils.rm_rf(workspace) }
3937

4038
def get_and_redirect(url)
4139
get url
@@ -93,19 +91,18 @@ def upload_droplet
9391
end
9492

9593
describe 'GET /internal/v4/droplets/:guid/:droplet_hash/download' do
94+
let(:workspace) { Dir.mktmpdir }
9695
let(:original_staging_config) do
9796
{
9897
packages: {
99-
fog_connection: {
100-
provider: 'local'
101-
},
98+
blobstore_type: 'local',
99+
local_blobstore_path: Dir.mktmpdir('packages', workspace),
102100
app_package_directory_key: 'cc-packages'
103101
},
104102
droplets: {
105103
droplet_directory_key: 'cc-droplets',
106-
fog_connection: {
107-
provider: 'local'
108-
}
104+
blobstore_type: 'local',
105+
local_blobstore_path: Dir.mktmpdir('droplets', workspace)
109106
}
110107
}
111108
end
@@ -120,10 +117,9 @@ def upload_droplet
120117

121118
before do
122119
TestConfig.override(**staging_config)
123-
blobstore.ensure_bucket_exists
124120
end
125121

126-
after { Fog::Mock.reset }
122+
after { FileUtils.rm_rf(workspace) }
127123

128124
def upload_droplet(target_droplet=droplet)
129125
droplet_file = Tempfile.new(v3_app.guid)

spec/unit/controllers/runtime/stagings_controller_spec.rb

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -197,21 +197,18 @@ module VCAP::CloudController
197197
nginx: { use_nginx: true },
198198
resource_pool: {
199199
resource_directory_key: 'cc-resources',
200-
fog_connection: {
201-
provider: 'local'
202-
}
200+
blobstore_type: 'local',
201+
local_blobstore_path: Dir.mktmpdir('resource_pool', workspace)
203202
},
204203
packages: {
205-
fog_connection: {
206-
provider: 'local'
207-
},
204+
blobstore_type: 'local',
205+
local_blobstore_path: Dir.mktmpdir('packages', workspace),
208206
app_package_directory_key: 'cc-packages'
209207
},
210208
droplets: {
211209
droplet_directory_key: 'cc-droplets',
212-
fog_connection: {
213-
provider: 'local'
214-
}
210+
blobstore_type: 'local',
211+
local_blobstore_path: Dir.mktmpdir('droplets', workspace)
215212
},
216213
directories: {
217214
tmpdir: Dir.mktmpdir('tmpdir', workspace)
@@ -238,7 +235,6 @@ module VCAP::CloudController
238235
end
239236

240237
after do
241-
Fog::Mock.reset
242238
FileUtils.rm_rf(workspace)
243239
end
244240

spec/unit/jobs/runtime/buildpack_cache_cleanup_spec.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ module Jobs::Runtime
1717
tls_port: cc_port,
1818
droplets: {
1919
droplet_directory_key: 'cc-droplets',
20-
fog_connection: {
21-
provider: 'local'
22-
}
20+
blobstore_type: 'local',
21+
local_blobstore_path: Dir.mktmpdir('droplets', workspace)
2322
},
2423
directories: {
2524
tmpdir: Dir.mktmpdir('tmpdir', workspace)
@@ -49,7 +48,6 @@ module Jobs::Runtime
4948

5049
after do
5150
FileUtils.rm_rf(workspace)
52-
Fog::Mock.reset
5351
end
5452

5553
it 'deletes everything from the buildpack_cache directory' do

spec/unit/jobs/v3/buildpack_cache_cleanup_spec.rb

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,8 @@ module Jobs::V3
1717
tls_port: cc_port,
1818
droplets: {
1919
droplet_directory_key: 'cc-droplets',
20-
fog_connection: {
21-
provider: 'local'
22-
}
20+
blobstore_type: 'local',
21+
local_blobstore_path: Dir.mktmpdir('droplets', workspace)
2322
},
2423
directories: {
2524
tmpdir: Dir.mktmpdir('tmpdir', workspace)
@@ -49,7 +48,6 @@ module Jobs::V3
4948

5049
after do
5150
FileUtils.rm_rf(workspace)
52-
Fog::Mock.reset
5351
end
5452

5553
it 'deletes everything from the buildpack_cache directory' do

spec/unit/jobs/v3/buildpack_cache_delete_spec.rb

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ module Jobs::V3
66
RSpec.describe BuildpackCacheDelete, job_context: :worker do
77
let(:app_guid) { 'some-guid' }
88
let!(:blobstore) do
9-
CloudController::Blobstore::FogClient.new(connection_config: { provider: 'local' },
10-
directory_key: 'directory_key')
9+
CloudController::Blobstore::LocalClient.new(directory_key: 'directory_key', base_path: Dir.mktmpdir)
1110
end
1211
let(:path_1) { Presenters::V3::CacheKeyPresenter.cache_key(guid: app_guid, stack_name: 'stack1') }
1312
let(:path_2) { Presenters::V3::CacheKeyPresenter.cache_key(guid: app_guid, stack_name: 'stack2') }
1413
let(:path_3) { Presenters::V3::CacheKeyPresenter.cache_key(guid: 'other-guid', stack_name: 'stack3') }
1514

1615
before do
17-
blobstore.ensure_bucket_exists
1816
Tempfile.create('cache_file') do |f|
1917
allow(CloudController::DependencyLocator.instance).to receive(:buildpack_cache_blobstore).and_return(blobstore)
2018
blobstore.cp_to_blobstore(f.path, path_1)
@@ -23,10 +21,6 @@ module Jobs::V3
2321
end
2422
end
2523

26-
after do
27-
Fog::Mock.reset
28-
end
29-
3024
subject(:job) { BuildpackCacheDelete.new(app_guid) }
3125

3226
it { is_expected.to be_a_valid_job }

spec/unit/jobs/v3/droplet_bits_copier_spec.rb

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,11 @@ module Jobs::V3
77

88
let(:droplet_bits_path) { File.expand_path('../../../fixtures/good.zip', File.dirname(__FILE__)) }
99
let(:droplet_blobstore) do
10-
CloudController::Blobstore::FogClient.new(connection_config: { provider: 'local' },
11-
directory_key: 'droplet')
10+
CloudController::Blobstore::LocalClient.new(directory_key: 'droplet', base_path: Dir.mktmpdir)
1211
end
1312
let(:source_droplet) { create(:droplet_model, droplet_hash: 'abcdef1234', sha256_checksum: '4321fedcba', state: DropletModel::STAGED_STATE, set_as_current_droplet: false) }
1413
let(:destination_droplet) { create(:droplet_model, droplet_hash: nil, sha256_checksum: nil, state: DropletModel::STAGING_STATE, set_as_current_droplet: false) }
1514

16-
before do
17-
droplet_blobstore.ensure_bucket_exists
18-
end
19-
20-
after do
21-
Fog::Mock.reset
22-
end
23-
2415
it { is_expected.to be_a_valid_job }
2516

2617
it 'knows its job name' do

spec/unit/jobs/v3/package_bits_copier_spec.rb

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,11 @@ module Jobs::V3
77

88
let(:package_bits_path) { File.expand_path('../../../fixtures/good.zip', File.dirname(__FILE__)) }
99
let(:package_blobstore) do
10-
CloudController::Blobstore::FogClient.new(connection_config: { provider: 'local' },
11-
directory_key: 'package')
10+
CloudController::Blobstore::LocalClient.new(directory_key: 'package', base_path: Dir.mktmpdir)
1211
end
1312
let(:source_package) { create(:package_model, type: 'bits', package_hash: 'something', sha256_checksum: 'sha256') }
1413
let(:destination_package) { create(:package_model, type: 'bits') }
1514

16-
before do
17-
package_blobstore.ensure_bucket_exists
18-
end
19-
20-
after do
21-
Fog::Mock.reset
22-
end
23-
2415
it { is_expected.to be_a_valid_job }
2516

2617
describe '#perform' do

0 commit comments

Comments
 (0)