Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Replace custom wait strategy with default strategies #1059

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.");
}
}
}