From e432af4c685a600ba6c5029f260906a7d2a24435 Mon Sep 17 00:00:00 2001 From: Belonogov Nikolay Date: Thu, 14 Dec 2023 11:46:11 +0300 Subject: [PATCH 1/2] Fix use default value for `TARANTOOL_CLUSTER_COOKIE` - Fix use default value for `TARANTOOL_CLUSTER_COOKIE` - CHANGELOG.md Closes #55 --- CHANGELOG.md | 4 ++ .../TarantoolCartridgeContainer.java | 10 ++--- src/main/resources/Dockerfile | 9 +++-- ...dgeBootstrapFromLuaWithFixedPortsTest.java | 37 +++++++++++++++++++ src/test/resources/cartridge/init.lua | 1 - 5 files changed, 52 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8817379..8899ccc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ## [1.1.1] - 2023-12-13 +- Fixed default use of `TARANTOOL_CLUSTER_COOKIE`. Now if `TARANTOOL_CLUSTER_COOKIE` is installed via +environment variable or written in the `init.lua` file, then you need to specify value of `TARANTOOL_CLUSTER_COOKIE` +in the `.withRouterPassword()` method. If `TARANTOOL_CLUSTER_COOKIE` is not specified, the default value (`secret-cluster-cookie`) +will be used and no additional actions are required ([#55](https://github.com/tarantool/testcontainers-java-tarantool/issues/55)) - Change private to protected in TarantoolCartridgeContainer - Add support for the `TARANTOOL_VERSION` environment variable to specify the version in the image name `tarantool/tarantool:-centos7 when calling the constructor without arguments diff --git a/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java b/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java index 0c64fb0..0b12ac5 100644 --- a/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java +++ b/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java @@ -87,8 +87,8 @@ public class TarantoolCartridgeContainer extends GenericContainer run.sh && chmod +x run.sh +CMD ./run.sh diff --git a/src/test/java/org/testcontainers/containers/TarantoolCartridgeBootstrapFromLuaWithFixedPortsTest.java b/src/test/java/org/testcontainers/containers/TarantoolCartridgeBootstrapFromLuaWithFixedPortsTest.java index 1c3ae14..6f1fa38 100644 --- a/src/test/java/org/testcontainers/containers/TarantoolCartridgeBootstrapFromLuaWithFixedPortsTest.java +++ b/src/test/java/org/testcontainers/containers/TarantoolCartridgeBootstrapFromLuaWithFixedPortsTest.java @@ -1,6 +1,8 @@ package org.testcontainers.containers; import java.time.Duration; +import java.util.List; +import java.util.Map; import org.junit.jupiter.api.Test; import org.rnorth.ducttape.RetryCountExceededException; @@ -11,6 +13,9 @@ import org.testcontainers.junit.jupiter.Testcontainers; import static org.junit.Assert.assertThrows; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + /** * @author Alexey Kuzin @@ -38,6 +43,38 @@ public void test_StaticClusterContainer_StartsSuccessfully_ifFilesAreCopied() th CartridgeContainerTestUtils.executeProfileReplaceSmokeTest(container); } + @Test + public void testTarantoolClusterCookieDefault() throws Exception { + Map env = container.getEnvMap(); + assertFalse(env.containsKey(TarantoolCartridgeContainer.ENV_TARANTOOL_CLUSTER_COOKIE)); + List result = container.executeCommandDecoded("return true"); + assertEquals(1, result.size()); + assertTrue((boolean) result.get(0)); + } + + @Test + public void testTarantoolClusterCookieWithEnv() throws Exception { + try(TarantoolCartridgeContainer newContainer = new TarantoolCartridgeContainer( + "Dockerfile", + "cartridge", + "cartridge/instances.yml", + "cartridge/replicasets.yml") + .withEnv(TarantoolCartridgeContainer.ENV_TARANTOOL_CLUSTER_COOKIE, "secret") + .withRouterUsername("admin") + .withRouterPassword("secret") + .withStartupTimeout(Duration.ofMinutes(5)) + .withLogConsumer(new Slf4jLogConsumer( + LoggerFactory.getLogger(TarantoolCartridgeBootstrapFromYamlTest.class)))) + { + newContainer.start(); + Map env = container.getEnvMap(); + assertFalse(env.containsKey(TarantoolCartridgeContainer.ENV_TARANTOOL_CLUSTER_COOKIE)); + List result = container.executeCommandDecoded("return true"); + assertEquals(1, result.size()); + assertTrue((boolean) result.get(0)); + } + } + @Test public void test_retryingSetupTopology_shouldWork() { try (TarantoolCartridgeContainer testContainer = diff --git a/src/test/resources/cartridge/init.lua b/src/test/resources/cartridge/init.lua index 93799bc..44b68a9 100644 --- a/src/test/resources/cartridge/init.lua +++ b/src/test/resources/cartridge/init.lua @@ -41,7 +41,6 @@ local ok, err = cartridge.cfg({ 'app.roles.custom', 'migrator', }, - cluster_cookie = 'testapp-cluster-cookie', }) assert(ok, tostring(err)) From 386cf64578b15c9a48e44c6d392813750ef7d7a5 Mon Sep 17 00:00:00 2001 From: Belonogov Nikolay Date: Thu, 14 Dec 2023 16:57:48 +0300 Subject: [PATCH 2/2] Fix after review Closes #55 --- CHANGELOG.md | 11 +++++++---- .../containers/TarantoolCartridgeContainer.java | 6 +++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8899ccc..99e00ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,13 @@ ## [1.1.1] - 2023-12-13 -- Fixed default use of `TARANTOOL_CLUSTER_COOKIE`. Now if `TARANTOOL_CLUSTER_COOKIE` is installed via -environment variable or written in the `init.lua` file, then you need to specify value of `TARANTOOL_CLUSTER_COOKIE` -in the `.withRouterPassword()` method. If `TARANTOOL_CLUSTER_COOKIE` is not specified, the default value (`secret-cluster-cookie`) -will be used and no additional actions are required ([#55](https://github.com/tarantool/testcontainers-java-tarantool/issues/55)) +- Remove the default value for `TARANTOOL_CLUSTER_COOKIE` env variable in cartridge container. + Now it works like in cartridge in order of decreasing priority as directed by the user: + `TARANTOOL_CLUSTER_COOKIE > cartridge.cfg > default_cookie` + You can set TARANTOOL_CLUSTER_COOKIE by build-arg on image building or by env arg before container starting + ([#55](https://github.com/tarantool/testcontainers-java-tarantool/issues/55)) +- **[Breaking change]** Default routerPassword has been changed from `testapp-cluster-cookie` to `secret-cluster-cookie` + ([#55](https://github.com/tarantool/testcontainers-java-tarantool/issues/55)) - Change private to protected in TarantoolCartridgeContainer - Add support for the `TARANTOOL_VERSION` environment variable to specify the version in the image name `tarantool/tarantool:-centos7 when calling the constructor without arguments diff --git a/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java b/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java index 0b12ac5..388fd8b 100644 --- a/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java +++ b/src/main/java/org/testcontainers/containers/TarantoolCartridgeContainer.java @@ -107,7 +107,7 @@ public class TarantoolCartridgeContainer extends GenericContainer