35 lines
1 KiB
Ruby
35 lines
1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class ChangePublicProjectsCostFactor < Gitlab::Database::Migration[2.0]
|
|
# This migration updates SaaS Runner cost factors for public projects.
|
|
# Previously we had a disabled cost factor for public projects, meaning
|
|
# that no CI minutes were counted by default. With a low cost factor
|
|
# we count CI minutes consumption at a very low rate to prevent
|
|
# abuses.
|
|
disable_ddl_transaction!
|
|
|
|
restrict_gitlab_migration gitlab_schema: :gitlab_ci
|
|
|
|
DISABLED_COST_FACTOR = 0
|
|
LOW_COST_FACTOR = 0.008
|
|
|
|
class Runner < MigrationRecord
|
|
self.table_name = 'ci_runners'
|
|
|
|
scope :shared, -> { where(runner_type: 1) }
|
|
end
|
|
|
|
def up
|
|
return unless Gitlab.com?
|
|
|
|
Runner.shared.where(public_projects_minutes_cost_factor: DISABLED_COST_FACTOR)
|
|
.update_all(public_projects_minutes_cost_factor: LOW_COST_FACTOR)
|
|
end
|
|
|
|
def down
|
|
return unless Gitlab.com?
|
|
|
|
Runner.shared.where(public_projects_minutes_cost_factor: LOW_COST_FACTOR)
|
|
.update_all(public_projects_minutes_cost_factor: DISABLED_COST_FACTOR)
|
|
end
|
|
end
|