From 14dddbe4591e1eecc4152f21c62be01fb0690a4d Mon Sep 17 00:00:00 2001 From: csviri Date: Fri, 1 Apr 2022 10:03:25 +0200 Subject: [PATCH] fix: minor improvements on logging and tests related to temp cache --- .../controller/TemporaryResourceCache.java | 50 ------------------- .../informer/ManagedInformerEventSource.java | 2 + .../informer/TemporaryResourceCache.java | 1 + .../StandaloneDependentTestReconciler.java | 2 +- 4 files changed, 4 insertions(+), 51 deletions(-) delete mode 100644 operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/TemporaryResourceCache.java diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/TemporaryResourceCache.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/TemporaryResourceCache.java deleted file mode 100644 index fb402b0b86..0000000000 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/TemporaryResourceCache.java +++ /dev/null @@ -1,50 +0,0 @@ -package io.javaoperatorsdk.operator.processing.event.source.controller; - -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.processing.event.ResourceID; - -public class TemporaryResourceCache { - - private static final Logger log = LoggerFactory.getLogger(TemporaryResourceCache.class); - - private final Map cache = new HashMap<>(); - private final ControllerResourceCache managedInformerEventSource; - - public TemporaryResourceCache(ControllerResourceCache managedInformerEventSource) { - this.managedInformerEventSource = managedInformerEventSource; - } - - public synchronized void removeResourceFromCache(T resource) { - cache.remove(ResourceID.fromResource(resource)); - } - - public synchronized void putUpdatedResource(T newResource, String previousResourceVersion) { - var resourceId = ResourceID.fromResource(newResource); - var informerCacheResource = managedInformerEventSource.get(resourceId); - if (informerCacheResource.isEmpty()) { - log.debug("No cached value present for resource: {}", newResource); - return; - } - // if this is not true that means the cache was already updated - if (informerCacheResource.get().getMetadata().getResourceVersion() - .equals(previousResourceVersion)) { - log.debug("Putting resource to temporal cache with id: {}", resourceId); - cache.put(resourceId, newResource); - } else { - // if something is in cache it's surely obsolete now - cache.remove(resourceId); - } - } - - public synchronized Optional getResourceFromCache(ResourceID resourceID) { - return Optional.ofNullable(cache.get(resourceID)); - } -} - diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java index 5f414d0696..e2624b8169 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java @@ -88,6 +88,8 @@ public Optional get(ResourceID resourceID) { log.debug("Resource found in temporal cache for Resource ID: {}", resourceID); return resource; } else { + log.debug("Resource not found in temporal cache reading it from informer cache," + + " for Resource ID: {}", resourceID); return super.get(resourceID); } } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java index 51a5a73bd4..468092490b 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java @@ -73,6 +73,7 @@ public synchronized void putUpdatedResource(T newResource, String previousResour cache.put(resourceId, newResource); } else { // if something is in cache it's surely obsolete now + log.debug("Trying to remove an obsolete resource from cache for id: {}", resourceId); cache.remove(resourceId); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/standalonedependent/StandaloneDependentTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/standalonedependent/StandaloneDependentTestReconciler.java index e1bc46f893..2ecaa5cc27 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/standalonedependent/StandaloneDependentTestReconciler.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/standalonedependent/StandaloneDependentTestReconciler.java @@ -28,7 +28,7 @@ public class StandaloneDependentTestReconciler KubernetesClientAware, ErrorStatusHandler { private KubernetesClient kubernetesClient; - private boolean errorOccurred = false; + private volatile boolean errorOccurred = false; DeploymentDependentResource deploymentDependent;