summaryrefslogtreecommitdiff
path: root/app/services/container_expiration_policies/cleanup_service.rb
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2021-01-20 13:34:23 -0600
committerRobert Speicher <rspeicher@gmail.com>2021-01-20 13:34:23 -0600
commit6438df3a1e0fb944485cebf07976160184697d72 (patch)
tree00b09bfd170e77ae9391b1a2f5a93ef6839f2597 /app/services/container_expiration_policies/cleanup_service.rb
parent42bcd54d971da7ef2854b896a7b34f4ef8601067 (diff)
downloadgitlab-ce-6438df3a1e0fb944485cebf07976160184697d72.tar.gz
Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42
Diffstat (limited to 'app/services/container_expiration_policies/cleanup_service.rb')
-rw-r--r--app/services/container_expiration_policies/cleanup_service.rb23
1 files changed, 17 insertions, 6 deletions
diff --git a/app/services/container_expiration_policies/cleanup_service.rb b/app/services/container_expiration_policies/cleanup_service.rb
index 4719c99af6d..b9e623e2e07 100644
--- a/app/services/container_expiration_policies/cleanup_service.rb
+++ b/app/services/container_expiration_policies/cleanup_service.rb
@@ -4,6 +4,8 @@ module ContainerExpirationPolicies
class CleanupService
attr_reader :repository
+ SERVICE_RESULT_FIELDS = %i[original_size before_truncate_size after_truncate_size before_delete_size].freeze
+
def initialize(repository)
@repository = repository
end
@@ -13,28 +15,37 @@ module ContainerExpirationPolicies
repository.start_expiration_policy!
- result = Projects::ContainerRepository::CleanupTagsService
+ service_result = Projects::ContainerRepository::CleanupTagsService
.new(project, nil, policy_params.merge('container_expiration_policy' => true))
.execute(repository)
- if result[:status] == :success
+ if service_result[:status] == :success
repository.update!(
expiration_policy_cleanup_status: :cleanup_unscheduled,
expiration_policy_started_at: nil,
expiration_policy_completed_at: Time.zone.now
)
- success(:finished)
+ success(:finished, service_result)
else
repository.cleanup_unfinished!
- success(:unfinished)
+ success(:unfinished, service_result)
end
end
private
- def success(cleanup_status)
- ServiceResponse.success(message: "cleanup #{cleanup_status}", payload: { cleanup_status: cleanup_status, container_repository_id: repository.id })
+ def success(cleanup_status, service_result)
+ payload = {
+ cleanup_status: cleanup_status,
+ container_repository_id: repository.id
+ }
+
+ SERVICE_RESULT_FIELDS.each do |field|
+ payload["cleanup_tags_service_#{field}".to_sym] = service_result[field]
+ end
+
+ ServiceResponse.success(message: "cleanup #{cleanup_status}", payload: payload)
end
def policy_params