Skip to content

Commit

Permalink
Adding a deprecation info API check for discovery.zen.minimum_master_…
Browse files Browse the repository at this point in the history
…nodes (#81282)

This commit adds deprecation info API checks for the 15 or so discovery.zen settings that did not already have
deprecation info API checks.
Closes #81260
  • Loading branch information
masseyke committed Dec 3, 2021
1 parent 512b60c commit 77a65eb
Show file tree
Hide file tree
Showing 3 changed files with 244 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,25 @@ private static Set<Setting<Boolean>> getAllDeprecatedNodeRolesSettings() {
NodeDeprecationChecks::checkZenPublishDiffEnableSetting,
NodeDeprecationChecks::checkZenConnectOnNetworkDisconnectSetting,
NodeDeprecationChecks::checkZenPingIntervalSetting,
NodeDeprecationChecks::checkZenPingTimeoutSetting,
NodeDeprecationChecks::checkZenFDPingTimeoutSetting,
NodeDeprecationChecks::checkZenPingRetriesSetting,
NodeDeprecationChecks::checkZenRegisterConnectionListenerSetting,
NodeDeprecationChecks::checkZenMinimumMasterNodesSetting,
NodeDeprecationChecks::checkZenHostsProviderSetting,
NodeDeprecationChecks::checkZenJoinRetryAttemptsSetting,
NodeDeprecationChecks::checkZenJoinRetryDelaySetting,
NodeDeprecationChecks::checkZenJoinTimeoutSetting,
NodeDeprecationChecks::checkZenMasterElectionIgnoreNonMasterPingsSetting,
NodeDeprecationChecks::checkZenMasterElectionWaitForJoinsTimeoutSetting,
NodeDeprecationChecks::checkZenMaxPingsFromAnotherMasterSetting,
NodeDeprecationChecks::checkZenNoMasterBlockSetting,
NodeDeprecationChecks::checkZenPintUnicastConcurrentConnectssSetting,
NodeDeprecationChecks::checkZenPingUnicastHostsSetting,
NodeDeprecationChecks::checkZenPingUnicastHostsResolveTimeoutSetting,
NodeDeprecationChecks::checkZenPingTimeoutSetting,
NodeDeprecationChecks::checkZenPublishMaxPendingClusterStatesSetting,
NodeDeprecationChecks::checkZenPublishTimeoutSetting,
NodeDeprecationChecks::checkZenPingSendLeaveRequestSetting,
NodeDeprecationChecks::checkAutoImportDanglingIndicesSetting,
NodeDeprecationChecks::checkHttpContentTypeRequiredSetting,
NodeDeprecationChecks::checkFsRepositoryCompressionSetting,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
import org.elasticsearch.bootstrap.BootstrapSettings;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.action.shard.ShardStateAction;
import org.elasticsearch.cluster.block.ClusterBlock;
import org.elasticsearch.cluster.coordination.DiscoveryUpgradeService;
import org.elasticsearch.cluster.coordination.JoinHelper;
import org.elasticsearch.cluster.coordination.NoMasterBlockService;
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
import org.elasticsearch.cluster.routing.allocation.DataTier;
import org.elasticsearch.cluster.routing.allocation.decider.DiskThresholdDecider;
Expand All @@ -27,8 +29,13 @@
import org.elasticsearch.common.util.concurrent.EsExecutors;
import org.elasticsearch.common.util.set.Sets;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.discovery.DiscoveryModule;
import org.elasticsearch.discovery.DiscoverySettings;
import org.elasticsearch.discovery.SeedHostsResolver;
import org.elasticsearch.discovery.SettingsBasedSeedHostsProvider;
import org.elasticsearch.discovery.zen.ElectMasterService;
import org.elasticsearch.discovery.zen.FaultDetection;
import org.elasticsearch.discovery.zen.ZenDiscovery;
import org.elasticsearch.env.Environment;
import org.elasticsearch.env.NodeEnvironment;
import org.elasticsearch.gateway.DanglingIndicesState;
Expand Down Expand Up @@ -1882,7 +1889,7 @@ static DeprecationIssue checkZenPingIntervalSetting(
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPingTimeoutSetting(
static DeprecationIssue checkZenFDPingTimeoutSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
Expand Down Expand Up @@ -1915,6 +1922,182 @@ static DeprecationIssue checkZenRegisterConnectionListenerSetting(
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenMinimumMasterNodesSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Integer> deprecatedSetting = ElectMasterService.DISCOVERY_ZEN_MINIMUM_MASTER_NODES_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenHostsProviderSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<List<String>> deprecatedSetting = DiscoveryModule.LEGACY_DISCOVERY_HOSTS_PROVIDER_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenJoinRetryAttemptsSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Integer> deprecatedSetting = ZenDiscovery.JOIN_RETRY_ATTEMPTS_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenJoinRetryDelaySetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<TimeValue> deprecatedSetting = ZenDiscovery.JOIN_RETRY_DELAY_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenJoinTimeoutSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<TimeValue> deprecatedSetting = ZenDiscovery.JOIN_TIMEOUT_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenMasterElectionIgnoreNonMasterPingsSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Boolean> deprecatedSetting = ZenDiscovery.MASTER_ELECTION_IGNORE_NON_MASTER_PINGS_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenMasterElectionWaitForJoinsTimeoutSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<TimeValue> deprecatedSetting = ZenDiscovery.MASTER_ELECTION_WAIT_FOR_JOINS_TIMEOUT_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenMaxPingsFromAnotherMasterSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Integer> deprecatedSetting = ZenDiscovery.MAX_PINGS_FROM_ANOTHER_MASTER_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenNoMasterBlockSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<ClusterBlock> deprecatedSetting = NoMasterBlockService.LEGACY_NO_MASTER_BLOCK_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPintUnicastConcurrentConnectssSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Integer> deprecatedSetting = SeedHostsResolver.LEGACY_DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPingUnicastHostsSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<List<String>> deprecatedSetting = SettingsBasedSeedHostsProvider.LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPingUnicastHostsResolveTimeoutSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<TimeValue> deprecatedSetting = SeedHostsResolver.LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_RESOLVE_TIMEOUT;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPingTimeoutSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<TimeValue> deprecatedSetting = ZenDiscovery.PING_TIMEOUT_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPublishMaxPendingClusterStatesSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Integer> deprecatedSetting = ZenDiscovery.MAX_PENDING_CLUSTER_STATES_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPublishTimeoutSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<TimeValue> deprecatedSetting = DiscoverySettings.PUBLISH_TIMEOUT_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkZenPingSendLeaveRequestSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
final ClusterState clusterState,
final XPackLicenseState licenseState
) {
Setting<Boolean> deprecatedSetting = ZenDiscovery.SEND_LEAVE_REQUEST_SETTING;
String url = "https://ela.st/es-deprecation-7-unused_zen_settings";
return checkSettingNoReplacement(settings, deprecatedSetting, url);
}

static DeprecationIssue checkAutoImportDanglingIndicesSetting(
final Settings settings,
final PluginsAndModules pluginsAndModules,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.action.shard.ShardStateAction;
import org.elasticsearch.cluster.coordination.DiscoveryUpgradeService;
import org.elasticsearch.cluster.coordination.NoMasterBlockService;
import org.elasticsearch.cluster.metadata.IndexMetadata;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodeRole;
Expand All @@ -30,8 +31,13 @@
import org.elasticsearch.core.Set;
import org.elasticsearch.core.SuppressForbidden;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.discovery.DiscoveryModule;
import org.elasticsearch.discovery.DiscoverySettings;
import org.elasticsearch.discovery.SeedHostsResolver;
import org.elasticsearch.discovery.SettingsBasedSeedHostsProvider;
import org.elasticsearch.discovery.zen.ElectMasterService;
import org.elasticsearch.discovery.zen.FaultDetection;
import org.elasticsearch.discovery.zen.ZenDiscovery;
import org.elasticsearch.env.Environment;
import org.elasticsearch.env.NodeEnvironment;
import org.elasticsearch.gateway.DanglingIndicesState;
Expand Down Expand Up @@ -2080,6 +2086,27 @@ public void testZenDiscoverySettings() {
.put(FaultDetection.PING_TIMEOUT_SETTING.getKey(), randomTimeValue())
.put(FaultDetection.PING_RETRIES_SETTING.getKey(), randomInt())
.put(FaultDetection.REGISTER_CONNECTION_LISTENER_SETTING.getKey(), randomBoolean())
.put(ElectMasterService.DISCOVERY_ZEN_MINIMUM_MASTER_NODES_SETTING.getKey(), randomInt())
.putList(
DiscoveryModule.LEGACY_DISCOVERY_HOSTS_PROVIDER_SETTING.getKey(),
Arrays.asList(generateRandomStringArray(10, 20, false))
)
.put(ZenDiscovery.JOIN_RETRY_ATTEMPTS_SETTING.getKey(), randomInt())
.put(ZenDiscovery.JOIN_RETRY_DELAY_SETTING.getKey(), randomTimeValue())
.put(ZenDiscovery.JOIN_TIMEOUT_SETTING.getKey(), randomTimeValue())
.put(ZenDiscovery.MASTER_ELECTION_IGNORE_NON_MASTER_PINGS_SETTING.getKey(), randomBoolean())
.put(ZenDiscovery.MASTER_ELECTION_WAIT_FOR_JOINS_TIMEOUT_SETTING.getKey(), randomTimeValue())
.put(ZenDiscovery.MAX_PINGS_FROM_ANOTHER_MASTER_SETTING.getKey(), randomInt())
.put(NoMasterBlockService.LEGACY_NO_MASTER_BLOCK_SETTING.getKey(), "metadata_write")
.put(SeedHostsResolver.LEGACY_DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING.getKey(), randomInt())
.putList(
SettingsBasedSeedHostsProvider.LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING.getKey(),
Arrays.asList(generateRandomStringArray(10, 20, false))
)
.put(SeedHostsResolver.LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_RESOLVE_TIMEOUT.getKey(), randomPositiveTimeValue())
.put(ZenDiscovery.PING_TIMEOUT_SETTING.getKey(), randomPositiveTimeValue())
.put(ZenDiscovery.MAX_PENDING_CLUSTER_STATES_SETTING.getKey(), randomInt())
.put(DiscoverySettings.PUBLISH_TIMEOUT_SETTING.getKey(), randomPositiveTimeValue())
.build();
final PluginsAndModules pluginsAndModules = new PluginsAndModules(Collections.emptyList(), Collections.emptyList());
final XPackLicenseState licenseState = new XPackLicenseState(Settings.EMPTY, () -> 0);
Expand All @@ -2093,7 +2120,22 @@ public void testZenDiscoverySettings() {
FaultDetection.PING_INTERVAL_SETTING,
FaultDetection.PING_TIMEOUT_SETTING,
FaultDetection.PING_RETRIES_SETTING,
FaultDetection.REGISTER_CONNECTION_LISTENER_SETTING
FaultDetection.REGISTER_CONNECTION_LISTENER_SETTING,
ElectMasterService.DISCOVERY_ZEN_MINIMUM_MASTER_NODES_SETTING,
DiscoveryModule.LEGACY_DISCOVERY_HOSTS_PROVIDER_SETTING,
ZenDiscovery.JOIN_RETRY_ATTEMPTS_SETTING,
ZenDiscovery.JOIN_RETRY_DELAY_SETTING,
ZenDiscovery.JOIN_TIMEOUT_SETTING,
ZenDiscovery.MASTER_ELECTION_IGNORE_NON_MASTER_PINGS_SETTING,
ZenDiscovery.MASTER_ELECTION_WAIT_FOR_JOINS_TIMEOUT_SETTING,
ZenDiscovery.MAX_PINGS_FROM_ANOTHER_MASTER_SETTING,
NoMasterBlockService.LEGACY_NO_MASTER_BLOCK_SETTING,
SeedHostsResolver.LEGACY_DISCOVERY_ZEN_PING_UNICAST_CONCURRENT_CONNECTS_SETTING,
SettingsBasedSeedHostsProvider.LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_SETTING,
SeedHostsResolver.LEGACY_DISCOVERY_ZEN_PING_UNICAST_HOSTS_RESOLVE_TIMEOUT,
ZenDiscovery.PING_TIMEOUT_SETTING,
ZenDiscovery.MAX_PENDING_CLUSTER_STATES_SETTING,
DiscoverySettings.PUBLISH_TIMEOUT_SETTING
);
for (Setting<?> deprecatedSetting : deprecatedSettings) {
final DeprecationIssue expected = new DeprecationIssue(
Expand Down

0 comments on commit 77a65eb

Please sign in to comment.