Search in sources :

Example 1 with DOCKER_REGISTRIES_EMPTY_LIST

use of org.folio.okapi.service.impl.DockerModuleHandle.DOCKER_REGISTRIES_EMPTY_LIST in project okapi by folio-org.

the class DockerModuleHandleTest method testGetImage.

@Test
public void testGetImage(TestContext context) {
    Vertx vertx = Vertx.vertx();
    Router router = Router.router(vertx);
    router.routeWithRegex("/.*").handler(this::dockerMockHandle);
    HttpServerOptions so = new HttpServerOptions().setHandle100ContinueAutomatically(true);
    Async async1 = context.async();
    HttpServer listen = vertx.createHttpServer(so).requestHandler(router).listen(MOCK_PORT, context.asyncAssertSuccess(x -> async1.complete()));
    async1.await();
    dockerImageMatch = "foo";
    JsonObject conf = new JsonObject().put("dockerUrl", "tcp://localhost:" + MOCK_PORT);
    assertThat(getImage(context, vertx, conf)).contains("not found");
    assertThat(getImage(context, vertx, conf)).contains("not found");
    dockerImageMatch = "folioci/mod-x";
    assertThat(getImage(context, vertx, conf)).isEqualTo("succeeded");
    // zero registries, pull is disabled
    conf.put("dockerRegistries", new JsonArray());
    assertThat(getImage(context, vertx, conf)).isEqualTo(DOCKER_REGISTRIES_EMPTY_LIST);
    conf.put("dockerRegistries", new JsonArray().add(new JsonObject().put("registry", "reg1")).add(new JsonObject().put("registry", "reg2")));
    assertThat(getImage(context, vertx, conf)).contains("not found");
    dockerImageMatch = "reg1/folioci/mod-x";
    assertThat(getImage(context, vertx, conf)).isEqualTo("succeeded");
    dockerImageMatch = "reg2/folioci/mod-x";
    assertThat(getImage(context, vertx, conf)).isEqualTo("succeeded");
    dockerImageMatch = "reg3/folioci/mod-x";
    assertThat(getImage(context, vertx, conf)).contains("not found");
    dockerImageMatch = null;
    listen.close(context.asyncAssertSuccess());
}
Also used : TestContext(io.vertx.ext.unit.TestContext) LaunchDescriptor(org.folio.okapi.bean.LaunchDescriptor) Async(io.vertx.ext.unit.Async) Json(io.vertx.core.json.Json) HttpServer(io.vertx.core.http.HttpServer) RunWith(org.junit.runner.RunWith) Router(io.vertx.ext.web.Router) WithAssertions(org.assertj.core.api.WithAssertions) RoutingContext(io.vertx.ext.web.RoutingContext) OkapiLogger(org.folio.okapi.common.OkapiLogger) JsonObject(io.vertx.core.json.JsonObject) Assume(org.junit.Assume) Ports(org.folio.okapi.bean.Ports) DOCKER_REGISTRIES_EMPTY_LIST(org.folio.okapi.service.impl.DockerModuleHandle.DOCKER_REGISTRIES_EMPTY_LIST) Vertx(io.vertx.core.Vertx) VertxOptions(io.vertx.core.VertxOptions) Test(org.junit.Test) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) Future(io.vertx.core.Future) AdditionalAnswers(org.mockito.AdditionalAnswers) JsonArray(io.vertx.core.json.JsonArray) Mockito(org.mockito.Mockito) Base64(java.util.Base64) Logger(org.apache.logging.log4j.Logger) AnyDescriptor(org.folio.okapi.bean.AnyDescriptor) HttpMethod(io.vertx.core.http.HttpMethod) HttpServerOptions(io.vertx.core.http.HttpServerOptions) Assert(org.junit.Assert) EnvEntry(org.folio.okapi.bean.EnvEntry) HttpClient(io.vertx.core.http.HttpClient) JsonArray(io.vertx.core.json.JsonArray) Async(io.vertx.ext.unit.Async) HttpServerOptions(io.vertx.core.http.HttpServerOptions) HttpServer(io.vertx.core.http.HttpServer) Router(io.vertx.ext.web.Router) JsonObject(io.vertx.core.json.JsonObject) Vertx(io.vertx.core.Vertx) Test(org.junit.Test)

Example 2 with DOCKER_REGISTRIES_EMPTY_LIST

use of org.folio.okapi.service.impl.DockerModuleHandle.DOCKER_REGISTRIES_EMPTY_LIST in project okapi by folio-org.

the class DockerModuleHandleTest method testDockerPull.

@Test
public void testDockerPull(TestContext context) {
    Vertx vertx = Vertx.vertx();
    Router router = Router.router(vertx);
    router.routeWithRegex("/.*").handler(this::dockerMockHandle);
    HttpServerOptions so = new HttpServerOptions().setHandle100ContinueAutomatically(true);
    Async async1 = context.async();
    HttpServer listen = vertx.createHttpServer(so).requestHandler(router).listen(MOCK_PORT, context.asyncAssertSuccess(x -> async1.complete()));
    async1.await();
    dockerPullJson = new JsonObject().put("message", "some message");
    dockerPullStatus = 200;
    JsonObject conf = new JsonObject().put("dockerUrl", "tcp://localhost:" + MOCK_PORT);
    assertThat(pullImage(context, vertx, conf)).isEqualTo("succeeded");
    // zero registries, pull is disabled
    conf.put("dockerRegistries", new JsonArray());
    assertThat(pullImage(context, vertx, conf)).isEqualTo(DOCKER_REGISTRIES_EMPTY_LIST);
    conf.put("dockerRegistries", new JsonArray().add(new JsonObject()));
    assertThat(pullImage(context, vertx, conf)).isEqualTo("succeeded");
    conf.put("dockerRegistries", new JsonArray().addNull().add(new JsonObject().put("username", "x").put("password", "y")));
    assertThat(pullImage(context, vertx, conf)).contains("unauthorized");
    conf.put("dockerRegistries", new JsonArray().add(new JsonObject().put("username", "x").put("password", "y")).add(new JsonObject().put("username", "x").put("password", "x")).add(new JsonObject().put("username", "x").put("password", "z")));
    assertThat(pullImage(context, vertx, conf)).isEqualTo("succeeded");
    context.assertEquals("folioci/mod-x", lastFromImage);
    conf.put("dockerRegistries", new JsonArray().add(new JsonObject().put("registry", "localhost:5000")));
    assertThat(pullImage(context, vertx, conf)).isEqualTo("succeeded");
    context.assertEquals("localhost:5000/folioci/mod-x", lastFromImage);
    conf.put("dockerRegistries", new JsonArray().add(new JsonObject().put("registry", "localhost:5000/")));
    assertThat(pullImage(context, vertx, conf)).isEqualTo("succeeded");
    context.assertEquals("localhost:5000/folioci/mod-x", lastFromImage);
    listen.close(context.asyncAssertSuccess());
}
Also used : TestContext(io.vertx.ext.unit.TestContext) LaunchDescriptor(org.folio.okapi.bean.LaunchDescriptor) Async(io.vertx.ext.unit.Async) Json(io.vertx.core.json.Json) HttpServer(io.vertx.core.http.HttpServer) RunWith(org.junit.runner.RunWith) Router(io.vertx.ext.web.Router) WithAssertions(org.assertj.core.api.WithAssertions) RoutingContext(io.vertx.ext.web.RoutingContext) OkapiLogger(org.folio.okapi.common.OkapiLogger) JsonObject(io.vertx.core.json.JsonObject) Assume(org.junit.Assume) Ports(org.folio.okapi.bean.Ports) DOCKER_REGISTRIES_EMPTY_LIST(org.folio.okapi.service.impl.DockerModuleHandle.DOCKER_REGISTRIES_EMPTY_LIST) Vertx(io.vertx.core.Vertx) VertxOptions(io.vertx.core.VertxOptions) Test(org.junit.Test) VertxUnitRunner(io.vertx.ext.unit.junit.VertxUnitRunner) Future(io.vertx.core.Future) AdditionalAnswers(org.mockito.AdditionalAnswers) JsonArray(io.vertx.core.json.JsonArray) Mockito(org.mockito.Mockito) Base64(java.util.Base64) Logger(org.apache.logging.log4j.Logger) AnyDescriptor(org.folio.okapi.bean.AnyDescriptor) HttpMethod(io.vertx.core.http.HttpMethod) HttpServerOptions(io.vertx.core.http.HttpServerOptions) Assert(org.junit.Assert) EnvEntry(org.folio.okapi.bean.EnvEntry) HttpClient(io.vertx.core.http.HttpClient) JsonArray(io.vertx.core.json.JsonArray) Async(io.vertx.ext.unit.Async) HttpServerOptions(io.vertx.core.http.HttpServerOptions) HttpServer(io.vertx.core.http.HttpServer) Router(io.vertx.ext.web.Router) JsonObject(io.vertx.core.json.JsonObject) Vertx(io.vertx.core.Vertx) Test(org.junit.Test)

Aggregations

Future (io.vertx.core.Future)2 Vertx (io.vertx.core.Vertx)2 VertxOptions (io.vertx.core.VertxOptions)2 HttpClient (io.vertx.core.http.HttpClient)2 HttpMethod (io.vertx.core.http.HttpMethod)2 HttpServer (io.vertx.core.http.HttpServer)2 HttpServerOptions (io.vertx.core.http.HttpServerOptions)2 Json (io.vertx.core.json.Json)2 JsonArray (io.vertx.core.json.JsonArray)2 JsonObject (io.vertx.core.json.JsonObject)2 Async (io.vertx.ext.unit.Async)2 TestContext (io.vertx.ext.unit.TestContext)2 VertxUnitRunner (io.vertx.ext.unit.junit.VertxUnitRunner)2 Router (io.vertx.ext.web.Router)2 RoutingContext (io.vertx.ext.web.RoutingContext)2 Base64 (java.util.Base64)2 Logger (org.apache.logging.log4j.Logger)2 WithAssertions (org.assertj.core.api.WithAssertions)2 AnyDescriptor (org.folio.okapi.bean.AnyDescriptor)2 EnvEntry (org.folio.okapi.bean.EnvEntry)2