Browse Source

Mark Step#isRetryable abstract (#70716)

This marks isRetryable and implements it in the remaining places.
Andrei Dan 4 năm trước cách đây
mục cha
commit
b039b8077e

+ 5 - 0
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/AllocationRoutedStep.java

@@ -40,6 +40,11 @@ public class AllocationRoutedStep extends ClusterStateWaitStep {
         super(key, nextStepKey);
     }
 
+    @Override
+    public boolean isRetryable() {
+        return true;
+    }
+
     @Override
     public Result isConditionMet(Index index, ClusterState clusterState) {
         IndexMetadata idxMeta = clusterState.metadata().index(index);

+ 6 - 0
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/ErrorStep.java

@@ -18,4 +18,10 @@ public class ErrorStep extends Step {
             throw new IllegalArgumentException("An error step must have a step key whose step name is " + NAME);
         }
     }
+
+    @Override
+    public boolean isRetryable() {
+        // this is marker step so it doesn't make sense to be retryable
+        return false;
+    }
 }

+ 5 - 0
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/GenerateSnapshotNameStep.java

@@ -88,6 +88,11 @@ public class GenerateSnapshotNameStep extends ClusterStateActionStep {
         return newClusterStateBuilder.build();
     }
 
+    @Override
+    public boolean isRetryable() {
+        return true;
+    }
+
     @Override
     public int hashCode() {
         return Objects.hash(super.hashCode(), snapshotRepository);

+ 6 - 0
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/PhaseCompleteStep.java

@@ -20,4 +20,10 @@ public class PhaseCompleteStep extends Step {
     public static PhaseCompleteStep finalStep(String phase) {
         return new PhaseCompleteStep(new StepKey(phase, NAME, NAME), null);
     }
+
+    @Override
+    public boolean isRetryable() {
+        // this is marker step so it doesn't make sense to be retryable
+        return false;
+    }
 }

+ 1 - 3
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/Step.java

@@ -42,9 +42,7 @@ public abstract class Step {
     /**
      * Indicates if the step can be automatically retried when it encounters an execution error.
      */
-    public boolean isRetryable() {
-        return false;
-    }
+    public abstract boolean isRetryable();
 
     @Override
     public int hashCode() {

+ 6 - 0
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/TerminalPolicyStep.java

@@ -17,4 +17,10 @@ public class TerminalPolicyStep extends Step {
     TerminalPolicyStep(StepKey key, StepKey nextStepKey) {
         super(key, nextStepKey);
     }
+
+    @Override
+    public boolean isRetryable() {
+        // this is marker step so it doesn't make sense to be retryable
+        return false;
+    }
 }

+ 5 - 0
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm/WaitForIndexingCompleteStep.java

@@ -30,6 +30,11 @@ final class WaitForIndexingCompleteStep extends ClusterStateWaitStep {
         super(key, nextStepKey);
     }
 
+    @Override
+    public boolean isRetryable() {
+        return true;
+    }
+
     @Override
     public Result isConditionMet(Index index, ClusterState clusterState) {
         IndexMetadata followerIndex = clusterState.metadata().index(index);

+ 20 - 0
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/AsyncActionBranchingStepTests.java

@@ -53,6 +53,11 @@ public class AsyncActionBranchingStepTests extends AbstractStepMasterTimeoutTest
 
     public void testBranchStepKeyIsTheWrappedStepKey() {
         AsyncActionStep stepToExecute = new AsyncActionStep(randomStepKey(), randomStepKey(), client) {
+            @Override
+            public boolean isRetryable() {
+                return true;
+            }
+
             @Override
             public void performAction(IndexMetadata indexMetadata, ClusterState currentClusterState, ClusterStateObserver observer,
                                       Listener listener) {
@@ -65,6 +70,11 @@ public class AsyncActionBranchingStepTests extends AbstractStepMasterTimeoutTest
 
     public void testBranchStepNextKeyOnCompleteResponse() {
         AsyncActionStep stepToExecute = new AsyncActionStep(randomStepKey(), randomStepKey(), client) {
+            @Override
+            public boolean isRetryable() {
+                return true;
+            }
+
             @Override
             public void performAction(IndexMetadata indexMetadata, ClusterState currentClusterState, ClusterStateObserver observer,
                                       Listener listener) {
@@ -91,6 +101,11 @@ public class AsyncActionBranchingStepTests extends AbstractStepMasterTimeoutTest
 
     public void testBranchStepNextKeyOnInCompleteResponse() {
         AsyncActionStep stepToExecute = new AsyncActionStep(randomStepKey(), randomStepKey(), client) {
+            @Override
+            public boolean isRetryable() {
+                return true;
+            }
+
             @Override
             public void performAction(IndexMetadata indexMetadata, ClusterState currentClusterState, ClusterStateObserver observer,
                                       Listener listener) {
@@ -120,6 +135,11 @@ public class AsyncActionBranchingStepTests extends AbstractStepMasterTimeoutTest
     public void testBranchStepPropagatesFailure() {
         NullPointerException failException = new NullPointerException("fail");
         AsyncActionStep stepToExecute = new AsyncActionStep(randomStepKey(), randomStepKey(), client) {
+            @Override
+            public boolean isRetryable() {
+                return true;
+            }
+
             @Override
             public void performAction(IndexMetadata indexMetadata, ClusterState currentClusterState, ClusterStateObserver observer,
                                       Listener listener) {

+ 5 - 0
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ilm/MockStep.java

@@ -19,6 +19,11 @@ public class MockStep extends Step implements Writeable {
         super(stepKey, nextStepKey);
     }
 
+    @Override
+    public boolean isRetryable() {
+        return false;
+    }
+
     public MockStep(Step other) {
         super(other.getKey(), other.getNextStepKey());
     }

+ 5 - 0
x-pack/plugin/ilm/src/internalClusterTest/java/org/elasticsearch/xpack/ilm/IndexLifecycleInitialisationTests.java

@@ -473,6 +473,11 @@ public class IndexLifecycleInitialisationTests extends ESIntegTestCase {
             super(current, next);
         }
 
+        @Override
+        public boolean isRetryable() {
+            return false;
+        }
+
         public ObservableClusterStateWaitStep(StreamInput in) throws IOException {
             this(new StepKey(in.readString(), in.readString(), in.readString()), readOptionalNextStepKey(in));
         }

+ 20 - 0
x-pack/plugin/ilm/src/test/java/org/elasticsearch/xpack/ilm/IndexLifecycleRunnerTests.java

@@ -888,6 +888,11 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
             super(key, nextStepKey, null);
         }
 
+        @Override
+        public boolean isRetryable() {
+            return false;
+        }
+
         void setException(Exception exception) {
             this.exception = exception;
         }
@@ -937,6 +942,11 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
             super(key, nextStepKey, null);
         }
 
+        @Override
+        public boolean isRetryable() {
+            return false;
+        }
+
         void setException(Exception exception) {
             this.exception = exception;
         }
@@ -974,6 +984,11 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
             super(key, nextStepKey);
         }
 
+        @Override
+        public boolean isRetryable() {
+            return false;
+        }
+
         public void setException(RuntimeException exception) {
             this.exception = exception;
         }
@@ -1010,6 +1025,11 @@ public class IndexLifecycleRunnerTests extends ESTestCase {
             super(key, nextStepKey);
         }
 
+        @Override
+        public boolean isRetryable() {
+            return false;
+        }
+
         public void setException(RuntimeException exception) {
             this.exception = exception;
         }