11
11
import org .elasticsearch .action .datastreams .GetDataStreamAction ;
12
12
import org .elasticsearch .cluster .ClusterName ;
13
13
import org .elasticsearch .cluster .ClusterState ;
14
+ import org .elasticsearch .cluster .metadata .ComponentTemplate ;
14
15
import org .elasticsearch .cluster .metadata .ComposableIndexTemplate ;
15
16
import org .elasticsearch .cluster .metadata .DataStream ;
16
17
import org .elasticsearch .cluster .metadata .DataStreamFailureStoreSettings ;
40
41
import java .time .temporal .ChronoUnit ;
41
42
import java .util .ArrayList ;
42
43
import java .util .List ;
44
+ import java .util .Map ;
43
45
import java .util .Set ;
44
46
import java .util .stream .Collectors ;
45
47
@@ -543,11 +545,44 @@ public void testGetEffectiveSettingsTemplateOnlySettings() {
543
545
GetDataStreamAction .Request req = new GetDataStreamAction .Request (TEST_REQUEST_TIMEOUT , new String [] {});
544
546
final String templatePolicy = "templatePolicy" ;
545
547
final String templateIndexMode = IndexMode .LOOKUP .getName ();
546
- final String dataStreamPolicy = "dataStreamPolicy" ;
547
- final String dataStreamIndexMode = IndexMode .LOGSDB .getName ();
548
548
549
549
ClusterState state = getClusterStateWithDataStreamWithSettings (
550
550
projectId ,
551
+ Settings .builder ()
552
+ .put (IndexMetadata .LIFECYCLE_NAME , templatePolicy )
553
+ .put (IndexSettings .MODE .getKey (), templateIndexMode )
554
+ .build (),
555
+ Settings .EMPTY ,
556
+ Settings .EMPTY
557
+ );
558
+
559
+ GetDataStreamAction .Response response = TransportGetDataStreamsAction .innerOperation (
560
+ state .projectState (projectId ),
561
+ req ,
562
+ resolver ,
563
+ systemIndices ,
564
+ ClusterSettings .createBuiltInClusterSettings (),
565
+ dataStreamGlobalRetentionSettings ,
566
+ emptyDataStreamFailureStoreSettings ,
567
+ new IndexSettingProviders (Set .of ()),
568
+ null
569
+ );
570
+ assertNotNull (response .getDataStreams ());
571
+ assertThat (response .getDataStreams ().size (), equalTo (1 ));
572
+ assertThat (response .getDataStreams ().get (0 ).getIlmPolicy (), equalTo (templatePolicy ));
573
+ assertThat (response .getDataStreams ().get (0 ).getIndexModeName (), equalTo (templateIndexMode ));
574
+ }
575
+
576
+ public void testGetEffectiveSettingsComponentTemplateOnlySettings () {
577
+ // Set a lifecycle only in the template, and make sure that is in the response:
578
+ ProjectId projectId = randomProjectIdOrDefault ();
579
+ GetDataStreamAction .Request req = new GetDataStreamAction .Request (TEST_REQUEST_TIMEOUT , new String [] {});
580
+ final String templatePolicy = "templatePolicy" ;
581
+ final String templateIndexMode = IndexMode .LOOKUP .getName ();
582
+
583
+ ClusterState state = getClusterStateWithDataStreamWithSettings (
584
+ projectId ,
585
+ Settings .EMPTY ,
551
586
Settings .builder ()
552
587
.put (IndexMetadata .LIFECYCLE_NAME , templatePolicy )
553
588
.put (IndexSettings .MODE .getKey (), templateIndexMode )
@@ -582,6 +617,10 @@ public void testGetEffectiveSettings() {
582
617
// Now set a lifecycle in both the template and the data stream, and make sure the response has the data stream one:
583
618
ClusterState state = getClusterStateWithDataStreamWithSettings (
584
619
projectId ,
620
+ Settings .builder ()
621
+ .put (IndexMetadata .LIFECYCLE_NAME , templatePolicy )
622
+ .put (IndexSettings .MODE .getKey (), templateIndexMode )
623
+ .build (),
585
624
Settings .builder ()
586
625
.put (IndexMetadata .LIFECYCLE_NAME , templatePolicy )
587
626
.put (IndexSettings .MODE .getKey (), templateIndexMode )
@@ -611,6 +650,7 @@ public void testGetEffectiveSettings() {
611
650
private static ClusterState getClusterStateWithDataStreamWithSettings (
612
651
ProjectId projectId ,
613
652
Settings templateSettings ,
653
+ Settings componentTemplateSettings ,
614
654
Settings dataStreamSettings
615
655
) {
616
656
String dataStreamName = "data-stream-1" ;
@@ -625,8 +665,16 @@ private static ClusterState getClusterStateWithDataStreamWithSettings(
625
665
.indexPatterns (List .of ("*" ))
626
666
.template (Template .builder ().settings (templateSettings ))
627
667
.dataStreamTemplate (new ComposableIndexTemplate .DataStreamTemplate ())
668
+ .componentTemplates (List .of ("component_template_1" ))
628
669
.build ()
629
670
);
671
+ ComponentTemplate componentTemplate = new ComponentTemplate (
672
+ Template .builder ().settings (componentTemplateSettings ).build (),
673
+ null ,
674
+ null ,
675
+ null
676
+ );
677
+ builder .componentTemplates (Map .of ("component_template_1" , componentTemplate ));
630
678
631
679
List <IndexMetadata > backingIndices = new ArrayList <>();
632
680
for (int backingIndexNumber = 1 ; backingIndexNumber <= numberOfBackingIndices ; backingIndexNumber ++) {
0 commit comments