@@ -212,44 +212,17 @@ protected void masterOperation(
212212 final String trialRolloverIndexName = trialRolloverNames .rolloverName ();
213213 MetadataCreateIndexService .validateIndexName (trialRolloverIndexName , metadata , clusterState .routingTable ());
214214
215- boolean isDataStream = metadata .dataStreams ().containsKey (resolvedRolloverTarget .resource ());
216215 if (rolloverRequest .isLazy ()) {
217- if (isDataStream == false || rolloverRequest .getConditions ().hasConditions ()) {
218- String message ;
219- if (isDataStream ) {
220- message = "Lazy rollover can be used only without any conditions."
221- + " Please remove the conditions from the request body or the query parameter 'lazy'." ;
222- } else if (rolloverRequest .getConditions ().hasConditions () == false ) {
223- message = "Lazy rollover can be applied only on a data stream." + " Please remove the query parameter 'lazy'." ;
224- } else {
225- message = "Lazy rollover can be applied only on a data stream with no conditions."
226- + " Please remove the query parameter 'lazy'." ;
227- }
228- listener .onFailure (new IllegalArgumentException (message ));
229- return ;
230- }
231- if (rolloverRequest .isDryRun () == false ) {
232- metadataDataStreamsService .setRolloverOnWrite (
233- resolvedRolloverTarget .resource (),
234- true ,
235- targetFailureStore ,
236- rolloverRequest .ackTimeout (),
237- rolloverRequest .masterNodeTimeout (),
238- listener .map (
239- response -> new RolloverResponse (
240- trialSourceIndexName ,
241- trialRolloverIndexName ,
242- Map .of (),
243- false ,
244- false ,
245- response .isAcknowledged (),
246- false ,
247- response .isAcknowledged ()
248- )
249- )
250- );
251- return ;
252- }
216+ markForLazyRollover (
217+ rolloverRequest ,
218+ listener ,
219+ metadata ,
220+ resolvedRolloverTarget ,
221+ targetFailureStore ,
222+ trialSourceIndexName ,
223+ trialRolloverIndexName
224+ );
225+ return ;
253226 }
254227
255228 final IndexAbstraction rolloverTargetAbstraction = clusterState .metadata ()
@@ -345,7 +318,7 @@ protected void masterOperation(
345318 false ,
346319 false ,
347320 false ,
348- rolloverRequest . isLazy ()
321+ false
349322 );
350323
351324 // If this is a dry run, return with the results without invoking a cluster state update
@@ -373,6 +346,57 @@ protected void masterOperation(
373346 );
374347 }
375348
349+ private void markForLazyRollover (
350+ RolloverRequest rolloverRequest ,
351+ ActionListener <RolloverResponse > listener ,
352+ Metadata metadata ,
353+ ResolvedExpression resolvedRolloverTarget ,
354+ boolean targetFailureStore ,
355+ String trialSourceIndexName ,
356+ String trialRolloverIndexName
357+ ) {
358+ boolean isDataStream = metadata .dataStreams ().containsKey (resolvedRolloverTarget .resource ());
359+ if (isDataStream == false || rolloverRequest .getConditions ().hasConditions ()) {
360+ String message ;
361+ if (isDataStream ) {
362+ message = "Lazy rollover can be used only without any conditions."
363+ + " Please remove the conditions from the request body or the query parameter 'lazy'." ;
364+ } else if (rolloverRequest .getConditions ().hasConditions () == false ) {
365+ message = "Lazy rollover can be applied only on a data stream. Please remove the query parameter 'lazy'." ;
366+ } else {
367+ message = "Lazy rollover can be applied only on a data stream with no conditions."
368+ + " Please remove the query parameter 'lazy'." ;
369+ }
370+ listener .onFailure (new IllegalArgumentException (message ));
371+ return ;
372+ }
373+ if (rolloverRequest .isDryRun ()) {
374+ listener .onResponse (
375+ new RolloverResponse (trialSourceIndexName , trialRolloverIndexName , Map .of (), true , false , false , false , true )
376+ );
377+ return ;
378+ }
379+ metadataDataStreamsService .setRolloverOnWrite (
380+ resolvedRolloverTarget .resource (),
381+ true ,
382+ targetFailureStore ,
383+ rolloverRequest .ackTimeout (),
384+ rolloverRequest .masterNodeTimeout (),
385+ listener .map (
386+ response -> new RolloverResponse (
387+ trialSourceIndexName ,
388+ trialRolloverIndexName ,
389+ Map .of (),
390+ false ,
391+ false ,
392+ response .isAcknowledged (),
393+ false ,
394+ true
395+ )
396+ )
397+ );
398+ }
399+
376400 private void initializeFailureStore (
377401 RolloverRequest rolloverRequest ,
378402 ActionListener <RolloverResponse > listener ,
0 commit comments