Skip to content

Commit

Permalink
[TEST] Switch to persistent settings in java tests (#78562)
Browse files Browse the repository at this point in the history
Migrate to persistent cluster settings in Java tests

We are deprecating transient settings, therefore this
PR changes uses of transient cluster settings to
persistent cluster settings.
  • Loading branch information
grcevski committed Oct 13, 2021
1 parent d7aa9e7 commit b2c5fd3
Show file tree
Hide file tree
Showing 82 changed files with 530 additions and 470 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;

import static java.util.Collections.emptyMap;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
Expand All @@ -75,13 +76,13 @@ public void testClusterPutSettings() throws IOException {
setRequest.persistentSettings(map);

ClusterUpdateSettingsResponse setResponse = execute(setRequest, highLevelClient().cluster()::putSettings,
highLevelClient().cluster()::putSettingsAsync);
highLevelClient().cluster()::putSettingsAsync);

assertAcked(setResponse);
assertThat(setResponse.getTransientSettings().get(transientSettingKey), notNullValue());
assertThat(setResponse.getTransientSettings().get(persistentSettingKey), nullValue());
assertThat(setResponse.getTransientSettings().get(transientSettingKey),
equalTo(transientSettingValue + ByteSizeUnit.BYTES.getSuffix()));
equalTo(transientSettingValue + ByteSizeUnit.BYTES.getSuffix()));
assertThat(setResponse.getPersistentSettings().get(transientSettingKey), nullValue());
assertThat(setResponse.getPersistentSettings().get(persistentSettingKey), notNullValue());
assertThat(setResponse.getPersistentSettings().get(persistentSettingKey), equalTo(persistentSettingValue));
Expand All @@ -97,7 +98,7 @@ public void testClusterPutSettings() throws IOException {
resetRequest.persistentSettings("{\"" + persistentSettingKey + "\": null }", XContentType.JSON);

ClusterUpdateSettingsResponse resetResponse = execute(resetRequest, highLevelClient().cluster()::putSettings,
highLevelClient().cluster()::putSettingsAsync);
highLevelClient().cluster()::putSettingsAsync);

assertThat(resetResponse.getTransientSettings().get(transientSettingKey), equalTo(null));
assertThat(resetResponse.getPersistentSettings().get(persistentSettingKey), equalTo(null));
Expand All @@ -111,17 +112,28 @@ public void testClusterPutSettings() throws IOException {
assertThat(persistentResetValue, equalTo(null));
}

public void testClusterUpdateSettingNonExistent() {
public void testClusterUpdateTransientSettingNonExistent() {
testClusterUpdateSettingNonExistent((settings, request) -> request.transientSettings(settings), "transient");
}

public void testClusterUpdatePersistentSettingNonExistent() {
testClusterUpdateSettingNonExistent((settings, request) -> request.persistentSettings(settings), "persistent");
}

private void testClusterUpdateSettingNonExistent(
final BiConsumer<Settings.Builder, ClusterUpdateSettingsRequest> consumer,
String label) {
String setting = "no_idea_what_you_are_talking_about";
int value = 10;
ClusterUpdateSettingsRequest clusterUpdateSettingsRequest = new ClusterUpdateSettingsRequest();
clusterUpdateSettingsRequest.transientSettings(Settings.builder().put(setting, value).build());
consumer.accept(Settings.builder().put(setting, value), clusterUpdateSettingsRequest);

ElasticsearchException exception = expectThrows(ElasticsearchException.class, () -> execute(clusterUpdateSettingsRequest,
highLevelClient().cluster()::putSettings, highLevelClient().cluster()::putSettingsAsync));
highLevelClient().cluster()::putSettings, highLevelClient().cluster()::putSettingsAsync));
assertThat(exception.status(), equalTo(RestStatus.BAD_REQUEST));
assertThat(exception.getMessage(), equalTo(
"Elasticsearch exception [type=illegal_argument_exception, reason=transient setting [" + setting + "], not recognized]"));
"Elasticsearch exception [type=illegal_argument_exception, reason="
+ label + " setting [" + setting + "], not recognized]"));
}

public void testClusterGetSettings() throws IOException {
Expand Down Expand Up @@ -183,7 +195,7 @@ public void testClusterHealthYellowClusterLevel() throws IOException {
ClusterHealthResponse response = execute(request, highLevelClient().cluster()::health, highLevelClient().cluster()::healthAsync);

logger.info("Shard stats\n{}", EntityUtils.toString(
client().performRequest(new Request("GET", "/_cat/shards")).getEntity()));
client().performRequest(new Request("GET", "/_cat/shards")).getEntity()));
assertThat(response.getIndices().size(), equalTo(0));
}

Expand All @@ -204,7 +216,7 @@ public void testClusterHealthYellowIndicesLevel() throws IOException {
ClusterHealthResponse response = execute(request, highLevelClient().cluster()::health, highLevelClient().cluster()::healthAsync);

logger.info("Shard stats\n{}", EntityUtils.toString(
client().performRequest(new Request("GET", "/_cat/shards")).getEntity()));
client().performRequest(new Request("GET", "/_cat/shards")).getEntity()));
assertYellowShards(response);
assertThat(response.getIndices().size(), equalTo(2));
for (Map.Entry<String, ClusterIndexHealth> entry : response.getIndices().entrySet()) {
Expand All @@ -226,7 +238,6 @@ private static void assertYellowShards(ClusterHealthResponse response) {
assertThat(response.getUnassignedShards(), equalTo(2));
}


public void testClusterHealthYellowSpecificIndex() throws IOException {
createIndex("index", Settings.EMPTY);
createIndex("index2", Settings.EMPTY);
Expand Down Expand Up @@ -317,19 +328,19 @@ public void testRemoteInfo() throws Exception {
ClusterGetSettingsResponse settingsResponse = highLevelClient().cluster().getSettings(settingsRequest, RequestOptions.DEFAULT);

List<String> seeds = SniffConnectionStrategy.REMOTE_CLUSTER_SEEDS
.getConcreteSettingForNamespace(clusterAlias)
.get(settingsResponse.getTransientSettings());
.getConcreteSettingForNamespace(clusterAlias)
.get(settingsResponse.getPersistentSettings());
int connectionsPerCluster = SniffConnectionStrategy.REMOTE_CONNECTIONS_PER_CLUSTER
.get(settingsResponse.getTransientSettings());
.get(settingsResponse.getPersistentSettings());
TimeValue initialConnectionTimeout = RemoteClusterService.REMOTE_INITIAL_CONNECTION_TIMEOUT_SETTING
.get(settingsResponse.getTransientSettings());
.get(settingsResponse.getPersistentSettings());
boolean skipUnavailable = RemoteClusterService.REMOTE_CLUSTER_SKIP_UNAVAILABLE
.getConcreteSettingForNamespace(clusterAlias)
.get(settingsResponse.getTransientSettings());
.getConcreteSettingForNamespace(clusterAlias)
.get(settingsResponse.getPersistentSettings());

RemoteInfoRequest request = new RemoteInfoRequest();
RemoteInfoResponse response = execute(request, highLevelClient().cluster()::remoteInfo,
highLevelClient().cluster()::remoteInfoAsync);
highLevelClient().cluster()::remoteInfoAsync);

assertThat(response, notNullValue());
assertThat(response.getInfos().size(), equalTo(1));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ protected static void setupRemoteClusterConfig(String remoteClusterName) throws
String transportAddress = (String) nodesResponse.get("transport_address");

ClusterUpdateSettingsRequest updateSettingsRequest = new ClusterUpdateSettingsRequest();
updateSettingsRequest.transientSettings(singletonMap("cluster.remote." + remoteClusterName + ".seeds", transportAddress));
updateSettingsRequest.persistentSettings(singletonMap("cluster.remote." + remoteClusterName + ".seeds", transportAddress));
ClusterUpdateSettingsResponse updateSettingsResponse =
restHighLevelClient.cluster().putSettings(updateSettingsRequest, RequestOptions.DEFAULT);
assertThat(updateSettingsResponse.isAcknowledged(), is(true));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import org.elasticsearch.cluster.metadata.AliasMetadata;
import org.elasticsearch.cluster.metadata.ComponentTemplate;
import org.elasticsearch.cluster.metadata.Template;
import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider;
import org.elasticsearch.common.Priority;
import org.elasticsearch.common.compress.CompressedXContent;
import org.elasticsearch.common.settings.Settings;
Expand Down Expand Up @@ -71,48 +70,38 @@ public void testClusterPutSettings() throws IOException {
// end::put-settings-request

// tag::put-settings-create-settings
String transientSettingKey =
RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING.getKey();
int transientSettingValue = 10;
Settings transientSettings =
Settings.builder()
.put(transientSettingKey, transientSettingValue, ByteSizeUnit.BYTES)
.build(); // <1>

String persistentSettingKey =
EnableAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ENABLE_SETTING.getKey();
String persistentSettingValue =
EnableAllocationDecider.Allocation.NONE.name();
RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING.getKey();
int persistentSettingValue = 10;
Settings persistentSettings =
Settings.builder()
.put(persistentSettingKey, persistentSettingValue)
.build(); // <2>
.put(persistentSettingKey, persistentSettingValue, ByteSizeUnit.BYTES)
.build(); // <1>
// end::put-settings-create-settings

// tag::put-settings-request-cluster-settings
request.transientSettings(transientSettings); // <1>
request.persistentSettings(persistentSettings); // <2>
request.persistentSettings(persistentSettings); // <1>
// end::put-settings-request-cluster-settings

{
// tag::put-settings-settings-builder
Settings.Builder transientSettingsBuilder =
Settings.Builder persistentSettingsBuilder =
Settings.builder()
.put(transientSettingKey, transientSettingValue, ByteSizeUnit.BYTES);
request.transientSettings(transientSettingsBuilder); // <1>
.put(persistentSettingKey, persistentSettingValue, ByteSizeUnit.BYTES);
request.persistentSettings(persistentSettingsBuilder); // <1>
// end::put-settings-settings-builder
}
{
// tag::put-settings-settings-map
Map<String, Object> map = new HashMap<>();
map.put(transientSettingKey
, transientSettingValue + ByteSizeUnit.BYTES.getSuffix());
request.transientSettings(map); // <1>
map.put(persistentSettingKey
, persistentSettingValue + ByteSizeUnit.BYTES.getSuffix());
request.persistentSettings(map); // <1>
// end::put-settings-settings-map
}
{
// tag::put-settings-settings-source
request.transientSettings(
request.persistentSettings(
"{\"indices.recovery.max_bytes_per_sec\": \"10b\"}"
, XContentType.JSON); // <1>
// end::put-settings-settings-source
Expand All @@ -133,17 +122,14 @@ public void testClusterPutSettings() throws IOException {

// tag::put-settings-response
boolean acknowledged = response.isAcknowledged(); // <1>
Settings transientSettingsResponse = response.getTransientSettings(); // <2>
Settings persistentSettingsResponse = response.getPersistentSettings(); // <3>
Settings persistentSettingsResponse = response.getPersistentSettings(); // <2>
// end::put-settings-response
assertTrue(acknowledged);
assertThat(transientSettingsResponse.get(transientSettingKey), equalTo(transientSettingValue + ByteSizeUnit.BYTES.getSuffix()));
assertThat(persistentSettingsResponse.get(persistentSettingKey), equalTo(persistentSettingValue));
assertThat(persistentSettingsResponse.get(persistentSettingKey), equalTo(persistentSettingValue + ByteSizeUnit.BYTES.getSuffix()));

// tag::put-settings-request-reset-transient
request.transientSettings(Settings.builder().putNull(transientSettingKey).build()); // <1>
// tag::put-settings-request-reset-transient
request.persistentSettings(Settings.builder().putNull(persistentSettingKey));
// tag::put-settings-request-reset-persistent
request.persistentSettings(Settings.builder().putNull(persistentSettingKey).build()); // <1>
// tag::put-settings-request-reset-persistent
ClusterUpdateSettingsResponse resetResponse = client.cluster().putSettings(request, RequestOptions.DEFAULT);

assertTrue(resetResponse.isAcknowledged());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,6 @@ private void setDiskAllocationDeciderEnabled(boolean value) {
DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED_SETTING.getKey()).build() :
Settings.builder().put(
DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_DISK_THRESHOLD_ENABLED_SETTING.getKey(), value).build();
assertAcked(client().admin().cluster().prepareUpdateSettings().setTransientSettings(settings).get());
assertAcked(client().admin().cluster().prepareUpdateSettings().setPersistentSettings(settings).get());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public void testDoesNotLimitExcludedRequests() throws Exception {
List<Tuple<String, CharSequence>> requestUris = new ArrayList<>();
for (int i = 0; i < 1500; i++) {
requestUris.add(Tuple.tuple("/_cluster/settings",
"{ \"transient\": {\"search.default_search_timeout\": \"40s\" } }"));
"{ \"persistent\": {\"search.default_search_timeout\": \"40s\" } }"));
}

HttpServerTransport httpServerTransport = internalCluster().getInstance(HttpServerTransport.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ public void testCannotAutoCreateIndexWhenDisallowedByTemplate() throws IOExcepti
private void configureAutoCreateIndex(boolean value) throws IOException {
XContentBuilder builder = JsonXContent.contentBuilder()
.startObject()
.startObject("transient")
.startObject("persistent")
.field(AutoCreateIndex.AUTO_CREATE_INDEX_SETTING.getKey(), value)
.endObject()
.endObject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -701,7 +701,7 @@ public void testWorseBalance() throws Exception {
prepareIndex(5, 0);

logger.info("--> setting balancing threshold really high, so it won't be met");
client().admin().cluster().prepareUpdateSettings().setTransientSettings(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(
Settings.builder().put("cluster.routing.allocation.balance.threshold", 1000.0f)).get();

logger.info("--> starting another node, with the rebalance threshold so high, it should not get any shards");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public void testCreateCloneIndex() {

// disable rebalancing to be able to capture the right stats. balancing can move the target primary
// making it hard to pin point the source shards.
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), "none"
)).get();
try {
Expand Down Expand Up @@ -105,7 +105,7 @@ public void testCreateCloneIndex() {
assertEquals(version, target.getIndexToSettings().get("target").getAsVersion("index.version.created", null));
} finally {
// clean up
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), (String)null
)).get();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ public void testCreateShrinkIndex() {

// disable rebalancing to be able to capture the right stats. balancing can move the target primary
// making it hard to pin point the source shards.
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), "none"
)).get();

Expand Down Expand Up @@ -321,7 +321,7 @@ public void testCreateShrinkIndex() {
assertEquals(version, target.getIndexToSettings().get("target").getAsVersion("index.version.created", null));

// clean up
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), (String)null
)).get();
}
Expand Down Expand Up @@ -496,7 +496,7 @@ public void testShrinkCommitsMergeOnIdle() throws Exception {

// disable rebalancing to be able to capture the right stats. balancing can move the target primary
// making it hard to pin point the source shards.
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), "none"
)).get();

Expand Down Expand Up @@ -537,7 +537,7 @@ public void testShrinkCommitsMergeOnIdle() throws Exception {
});

// clean up
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), (String)null
)).get();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ public void testCreateSplitIndex() throws Exception {

// disable rebalancing to be able to capture the right stats. balancing can move the target primary
// making it hard to pin point the source shards.
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), "none"
)).get();
try {
Expand Down Expand Up @@ -433,7 +433,7 @@ public void testCreateSplitIndex() throws Exception {
assertEquals(version, target.getIndexToSettings().get("target").getAsVersion("index.version.created", null));
} finally {
// clean up
client().admin().cluster().prepareUpdateSettings().setTransientSettings(Settings.builder().put(
client().admin().cluster().prepareUpdateSettings().setPersistentSettings(Settings.builder().put(
EnableAllocationDecider.CLUSTER_ROUTING_REBALANCE_ENABLE_SETTING.getKey(), (String)null
)).get();
}
Expand Down

0 comments on commit b2c5fd3

Please sign in to comment.