Skip to content

CoreV1Api#deleteNamespacedService expect wrong response object type #3972

Description

@tipame

Describe the bug
APIdeleteNamespacedServiceRequest#execute returns V1Service.
Actually server response with V1Status (in terms of lib api).
So client response handler code fails on parsing Status json to V1Service dto:

java.lang.IllegalArgumentException: The field `details` in the JSON string is not defined in the `V1Service` properties. JSON: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Success","details":{"name":"dummy","kind":"services","uid":"7839a223-28f5-495a-a4af-838ca25a4489"}}
	at io.kubernetes.client.openapi.models.V1Service.validateJsonElement(V1Service.java:262)
	at io.kubernetes.client.openapi.models.V1Service$CustomTypeAdapterFactory$1.read(V1Service.java:307)
	at io.kubernetes.client.openapi.models.V1Service$CustomTypeAdapterFactory$1.read(V1Service.java:297)
	at com.google.gson.TypeAdapter$NullSafeTypeAdapter.read(TypeAdapter.java:314)
	at com.google.gson.Gson.fromJson(Gson.java:1361)
	at com.google.gson.Gson.fromJson(Gson.java:1262)
	at com.google.gson.Gson.fromJson(Gson.java:1171)
	at com.google.gson.Gson.fromJson(Gson.java:1137)
	at io.kubernetes.client.openapi.JSON.deserialize(JSON.java:799)
	at io.kubernetes.client.openapi.ApiClient.deserialize(ApiClient.java:909)
	at io.kubernetes.client.openapi.ApiClient.handleResponse(ApiClient.java:1119)
	at io.kubernetes.client.openapi.ApiClient.execute(ApiClient.java:1043)
	at io.kubernetes.client.openapi.apis.CoreV1Api.deleteNamespacedServiceWithHttpInfo(CoreV1Api.java:22126)
	at io.kubernetes.client.openapi.apis.CoreV1Api$APIdeleteNamespacedServiceRequest.execute(CoreV1Api.java:22253)

Client Version
23.0.0 | 22.0.1

Kubernetes Version
v1.21.14

Java Version
Java 17

To Reproduce

CoreV1Api api = new CoreV1Api(apiClient);
api.deleteNamespacedService(name, namespace).execute();

Expected behavior
Expect V1Status as a return type for service delete request.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions