Skip to content

Commit 0480cae

Browse files
committed
fix: deprecating UpdateControl method with confusing name
1 parent 7470a1b commit 0480cae

File tree

3 files changed

+46
-44
lines changed

3 files changed

+46
-44
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/UpdateControl.java

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,32 @@ public class UpdateControl<P extends HasMetadata> extends BaseControl<UpdateCont
99
private final boolean updateStatus;
1010
private final boolean updateResource;
1111
private final boolean patchStatus;
12-
private final boolean patchResource;
1312

1413
private UpdateControl(
15-
P resource, boolean updateStatus, boolean updateResource, boolean patchStatus,
16-
boolean patchResource) {
14+
P resource, boolean updateStatus, boolean updateResource, boolean patchStatus) {
1715
if ((updateResource || updateStatus) && resource == null) {
1816
throw new IllegalArgumentException("CustomResource cannot be null in case of update");
1917
}
2018
this.resource = resource;
2119
this.updateStatus = updateStatus;
2220
this.updateResource = updateResource;
2321
this.patchStatus = patchStatus;
24-
this.patchResource = patchResource;
2522
}
2623

2724
/**
2825
* Creates an update control instance that instructs the framework to do an update on resource
2926
* itself, not on the status. Note that usually as a results of a reconciliation should be a
3027
* status update not an update to the resource itself.
3128
*
29+
* Using this update makes sure, that the resource in the next reconciliation is the updated one -
30+
* this is not guaranteed by default if you do an update on a resource by the Kubernetes client.
31+
*
3232
* @param <T> custom resource type
3333
* @param customResource customResource to use for update
3434
* @return initialized update control
3535
*/
3636
public static <T extends HasMetadata> UpdateControl<T> updateResource(T customResource) {
37-
return new UpdateControl<>(customResource, false, true, false, false);
37+
return new UpdateControl<>(customResource, false, true, false);
3838
}
3939

4040
/**
@@ -53,7 +53,7 @@ public static <T extends HasMetadata> UpdateControl<T> updateResource(T customRe
5353
* @return UpdateControl instance
5454
*/
5555
public static <T extends HasMetadata> UpdateControl<T> patchStatus(T customResource) {
56-
return new UpdateControl<>(customResource, true, false, true, false);
56+
return new UpdateControl<>(customResource, true, false, true);
5757
}
5858

5959
/**
@@ -69,7 +69,7 @@ public static <T extends HasMetadata> UpdateControl<T> patchStatus(T customResou
6969
* @return UpdateControl instance
7070
*/
7171
public static <T extends HasMetadata> UpdateControl<T> updateStatus(T customResource) {
72-
return new UpdateControl<>(customResource, true, false, false, false);
72+
return new UpdateControl<>(customResource, true, false, false);
7373
}
7474

7575
/**
@@ -82,22 +82,37 @@ public static <T extends HasMetadata> UpdateControl<T> updateStatus(T customReso
8282
*/
8383
public static <T extends HasMetadata> UpdateControl<T> updateResourceAndStatus(
8484
T customResource) {
85-
return new UpdateControl<>(customResource, true, true, false, false);
85+
return new UpdateControl<>(customResource, true, true, false);
8686
}
8787

88+
/**
89+
* Updates the resource - with optimistic locking - and patched the status without optimistic
90+
* locking in place.
91+
*
92+
* @param customResource
93+
* @return
94+
* @param <T>
95+
*/
8896
public static <T extends HasMetadata> UpdateControl<T> updateResourceAndPatchStatus(
8997
T customResource) {
90-
return new UpdateControl<>(customResource, true, true, true, false);
98+
return new UpdateControl<>(customResource, true, true, true);
9199
}
92100

93-
public static <T extends HasMetadata> UpdateControl<T> patchResourceAndStatus(
94-
T customResource) {
95-
return new UpdateControl<>(customResource, true, true, true, false);
101+
/**
102+
* Market for removal, because of confusing name. It does not patch the resource just updates it.
103+
* This method is same as updateResourceAndPatchStatus.
104+
*
105+
* @param customResource to update
106+
* @return UpdateControl instance
107+
* @param <T> resource type
108+
*/
109+
@Deprecated(forRemoval = true)
110+
public static <T extends HasMetadata> UpdateControl<T> patchResourceAndStatus(T customResource) {
111+
return updateResourceAndStatus(customResource);
96112
}
97113

98-
99114
public static <T extends HasMetadata> UpdateControl<T> noUpdate() {
100-
return new UpdateControl<>(null, false, false, false, false);
115+
return new UpdateControl<>(null, false, false, false);
101116
}
102117

103118
public P getResource() {
@@ -116,15 +131,12 @@ public boolean isPatchStatus() {
116131
return patchStatus;
117132
}
118133

119-
public boolean isPatchResource() {
120-
return patchResource;
121-
}
122-
123134
public boolean isNoUpdate() {
124135
return !updateResource && !updateStatus;
125136
}
126137

127138
public boolean isUpdateResourceAndStatus() {
128139
return updateResource && updateStatus;
129140
}
141+
130142
}

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

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,49 +9,47 @@ final class PostExecutionControl<R extends HasMetadata> {
99
private final boolean finalizerRemoved;
1010
private final R updatedCustomResource;
1111
private final boolean updateIsStatusPatch;
12-
private final boolean updateIsResourcePatch;
1312
private final Exception runtimeException;
1413

1514
private Long reScheduleDelay = null;
1615

1716
private PostExecutionControl(
1817
boolean finalizerRemoved,
1918
R updatedCustomResource,
20-
boolean updateIsStatusPatch, boolean updateIsResourcePatch, Exception runtimeException) {
19+
boolean updateIsStatusPatch, Exception runtimeException) {
2120
this.finalizerRemoved = finalizerRemoved;
2221
this.updatedCustomResource = updatedCustomResource;
2322
this.updateIsStatusPatch = updateIsStatusPatch;
24-
this.updateIsResourcePatch = updateIsResourcePatch;
2523
this.runtimeException = runtimeException;
2624
}
2725

2826
public static <R extends HasMetadata> PostExecutionControl<R> onlyFinalizerAdded(
2927
R updatedCustomResource) {
30-
return new PostExecutionControl<>(false, updatedCustomResource, false, false, null);
28+
return new PostExecutionControl<>(false, updatedCustomResource, false, null);
3129
}
3230

3331
public static <R extends HasMetadata> PostExecutionControl<R> defaultDispatch() {
34-
return new PostExecutionControl<>(false, null, false, false, null);
32+
return new PostExecutionControl<>(false, null, false, null);
3533
}
3634

3735
public static <R extends HasMetadata> PostExecutionControl<R> customResourceStatusPatched(
3836
R updatedCustomResource) {
39-
return new PostExecutionControl<>(false, updatedCustomResource, true, false, null);
37+
return new PostExecutionControl<>(false, updatedCustomResource, true, null);
4038
}
4139

4240
public static <R extends HasMetadata> PostExecutionControl<R> customResourceUpdated(
43-
R updatedCustomResource, boolean patched) {
44-
return new PostExecutionControl<>(false, updatedCustomResource, false, patched, null);
41+
R updatedCustomResource) {
42+
return new PostExecutionControl<>(false, updatedCustomResource, false, null);
4543
}
4644

4745
public static <R extends HasMetadata> PostExecutionControl<R> customResourceFinalizerRemoved(
4846
R updatedCustomResource) {
49-
return new PostExecutionControl<>(true, updatedCustomResource, false, false, null);
47+
return new PostExecutionControl<>(true, updatedCustomResource, false, null);
5048
}
5149

5250
public static <R extends HasMetadata> PostExecutionControl<R> exceptionDuringExecution(
5351
Exception exception) {
54-
return new PostExecutionControl<>(false, null, false, false, exception);
52+
return new PostExecutionControl<>(false, null, false, exception);
5553
}
5654

5755
public Optional<R> getUpdatedCustomResource() {

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

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ private PostExecutionControl<P> reconcileExecution(ExecutionScope<P> executionSc
140140
P updatedCustomResource = null;
141141
if (updateControl.isUpdateResourceAndStatus()) {
142142
updatedCustomResource =
143-
updateCustomResource(updateControl.getResource(), updateControl.isPatchResource());
143+
updateCustomResource(updateControl.getResource());
144144
updateControl
145145
.getResource()
146146
.getMetadata()
@@ -154,7 +154,7 @@ private PostExecutionControl<P> reconcileExecution(ExecutionScope<P> executionSc
154154
updateControl.isPatchStatus());
155155
} else if (updateControl.isUpdateResource()) {
156156
updatedCustomResource =
157-
updateCustomResource(updateControl.getResource(), updateControl.isPatchResource());
157+
updateCustomResource(updateControl.getResource());
158158
if (shouldUpdateObservedGenerationAutomatically(updatedCustomResource)) {
159159
updatedCustomResource =
160160
updateStatusGenerationAware(updateControl.getResource(), originalResource,
@@ -203,8 +203,7 @@ public boolean isLastAttempt() {
203203
if (updatedResource != null) {
204204
return errorStatusUpdateControl.isPatch()
205205
? PostExecutionControl.customResourceStatusPatched(updatedResource)
206-
// todo review if this is ok
207-
: PostExecutionControl.customResourceUpdated(updatedResource, false);
206+
: PostExecutionControl.customResourceUpdated(updatedResource);
208207
} else {
209208
return PostExecutionControl.defaultDispatch();
210209
}
@@ -265,8 +264,7 @@ private PostExecutionControl<P> createPostExecutionControl(P updatedCustomResour
265264
postExecutionControl =
266265
PostExecutionControl.customResourceStatusPatched(updatedCustomResource);
267266
} else {
268-
postExecutionControl = PostExecutionControl.customResourceUpdated(updatedCustomResource,
269-
updateControl.isPatchResource());
267+
postExecutionControl = PostExecutionControl.customResourceUpdated(updatedCustomResource);
270268
}
271269
} else {
272270
postExecutionControl = PostExecutionControl.defaultDispatch();
@@ -319,13 +317,12 @@ private P updateCustomResourceWithFinalizer(P resourceForExecution, P originalRe
319317
r -> r.addFinalizer(configuration().getFinalizerName()));
320318
}
321319

322-
private P updateCustomResource(P resource, boolean isPatch) {
323-
log.debug("Updating resource: {} with version: {} patch: {}", getUID(resource),
324-
getVersion(resource), isPatch);
320+
private P updateCustomResource(P resource) {
321+
log.debug("Updating resource: {} with version: {}", getUID(resource),
322+
getVersion(resource));
325323
log.trace("Resource before update: {}", resource);
326324

327-
return isPatch ? customResourceFacade.patchResource(resource)
328-
: customResourceFacade.updateResource(resource);
325+
return customResourceFacade.updateResource(resource);
329326
}
330327

331328
ControllerConfiguration<P> configuration() {
@@ -381,11 +378,6 @@ public R getResource(String namespace, String name) {
381378
}
382379
}
383380

384-
public R patchResource(R resource) {
385-
// todo
386-
return null;
387-
}
388-
389381
public R updateResource(R resource) {
390382
log.debug(
391383
"Trying to replace resource {}, version: {}",

0 commit comments

Comments
 (0)