diff --git a/util/src/main/java/io/kubernetes/client/util/generic/GenericKubernetesApi.java b/util/src/main/java/io/kubernetes/client/util/generic/GenericKubernetesApi.java index 757527cc8b..21360a7bb0 100644 --- a/util/src/main/java/io/kubernetes/client/util/generic/GenericKubernetesApi.java +++ b/util/src/main/java/io/kubernetes/client/util/generic/GenericKubernetesApi.java @@ -883,26 +883,29 @@ private CallBuilder makeUpdateStatusCallBuilder( boolean isNamespaced = !Strings.isNullOrEmpty(objectMeta.getNamespace()); return () -> //// TODO(yue9944882): judge namespaced object via api discovery - isNamespaced - ? customObjectsApi.patchNamespacedCustomObjectStatus( - this.apiGroup, - this.apiVersion, - objectMeta.getNamespace(), - this.resourcePlural, - objectMeta.getName(), - Arrays.asList(new StatusPatch(status.apply(object)))) - .dryRun(updateOptions.getDryRun()) - .fieldManager(updateOptions.getFieldManager()) - .buildCall(null) - : customObjectsApi.patchClusterCustomObjectStatus( - this.apiGroup, - this.apiVersion, - this.resourcePlural, - objectMeta.getName(), - Arrays.asList(new StatusPatch(status.apply(object)))) - .dryRun(updateOptions.getDryRun()) - .fieldManager(updateOptions.getFieldManager()) - .buildCall(null); + adaptPatchCall( + customObjectsApi.getApiClient(), + isNamespaced + ? customObjectsApi.patchNamespacedCustomObjectStatus( + this.apiGroup, + this.apiVersion, + objectMeta.getNamespace(), + this.resourcePlural, + objectMeta.getName(), + Arrays.asList(new StatusPatch(status.apply(object)))) + .dryRun(updateOptions.getDryRun()) + .fieldManager(updateOptions.getFieldManager()) + .buildCall(null) + : customObjectsApi.patchClusterCustomObjectStatus( + this.apiGroup, + this.apiVersion, + this.resourcePlural, + objectMeta.getName(), + Arrays.asList(new StatusPatch(status.apply(object)))) + .dryRun(updateOptions.getDryRun()) + .fieldManager(updateOptions.getFieldManager()) + .buildCall(null), + V1Patch.PATCH_FORMAT_JSON_PATCH); } /** diff --git a/util/src/test/java/io/kubernetes/client/util/generic/GenericKubernetesApiTest.java b/util/src/test/java/io/kubernetes/client/util/generic/GenericKubernetesApiTest.java index df2c0d420c..d423cf1a88 100644 --- a/util/src/test/java/io/kubernetes/client/util/generic/GenericKubernetesApiTest.java +++ b/util/src/test/java/io/kubernetes/client/util/generic/GenericKubernetesApiTest.java @@ -220,6 +220,7 @@ void updateStatusNamespacedJobReturningObject() { apiServer.stubFor( patch(urlPathEqualTo("/apis/batch/v1/namespaces/default/jobs/foo1/status")) + .withHeader("Content-Type", containing(V1Patch.PATCH_FORMAT_JSON_PATCH)) .willReturn(aResponse().withStatus(200).withBody(new JSON().serialize(foo1)))); KubernetesApiResponse jobListResp = jobClient.updateStatus(foo1, t -> t.getStatus()); assertThat(jobListResp.isSuccess()).isTrue();