add index.lifecycle.skip setting for skipping policy execution (#30766)
It is useful to pause execution of policies for indices in case the cluster is not in a good place to execute certain actions.
This commit is contained in:
parent
08e09a7d26
commit
d97cba3a16
|
@ -23,6 +23,7 @@ public class LifecycleSettings {
|
||||||
public static final String LIFECYCLE_STEP_TIME = "index.lifecycle.step_time";
|
public static final String LIFECYCLE_STEP_TIME = "index.lifecycle.step_time";
|
||||||
public static final String LIFECYCLE_FAILED_STEP = "index.lifecycle.failed_step";
|
public static final String LIFECYCLE_FAILED_STEP = "index.lifecycle.failed_step";
|
||||||
public static final String LIFECYCLE_STEP_INFO = "index.lifecycle.step_info";
|
public static final String LIFECYCLE_STEP_INFO = "index.lifecycle.step_info";
|
||||||
|
public static final String LIFECYCLE_SKIP = "index.lifecycle.skip";
|
||||||
|
|
||||||
// NORELEASE: we should probably change the default to something other than three seconds for initial release
|
// NORELEASE: we should probably change the default to something other than three seconds for initial release
|
||||||
public static final Setting<TimeValue> LIFECYCLE_POLL_INTERVAL_SETTING = Setting.positiveTimeSetting(LIFECYCLE_POLL_INTERVAL,
|
public static final Setting<TimeValue> LIFECYCLE_POLL_INTERVAL_SETTING = Setting.positiveTimeSetting(LIFECYCLE_POLL_INTERVAL,
|
||||||
|
@ -47,4 +48,6 @@ public class LifecycleSettings {
|
||||||
-1L, -1L, Setting.Property.Dynamic, Setting.Property.IndexScope);
|
-1L, -1L, Setting.Property.Dynamic, Setting.Property.IndexScope);
|
||||||
public static final Setting<String> LIFECYCLE_STEP_INFO_SETTING = Setting.simpleString(LIFECYCLE_STEP_INFO, Setting.Property.Dynamic,
|
public static final Setting<String> LIFECYCLE_STEP_INFO_SETTING = Setting.simpleString(LIFECYCLE_STEP_INFO, Setting.Property.Dynamic,
|
||||||
Setting.Property.IndexScope, Setting.Property.NotCopyableOnResize);
|
Setting.Property.IndexScope, Setting.Property.NotCopyableOnResize);
|
||||||
|
public static final Setting<Boolean> LIFECYCLE_SKIP_SETTING = Setting.boolSetting(LIFECYCLE_SKIP, false,
|
||||||
|
Setting.Property.Dynamic, Setting.Property.IndexScope);
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,6 +102,7 @@ public class IndexLifecycle extends Plugin implements ActionPlugin {
|
||||||
LifecycleSettings.LIFECYCLE_STEP_SETTING,
|
LifecycleSettings.LIFECYCLE_STEP_SETTING,
|
||||||
LifecycleSettings.LIFECYCLE_STEP_INFO_SETTING,
|
LifecycleSettings.LIFECYCLE_STEP_INFO_SETTING,
|
||||||
LifecycleSettings.LIFECYCLE_FAILED_STEP_SETTING,
|
LifecycleSettings.LIFECYCLE_FAILED_STEP_SETTING,
|
||||||
|
LifecycleSettings.LIFECYCLE_SKIP_SETTING,
|
||||||
RolloverAction.LIFECYCLE_ROLLOVER_ALIAS_SETTING);
|
RolloverAction.LIFECYCLE_ROLLOVER_ALIAS_SETTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,11 @@ public class IndexLifecycleRunner {
|
||||||
public void runPolicy(String policy, IndexMetaData indexMetaData, ClusterState currentState,
|
public void runPolicy(String policy, IndexMetaData indexMetaData, ClusterState currentState,
|
||||||
boolean fromClusterStateChange) {
|
boolean fromClusterStateChange) {
|
||||||
Settings indexSettings = indexMetaData.getSettings();
|
Settings indexSettings = indexMetaData.getSettings();
|
||||||
|
if (LifecycleSettings.LIFECYCLE_SKIP_SETTING.get(indexSettings)) {
|
||||||
|
logger.info("skipping policy [" + policy + "] for index [" + indexMetaData.getIndex().getName() + "]."
|
||||||
|
+ LifecycleSettings.LIFECYCLE_SKIP + "== true");
|
||||||
|
return;
|
||||||
|
}
|
||||||
Step currentStep = getCurrentStep(stepRegistry, policy, indexSettings);
|
Step currentStep = getCurrentStep(stepRegistry, policy, indexSettings);
|
||||||
logger.debug("running policy with current-step[" + currentStep.getKey() + "]");
|
logger.debug("running policy with current-step[" + currentStep.getKey() + "]");
|
||||||
if (currentStep instanceof TerminalPolicyStep) {
|
if (currentStep instanceof TerminalPolicyStep) {
|
||||||
|
|
|
@ -44,6 +44,7 @@ import java.util.Objects;
|
||||||
import java.util.SortedMap;
|
import java.util.SortedMap;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
|
||||||
public class IndexLifecycleRunnerTests extends ESTestCase {
|
public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
|
|
||||||
|
@ -62,7 +63,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
String policyName = "async_action_policy";
|
String policyName = "async_action_policy";
|
||||||
TerminalPolicyStep step = TerminalPolicyStep.INSTANCE;
|
TerminalPolicyStep step = TerminalPolicyStep.INSTANCE;
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -77,7 +78,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
StepKey stepKey = new StepKey("phase", "action", "cluster_state_action_step");
|
StepKey stepKey = new StepKey("phase", "action", "cluster_state_action_step");
|
||||||
MockClusterStateWaitStep step = new MockClusterStateWaitStep(stepKey, null);
|
MockClusterStateWaitStep step = new MockClusterStateWaitStep(stepKey, null);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT)
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT)
|
||||||
.put(LifecycleSettings.LIFECYCLE_PHASE, stepKey.getPhase())
|
.put(LifecycleSettings.LIFECYCLE_PHASE, stepKey.getPhase())
|
||||||
|
@ -95,7 +96,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
StepKey stepKey = new StepKey("phase", "action", "cluster_state_action_step");
|
StepKey stepKey = new StepKey("phase", "action", "cluster_state_action_step");
|
||||||
MockInitializePolicyContextStep step = new MockInitializePolicyContextStep(stepKey, null);
|
MockInitializePolicyContextStep step = new MockInitializePolicyContextStep(stepKey, null);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -113,7 +114,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
MockClusterStateWaitStep step = new MockClusterStateWaitStep(stepKey, null);
|
MockClusterStateWaitStep step = new MockClusterStateWaitStep(stepKey, null);
|
||||||
step.setWillComplete(true);
|
step.setWillComplete(true);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -131,7 +132,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
MockAsyncActionStep step = new MockAsyncActionStep(stepKey, null);
|
MockAsyncActionStep step = new MockAsyncActionStep(stepKey, null);
|
||||||
step.setWillComplete(true);
|
step.setWillComplete(true);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -151,7 +152,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
step.setWillComplete(true);
|
step.setWillComplete(true);
|
||||||
step.setIndexSurvives(false);
|
step.setIndexSurvives(false);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -168,7 +169,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
MockAsyncActionStep step = new MockAsyncActionStep(stepKey, null);
|
MockAsyncActionStep step = new MockAsyncActionStep(stepKey, null);
|
||||||
step.setWillComplete(false);
|
step.setWillComplete(false);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -186,7 +187,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
Exception expectedException = new RuntimeException();
|
Exception expectedException = new RuntimeException();
|
||||||
step.setException(expectedException);
|
step.setException(expectedException);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -206,7 +207,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
Exception expectedException = new RuntimeException();
|
Exception expectedException = new RuntimeException();
|
||||||
step.setException(expectedException);
|
step.setException(expectedException);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -223,7 +224,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
MockAsyncWaitStep step = new MockAsyncWaitStep(stepKey, null);
|
MockAsyncWaitStep step = new MockAsyncWaitStep(stepKey, null);
|
||||||
step.setWillComplete(true);
|
step.setWillComplete(true);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -244,7 +245,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
step.expectedInfo(stepInfo);
|
step.expectedInfo(stepInfo);
|
||||||
step.setWillComplete(false);
|
step.setWillComplete(false);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -265,7 +266,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
step.expectedInfo(stepInfo);
|
step.expectedInfo(stepInfo);
|
||||||
step.setWillComplete(false);
|
step.setWillComplete(false);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -283,7 +284,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
Exception expectedException = new RuntimeException();
|
Exception expectedException = new RuntimeException();
|
||||||
step.setException(expectedException);
|
step.setException(expectedException);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -303,7 +304,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
Exception expectedException = new RuntimeException();
|
Exception expectedException = new RuntimeException();
|
||||||
step.setException(expectedException);
|
step.setException(expectedException);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -319,7 +320,7 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
StepKey stepKey = new StepKey("phase", "action", "cluster_state_action_step");
|
StepKey stepKey = new StepKey("phase", "action", "cluster_state_action_step");
|
||||||
MockStep step = new MockStep(stepKey, null);
|
MockStep step = new MockStep(stepKey, null);
|
||||||
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policyName, step);
|
||||||
ClusterService clusterService = Mockito.mock(ClusterService.class);
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
IndexMetaData indexMetaData = IndexMetaData.builder("my_index").settings(settings(Version.CURRENT))
|
||||||
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
.numberOfShards(randomIntBetween(1, 5)).numberOfReplicas(randomIntBetween(0, 5)).build();
|
||||||
|
@ -678,7 +679,6 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
String indexName = "my_index";
|
String indexName = "my_index";
|
||||||
StepKey currentStep = new StepKey("current_phase", "current_action", "current_step");
|
StepKey currentStep = new StepKey("current_phase", "current_action", "current_step");
|
||||||
RandomStepInfo stepInfo = new RandomStepInfo();
|
RandomStepInfo stepInfo = new RandomStepInfo();
|
||||||
|
|
||||||
ClusterState clusterState = buildClusterState(indexName,
|
ClusterState clusterState = buildClusterState(indexName,
|
||||||
Settings.builder().put(LifecycleSettings.LIFECYCLE_PHASE, currentStep.getPhase())
|
Settings.builder().put(LifecycleSettings.LIFECYCLE_PHASE, currentStep.getPhase())
|
||||||
.put(LifecycleSettings.LIFECYCLE_ACTION, currentStep.getAction())
|
.put(LifecycleSettings.LIFECYCLE_ACTION, currentStep.getAction())
|
||||||
|
@ -688,6 +688,25 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
|
||||||
assertClusterStateStepInfo(clusterState, index, currentStep, newClusterState, stepInfo);
|
assertClusterStateStepInfo(clusterState, index, currentStep, newClusterState, stepInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void testSkipped() {
|
||||||
|
String policy = randomAlphaOfLength(5);
|
||||||
|
String index = randomAlphaOfLength(10);
|
||||||
|
ClusterState clusterState = buildClusterState(index,
|
||||||
|
Settings.builder().put(LifecycleSettings.LIFECYCLE_NAME, policy)
|
||||||
|
.put(LifecycleSettings.LIFECYCLE_PHASE, randomAlphaOfLength(5))
|
||||||
|
.put(LifecycleSettings.LIFECYCLE_ACTION, randomAlphaOfLength(5))
|
||||||
|
.put(LifecycleSettings.LIFECYCLE_STEP, randomAlphaOfLength(5))
|
||||||
|
.put(LifecycleSettings.LIFECYCLE_SKIP, true));
|
||||||
|
Step step = mock(randomFrom(TerminalPolicyStep.class, InitializePolicyContextStep.class,
|
||||||
|
ClusterStateWaitStep.class, AsyncActionStep.class, AsyncWaitStep.class));
|
||||||
|
PolicyStepsRegistry stepRegistry = createOneStepPolicyStepRegistry(policy, step);
|
||||||
|
ClusterService clusterService = mock(ClusterService.class);
|
||||||
|
IndexLifecycleRunner runner = new IndexLifecycleRunner(stepRegistry, clusterService, () -> 0L);
|
||||||
|
runner.runPolicy(policy, clusterState.metaData().index(index), clusterState, randomBoolean());
|
||||||
|
Mockito.verifyZeroInteractions(clusterService);
|
||||||
|
}
|
||||||
|
|
||||||
private ClusterState buildClusterState(String indexName, Settings.Builder indexSettingsBuilder) {
|
private ClusterState buildClusterState(String indexName, Settings.Builder indexSettingsBuilder) {
|
||||||
Settings indexSettings = indexSettingsBuilder.put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1)
|
Settings indexSettings = indexSettingsBuilder.put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1)
|
||||||
.put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0).put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build();
|
.put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 0).put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build();
|
||||||
|
|
Loading…
Reference in New Issue