Skip to content

Commit 78bb7bc

Browse files
committed
revert commits that would have updated testcontainers-go fallout for networks
1 parent 8fc8d24 commit 78bb7bc

File tree

15 files changed

+84
-26
lines changed

15 files changed

+84
-26
lines changed

tests/endtoend/authscope_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,13 +289,15 @@ func postgresContainers() []testutils.Container {
289289
path.Join("..", "receivers", "smartagent", "postgresql", "testdata", "server"),
290290
).WithEnv(
291291
map[string]string{"POSTGRES_DB": "test_db", "POSTGRES_USER": "postgres", "POSTGRES_PASSWORD": "postgres"},
292-
).WithExposedPorts("5432:5432").WithName("postgres-server").WillWaitForPorts("5432").WillWaitForLogs("database system is ready to accept connections")
292+
).WithExposedPorts("5432:5432").WithName("postgres-server").WithNetworks(
293+
"postgres",
294+
).WillWaitForPorts("5432").WillWaitForLogs("database system is ready to accept connections")
293295

294296
postgresClient := testutils.NewContainer().WithContext(
295297
path.Join("..", "receivers", "smartagent", "postgresql", "testdata", "client"),
296298
).WithEnv(
297299
map[string]string{"POSTGRES_SERVER": "postgres-server"},
298-
).WithName("postgres-client").WillWaitForLogs("Beginning psql requests")
300+
).WithName("postgres-client").WithNetworks("postgres").WillWaitForLogs("Beginning psql requests")
299301
return []testutils.Container{postgresServer, postgresClient}
300302
}
301303

tests/general/configsources/vault_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func TestBasicSecretAccess(t *testing.T) {
3434
defer tc.PrintLogsOnFailure()
3535

3636
vaultHostname := "vault"
37-
vault := testutils.NewContainer().WithImage("hashicorp/vault:latest").WithName("vault").WithEnv(
37+
vault := testutils.NewContainer().WithImage("hashicorp/vault:latest").WithNetworks("vault").WithName("vault").WithEnv(
3838
map[string]string{
3939
"VAULT_DEV_ROOT_TOKEN_ID": "token",
4040
"VAULT_TOKEN": "token",
@@ -73,7 +73,7 @@ func TestBasicSecretAccess(t *testing.T) {
7373
"VAULT_HOSTNAME": vaultHostname,
7474
})
7575
if cc, ok := collector.(*testutils.CollectorContainer); ok {
76-
cc.Container = cc.Container.WithNetworkMode("bridge")
76+
cc.Container = cc.Container.WithNetworks("vault").WithNetworkMode("bridge")
7777
return cc
7878
}
7979
return collector

tests/general/discoverymode/configd_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ import (
2121
"testing"
2222
"time"
2323

24-
dockerContainer "github.com/docker/docker/api/types/container"
25-
"github.com/docker/docker/api/types/mount"
2624
"github.com/stretchr/testify/require"
2725
"github.com/testcontainers/testcontainers-go"
2826

@@ -40,9 +38,7 @@ func TestConfigDInitialAndEffectiveConfig(t *testing.T) {
4038
cc := c.(*testutils.CollectorContainer)
4139
configd, err := filepath.Abs(filepath.Join(".", "testdata", "merged-config.d"))
4240
require.NoError(t, err)
43-
cc.Container = cc.Container.WithHostConfigModifier(func(hostConfig *dockerContainer.HostConfig) {
44-
hostConfig.Mounts = append(hostConfig.Mounts, mount.Mount{Source: configd, Target: "/opt/config.d", Type: mount.TypeBind})
45-
})
41+
cc.Container = cc.Container.WithMount(testcontainers.BindMount(configd, "/opt/config.d"))
4642

4743
return cc
4844
},

tests/installation/discovery_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,13 @@ func TestDefaultConfigDDiscoversPostgres(t *testing.T) {
7676

7777
server := testutils.NewContainer().WithContext(filepath.Join("..", "receivers", "smartagent", "postgresql", "testdata", "server")).WithEnv(
7878
map[string]string{"POSTGRES_DB": "test_db", "POSTGRES_USER": "postgres", "POSTGRES_PASSWORD": "postgres"},
79-
).WithExposedPorts("5432:5432").WithName("postgres-server").WillWaitForPorts("5432").WillWaitForLogs("database system is ready to accept connections")
79+
).WithExposedPorts("5432:5432").WithName("postgres-server").WithNetworks(
80+
"postgres",
81+
).WillWaitForPorts("5432").WillWaitForLogs("database system is ready to accept connections")
8082

8183
client := testutils.NewContainer().WithContext(filepath.Join("..", "receivers", "smartagent", "postgresql", "testdata", "client")).WithEnv(
8284
map[string]string{"POSTGRES_SERVER": "postgres-server"},
83-
).WithName("postgres-client").WillWaitForLogs("Beginning psql requests")
85+
).WithName("postgres-client").WithNetworks("postgres").WillWaitForLogs("Beginning psql requests")
8486

8587
_, stop := tc.Containers(server, client)
8688
defer stop()
@@ -115,7 +117,7 @@ func TestDefaultConfigDDiscoversPostgres(t *testing.T) {
115117
{Source: packagePath, Target: fmt.Sprintf("/opt/otel/splunk-otel-collector.%s", packageType), Type: dockerMount.TypeBind},
116118
{Source: "/var/run/docker.sock", Target: "/opt/docker/docker.sock", ReadOnly: true, Type: dockerMount.TypeBind},
117119
}
118-
}).WithBuildArgs(map[string]*string{"DOCKER_GID": &dockerGID})
120+
}).WithBuildArgs(map[string]*string{"DOCKER_GID": &dockerGID}).WithNetworks("postgres")
119121
cc.Container.WillWaitForLogs()
120122
cc.Container.WaitingFor = append(cc.Container.WaitingFor, waitForSystemd)
121123
return cc.WithArgs("")

tests/receivers/redis/bundled_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ func TestRedisDockerObserver(t *testing.T) {
3131
t.Skip("unable to share sockets between mac and d4m vm: https://github.com/docker/for-mac/issues/483#issuecomment-758836836")
3232
}
3333

34-
server := testutils.NewContainer().WithContext(path.Join(".", "testdata", "server")).WithExposedPorts("6379:6379").WithName("redis-server").WillWaitForLogs("Ready to accept connections")
35-
client := testutils.NewContainer().WithContext(path.Join(".", "testdata", "client")).WithName("redis-client").WillWaitForLogs("redis client started")
34+
server := testutils.NewContainer().WithContext(path.Join(".", "testdata", "server")).WithExposedPorts("6379:6379").WithNetworks("redis_network").WithName("redis-server").WillWaitForLogs("Ready to accept connections")
35+
client := testutils.NewContainer().WithContext(path.Join(".", "testdata", "client")).WithName("redis-client").WithNetworks("redis_network").WillWaitForLogs("redis client started")
3636
containers := []testutils.Container{server, client}
3737

3838
testutils.AssertAllMetricsReceived(t, "all_server_bundled.yaml", "otlp_exporter.yaml",

tests/receivers/redis/redisreceiver_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ func TestRedisReceiverProvidesAllMetrics(t *testing.T) {
3030
}
3131

3232
func TestRedisReceiverProvidesAllMetricsWithServer(t *testing.T) {
33-
server := testutils.NewContainer().WithContext(path.Join(".", "testdata", "server")).WithExposedPorts("6379:6379").WithName("redis-server").WillWaitForLogs("Ready to accept connections")
34-
client := testutils.NewContainer().WithContext(path.Join(".", "testdata", "client")).WithName("redis-client").WillWaitForLogs("redis client started")
33+
server := testutils.NewContainer().WithContext(path.Join(".", "testdata", "server")).WithExposedPorts("6379:6379").WithNetworks("redis_network").WithName("redis-server").WillWaitForLogs("Ready to accept connections")
34+
client := testutils.NewContainer().WithContext(path.Join(".", "testdata", "client")).WithName("redis-client").WithNetworks("redis_network").WillWaitForLogs("redis client started")
3535
containers := []testutils.Container{server, client}
3636
testutils.AssertAllMetricsReceived(t, "all_server.yaml", "all_metrics_config.yaml", containers, nil)
3737
}

tests/receivers/smartagent/collectd-hadoop/collectd_hadoop_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
func TestCollectdHadoopReceiverProvidesAllMetrics(t *testing.T) {
2727
hadoop := testutils.NewContainer().WithContext(
2828
path.Join(".", "testdata", "server"),
29-
)
29+
).WithNetworks("hadoop")
3030

3131
containers := []testutils.Container{
3232
hadoop.WithName("hadoop-worker1").WillWaitForLogs("ready"),

tests/receivers/smartagent/collectd-kafka/collectd_kafka_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ func TestCollectdKafkaReceiversProvideAllMetrics(t *testing.T) {
3232
path.Join(".", "testdata", "kafka"),
3333
).WithEnv(map[string]string{
3434
"KAFKA_ZOOKEEPER_CONNECT": "zookeeper:2181",
35-
})
35+
}).WithNetworks("kafka")
3636

3737
_, stop := tc.Containers(
3838
testutils.NewContainer().WithImage(
3939
"zookeeper:3.5",
40-
).WithName("zookeeper").WithExposedPorts("2181:2181").WillWaitForPorts("2181"),
40+
).WithName("zookeeper").WithNetworks(
41+
"kafka",
42+
).WithExposedPorts("2181:2181").WillWaitForPorts("2181"),
4143
kafka.WithName("kafka-broker").WithEnvVar(
4244
"START_AS", "broker",
4345
).WithExposedPorts("7099:7099", "9092:9092").WillWaitForPorts("7099", "9092"),

tests/receivers/smartagent/collectd-mysql/collectd_mysql_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ var mysqlServer = testutils.NewContainer().WithImage("mysql:latest").WithEnv(
4545
"MYSQL_USER": user,
4646
"MYSQL_PASSWORD": password,
4747
"MYSQL_ROOT_PASSWORD": password,
48-
}).WithExposedPorts("3306:3306").WithName("mysql-server").WillWaitForPorts("3306").WillWaitForLogs(
48+
}).WithExposedPorts("3306:3306").WithName("mysql-server").WithNetworks(
49+
"mysql",
50+
).WillWaitForPorts("3306").WillWaitForLogs(
4951
"MySQL init process done. Ready for start up.",
5052
"ready for connections. Bind-address:",
5153
)

tests/receivers/smartagent/collectd-spark/collectd_spark_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ func TestCollectdSparkReceiverProvidesAllMetrics(t *testing.T) {
3333

3434
spark := testutils.NewContainer().WithContext(
3535
path.Join(".", "testdata", "server"),
36+
).WithNetworks(
37+
"spark",
3638
)
3739

3840
containers, stop := tc.Containers(

tests/receivers/smartagent/postgresql/postgresql_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,13 @@ import (
2626
func TestPostgresReceiverProvidesAllMetrics(t *testing.T) {
2727
server := testutils.NewContainer().WithContext(path.Join(".", "testdata", "server")).WithEnv(
2828
map[string]string{"POSTGRES_DB": "test_db", "POSTGRES_USER": "postgres", "POSTGRES_PASSWORD": "postgres"},
29-
).WithExposedPorts("5432:5432").WithName("postgres-server").WillWaitForPorts("5432").WillWaitForLogs("database system is ready to accept connections")
29+
).WithExposedPorts("5432:5432").WithName("postgres-server").WithNetworks(
30+
"postgres",
31+
).WillWaitForPorts("5432").WillWaitForLogs("database system is ready to accept connections")
3032

3133
client := testutils.NewContainer().WithContext(path.Join(".", "testdata", "client")).WithEnv(
3234
map[string]string{"POSTGRES_SERVER": "postgres-server"},
33-
).WithName("postgres-client").WillWaitForLogs("Beginning psql requests")
35+
).WithName("postgres-client").WithNetworks("postgres").WillWaitForLogs("Beginning psql requests")
3436
containers := []testutils.Container{server, client}
3537

3638
testutils.AssertAllMetricsReceived(t, "all.yaml", "all_metrics_config.yaml", containers, nil)

tests/receivers/smartagent/telegraf-sqlserver/telegraf_sqlserver_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@ import (
2626
func TestTelegrafSQLServerReceiverProvidesAllMetrics(t *testing.T) {
2727
server := testutils.NewContainer().WithContext(
2828
path.Join(".", "testdata", "server"),
29-
).WithExposedPorts("1433:1433").WithName("sql-server").WillWaitForPorts("1433").WillWaitForLogs(
29+
).WithExposedPorts("1433:1433").WithName("sql-server").WithNetworks(
30+
"mssql",
31+
).WillWaitForPorts("1433").WillWaitForLogs(
3032
"SQL Server is now ready for client connections.", "Recovery is complete.")
3133

3234
client := testutils.NewContainer().WithContext(
3335
path.Join(".", "testdata", "client"),
34-
).WithName("sql-client").WillWaitForLogs("name", "signalfxagent")
36+
).WithName("sql-client").WithNetworks("mssql").WillWaitForLogs("name", "signalfxagent")
3537
containers := []testutils.Container{server, client}
3638

3739
testutils.AssertAllMetricsReceived(t, "all.yaml", "all_metrics_config.yaml", containers, nil)

tests/testutils/collector_container_integration_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ import (
3333
func TestTestcontainersContainerMethods(t *testing.T) {
3434
alpine := NewContainer().WithImage("alpine").WithEntrypoint("sh", "-c").WithCmd(
3535
"echo rdy > /tmp/something && tail -f /tmp/something",
36-
).WithExposedPorts("12345:12345").WithName("my-alpine").WillWaitForLogs("rdy").Build()
36+
).WithExposedPorts("12345:12345").WithName("my-alpine").WithNetworks(
37+
"bridge", "network_a", "network_b",
38+
).WillWaitForLogs("rdy").Build()
3739

3840
defer func() {
3941
require.NoError(t, alpine.Stop(context.Background(), nil))
@@ -135,7 +137,7 @@ func TestTestcontainersContainerMethods(t *testing.T) {
135137

136138
networks, err := alpine.Networks(context.Background())
137139
sort.Strings(networks)
138-
assert.Equal(t, []string{"bridge"}, networks)
140+
assert.Equal(t, []string{"bridge", "network_a", "network_b"}, networks)
139141
require.NoError(t, err)
140142

141143
aliases, err := alpine.NetworkAliases(context.Background())

tests/testutils/container.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424

2525
"github.com/docker/docker/api/types"
2626
dockerContainer "github.com/docker/docker/api/types/container"
27+
"github.com/docker/docker/errdefs"
2728
"github.com/docker/docker/pkg/stdcopy"
2829
"github.com/docker/go-connections/nat"
2930
"github.com/stretchr/testify/assert"
@@ -160,6 +161,11 @@ func (container Container) WithName(name string) Container {
160161
return container
161162
}
162163

164+
func (container Container) WithNetworks(networks ...string) Container {
165+
container.ContainerNetworks = append(container.ContainerNetworks, networks...)
166+
return container
167+
}
168+
163169
func (container Container) WithNetworkMode(mode string) Container {
164170
container.ContainerNetworkMode = mode
165171
return container
@@ -266,6 +272,11 @@ func (container *Container) Start(ctx context.Context) error {
266272
Started: true,
267273
}
268274

275+
err := container.createNetworksIfNecessary(req)
276+
if err != nil {
277+
return nil
278+
}
279+
269280
started, err := testcontainers.GenericContainer(ctx, req)
270281
container.container = &started
271282
return err
@@ -464,3 +475,33 @@ func (container *Container) AssertExec(t testing.TB, timeout time.Duration, cmd
464475
require.NoError(t, err)
465476
return rc, sout.String(), serr.String()
466477
}
478+
479+
// Will create any networks that don't already exist on system.
480+
// Teardown/cleanup is handled by the testcontainers reaper.
481+
func (container *Container) createNetworksIfNecessary(req testcontainers.GenericContainerRequest) error {
482+
provider, err := req.ProviderType.GetProvider()
483+
if err != nil {
484+
return err
485+
}
486+
for _, networkName := range container.ContainerNetworks {
487+
query := testcontainers.NetworkRequest{
488+
Name: networkName,
489+
}
490+
networkResource, err := provider.GetNetwork(context.Background(), query)
491+
if err != nil && !errdefs.IsNotFound(err) {
492+
return err
493+
}
494+
if networkResource.Name != networkName {
495+
create := testcontainers.NetworkRequest{
496+
Driver: "bridge",
497+
Name: networkName,
498+
Attachable: true,
499+
}
500+
_, err := provider.CreateNetwork(context.Background(), create)
501+
if err != nil {
502+
return err
503+
}
504+
}
505+
}
506+
return nil
507+
}

tests/testutils/container_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,11 @@ func TestDockerBuilderMethods(t *testing.T) {
8484
assert.NotSame(t, builder, withName)
8585
assert.Empty(t, builder.ContainerName)
8686

87+
withNetworks := builder.WithNetworks("network_one", "network_two")
88+
assert.Equal(t, []string{"network_one", "network_two"}, withNetworks.ContainerNetworks)
89+
assert.NotSame(t, builder, withNetworks)
90+
assert.Nil(t, builder.ContainerNetworks)
91+
8792
withUser := builder.WithUser("some.user")
8893
assert.Equal(t, "some.user", withUser.User)
8994
assert.NotSame(t, builder, withUser)

0 commit comments

Comments
 (0)