|
@@ -552,6 +552,47 @@ public class TransportRolloverActionTests extends ESTestCase {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public void testRolloverAliasToDataStreamFails() throws Exception {
|
|
|
+ final IndexMetadata backingIndexMetadata = IndexMetadata.builder(".ds-logs-ds-000001")
|
|
|
+ .settings(settings(IndexVersion.current()))
|
|
|
+ .numberOfShards(1)
|
|
|
+ .numberOfReplicas(1)
|
|
|
+ .build();
|
|
|
+ final DataStream dataStream = new DataStream(
|
|
|
+ "logs-ds",
|
|
|
+ List.of(backingIndexMetadata.getIndex()),
|
|
|
+ 1,
|
|
|
+ Map.of(),
|
|
|
+ false,
|
|
|
+ false,
|
|
|
+ false,
|
|
|
+ false,
|
|
|
+ IndexMode.STANDARD
|
|
|
+ );
|
|
|
+ Metadata.Builder metadataBuilder = Metadata.builder().put(backingIndexMetadata, false).put(dataStream);
|
|
|
+ metadataBuilder.put("ds-alias", dataStream.getName(), true, null);
|
|
|
+ final ClusterState stateBefore = ClusterState.builder(ClusterName.DEFAULT).metadata(metadataBuilder).build();
|
|
|
+
|
|
|
+ final TransportRolloverAction transportRolloverAction = new TransportRolloverAction(
|
|
|
+ mock(TransportService.class),
|
|
|
+ mockClusterService,
|
|
|
+ mockThreadPool,
|
|
|
+ mockActionFilters,
|
|
|
+ mockIndexNameExpressionResolver,
|
|
|
+ rolloverService,
|
|
|
+ mockClient,
|
|
|
+ mockAllocationService,
|
|
|
+ mockMetadataDataStreamService,
|
|
|
+ dataStreamAutoShardingService
|
|
|
+ );
|
|
|
+
|
|
|
+ final PlainActionFuture<RolloverResponse> future = new PlainActionFuture<>();
|
|
|
+ RolloverRequest rolloverRequest = new RolloverRequest("ds-alias", null);
|
|
|
+ transportRolloverAction.masterOperation(mock(CancellableTask.class), rolloverRequest, stateBefore, future);
|
|
|
+ IllegalStateException illegalStateException = expectThrows(IllegalStateException.class, future::actionGet);
|
|
|
+ assertThat(illegalStateException.getMessage(), containsString("Aliases to data streams cannot be rolled over."));
|
|
|
+ }
|
|
|
+
|
|
|
private IndicesStatsResponse createIndicesStatResponse(String indexName, long totalDocs, long primariesDocs) {
|
|
|
final CommonStats primaryStats = mock(CommonStats.class);
|
|
|
when(primaryStats.getDocs()).thenReturn(new DocsStats(primariesDocs, 0, between(1, 10000)));
|