From ae37ad49e776240593b7fe0baa9af41475838e93 Mon Sep 17 00:00:00 2001 From: Shir Avneri <48449580+ShirAvneri@users.noreply.github.com> Date: Mon, 4 Dec 2023 19:57:40 +0200 Subject: [PATCH] chore: Replace custom wait strategy with default strategies (#1059) --- src/Testcontainers.K3s/K3sBuilder.cs | 15 +-------------- src/Testcontainers.Oracle/OracleBuilder.cs | 15 +-------------- src/Testcontainers.RabbitMq/RabbitMqBuilder.cs | 15 +-------------- src/Testcontainers.RavenDb/RavenDbBuilder.cs | 15 +-------------- src/Testcontainers.Redis/RedisBuilder.cs | 17 +---------------- src/Testcontainers.SqlEdge/SqlEdgeBuilder.cs | 15 +-------------- 6 files changed, 6 insertions(+), 86 deletions(-) diff --git a/src/Testcontainers.K3s/K3sBuilder.cs b/src/Testcontainers.K3s/K3sBuilder.cs index d2c549d61..abe3ea8b0 100644 --- a/src/Testcontainers.K3s/K3sBuilder.cs +++ b/src/Testcontainers.K3s/K3sBuilder.cs @@ -52,7 +52,7 @@ protected override K3sBuilder Init() .WithTmpfsMount("/var/run") .WithCommand("server", "--disable=traefik") .WithCreateParameterModifier(parameterModifier => parameterModifier.HostConfig.CgroupnsMode = "host") - .WithWaitStrategy(Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil())); + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("Node controller sync successful")); } /// @@ -72,17 +72,4 @@ protected override K3sBuilder Merge(K3sConfiguration oldValue, K3sConfiguration { return new K3sBuilder(new K3sConfiguration(oldValue, newValue)); } - - /// - private sealed class WaitUntil : IWaitUntil - { - /// - public async Task UntilAsync(IContainer container) - { - var (_, stderr) = await container.GetLogsAsync(timestampsEnabled: false) - .ConfigureAwait(false); - - return stderr.Contains("Node controller sync successful"); - } - } } \ No newline at end of file diff --git a/src/Testcontainers.Oracle/OracleBuilder.cs b/src/Testcontainers.Oracle/OracleBuilder.cs index 986f18573..584bad01b 100644 --- a/src/Testcontainers.Oracle/OracleBuilder.cs +++ b/src/Testcontainers.Oracle/OracleBuilder.cs @@ -75,7 +75,7 @@ protected override OracleBuilder Init() .WithDatabase(DefaultDatabase) .WithUsername(DefaultUsername) .WithPassword(DefaultPassword) - .WithWaitStrategy(Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil())); + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("DATABASE IS READY TO USE!")); } /// @@ -118,17 +118,4 @@ private OracleBuilder WithDatabase(string database) { return Merge(DockerResourceConfiguration, new OracleConfiguration(database: database)); } - - /// - private sealed class WaitUntil : IWaitUntil - { - /// - public async Task UntilAsync(IContainer container) - { - var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false) - .ConfigureAwait(false); - - return stdout.Contains("DATABASE IS READY TO USE!"); - } - } } \ No newline at end of file diff --git a/src/Testcontainers.RabbitMq/RabbitMqBuilder.cs b/src/Testcontainers.RabbitMq/RabbitMqBuilder.cs index 156366070..6ea51ddfb 100644 --- a/src/Testcontainers.RabbitMq/RabbitMqBuilder.cs +++ b/src/Testcontainers.RabbitMq/RabbitMqBuilder.cs @@ -71,7 +71,7 @@ protected override RabbitMqBuilder Init() .WithPortBinding(RabbitMqPort, true) .WithUsername(DefaultUsername) .WithPassword(DefaultPassword) - .WithWaitStrategy(Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil())); + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("Server startup complete")); } /// @@ -105,17 +105,4 @@ protected override RabbitMqBuilder Merge(RabbitMqConfiguration oldValue, RabbitM { return new RabbitMqBuilder(new RabbitMqConfiguration(oldValue, newValue)); } - - /// - private sealed class WaitUntil : IWaitUntil - { - /// - public async Task UntilAsync(IContainer container) - { - var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false) - .ConfigureAwait(false); - - return stdout.Contains("Server startup complete"); - } - } } \ No newline at end of file diff --git a/src/Testcontainers.RavenDb/RavenDbBuilder.cs b/src/Testcontainers.RavenDb/RavenDbBuilder.cs index ae8df6193..4c5dfbf98 100644 --- a/src/Testcontainers.RavenDb/RavenDbBuilder.cs +++ b/src/Testcontainers.RavenDb/RavenDbBuilder.cs @@ -43,7 +43,7 @@ protected override RavenDbBuilder Init() return base.Init() .WithImage(RavenDbImage) .WithPortBinding(RavenDbPort, true) - .WithWaitStrategy(Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil())); + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("Server started")); } /// @@ -63,17 +63,4 @@ protected override RavenDbBuilder Merge(RavenDbConfiguration oldValue, RavenDbCo { return new RavenDbBuilder(new RavenDbConfiguration(oldValue, newValue)); } - - /// - private sealed class WaitUntil : IWaitUntil - { - /// - public async Task UntilAsync(IContainer container) - { - var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false) - .ConfigureAwait(false); - - return stdout.Contains("Server started"); - } - } } \ No newline at end of file diff --git a/src/Testcontainers.Redis/RedisBuilder.cs b/src/Testcontainers.Redis/RedisBuilder.cs index 76b24afe7..41d56b6c1 100644 --- a/src/Testcontainers.Redis/RedisBuilder.cs +++ b/src/Testcontainers.Redis/RedisBuilder.cs @@ -43,7 +43,7 @@ protected override RedisBuilder Init() return base.Init() .WithImage(RedisImage) .WithPortBinding(RedisPort, true) - .WithWaitStrategy(Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil())); + .WithWaitStrategy(Wait.ForUnixContainer().UntilCommandIsCompleted("redis-cli", "ping")); } /// @@ -63,19 +63,4 @@ protected override RedisBuilder Merge(RedisConfiguration oldValue, RedisConfigur { return new RedisBuilder(new RedisConfiguration(oldValue, newValue)); } - - /// - private sealed class WaitUntil : IWaitUntil - { - private readonly string[] _command = { "redis-cli", "ping" }; - - /// - public async Task UntilAsync(IContainer container) - { - var execResult = await container.ExecAsync(_command) - .ConfigureAwait(false); - - return 0L.Equals(execResult.ExitCode); - } - } } \ No newline at end of file diff --git a/src/Testcontainers.SqlEdge/SqlEdgeBuilder.cs b/src/Testcontainers.SqlEdge/SqlEdgeBuilder.cs index cb4521ba0..01bacc4e1 100644 --- a/src/Testcontainers.SqlEdge/SqlEdgeBuilder.cs +++ b/src/Testcontainers.SqlEdge/SqlEdgeBuilder.cs @@ -64,7 +64,7 @@ protected override SqlEdgeBuilder Init() .WithDatabase(DefaultDatabase) .WithUsername(DefaultUsername) .WithPassword(DefaultPassword) - .WithWaitStrategy(Wait.ForUnixContainer().AddCustomWaitStrategy(new WaitUntil())); + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("Recovery is complete.")); } /// @@ -120,17 +120,4 @@ private SqlEdgeBuilder WithUsername(string username) { return Merge(DockerResourceConfiguration, new SqlEdgeConfiguration(username: username)); } - - /// - private sealed class WaitUntil : IWaitUntil - { - /// - public async Task UntilAsync(IContainer container) - { - var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false) - .ConfigureAwait(false); - - return stdout.Contains("Recovery is complete."); - } - } } \ No newline at end of file