Skip to content

Commit a80c70c

Browse files
committed
feat: update control update methods with change check
1 parent 6290eeb commit a80c70c

File tree

1 file changed

+30
-7
lines changed
  • operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler

1 file changed

+30
-7
lines changed

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

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ public class UpdateControl<P extends HasMetadata> extends BaseControl<UpdateCont
99
private final boolean updateStatus;
1010
private final boolean updateResource;
1111
private final boolean patch;
12+
private final boolean onlyOnChange;
1213

1314
private UpdateControl(
14-
P resource, boolean updateStatus, boolean updateResource, boolean patch) {
15+
P resource, boolean updateStatus, boolean updateResource, boolean patch, boolean onlyOnChange) {
16+
this.onlyOnChange = onlyOnChange;
1517
if ((updateResource || updateStatus) && resource == null) {
1618
throw new IllegalArgumentException("CustomResource cannot be null in case of update");
1719
}
@@ -31,7 +33,11 @@ private UpdateControl(
3133
* @return initialized update control
3234
*/
3335
public static <T extends HasMetadata> UpdateControl<T> updateResource(T customResource) {
34-
return new UpdateControl<>(customResource, false, true, false);
36+
return new UpdateControl<>(customResource, false, true, false, false);
37+
}
38+
39+
public static <T extends HasMetadata> UpdateControl<T> updateResourceIfChanged(T customResource) {
40+
return new UpdateControl<>(customResource, false, true, false, true);
3541
}
3642

3743
/**
@@ -50,7 +56,11 @@ public static <T extends HasMetadata> UpdateControl<T> updateResource(T customRe
5056
* @return UpdateControl instance
5157
*/
5258
public static <T extends HasMetadata> UpdateControl<T> patchStatus(T customResource) {
53-
return new UpdateControl<>(customResource, true, false, true);
59+
return new UpdateControl<>(customResource, true, false, true, false);
60+
}
61+
62+
public static <T extends HasMetadata> UpdateControl<T> patchStatusIfChanged(T customResource) {
63+
return new UpdateControl<>(customResource, true, false, true, true);
5464
}
5565

5666
/**
@@ -66,7 +76,11 @@ public static <T extends HasMetadata> UpdateControl<T> patchStatus(T customResou
6676
* @return UpdateControl instance
6777
*/
6878
public static <T extends HasMetadata> UpdateControl<T> updateStatus(T customResource) {
69-
return new UpdateControl<>(customResource, true, false, false);
79+
return new UpdateControl<>(customResource, true, false, false, false);
80+
}
81+
82+
public static <T extends HasMetadata> UpdateControl<T> updateStatusIfChanged(T customResource) {
83+
return new UpdateControl<>(customResource, true, false, false, false);
7084
}
7185

7286
/**
@@ -79,17 +93,22 @@ public static <T extends HasMetadata> UpdateControl<T> updateStatus(T customReso
7993
*/
8094
public static <T extends HasMetadata> UpdateControl<T> updateResourceAndStatus(
8195
T customResource) {
82-
return new UpdateControl<>(customResource, true, true, false);
96+
return new UpdateControl<>(customResource, true, true, false, false);
97+
}
98+
99+
public static <T extends HasMetadata> UpdateControl<T> updateResourceAndStatusIfChanged(
100+
T customResource) {
101+
return new UpdateControl<>(customResource, true, true, false, true);
83102
}
84103

85104
public static <T extends HasMetadata> UpdateControl<T> patchResourceAndStatus(
86105
T customResource) {
87-
return new UpdateControl<>(customResource, true, true, true);
106+
return new UpdateControl<>(customResource, true, true, true, false);
88107
}
89108

90109

91110
public static <T extends HasMetadata> UpdateControl<T> noUpdate() {
92-
return new UpdateControl<>(null, false, false, false);
111+
return new UpdateControl<>(null, false, false, false, false);
93112
}
94113

95114
public P getResource() {
@@ -115,4 +134,8 @@ public boolean isNoUpdate() {
115134
public boolean isUpdateResourceAndStatus() {
116135
return updateResource && updateStatus;
117136
}
137+
138+
public boolean isOnlyOnChange() {
139+
return onlyOnChange;
140+
}
118141
}

0 commit comments

Comments
 (0)