|
@@ -6,10 +6,12 @@
|
|
|
|
|
|
package org.elasticsearch.xpack.datastreams.action;
|
|
|
|
|
|
+import org.elasticsearch.ResourceNotFoundException;
|
|
|
import org.elasticsearch.cluster.ClusterState;
|
|
|
import org.elasticsearch.cluster.DataStreamTestHelper;
|
|
|
import org.elasticsearch.cluster.SnapshotsInProgress;
|
|
|
import org.elasticsearch.cluster.metadata.DataStream;
|
|
|
+import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
|
|
|
import org.elasticsearch.cluster.metadata.Metadata;
|
|
|
import org.elasticsearch.cluster.metadata.MetadataDeleteIndexService;
|
|
|
import org.elasticsearch.common.Strings;
|
|
@@ -28,19 +30,22 @@ import java.util.Set;
|
|
|
|
|
|
import static org.hamcrest.Matchers.containsInAnyOrder;
|
|
|
import static org.hamcrest.Matchers.equalTo;
|
|
|
+import static org.hamcrest.Matchers.sameInstance;
|
|
|
import static org.mockito.Matchers.any;
|
|
|
import static org.mockito.Mockito.mock;
|
|
|
import static org.mockito.Mockito.when;
|
|
|
|
|
|
public class DeleteDataStreamTransportActionTests extends ESTestCase {
|
|
|
|
|
|
+ private final IndexNameExpressionResolver iner = new IndexNameExpressionResolver();
|
|
|
+
|
|
|
public void testDeleteDataStream() {
|
|
|
final String dataStreamName = "my-data-stream";
|
|
|
final List<String> otherIndices = randomSubsetOf(List.of("foo", "bar", "baz"));
|
|
|
|
|
|
ClusterState cs = DataStreamTestHelper.getClusterStateWithDataStreams(List.of(new Tuple<>(dataStreamName, 2)), otherIndices);
|
|
|
DeleteDataStreamAction.Request req = new DeleteDataStreamAction.Request(new String[] { dataStreamName });
|
|
|
- ClusterState newState = DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), cs, req);
|
|
|
+ ClusterState newState = DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), iner, cs, req);
|
|
|
assertThat(newState.metadata().dataStreams().size(), equalTo(0));
|
|
|
assertThat(newState.metadata().indices().size(), equalTo(otherIndices.size()));
|
|
|
for (String indexName : otherIndices) {
|
|
@@ -61,7 +66,7 @@ public class DeleteDataStreamTransportActionTests extends ESTestCase {
|
|
|
);
|
|
|
|
|
|
DeleteDataStreamAction.Request req = new DeleteDataStreamAction.Request(new String[] { "ba*", "eggplant" });
|
|
|
- ClusterState newState = DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), cs, req);
|
|
|
+ ClusterState newState = DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), iner, cs, req);
|
|
|
assertThat(newState.metadata().dataStreams().size(), equalTo(1));
|
|
|
DataStream remainingDataStream = newState.metadata().dataStreams().get(dataStreamNames[0]);
|
|
|
assertNotNull(remainingDataStream);
|
|
@@ -88,7 +93,7 @@ public class DeleteDataStreamTransportActionTests extends ESTestCase {
|
|
|
DeleteDataStreamAction.Request req = new DeleteDataStreamAction.Request(new String[] { dataStreamName });
|
|
|
SnapshotInProgressException e = expectThrows(
|
|
|
SnapshotInProgressException.class,
|
|
|
- () -> DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), snapshotCs, req)
|
|
|
+ () -> DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), iner, snapshotCs, req)
|
|
|
);
|
|
|
|
|
|
assertThat(
|
|
@@ -129,8 +134,20 @@ public class DeleteDataStreamTransportActionTests extends ESTestCase {
|
|
|
),
|
|
|
List.of()
|
|
|
);
|
|
|
- DeleteDataStreamAction.Request req = new DeleteDataStreamAction.Request(new String[] { dataStreamName });
|
|
|
- ClusterState newState = DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), cs, req);
|
|
|
+
|
|
|
+ expectThrows(
|
|
|
+ ResourceNotFoundException.class,
|
|
|
+ () -> DeleteDataStreamTransportAction.removeDataStream(
|
|
|
+ getMetadataDeleteIndexService(),
|
|
|
+ iner,
|
|
|
+ cs,
|
|
|
+ new DeleteDataStreamAction.Request(new String[] { dataStreamName })
|
|
|
+ )
|
|
|
+ );
|
|
|
+
|
|
|
+ DeleteDataStreamAction.Request req = new DeleteDataStreamAction.Request(new String[] { dataStreamName + "*" });
|
|
|
+ ClusterState newState = DeleteDataStreamTransportAction.removeDataStream(getMetadataDeleteIndexService(), iner, cs, req);
|
|
|
+ assertThat(newState, sameInstance(cs));
|
|
|
assertThat(newState.metadata().dataStreams().size(), equalTo(cs.metadata().dataStreams().size()));
|
|
|
assertThat(
|
|
|
newState.metadata().dataStreams().keySet(),
|