mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 10:25:15 +00:00
Backport: allow cluster health api to resolve data streams (#56425)
Backport of: #56413 Allow cluster health api to resolve data streams and automatically remove data streams after each test in test cases extending from `ESIntegTestCase` Relates to #53100
This commit is contained in:
parent
c117ae7a6e
commit
83739b5806
@ -177,9 +177,6 @@ public class DataStreamIT extends ESIntegTestCase {
|
||||
BulkResponse bulkItemResponses = client().bulk(bulkRequest).actionGet();
|
||||
assertThat(bulkItemResponses.getItems()[0].getIndex(), equalTo(DataStream.getBackingIndexName(dataStreamName, 1)));
|
||||
}
|
||||
|
||||
DeleteDataStreamAction.Request deleteDataStreamRequest = new DeleteDataStreamAction.Request("*");
|
||||
client().admin().indices().deleteDataStream(deleteDataStreamRequest).actionGet();
|
||||
}
|
||||
|
||||
private static void indexDocs(String dataStream, int numDocs) {
|
||||
|
@ -20,13 +20,13 @@ package org.elasticsearch.indices;
|
||||
|
||||
import org.elasticsearch.action.ActionRequestBuilder;
|
||||
import org.elasticsearch.action.DocWriteRequest;
|
||||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequestBuilder;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.create.CreateSnapshotRequestBuilder;
|
||||
import org.elasticsearch.action.admin.cluster.snapshots.restore.RestoreSnapshotRequestBuilder;
|
||||
import org.elasticsearch.action.admin.indices.alias.exists.AliasesExistRequestBuilder;
|
||||
import org.elasticsearch.action.admin.indices.alias.get.GetAliasesRequestBuilder;
|
||||
import org.elasticsearch.action.admin.indices.cache.clear.ClearIndicesCacheRequestBuilder;
|
||||
import org.elasticsearch.action.admin.indices.datastream.CreateDataStreamAction;
|
||||
import org.elasticsearch.action.admin.indices.datastream.DeleteDataStreamAction;
|
||||
import org.elasticsearch.action.admin.indices.exists.types.TypesExistsRequestBuilder;
|
||||
import org.elasticsearch.action.admin.indices.flush.FlushRequestBuilder;
|
||||
import org.elasticsearch.action.admin.indices.forcemerge.ForceMergeRequestBuilder;
|
||||
@ -671,6 +671,7 @@ public class IndicesOptionsIntegrationIT extends ESIntegTestCase {
|
||||
verifyResolvability(dataStreamName, getFieldMapping(dataStreamName), true);
|
||||
verifyResolvability(dataStreamName, getMapping(dataStreamName), true);
|
||||
verifyResolvability(dataStreamName, getSettings(dataStreamName), true);
|
||||
verifyResolvability(dataStreamName, health(dataStreamName), false);
|
||||
|
||||
request = new CreateDataStreamAction.Request("logs-barbaz");
|
||||
request.setTimestampFieldName("ts");
|
||||
@ -694,9 +695,7 @@ public class IndicesOptionsIntegrationIT extends ESIntegTestCase {
|
||||
verifyResolvability(wildcardExpression, getFieldMapping(wildcardExpression), true);
|
||||
verifyResolvability(wildcardExpression, getMapping(wildcardExpression), true);
|
||||
verifyResolvability(wildcardExpression, getSettings(wildcardExpression), true);
|
||||
|
||||
DeleteDataStreamAction.Request deleteRequest = new DeleteDataStreamAction.Request("*");
|
||||
client().admin().indices().deleteDataStream(deleteRequest).actionGet();
|
||||
verifyResolvability(wildcardExpression, health(wildcardExpression), false);
|
||||
}
|
||||
|
||||
private static void verifyResolvability(String dataStream, ActionRequestBuilder requestBuilder, boolean fail) {
|
||||
@ -808,6 +807,10 @@ public class IndicesOptionsIntegrationIT extends ESIntegTestCase {
|
||||
.setIndices(indices);
|
||||
}
|
||||
|
||||
private static ClusterHealthRequestBuilder health(String... indices) {
|
||||
return client().admin().cluster().prepareHealth(indices);
|
||||
}
|
||||
|
||||
private static void verify(ActionRequestBuilder requestBuilder, boolean fail) {
|
||||
verify(requestBuilder, fail, 0);
|
||||
}
|
||||
|
@ -284,7 +284,7 @@ public class TransportClusterHealthAction extends TransportMasterNodeReadAction<
|
||||
}
|
||||
if (request.indices() != null && request.indices().length > 0) {
|
||||
try {
|
||||
indexNameExpressionResolver.concreteIndexNames(clusterState, IndicesOptions.strictExpand(), request.indices());
|
||||
indexNameExpressionResolver.concreteIndexNames(clusterState, IndicesOptions.strictExpand(), true, request.indices());
|
||||
waitForCounter++;
|
||||
} catch (IndexNotFoundException e) {
|
||||
response.setStatus(ClusterHealthStatus.RED); // no indices, make sure its RED
|
||||
@ -351,7 +351,7 @@ public class TransportClusterHealthAction extends TransportMasterNodeReadAction<
|
||||
|
||||
String[] concreteIndices;
|
||||
try {
|
||||
concreteIndices = indexNameExpressionResolver.concreteIndexNames(clusterState, request);
|
||||
concreteIndices = indexNameExpressionResolver.concreteIndexNames(clusterState, request, true);
|
||||
} catch (IndexNotFoundException e) {
|
||||
// one of the specified indices is not there - treat it as RED.
|
||||
ClusterHealthResponse response = new ClusterHealthResponse(clusterState.getClusterName().value(), Strings.EMPTY_ARRAY,
|
||||
|
@ -24,8 +24,10 @@ import com.carrotsearch.hppc.ObjectArrayList;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse;
|
||||
import org.elasticsearch.action.admin.indices.datastream.DeleteDataStreamAction;
|
||||
import org.elasticsearch.action.admin.indices.template.get.GetIndexTemplatesResponse;
|
||||
import org.elasticsearch.action.support.IndicesOptions;
|
||||
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
||||
import org.elasticsearch.client.Client;
|
||||
import org.elasticsearch.cluster.metadata.IndexMetadata;
|
||||
import org.elasticsearch.cluster.metadata.IndexTemplateMetadata;
|
||||
@ -77,6 +79,7 @@ public abstract class TestCluster implements Closeable {
|
||||
* Wipes any data that a test can leave behind: indices, templates (except exclude templates) and repositories
|
||||
*/
|
||||
public void wipe(Set<String> excludeTemplates) {
|
||||
wipeAllDataStreams();
|
||||
wipeIndices("_all");
|
||||
wipeAllTemplates(excludeTemplates);
|
||||
wipeRepositories();
|
||||
@ -132,6 +135,17 @@ public abstract class TestCluster implements Closeable {
|
||||
@Override
|
||||
public abstract void close() throws IOException;
|
||||
|
||||
/**
|
||||
* Deletes all data streams from the test cluster.
|
||||
*/
|
||||
public void wipeAllDataStreams() {
|
||||
if (size() > 0) {
|
||||
AcknowledgedResponse response =
|
||||
client().admin().indices().deleteDataStream(new DeleteDataStreamAction.Request("*")).actionGet();
|
||||
assertAcked(response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes the given indices from the tests cluster. If no index name is passed to this method
|
||||
* all indices are removed.
|
||||
|
Loading…
x
Reference in New Issue
Block a user