Skip to content
This repository was archived by the owner on Jun 2, 2021. It is now read-only.

Commit ae1e11e

Browse files
matt-royaltcdowney
andcommitted
CCNG can delete packages in an image registry
This affects the various endpoints that can delete a package. [#175080280] Co-authored-by: Matt Royal <mroyal@pivotal.io> Co-authored-by: Tim Downey <tdowney@vmware.com>
1 parent d622d92 commit ae1e11e

2 files changed

Lines changed: 40 additions & 14 deletions

File tree

app/actions/package_delete.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@ def delete(packages)
88
packages = Array(packages)
99

1010
packages.each do |package|
11-
blobstore_delete = Jobs::Runtime::BlobstoreDelete.new(package.guid, :package_blobstore)
12-
Jobs::Enqueuer.new(blobstore_delete, queue: Jobs::Queues.generic).enqueue
11+
package_delete = if VCAP::CloudController::Config.config.package_image_registry_configured?
12+
Jobs::Kubernetes::RegistryDelete.new(package.bits_image_reference)
13+
else
14+
Jobs::Runtime::BlobstoreDelete.new(package.guid, :package_blobstore)
15+
end
16+
Jobs::Enqueuer.new(package_delete, queue: Jobs::Queues.generic).enqueue
1317
package.destroy
1418

1519
Repositories::PackageEventRepository.record_app_package_delete(

spec/unit/actions/package_delete_spec.rb

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,41 @@ module VCAP::CloudController
1919
expect { package.refresh }.to raise_error Sequel::Error, 'Record not found'
2020
end
2121

22-
it 'schedules a job to the delete the blobstore item' do
23-
expect {
24-
package_delete.delete(package)
25-
}.to change {
26-
Delayed::Job.count
27-
}.by(1)
22+
context 'when using a package registry' do
23+
before do
24+
TestConfig.override(packages: { image_registry: { base_path: 'hub.example.com/user' } })
25+
end
26+
27+
it 'schedules a job to the delete the blobstore item' do
28+
expect {
29+
package_delete.delete(package)
30+
}.to change {
31+
Delayed::Job.count
32+
}.by(1)
33+
34+
job = Delayed::Job.last
35+
expect(job.handler).to include('VCAP::CloudController::Jobs::Kubernetes::RegistryDelete')
36+
expect(job.handler).to include(package.bits_image_reference)
37+
expect(job.queue).to eq(Jobs::Queues.generic)
38+
expect(job.guid).not_to be_nil
39+
end
40+
end
41+
42+
context 'when not using a package registry' do
43+
it 'schedules a job to the delete the blobstore item' do
44+
expect {
45+
package_delete.delete(package)
46+
}.to change {
47+
Delayed::Job.count
48+
}.by(1)
2849

29-
job = Delayed::Job.last
30-
expect(job.handler).to include('VCAP::CloudController::Jobs::Runtime::BlobstoreDelete')
31-
expect(job.handler).to include("key: #{package.guid}")
32-
expect(job.handler).to include('package_blobstore')
33-
expect(job.queue).to eq(Jobs::Queues.generic)
34-
expect(job.guid).not_to be_nil
50+
job = Delayed::Job.last
51+
expect(job.handler).to include('VCAP::CloudController::Jobs::Runtime::BlobstoreDelete')
52+
expect(job.handler).to include("key: #{package.guid}")
53+
expect(job.handler).to include('package_blobstore')
54+
expect(job.queue).to eq(Jobs::Queues.generic)
55+
expect(job.guid).not_to be_nil
56+
end
3557
end
3658

3759
it 'creates an v3 audit event' do

0 commit comments

Comments
 (0)