@@ -737,6 +737,96 @@ public void testAliasActionsFailOnDataStreamBackingIndices() throws Exception {
737
737
);
738
738
}
739
739
740
+ public void testDataStreamAliasesMixedExpressionValidation () throws Exception {
741
+ createIndex ("metrics-myindex" );
742
+ putComposableIndexTemplate ("id1" , List .of ("metrics-*" ));
743
+ String dataStreamName = "metrics-foo" ;
744
+ CreateDataStreamAction .Request createDataStreamRequest = new CreateDataStreamAction .Request (dataStreamName );
745
+ client ().execute (CreateDataStreamAction .INSTANCE , createDataStreamRequest ).get ();
746
+
747
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" ).aliases ("my-alias" );
748
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
749
+ aliasesAddRequest .addAliasAction (addAction );
750
+ Exception e = expectThrows (IllegalArgumentException .class , () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ());
751
+ assertThat (e .getMessage (), equalTo ("expressions [metrics-*] that match with both data streams and regular indices are disallowed" ));
752
+ }
753
+
754
+ public void testDataStreamAliasesUnsupportedParametersValidation () throws Exception {
755
+ putComposableIndexTemplate ("id1" , List .of ("metrics-*" ));
756
+ String dataStreamName = "metrics-foo" ;
757
+ CreateDataStreamAction .Request createDataStreamRequest = new CreateDataStreamAction .Request (dataStreamName );
758
+ client ().execute (CreateDataStreamAction .INSTANCE , createDataStreamRequest ).get ();
759
+
760
+ {
761
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" ).aliases ("my-alias" ).filter ("[filter]" );
762
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
763
+ aliasesAddRequest .addAliasAction (addAction );
764
+ Exception e = expectThrows (
765
+ IllegalArgumentException .class ,
766
+ () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ()
767
+ );
768
+ assertThat (e .getMessage (), equalTo ("aliases that point to data streams don't support filters" ));
769
+ }
770
+ {
771
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" ).aliases ("my-alias" ).routing ("[routing]" );
772
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
773
+ aliasesAddRequest .addAliasAction (addAction );
774
+ Exception e = expectThrows (
775
+ IllegalArgumentException .class ,
776
+ () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ()
777
+ );
778
+ assertThat (e .getMessage (), equalTo ("aliases that point to data streams don't support routing" ));
779
+ }
780
+ {
781
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" )
782
+ .aliases ("my-alias" )
783
+ .indexRouting ("[index_routing]" );
784
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
785
+ aliasesAddRequest .addAliasAction (addAction );
786
+ Exception e = expectThrows (
787
+ IllegalArgumentException .class ,
788
+ () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ()
789
+ );
790
+ assertThat (e .getMessage (), equalTo ("aliases that point to data streams don't support index_routing" ));
791
+ }
792
+ {
793
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" )
794
+ .aliases ("my-alias" )
795
+ .searchRouting ("[search_routing]" );
796
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
797
+ aliasesAddRequest .addAliasAction (addAction );
798
+ Exception e = expectThrows (
799
+ IllegalArgumentException .class ,
800
+ () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ()
801
+ );
802
+ assertThat (e .getMessage (), equalTo ("aliases that point to data streams don't support search_routing" ));
803
+ }
804
+ {
805
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" )
806
+ .aliases ("my-alias" )
807
+ .writeIndex (randomBoolean ());
808
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
809
+ aliasesAddRequest .addAliasAction (addAction );
810
+ Exception e = expectThrows (
811
+ IllegalArgumentException .class ,
812
+ () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ()
813
+ );
814
+ assertThat (e .getMessage (), equalTo ("aliases that point to data streams don't support is_write_index" ));
815
+ }
816
+ {
817
+ AliasActions addAction = new AliasActions (AliasActions .Type .ADD ).index ("metrics-*" )
818
+ .aliases ("my-alias" )
819
+ .isHidden (randomBoolean ());
820
+ IndicesAliasesRequest aliasesAddRequest = new IndicesAliasesRequest ();
821
+ aliasesAddRequest .addAliasAction (addAction );
822
+ Exception e = expectThrows (
823
+ IllegalArgumentException .class ,
824
+ () -> client ().admin ().indices ().aliases (aliasesAddRequest ).actionGet ()
825
+ );
826
+ assertThat (e .getMessage (), equalTo ("aliases that point to data streams don't support is_hidden" ));
827
+ }
828
+ }
829
+
740
830
public void testTimestampFieldCustomAttributes () throws Exception {
741
831
String mapping = "{\n "
742
832
+ " \" properties\" : {\n "
0 commit comments