Remove leading :: from BG migration class names
What does this MR do?
The background_migration_jobs
table stores background migration jobs that will be executed by sidekiq. This information consists of the class name and arguments to the perform
method.
In some instances the class name may be passed with a leading ::
to explicitly specify the class as being in the top-level namespace. However, querying the class for its name will not return a leading ::
, which can lead to mismatches between the value in the database and the search term.
To fix this, ensure that any leading ::
are stripped from the class name when saving the record in the database, or when doing any lookups on that value.
Note: The BackgroundMigration logic assumes that migration classes are under Gitlab::BackgroundMigration::
but are not prefixed with the parent module name. The approach in this MR was taken to not conflict with that existing logic, or assume that the class name is fully-qualified.
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
- [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides - [-] Separation of EE specific content
Availability and Testing
- [-] Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
- [-] Tested in all supported browsers
- [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team