@@ -131,7 +131,7 @@ public synchronized void handleEvent(Event event) {
131
131
}
132
132
133
133
private void handleMarkedEventForResource (ResourceState state ) {
134
- if (state .deleteEventPresent () && !propagateAllEvent ()) {
134
+ if (state .deleteEventPresent () && !triggerOnAllEvent ()) {
135
135
cleanupForDeletedEvent (state .getId ());
136
136
} else if (!state .processedMarkForDeletionPresent ()) {
137
137
submitReconciliationExecution (state );
@@ -145,7 +145,7 @@ private void submitReconciliationExecution(ResourceState state) {
145
145
Optional <P > maybeLatest = cache .get (resourceID );
146
146
maybeLatest .ifPresent (MDCUtils ::addResourceInfo );
147
147
if (!controllerUnderExecution
148
- && (maybeLatest .isPresent () || (propagateAllEvent () && state .deleteEventPresent ()))) {
148
+ && (maybeLatest .isPresent () || (triggerOnAllEvent () && state .deleteEventPresent ()))) {
149
149
var rateLimit = state .getRateLimit ();
150
150
if (rateLimit == null ) {
151
151
rateLimit = rateLimiter .initState ();
@@ -158,8 +158,10 @@ private void submitReconciliationExecution(ResourceState state) {
158
158
}
159
159
state .setUnderProcessing (true );
160
160
final var latest = maybeLatest .orElseGet (() -> getResourceFromState (state ));
161
- ExecutionScope <P > executionScope = new ExecutionScope <>(state .getRetry ());
162
- state .unMarkEventReceived (propagateAllEvent ());
161
+ ExecutionScope <P > executionScope =
162
+ new ExecutionScope <>(
163
+ state .getRetry (), state .deleteEventPresent (), state .isDeleteFinalStateUnknown ());
164
+ state .unMarkEventReceived (triggerOnAllEvent ());
163
165
metrics .reconcileCustomResource (latest , state .getRetry (), metricsMetadata );
164
166
log .debug ("Executing events for custom resource. Scope: {}" , executionScope );
165
167
executor .execute (new ReconcilerExecutor (resourceID , executionScope ));
@@ -186,7 +188,7 @@ private void submitReconciliationExecution(ResourceState state) {
186
188
187
189
@ SuppressWarnings ("unchecked" )
188
190
private P getResourceFromState (ResourceState state ) {
189
- if (propagateAllEvent ()) {
191
+ if (triggerOnAllEvent ()) {
190
192
log .debug ("Getting resource from state for {}" , state .getId ());
191
193
return (P ) state .getLastKnownResource ();
192
194
} else {
@@ -217,11 +219,11 @@ private void handleEventMarking(Event event, ResourceState state) {
217
219
// removed, but also the informers websocket is disconnected and later reconnected. So
218
220
// meanwhile the resource could be deleted and recreated. In this case we just mark a new
219
221
// event as below.
220
- state .markEventReceived (propagateAllEvent ());
222
+ state .markEventReceived (triggerOnAllEvent ());
221
223
}
222
224
} else if (!state .deleteEventPresent () && !state .processedMarkForDeletionPresent ()) {
223
- state .markEventReceived (propagateAllEvent ());
224
- } else if (propagateAllEvent () && state .deleteEventPresent ()) {
225
+ state .markEventReceived (triggerOnAllEvent ());
226
+ } else if (triggerOnAllEvent () && state .deleteEventPresent ()) {
225
227
state .markAdditionalEventAfterDeleteEvent ();
226
228
} else if (log .isDebugEnabled ()) {
227
229
log .debug (
@@ -264,21 +266,21 @@ synchronized void eventProcessingFinished(
264
266
// Either way we don't want to retry.
265
267
if (isRetryConfigured ()
266
268
&& postExecutionControl .exceptionDuringExecution ()
267
- && (!state .deleteEventPresent () || propagateAllEvent ())) {
269
+ && (!state .deleteEventPresent () || triggerOnAllEvent ())) {
268
270
handleRetryOnException (
269
271
executionScope , postExecutionControl .getRuntimeException ().orElseThrow ());
270
272
return ;
271
273
}
272
274
cleanupOnSuccessfulExecution (executionScope );
273
275
metrics .finishedReconciliation (executionScope .getResource (), metricsMetadata );
274
- if ((propagateAllEvent () && executionScope .isDeleteEvent ())
275
- || (!propagateAllEvent () && state .deleteEventPresent ())) {
276
+ if ((triggerOnAllEvent () && executionScope .isDeleteEvent ())
277
+ || (!triggerOnAllEvent () && state .deleteEventPresent ())) {
276
278
cleanupForDeletedEvent (executionScope .getResourceID ());
277
279
} else if (postExecutionControl .isFinalizerRemoved ()) {
278
280
state .markProcessedMarkForDeletion ();
279
281
metrics .cleanupDoneFor (resourceID , metricsMetadata );
280
282
} else {
281
- if (state .eventPresent () || (propagateAllEvent () && state .deleteEventPresent ())) {
283
+ if (state .eventPresent () || (triggerOnAllEvent () && state .deleteEventPresent ())) {
282
284
submitReconciliationExecution (state );
283
285
} else {
284
286
reScheduleExecutionIfInstructed (postExecutionControl , executionScope .getResource ());
@@ -343,8 +345,8 @@ private void handleRetryOnException(ExecutionScope<P> executionScope, Exception
343
345
var resourceID = state .getId ();
344
346
boolean eventPresent =
345
347
state .eventPresent ()
346
- || (propagateAllEvent () && state .isAdditionalEventPresentAfterDeleteEvent ());
347
- state .markEventReceived (propagateAllEvent ());
348
+ || (triggerOnAllEvent () && state .isAdditionalEventPresentAfterDeleteEvent ());
349
+ state .markEventReceived (triggerOnAllEvent ());
348
350
349
351
retryAwareErrorLogging (state .getRetry (), eventPresent , exception , executionScope );
350
352
if (eventPresent ) {
@@ -488,7 +490,7 @@ public void run() {
488
490
try {
489
491
var actualResource = cache .get (resourceID );
490
492
if (actualResource .isEmpty ()) {
491
- if (propagateAllEvent ()) {
493
+ if (triggerOnAllEvent () && executionScope . isDeleteEvent ()) {
492
494
log .debug (
493
495
"Resource not found in the cache, checking for delete event resource: {}" ,
494
496
resourceID );
@@ -503,9 +505,6 @@ public void run() {
503
505
"Skipping execution; delete event resource not found in state: {}" , resourceID );
504
506
return ;
505
507
}
506
- executionScope .setDeleteEvent (true );
507
- executionScope .setDeleteFinalStateUnknown (
508
- state .orElseThrow ().isDeleteFinalStateUnknown ());
509
508
} else {
510
509
log .debug ("Skipping execution; primary resource missing from cache: {}" , resourceID );
511
510
return ;
@@ -547,7 +546,7 @@ public synchronized boolean isRunning() {
547
546
}
548
547
549
548
// shortening
550
- private boolean propagateAllEvent () {
549
+ private boolean triggerOnAllEvent () {
551
550
return controllerConfiguration .triggerReconcilerOnAllEvent ();
552
551
}
553
552
}
0 commit comments