Skip to content

Commit c844532

Browse files
committed
improve: logging for resource filter cache
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent 280b162 commit c844532

File tree

5 files changed

+49
-5
lines changed

5 files changed

+49
-5
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
public class Event {
2121

22-
private final ResourceID relatedCustomResource;
22+
protected final ResourceID relatedCustomResource;
2323

2424
public Event(ResourceID targetCustomResource) {
2525
this.relatedCustomResource = targetCustomResource;

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ResourceEvent.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
public class ResourceEvent extends Event {
2727

28-
private final ResourceAction action;
29-
private final HasMetadata resource;
28+
protected final ResourceAction action;
29+
protected final HasMetadata resource;
3030

3131
public ResourceEvent(ResourceAction action, ResourceID resourceID, HasMetadata resource) {
3232
super(resourceID);

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ExtendedResourceEvent.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.javaoperatorsdk.operator.processing.event.source.informer;
1717

18+
import java.util.Objects;
1819
import java.util.Optional;
1920

2021
import io.fabric8.kubernetes.api.model.HasMetadata;
@@ -25,7 +26,7 @@
2526
/** Used only for resource event filtering. */
2627
public class ExtendedResourceEvent extends ResourceEvent {
2728

28-
private HasMetadata previousResource;
29+
private final HasMetadata previousResource;
2930

3031
public ExtendedResourceEvent(
3132
ResourceAction action,
@@ -39,4 +40,31 @@ public ExtendedResourceEvent(
3940
public Optional<HasMetadata> getPreviousResource() {
4041
return Optional.ofNullable(previousResource);
4142
}
43+
44+
@Override
45+
public String toString() {
46+
return "ExtendedResourceEvent{"
47+
+ "previousResourceVersion="
48+
+ previousResource.getMetadata().getResourceVersion()
49+
+ ", action="
50+
+ action
51+
+ ", resourceVersion="
52+
+ resource.getMetadata().getResourceVersion()
53+
+ ", relatedCustomResource="
54+
+ relatedCustomResource
55+
+ '}';
56+
}
57+
58+
@Override
59+
public boolean equals(Object o) {
60+
if (o == null || getClass() != o.getClass()) return false;
61+
if (!super.equals(o)) return false;
62+
ExtendedResourceEvent that = (ExtendedResourceEvent) o;
63+
return Objects.equals(previousResource, that.previousResource);
64+
}
65+
66+
@Override
67+
public int hashCode() {
68+
return Objects.hash(super.hashCode(), previousResource);
69+
}
4270
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,12 @@ public void changeNamespaces(Set<String> namespaces) {
9393
@SuppressWarnings("unchecked")
9494
public R eventFilteringUpdateAndCacheResource(R resourceToUpdate, UnaryOperator<R> updateMethod) {
9595
ResourceID id = ResourceID.fromResource(resourceToUpdate);
96-
log.debug("Update and cache: {}", id);
96+
log.debug("Starting event filter and cache update for: {}", id);
9797
R updatedResource = null;
9898
try {
9999
temporaryResourceCache.startEventFilteringModify(id);
100100
updatedResource = updateMethod.apply(resourceToUpdate);
101+
log.debug("Resource update successful: {}", id);
101102
handleRecentResourceUpdate(id, updatedResource, resourceToUpdate);
102103
return updatedResource;
103104
} finally {
@@ -124,6 +125,14 @@ public R eventFilteringUpdateAndCacheResource(R resourceToUpdate, UnaryOperator<
124125
: null;
125126
R prevVersionOfResource =
126127
updatedForLambda != null ? updatedForLambda : extendedResourcePrevVersion;
128+
if (log.isDebugEnabled()) {
129+
log.debug(
130+
"Extended previous resource version: {} resource from update present: {}"
131+
+ " extendedPrevResource present: {}",
132+
prevVersionOfResource.getMetadata().getResourceVersion(),
133+
updatedForLambda != null,
134+
extendedResourcePrevVersion != null);
135+
}
127136
handleEvent(
128137
r.getAction(),
129138
latestResource,

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,13 +133,19 @@ private synchronized EventHandling onEvent(
133133
resource.getMetadata().getResourceVersion());
134134
}
135135
if (!unknownState) {
136+
log.debug("Setting latest resource version to: {}", latestResourceVersion);
136137
latestResourceVersion = resource.getMetadata().getResourceVersion();
137138
}
138139
var cached = cache.get(resourceId);
139140
EventHandling result = EventHandling.NEW;
140141
if (cached != null) {
141142
int comp = ReconcilerUtilsInternal.compareResourceVersions(resource, cached);
142143
if (comp >= 0 || unknownState) {
144+
log.debug(
145+
"Removing resource from temp cache. id: {} comparison: {} unknown state: {}",
146+
resourceId,
147+
comp,
148+
unknownState);
143149
cache.remove(resourceId);
144150
// we propagate event only for our update or newer other can be discarded since we know we
145151
// will receive
@@ -151,6 +157,7 @@ private synchronized EventHandling onEvent(
151157
}
152158
var ed = activeUpdates.get(resourceId);
153159
if (ed != null && result != EventHandling.OBSOLETE) {
160+
log.debug("Setting last event for id: {} delete: {}", resourceId, delete);
154161
ed.setLastEvent(
155162
delete
156163
? new ResourceDeleteEvent(ResourceAction.DELETED, resourceId, resource, unknownState)

0 commit comments

Comments
 (0)