Skip to content

Commit 10b79cd

Browse files
csvirimetacosm
authored andcommitted
Updated informer mapper
1 parent 25e97d8 commit 10b79cd

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package io.javaoperatorsdk.operator.processing.event.internal;
22

33
import java.io.IOException;
4-
import java.util.Optional;
4+
import java.util.List;
55

66
import io.fabric8.kubernetes.api.model.HasMetadata;
77
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -64,12 +64,14 @@ public void onDelete(T t, boolean b) {
6464
}
6565

6666
private void propagateEvent(InformerEvent.Action action, T object, T oldObject) {
67-
var uid = mapper.map(object);
68-
if (uid.isEmpty()) {
67+
var uids = mapper.map(object);
68+
if (uids.isEmpty()) {
6969
return;
7070
}
71-
InformerEvent event = new InformerEvent(uid.get(), this, action, object, oldObject);
72-
this.eventHandler.handleEvent(event);
71+
uids.forEach(uid -> {
72+
InformerEvent event = new InformerEvent(uid, this, action, object, oldObject);
73+
this.eventHandler.handleEvent(event);
74+
});
7375
}
7476

7577
@Override
@@ -91,8 +93,7 @@ public SharedInformer<T> getSharedInformer() {
9193
}
9294

9395
public interface ResourceToRelatedCustomResourceUIDMapper<T> {
94-
// in case cannot map to the related CR uid, skip the event processing
95-
Optional<String> map(T resource);
96+
List<String> map(T resource);
9697
}
9798

9899
}

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/informereventsource/InformerEventSourceTestCustomResourceController.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.javaoperatorsdk.operator.sample.informereventsource;
22

3-
import java.util.Optional;
3+
import java.util.Arrays;
4+
import java.util.Collections;
45

56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
@@ -44,10 +45,9 @@ public void init(EventSourceManager eventSourceManager) {
4445
eventSourceManager.registerEventSource("configmap", new InformerEventSource<>(informer,
4546
resource -> {
4647
if (resource.getMetadata() == null || resource.getMetadata().getAnnotations() == null) {
47-
return Optional.empty();
48+
return Collections.emptyList();
4849
}
49-
return Optional
50-
.ofNullable(resource.getMetadata().getAnnotations().get(RELATED_RESOURCE_UID));
50+
return Arrays.asList(resource.getMetadata().getAnnotations().get(RELATED_RESOURCE_UID));
5151
}));
5252
}
5353

0 commit comments

Comments
 (0)