Skip to content

Commit

Permalink
chore: Replace custom wait strategy with default strategies (#1059)
Browse files Browse the repository at this point in the history
  • Loading branch information
ShirAvneri authored Dec 4, 2023
1 parent e036266 commit ae37ad4
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 86 deletions.
15 changes: 1 addition & 14 deletions src/Testcontainers.K3s/K3sBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
}

/// <inheritdoc />
Expand All @@ -72,17 +72,4 @@ protected override K3sBuilder Merge(K3sConfiguration oldValue, K3sConfiguration
{
return new K3sBuilder(new K3sConfiguration(oldValue, newValue));
}

/// <inheritdoc cref="IWaitUntil" />
private sealed class WaitUntil : IWaitUntil
{
/// <inheritdoc />
public async Task<bool> UntilAsync(IContainer container)
{
var (_, stderr) = await container.GetLogsAsync(timestampsEnabled: false)
.ConfigureAwait(false);

return stderr.Contains("Node controller sync successful");
}
}
}
15 changes: 1 addition & 14 deletions src/Testcontainers.Oracle/OracleBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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!"));
}

/// <inheritdoc />
Expand Down Expand Up @@ -118,17 +118,4 @@ private OracleBuilder WithDatabase(string database)
{
return Merge(DockerResourceConfiguration, new OracleConfiguration(database: database));
}

/// <inheritdoc cref="IWaitUntil" />
private sealed class WaitUntil : IWaitUntil
{
/// <inheritdoc />
public async Task<bool> UntilAsync(IContainer container)
{
var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false)
.ConfigureAwait(false);

return stdout.Contains("DATABASE IS READY TO USE!");
}
}
}
15 changes: 1 addition & 14 deletions src/Testcontainers.RabbitMq/RabbitMqBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
}

/// <inheritdoc />
Expand Down Expand Up @@ -105,17 +105,4 @@ protected override RabbitMqBuilder Merge(RabbitMqConfiguration oldValue, RabbitM
{
return new RabbitMqBuilder(new RabbitMqConfiguration(oldValue, newValue));
}

/// <inheritdoc cref="IWaitUntil" />
private sealed class WaitUntil : IWaitUntil
{
/// <inheritdoc />
public async Task<bool> UntilAsync(IContainer container)
{
var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false)
.ConfigureAwait(false);

return stdout.Contains("Server startup complete");
}
}
}
15 changes: 1 addition & 14 deletions src/Testcontainers.RavenDb/RavenDbBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
}

/// <inheritdoc />
Expand All @@ -63,17 +63,4 @@ protected override RavenDbBuilder Merge(RavenDbConfiguration oldValue, RavenDbCo
{
return new RavenDbBuilder(new RavenDbConfiguration(oldValue, newValue));
}

/// <inheritdoc cref="IWaitUntil" />
private sealed class WaitUntil : IWaitUntil
{
/// <inheritdoc />
public async Task<bool> UntilAsync(IContainer container)
{
var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false)
.ConfigureAwait(false);

return stdout.Contains("Server started");
}
}
}
17 changes: 1 addition & 16 deletions src/Testcontainers.Redis/RedisBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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"));
}

/// <inheritdoc />
Expand All @@ -63,19 +63,4 @@ protected override RedisBuilder Merge(RedisConfiguration oldValue, RedisConfigur
{
return new RedisBuilder(new RedisConfiguration(oldValue, newValue));
}

/// <inheritdoc cref="IWaitUntil" />
private sealed class WaitUntil : IWaitUntil
{
private readonly string[] _command = { "redis-cli", "ping" };

/// <inheritdoc />
public async Task<bool> UntilAsync(IContainer container)
{
var execResult = await container.ExecAsync(_command)
.ConfigureAwait(false);

return 0L.Equals(execResult.ExitCode);
}
}
}
15 changes: 1 addition & 14 deletions src/Testcontainers.SqlEdge/SqlEdgeBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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."));
}

/// <inheritdoc />
Expand Down Expand Up @@ -120,17 +120,4 @@ private SqlEdgeBuilder WithUsername(string username)
{
return Merge(DockerResourceConfiguration, new SqlEdgeConfiguration(username: username));
}

/// <inheritdoc cref="IWaitUntil" />
private sealed class WaitUntil : IWaitUntil
{
/// <inheritdoc />
public async Task<bool> UntilAsync(IContainer container)
{
var (stdout, _) = await container.GetLogsAsync(timestampsEnabled: false)
.ConfigureAwait(false);

return stdout.Contains("Recovery is complete.");
}
}
}

0 comments on commit ae37ad4

Please sign in to comment.