39 lines
950 B
Ruby
39 lines
950 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
module Ci
|
|
module Pipeline
|
|
module Chain
|
|
module Limit
|
|
class Deployments < Chain::Base
|
|
extend ::Gitlab::Utils::Override
|
|
include ::Gitlab::Ci::Pipeline::Chain::Helpers
|
|
|
|
attr_reader :limit
|
|
private :limit
|
|
|
|
def initialize(*)
|
|
super
|
|
|
|
@limit = ::Gitlab::Ci::Pipeline::Quota::Deployments
|
|
.new(project.namespace, pipeline, command)
|
|
end
|
|
|
|
override :perform!
|
|
def perform!
|
|
return unless limit.exceeded?
|
|
|
|
limit.log_error!(project_id: project.id, plan: project.actual_plan_name)
|
|
error(limit.message, drop_reason: :deployments_limit_exceeded)
|
|
end
|
|
|
|
override :break?
|
|
def break?
|
|
limit.exceeded?
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|