Skip to content

Commit 9664280

Browse files
committed
fix for operator-framework#409 adjusting logging around kubernetes exceptions
1 parent 0843339 commit 9664280

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/DefaultEventHandler.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package io.javaoperatorsdk.operator.processing;
22

3-
import static io.javaoperatorsdk.operator.EventListUtils.containsCustomResourceDeletedEvent;
4-
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getUID;
5-
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getVersion;
6-
73
import io.fabric8.kubernetes.client.CustomResource;
84
import io.javaoperatorsdk.operator.api.RetryInfo;
95
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
@@ -12,15 +8,20 @@
128
import io.javaoperatorsdk.operator.processing.event.EventHandler;
139
import io.javaoperatorsdk.operator.processing.retry.Retry;
1410
import io.javaoperatorsdk.operator.processing.retry.RetryExecution;
11+
import org.slf4j.Logger;
12+
import org.slf4j.LoggerFactory;
13+
1514
import java.util.HashMap;
1615
import java.util.HashSet;
1716
import java.util.Map;
1817
import java.util.Optional;
1918
import java.util.Set;
2019
import java.util.concurrent.ScheduledThreadPoolExecutor;
2120
import java.util.concurrent.locks.ReentrantLock;
22-
import org.slf4j.Logger;
23-
import org.slf4j.LoggerFactory;
21+
22+
import static io.javaoperatorsdk.operator.EventListUtils.containsCustomResourceDeletedEvent;
23+
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getUID;
24+
import static io.javaoperatorsdk.operator.processing.KubernetesResourceUtils.getVersion;
2425

2526
/**
2627
* Event handler that makes sure that events are processed in a "single threaded" way per resource
@@ -162,7 +163,7 @@ private void handleRetryOnException(ExecutionScope executionScope) {
162163
}
163164
Optional<Long> nextDelay = execution.nextDelay();
164165

165-
nextDelay.ifPresent(
166+
nextDelay.ifPresentOrElse(
166167
delay -> {
167168
log.debug(
168169
"Scheduling timer event for retry with delay:{} for resource: {}",
@@ -171,6 +172,10 @@ private void handleRetryOnException(ExecutionScope executionScope) {
171172
eventSourceManager
172173
.getRetryTimerEventSource()
173174
.scheduleOnce(executionScope.getCustomResource(), delay);
175+
},
176+
() -> {
177+
log.error(
178+
"Exhausted retries for {}", executionScope);
174179
});
175180
}
176181

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/EventDispatcher.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import io.fabric8.kubernetes.api.model.KubernetesResourceList;
88
import io.fabric8.kubernetes.client.CustomResource;
9+
import io.fabric8.kubernetes.client.KubernetesClientException;
910
import io.fabric8.kubernetes.client.dsl.MixedOperation;
1011
import io.fabric8.kubernetes.client.dsl.Resource;
1112
import io.javaoperatorsdk.operator.api.Context;
@@ -53,6 +54,9 @@ public void setEventSourceManager(EventSourceManager eventSourceManager) {
5354
public PostExecutionControl handleExecution(ExecutionScope<R> executionScope) {
5455
try {
5556
return handleDispatch(executionScope);
57+
} catch (KubernetesClientException e) {
58+
log.info("Kubernetes exception {} {} during event processing, {} failed", e.getCode(), e.getMessage(), executionScope);
59+
return PostExecutionControl.exceptionDuringExecution(e);
5660
} catch (RuntimeException e) {
5761
log.error("Error during event processing {} failed.", executionScope, e);
5862
return PostExecutionControl.exceptionDuringExecution(e);

0 commit comments

Comments
 (0)