Search in sources :

Example 11 with APIGroup

use of io.fabric8.kubernetes.api.model.APIGroup in project strimzi by strimzi.

the class PlatformFeaturesAvailabilityTest method buildAPIGroup.

private APIGroup buildAPIGroup(String group, String... versions) {
    APIGroup apiGroup = new APIGroupBuilder().withName(group).build();
    List<GroupVersionForDiscovery> groupVersions = new ArrayList<>();
    for (String version : versions) {
        groupVersions.add(new GroupVersionForDiscoveryBuilder().withGroupVersion(group + "/" + version).withVersion(version).build());
    }
    apiGroup.setVersions(groupVersions);
    return apiGroup;
}
Also used : GroupVersionForDiscoveryBuilder(io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder) ArrayList(java.util.ArrayList) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) APIGroupBuilder(io.fabric8.kubernetes.api.model.APIGroupBuilder) GroupVersionForDiscovery(io.fabric8.kubernetes.api.model.GroupVersionForDiscovery)

Example 12 with APIGroup

use of io.fabric8.kubernetes.api.model.APIGroup in project strimzi-kafka-operator by strimzi.

the class PlatformFeaturesAvailability method checkApiAvailability.

private static Future<Boolean> checkApiAvailability(Vertx vertx, KubernetesClient client, String group, String version) {
    Promise<Boolean> promise = Promise.promise();
    vertx.executeBlocking(request -> {
        try {
            APIGroup apiGroup = client.getApiGroup(group);
            boolean supported;
            if (apiGroup != null) {
                supported = apiGroup.getVersions().stream().anyMatch(v -> version.equals(v.getVersion()));
            } else {
                supported = false;
            }
            LOGGER.warn("API Group {} is {}supported", group, supported ? "" : "not ");
            request.complete(supported);
        } catch (Exception e) {
            LOGGER.error("Detection of API availability failed.", e);
            request.fail(e);
        }
    }, promise);
    return promise.future();
}
Also used : Util(io.strimzi.operator.common.Util) Logger(org.apache.logging.log4j.Logger) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) Promise(io.vertx.core.Promise) Map(java.util.Map) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) Vertx(io.vertx.core.Vertx) ParseException(java.text.ParseException) Future(io.vertx.core.Future) LogManager(org.apache.logging.log4j.LogManager) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) ParseException(java.text.ParseException)

Aggregations

APIGroup (io.fabric8.kubernetes.api.model.APIGroup)12 APIGroupBuilder (io.fabric8.kubernetes.api.model.APIGroupBuilder)10 GroupVersionForDiscovery (io.fabric8.kubernetes.api.model.GroupVersionForDiscovery)10 GroupVersionForDiscoveryBuilder (io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder)10 KubernetesClient (io.fabric8.kubernetes.client.KubernetesClient)10 VersionInfo (io.fabric8.kubernetes.client.VersionInfo)10 Promise (io.vertx.core.Promise)10 Vertx (io.vertx.core.Vertx)10 ParseException (java.text.ParseException)10 ArrayList (java.util.ArrayList)10 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)8 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)8 DefaultKubernetesClient (io.fabric8.kubernetes.client.DefaultKubernetesClient)8 HttpMethod (io.vertx.core.http.HttpMethod)8 HttpServer (io.vertx.core.http.HttpServer)8 Checkpoint (io.vertx.junit5.Checkpoint)8 VertxExtension (io.vertx.junit5.VertxExtension)8 VertxTestContext (io.vertx.junit5.VertxTestContext)8 Collections (java.util.Collections)8 List (java.util.List)8