Skip to content

Commit 14ec51c

Browse files
committed
IT progress
1 parent 6276bad commit 14ec51c

File tree

3 files changed

+36
-5
lines changed

3 files changed

+36
-5
lines changed

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateCustomResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@
1010
@Version("v1")
1111
@ShortNames("ess")
1212
public class ExternalStateCustomResource
13-
extends CustomResource<Void, Void>
13+
extends CustomResource<ExternalStateSpec, Void>
1414
implements Namespaced {
1515
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/externalstate/ExternalStateReconciler.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,31 @@ public UpdateControl<ExternalStateCustomResource> reconcile(
4242
numberOfExecutions.addAndGet(1);
4343

4444
var externalResource = context.getSecondaryResource(ExternalResource.class);
45-
if (externalResource.isEmpty()) {
46-
createExternalResource(resource);
47-
}
45+
externalResource.ifPresentOrElse(r -> {
46+
if (!r.getData().equals(resource.getSpec().getData())) {
47+
updateExternalResource(resource, r);
48+
}
49+
}, () -> {
50+
if (externalResource.isEmpty()) {
51+
createExternalResource(resource);
52+
}
53+
});
54+
55+
4856
return UpdateControl.noUpdate();
4957
}
5058

59+
private void updateExternalResource(ExternalStateCustomResource resource,
60+
ExternalResource externalResource) {
61+
var newResource = new ExternalResource(externalResource.getId(), resource.getSpec().getData());
62+
externalService.update(newResource);
63+
externalResourceEventSource.handleRecentResourceUpdate(ResourceID.fromResource(resource),
64+
newResource, externalResource);
65+
}
66+
5167
private void createExternalResource(ExternalStateCustomResource resource) {
5268
var createdResource =
53-
externalService.create(new ExternalResource(resource.getMetadata().getName()));
69+
externalService.create(new ExternalResource(resource.getSpec().getData()));
5470
var configMap = new ConfigMapBuilder()
5571
.withMetadata(new ObjectMetaBuilder()
5672
.withName(resource.getMetadata().getName())
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.javaoperatorsdk.operator.sample.externalstate;
2+
3+
public class ExternalStateSpec {
4+
5+
private String data;
6+
7+
public String getData() {
8+
return data;
9+
}
10+
11+
public ExternalStateSpec setData(String data) {
12+
this.data = data;
13+
return this;
14+
}
15+
}

0 commit comments

Comments
 (0)