Search in sources :

Example 1 with V1NamespaceList

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

the class PagerTest method testPaginationForNamespaceListWithBadTokenFailure.

@Test
public void testPaginationForNamespaceListWithBadTokenFailure() throws IOException {
    String status400Str = new String(Files.readAllBytes(Paths.get(STATUS_BAD_TOKEN_FILE_PATH)));
    CoreV1Api api = new CoreV1Api(client);
    stubFor(get(urlPathEqualTo("/api/v1/namespaces")).withQueryParam("limit", equalTo("1")).willReturn(aResponse().withStatus(400).withHeader("Content-Type", "application/json").withBody(status400Str)));
    Pager<V1Namespace, V1NamespaceList> pager = new Pager<V1Namespace, V1NamespaceList>((Pager.PagerParams param) -> {
        try {
            return api.listNamespaceCall(null, null, param.getContinueToken(), null, null, param.getLimit(), null, null, null, null, null);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }, client, 1, V1NamespaceList.class);
    int count = 0;
    try {
        for (V1Namespace namespace : pager) {
            assertEquals("default", namespace.getMetadata().getName());
            count++;
        }
    } catch (Exception e) {
        assertEquals(status400Str, e.getMessage());
    }
    verify(getRequestedFor(urlPathEqualTo("/api/v1/namespaces")).withQueryParam("limit", equalTo("1")));
}
Also used : V1NamespaceList(io.kubernetes.client.openapi.models.V1NamespaceList) V1Namespace(io.kubernetes.client.openapi.models.V1Namespace) CoreV1Api(io.kubernetes.client.openapi.apis.CoreV1Api) IOException(java.io.IOException) Test(org.junit.Test)

Example 2 with V1NamespaceList

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

the class CoreV1Api method listNamespaceAsync.

/**
 * (asynchronously) list or watch objects of kind Namespace
 *
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type
 *     \&quot;BOOKMARK\&quot;. Servers that do not implement bookmarks may ignore this flag and
 *     bookmarks are sent at the server&#39;s discretion. Clients should not assume bookmarks are
 *     returned at any specific interval, nor may they assume the server will send any BOOKMARK
 *     event during a session. If this is not a watch, this field is ignored. (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 fieldSelector A selector to restrict the list of returned objects by their fields.
 *     Defaults to everything. (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 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 watch Watch for changes to the described resources and return them as a stream of add,
 *     update, and remove notifications. Specify resourceVersion. (optional)
 * @param _callback The callback to be executed when the API call finishes
 * @return The request call
 * @throws ApiException If fail to process the API call, e.g. serializing the request body object
 * @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 okhttp3.Call listNamespaceAsync(String pretty, Boolean allowWatchBookmarks, String _continue, String fieldSelector, String labelSelector, Integer limit, String resourceVersion, String resourceVersionMatch, Integer timeoutSeconds, Boolean watch, final ApiCallback<V1NamespaceList> _callback) throws ApiException {
    okhttp3.Call localVarCall = listNamespaceValidateBeforeCall(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, _callback);
    Type localVarReturnType = new TypeToken<V1NamespaceList>() {
    }.getType();
    localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
    return localVarCall;
}
Also used : V1NamespaceList(io.kubernetes.client.openapi.models.V1NamespaceList) Type(java.lang.reflect.Type)

Example 3 with V1NamespaceList

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

the class DynamicKubernetesApiTest method testListNamespaceShouldWork.

@Test
public void testListNamespaceShouldWork() throws ApiException {
    V1NamespaceList expectedList = new V1NamespaceList().addItemsItem(new V1Namespace().metadata(new V1ObjectMeta().name("foo1"))).addItemsItem(new V1Namespace().metadata(new V1ObjectMeta().name("foo2")));
    wireMockRule.stubFor(get(urlPathEqualTo("/api/v1/namespaces")).willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody(apiClient.getJSON().serialize(expectedList))));
    DynamicKubernetesApi api = new DynamicKubernetesApi("", "v1", "namespaces", apiClient);
    DynamicKubernetesListObject listObj = api.list().throwsApiException().getObject();
    assertEquals(expectedList.getItems().size(), listObj.getItems().size());
    wireMockRule.verify(getRequestedFor(urlPathEqualTo("/api/v1/namespaces")));
}
Also used : V1NamespaceList(io.kubernetes.client.openapi.models.V1NamespaceList) V1ObjectMeta(io.kubernetes.client.openapi.models.V1ObjectMeta) V1Namespace(io.kubernetes.client.openapi.models.V1Namespace) Test(org.junit.Test)

Example 4 with V1NamespaceList

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

the class CoreV1Api method listNamespaceWithHttpInfo.

/**
 * list or watch objects of kind Namespace
 *
 * @param pretty If &#39;true&#39;, then the output is pretty printed. (optional)
 * @param allowWatchBookmarks allowWatchBookmarks requests watch events with type
 *     \&quot;BOOKMARK\&quot;. Servers that do not implement bookmarks may ignore this flag and
 *     bookmarks are sent at the server&#39;s discretion. Clients should not assume bookmarks are
 *     returned at any specific interval, nor may they assume the server will send any BOOKMARK
 *     event during a session. If this is not a watch, this field is ignored. (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 fieldSelector A selector to restrict the list of returned objects by their fields.
 *     Defaults to everything. (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 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 watch Watch for changes to the described resources and return them as a stream of add,
 *     update, and remove notifications. Specify resourceVersion. (optional)
 * @return ApiResponse&lt;V1NamespaceList&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<V1NamespaceList> listNamespaceWithHttpInfo(String pretty, Boolean allowWatchBookmarks, String _continue, String fieldSelector, String labelSelector, Integer limit, String resourceVersion, String resourceVersionMatch, Integer timeoutSeconds, Boolean watch) throws ApiException {
    okhttp3.Call localVarCall = listNamespaceValidateBeforeCall(pretty, allowWatchBookmarks, _continue, fieldSelector, labelSelector, limit, resourceVersion, resourceVersionMatch, timeoutSeconds, watch, null);
    Type localVarReturnType = new TypeToken<V1NamespaceList>() {
    }.getType();
    return localVarApiClient.execute(localVarCall, localVarReturnType);
}
Also used : V1NamespaceList(io.kubernetes.client.openapi.models.V1NamespaceList) Type(java.lang.reflect.Type)

Example 5 with V1NamespaceList

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

the class PagerTest method testPaginationForNamespaceListWithFieldSelectorFailure.

@Test
public void testPaginationForNamespaceListWithFieldSelectorFailure() throws IOException {
    String status400Str = new String(Files.readAllBytes(Paths.get(LIST_STATUS_FILE_PATH)));
    CoreV1Api api = new CoreV1Api(client);
    stubFor(get(urlPathEqualTo("/api/v1/namespaces")).withQueryParam("fieldSelector", equalTo("metadata.name=default")).withQueryParam("limit", equalTo("1")).willReturn(aResponse().withStatus(400).withHeader("Content-Type", "application/json").withBody(status400Str)));
    Pager<V1Namespace, V1NamespaceList> pager = new Pager<V1Namespace, V1NamespaceList>((Pager.PagerParams param) -> {
        try {
            return api.listNamespaceCall(null, null, param.getContinueToken(), "metadata.name=default", null, param.getLimit(), null, null, null, null, null);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }, client, 1, V1NamespaceList.class);
    int count = 0;
    try {
        for (V1Namespace namespace : pager) {
            count++;
            assertEquals("default", namespace.getMetadata().getName());
        }
    } catch (Exception e) {
        assertEquals(status400Str, e.getMessage());
    }
    verify(getRequestedFor(urlPathEqualTo("/api/v1/namespaces")).withQueryParam("fieldSelector", equalTo("metadata.name=default")).withQueryParam("limit", equalTo("1")));
}
Also used : V1NamespaceList(io.kubernetes.client.openapi.models.V1NamespaceList) V1Namespace(io.kubernetes.client.openapi.models.V1Namespace) CoreV1Api(io.kubernetes.client.openapi.apis.CoreV1Api) IOException(java.io.IOException) Test(org.junit.Test)

Aggregations

V1NamespaceList (io.kubernetes.client.openapi.models.V1NamespaceList)9 CoreV1Api (io.kubernetes.client.openapi.apis.CoreV1Api)6 V1Namespace (io.kubernetes.client.openapi.models.V1Namespace)6 IOException (java.io.IOException)6 Test (org.junit.Test)5 ApiClient (io.kubernetes.client.openapi.ApiClient)2 Type (java.lang.reflect.Type)2 Pager (io.kubernetes.client.extended.pager.Pager)1 ApiException (io.kubernetes.client.openapi.ApiException)1 Configuration (io.kubernetes.client.openapi.Configuration)1 AppsV1Api (io.kubernetes.client.openapi.apis.AppsV1Api)1 V1Deployment (io.kubernetes.client.openapi.models.V1Deployment)1 V1DeploymentList (io.kubernetes.client.openapi.models.V1DeploymentList)1 V1DeploymentSpec (io.kubernetes.client.openapi.models.V1DeploymentSpec)1 V1ObjectMeta (io.kubernetes.client.openapi.models.V1ObjectMeta)1 V1PodList (io.kubernetes.client.openapi.models.V1PodList)1 V1ServiceList (io.kubernetes.client.openapi.models.V1ServiceList)1 Config (io.kubernetes.client.util.Config)1 List (java.util.List)1 Optional (java.util.Optional)1