diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClient.java b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClient.java index 916459d7..6dd268f5 100644 --- a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClient.java +++ b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClient.java @@ -104,7 +104,7 @@ public class KubernetesDiscoveryClient implements DiscoveryClient { Objects.requireNonNull(serviceId); List subsetsNS = getEndPointsList(serviceId).stream() - .map(x -> subsetsFromEndpoints(x, () -> client.getNamespace())).toList(); + .map(KubernetesDiscoveryClientUtils::subsetsFromEndpoints).toList(); List instances = new ArrayList<>(); if (!subsetsNS.isEmpty()) { @@ -131,7 +131,7 @@ public class KubernetesDiscoveryClient implements DiscoveryClient { private List findEndPointsFilteredByNamespaces(String serviceId) { List endpoints = new ArrayList<>(); for (String ns : properties.namespaces()) { - endpoints.addAll(getClient().endpoints().inNamespace(ns).withField("metadata.name", serviceId) + endpoints.addAll(client.endpoints().inNamespace(ns).withField("metadata.name", serviceId) .withLabels(properties.serviceLabels()).list().getItems()); } return endpoints; diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtils.java b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtils.java index 73870207..4e699c39 100644 --- a/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtils.java +++ b/spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtils.java @@ -20,7 +20,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.function.Supplier; import java.util.stream.Collectors; import io.fabric8.kubernetes.api.model.EndpointPort; @@ -49,11 +48,8 @@ final class KubernetesDiscoveryClientUtils { } - static EndpointSubsetNS subsetsFromEndpoints(Endpoints endpoints, Supplier clientNamespace) { - if (endpoints != null && endpoints.getSubsets() != null) { - return new EndpointSubsetNS(endpoints.getMetadata().getNamespace(), endpoints.getSubsets()); - } - return new EndpointSubsetNS(clientNamespace.get(), List.of()); + static EndpointSubsetNS subsetsFromEndpoints(Endpoints endpoints) { + return new EndpointSubsetNS(endpoints.getMetadata().getNamespace(), endpoints.getSubsets()); } static int endpointsPort(EndpointSubset endpointSubset, String serviceId, KubernetesDiscoveryProperties properties, diff --git a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtilsTests.java b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtilsTests.java index dcccde37..99f1f357 100644 --- a/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtilsTests.java +++ b/spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/KubernetesDiscoveryClientUtilsTests.java @@ -46,31 +46,26 @@ import static org.springframework.cloud.kubernetes.commons.discovery.KubernetesD @ExtendWith(OutputCaptureExtension.class) class KubernetesDiscoveryClientUtilsTests { - @Test - void testSubsetsFromEndpointsNullEndpoints() { - EndpointSubsetNS result = KubernetesDiscoveryClientUtils.subsetsFromEndpoints(null, () -> "default"); - Assertions.assertNotNull(result); - Assertions.assertEquals(result.endpointSubset(), List.of()); - Assertions.assertEquals(result.namespace(), "default"); - } - @Test void testSubsetsFromEndpointsEmptySubsets() { Endpoints endpoints = new EndpointsBuilder() .withMetadata(new ObjectMetaBuilder().withNamespace("non-default").build()).build(); - EndpointSubsetNS result = KubernetesDiscoveryClientUtils.subsetsFromEndpoints(endpoints, () -> "default"); + EndpointSubsetNS result = KubernetesDiscoveryClientUtils.subsetsFromEndpoints(endpoints); Assertions.assertNotNull(result); Assertions.assertEquals(result.endpointSubset(), List.of()); Assertions.assertEquals(result.namespace(), "non-default"); } @Test - void testSubsetsFromEndpointsNullSubsets() { + void testSubsetsFromEndpointsNonEmptySubsets() { Endpoints endpoints = new EndpointsBuilder().withSubsets((List) null) - .withMetadata(new ObjectMetaBuilder().withNamespace("non-default").build()).build(); - EndpointSubsetNS result = KubernetesDiscoveryClientUtils.subsetsFromEndpoints(endpoints, () -> "default"); + .withMetadata(new ObjectMetaBuilder().withNamespace("default").build()) + .withSubsets(new EndpointSubsetBuilder().withPorts(new EndpointPortBuilder().withPort(8080).build()).build()) + .build(); + EndpointSubsetNS result = KubernetesDiscoveryClientUtils.subsetsFromEndpoints(endpoints); Assertions.assertNotNull(result); - Assertions.assertEquals(result.endpointSubset(), List.of()); + Assertions.assertEquals(result.endpointSubset().size(), 1); + Assertions.assertEquals(result.endpointSubset().get(0).getPorts().get(0).getPort(), 8080); Assertions.assertEquals(result.namespace(), "default"); }