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();
})));
}
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();
}
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();
})));
}
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();
})));
}
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();
})));
}
Aggregations