diff --git a/examples/src/main/java/io/kubernetes/client/examples/GenericClientExample.java b/examples/src/main/java/io/kubernetes/client/examples/GenericClientExample.java new file mode 100644 index 0000000000..8649ff95b4 --- /dev/null +++ b/examples/src/main/java/io/kubernetes/client/examples/GenericClientExample.java @@ -0,0 +1,46 @@ +package io.kubernetes.client.examples; + +import com.google.common.annotations.Beta; +import io.kubernetes.client.extended.generic.GenericKubernetesApi; +import io.kubernetes.client.extended.generic.KubernetesApiResponse; +import io.kubernetes.client.openapi.ApiClient; +import io.kubernetes.client.openapi.models.V1Container; +import io.kubernetes.client.openapi.models.V1ObjectMeta; +import io.kubernetes.client.openapi.models.V1Pod; +import io.kubernetes.client.openapi.models.V1PodList; +import io.kubernetes.client.openapi.models.V1PodSpec; +import io.kubernetes.client.util.ClientBuilder; +import java.util.Arrays; + +@Beta +public class GenericClientExample { + + public static void main(String[] args) throws Exception { + + V1Pod pod = + new V1Pod() + .metadata(new V1ObjectMeta().name("foo").namespace("default")) + .spec( + new V1PodSpec() + .containers(Arrays.asList(new V1Container().name("c").image("test")))); + ApiClient apiClient = ClientBuilder.standard().build(); + GenericKubernetesApi podClient = + new GenericKubernetesApi<>(V1Pod.class, V1PodList.class, "", "v1", "pods", apiClient); + + KubernetesApiResponse createResponse = podClient.create(pod); + if (!createResponse.isSuccess()) { + throw new RuntimeException(createResponse.getStatus().toString()); + } + System.out.println("Created!"); + + KubernetesApiResponse deleteResponse = podClient.delete("default", "foo"); + if (!deleteResponse.isSuccess()) { + throw new RuntimeException(deleteResponse.getStatus().toString()); + } + if (deleteResponse.getObject() != null) { + System.out.println( + "Received after-deletion status of the requested object, will be deleting in background!"); + } + System.out.println("Deleted!"); + } +} diff --git a/extended/src/main/java/io/kubernetes/client/extended/generic/GenericKubernetesApi.java b/extended/src/main/java/io/kubernetes/client/extended/generic/GenericKubernetesApi.java index 9dcd428b70..2f9027e5de 100644 --- a/extended/src/main/java/io/kubernetes/client/extended/generic/GenericKubernetesApi.java +++ b/extended/src/main/java/io/kubernetes/client/extended/generic/GenericKubernetesApi.java @@ -23,7 +23,7 @@ import io.kubernetes.client.util.Watch; import io.kubernetes.client.util.Watchable; import io.kubernetes.client.util.exception.ObjectMetaReflectException; -import java.net.SocketTimeoutException; +import java.io.IOException; import okhttp3.Call; import okhttp3.HttpUrl; @@ -669,7 +669,7 @@ private KubernetesApiResponse executeCall( JsonElement element = apiClient.execute(call, JsonElement.class).getData(); return getKubernetesApiResponse(dataClass, element, apiClient.getJSON().getGson()); } catch (ApiException e) { - if (e.getCause() instanceof SocketTimeoutException) { + if (e.getCause() instanceof IOException) { throw new IllegalStateException(e.getCause()); // make this a checked exception? } V1Status status = apiClient.getJSON().deserialize(e.getResponseBody(), V1Status.class);