Skip to content

Commit 6bd62a3

Browse files
authored
Merge pull request #1964 from wind57/fix-1963
fix 1963: order for discovery clients
2 parents d7f4e2b + 25a854f commit 6bd62a3

File tree

5 files changed

+55
-7
lines changed

5 files changed

+55
-7
lines changed

spring-cloud-kubernetes-client-discovery/src/main/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,9 @@ public Flux<String> getServices() {
7373
.subscribeOn(Schedulers.boundedElastic());
7474
}
7575

76+
@Override
77+
public int getOrder() {
78+
return kubernetesDiscoveryClient.getOrder();
79+
}
80+
7681
}

spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/KubernetesInformerDiscoveryClientTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,20 @@ void testPodMetadata() {
617617
server.shutdown();
618618
}
619619

620+
@Test
621+
void testOrder() {
622+
KubernetesDiscoveryProperties properties = new KubernetesDiscoveryProperties(true, false, Set.of("a", "b"),
623+
true, 60L, false, "", Set.of(), Map.of(), "", null, 57, false, true);
624+
625+
Lister<V1Service> serviceLister = setupServiceLister(SERVICE_1, SERVICE_2);
626+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister(ENDPOINTS_1);
627+
628+
KubernetesInformerDiscoveryClient discoveryClient = new KubernetesInformerDiscoveryClient(
629+
SHARED_INFORMER_FACTORY, serviceLister, endpointsLister, null, null, properties);
630+
631+
assertThat(discoveryClient.getOrder()).isEqualTo(57);
632+
}
633+
620634
private Lister<V1Service> setupServiceLister(V1Service... services) {
621635
Cache<V1Service> serviceCache = new Cache<>();
622636
Lister<V1Service> serviceLister = new Lister<>(serviceCache);

spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/reactive/KubernetesInformerReactiveDiscoveryClientTests.java

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void afterEach() {
8686
void testDiscoveryGetServicesAllNamespaceShouldWork() {
8787
Lister<V1Service> serviceLister = setupServiceLister(NAMESPACE_ALL, TEST_SERVICE_1, TEST_SERVICE_2,
8888
TEST_SERVICE_3);
89-
Lister<V1Endpoints> endpointsLister = setupEndpointsLister("");
89+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister();
9090

9191
KubernetesDiscoveryProperties kubernetesDiscoveryProperties = new KubernetesDiscoveryProperties(true, true,
9292
Set.of(), true, 60, false, null, Set.of(), Map.of(), null, null, 0, false);
@@ -105,7 +105,7 @@ void testDiscoveryGetServicesAllNamespaceShouldWork() {
105105
@Test
106106
void testDiscoveryGetServicesOneNamespaceShouldWork() {
107107
Lister<V1Service> serviceLister = setupServiceLister(NAMESPACE_1, TEST_SERVICE_1, TEST_SERVICE_2);
108-
Lister<V1Endpoints> endpointsLister = setupEndpointsLister("");
108+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister();
109109

110110
KubernetesInformerReactiveDiscoveryClient discoveryClient = new KubernetesInformerReactiveDiscoveryClient(
111111
new KubernetesInformerDiscoveryClient(sharedInformerFactory, serviceLister, endpointsLister, null, null,
@@ -121,7 +121,7 @@ void testDiscoveryGetServicesOneNamespaceShouldWork() {
121121
@Test
122122
void testDiscoveryGetInstanceAllNamespaceShouldWork() {
123123
Lister<V1Service> serviceLister = setupServiceLister(NAMESPACE_ALL, TEST_SERVICE_1, TEST_SERVICE_2);
124-
Lister<V1Endpoints> endpointsLister = setupEndpointsLister(NAMESPACE_1, TEST_ENDPOINTS_1);
124+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister(TEST_ENDPOINTS_1);
125125

126126
KubernetesDiscoveryProperties kubernetesDiscoveryProperties = new KubernetesDiscoveryProperties(true, true,
127127
Set.of(), true, 60, false, null, Set.of(), Map.of(), null,
@@ -143,7 +143,7 @@ void testDiscoveryGetInstanceAllNamespaceShouldWork() {
143143
@Test
144144
void testDiscoveryGetInstanceOneNamespaceShouldWork() {
145145
Lister<V1Service> serviceLister = setupServiceLister(NAMESPACE_1, TEST_SERVICE_1, TEST_SERVICE_2);
146-
Lister<V1Endpoints> endpointsLister = setupEndpointsLister(NAMESPACE_1, TEST_ENDPOINTS_1);
146+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister(TEST_ENDPOINTS_1);
147147

148148
KubernetesDiscoveryProperties kubernetesDiscoveryProperties = new KubernetesDiscoveryProperties(true, false,
149149
Set.of(), true, 60, false, null, Set.of(), Map.of(), null,
@@ -173,7 +173,7 @@ void testDiscoveryGetInstanceOneNamespaceShouldWork() {
173173
*/
174174
@Test
175175
void testAllNamespacesTwoServicesPresent() {
176-
Lister<V1Endpoints> endpointsLister = setupEndpointsLister("");
176+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister();
177177

178178
boolean allNamespaces = true;
179179
V1Service serviceA = new V1Service().metadata(new V1ObjectMeta().name("service-a").namespace("namespace-a"));
@@ -207,7 +207,7 @@ void testAllNamespacesTwoServicesPresent() {
207207
*/
208208
@Test
209209
void testSingleNamespaceTwoServicesPresent() {
210-
Lister<V1Endpoints> endpointsLister = setupEndpointsLister("");
210+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister();
211211

212212
boolean allNamespaces = false;
213213
V1Service serviceA = new V1Service().metadata(new V1ObjectMeta().name("service-a").namespace("namespace-a"));
@@ -330,6 +330,20 @@ void testAllSingleTwoEndpointsPresent() {
330330
Assertions.assertThat(byIp).contains("1.1.1.1");
331331
}
332332

333+
@Test
334+
void testOrder() {
335+
KubernetesDiscoveryProperties properties = new KubernetesDiscoveryProperties(true, false, Set.of("a", "b"),
336+
true, 60L, false, "", Set.of(), Map.of(), "", null, 57, false, true);
337+
338+
Lister<V1Service> serviceLister = setupServiceLister(NAMESPACE_ALL, TEST_SERVICE_1, TEST_SERVICE_2);
339+
Lister<V1Endpoints> endpointsLister = setupEndpointsLister(TEST_ENDPOINTS_1);
340+
341+
KubernetesInformerDiscoveryClient discoveryClient = new KubernetesInformerDiscoveryClient(sharedInformerFactory,
342+
serviceLister, endpointsLister, null, null, properties);
343+
344+
Assertions.assertThat(discoveryClient.getOrder()).isEqualTo(57);
345+
}
346+
333347
private Lister<V1Service> setupServiceLister(String namespace, V1Service... services) {
334348
Lister<V1Service> serviceLister = new Lister<>(serviceCache, namespace);
335349
for (V1Service svc : services) {
@@ -338,7 +352,7 @@ private Lister<V1Service> setupServiceLister(String namespace, V1Service... serv
338352
return serviceLister;
339353
}
340354

341-
private Lister<V1Endpoints> setupEndpointsLister(String namespace, V1Endpoints... endpoints) {
355+
private Lister<V1Endpoints> setupEndpointsLister(V1Endpoints... endpoints) {
342356
Lister<V1Endpoints> endpointsLister = new Lister<>(endpointsCache);
343357
for (V1Endpoints ep : endpoints) {
344358
endpointsCache.add(ep);

spring-cloud-kubernetes-fabric8-discovery/src/main/java/org/springframework/cloud/kubernetes/fabric8/discovery/reactive/KubernetesReactiveDiscoveryClient.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,9 @@ public Flux<String> getServices() {
6161
.subscribeOn(Schedulers.boundedElastic());
6262
}
6363

64+
@Override
65+
public int getOrder() {
66+
return kubernetesDiscoveryClient.getOrder();
67+
}
68+
6469
}

spring-cloud-kubernetes-fabric8-discovery/src/test/java/org/springframework/cloud/kubernetes/fabric8/discovery/Fabric8KubernetesDiscoveryClientTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -613,6 +613,16 @@ void testPodMetadata() {
613613
.containsExactlyInAnyOrderEntriesOf(Map.of("c", "d"));
614614
}
615615

616+
@Test
617+
void testOrder() {
618+
KubernetesDiscoveryProperties properties = new KubernetesDiscoveryProperties(true, false, Set.of(), true, 60L,
619+
false, "", Set.of(), Map.of(), "", null, 57, false);
620+
621+
KubernetesDiscoveryClient discoveryClient = new KubernetesDiscoveryClient(client, properties, null, null, null);
622+
623+
Assertions.assertThat(discoveryClient.getOrder()).isEqualTo(57);
624+
}
625+
616626
private void createEndpoints(String namespace, String name, Map<String, String> labels) {
617627
client.endpoints()
618628
.inNamespace(namespace)

0 commit comments

Comments
 (0)