From 7befaef43e6ac3e649807cfa14abbdf3711280d9 Mon Sep 17 00:00:00 2001 From: Jeremy Whiting Date: Thu, 19 Sep 2024 12:16:04 +0100 Subject: [PATCH] Make key names consistent with prior resources. --- .../tools/horreum/infra/common/Const.java | 2 -- .../common/resources/ArtemisMQResource.java | 4 ++-- .../common/resources/HorreumResource.java | 22 ++++++++++++------- .../common/resources/KeycloakResource.java | 1 + 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/Const.java b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/Const.java index af419c1df..785786187 100644 --- a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/Const.java +++ b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/Const.java @@ -32,8 +32,6 @@ public class Const { public static final String HORREUM_DEV_AMQP_ENABLED = "horreum.dev-services.amqp.enabled"; public static final String HORREUM_DEV_AMQP_IMAGE = "horreum.dev-services.amqp.image"; public static final String HORREUM_DEV_AMQP_NETWORK_ALIAS = "horreum.dev-services.amqp.network-alias"; - public static final String HORREUM_DEV_AMQP_MAPPED_PORT = "horreum.dev-services.amqp.mapped.port"; - public static final String HORREUM_DEV_AMQP_MAPPED_HOST = "horreum.dev-services.amqp.mapped.host"; public static final String DEFAULT_DB_USERNAME = "dbadmin"; public static final String DEFAULT_DB_PASSWORD = "secret"; diff --git a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/ArtemisMQResource.java b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/ArtemisMQResource.java index 23dbe9a25..96ba2a6b2 100644 --- a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/ArtemisMQResource.java +++ b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/ArtemisMQResource.java @@ -53,8 +53,8 @@ public Map start(Optional network) { String mappedPort = amqpContainer.getMappedPort(5672).toString(); String host = inContainer ? networkAlias : "localhost"; - return Map.of(HORREUM_DEV_AMQP_MAPPED_PORT, mappedPort, - HORREUM_DEV_AMQP_MAPPED_HOST, host); + return Map.of("artemis.container.name", host, + "artemis.container.port", mappedPort); } @Override diff --git a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/HorreumResource.java b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/HorreumResource.java index 46f8fdc12..3804e3686 100644 --- a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/HorreumResource.java +++ b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/HorreumResource.java @@ -16,7 +16,7 @@ public class HorreumResource implements ResourceLifecycleManager { private static GenericContainer horreumContainer; - private StringBuilder javaOptions = new StringBuilder(); + private boolean inContainer = false; private String networkAlias = ""; @@ -27,6 +27,7 @@ public void init(Map initArgs) { final String HORREUM_IMAGE = initArgs.get(HORREUM_DEV_HORREUM_HORREUM_IMAGE); + inContainer = initArgs.containsKey("inContainer") && initArgs.get("inContainer").equals("true"); networkAlias = initArgs.get(HORREUM_DEV_HORREUM_NETWORK_ALIAS); Network network = HorreumResources.getNetwork(); @@ -34,18 +35,22 @@ public void init(Map initArgs) { ? new FixedHostPortGenericContainer<>(HORREUM_IMAGE) .withFixedExposedPort(Integer.parseInt(initArgs.get(HORREUM_DEV_HORREUM_CONTAINER_PORT)), 8080) : new GenericContainer<>(HORREUM_IMAGE).withExposedPorts(8080); - String keycloakHost = initArgs.get("keycloak.host"); + String keycloakHostUrl = initArgs.get("keycloak.host"); + String jdbcUrl = initArgs.get("quarkus.datasource.jdbc.url"); + if (inContainer) { + String keycloakNetworkAlias = initArgs.get(HORREUM_DEV_KEYCLOAK_NETWORK_ALIAS); + keycloakHostUrl = "http://".concat(keycloakNetworkAlias).concat(":8080/"); + String postgresNetworkAlias = initArgs.get(HORREUM_DEV_POSTGRES_NETWORK_ALIAS); + jdbcUrl = "jdbc:postgresql://".concat(postgresNetworkAlias).concat(":5432/horreum?loggerLevel=OFF"); + } - keycloakHost = keycloakHost.replace("localhost", networkAlias); - String keycloakUrl = String.format("%s/realms/horreum", keycloakHost); + String keycloakUrl = String.format("%s/realms/horreum", keycloakHostUrl); String horreumUrl = "http://" + networkAlias + ":8081"; - String jdbcUrl = initArgs.get("quarkus.datasource.jdbc.url"); - jdbcUrl = jdbcUrl.replace("localhost", networkAlias); horreumContainer - .withEnv("horreum.keycloak.url", keycloakHost) + .withEnv("horreum.keycloak.url", keycloakUrl) .withEnv("quarkus.oidc.auth-server-url", keycloakUrl) - .withEnv("quarkus.keycloak.admin-client.server-url", keycloakHost) + .withEnv("quarkus.keycloak.admin-client.server-url", keycloakHostUrl) .withEnv("quarkus.keycloak.admin-client.client-id", "horreum") .withEnv("quarkus.keycloak.admin-client.realm", "horreum") .withEnv("quarkus.keycloak.admin-client.client-secret", "**********") @@ -86,6 +91,7 @@ public Map start(Optional network) { horreumContainer.start(); String horreumContainerName = horreumContainer.getContainerName().replaceAll("/", ""); + horreumContainerName = inContainer ? networkAlias : horreumContainerName; Integer port = horreumContainer.getMappedPort(8080); return Map.of("horreum.container.name", horreumContainerName, diff --git a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/KeycloakResource.java b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/KeycloakResource.java index 395edb043..f21d8980e 100644 --- a/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/KeycloakResource.java +++ b/infra/horreum-infra-common/src/main/java/io/hyperfoil/tools/horreum/infra/common/resources/KeycloakResource.java @@ -142,6 +142,7 @@ public Map start(Optional network) { boolean https = keycloakContainer.getExposedPorts().contains(8443); String mappedPort = keycloakContainer.getMappedPort(https ? 8443 : 8080).toString(); + String keycloakHost = String.format(https ? "https://%s:%s" : "http://%s:%s", keycloakContainer.getHost(), mappedPort); return Map.of(