File tree Expand file tree Collapse file tree 3 files changed +27
-2
lines changed
operator-framework-core/src
main/java/io/javaoperatorsdk/operator
processing/event/source/informer
test/java/io/javaoperatorsdk/operator Expand file tree Collapse file tree 3 files changed +27
-2
lines changed Original file line number Diff line number Diff line change @@ -361,4 +361,16 @@ private static int validateResourceVersion(String v1) {
361361 }
362362 return v1Length ;
363363 }
364+
365+ public static String getGroup (String apiVersion ) {
366+ if (apiVersion .startsWith ("/" )) {
367+ apiVersion = apiVersion .substring (1 );
368+ }
369+ var index = apiVersion .indexOf ("/" );
370+ if (index < 0 ) {
371+ return "" ;
372+ } else {
373+ return apiVersion .substring (0 , index );
374+ }
375+ }
364376}
Original file line number Diff line number Diff line change 2424import io .javaoperatorsdk .operator .processing .event .ResourceID ;
2525import io .javaoperatorsdk .operator .processing .event .source .SecondaryToPrimaryMapper ;
2626
27+ import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .getGroup ;
28+
2729public class Mappers {
2830
2931 public static final String DEFAULT_ANNOTATION_FOR_NAME = "io.javaoperatorsdk/primary-name" ;
@@ -98,10 +100,12 @@ public static <T extends HasMetadata> SecondaryToPrimaryMapper<T> fromOwnerRefer
98100
99101 public static <T extends HasMetadata > SecondaryToPrimaryMapper <T > fromOwnerReferences (
100102 String apiVersion , String kind , boolean clusterScope ) {
101- String correctApiVersion = apiVersion .startsWith ("/" ) ? apiVersion .substring (1 ) : apiVersion ;
102103 return resource ->
103104 resource .getMetadata ().getOwnerReferences ().stream ()
104- .filter (r -> r .getKind ().equals (kind ) && r .getApiVersion ().equals (correctApiVersion ))
105+ .filter (
106+ r ->
107+ r .getKind ().equals (kind )
108+ && getGroup (r .getApiVersion ()).equals (getGroup (apiVersion )))
105109 .map (or -> ResourceID .fromOwnerReference (resource , or , clusterScope ))
106110 .collect (Collectors .toSet ());
107111 }
Original file line number Diff line number Diff line change 3939import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .getDefaultFinalizerName ;
4040import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .getDefaultNameFor ;
4141import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .getDefaultReconcilerName ;
42+ import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .getGroup ;
4243import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .handleKubernetesClientException ;
4344import static io .javaoperatorsdk .operator .ReconcilerUtilsInternal .isFinalizerValid ;
4445import static org .assertj .core .api .Assertions .assertThat ;
@@ -308,6 +309,14 @@ void compareResourceVersionsWithHasMetadata() {
308309 assertThat (ReconcilerUtilsInternal .compareResourceVersions (resource2 , resource1 )).isPositive ();
309310 }
310311
312+ @ Test
313+ void extractsGroupFromApiVersion () {
314+ assertThat (getGroup ("v1" )).isEqualTo ("" );
315+ assertThat (getGroup ("/v1" )).isEqualTo ("" );
316+ assertThat (getGroup ("apps/v1" )).isEqualTo ("apps" );
317+ assertThat (getGroup ("/apps/v1" )).isEqualTo ("apps" );
318+ }
319+
311320 private HasMetadata createResourceWithVersion (String resourceVersion ) {
312321 return new PodBuilder ()
313322 .withMetadata (
You can’t perform that action at this time.
0 commit comments