Skip to content

Commit b3b47e2

Browse files
committed
fix: inverted condition, display causes when skipping a node
Signed-off-by: Chris Laprun <[email protected]>
1 parent cc7db5a commit b3b47e2

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

Diff for: operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/WorkflowCleanupExecutor.java

+28-9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.dependent.workflow;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45

56
import org.slf4j.Logger;
@@ -34,13 +35,30 @@ protected Logger logger() {
3435

3536
@SuppressWarnings({"rawtypes", "unchecked"})
3637
private synchronized void handleCleanup(DependentResourceNode dependentResourceNode) {
37-
log.debug("Submitting for cleanup: {} primaryID: {}", dependentResourceNode, primaryID);
38-
39-
if (alreadyVisited(dependentResourceNode)
40-
|| isExecutingNow(dependentResourceNode)
41-
|| !allDependentsCleaned(dependentResourceNode)
42-
|| hasErroredDependent(dependentResourceNode)) {
43-
log.debug("Skipping submit of: {} primaryID: {}", dependentResourceNode, primaryID);
38+
log.debug("Considering for cleanup: {} primaryID: {}", dependentResourceNode, primaryID);
39+
40+
final var alreadyVisited = alreadyVisited(dependentResourceNode);
41+
final var executingNow = isExecutingNow(dependentResourceNode);
42+
final var waitingOnDependents = !allDependentsCleaned(dependentResourceNode);
43+
final var hasErroredDependent = hasErroredDependent(dependentResourceNode);
44+
if (waitingOnDependents || alreadyVisited || executingNow || hasErroredDependent) {
45+
if (log.isDebugEnabled()) {
46+
final var causes = new ArrayList<String>();
47+
if (alreadyVisited) {
48+
causes.add("already visited");
49+
}
50+
if (executingNow) {
51+
causes.add("executing now");
52+
}
53+
if (waitingOnDependents) {
54+
causes.add("waiting on dependents");
55+
}
56+
if (hasErroredDependent) {
57+
causes.add("errored dependent");
58+
}
59+
log.debug("Skipping: {} primaryID: {} causes: {}", dependentResourceNode,
60+
primaryID, String.join(", ", causes));
61+
}
4462
return;
4563
}
4664

@@ -73,8 +91,9 @@ protected void doRun(DependentResourceNode<R, P> dependentResourceNode) {
7391
isConditionMet(dependentResourceNode.getDeletePostcondition(), dependentResourceNode);
7492
}
7593

94+
createOrGetResultFor(dependentResourceNode).markAsVisited();
95+
7696
if (deletePostConditionMet) {
77-
createOrGetResultFor(dependentResourceNode).markAsVisited();
7897
handleDependentCleaned(dependentResourceNode);
7998
}
8099
}
@@ -97,7 +116,7 @@ private boolean allDependentsCleaned(DependentResourceNode dependentResourceNode
97116
List<DependentResourceNode> parents = dependentResourceNode.getParents();
98117
return parents.isEmpty()
99118
|| parents.stream()
100-
.allMatch(d -> alreadyVisited(d) && postDeleteConditionNotMet(d));
119+
.allMatch(d -> alreadyVisited(d) && !postDeleteConditionNotMet(d));
101120
}
102121

103122
@SuppressWarnings("unchecked")

0 commit comments

Comments
 (0)