|
@@ -22,12 +22,10 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_COLD_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_COLD_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_DELETE_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_DELETE_ACTIONS;
|
|
-import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_FROZEN_ACTIONS;
|
|
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_HOT_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_HOT_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_WARM_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.ORDERED_VALID_WARM_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_COLD_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_COLD_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_DELETE_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_DELETE_ACTIONS;
|
|
-import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_FROZEN_ACTIONS;
|
|
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_HOT_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_HOT_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_PHASES;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_PHASES;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_WARM_ACTIONS;
|
|
import static org.elasticsearch.xpack.core.ilm.TimeseriesLifecycleType.VALID_WARM_ACTIONS;
|
|
@@ -51,7 +49,7 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
|
|
|
|
public void testValidatePhases() {
|
|
public void testValidatePhases() {
|
|
boolean invalid = randomBoolean();
|
|
boolean invalid = randomBoolean();
|
|
- String phaseName = randomFrom("hot", "warm", "cold", "frozen", "delete");
|
|
|
|
|
|
+ String phaseName = randomFrom("hot", "warm", "cold", "delete");
|
|
if (invalid) {
|
|
if (invalid) {
|
|
phaseName += randomAlphaOfLength(5);
|
|
phaseName += randomAlphaOfLength(5);
|
|
}
|
|
}
|
|
@@ -144,27 +142,6 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public void testValidateFrozenPhase() {
|
|
|
|
- LifecycleAction invalidAction = null;
|
|
|
|
- Map<String, LifecycleAction> actions = randomSubsetOf(VALID_FROZEN_ACTIONS)
|
|
|
|
- .stream().map(this::getTestAction).collect(Collectors.toMap(LifecycleAction::getWriteableName, Function.identity()));
|
|
|
|
- if (randomBoolean()) {
|
|
|
|
- invalidAction = getTestAction(randomFrom("rollover", "delete", "forcemerge", "shrink"));
|
|
|
|
- actions.put(invalidAction.getWriteableName(), invalidAction);
|
|
|
|
- }
|
|
|
|
- Map<String, Phase> frozenPhase = Collections.singletonMap("frozen",
|
|
|
|
- new Phase("frozen", TimeValue.ZERO, actions));
|
|
|
|
-
|
|
|
|
- if (invalidAction != null) {
|
|
|
|
- Exception e = expectThrows(IllegalArgumentException.class,
|
|
|
|
- () -> TimeseriesLifecycleType.INSTANCE.validate(frozenPhase.values()));
|
|
|
|
- assertThat(e.getMessage(),
|
|
|
|
- equalTo("invalid action [" + invalidAction.getWriteableName() + "] defined in phase [frozen]"));
|
|
|
|
- } else {
|
|
|
|
- TimeseriesLifecycleType.INSTANCE.validate(frozenPhase.values());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public void testValidateDeletePhase() {
|
|
public void testValidateDeletePhase() {
|
|
LifecycleAction invalidAction = null;
|
|
LifecycleAction invalidAction = null;
|
|
Map<String, LifecycleAction> actions = VALID_DELETE_ACTIONS
|
|
Map<String, LifecycleAction> actions = VALID_DELETE_ACTIONS
|
|
@@ -256,15 +233,6 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
assertThat(orderedActions.indexOf(TEST_PRIORITY_ACTION), equalTo(0));
|
|
assertThat(orderedActions.indexOf(TEST_PRIORITY_ACTION), equalTo(0));
|
|
}
|
|
}
|
|
|
|
|
|
- public void testGetOrderedActionsFrozen() {
|
|
|
|
- Map<String, LifecycleAction> actions = VALID_FROZEN_ACTIONS
|
|
|
|
- .stream().map(this::getTestAction).collect(Collectors.toMap(LifecycleAction::getWriteableName, Function.identity()));
|
|
|
|
- Phase frozenPhase = new Phase("frozen", TimeValue.ZERO, actions);
|
|
|
|
- List<LifecycleAction> orderedActions = TimeseriesLifecycleType.INSTANCE.getOrderedActions(frozenPhase);
|
|
|
|
- assertTrue(isSorted(orderedActions, LifecycleAction::getWriteableName, ORDERED_VALID_FROZEN_ACTIONS));
|
|
|
|
- assertThat(orderedActions.indexOf(TEST_PRIORITY_ACTION), equalTo(0));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public void testGetOrderedActionsDelete() {
|
|
public void testGetOrderedActionsDelete() {
|
|
Map<String, LifecycleAction> actions = VALID_DELETE_ACTIONS
|
|
Map<String, LifecycleAction> actions = VALID_DELETE_ACTIONS
|
|
.stream().map(this::getTestAction).collect(Collectors.toMap(LifecycleAction::getWriteableName, Function.identity()));
|
|
.stream().map(this::getTestAction).collect(Collectors.toMap(LifecycleAction::getWriteableName, Function.identity()));
|
|
@@ -276,25 +244,21 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
public void testGetNextPhaseName() {
|
|
public void testGetNextPhaseName() {
|
|
assertNextPhaseName("hot", "warm", new String[] { "hot", "warm" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "hot", "warm" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "hot", "warm", "cold" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "hot", "warm", "cold" });
|
|
- assertNextPhaseName("hot", "warm", new String[] { "hot", "warm", "cold", "frozen"});
|
|
|
|
- assertNextPhaseName("hot", "warm", new String[] { "hot", "warm", "cold", "frozen", "delete" });
|
|
|
|
|
|
+ assertNextPhaseName("hot", "warm", new String[] { "hot", "warm", "cold", "delete"});
|
|
assertNextPhaseName("hot", "warm", new String[] { "warm", "cold", "delete" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "warm", "cold", "delete" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "warm", "cold", "delete" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "warm", "cold", "delete" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "warm", "delete" });
|
|
assertNextPhaseName("hot", "warm", new String[] { "warm", "delete" });
|
|
assertNextPhaseName("hot", "cold", new String[] { "cold", "delete" });
|
|
assertNextPhaseName("hot", "cold", new String[] { "cold", "delete" });
|
|
assertNextPhaseName("hot", "cold", new String[] { "cold" });
|
|
assertNextPhaseName("hot", "cold", new String[] { "cold" });
|
|
- assertNextPhaseName("hot", "frozen", new String[] { "hot", "frozen" });
|
|
|
|
- assertNextPhaseName("hot", "frozen", new String[] { "frozen" });
|
|
|
|
assertNextPhaseName("hot", "delete", new String[] { "hot", "delete" });
|
|
assertNextPhaseName("hot", "delete", new String[] { "hot", "delete" });
|
|
assertNextPhaseName("hot", "delete", new String[] { "delete" });
|
|
assertNextPhaseName("hot", "delete", new String[] { "delete" });
|
|
assertNextPhaseName("hot", null, new String[] { "hot" });
|
|
assertNextPhaseName("hot", null, new String[] { "hot" });
|
|
assertNextPhaseName("hot", null, new String[] {});
|
|
assertNextPhaseName("hot", null, new String[] {});
|
|
|
|
|
|
- assertNextPhaseName("warm", "cold", new String[] { "hot", "warm", "cold", "frozen", "delete" });
|
|
|
|
|
|
+ assertNextPhaseName("warm", "cold", new String[] { "hot", "warm", "cold", "delete" });
|
|
assertNextPhaseName("warm", "cold", new String[] { "warm", "cold", "delete" });
|
|
assertNextPhaseName("warm", "cold", new String[] { "warm", "cold", "delete" });
|
|
assertNextPhaseName("warm", "cold", new String[] { "cold", "delete" });
|
|
assertNextPhaseName("warm", "cold", new String[] { "cold", "delete" });
|
|
assertNextPhaseName("warm", "cold", new String[] { "cold" });
|
|
assertNextPhaseName("warm", "cold", new String[] { "cold" });
|
|
- assertNextPhaseName("warm", "frozen", new String[] { "hot", "warm", "frozen", "delete" });
|
|
|
|
assertNextPhaseName("warm", "delete", new String[] { "hot", "warm", "delete" });
|
|
assertNextPhaseName("warm", "delete", new String[] { "hot", "warm", "delete" });
|
|
assertNextPhaseName("warm", null, new String[] { "hot", "warm" });
|
|
assertNextPhaseName("warm", null, new String[] { "hot", "warm" });
|
|
assertNextPhaseName("warm", null, new String[] { "warm" });
|
|
assertNextPhaseName("warm", null, new String[] { "warm" });
|
|
@@ -306,34 +270,18 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
assertNextPhaseName("cold", "delete", new String[] { "cold", "delete" });
|
|
assertNextPhaseName("cold", "delete", new String[] { "cold", "delete" });
|
|
assertNextPhaseName("cold", "delete", new String[] { "delete" });
|
|
assertNextPhaseName("cold", "delete", new String[] { "delete" });
|
|
assertNextPhaseName("cold", "delete", new String[] { "hot", "warm", "delete" });
|
|
assertNextPhaseName("cold", "delete", new String[] { "hot", "warm", "delete" });
|
|
- assertNextPhaseName("cold", "frozen", new String[] { "cold", "frozen", "delete" });
|
|
|
|
- assertNextPhaseName("cold", "frozen", new String[] { "hot", "warm", "frozen", "delete" });
|
|
|
|
assertNextPhaseName("cold", null, new String[] { "hot", "warm", "cold" });
|
|
assertNextPhaseName("cold", null, new String[] { "hot", "warm", "cold" });
|
|
assertNextPhaseName("cold", null, new String[] { "hot", "warm" });
|
|
assertNextPhaseName("cold", null, new String[] { "hot", "warm" });
|
|
assertNextPhaseName("cold", null, new String[] { "cold" });
|
|
assertNextPhaseName("cold", null, new String[] { "cold" });
|
|
assertNextPhaseName("cold", null, new String[] { "hot" });
|
|
assertNextPhaseName("cold", null, new String[] { "hot" });
|
|
assertNextPhaseName("cold", null, new String[] {});
|
|
assertNextPhaseName("cold", null, new String[] {});
|
|
|
|
|
|
- assertNextPhaseName("frozen", "delete", new String[] { "hot", "warm", "cold", "delete" });
|
|
|
|
- assertNextPhaseName("frozen", "delete", new String[] { "warm", "cold", "delete" });
|
|
|
|
- assertNextPhaseName("frozen", "delete", new String[] { "cold", "delete" });
|
|
|
|
- assertNextPhaseName("frozen", "delete", new String[] { "delete" });
|
|
|
|
- assertNextPhaseName("frozen", "delete", new String[] { "frozen", "delete" });
|
|
|
|
- assertNextPhaseName("frozen", "delete", new String[] { "hot", "warm", "delete" });
|
|
|
|
- assertNextPhaseName("frozen", null, new String[] { "hot", "warm", "cold" });
|
|
|
|
- assertNextPhaseName("frozen", null, new String[] { "hot", "warm" });
|
|
|
|
- assertNextPhaseName("frozen", null, new String[] { "cold" });
|
|
|
|
- assertNextPhaseName("frozen", null, new String[] { "hot" });
|
|
|
|
- assertNextPhaseName("frozen", null, new String[] { "frozen" });
|
|
|
|
- assertNextPhaseName("frozen", null, new String[] {});
|
|
|
|
-
|
|
|
|
- assertNextPhaseName("delete", null, new String[] { "hot", "warm", "cold", "frozen" });
|
|
|
|
|
|
+ assertNextPhaseName("delete", null, new String[] { "hot", "warm", "cold" });
|
|
assertNextPhaseName("delete", null, new String[] { "hot", "warm" });
|
|
assertNextPhaseName("delete", null, new String[] { "hot", "warm" });
|
|
assertNextPhaseName("delete", null, new String[] { "cold" });
|
|
assertNextPhaseName("delete", null, new String[] { "cold" });
|
|
assertNextPhaseName("delete", null, new String[] { "hot" });
|
|
assertNextPhaseName("delete", null, new String[] { "hot" });
|
|
- assertNextPhaseName("delete", null, new String[] { "frozen" });
|
|
|
|
assertNextPhaseName("delete", null, new String[] {});
|
|
assertNextPhaseName("delete", null, new String[] {});
|
|
- assertNextPhaseName("delete", null, new String[] { "hot", "warm", "cold", "frozen", "delete" });
|
|
|
|
|
|
+ assertNextPhaseName("delete", null, new String[] { "hot", "warm", "cold", "delete" });
|
|
assertNextPhaseName("delete", null, new String[] { "hot", "warm", "delete" });
|
|
assertNextPhaseName("delete", null, new String[] { "hot", "warm", "delete" });
|
|
assertNextPhaseName("delete", null, new String[] { "cold", "delete" });
|
|
assertNextPhaseName("delete", null, new String[] { "cold", "delete" });
|
|
assertNextPhaseName("delete", null, new String[] { "delete" });
|
|
assertNextPhaseName("delete", null, new String[] { "delete" });
|
|
@@ -382,30 +330,14 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
assertPreviousPhaseName("cold", "warm", new String[] { "warm" });
|
|
assertPreviousPhaseName("cold", "warm", new String[] { "warm" });
|
|
assertPreviousPhaseName("cold", null, new String[] {});
|
|
assertPreviousPhaseName("cold", null, new String[] {});
|
|
|
|
|
|
- assertPreviousPhaseName("frozen", "warm", new String[] { "hot", "warm", "frozen", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "hot", new String[] { "hot", "frozen", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "warm", new String[] { "warm", "frozen", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "cold", new String[] { "cold", "frozen", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", null, new String[] { "frozen", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "warm", new String[] { "hot", "warm", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "hot", new String[] { "hot", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "warm", new String[] { "warm", "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", null, new String[] { "delete" });
|
|
|
|
- assertPreviousPhaseName("frozen", "warm", new String[] { "hot", "warm" });
|
|
|
|
- assertPreviousPhaseName("frozen", "hot", new String[] { "hot" });
|
|
|
|
- assertPreviousPhaseName("frozen", "warm", new String[] { "warm" });
|
|
|
|
- assertPreviousPhaseName("frozen", null, new String[] {});
|
|
|
|
-
|
|
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "hot", "warm", "cold", "delete" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "hot", "warm", "cold", "delete" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "warm", "cold", "delete" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "warm", "cold", "delete" });
|
|
assertPreviousPhaseName("delete", "warm", new String[] { "hot", "warm", "delete" });
|
|
assertPreviousPhaseName("delete", "warm", new String[] { "hot", "warm", "delete" });
|
|
assertPreviousPhaseName("delete", "hot", new String[] { "hot", "delete" });
|
|
assertPreviousPhaseName("delete", "hot", new String[] { "hot", "delete" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "cold", "delete" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "cold", "delete" });
|
|
- assertPreviousPhaseName("delete", "frozen", new String[] { "frozen", "delete" });
|
|
|
|
assertPreviousPhaseName("delete", null, new String[] { "delete" });
|
|
assertPreviousPhaseName("delete", null, new String[] { "delete" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "hot", "warm", "cold" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "hot", "warm", "cold" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "warm", "cold" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "warm", "cold" });
|
|
- assertPreviousPhaseName("delete", "frozen", new String[] { "warm", "frozen" });
|
|
|
|
assertPreviousPhaseName("delete", "warm", new String[] { "hot", "warm" });
|
|
assertPreviousPhaseName("delete", "warm", new String[] { "hot", "warm" });
|
|
assertPreviousPhaseName("delete", "hot", new String[] { "hot" });
|
|
assertPreviousPhaseName("delete", "hot", new String[] { "hot" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "cold" });
|
|
assertPreviousPhaseName("delete", "cold", new String[] { "cold" });
|
|
@@ -537,38 +469,6 @@ public class TimeseriesLifecycleTypeTests extends ESTestCase {
|
|
assertInvalidAction("cold", RolloverAction.NAME, new String[] { AllocateAction.NAME });
|
|
assertInvalidAction("cold", RolloverAction.NAME, new String[] { AllocateAction.NAME });
|
|
assertInvalidAction("cold", ShrinkAction.NAME, new String[] { AllocateAction.NAME });
|
|
assertInvalidAction("cold", ShrinkAction.NAME, new String[] { AllocateAction.NAME });
|
|
|
|
|
|
- // Frozen Phase
|
|
|
|
- assertNextActionName("frozen", SetPriorityAction.NAME, UnfollowAction.NAME,
|
|
|
|
- new String[]{UnfollowAction.NAME, SetPriorityAction.NAME, FreezeAction.NAME});
|
|
|
|
- assertNextActionName("frozen", SetPriorityAction.NAME, FreezeAction.NAME,
|
|
|
|
- new String[]{SetPriorityAction.NAME, FreezeAction.NAME});
|
|
|
|
- assertNextActionName("frozen", SetPriorityAction.NAME, AllocateAction.NAME,
|
|
|
|
- new String[]{SetPriorityAction.NAME, AllocateAction.NAME});
|
|
|
|
- assertNextActionName("frozen", SetPriorityAction.NAME, null, new String[] { SetPriorityAction.NAME });
|
|
|
|
- assertNextActionName("frozen", SetPriorityAction.NAME, null, new String[] {});
|
|
|
|
-
|
|
|
|
- assertNextActionName("frozen", UnfollowAction.NAME, AllocateAction.NAME,
|
|
|
|
- new String[] {SetPriorityAction.NAME, AllocateAction.NAME, FreezeAction.NAME});
|
|
|
|
- assertNextActionName("frozen", UnfollowAction.NAME, AllocateAction.NAME,
|
|
|
|
- new String[] {AllocateAction.NAME, FreezeAction.NAME});
|
|
|
|
- assertNextActionName("frozen", UnfollowAction.NAME, FreezeAction.NAME, new String[] {FreezeAction.NAME});
|
|
|
|
- assertNextActionName("frozen", UnfollowAction.NAME, null, new String[] {});
|
|
|
|
-
|
|
|
|
- assertNextActionName("frozen", AllocateAction.NAME, null, new String[] { AllocateAction.NAME });
|
|
|
|
- assertNextActionName("frozen", AllocateAction.NAME, null, new String[] {});
|
|
|
|
- assertNextActionName("frozen", AllocateAction.NAME, null, new String[] {});
|
|
|
|
- assertNextActionName("frozen", AllocateAction.NAME, FreezeAction.NAME, FreezeAction.NAME);
|
|
|
|
-
|
|
|
|
- assertNextActionName("frozen", FreezeAction.NAME, null);
|
|
|
|
- assertNextActionName("frozen", FreezeAction.NAME, null, AllocateAction.NAME);
|
|
|
|
-
|
|
|
|
- assertInvalidAction("frozen", "foo", new String[] { AllocateAction.NAME });
|
|
|
|
- assertInvalidAction("frozen", DeleteAction.NAME, new String[] { AllocateAction.NAME });
|
|
|
|
- assertInvalidAction("frozen", ForceMergeAction.NAME, new String[] { AllocateAction.NAME });
|
|
|
|
- assertInvalidAction("frozen", ReadOnlyAction.NAME, new String[] { AllocateAction.NAME });
|
|
|
|
- assertInvalidAction("frozen", RolloverAction.NAME, new String[] { AllocateAction.NAME });
|
|
|
|
- assertInvalidAction("frozen", ShrinkAction.NAME, new String[] { AllocateAction.NAME });
|
|
|
|
-
|
|
|
|
// Delete Phase
|
|
// Delete Phase
|
|
assertNextActionName("delete", DeleteAction.NAME, null, new String[] {});
|
|
assertNextActionName("delete", DeleteAction.NAME, null, new String[] {});
|
|
assertNextActionName("delete", DeleteAction.NAME, null, new String[] { DeleteAction.NAME });
|
|
assertNextActionName("delete", DeleteAction.NAME, null, new String[] { DeleteAction.NAME });
|