Search in sources :

Example 1 with APIGroup

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

the class PlatformFeaturesAvailabilityTest method testApiDetectionOpenshift.

@Test
public void testApiDetectionOpenshift(Vertx vertx, VertxTestContext context) throws InterruptedException, ExecutionException {
    List<APIGroup> apis = new ArrayList<>();
    apis.add(buildAPIGroup("route.openshift.io", "v1"));
    apis.add(buildAPIGroup("build.openshift.io", "v1"));
    apis.add(buildAPIGroup("image.openshift.io", "v1"));
    startMockApi(vertx, apis);
    KubernetesClient client = new DefaultKubernetesClient("127.0.0.1:" + server.actualPort());
    Checkpoint async = context.checkpoint();
    PlatformFeaturesAvailability.create(vertx, client).onComplete(context.succeeding(pfa -> context.verify(() -> {
        assertThat(pfa.hasRoutes(), is(true));
        assertThat(pfa.hasBuilds(), is(true));
        assertThat(pfa.hasImages(), is(true));
        async.flag();
    })));
}
Also used : VertxTestContext(io.vertx.junit5.VertxTestContext) CoreMatchers.is(org.hamcrest.CoreMatchers.is) HttpServer(io.vertx.core.http.HttpServer) GroupVersionForDiscovery(io.fabric8.kubernetes.api.model.GroupVersionForDiscovery) ArrayList(java.util.ArrayList) APIGroupBuilder(io.fabric8.kubernetes.api.model.APIGroupBuilder) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) ParseException(java.text.ParseException) GroupVersionForDiscoveryBuilder(io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder) Promise(io.vertx.core.Promise) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Vertx(io.vertx.core.Vertx) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) VertxExtension(io.vertx.junit5.VertxExtension) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ExecutionException(java.util.concurrent.ExecutionException) AfterEach(org.junit.jupiter.api.AfterEach) List(java.util.List) HttpMethod(io.vertx.core.http.HttpMethod) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) Collections(java.util.Collections) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) ArrayList(java.util.ArrayList) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) Test(org.junit.jupiter.api.Test)

Example 2 with APIGroup

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

the class PlatformFeaturesAvailabilityTest method startMockApi.

void startMockApi(Vertx vertx, String version, List<APIGroup> apis) throws InterruptedException, ExecutionException {
    Set<String> groupsPaths = apis.stream().map(api -> "/apis/" + api.getName()).collect(Collectors.toSet());
    HttpServer httpServer = vertx.createHttpServer().requestHandler(request -> {
        if (HttpMethod.GET.equals(request.method()) && groupsPaths.contains(request.uri())) {
            String groupName = request.uri().substring(request.uri().lastIndexOf("/") + 1);
            APIGroup group = apis.stream().filter(g -> groupName.equals(g.getName())).findFirst().orElse(null);
            try {
                request.response().setStatusCode(200).end(OBJECTMAPPER.writeValueAsString(group));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } else if (HttpMethod.GET.equals(request.method()) && "/version".equals(request.uri())) {
            request.response().setStatusCode(200).end(version);
        } else {
            request.response().setStatusCode(404).end();
        }
    });
    server = httpServer.listen(0).toCompletionStage().toCompletableFuture().get();
}
Also used : VertxTestContext(io.vertx.junit5.VertxTestContext) CoreMatchers.is(org.hamcrest.CoreMatchers.is) HttpServer(io.vertx.core.http.HttpServer) GroupVersionForDiscovery(io.fabric8.kubernetes.api.model.GroupVersionForDiscovery) ArrayList(java.util.ArrayList) APIGroupBuilder(io.fabric8.kubernetes.api.model.APIGroupBuilder) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) ParseException(java.text.ParseException) GroupVersionForDiscoveryBuilder(io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder) Promise(io.vertx.core.Promise) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Vertx(io.vertx.core.Vertx) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) VertxExtension(io.vertx.junit5.VertxExtension) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ExecutionException(java.util.concurrent.ExecutionException) AfterEach(org.junit.jupiter.api.AfterEach) List(java.util.List) HttpMethod(io.vertx.core.http.HttpMethod) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) Collections(java.util.Collections) HttpServer(io.vertx.core.http.HttpServer) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException)

Example 3 with APIGroup

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

the class PlatformFeaturesAvailabilityTest method testApiDetectionWrongAPIVersion.

@Test
public void testApiDetectionWrongAPIVersion(Vertx vertx, VertxTestContext context) throws InterruptedException, ExecutionException {
    List<APIGroup> apis = new ArrayList<>();
    apis.add(buildAPIGroup("route.openshift.io", "v2"));
    apis.add(buildAPIGroup("build.openshift.io", "v1"));
    apis.add(buildAPIGroup("image.openshift.io", "v1"));
    startMockApi(vertx, apis);
    KubernetesClient client = new DefaultKubernetesClient("127.0.0.1:" + server.actualPort());
    Checkpoint async = context.checkpoint();
    PlatformFeaturesAvailability.create(vertx, client).onComplete(context.succeeding(pfa -> context.verify(() -> {
        assertThat(pfa.hasRoutes(), is(false));
        assertThat(pfa.hasBuilds(), is(true));
        assertThat(pfa.hasImages(), is(true));
        async.flag();
    })));
}
Also used : VertxTestContext(io.vertx.junit5.VertxTestContext) CoreMatchers.is(org.hamcrest.CoreMatchers.is) HttpServer(io.vertx.core.http.HttpServer) GroupVersionForDiscovery(io.fabric8.kubernetes.api.model.GroupVersionForDiscovery) ArrayList(java.util.ArrayList) APIGroupBuilder(io.fabric8.kubernetes.api.model.APIGroupBuilder) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) ParseException(java.text.ParseException) GroupVersionForDiscoveryBuilder(io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder) Promise(io.vertx.core.Promise) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Vertx(io.vertx.core.Vertx) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) VertxExtension(io.vertx.junit5.VertxExtension) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ExecutionException(java.util.concurrent.ExecutionException) AfterEach(org.junit.jupiter.api.AfterEach) List(java.util.List) HttpMethod(io.vertx.core.http.HttpMethod) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) Collections(java.util.Collections) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) ArrayList(java.util.ArrayList) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) Test(org.junit.jupiter.api.Test)

Example 4 with APIGroup

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

the class PlatformFeaturesAvailabilityTest method testApiDetectionOce.

@Test
public void testApiDetectionOce(Vertx vertx, VertxTestContext context) throws InterruptedException, ExecutionException {
    List<APIGroup> apis = new ArrayList<>();
    apis.add(buildAPIGroup("route.openshift.io", "v1"));
    apis.add(buildAPIGroup("build.openshift.io", "v1"));
    startMockApi(vertx, apis);
    KubernetesClient client = new DefaultKubernetesClient("127.0.0.1:" + server.actualPort());
    Checkpoint async = context.checkpoint();
    PlatformFeaturesAvailability.create(vertx, client).onComplete(context.succeeding(pfa -> context.verify(() -> {
        assertThat(pfa.hasRoutes(), is(true));
        assertThat(pfa.hasBuilds(), is(true));
        assertThat(pfa.hasImages(), is(false));
        async.flag();
    })));
}
Also used : VertxTestContext(io.vertx.junit5.VertxTestContext) CoreMatchers.is(org.hamcrest.CoreMatchers.is) HttpServer(io.vertx.core.http.HttpServer) GroupVersionForDiscovery(io.fabric8.kubernetes.api.model.GroupVersionForDiscovery) ArrayList(java.util.ArrayList) APIGroupBuilder(io.fabric8.kubernetes.api.model.APIGroupBuilder) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) ParseException(java.text.ParseException) GroupVersionForDiscoveryBuilder(io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder) Promise(io.vertx.core.Promise) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Vertx(io.vertx.core.Vertx) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) VertxExtension(io.vertx.junit5.VertxExtension) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ExecutionException(java.util.concurrent.ExecutionException) AfterEach(org.junit.jupiter.api.AfterEach) List(java.util.List) HttpMethod(io.vertx.core.http.HttpMethod) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) Collections(java.util.Collections) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) ArrayList(java.util.ArrayList) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) Test(org.junit.jupiter.api.Test)

Example 5 with APIGroup

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

the class PlatformFeaturesAvailabilityTest method testApiDetectionWrongAPIVersion.

@Test
public void testApiDetectionWrongAPIVersion(Vertx vertx, VertxTestContext context) throws InterruptedException, ExecutionException {
    List<APIGroup> apis = new ArrayList<>();
    apis.add(buildAPIGroup("route.openshift.io", "v2"));
    apis.add(buildAPIGroup("build.openshift.io", "v1"));
    apis.add(buildAPIGroup("image.openshift.io", "v1"));
    startMockApi(vertx, apis);
    KubernetesClient client = new DefaultKubernetesClient("127.0.0.1:" + server.actualPort());
    Checkpoint async = context.checkpoint();
    PlatformFeaturesAvailability.create(vertx, client).onComplete(context.succeeding(pfa -> context.verify(() -> {
        assertThat(pfa.hasRoutes(), is(false));
        assertThat(pfa.hasBuilds(), is(true));
        assertThat(pfa.hasImages(), is(true));
        async.flag();
    })));
}
Also used : VertxTestContext(io.vertx.junit5.VertxTestContext) CoreMatchers.is(org.hamcrest.CoreMatchers.is) HttpServer(io.vertx.core.http.HttpServer) GroupVersionForDiscovery(io.fabric8.kubernetes.api.model.GroupVersionForDiscovery) ArrayList(java.util.ArrayList) APIGroupBuilder(io.fabric8.kubernetes.api.model.APIGroupBuilder) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) VersionInfo(io.fabric8.kubernetes.client.VersionInfo) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) ParseException(java.text.ParseException) GroupVersionForDiscoveryBuilder(io.fabric8.kubernetes.api.model.GroupVersionForDiscoveryBuilder) Promise(io.vertx.core.Promise) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Vertx(io.vertx.core.Vertx) Set(java.util.Set) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) VertxExtension(io.vertx.junit5.VertxExtension) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ExecutionException(java.util.concurrent.ExecutionException) AfterEach(org.junit.jupiter.api.AfterEach) List(java.util.List) HttpMethod(io.vertx.core.http.HttpMethod) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) Collections(java.util.Collections) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) KubernetesClient(io.fabric8.kubernetes.client.KubernetesClient) Checkpoint(io.vertx.junit5.Checkpoint) ArrayList(java.util.ArrayList) APIGroup(io.fabric8.kubernetes.api.model.APIGroup) DefaultKubernetesClient(io.fabric8.kubernetes.client.DefaultKubernetesClient) Test(org.junit.jupiter.api.Test)

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