Skip to content

Commit cada89c

Browse files
committed
event source provider to context
1 parent 2dae1ec commit cada89c

File tree

6 files changed

+16
-15
lines changed

6 files changed

+16
-15
lines changed

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

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.fabric8.kubernetes.api.model.HasMetadata;
77
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
88
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.ManagedDependentResourceContext;
9+
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
910

1011
public interface Context<P extends HasMetadata> {
1112

@@ -26,4 +27,6 @@ <R> Optional<R> getSecondaryResource(Class<R> expectedType,
2627
ControllerConfiguration<P> getControllerConfiguration();
2728

2829
ManagedDependentResourceContext managedDependentResourceContext();
30+
31+
EventSourceRetriever<P> eventSourceRetriever();
2932
}

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

+7-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DefaultManagedDependentResourceContext;
1010
import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.ManagedDependentResourceContext;
1111
import io.javaoperatorsdk.operator.processing.Controller;
12+
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
1213

1314
public class DefaultContext<P extends HasMetadata> implements Context<P> {
1415

@@ -50,8 +51,7 @@ public <T> Optional<T> getSecondaryResource(Class<T> expectedType, String eventS
5051
@Override
5152
public <R> Optional<R> getSecondaryResource(Class<R> expectedType,
5253
ResourceDiscriminator<R, P> discriminator) {
53-
return discriminator.distinguish(expectedType, primaryResource, this,
54-
controller.getEventSourceManager());
54+
return discriminator.distinguish(expectedType, primaryResource, this);
5555
}
5656

5757
@Override
@@ -64,6 +64,11 @@ public ManagedDependentResourceContext managedDependentResourceContext() {
6464
return defaultManagedDependentResourceContext;
6565
}
6666

67+
@Override
68+
public EventSourceRetriever<P> eventSourceRetriever() {
69+
return controller.getEventSourceManager();
70+
}
71+
6772
public DefaultContext<P> setRetryInfo(RetryInfo retryInfo) {
6873
this.retryInfo = retryInfo;
6974
return this;

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
import java.util.Optional;
44

55
import io.fabric8.kubernetes.api.model.HasMetadata;
6-
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
76

87
// todo is discriminator a good name? it not just discriminates but also reads from cache
98
// todo discuss a List version of this (for reconciler but also for batch processing?)
109
public interface ResourceDiscriminator<R, P extends HasMetadata> {
1110

12-
Optional<R> distinguish(Class<R> resource, P primary, Context<P> context,
13-
EventSourceRetriever<P> eventSourceRetriever);
11+
Optional<R> distinguish(Class<R> resource, P primary, Context<P> context);
1412

1513
}

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.function.Function;
55

66
import io.fabric8.kubernetes.api.model.HasMetadata;
7-
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
87
import io.javaoperatorsdk.operator.processing.event.ResourceID;
98

109
public class ResourceIDMatcherDiscriminator<R extends HasMetadata, P extends HasMetadata>
@@ -17,8 +16,7 @@ public ResourceIDMatcherDiscriminator(Function<P, ResourceID> mapper) {
1716
}
1817

1918
@Override
20-
public Optional<R> distinguish(Class<R> resource, P primary, Context<P> context,
21-
EventSourceRetriever<P> eventSourceRetriever) {
19+
public Optional<R> distinguish(Class<R> resource, P primary, Context<P> context) {
2220
var resourceID = mapper.apply(primary);
2321
return context.getSecondaryResources(resource).stream()
2422
.filter(r -> r.getMetadata().getName()

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import java.util.Optional;
44

55
import io.fabric8.kubernetes.api.model.HasMetadata;
6-
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
76

87
public class VoidResourceDiscriminator<R, P extends HasMetadata>
98
implements ResourceDiscriminator<R, P> {
109

1110
@Override
12-
public Optional<R> distinguish(Class<R> resource, P primary, Context<P> context,
13-
EventSourceRetriever<P> eventSourceRetriever) {
11+
public Optional<R> distinguish(Class<R> resource, P primary, Context<P> context) {
1412
throw new UnsupportedOperationException();
1513
}
1614
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminator.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import io.fabric8.kubernetes.api.model.ConfigMap;
66
import io.javaoperatorsdk.operator.api.reconciler.Context;
77
import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
8-
import io.javaoperatorsdk.operator.processing.event.EventSourceRetriever;
98
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
109

1110
import static io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestReconciler.configMapKeyFromPrimary;
@@ -24,11 +23,11 @@ public IndexDiscriminator(String indexName, String nameSuffix) {
2423
@Override
2524
public Optional<ConfigMap> distinguish(Class<ConfigMap> resource,
2625
IndexDiscriminatorTestCustomResource primary,
27-
Context<IndexDiscriminatorTestCustomResource> context,
28-
EventSourceRetriever<IndexDiscriminatorTestCustomResource> eventSourceRetriever) {
26+
Context<IndexDiscriminatorTestCustomResource> context) {
2927

3028
InformerEventSource<ConfigMap, IndexDiscriminatorTestCustomResource> eventSource =
31-
(InformerEventSource<ConfigMap, IndexDiscriminatorTestCustomResource>) eventSourceRetriever
29+
(InformerEventSource<ConfigMap, IndexDiscriminatorTestCustomResource>) context
30+
.eventSourceRetriever()
3231
.getResourceEventSourceFor(ConfigMap.class);
3332
var resources = eventSource.byIndex(indexName, configMapKeyFromPrimary(primary, nameSuffix));
3433
if (resources.isEmpty()) {

0 commit comments

Comments
 (0)