Commit de0bc5d9 authored by Thong Kuah's avatar Thong Kuah

Merge branch '10io-add-deleted-tags-count-to-cleanup-policy-worker-done-message' into 'master'

Cleanup policies: log the number of tags deleted

See merge request gitlab-org/gitlab!54243
parents 774a38ed 83f2a4d8
...@@ -4,7 +4,7 @@ module ContainerExpirationPolicies ...@@ -4,7 +4,7 @@ module ContainerExpirationPolicies
class CleanupService class CleanupService
attr_reader :repository attr_reader :repository
SERVICE_RESULT_FIELDS = %i[original_size before_truncate_size after_truncate_size before_delete_size].freeze SERVICE_RESULT_FIELDS = %i[original_size before_truncate_size after_truncate_size before_delete_size deleted_size].freeze
def initialize(repository) def initialize(repository)
@repository = repository @repository = repository
......
...@@ -25,6 +25,7 @@ module Projects ...@@ -25,6 +25,7 @@ module Projects
result[:before_truncate_size] = before_truncate_size result[:before_truncate_size] = before_truncate_size
result[:after_truncate_size] = after_truncate_size result[:after_truncate_size] = after_truncate_size
result[:before_delete_size] = tags.size result[:before_delete_size] = tags.size
result[:deleted_size] = result[:deleted]&.size
result[:status] = :error if before_truncate_size != after_truncate_size result[:status] = :error if before_truncate_size != after_truncate_size
end end
......
...@@ -18,6 +18,7 @@ module ContainerExpirationPolicies ...@@ -18,6 +18,7 @@ module ContainerExpirationPolicies
cleanup_tags_service_before_truncate_size cleanup_tags_service_before_truncate_size
cleanup_tags_service_after_truncate_size cleanup_tags_service_after_truncate_size
cleanup_tags_service_before_delete_size cleanup_tags_service_before_delete_size
cleanup_tags_service_deleted_size
].freeze ].freeze
def perform_work def perform_work
...@@ -117,6 +118,7 @@ module ContainerExpirationPolicies ...@@ -117,6 +118,7 @@ module ContainerExpirationPolicies
after_truncate_size && after_truncate_size &&
before_truncate_size != after_truncate_size before_truncate_size != after_truncate_size
log_extra_metadata_on_done(:cleanup_tags_service_truncated, !!truncated) log_extra_metadata_on_done(:cleanup_tags_service_truncated, !!truncated)
log_extra_metadata_on_done(:running_jobs_count, running_jobs_count)
end end
end end
end end
...@@ -61,7 +61,8 @@ RSpec.describe ContainerExpirationPolicies::CleanupService do ...@@ -61,7 +61,8 @@ RSpec.describe ContainerExpirationPolicies::CleanupService do
original_size: 1000, original_size: 1000,
before_truncate_size: 800, before_truncate_size: 800,
after_truncate_size: 200, after_truncate_size: 200,
before_delete_size: 100 before_delete_size: 100,
deleted_size: 100
} }
end end
...@@ -77,7 +78,8 @@ RSpec.describe ContainerExpirationPolicies::CleanupService do ...@@ -77,7 +78,8 @@ RSpec.describe ContainerExpirationPolicies::CleanupService do
cleanup_tags_service_original_size: 1000, cleanup_tags_service_original_size: 1000,
cleanup_tags_service_before_truncate_size: 800, cleanup_tags_service_before_truncate_size: 800,
cleanup_tags_service_after_truncate_size: 200, cleanup_tags_service_after_truncate_size: 200,
cleanup_tags_service_before_delete_size: 100 cleanup_tags_service_before_delete_size: 100,
cleanup_tags_service_deleted_size: 100
) )
expect(ContainerRepository.waiting_for_cleanup.count).to eq(1) expect(ContainerRepository.waiting_for_cleanup.count).to eq(1)
expect(repository.reload.cleanup_unfinished?).to be_truthy expect(repository.reload.cleanup_unfinished?).to be_truthy
......
...@@ -284,7 +284,7 @@ RSpec.describe Projects::ContainerRepository::CleanupTagsService do ...@@ -284,7 +284,7 @@ RSpec.describe Projects::ContainerRepository::CleanupTagsService do
deleted: nil deleted: nil
) )
expect(result).to eq(service_response.compact) expect(result).to eq(service_response)
end end
end end
...@@ -369,6 +369,6 @@ RSpec.describe Projects::ContainerRepository::CleanupTagsService do ...@@ -369,6 +369,6 @@ RSpec.describe Projects::ContainerRepository::CleanupTagsService do
before_truncate_size: before_truncate_size, before_truncate_size: before_truncate_size,
after_truncate_size: after_truncate_size, after_truncate_size: after_truncate_size,
before_delete_size: before_delete_size before_delete_size: before_delete_size
}.compact }.compact.merge(deleted_size: deleted&.size)
end end
end end
...@@ -199,7 +199,7 @@ RSpec.describe ContainerExpirationPolicies::CleanupContainerRepositoryWorker do ...@@ -199,7 +199,7 @@ RSpec.describe ContainerExpirationPolicies::CleanupContainerRepositoryWorker do
end end
end end
def cleanup_service_response(status: :finished, repository:, cleanup_tags_service_original_size: 100, cleanup_tags_service_before_truncate_size: 80, cleanup_tags_service_after_truncate_size: 80, cleanup_tags_service_before_delete_size: 50) def cleanup_service_response(status: :finished, repository:, cleanup_tags_service_original_size: 100, cleanup_tags_service_before_truncate_size: 80, cleanup_tags_service_after_truncate_size: 80, cleanup_tags_service_before_delete_size: 50, cleanup_tags_service_deleted_size: 50)
ServiceResponse.success( ServiceResponse.success(
message: "cleanup #{status}", message: "cleanup #{status}",
payload: { payload: {
...@@ -218,11 +218,12 @@ RSpec.describe ContainerExpirationPolicies::CleanupContainerRepositoryWorker do ...@@ -218,11 +218,12 @@ RSpec.describe ContainerExpirationPolicies::CleanupContainerRepositoryWorker do
expect(worker).to receive(:log_extra_metadata_on_done).with(:project_id, repository.project.id) expect(worker).to receive(:log_extra_metadata_on_done).with(:project_id, repository.project.id)
expect(worker).to receive(:log_extra_metadata_on_done).with(:cleanup_status, cleanup_status) expect(worker).to receive(:log_extra_metadata_on_done).with(:cleanup_status, cleanup_status)
%i[cleanup_tags_service_original_size cleanup_tags_service_before_truncate_size cleanup_tags_service_after_truncate_size cleanup_tags_service_before_delete_size].each do |field| %i[cleanup_tags_service_original_size cleanup_tags_service_before_truncate_size cleanup_tags_service_after_truncate_size cleanup_tags_service_before_delete_size cleanup_tags_service_deleted_size].each do |field|
value = service_response.payload[field] value = service_response.payload[field]
expect(worker).to receive(:log_extra_metadata_on_done).with(field, value) unless value.nil? expect(worker).to receive(:log_extra_metadata_on_done).with(field, value) unless value.nil?
end end
expect(worker).to receive(:log_extra_metadata_on_done).with(:cleanup_tags_service_truncated, truncated) expect(worker).to receive(:log_extra_metadata_on_done).with(:cleanup_tags_service_truncated, truncated)
expect(worker).to receive(:log_extra_metadata_on_done).with(:running_jobs_count, 0)
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment