Skip to content
Snippets Groups Projects
Commit 29bf0d61db0f authored by DJ Mountney's avatar DJ Mountney
Browse files

Merge branch 'fix-deprecation-check-ignore-warning' into 'master'

Add logic to ignore deprecation warning if using specific values for settings

See merge request gitlab-org/omnibus-gitlab!5258
No related branches found
No related tags found
2 merge requests!51Validate shift of Heptapod 0.25 to oldstable series,!41GitLab 13.12
......@@ -227,6 +227,14 @@
messages = []
messages += deprecate_only_if_value(incoming_version, existing_config, type, ['gitlab', 'unicorn'], 'enable', true, '13.10', '14.0')
praefect_note = <<~EOS
From GitLab 14.0 onwards, the `per_repository` will be the only available election strategy.
Migrate to repository-specific primary nodes following
https://docs.gitlab.com/ee/administration/gitaly/praefect.html#migrate-to-repository-specific-primary-gitaly-nodes.
EOS
messages += deprecate_only_if_value(incoming_version, existing_config, type, ['praefect'], 'failover_election_strategy', 'sql', '13.12', '14.0', note: praefect_note, ignore_deprecation: true)
messages += deprecate_only_if_value(incoming_version, existing_config, type, ['praefect'], 'failover_election_strategy', 'local', '13.12', '14.0', note: praefect_note, ignore_deprecation: true)
messages
end
......@@ -230,7 +238,7 @@
messages
end
def deprecate_only_if_value(incoming_version, existing_config, type, config_keys, key, value, deprecated_version, removed_version)
def deprecate_only_if_value(incoming_version, existing_config, type, config_keys, key, value, deprecated_version, removed_version, note: nil, ignore_deprecation: false) # rubocop:disable Metrics/ParameterLists
setting = existing_config.dig(*config_keys) || {}
return [] unless setting.key?(key)
......@@ -246,9 +254,13 @@
messages = []
if Gem::Version.new(incoming_version) >= Gem::Version.new(removed_version) && type == :removal
messages << "* #{config_keys[0]}[#{key}] has been deprecated since #{deprecated_version} and was removed in #{removed_version}."
elsif Gem::Version.new(incoming_version) >= Gem::Version.new(deprecated_version) && type == :deprecation
messages << "* #{config_keys[0]}[#{key}] has been deprecated since #{deprecated_version} and will be removed in #{removed_version}."
message = "* #{config_keys[0]}[#{key}] has been deprecated since #{deprecated_version} and was removed in #{removed_version}."
message += " #{note}" if note
messages << message
elsif Gem::Version.new(incoming_version) >= Gem::Version.new(deprecated_version) && type == :deprecation && !ignore_deprecation
message = "* #{config_keys[0]}[#{key}] has been deprecated since #{deprecated_version} and will be removed in #{removed_version}."
message += " #{note}" if note
messages << message
end
messages
......
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