2525import org .elasticsearch .common .settings .IndexScopedSettings ;
2626import org .elasticsearch .common .settings .Settings ;
2727import org .elasticsearch .core .TimeValue ;
28- import org .elasticsearch .datastreams .lifecycle .DataStreamLifecycleFixtures ;
2928import org .elasticsearch .env .Environment ;
3029import org .elasticsearch .index .IndexSettingProviders ;
3130import org .elasticsearch .indices .EmptySystemIndices ;
4443import static org .elasticsearch .cluster .metadata .MetadataIndexTemplateService .composeDataLifecycles ;
4544import static org .elasticsearch .common .settings .Settings .builder ;
4645import static org .elasticsearch .datastreams .MetadataDataStreamRolloverServiceTests .createSettingsProvider ;
46+ import static org .elasticsearch .datastreams .lifecycle .DataStreamLifecycleFixtures .randomResettable ;
47+ import static org .elasticsearch .datastreams .lifecycle .DataStreamLifecycleFixtures .randomSamplingMethod ;
4748import static org .elasticsearch .indices .ShardLimitValidator .SETTING_CLUSTER_MAX_SHARDS_PER_NODE ;
4849import static org .hamcrest .Matchers .containsString ;
4950import static org .hamcrest .Matchers .equalTo ;
@@ -154,7 +155,7 @@ public void testLifecycleComposition() {
154155 true ,
155156 randomRetention (),
156157 downsamplingRounds ,
157- randomSamplingMethod (downsamplingRounds )
158+ randomResettable (() -> randomSamplingMethod (downsamplingRounds . get ()) )
158159 );
159160 List <DataStreamLifecycle .Template > lifecycles = List .of (lifecycle );
160161 DataStreamLifecycle result = composeDataLifecycles (lifecycles ).build ();
@@ -167,11 +168,12 @@ public void testLifecycleComposition() {
167168 // If the last lifecycle is missing a property (apart from enabled) we keep the latest from the previous ones
168169 // Enabled is always true unless it's explicitly set to false
169170 {
171+ List <DataStreamLifecycle .DownsamplingRound > downsamplingRounds = randomRounds ();
170172 DataStreamLifecycle .Template lifecycle = DataStreamLifecycle .createDataLifecycleTemplate (
171173 false ,
172174 randomPositiveTimeValue (),
173- randomRounds () ,
174- DataStreamLifecycleFixtures . randomSamplingMethod ()
175+ downsamplingRounds ,
176+ randomSamplingMethod (downsamplingRounds )
175177 );
176178 List <DataStreamLifecycle .Template > lifecycles = List .of (lifecycle , DataStreamLifecycle .Template .DATA_DEFAULT );
177179 DataStreamLifecycle result = composeDataLifecycles (lifecycles ).build ();
@@ -300,18 +302,4 @@ private static ResettableValue<List<DataStreamLifecycle.DownsamplingRound>> rand
300302 default -> throw new IllegalStateException ("Unknown randomisation path" );
301303 };
302304 }
303-
304- private static ResettableValue <DownsampleConfig .SamplingMethod > randomSamplingMethod (
305- ResettableValue <List <DataStreamLifecycle .DownsamplingRound >> rounds
306- ) {
307- if (rounds .get () == null ) {
308- return randomBoolean () ? ResettableValue .undefined () : ResettableValue .reset ();
309- } else {
310- return randomBoolean () ? ResettableValue .create (DataStreamLifecycleFixtures .randomSamplingMethod ()) : ResettableValue .reset ();
311- }
312- }
313-
314- private static DownsampleConfig .SamplingMethod randomSamplingMethod (List <DataStreamLifecycle .DownsamplingRound > rounds ) {
315- return rounds == null ? null : DataStreamLifecycleFixtures .randomSamplingMethod ();
316- }
317305}
0 commit comments