diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java index 38c9055ff1..27634f4b76 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/ResourceID.java @@ -13,6 +13,16 @@ public static ResourceID fromResource(HasMetadata resource) { resource.getMetadata().getNamespace()); } + public static Optional fromFirstOwnerReference(HasMetadata resource) { + var ownerReferences = resource.getMetadata().getOwnerReferences(); + if (!ownerReferences.isEmpty()) { + return Optional.of(new ResourceID(ownerReferences.get(0).getName(), + resource.getMetadata().getNamespace())); + } else { + return Optional.empty(); + } + } + private final String name; private final String namespace; diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java index e3b4b7be14..053528e0ff 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/Mappers.java @@ -30,15 +30,8 @@ public static PrimaryResourcesRetriever fromLabel( } public static PrimaryResourcesRetriever fromOwnerReference() { - return resource -> { - var ownerReferences = resource.getMetadata().getOwnerReferences(); - if (!ownerReferences.isEmpty()) { - return Set.of(new ResourceID(ownerReferences.get(0).getName(), - resource.getMetadata().getNamespace())); - } else { - return Collections.emptySet(); - } - }; + return resource -> ResourceID.fromFirstOwnerReference(resource).map(Set::of) + .orElse(Collections.emptySet()); } private static PrimaryResourcesRetriever fromMetadata(