@@ -78,6 +78,7 @@ public class DataStreamsSnapshotsIT extends AbstractSnapshotIntegTestCase {
78
78
private String dsBackingIndexName ;
79
79
private String otherDsBackingIndexName ;
80
80
private String ds2BackingIndexName ;
81
+ private String otherDs2BackingIndexName ;
81
82
private String id ;
82
83
83
84
@ Override
@@ -109,6 +110,7 @@ public void setup() throws Exception {
109
110
otherDsBackingIndexName = getDataStreamResponse .getDataStreams ().get (1 ).getDataStream ().getIndices ().get (0 ).getName ();
110
111
// Will be used in some tests, to test renaming while restoring a snapshot:
111
112
ds2BackingIndexName = dsBackingIndexName .replace ("-ds-" , "-ds2-" );
113
+ otherDs2BackingIndexName = otherDsBackingIndexName .replace ("-other-ds-" , "-other-ds2-" );
112
114
113
115
IndexResponse indexResponse = client .prepareIndex ("ds" ).setOpType (DocWriteRequest .OpType .CREATE ).setSource (DOCUMENT_SOURCE ).get ();
114
116
assertEquals (DocWriteResponse .Result .CREATED , indexResponse .getResult ());
@@ -515,6 +517,48 @@ public void testRename() throws Exception {
515
517
assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds" ).get (0 ).getWriteDataStream (), equalTo ("other-ds" ));
516
518
}
517
519
520
+ public void testRenameWriteDataStream () throws Exception {
521
+ CreateSnapshotResponse createSnapshotResponse = client .admin ()
522
+ .cluster ()
523
+ .prepareCreateSnapshot (REPO , SNAPSHOT )
524
+ .setWaitForCompletion (true )
525
+ .setIndices ("other-ds" )
526
+ .setIncludeGlobalState (false )
527
+ .get ();
528
+
529
+ RestStatus status = createSnapshotResponse .getSnapshotInfo ().status ();
530
+ assertEquals (RestStatus .OK , status );
531
+
532
+ client .admin ()
533
+ .cluster ()
534
+ .prepareRestoreSnapshot (REPO , SNAPSHOT )
535
+ .setWaitForCompletion (true )
536
+ .setIndices ("other-ds" )
537
+ .setRenamePattern ("other-ds" )
538
+ .setRenameReplacement ("other-ds2" )
539
+ .get ();
540
+
541
+ GetDataStreamAction .Response ds = client .execute (
542
+ GetDataStreamAction .INSTANCE ,
543
+ new GetDataStreamAction .Request (new String [] { "other-ds2" })
544
+ ).get ();
545
+ assertEquals (1 , ds .getDataStreams ().size ());
546
+ assertEquals (1 , ds .getDataStreams ().get (0 ).getDataStream ().getIndices ().size ());
547
+ assertEquals (otherDs2BackingIndexName , ds .getDataStreams ().get (0 ).getDataStream ().getIndices ().get (0 ).getName ());
548
+
549
+ GetAliasesResponse getAliasesResponse = client .admin ().indices ().getAliases (new GetAliasesRequest ("my-alias" )).actionGet ();
550
+ assertThat (getAliasesResponse .getDataStreamAliases ().keySet (), containsInAnyOrder ("ds" , "other-ds" , "other-ds2" ));
551
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds2" ).size (), equalTo (1 ));
552
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds2" ).get (0 ).getName (), equalTo ("my-alias" ));
553
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds2" ).get (0 ).getWriteDataStream (), equalTo ("other-ds2" ));
554
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("ds" ).size (), equalTo (1 ));
555
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("ds" ).get (0 ).getName (), equalTo ("my-alias" ));
556
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("ds" ).get (0 ).getWriteDataStream (), equalTo ("other-ds2" ));
557
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds" ).size (), equalTo (1 ));
558
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds" ).get (0 ).getName (), equalTo ("my-alias" ));
559
+ assertThat (getAliasesResponse .getDataStreamAliases ().get ("other-ds" ).get (0 ).getWriteDataStream (), equalTo ("other-ds2" ));
560
+ }
561
+
518
562
public void testBackingIndexIsNotRenamedWhenRestoringDataStream () {
519
563
CreateSnapshotResponse createSnapshotResponse = client .admin ()
520
564
.cluster ()
0 commit comments