From 4e700a27edd10cedc6f36ea5901a38188de2fcc5 Mon Sep 17 00:00:00 2001 From: Rohan Kumar Date: Mon, 7 Feb 2022 15:21:35 +0100 Subject: [PATCH] fix (kubernetes-client) : reintroduce Replaceable interface in NonNamespaceOperation This was introduced by mistake in Dry Run implementation as part of WritableOperation and was subsequently removed in https://github.com/fabric8io/kubernetes-client/pull/3798 But it makes sense for replace operation to work without name. It can be inferred from the passed object. Signed-off-by: Rohan Kumar (cherry picked from commit ea07b7f038a83fd6a15aa1d06a1ad4510274def9) Signed-off-by: Marc Nuri --- .../java/io/fabric8/kubernetes/TypedCustomResourceIT.java | 2 +- .../kubernetes/client/mock/CustomResourceCrudTest.java | 4 ++-- .../client/mock/TypedClusterScopeCustomResourceApiTest.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kubernetes-itests/src/test/java/io/fabric8/kubernetes/TypedCustomResourceIT.java b/kubernetes-itests/src/test/java/io/fabric8/kubernetes/TypedCustomResourceIT.java index db10e934c0..25993194f6 100644 --- a/kubernetes-itests/src/test/java/io/fabric8/kubernetes/TypedCustomResourceIT.java +++ b/kubernetes-itests/src/test/java/io/fabric8/kubernetes/TypedCustomResourceIT.java @@ -214,7 +214,7 @@ public void replaceStatusSubresource() { // use the original pet, no need to pick up the resourceVersion pet.getSpec().setType("shouldn't change"); pet.setStatus(petStatusToUpdate); - Pet updatedPet = petClient.inNamespace(currentNamespace).withName(pet.getMetadata().getName()).replaceStatus(pet); + Pet updatedPet = petClient.inNamespace(currentNamespace).replaceStatus(pet); // Then assertPet(updatedPet, "pet-replacestatus", "Pigeon", "Sleeping"); diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java index fa427e449e..7f1d94af5a 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/CustomResourceCrudTest.java @@ -175,7 +175,7 @@ void testStatusSubresourceHandling() { cronTab.getMetadata().setLabels(labels); - result = cronTabClient.withName(cronTab.getMetadata().getName()).replace(cronTab); + result = cronTabClient.replace(cronTab); String originalUid = result.getMetadata().getUid(); @@ -187,7 +187,7 @@ void testStatusSubresourceHandling() { labels.put("other", "label"); cronTab.setStatus(null); - result = cronTabClient.withName(cronTab.getMetadata().getName()).replace(cronTab); + result = cronTabClient.replace(cronTab); // should retain the existing assertNotNull(result.getStatus()); diff --git a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java index 7eb8540007..e5b6beb456 100644 --- a/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java +++ b/kubernetes-tests/src/test/java/io/fabric8/kubernetes/client/mock/TypedClusterScopeCustomResourceApiTest.java @@ -157,7 +157,7 @@ void testStatusReplace() throws InterruptedException { server.expect().put().withPath("/apis/example.crd.com/v1alpha1/stars/sun/status").andReturn(200, "{\"apiVersion\":\"example.crd.com/v1alpha1\",\"kind\":\"Star\",\"metadata\":{\"name\":\"sun\",\"resourceVersion\":\"2\"},\"spec\":{\"type\":\"G\",\"location\":\"Galaxy\"},\"status\":{\"location\":\"M\"}}").once(); starClient = client.customResources(Star.class); - Star replaced = starClient.inNamespace("test").withName(updatedStar.getMetadata().getName()).replaceStatus(updatedStar); + Star replaced = starClient.inNamespace("test").replaceStatus(updatedStar); assertEquals("2", replaced.getMetadata().getResourceVersion()); RecordedRequest recordedRequest = server.getLastRequest(); // get of the latest version, put of status