Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable deprecation checks for removed settings #53317

Merged

Conversation

jasontedor
Copy link
Member

@jasontedor jasontedor commented Mar 9, 2020

Today we do not have any infrastructure for adding a deprecation check for settings that are removed. This commit enables this by adding such infrastructure. Note that this infrastructure is unused in this commit, which is deliberate. However, the primary target for this commit is 7.x where this infrastructure will be used, in a follow-up.

Today we do not have any infrastructure for adding a deprecation check
for settings that are removed. This commit enables this by adding such
infrastructure. Note that this infrastructure is unused in this commit,
which is deliberate. However, the primary target for this commit is 7.x
where this infrastructue will be used, in a follow-up.
@jakelandis jakelandis self-requested a review March 11, 2020 01:48
@jasontedor
Copy link
Member Author

@elasticmachine update branch

String.format(Locale.ROOT, "setting [%s] is deprecated and will be removed in the next major version", removedSettingKey);
final String details =
String.format(Locale.ROOT, "the setting [%s] is currently set to [%s], remove this setting", removedSettingKey, value);
return new DeprecationIssue(DeprecationIssue.Level.CRITICAL, message, url, details);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be WARNING instead of CRITICAL ?

If the setting is removed, won't it be be "archived" allowing the server to continue to function ? I think we are trying to reserve CRITICAL for things items that will prevent the server from running.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily, because these could be node level settings, which we don't archive, which do prevent startup if they are unrecognized. Also, we have discussing removing the archiving of settings, so this behavior could change for cluster-level settings too.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, should we flex WARNING or CRITICAL based if the setting has node scope ?

Also, should we check that that value is not the default value here so we don't issue an issue a deprecation issue for settings that user never changed ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a check that the setting is not set on line 18?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah .. i missed "Note that fallback settings are excluded." in the exists method.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, that's why we have Setting#existsOrFallbackExists.

Copy link
Contributor

@jakelandis jakelandis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Minor preference to flex between WARNING and CRITICAL based on node scope, but not a blocker.

@jasontedor jasontedor merged commit ee31217 into elastic:master Mar 11, 2020
jasontedor added a commit that referenced this pull request Mar 11, 2020
Today we do not have any infrastructure for adding a deprecation check
for settings that are removed. This commit enables this by adding such
infrastructure. Note that this infrastructure is unused in this commit,
which is deliberate. However, the primary target for this commit is 7.x
where this infrastructue will be used, in a follow-up.
@jasontedor jasontedor deleted the removed-setting-deprecation-check branch March 11, 2020 21:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants