Skip to content
Snippets Groups Projects
Commit ad52783d authored by Valery Sizov's avatar Valery Sizov Committed by Mayra Cabrera
Browse files

Make BackgroundMigrationWorker backward compatible

parent 36adf190
No related branches found
No related tags found
1 merge request!158514Fix CodeReviewMetrics worker failure with kwargs
---
title: Make BackgroundMigrationWorker backward compatible
merge_request: 22271
author:
type: fixed
......@@ -78,6 +78,20 @@ def self.retrying_jobs?(migration_class)
end
def self.migration_class_for(class_name)
# We don't pass class name with Gitlab::BackgroundMigration:: prefix anymore
# but some jobs could be already spawned so we need to have some backward compatibility period.
# Can be removed since 13.x
full_class_name_prefix_regexp = /\A(::)?Gitlab::BackgroundMigration::/
if class_name.match(full_class_name_prefix_regexp)
Gitlab::ErrorTracking.track_and_raise_for_dev_exception(
StandardError.new("Full class name is used"),
class_name: class_name
)
class_name = class_name.sub(full_class_name_prefix_regexp, '')
end
const_get(class_name, false)
end
......
......@@ -152,6 +152,17 @@
described_class.perform('Foo', [10, 20])
end
context 'backward compatibility' do
it 'performs a background migration for fully-qualified job classes' do
expect(migration).to receive(:perform).with(10, 20).once
expect(Gitlab::ErrorTracking)
.to receive(:track_and_raise_for_dev_exception)
.with(instance_of(StandardError), hash_including(:class_name))
described_class.perform('Gitlab::BackgroundMigration::Foo', [10, 20])
end
end
end
describe '.exists?' do
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment