From 473014e3e3025ef9995c898f626e8e934645c170 Mon Sep 17 00:00:00 2001 From: wind57 Date: Wed, 2 Apr 2025 11:22:55 +0300 Subject: [PATCH 1/3] fix Signed-off-by: wind57 --- .../tests/commons/fabric8_client/Util.java | 11 +++++++++++ .../tests/commons/native_client/Util.java | 16 ++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java index d8e0a81f..7f4ef19a 100644 --- a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java +++ b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java @@ -151,6 +151,7 @@ public final class Util { System.out.println("Ended deployment delete in " + (System.currentTimeMillis() - startTime) + "ms"); client.services().inNamespace(namespace).resource(service).delete(); + waitForServiceToBeDeleted(namespace, service); } catch (Exception e) { @@ -363,6 +364,16 @@ public final class Util { }); } + private void waitForServiceToBeDeleted(String namespace, Service service) { + + String serviceName = service.getMetadata().getName(); + + await().pollInterval(Duration.ofSeconds(1)).atMost(30, TimeUnit.SECONDS).until(() -> { + Service inner = client.services().inNamespace(namespace).withName(serviceName).get(); + return inner == null; + }); + } + private void waitForDeployment(String namespace, Deployment deployment) { String deploymentName = deploymentName(deployment); await().pollInterval(Duration.ofSeconds(2)) diff --git a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java index 92619aaf..1f385d37 100644 --- a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java +++ b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java @@ -212,6 +212,7 @@ public final class Util { service.getMetadata().setNamespace(namespace); coreV1Api.deleteNamespacedService(service.getMetadata().getName(), service.getMetadata().getNamespace(), null, null, null, null, null, null); + waitForServiceToBeDeleted(service.getMetadata().getName(), namespace); } catch (Exception e) { throw new RuntimeException(e); @@ -507,6 +508,21 @@ public final class Util { }); } + private void waitForServiceToBeDeleted(String serviceName, String namespace) { + await().timeout(Duration.ofSeconds(180)).until(() -> { + try { + coreV1Api.readNamespacedService(serviceName, namespace, null); + return false; + } + catch (ApiException e) { + if (e.getCode() == HttpURLConnection.HTTP_NOT_FOUND) { + return true; + } + throw new RuntimeException(e); + } + }); + } + private void waitForDeploymentPodsToBeDeleted(Map labels, String namespace) { await().timeout(Duration.ofSeconds(180)).until(() -> { try { From 390188a38a715db82b894129c6251709f913569f Mon Sep 17 00:00:00 2001 From: wind57 Date: Wed, 2 Apr 2025 11:41:40 +0300 Subject: [PATCH 2/3] trigger Signed-off-by: wind57 From 7612ac36c4d2a773c96a2a03ec3677d45a9850cb Mon Sep 17 00:00:00 2001 From: wind57 Date: Wed, 2 Apr 2025 12:15:36 +0300 Subject: [PATCH 3/3] fix test Signed-off-by: wind57 --- .../integration/tests/commons/fabric8_client/Util.java | 8 +++++--- .../integration/tests/commons/native_client/Util.java | 9 ++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java index 7f4ef19a..e0156007 100644 --- a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java +++ b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/fabric8_client/Util.java @@ -132,7 +132,7 @@ public final class Util { } } - public void deleteAndWait(String namespace, @Nullable Deployment deployment, Service service) { + public void deleteAndWait(String namespace, @Nullable Deployment deployment, @Nullable Service service) { try { long startTime = System.currentTimeMillis(); @@ -150,8 +150,10 @@ public final class Util { } System.out.println("Ended deployment delete in " + (System.currentTimeMillis() - startTime) + "ms"); - client.services().inNamespace(namespace).resource(service).delete(); - waitForServiceToBeDeleted(namespace, service); + if (service != null) { + client.services().inNamespace(namespace).resource(service).delete(); + waitForServiceToBeDeleted(namespace, service); + } } catch (Exception e) { diff --git a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java index 1f385d37..b9e813a8 100644 --- a/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java +++ b/spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/native_client/Util.java @@ -209,10 +209,13 @@ public final class Util { waitForDeploymentToBeDeleted(deploymentName, namespace); waitForDeploymentPodsToBeDeleted(podLabels, namespace); - service.getMetadata().setNamespace(namespace); - coreV1Api.deleteNamespacedService(service.getMetadata().getName(), service.getMetadata().getNamespace(), + if (service != null) { + service.getMetadata().setNamespace(namespace); + coreV1Api.deleteNamespacedService(service.getMetadata().getName(), service.getMetadata().getNamespace(), null, null, null, null, null, null); - waitForServiceToBeDeleted(service.getMetadata().getName(), namespace); + waitForServiceToBeDeleted(service.getMetadata().getName(), namespace); + } + } catch (Exception e) { throw new RuntimeException(e);