debian-mirror-gitlab/app/services/container_expiration_policy_service.rb

25 lines
719 B
Ruby
Raw Normal View History

2020-03-13 15:44:24 +05:30
# frozen_string_literal: true
class ContainerExpirationPolicyService < BaseService
2020-06-23 00:09:42 +05:30
InvalidPolicyError = Class.new(StandardError)
2020-03-13 15:44:24 +05:30
def execute(container_expiration_policy)
2020-06-23 00:09:42 +05:30
unless container_expiration_policy.valid?
container_expiration_policy.disable!
raise InvalidPolicyError
end
2020-03-13 15:44:24 +05:30
container_expiration_policy.schedule_next_run!
container_expiration_policy.container_repositories.find_each do |container_repository|
CleanupContainerRepositoryWorker.perform_async(
nil,
container_repository.id,
container_expiration_policy.attributes
.except('created_at', 'updated_at')
.merge(container_expiration_policy: true)
)
end
end
end