Search in sources :

Example 56 with V1Status

use of io.kubernetes.client.openapi.models.V1Status in project java by kubernetes-client.

the class ReflectorRunnableTest method testReflectorListShouldHandleExpiredResourceVersionFromWatchHandler.

@Test
public void testReflectorListShouldHandleExpiredResourceVersionFromWatchHandler() throws ApiException {
    String expectedResourceVersion = "100";
    when(listerWatcher.list(any())).thenReturn(new V1PodList().metadata(new V1ListMeta().resourceVersion(expectedResourceVersion)));
    V1Status v1Status = new V1Status();
    v1Status.setMessage("dummy-error-message");
    v1Status.setCode(410);
    when(listerWatcher.watch(any())).thenReturn(new MockWatch<>(new Watch.Response("Error", v1Status)));
    ReflectorRunnable<V1Pod, V1PodList> reflectorRunnable = new ReflectorRunnable<>(V1Pod.class, listerWatcher, deltaFIFO);
    try {
        Thread thread = new Thread(reflectorRunnable::run);
        thread.setDaemon(true);
        thread.start();
        Awaitility.await().atMost(Duration.ofSeconds(1)).pollInterval(Duration.ofMillis(100)).until(() -> expectedResourceVersion.equals(reflectorRunnable.getLastSyncResourceVersion()));
        assertTrue(reflectorRunnable.isLastSyncResourceVersionUnavailable());
    } finally {
        reflectorRunnable.stop();
    }
}
Also used : V1PodList(io.kubernetes.client.openapi.models.V1PodList) V1Status(io.kubernetes.client.openapi.models.V1Status) V1Pod(io.kubernetes.client.openapi.models.V1Pod) V1ListMeta(io.kubernetes.client.openapi.models.V1ListMeta) Test(org.junit.Test)

Example 57 with V1Status

use of io.kubernetes.client.openapi.models.V1Status in project java by kubernetes-client.

the class GenericKubernetesApiTest method deleteNamespacedJobReturningForbiddenStatus.

@Test
public void deleteNamespacedJobReturningForbiddenStatus() {
    V1Status status = new V1Status().kind("Status").code(403).message("good!");
    stubFor(delete(urlEqualTo("/apis/batch/v1/namespaces/default/jobs/foo1")).willReturn(aResponse().withStatus(403).withBody(json.serialize(status))));
    KubernetesApiResponse<V1Job> deleteJobResp = jobClient.delete("default", "foo1");
    assertFalse(deleteJobResp.isSuccess());
    assertEquals(status, deleteJobResp.getStatus());
    assertNull(deleteJobResp.getObject());
    verify(1, deleteRequestedFor(urlPathEqualTo("/apis/batch/v1/namespaces/default/jobs/foo1")));
}
Also used : V1Job(io.kubernetes.client.openapi.models.V1Job) V1Status(io.kubernetes.client.openapi.models.V1Status) Test(org.junit.Test)

Example 58 with V1Status

use of io.kubernetes.client.openapi.models.V1Status in project java by kubernetes-client.

the class GenericKubernetesApiTest method deleteNamespacedJobReturningStatus.

// test delete
@Test
public void deleteNamespacedJobReturningStatus() {
    V1Status status = new V1Status().kind("Status").code(200).message("good!");
    stubFor(delete(urlEqualTo("/apis/batch/v1/namespaces/default/jobs/foo1")).willReturn(aResponse().withStatus(200).withBody(json.serialize(status))));
    KubernetesApiResponse<V1Job> deleteJobResp = jobClient.delete("default", "foo1", null);
    assertTrue(deleteJobResp.isSuccess());
    assertEquals(status, deleteJobResp.getStatus());
    assertNull(deleteJobResp.getObject());
    verify(1, deleteRequestedFor(urlPathEqualTo("/apis/batch/v1/namespaces/default/jobs/foo1")));
}
Also used : V1Job(io.kubernetes.client.openapi.models.V1Job) V1Status(io.kubernetes.client.openapi.models.V1Status) Test(org.junit.Test)

Example 59 with V1Status

use of io.kubernetes.client.openapi.models.V1Status in project java by kubernetes-client.

the class StorageV1Api method deleteCollectionCSINodeWithHttpInfo.

/**
 * delete collection of CSINode
 *
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param _continue The continue option should be set when retrieving more results from the
 *     server. Since this value is server defined, clients may only use the continue value from a
 *     previous query result with identical query parameters (except for the value of continue)
 *     and the server may reject a continue value it does not recognize. If the specified continue
 *     value is no longer valid whether due to expiration (generally five to fifteen minutes) or a
 *     configuration change on the server, the server will respond with a 410 ResourceExpired
 *     error together with a continue token. If the client needs a consistent list, it must
 *     restart their list without the continue field. Otherwise, the client may send another list
 *     request with the token received with the 410 error, the server will respond with a list
 *     starting from the next key, but from the latest snapshot, which is inconsistent from the
 *     previous list results - objects that are created, modified, or deleted after the first list
 *     request will be included in the response, as long as their keys are after the \&quot;next
 *     key\&quot;. This field is not supported when watch is true. Clients may start a watch from
 *     the last resourceVersion value returned by the server and not miss any modifications.
 *     (optional)
 * @param dryRun When present, indicates that modifications should not be persisted. An invalid or
 *     unrecognized dryRun directive will result in an error response and no further processing of
 *     the request. Valid values are: - All: all dry run stages will be processed (optional)
 * @param fieldSelector A selector to restrict the list of returned objects by their fields.
 *     Defaults to everything. (optional)
 * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value
 *     must be non-negative integer. The value zero indicates delete immediately. If this value is
 *     nil, the default grace period for the specified type will be used. Defaults to a per object
 *     value if not specified. zero means delete immediately. (optional)
 * @param labelSelector A selector to restrict the list of returned objects by their labels.
 *     Defaults to everything. (optional)
 * @param limit limit is a maximum number of responses to return for a list call. If more items
 *     exist, the server will set the &#x60;continue&#x60; field on the list metadata to a value
 *     that can be used with the same initial query to retrieve the next set of results. Setting a
 *     limit may return fewer than the requested amount of items (up to zero items) in the event
 *     all requested objects are filtered out and clients should only use the presence of the
 *     continue field to determine whether more results are available. Servers may choose not to
 *     support the limit argument and will return all of the available results. If limit is
 *     specified and the continue field is empty, clients may assume that no more results are
 *     available. This field is not supported if watch is true. The server guarantees that the
 *     objects returned when using continue will be identical to issuing a single list call
 *     without a limit - that is, no objects created, modified, or deleted after the first request
 *     is issued will be included in any subsequent continued requests. This is sometimes referred
 *     to as a consistent snapshot, and ensures that a client that is using limit to receive
 *     smaller chunks of a very large result can ensure they see all possible objects. If objects
 *     are updated during a chunked list the version of the object that was present at the time
 *     the first list result was calculated is returned. (optional)
 * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be
 *     deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the
 *     \&quot;orphan\&quot; finalizer will be added to/removed from the object&#39;s finalizers
 *     list. Either this field or PropagationPolicy may be set, but not both. (optional)
 * @param propagationPolicy Whether and how garbage collection will be performed. Either this
 *     field or OrphanDependents may be set, but not both. The default policy is decided by the
 *     existing finalizer set in the metadata.finalizers and the resource-specific default policy.
 *     Acceptable values are: &#39;Orphan&#39; - orphan the dependents; &#39;Background&#39; -
 *     allow the garbage collector to delete the dependents in the background;
 *     &#39;Foreground&#39; - a cascading policy that deletes all dependents in the foreground.
 *     (optional)
 * @param resourceVersion resourceVersion sets a constraint on what resource versions a request
 *     may be served from. See
 *     https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.
 *     Defaults to unset (optional)
 * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to
 *     list calls. It is highly recommended that resourceVersionMatch be set for list calls where
 *     resourceVersion is set See
 *     https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.
 *     Defaults to unset (optional)
 * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call,
 *     regardless of any activity or inactivity. (optional)
 * @param body (optional)
 * @return ApiResponse&lt;V1Status&gt;
 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
 *     response body
 * @http.response.details
 *     <table summary="Response Details" border="1">
 * <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
 * <tr><td> 200 </td><td> OK </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public ApiResponse<V1Status> deleteCollectionCSINodeWithHttpInfo(String pretty, String _continue, String dryRun, String fieldSelector, Integer gracePeriodSeconds, String labelSelector, Integer limit, Boolean orphanDependents, String propagationPolicy, String resourceVersion, String resourceVersionMatch, Integer timeoutSeconds, V1DeleteOptions body) throws ApiException {
    okhttp3.Call localVarCall = deleteCollectionCSINodeValidateBeforeCall(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, body, null);
    Type localVarReturnType = new TypeToken<V1Status>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : Type(java.lang.reflect.Type) V1Status(io.kubernetes.client.openapi.models.V1Status)

Example 60 with V1Status

use of io.kubernetes.client.openapi.models.V1Status in project java by kubernetes-client.

the class StorageV1Api method deleteCollectionVolumeAttachmentWithHttpInfo.

/**
 * delete collection of VolumeAttachment
 *
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param _continue The continue option should be set when retrieving more results from the
 *     server. Since this value is server defined, clients may only use the continue value from a
 *     previous query result with identical query parameters (except for the value of continue)
 *     and the server may reject a continue value it does not recognize. If the specified continue
 *     value is no longer valid whether due to expiration (generally five to fifteen minutes) or a
 *     configuration change on the server, the server will respond with a 410 ResourceExpired
 *     error together with a continue token. If the client needs a consistent list, it must
 *     restart their list without the continue field. Otherwise, the client may send another list
 *     request with the token received with the 410 error, the server will respond with a list
 *     starting from the next key, but from the latest snapshot, which is inconsistent from the
 *     previous list results - objects that are created, modified, or deleted after the first list
 *     request will be included in the response, as long as their keys are after the \&quot;next
 *     key\&quot;. This field is not supported when watch is true. Clients may start a watch from
 *     the last resourceVersion value returned by the server and not miss any modifications.
 *     (optional)
 * @param dryRun When present, indicates that modifications should not be persisted. An invalid or
 *     unrecognized dryRun directive will result in an error response and no further processing of
 *     the request. Valid values are: - All: all dry run stages will be processed (optional)
 * @param fieldSelector A selector to restrict the list of returned objects by their fields.
 *     Defaults to everything. (optional)
 * @param gracePeriodSeconds The duration in seconds before the object should be deleted. Value
 *     must be non-negative integer. The value zero indicates delete immediately. If this value is
 *     nil, the default grace period for the specified type will be used. Defaults to a per object
 *     value if not specified. zero means delete immediately. (optional)
 * @param labelSelector A selector to restrict the list of returned objects by their labels.
 *     Defaults to everything. (optional)
 * @param limit limit is a maximum number of responses to return for a list call. If more items
 *     exist, the server will set the &#x60;continue&#x60; field on the list metadata to a value
 *     that can be used with the same initial query to retrieve the next set of results. Setting a
 *     limit may return fewer than the requested amount of items (up to zero items) in the event
 *     all requested objects are filtered out and clients should only use the presence of the
 *     continue field to determine whether more results are available. Servers may choose not to
 *     support the limit argument and will return all of the available results. If limit is
 *     specified and the continue field is empty, clients may assume that no more results are
 *     available. This field is not supported if watch is true. The server guarantees that the
 *     objects returned when using continue will be identical to issuing a single list call
 *     without a limit - that is, no objects created, modified, or deleted after the first request
 *     is issued will be included in any subsequent continued requests. This is sometimes referred
 *     to as a consistent snapshot, and ensures that a client that is using limit to receive
 *     smaller chunks of a very large result can ensure they see all possible objects. If objects
 *     are updated during a chunked list the version of the object that was present at the time
 *     the first list result was calculated is returned. (optional)
 * @param orphanDependents Deprecated: please use the PropagationPolicy, this field will be
 *     deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the
 *     \&quot;orphan\&quot; finalizer will be added to/removed from the object&#39;s finalizers
 *     list. Either this field or PropagationPolicy may be set, but not both. (optional)
 * @param propagationPolicy Whether and how garbage collection will be performed. Either this
 *     field or OrphanDependents may be set, but not both. The default policy is decided by the
 *     existing finalizer set in the metadata.finalizers and the resource-specific default policy.
 *     Acceptable values are: &#39;Orphan&#39; - orphan the dependents; &#39;Background&#39; -
 *     allow the garbage collector to delete the dependents in the background;
 *     &#39;Foreground&#39; - a cascading policy that deletes all dependents in the foreground.
 *     (optional)
 * @param resourceVersion resourceVersion sets a constraint on what resource versions a request
 *     may be served from. See
 *     https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.
 *     Defaults to unset (optional)
 * @param resourceVersionMatch resourceVersionMatch determines how resourceVersion is applied to
 *     list calls. It is highly recommended that resourceVersionMatch be set for list calls where
 *     resourceVersion is set See
 *     https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.
 *     Defaults to unset (optional)
 * @param timeoutSeconds Timeout for the list/watch call. This limits the duration of the call,
 *     regardless of any activity or inactivity. (optional)
 * @param body (optional)
 * @return ApiResponse&lt;V1Status&gt;
 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the
 *     response body
 * @http.response.details
 *     <table summary="Response Details" border="1">
 * <tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
 * <tr><td> 200 </td><td> OK </td><td>  -  </td></tr>
 * <tr><td> 401 </td><td> Unauthorized </td><td>  -  </td></tr>
 * </table>
 */
public ApiResponse<V1Status> deleteCollectionVolumeAttachmentWithHttpInfo(String pretty, String _continue, String dryRun, String fieldSelector, Integer gracePeriodSeconds, String labelSelector, Integer limit, Boolean orphanDependents, String propagationPolicy, String resourceVersion, String resourceVersionMatch, Integer timeoutSeconds, V1DeleteOptions body) throws ApiException {
    okhttp3.Call localVarCall = deleteCollectionVolumeAttachmentValidateBeforeCall(pretty, _continue, dryRun, fieldSelector, gracePeriodSeconds, labelSelector, limit, orphanDependents, propagationPolicy, resourceVersion, resourceVersionMatch, timeoutSeconds, body, null);
    Type localVarReturnType = new TypeToken<V1Status>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : Type(java.lang.reflect.Type) V1Status(io.kubernetes.client.openapi.models.V1Status)

Aggregations

V1Status (io.kubernetes.client.openapi.models.V1Status)243 Type (java.lang.reflect.Type)224 Test (org.junit.Test)15 V1Pod (io.kubernetes.client.openapi.models.V1Pod)8 ApiException (io.kubernetes.client.openapi.ApiException)6 CoreV1Api (io.kubernetes.client.openapi.apis.CoreV1Api)4 V1ListMeta (io.kubernetes.client.openapi.models.V1ListMeta)4 V1PodList (io.kubernetes.client.openapi.models.V1PodList)4 V1Job (io.kubernetes.client.openapi.models.V1Job)3 CallGeneratorParams (io.kubernetes.client.util.CallGeneratorParams)3 Watch (io.kubernetes.client.util.Watch)3 SharedInformerFactory (io.kubernetes.client.informer.SharedInformerFactory)2 JSON (io.kubernetes.client.openapi.JSON)2 SneakyThrows (lombok.SneakyThrows)2 WireMock.aResponse (com.github.tomakehurst.wiremock.client.WireMock.aResponse)1 Gson (com.google.gson.Gson)1 JsonElement (com.google.gson.JsonElement)1 JsonSyntaxException (com.google.gson.JsonSyntaxException)1 KubectlException (io.kubernetes.client.extended.kubectl.exception.KubectlException)1 V1ConfigMap (io.kubernetes.client.openapi.models.V1ConfigMap)1