Skip to content

Commit 595bc94

Browse files
committed
patch related changes + IT fixes
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 2019cfa commit 595bc94

File tree

7 files changed

+23
-46
lines changed

7 files changed

+23
-46
lines changed

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

-12
Original file line numberDiff line numberDiff line change
@@ -245,18 +245,6 @@ synchronized void eventProcessingFinished(
245245
state.markProcessedMarkForDeletion();
246246
metrics.cleanupDoneFor(resourceID, metricsMetadata);
247247
} else {
248-
postExecutionControl
249-
.getUpdatedCustomResource()
250-
.ifPresent(
251-
p -> {
252-
// todo check
253-
if (!postExecutionControl.updateIsStatusPatch()) {
254-
eventSourceManager
255-
.getControllerResourceEventSource()
256-
.handleRecentResourceUpdate(
257-
ResourceID.fromResource(p), p, executionScope.getResource());
258-
}
259-
});
260248
if (state.eventPresent()) {
261249
submitReconciliationExecution(state);
262250
} else {

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

-1
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,6 @@ public R patchResource(R resource, R originalResource) {
453453
public R patchStatus(R resource, R originalResource) {
454454
log.trace("Patching status for resource: {} with ssa: {}", resource, useSSA);
455455
String resourceVersion = resource.getMetadata().getResourceVersion();
456-
// don't do optimistic locking on patch
457456
originalResource.getMetadata().setResourceVersion(null);
458457
resource.getMetadata().setResourceVersion(null);
459458
try {

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/EventProcessorTest.java

+1-16
Original file line numberDiff line numberDiff line change
@@ -286,22 +286,7 @@ void startProcessedMarkedEventReceivedBefore() {
286286
verify(reconciliationDispatcherMock, timeout(100).times(1)).handleExecution(any());
287287
verify(metricsMock, times(1)).reconcileCustomResource(any(HasMetadata.class), isNull(), any());
288288
}
289-
290-
@Test
291-
void updatesEventSourceHandlerIfResourceUpdated() {
292-
TestCustomResource customResource = testCustomResource();
293-
ExecutionScope executionScope =
294-
new ExecutionScope(null).setResource(customResource);
295-
PostExecutionControl postExecutionControl =
296-
PostExecutionControl.customResourcePatched(customResource);
297-
298-
eventProcessorWithRetry.eventProcessingFinished(executionScope, postExecutionControl);
299-
300-
301-
verify(controllerResourceEventSourceMock, times(1)).handleRecentResourceUpdate(any(), any(),
302-
any());
303-
}
304-
289+
305290
@Test
306291
void notUpdatesEventSourceHandlerIfResourceUpdated() {
307292
TestCustomResource customResource = testCustomResource();

operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusUpdateLockingIT.java

+13-9
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,27 @@ class StatusUpdateLockingIT {
2121

2222
@RegisterExtension
2323
LocallyRunOperatorExtension operator =
24-
LocallyRunOperatorExtension.builder().withReconciler(StatusUpdateLockingReconciler.class)
24+
LocallyRunOperatorExtension.builder()
25+
.withConfigurationService(o -> o.withUseSSAToPatchPrimaryResource(false))
26+
.withReconciler(StatusUpdateLockingReconciler.class)
2527
.build();
2628

2729
@Test
28-
void optimisticLockingDoneOnStatusUpdate() throws InterruptedException {
30+
void noOptimisticLockingDoneOnStatusPatch() throws InterruptedException {
2931
var resource = operator.create(createResource());
3032
Thread.sleep(WAIT_TIME / 2);
3133
resource.getMetadata().setAnnotations(Map.of("key", "value"));
3234
operator.replace(resource);
3335

34-
await().pollDelay(Duration.ofMillis(WAIT_TIME)).untilAsserted(() -> {
35-
assertThat(
36-
operator.getReconcilerOfType(StatusUpdateLockingReconciler.class).getNumberOfExecutions())
37-
.isEqualTo(2);
38-
assertThat(operator.get(StatusUpdateLockingCustomResource.class, TEST_RESOURCE_NAME)
39-
.getStatus().getValue()).isEqualTo(1);
40-
});
36+
await().pollDelay(Duration.ofMillis(WAIT_TIME)).timeout(Duration.ofSeconds(460))
37+
.untilAsserted(() -> {
38+
assertThat(
39+
operator.getReconcilerOfType(StatusUpdateLockingReconciler.class)
40+
.getNumberOfExecutions())
41+
.isEqualTo(1);
42+
assertThat(operator.get(StatusUpdateLockingCustomResource.class, TEST_RESOURCE_NAME)
43+
.getStatus().getValue()).isEqualTo(1);
44+
});
4145
}
4246

4347
StatusUpdateLockingCustomResource createResource() {

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/simple/TestReconciler.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -104,12 +104,16 @@ public UpdateControl<TestCustomResource> reconcile(
104104
.createOrReplace();
105105
}
106106
if (updateStatus) {
107-
if (resource.getStatus() == null) {
108-
resource.setStatus(new TestCustomResourceStatus());
109-
}
107+
var statusUpdateResource = new TestCustomResource();
108+
statusUpdateResource.setMetadata(new ObjectMetaBuilder()
109+
.withName(resource.getMetadata().getName())
110+
.withNamespace(resource.getMetadata().getNamespace())
111+
.build());
112+
resource.setStatus(new TestCustomResourceStatus());
110113
resource.getStatus().setConfigMapStatus("ConfigMap Ready");
114+
return UpdateControl.patchStatus(resource);
111115
}
112-
return UpdateControl.patchStatus(resource);
116+
return UpdateControl.noUpdate();
113117
}
114118

115119
private Map<String, String> configMapData(TestCustomResource resource) {

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/statusupdatelocking/StatusUpdateLockingCustomResource.java

-4
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,4 @@ public class StatusUpdateLockingCustomResource
1515
extends CustomResource<Void, StatusUpdateLockingCustomResourceStatus>
1616
implements Namespaced {
1717

18-
@Override
19-
protected StatusUpdateLockingCustomResourceStatus initStatus() {
20-
return new StatusUpdateLockingCustomResourceStatus();
21-
}
2218
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/statusupdatelocking/StatusUpdateLockingReconciler.java

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public UpdateControl<StatusUpdateLockingCustomResource> reconcile(
1818
throws InterruptedException {
1919
numberOfExecutions.addAndGet(1);
2020
Thread.sleep(WAIT_TIME);
21+
resource.setStatus(new StatusUpdateLockingCustomResourceStatus());
2122
resource.getStatus().setValue(resource.getStatus().getValue() + 1);
2223
return UpdateControl.patchStatus(resource);
2324
}

0 commit comments

Comments
 (0)