From 09b87ce8d218863bdc21ca9b7bb85580d09e6b0e Mon Sep 17 00:00:00 2001 From: "Sean R. Abraham" Date: Wed, 31 Jan 2024 23:51:53 -0700 Subject: [PATCH 001/115] chore(docker_mounts): stop doing misleading logging (#2178) As things are, the logger statement here always triggers for normal use cases. For example, if I start a container with this mount: testcontainers.VolumeMount("some-vol", "/some/dir") then I get this weird message in my logs Mount type %!s(testcontainers.MountType=1) is not supported by Testcontainers for Go because a GenericVolumeMountSource doesn't have an implementation of `GetVolumeOptions() *mount.VolumeOptions` I suggest removing that logging, as in this PR, because it's going to be purely confusing for 99% of users. --- docker_mounts.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docker_mounts.go b/docker_mounts.go index d5d075c053..28e3096de1 100644 --- a/docker_mounts.go +++ b/docker_mounts.go @@ -107,8 +107,10 @@ func mapToDockerMounts(containerMounts ContainerMounts) []mount.Mount { containerMount.VolumeOptions = typedMounter.GetVolumeOptions() case TmpfsMounter: containerMount.TmpfsOptions = typedMounter.GetTmpfsOptions() - default: + case BindMounter: Logger.Printf("Mount type %s is not supported by Testcontainers for Go", m.Source.Type()) + default: + // The provided source type has no custom options } mounts = append(mounts, containerMount) From 60cf941aeb1e1e5e1b230f111fc5de574d14e858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 1 Feb 2024 22:50:42 +0100 Subject: [PATCH 002/115] fix: deprecate BindMounts correctly (#2190) The BindMount type needs to exist in the mapping until the type is finally removed --- docker_mounts.go | 1 + 1 file changed, 1 insertion(+) diff --git a/docker_mounts.go b/docker_mounts.go index 28e3096de1..c45bc50eaf 100644 --- a/docker_mounts.go +++ b/docker_mounts.go @@ -3,6 +3,7 @@ package testcontainers import "github.com/docker/docker/api/types/mount" var mountTypeMapping = map[MountType]mount.Type{ + MountTypeBind: mount.TypeBind, // Deprecated, it will be removed in a future release MountTypeVolume: mount.TypeVolume, MountTypeTmpfs: mount.TypeTmpfs, MountTypePipe: mount.TypeNamedPipe, From bdab82e5b45f92ca6ebebac6c186669c5c25c19c Mon Sep 17 00:00:00 2001 From: Will Weber Date: Thu, 1 Feb 2024 19:02:21 -0500 Subject: [PATCH 003/115] [redpanda] sasl test for wrong mechanism (#2048) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [redpanda] sasl test, wrong mechanism - ensure that when using a different sasl mechanism from the broker, unsupported error is returned * chore: use require --------- Co-authored-by: Manuel de la Peña Co-authored-by: Manuel de la Peña --- modules/redpanda/redpanda_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/redpanda/redpanda_test.go b/modules/redpanda/redpanda_test.go index f33ac4221b..2a6ed8dde6 100644 --- a/modules/redpanda/redpanda_test.go +++ b/modules/redpanda/redpanda_test.go @@ -16,6 +16,7 @@ import ( "github.com/twmb/franz-go/pkg/kadm" "github.com/twmb/franz-go/pkg/kerr" "github.com/twmb/franz-go/pkg/kgo" + "github.com/twmb/franz-go/pkg/sasl/plain" "github.com/twmb/franz-go/pkg/sasl/scram" "github.com/testcontainers/testcontainers-go" @@ -162,6 +163,23 @@ func TestRedpandaWithAuthentication(t *testing.T) { require.ErrorContains(t, err, "SASL_AUTHENTICATION_FAILED") } + // Test wrong mechanism + { + kafkaCl, err := kgo.NewClient( + kgo.SeedBrokers(seedBroker), + kgo.SASL(plain.Auth{ + User: "no-superuser", + Pass: "test", + }.AsMechanism()), + ) + require.NoError(t, err) + + kafkaAdmCl := kadm.NewClient(kafkaCl) + _, err = kafkaAdmCl.Metadata(ctx) + require.Error(t, err) + require.ErrorContains(t, err, "UNSUPPORTED_SASL_MECHANISM") + } + // Test Schema Registry API httpCl := &http.Client{Timeout: 5 * time.Second} // schemaRegistryAddress { From 69b8feabd1b6f06744588d98cced8af58a293f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 2 Feb 2024 12:51:33 +0100 Subject: [PATCH 004/115] fix: all mounts should contain the testcontainers labels (#2191) * fix: all mounts should contain the testcontainers labels * fix: update tests * chore: add tests for it --- docker_mounts.go | 3 +++ mounts_test.go | 64 +++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 55 insertions(+), 12 deletions(-) diff --git a/docker_mounts.go b/docker_mounts.go index c45bc50eaf..2efdb0c7e2 100644 --- a/docker_mounts.go +++ b/docker_mounts.go @@ -101,6 +101,9 @@ func mapToDockerMounts(containerMounts ContainerMounts) []mount.Mount { Source: m.Source.Source(), ReadOnly: m.ReadOnly, Target: m.Target.Target(), + VolumeOptions: &mount.VolumeOptions{ + Labels: GenericLabels(), + }, } switch typedMounter := m.Source.(type) { diff --git a/mounts_test.go b/mounts_test.go index fe7bd4f02e..a89e6355c0 100644 --- a/mounts_test.go +++ b/mounts_test.go @@ -41,6 +41,10 @@ func TestVolumeMount(t *testing.T) { } func TestContainerMounts_PrepareMounts(t *testing.T) { + volumeOptions := &mount.VolumeOptions{ + Labels: GenericLabels(), + } + t.Parallel() tests := []struct { name string @@ -57,9 +61,10 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { mounts: ContainerMounts{{Source: GenericVolumeMountSource{Name: "app-data"}, Target: "/data"}}, want: []mount.Mount{ { - Type: mount.TypeVolume, - Source: "app-data", - Target: "/data", + Type: mount.TypeVolume, + Source: "app-data", + Target: "/data", + VolumeOptions: volumeOptions, }, }, }, @@ -68,10 +73,11 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { mounts: ContainerMounts{{Source: GenericVolumeMountSource{Name: "app-data"}, Target: "/data", ReadOnly: true}}, want: []mount.Mount{ { - Type: mount.TypeVolume, - Source: "app-data", - Target: "/data", - ReadOnly: true, + Type: mount.TypeVolume, + Source: "app-data", + Target: "/data", + ReadOnly: true, + VolumeOptions: volumeOptions, }, }, }, @@ -111,8 +117,9 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { mounts: ContainerMounts{{Source: GenericTmpfsMountSource{}, Target: "/data"}}, want: []mount.Mount{ { - Type: mount.TypeTmpfs, - Target: "/data", + Type: mount.TypeTmpfs, + Target: "/data", + VolumeOptions: volumeOptions, }, }, }, @@ -121,9 +128,10 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { mounts: ContainerMounts{{Source: GenericTmpfsMountSource{}, Target: "/data", ReadOnly: true}}, want: []mount.Mount{ { - Type: mount.TypeTmpfs, - Target: "/data", - ReadOnly: true, + Type: mount.TypeTmpfs, + Target: "/data", + ReadOnly: true, + VolumeOptions: volumeOptions, }, }, }, @@ -148,6 +156,7 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { SizeBytes: 50 * 1024 * 1024, Mode: 0o644, }, + VolumeOptions: volumeOptions, }, }, }, @@ -193,3 +202,34 @@ func TestCreateContainerWithVolume(t *testing.T) { require.NoError(t, err) assert.Equal(t, "test-volume", volume.Name) } + +func TestMountsReceiveRyukLabels(t *testing.T) { + req := ContainerRequest{ + Image: "alpine", + Mounts: ContainerMounts{ + { + Source: GenericVolumeMountSource{ + Name: "app-data", + }, + Target: "/data", + }, + }, + } + + ctx := context.Background() + c, err := GenericContainer(ctx, GenericContainerRequest{ + ContainerRequest: req, + Started: true, + }) + require.NoError(t, err) + terminateContainerOnEnd(t, ctx, c) + + // Check if volume is created with the expected labels + client, err := NewDockerClientWithOpts(ctx) + require.NoError(t, err) + defer client.Close() + + volume, err := client.VolumeInspect(ctx, "app-data") + require.NoError(t, err) + assert.Equal(t, GenericLabels(), volume.Labels) +} From 9a9da1a565f2cc060420c52de2ad40a425d2588c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 2 Feb 2024 13:53:56 +0100 Subject: [PATCH 005/115] chore: do not panic in testable examples (#2193) * chore: do not panic in testable examples * chore: ignore gocritic errors --- container_test.go | 5 +-- docker_test.go | 10 +++--- docs/quickstart.md | 4 +-- from_dockerfile_test.go | 7 ++-- modulegen/_template/examples_test.go.tmpl | 6 ++-- modules/artemis/examples_test.go | 13 ++++---- modules/cassandra/examples_test.go | 13 ++++---- modules/clickhouse/examples_test.go | 11 ++++--- modules/cockroachdb/examples_test.go | 11 ++++--- modules/couchbase/examples_test.go | 13 ++++---- modules/elasticsearch/examples_test.go | 21 ++++++------ modules/gcloud/bigquery_test.go | 13 ++++---- modules/gcloud/bigtable_test.go | 17 +++++----- modules/gcloud/datastore_test.go | 11 ++++--- modules/gcloud/firestore_test.go | 15 +++++---- modules/gcloud/pubsub_test.go | 17 +++++----- modules/gcloud/spanner_test.go | 25 ++++++++------- modules/inbucket/examples_test.go | 7 ++-- modules/k3s/k3s_example_test.go | 15 +++++---- modules/k6/examples_test.go | 15 +++++---- modules/kafka/examples_test.go | 7 ++-- modules/localstack/examples_test.go | 35 ++++++++++---------- modules/mariadb/examples_test.go | 7 ++-- modules/minio/examples_test.go | 7 ++-- modules/mockserver/examples_test.go | 19 +++++------ modules/mongodb/mongodb_test.go | 27 ++++++++-------- modules/mssql/examples_test.go | 7 ++-- modules/mysql/examples_test.go | 19 +++++------ modules/nats/examples_test.go | 15 +++++---- modules/neo4j/examples_test.go | 7 ++-- modules/openldap/examples_test.go | 21 ++++++------ modules/postgres/examples_test.go | 7 ++-- modules/pulsar/examples_test.go | 7 ++-- modules/rabbitmq/examples_test.go | 39 ++++++++++++----------- modules/redis/examples_test.go | 7 ++-- modules/redpanda/examples_test.go | 7 ++-- modules/vault/examples_test.go | 21 ++++++------ network/network_test.go | 2 +- wait/exec_test.go | 4 +-- wait/http_test.go | 16 +++++----- 40 files changed, 282 insertions(+), 248 deletions(-) diff --git a/container_test.go b/container_test.go index 423f6fcbb6..b9089aab97 100644 --- a/container_test.go +++ b/container_test.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "io" + "log" "strings" "testing" "time" @@ -525,13 +526,13 @@ func ExampleGenericContainer_withSubstitutors() { }) // } if err != nil { - panic(err) + log.Fatalf("could not start container: %v", err) } defer func() { err := container.Terminate(ctx) if err != nil { - panic(err) + log.Fatalf("could not terminate container: %v", err) } }() diff --git a/docker_test.go b/docker_test.go index 32c363aac1..45e276b1ed 100644 --- a/docker_test.go +++ b/docker_test.go @@ -987,7 +987,7 @@ func ExampleDockerProvider_CreateContainer() { state, err := nginxC.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -1019,7 +1019,7 @@ func ExampleContainer_Host() { state, err := nginxC.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -1047,7 +1047,7 @@ func ExampleContainer_Start() { state, err := nginxC.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -1075,7 +1075,7 @@ func ExampleContainer_Stop() { timeout := 10 * time.Second err := nginxC.Stop(ctx, &timeout) if err != nil { - panic(err) + log.Fatalf("failed to stop container: %s", err) // nolint:gocritic } fmt.Println("Container has been stopped") @@ -1109,7 +1109,7 @@ func ExampleContainer_MappedPort() { state, err := nginxC.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/docs/quickstart.md b/docs/quickstart.md index 1f9b1ac315..822b7edd84 100644 --- a/docs/quickstart.md +++ b/docs/quickstart.md @@ -37,11 +37,11 @@ func TestWithRedis(t *testing.T) { Started: true, }) if err != nil { - panic(err) + log.Fatalf("Could not start redis: %s", err) } defer func() { if err := redisC.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("Could not stop redis: %s", err) } }() } diff --git a/from_dockerfile_test.go b/from_dockerfile_test.go index 0e3a4ff10d..7576499a64 100644 --- a/from_dockerfile_test.go +++ b/from_dockerfile_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "log" "strings" "testing" "time" @@ -175,17 +176,17 @@ func ExampleGenericContainer_buildFromDockerfile() { }) // } if err != nil { - panic(err) + log.Fatalf("failed to start container: %v", err) } r, err := c.Logs(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get logs: %v", err) } logs, err := io.ReadAll(r) if err != nil { - panic(err) + log.Fatalf("failed to read logs: %v", err) } fmt.Println(string(logs)) diff --git a/modulegen/_template/examples_test.go.tmpl b/modulegen/_template/examples_test.go.tmpl index ac426e8144..8e47e5cd0a 100644 --- a/modulegen/_template/examples_test.go.tmpl +++ b/modulegen/_template/examples_test.go.tmpl @@ -14,20 +14,20 @@ func Example{{ $entrypoint }}() { {{ $lower }}Container, err := {{ $lower }}.{{ $entrypoint }}(ctx, testcontainers.WithImage("{{ $image }}")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := {{ $lower }}Container.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := {{ $lower }}Container.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) } fmt.Println(state.Running) diff --git a/modules/artemis/examples_test.go b/modules/artemis/examples_test.go index fb4727d9b4..2b17776bb1 100644 --- a/modules/artemis/examples_test.go +++ b/modules/artemis/examples_test.go @@ -3,6 +3,7 @@ package artemis_test import ( "context" "fmt" + "log" "github.com/go-stomp/stomp/v3" @@ -19,18 +20,18 @@ func ExampleRunContainer() { artemis.WithCredentials("test", "test"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := artemisContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := artemisContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -39,7 +40,7 @@ func ExampleRunContainer() { // Get broker endpoint. host, err := artemisContainer.BrokerEndpoint(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get broker endpoint: %s", err) } // containerUser { @@ -52,11 +53,11 @@ func ExampleRunContainer() { // Connect to Artemis via STOMP. conn, err := stomp.Dial("tcp", host, stomp.ConnOpt.Login(user, pass)) if err != nil { - panic(err) + log.Fatalf("failed to connect to Artemis: %s", err) } defer func() { if err := conn.Disconnect(); err != nil { - panic(err) + log.Fatalf("failed to disconnect from Artemis: %s", err) } }() // } diff --git a/modules/cassandra/examples_test.go b/modules/cassandra/examples_test.go index b08658c93a..97d1e6a9ec 100644 --- a/modules/cassandra/examples_test.go +++ b/modules/cassandra/examples_test.go @@ -3,6 +3,7 @@ package cassandra_test import ( "context" "fmt" + "log" "path/filepath" "github.com/gocql/gocql" @@ -21,40 +22,40 @@ func ExampleRunContainer() { cassandra.WithConfigFile(filepath.Join("testdata", "config.yaml")), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := cassandraContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := cassandraContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) connectionHost, err := cassandraContainer.ConnectionHost(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection host: %s", err) } cluster := gocql.NewCluster(connectionHost) session, err := cluster.CreateSession() if err != nil { - panic(err) + log.Fatalf("failed to create session: %s", err) } defer session.Close() var version string err = session.Query("SELECT release_version FROM system.local").Scan(&version) if err != nil { - panic(err) + log.Fatalf("failed to query: %s", err) } fmt.Println(version) diff --git a/modules/clickhouse/examples_test.go b/modules/clickhouse/examples_test.go index c331e9c99a..8eccfc7aa7 100644 --- a/modules/clickhouse/examples_test.go +++ b/modules/clickhouse/examples_test.go @@ -3,6 +3,7 @@ package clickhouse_test import ( "context" "fmt" + "log" "path/filepath" "strings" @@ -29,30 +30,30 @@ func ExampleRunContainer() { clickhouse.WithConfigFile(filepath.Join("testdata", "config.xml")), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := clickHouseContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := clickHouseContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) connectionString, err := clickHouseContainer.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) } opts, err := ch.ParseDSN(connectionString) if err != nil { - panic(err) + log.Fatalf("failed to parse DSN: %s", err) } fmt.Println(strings.HasPrefix(opts.ClientInfo.String(), "clickhouse-go/")) diff --git a/modules/cockroachdb/examples_test.go b/modules/cockroachdb/examples_test.go index c39a6afb09..97e1d7b2dd 100644 --- a/modules/cockroachdb/examples_test.go +++ b/modules/cockroachdb/examples_test.go @@ -3,6 +3,7 @@ package cockroachdb_test import ( "context" "fmt" + "log" "net/url" "github.com/testcontainers/testcontainers-go/modules/cockroachdb" @@ -14,30 +15,30 @@ func ExampleRunContainer() { cockroachdbContainer, err := cockroachdb.RunContainer(ctx) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := cockroachdbContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := cockroachdbContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) addr, err := cockroachdbContainer.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) } u, err := url.Parse(addr) if err != nil { - panic(err) + log.Fatalf("failed to parse connection string: %s", err) } u.Host = fmt.Sprintf("%s:%s", u.Hostname(), "xxx") fmt.Println(u.String()) diff --git a/modules/couchbase/examples_test.go b/modules/couchbase/examples_test.go index 10b0f84291..e89363d3ac 100644 --- a/modules/couchbase/examples_test.go +++ b/modules/couchbase/examples_test.go @@ -3,6 +3,7 @@ package couchbase_test import ( "context" "fmt" + "log" "github.com/couchbase/gocb/v2" @@ -28,25 +29,25 @@ func ExampleRunContainer() { couchbase.WithBuckets(bucket), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := couchbaseContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := couchbaseContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) connectionString, err := couchbaseContainer.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) } cluster, err := gocb.Connect(connectionString, gocb.ClusterOptions{ @@ -54,12 +55,12 @@ func ExampleRunContainer() { Password: couchbaseContainer.Password(), }) if err != nil { - panic(err) + log.Fatalf("failed to connect to cluster: %s", err) } buckets, err := cluster.Buckets().GetAllBuckets(nil) if err != nil { - panic(err) + log.Fatalf("failed to get buckets: %s", err) } fmt.Println(len(buckets)) diff --git a/modules/elasticsearch/examples_test.go b/modules/elasticsearch/examples_test.go index bb288658b8..09ba893e43 100644 --- a/modules/elasticsearch/examples_test.go +++ b/modules/elasticsearch/examples_test.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "log" "strings" es "github.com/elastic/go-elasticsearch/v8" @@ -17,18 +18,18 @@ func ExampleRunContainer() { ctx := context.Background() elasticsearchContainer, err := elasticsearch.RunContainer(ctx, testcontainers.WithImage("docker.elastic.co/elasticsearch/elasticsearch:8.9.0")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := elasticsearchContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := elasticsearchContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -46,12 +47,12 @@ func ExampleRunContainer_withUsingPassword() { elasticsearch.WithPassword("foo"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { err := elasticsearchContainer.Terminate(ctx) if err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } @@ -73,12 +74,12 @@ func ExampleRunContainer_connectUsingElasticsearchClient() { elasticsearch.WithPassword("foo"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { err := elasticsearchContainer.Terminate(ctx) if err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() @@ -93,19 +94,19 @@ func ExampleRunContainer_connectUsingElasticsearchClient() { esClient, err := es.NewClient(cfg) if err != nil { - panic(err) + log.Fatalf("error creating the client: %s", err) // nolint:gocritic } resp, err := esClient.Info() if err != nil { - panic(err) + log.Fatalf("error getting response: %s", err) } defer resp.Body.Close() // } var esResp ElasticsearchResponse if err := json.NewDecoder(resp.Body).Decode(&esResp); err != nil { - panic(err) + log.Fatalf("error decoding response: %s", err) } fmt.Println(esResp.Tagline) diff --git a/modules/gcloud/bigquery_test.go b/modules/gcloud/bigquery_test.go index 2332e747f8..08bbd46a3a 100644 --- a/modules/gcloud/bigquery_test.go +++ b/modules/gcloud/bigquery_test.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "log" "cloud.google.com/go/bigquery" "google.golang.org/api/iterator" @@ -26,13 +27,13 @@ func ExampleRunBigQueryContainer() { gcloud.WithProjectID("bigquery-project"), ) if err != nil { - panic(err) + log.Fatalf("failed to run container: %v", err) } // Clean up the container defer func() { if err := bigQueryContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %v", err) } }() // } @@ -49,7 +50,7 @@ func ExampleRunBigQueryContainer() { client, err := bigquery.NewClient(ctx, projectID, opts...) if err != nil { - panic(err) + log.Fatalf("failed to create bigquery client: %v", err) // nolint:gocritic } defer client.Close() // } @@ -57,13 +58,13 @@ func ExampleRunBigQueryContainer() { createFnQuery := client.Query("CREATE FUNCTION testr(arr ARRAY>) AS ((SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))") _, err = createFnQuery.Read(ctx) if err != nil { - panic(err) + log.Fatalf("failed to create function: %v", err) } selectQuery := client.Query("SELECT testr([STRUCT(\"foo\", 10), STRUCT(\"bar\", 40), STRUCT(\"foo\", 20)])") it, err := selectQuery.Read(ctx) if err != nil { - panic(err) + log.Fatalf("failed to read query: %v", err) } var val []bigquery.Value @@ -73,7 +74,7 @@ func ExampleRunBigQueryContainer() { break } if err != nil { - panic(err) + log.Fatalf("failed to iterate: %v", err) } } diff --git a/modules/gcloud/bigtable_test.go b/modules/gcloud/bigtable_test.go index 9e2f7516ce..0504d68fc0 100644 --- a/modules/gcloud/bigtable_test.go +++ b/modules/gcloud/bigtable_test.go @@ -3,6 +3,7 @@ package gcloud_test import ( "context" "fmt" + "log" "cloud.google.com/go/bigtable" "google.golang.org/api/option" @@ -23,13 +24,13 @@ func ExampleRunBigTableContainer() { gcloud.WithProjectID("bigtable-project"), ) if err != nil { - panic(err) + log.Fatalf("failed to run container: %v", err) } // Clean up the container defer func() { if err := bigTableContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %v", err) } }() // } @@ -49,24 +50,24 @@ func ExampleRunBigTableContainer() { } adminClient, err := bigtable.NewAdminClient(ctx, projectId, instanceId, options...) if err != nil { - panic(err) + log.Fatalf("failed to create admin client: %v", err) // nolint:gocritic } defer adminClient.Close() // } err = adminClient.CreateTable(ctx, tableName) if err != nil { - panic(err) + log.Fatalf("failed to create table: %v", err) } err = adminClient.CreateColumnFamily(ctx, tableName, "name") if err != nil { - panic(err) + log.Fatalf("failed to create column family: %v", err) } // bigTableClient { client, err := bigtable.NewClient(ctx, projectId, instanceId, options...) if err != nil { - panic(err) + log.Fatalf("failed to create client: %v", err) } defer client.Close() // } @@ -77,12 +78,12 @@ func ExampleRunBigTableContainer() { mut.Set("name", "firstName", bigtable.Now(), []byte("Gopher")) err = tbl.Apply(ctx, "1", mut) if err != nil { - panic(err) + log.Fatalf("failed to apply mutation: %v", err) } row, err := tbl.ReadRow(ctx, "1", bigtable.RowFilter(bigtable.FamilyFilter("name"))) if err != nil { - panic(err) + log.Fatalf("failed to read row: %v", err) } fmt.Println(string(row["name"][0].Value)) diff --git a/modules/gcloud/datastore_test.go b/modules/gcloud/datastore_test.go index df81e9f2c5..e9db5116d3 100644 --- a/modules/gcloud/datastore_test.go +++ b/modules/gcloud/datastore_test.go @@ -3,6 +3,7 @@ package gcloud_test import ( "context" "fmt" + "log" "cloud.google.com/go/datastore" "google.golang.org/api/option" @@ -23,13 +24,13 @@ func ExampleRunDatastoreContainer() { gcloud.WithProjectID("datastore-project"), ) if err != nil { - panic(err) + log.Fatalf("failed to run container: %v", err) } // Clean up the container defer func() { if err := datastoreContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %v", err) } }() // } @@ -45,7 +46,7 @@ func ExampleRunDatastoreContainer() { dsClient, err := datastore.NewClient(ctx, projectID, options...) if err != nil { - panic(err) + log.Fatalf("failed to create client: %v", err) // nolint:gocritic } defer dsClient.Close() // } @@ -60,13 +61,13 @@ func ExampleRunDatastoreContainer() { } _, err = dsClient.Put(ctx, k, &data) if err != nil { - panic(err) + log.Fatalf("failed to put data: %v", err) } saved := Task{} err = dsClient.Get(ctx, k, &saved) if err != nil { - panic(err) + log.Fatalf("failed to get data: %v", err) } fmt.Println(saved.Description) diff --git a/modules/gcloud/firestore_test.go b/modules/gcloud/firestore_test.go index 163c718ae7..3e1c6f7977 100644 --- a/modules/gcloud/firestore_test.go +++ b/modules/gcloud/firestore_test.go @@ -3,6 +3,7 @@ package gcloud_test import ( "context" "fmt" + "log" "cloud.google.com/go/firestore" "google.golang.org/api/option" @@ -33,13 +34,13 @@ func ExampleRunFirestoreContainer() { gcloud.WithProjectID("firestore-project"), ) if err != nil { - panic(err) + log.Fatalf("failed to run container: %v", err) } // Clean up the container defer func() { if err := firestoreContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %v", err) } }() // } @@ -49,13 +50,13 @@ func ExampleRunFirestoreContainer() { conn, err := grpc.Dial(firestoreContainer.URI, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithPerRPCCredentials(emulatorCreds{})) if err != nil { - panic(err) + log.Fatalf("failed to dial: %v", err) // nolint:gocritic } options := []option.ClientOption{option.WithGRPCConn(conn)} client, err := firestore.NewClient(ctx, projectID, options...) if err != nil { - panic(err) + log.Fatalf("failed to create client: %v", err) } defer client.Close() // } @@ -74,17 +75,17 @@ func ExampleRunFirestoreContainer() { } _, err = docRef.Create(ctx, data) if err != nil { - panic(err) + log.Fatalf("failed to create document: %v", err) } docsnap, err := docRef.Get(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get document: %v", err) } var saved Person if err := docsnap.DataTo(&saved); err != nil { - panic(err) + log.Fatalf("failed to convert data: %v", err) } fmt.Println(saved.Firstname, saved.Lastname) diff --git a/modules/gcloud/pubsub_test.go b/modules/gcloud/pubsub_test.go index 132f2f9388..5d46424f42 100644 --- a/modules/gcloud/pubsub_test.go +++ b/modules/gcloud/pubsub_test.go @@ -3,6 +3,7 @@ package gcloud_test import ( "context" "fmt" + "log" "cloud.google.com/go/pubsub" "google.golang.org/api/option" @@ -23,13 +24,13 @@ func ExampleRunPubsubContainer() { gcloud.WithProjectID("pubsub-project"), ) if err != nil { - panic(err) + log.Fatalf("failed to run container: %v", err) } // Clean up the container defer func() { if err := pubsubContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %v", err) } }() // } @@ -39,30 +40,30 @@ func ExampleRunPubsubContainer() { conn, err := grpc.Dial(pubsubContainer.URI, grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { - panic(err) + log.Fatalf("failed to dial: %v", err) // nolint:gocritic } options := []option.ClientOption{option.WithGRPCConn(conn)} client, err := pubsub.NewClient(ctx, projectID, options...) if err != nil { - panic(err) + log.Fatalf("failed to create client: %v", err) } defer client.Close() // } topic, err := client.CreateTopic(ctx, "greetings") if err != nil { - panic(err) + log.Fatalf("failed to create topic: %v", err) } subscription, err := client.CreateSubscription(ctx, "subscription", pubsub.SubscriptionConfig{Topic: topic}) if err != nil { - panic(err) + log.Fatalf("failed to create subscription: %v", err) } result := topic.Publish(ctx, &pubsub.Message{Data: []byte("Hello World")}) _, err = result.Get(ctx) if err != nil { - panic(err) + log.Fatalf("failed to publish message: %v", err) } var data []byte @@ -73,7 +74,7 @@ func ExampleRunPubsubContainer() { defer cancel() }) if err != nil { - panic(err) + log.Fatalf("failed to receive message: %v", err) } fmt.Println(string(data)) diff --git a/modules/gcloud/spanner_test.go b/modules/gcloud/spanner_test.go index 01fea85bd7..e50777142a 100644 --- a/modules/gcloud/spanner_test.go +++ b/modules/gcloud/spanner_test.go @@ -3,6 +3,7 @@ package gcloud_test import ( "context" "fmt" + "log" "cloud.google.com/go/spanner" database "cloud.google.com/go/spanner/admin/database/apiv1" @@ -28,13 +29,13 @@ func ExampleRunSpannerContainer() { gcloud.WithProjectID("spanner-project"), ) if err != nil { - panic(err) + log.Fatalf("failed to run container: %v", err) } // Clean up the container defer func() { if err := spannerContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %v", err) } }() // } @@ -56,7 +57,7 @@ func ExampleRunSpannerContainer() { instanceAdmin, err := instance.NewInstanceAdminClient(ctx, options...) if err != nil { - panic(err) + log.Fatalf("failed to create instance admin client: %v", err) // nolint:gocritic } defer instanceAdmin.Close() // } @@ -69,18 +70,18 @@ func ExampleRunSpannerContainer() { }, }) if err != nil { - panic(err) + log.Fatalf("failed to create instance: %v", err) } _, err = instanceOp.Wait(ctx) if err != nil { - panic(err) + log.Fatalf("failed to wait for instance creation: %v", err) } // spannerDBAdminClient { c, err := database.NewDatabaseAdminClient(ctx, options...) if err != nil { - panic(err) + log.Fatalf("failed to create admin client: %v", err) } defer c.Close() // } @@ -93,17 +94,17 @@ func ExampleRunSpannerContainer() { }, }) if err != nil { - panic(err) + log.Fatalf("failed to create database: %v", err) } _, err = databaseOp.Wait(ctx) if err != nil { - panic(err) + log.Fatalf("failed to wait for database creation: %v", err) } db := fmt.Sprintf("projects/%s/instances/%s/databases/%s", projectId, instanceId, databaseName) client, err := spanner.NewClient(ctx, db, options...) if err != nil { - panic(err) + log.Fatalf("failed to create client: %v", err) } defer client.Close() @@ -113,18 +114,18 @@ func ExampleRunSpannerContainer() { []interface{}{"Go", "Gopher"}), }) if err != nil { - panic(err) + log.Fatalf("failed to apply mutation: %v", err) } row, err := client.Single().ReadRow(ctx, "Languages", spanner.Key{"Go"}, []string{"mascot"}) if err != nil { - panic(err) + log.Fatalf("failed to read row: %v", err) } var mascot string err = row.ColumnByName("Mascot", &mascot) if err != nil { - panic(err) + log.Fatalf("failed to read column: %v", err) } fmt.Println(mascot) diff --git a/modules/inbucket/examples_test.go b/modules/inbucket/examples_test.go index d657ee69ec..b5c72d12b4 100644 --- a/modules/inbucket/examples_test.go +++ b/modules/inbucket/examples_test.go @@ -3,6 +3,7 @@ package inbucket_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/inbucket" @@ -14,20 +15,20 @@ func ExampleRunContainer() { inbucketContainer, err := inbucket.RunContainer(ctx, testcontainers.WithImage("inbucket/inbucket:sha-2d409bb")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := inbucketContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := inbucketContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/k3s/k3s_example_test.go b/modules/k3s/k3s_example_test.go index c297b1ca67..2d065bc70a 100644 --- a/modules/k3s/k3s_example_test.go +++ b/modules/k3s/k3s_example_test.go @@ -3,6 +3,7 @@ package k3s_test import ( "context" "fmt" + "log" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" @@ -20,42 +21,42 @@ func ExampleRunContainer() { testcontainers.WithImage("docker.io/rancher/k3s:v1.27.1-k3s1"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := k3sContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := k3sContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) kubeConfigYaml, err := k3sContainer.GetKubeConfig(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get kubeconfig: %s", err) } restcfg, err := clientcmd.RESTConfigFromKubeConfig(kubeConfigYaml) if err != nil { - panic(err) + log.Fatalf("failed to create rest config: %s", err) } k8s, err := kubernetes.NewForConfig(restcfg) if err != nil { - panic(err) + log.Fatalf("failed to create k8s client: %s", err) } nodes, err := k8s.CoreV1().Nodes().List(ctx, v1.ListOptions{}) if err != nil { - panic(err) + log.Fatalf("failed to list nodes: %s", err) } fmt.Println(len(nodes.Items)) diff --git a/modules/k6/examples_test.go b/modules/k6/examples_test.go index 69e79fb6af..99cc77dcde 100644 --- a/modules/k6/examples_test.go +++ b/modules/k6/examples_test.go @@ -3,6 +3,7 @@ package k6_test import ( "context" "fmt" + "log" "path/filepath" "github.com/testcontainers/testcontainers-go" @@ -29,12 +30,12 @@ func ExampleRunContainer() { } httpbin, err := testcontainers.GenericContainer(ctx, gcr) if err != nil { - panic(fmt.Errorf("failed to create httpbin container %w", err)) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := httpbin.Terminate(ctx); err != nil { - panic(fmt.Errorf("failed to terminate container: %w", err)) + log.Fatalf("failed to terminate container: %s", err) } }() // } @@ -42,13 +43,13 @@ func ExampleRunContainer() { // getHTTPBinIP { httpbinIP, err := httpbin.ContainerIP(ctx) if err != nil { - panic(fmt.Errorf("failed to get httpbin IP: %w", err)) + log.Fatalf("failed to get container IP: %s", err) // nolint:gocritic } // } absPath, err := filepath.Abs(filepath.Join("scripts", "httpbin.js")) if err != nil { - panic(fmt.Errorf("failed to get path to test script: %w", err)) + log.Fatalf("failed to get absolute path to test script: %s", err) } // runK6Container { @@ -60,12 +61,12 @@ func ExampleRunContainer() { k6.SetEnvVar("HTTPBIN", httpbinIP), ) if err != nil { - panic(fmt.Errorf("failed to start k6 container: %w", err)) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := k6.Terminate(ctx); err != nil { - panic(fmt.Errorf("failed to terminate container: %w", err)) + log.Fatalf("failed to terminate container: %s", err) } }() //} @@ -73,7 +74,7 @@ func ExampleRunContainer() { // assert the result of the test state, err := k6.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) } fmt.Println(state.ExitCode) diff --git a/modules/kafka/examples_test.go b/modules/kafka/examples_test.go index 61fe81f504..ee68cca9ff 100644 --- a/modules/kafka/examples_test.go +++ b/modules/kafka/examples_test.go @@ -3,6 +3,7 @@ package kafka_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/kafka" @@ -17,20 +18,20 @@ func ExampleRunContainer() { testcontainers.WithImage("confluentinc/confluent-local:7.5.0"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container after defer func() { if err := kafkaContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := kafkaContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(kafkaContainer.ClusterID) diff --git a/modules/localstack/examples_test.go b/modules/localstack/examples_test.go index ad0c3b28e8..a408a9d3c6 100644 --- a/modules/localstack/examples_test.go +++ b/modules/localstack/examples_test.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "io" + "log" "net/http" "path/filepath" "strings" @@ -26,20 +27,20 @@ func ExampleRunContainer() { testcontainers.WithImage("localstack/localstack:1.4.0"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := localstackContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := localstackContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -54,7 +55,7 @@ func ExampleRunContainer_withNetwork() { newNetwork, err := network.New(ctx, network.WithCheckDuplicate()) if err != nil { - panic(err) + log.Fatalf("failed to create network: %s", err) } nwName := newNetwork.Name @@ -71,20 +72,20 @@ func ExampleRunContainer_withNetwork() { }), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // } // Clean up the container defer func() { if err := localstackContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() networks, err := localstackContainer.Networks(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container networks: %s", err) // nolint:gocritic } fmt.Println(len(networks)) @@ -107,7 +108,7 @@ func ExampleRunContainer_legacyMode() { }), ) if err == nil { - panic(err) + log.Fatalf("expected an error, got nil") } fmt.Println(err) @@ -150,12 +151,12 @@ func ExampleRunContainer_usingLambdas() { }), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { err := container.Terminate(ctx) if err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() @@ -179,7 +180,7 @@ func ExampleRunContainer_usingLambdas() { for _, cmd := range lambdaCommands { _, _, err := container.Exec(ctx, cmd) if err != nil { - panic(err) + log.Fatalf("failed to execute command %v: %s", cmd, err) // nolint:gocritic } } @@ -189,13 +190,13 @@ func ExampleRunContainer_usingLambdas() { } _, reader, err := container.Exec(ctx, cmd, exec.Multiplexed()) if err != nil { - panic(err) + log.Fatalf("failed to execute command %v: %s", cmd, err) } buf := new(bytes.Buffer) _, err = buf.ReadFrom(reader) if err != nil { - panic(err) + log.Fatalf("failed to read from reader: %s", err) } content := buf.Bytes() @@ -213,7 +214,7 @@ func ExampleRunContainer_usingLambdas() { v := &FunctionURLConfig{} err = json.Unmarshal(content, v) if err != nil { - panic(err) + log.Fatalf("failed to unmarshal content: %s", err) } httpClient := http.Client{ @@ -225,19 +226,19 @@ func ExampleRunContainer_usingLambdas() { mappedPort, err := container.MappedPort(ctx, "4566/tcp") if err != nil { - panic(err) + log.Fatalf("failed to get mapped port: %s", err) } functionURL = strings.ReplaceAll(functionURL, "4566", mappedPort.Port()) resp, err := httpClient.Post(functionURL, "application/json", bytes.NewBufferString(`{"num1": "10", "num2": "10"}`)) if err != nil { - panic(err) + log.Fatalf("failed to send request to lambda function: %s", err) } jsonResponse, err := io.ReadAll(resp.Body) if err != nil { - panic(err) + log.Fatalf("failed to read response body: %s", err) } fmt.Println(string(jsonResponse)) diff --git a/modules/mariadb/examples_test.go b/modules/mariadb/examples_test.go index d5c057f436..36209a2deb 100644 --- a/modules/mariadb/examples_test.go +++ b/modules/mariadb/examples_test.go @@ -3,6 +3,7 @@ package mariadb_test import ( "context" "fmt" + "log" "path/filepath" "github.com/testcontainers/testcontainers-go" @@ -22,20 +23,20 @@ func ExampleRunContainer() { mariadb.WithPassword(""), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mariadbContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := mariadbContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/minio/examples_test.go b/modules/minio/examples_test.go index 38c2b9d589..ce72eb515a 100644 --- a/modules/minio/examples_test.go +++ b/modules/minio/examples_test.go @@ -3,6 +3,7 @@ package minio_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/minio" @@ -14,20 +15,20 @@ func ExampleRunContainer() { minioContainer, err := minio.RunContainer(ctx, testcontainers.WithImage("minio/minio:RELEASE.2024-01-16T16-07-38Z")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := minioContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := minioContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/mockserver/examples_test.go b/modules/mockserver/examples_test.go index e890bf6cdd..9125114375 100644 --- a/modules/mockserver/examples_test.go +++ b/modules/mockserver/examples_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "log" "net/http" "strings" @@ -19,20 +20,20 @@ func ExampleRunContainer() { mockserverContainer, err := mockserver.RunContainer(ctx, testcontainers.WithImage("mockserver/mockserver:5.15.0")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mockserverContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := mockserverContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -47,19 +48,19 @@ func ExampleRunContainer_connect() { mockserverContainer, err := mockserver.RunContainer(ctx, testcontainers.WithImage("mockserver/mockserver:5.15.0")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mockserverContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() url, err := mockserverContainer.URL(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container URL: %s", err) // nolint:gocritic } ms := client.NewClientURL(url) // } @@ -71,18 +72,18 @@ func ExampleRunContainer_connect() { requestMatcher = requestMatcher.WithJSONFields(map[string]interface{}{"name": "Tools"}) err = ms.RegisterExpectation(client.NewExpectation(requestMatcher).WithResponse(client.NewResponseOK().WithJSONBody(map[string]any{"test": "value"}))) if err != nil { - panic(err) + log.Fatalf("failed to register expectation: %s", err) } httpClient := &http.Client{} resp, err := httpClient.Post(url+"/api/categories", "application/json", strings.NewReader(`{"name": "Tools"}`)) if err != nil { - panic(err) + log.Fatalf("failed to send request: %s", err) } buf, err := io.ReadAll(resp.Body) if err != nil { - panic(err) + log.Fatalf("failed to read response: %s", err) } resp.Body.Close() diff --git a/modules/mongodb/mongodb_test.go b/modules/mongodb/mongodb_test.go index 22a908d70b..8e936a7c64 100644 --- a/modules/mongodb/mongodb_test.go +++ b/modules/mongodb/mongodb_test.go @@ -3,6 +3,7 @@ package mongodb_test import ( "context" "fmt" + "log" "strings" "go.mongodb.org/mongo-driver/mongo" @@ -19,20 +20,20 @@ func ExampleRunContainer() { mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage("mongo:6")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mongodbContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := mongodbContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -47,30 +48,30 @@ func ExampleRunContainer_connect() { mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage("mongo:6")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mongodbContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() endpoint, err := mongodbContainer.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic } mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(endpoint)) if err != nil { - panic(err) + log.Fatalf("failed to connect to MongoDB: %s", err) } // } err = mongoClient.Ping(ctx, nil) if err != nil { - panic(err) + log.Fatalf("failed to ping MongoDB: %s", err) } fmt.Println(mongoClient.Database("test").Name()) @@ -89,29 +90,29 @@ func ExampleRunContainer_withCredentials() { testcontainers.WithWaitStrategy(wait.ForLog("Waiting for connections")), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := container.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() connStr, err := container.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic } mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(connStr)) if err != nil { - panic(err) + log.Fatalf("failed to connect to MongoDB: %s", err) } err = mongoClient.Ping(ctx, nil) if err != nil { - panic(err) + log.Fatalf("failed to ping MongoDB: %s", err) } fmt.Println(strings.Split(connStr, "@")[0]) diff --git a/modules/mssql/examples_test.go b/modules/mssql/examples_test.go index 0c1d555e3d..2d7af8f0c7 100644 --- a/modules/mssql/examples_test.go +++ b/modules/mssql/examples_test.go @@ -3,6 +3,7 @@ package mssql_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/mssql" @@ -20,20 +21,20 @@ func ExampleRunContainer() { mssql.WithPassword(password), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mssqlContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := mssqlContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/mysql/examples_test.go b/modules/mysql/examples_test.go index 29668dc3c4..a6be342643 100644 --- a/modules/mysql/examples_test.go +++ b/modules/mysql/examples_test.go @@ -4,6 +4,7 @@ import ( "context" "database/sql" "fmt" + "log" "path/filepath" "github.com/testcontainers/testcontainers-go" @@ -23,20 +24,20 @@ func ExampleRunContainer() { mysql.WithScripts(filepath.Join("testdata", "schema.sql")), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := mysqlContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := mysqlContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -57,12 +58,12 @@ func ExampleRunContainer_connect() { mysql.WithScripts(filepath.Join("testdata", "schema.sql")), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := mysqlContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() @@ -70,23 +71,23 @@ func ExampleRunContainer_connect() { db, err := sql.Open("mysql", connectionString) if err != nil { - panic(err) + log.Fatalf("failed to connect to MySQL: %s", err) // nolint:gocritic } defer db.Close() if err = db.Ping(); err != nil { - panic(err) + log.Fatalf("failed to ping MySQL: %s", err) } stmt, err := db.Prepare("SELECT @@GLOBAL.tmpdir") if err != nil { - panic(err) + log.Fatalf("failed to prepare statement: %s", err) } defer stmt.Close() row := stmt.QueryRow() tmpDir := "" err = row.Scan(&tmpDir) if err != nil { - panic(err) + log.Fatalf("failed to scan row: %s", err) } fmt.Println(tmpDir) diff --git a/modules/nats/examples_test.go b/modules/nats/examples_test.go index ecb1abc844..fd95691cc4 100644 --- a/modules/nats/examples_test.go +++ b/modules/nats/examples_test.go @@ -3,6 +3,7 @@ package nats_test import ( "context" "fmt" + "log" natsgo "github.com/nats-io/nats.go" @@ -18,20 +19,20 @@ func ExampleRunContainer() { testcontainers.WithImage("nats:2.9"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := natsContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := natsContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -46,24 +47,24 @@ func ExampleRunContainer_connectWithCredentials() { container, err := nats.RunContainer(ctx, nats.WithUsername("foo"), nats.WithPassword("bar")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := container.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() uri, err := container.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic } nc, err := natsgo.Connect(uri, natsgo.UserInfo(container.User, container.Password)) if err != nil { - panic(err) + log.Fatalf("failed to connect to NATS: %s", err) } defer nc.Close() // } diff --git a/modules/neo4j/examples_test.go b/modules/neo4j/examples_test.go index 23987e2e12..fcddfa7c41 100644 --- a/modules/neo4j/examples_test.go +++ b/modules/neo4j/examples_test.go @@ -3,6 +3,7 @@ package neo4j_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/neo4j" @@ -21,20 +22,20 @@ func ExampleRunContainer() { neo4j.WithNeo4jSetting("dbms.tx_log.rotation.size", "42M"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := neo4jContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := neo4jContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/openldap/examples_test.go b/modules/openldap/examples_test.go index ad71d54a72..6c6ed6d672 100644 --- a/modules/openldap/examples_test.go +++ b/modules/openldap/examples_test.go @@ -3,6 +3,7 @@ package openldap_test import ( "context" "fmt" + "log" "github.com/go-ldap/ldap/v3" @@ -16,20 +17,20 @@ func ExampleRunContainer() { openldapContainer, err := openldap.RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := openldapContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := openldapContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -44,31 +45,31 @@ func ExampleRunContainer_connect() { openldapContainer, err := openldap.RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := openldapContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() connectionString, err := openldapContainer.ConnectionString(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic } client, err := ldap.DialURL(connectionString) if err != nil { - panic(err) + log.Fatalf("failed to connect to LDAP server: %s", err) } defer client.Close() // First bind with a read only user err = client.Bind("cn=admin,dc=example,dc=org", "adminpassword") if err != nil { - panic(err) + log.Fatalf("failed to bind to LDAP server: %s", err) } // Search for the given username @@ -82,11 +83,11 @@ func ExampleRunContainer_connect() { sr, err := client.Search(searchRequest) if err != nil { - panic(err) + log.Fatalf("failed to search LDAP server: %s", err) } if len(sr.Entries) != 1 { - panic("User does not exist or too many entries returned") + log.Fatal("User does not exist or too many entries returned") } fmt.Println(sr.Entries[0].DN) diff --git a/modules/postgres/examples_test.go b/modules/postgres/examples_test.go index 9e833ac25c..ee164fdb6a 100644 --- a/modules/postgres/examples_test.go +++ b/modules/postgres/examples_test.go @@ -3,6 +3,7 @@ package postgres_test import ( "context" "fmt" + "log" "path/filepath" "time" @@ -32,20 +33,20 @@ func ExampleRunContainer() { WithStartupTimeout(5*time.Second)), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := postgresContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := postgresContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/pulsar/examples_test.go b/modules/pulsar/examples_test.go index a973caea58..94e76c5f19 100644 --- a/modules/pulsar/examples_test.go +++ b/modules/pulsar/examples_test.go @@ -3,6 +3,7 @@ package pulsar_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/pulsar" @@ -16,20 +17,20 @@ func ExampleRunContainer() { testcontainers.WithImage("docker.io/apachepulsar/pulsar:2.10.2"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := pulsarContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := pulsarContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/rabbitmq/examples_test.go b/modules/rabbitmq/examples_test.go index 2633472daa..f24bae0169 100644 --- a/modules/rabbitmq/examples_test.go +++ b/modules/rabbitmq/examples_test.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "log" "path/filepath" "strings" @@ -23,20 +24,20 @@ func ExampleRunContainer() { rabbitmq.WithAdminPassword("password"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := rabbitmqContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := rabbitmqContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -54,27 +55,27 @@ func ExampleRunContainer_connectUsingAmqp() { rabbitmq.WithAdminPassword("password"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := rabbitmqContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() amqpURL, err := rabbitmqContainer.AmqpURL(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get AMQP URL: %s", err) // nolint:gocritic } amqpConnection, err := amqp.Dial(amqpURL) if err != nil { - panic(err) + log.Fatalf("failed to connect to RabbitMQ: %s", err) } defer func() { err := amqpConnection.Close() if err != nil { - panic(err) + log.Fatalf("failed to close connection: %s", err) } }() @@ -102,19 +103,19 @@ func ExampleRunContainer_withSSL() { rabbitmq.WithSSL(sslSettings), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // } defer func() { if err := rabbitmqContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() state, err := rabbitmqContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -136,12 +137,12 @@ func ExampleRunContainer_withPlugins() { ), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := rabbitmqContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() @@ -158,23 +159,23 @@ func ExampleRunContainer_withCustomConfigFile() { testcontainers.WithImage("rabbitmq:3.7.25-management-alpine"), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { if err := rabbitmqContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() logs, err := rabbitmqContainer.Logs(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get logs: %s", err) // nolint:gocritic } bytes, err := io.ReadAll(logs) if err != nil { - panic(err) + log.Fatalf("failed to read logs: %s", err) } fmt.Println(strings.Contains(string(bytes), "config file(s) : /etc/rabbitmq/rabbitmq-testcontainers.conf")) @@ -190,12 +191,12 @@ func assertPlugins(container testcontainers.Container, plugins ...string) bool { _, out, err := container.Exec(ctx, []string{"rabbitmq-plugins", "is_enabled", plugin}) if err != nil { - panic(err) + log.Fatalf("failed to execute command: %s", err) } check, err := io.ReadAll(out) if err != nil { - panic(err) + log.Fatalf("failed to read output: %s", err) } if !strings.Contains(string(check), plugin+" is enabled") { diff --git a/modules/redis/examples_test.go b/modules/redis/examples_test.go index 2812902114..90b6d30bde 100644 --- a/modules/redis/examples_test.go +++ b/modules/redis/examples_test.go @@ -3,6 +3,7 @@ package redis_test import ( "context" "fmt" + "log" "path/filepath" "github.com/testcontainers/testcontainers-go" @@ -20,20 +21,20 @@ func ExampleRunContainer() { redis.WithConfigFile(filepath.Join("testdata", "redis7.conf")), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := redisContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := redisContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/redpanda/examples_test.go b/modules/redpanda/examples_test.go index 7dbcd13182..e4d2b0a47c 100644 --- a/modules/redpanda/examples_test.go +++ b/modules/redpanda/examples_test.go @@ -3,6 +3,7 @@ package redpanda_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go/modules/redpanda" ) @@ -21,20 +22,20 @@ func ExampleRunContainer() { redpanda.WithEnableSchemaRegistryHTTPBasicAuth(), ) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := redpandaContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := redpandaContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/modules/vault/examples_test.go b/modules/vault/examples_test.go index e8638269ba..364b07347b 100644 --- a/modules/vault/examples_test.go +++ b/modules/vault/examples_test.go @@ -3,6 +3,7 @@ package vault_test import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go/exec" "github.com/testcontainers/testcontainers-go/modules/vault" @@ -14,20 +15,20 @@ func ExampleRunContainer() { vaultContainer, err := vault.RunContainer(ctx) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := vaultContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := vaultContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -42,20 +43,20 @@ func ExampleRunContainer_withToken() { vaultContainer, err := vault.RunContainer(ctx, vault.WithToken("MyToKeN")) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := vaultContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := vaultContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -65,7 +66,7 @@ func ExampleRunContainer_withToken() { } exitCode, _, err := vaultContainer.Exec(ctx, cmds, exec.Multiplexed()) if err != nil { - panic(err) + log.Fatalf("failed to execute command: %s", err) } fmt.Println(exitCode) @@ -87,20 +88,20 @@ func ExampleRunContainer_withInitCommand() { "write secret/testing top_secret=password123", // Create a secret )) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // Clean up the container defer func() { if err := vaultContainer.Terminate(ctx); err != nil { - panic(err) + log.Fatalf("failed to terminate container: %s", err) } }() // } state, err := vaultContainer.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/network/network_test.go b/network/network_test.go index 69cc2a7dee..05e22756cf 100644 --- a/network/network_test.go +++ b/network/network_test.go @@ -41,7 +41,7 @@ func ExampleNew() { } defer func() { if err := net.Remove(ctx); err != nil { - panic(err) + log.Fatalf("failed to remove network: %s", err) } }() diff --git a/wait/exec_test.go b/wait/exec_test.go index d8bbf2ea72..b1c31f1b6e 100644 --- a/wait/exec_test.go +++ b/wait/exec_test.go @@ -30,7 +30,7 @@ func ExampleExecStrategy() { Started: true, }) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { @@ -41,7 +41,7 @@ func ExampleExecStrategy() { state, err := localstack.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) diff --git a/wait/http_test.go b/wait/http_test.go index 7da075222b..8ed91097ad 100644 --- a/wait/http_test.go +++ b/wait/http_test.go @@ -37,7 +37,7 @@ func ExampleHTTPStrategy() { Started: true, }) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // } @@ -49,7 +49,7 @@ func ExampleHTTPStrategy() { state, err := c.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -72,7 +72,7 @@ func ExampleHTTPStrategy_WithPort() { Started: true, }) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // } @@ -84,7 +84,7 @@ func ExampleHTTPStrategy_WithPort() { state, err := c.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -106,7 +106,7 @@ func ExampleHTTPStrategy_WithForcedIPv4LocalHost() { Started: true, }) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } defer func() { @@ -117,7 +117,7 @@ func ExampleHTTPStrategy_WithForcedIPv4LocalHost() { state, err := c.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) @@ -140,7 +140,7 @@ func ExampleHTTPStrategy_WithBasicAuth() { Started: true, }) if err != nil { - panic(err) + log.Fatalf("failed to start container: %s", err) } // } @@ -152,7 +152,7 @@ func ExampleHTTPStrategy_WithBasicAuth() { state, err := gogs.State(ctx) if err != nil { - panic(err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) From 082b32b78d70626765165374638fceaa8179281f Mon Sep 17 00:00:00 2001 From: Stephan Renatus Date: Fri, 2 Feb 2024 16:33:19 +0100 Subject: [PATCH 006/115] redpanda: allow using SASL and TLS together (#2140) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Admin HTTP client used in the user setup would before fail when trying to talk to the admin API via HTTP. With TLS enabled, it'll have to use https. Signed-off-by: Stephan Renatus Co-authored-by: Manuel de la Peña --- modules/redpanda/admin_api.go | 13 +++++++-- modules/redpanda/redpanda.go | 34 +++++++++++++++++++----- modules/redpanda/redpanda_test.go | 44 +++++++++++++++++++++++++++++++ 3 files changed, 83 insertions(+), 8 deletions(-) diff --git a/modules/redpanda/admin_api.go b/modules/redpanda/admin_api.go index dbdcf0435c..4f99d5cd08 100644 --- a/modules/redpanda/admin_api.go +++ b/modules/redpanda/admin_api.go @@ -12,10 +12,19 @@ import ( type AdminAPIClient struct { BaseURL string + client *http.Client } func NewAdminAPIClient(baseURL string) *AdminAPIClient { - return &AdminAPIClient{BaseURL: baseURL} + return &AdminAPIClient{ + BaseURL: baseURL, + client: http.DefaultClient, + } +} + +func (cl *AdminAPIClient) WithHTTPClient(c *http.Client) *AdminAPIClient { + cl.client = c + return cl } type createUserRequest struct { @@ -46,7 +55,7 @@ func (cl *AdminAPIClient) CreateUser(ctx context.Context, username, password str } req.Header.Set("Content-Type", "application/json") - resp, err := http.DefaultClient.Do(req) + resp, err := cl.client.Do(req) if err != nil { return fmt.Errorf("request failed: %w", err) } diff --git a/modules/redpanda/redpanda.go b/modules/redpanda/redpanda.go index 3a30a24e75..9160524226 100644 --- a/modules/redpanda/redpanda.go +++ b/modules/redpanda/redpanda.go @@ -3,9 +3,12 @@ package redpanda import ( "bytes" "context" + "crypto/tls" + "crypto/x509" _ "embed" "fmt" "math" + "net/http" "os" "path/filepath" "text/template" @@ -193,6 +196,11 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize return nil, fmt.Errorf("failed to wait for Redpanda readiness: %w", err) } + scheme := "http" + if settings.EnableTLS { + scheme += "s" + } + // 9. Create Redpanda Service Accounts if configured to do so. if len(settings.ServiceAccounts) > 0 { adminAPIPort, err := container.MappedPort(ctx, nat.Port(defaultAdminAPIPort)) @@ -200,8 +208,27 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize return nil, fmt.Errorf("failed to get mapped Admin API port: %w", err) } - adminAPIUrl := fmt.Sprintf("http://%v:%d", hostIP, adminAPIPort.Int()) + adminAPIUrl := fmt.Sprintf("%s://%v:%d", scheme, hostIP, adminAPIPort.Int()) adminCl := NewAdminAPIClient(adminAPIUrl) + if settings.EnableTLS { + cert, err := tls.X509KeyPair(settings.cert, settings.key) + if err != nil { + return nil, fmt.Errorf("failed to create admin client with cert: %w", err) + } + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(settings.cert) + adminCl = adminCl.WithHTTPClient(&http.Client{ + Timeout: 5 * time.Second, + Transport: &http.Transport{ + ForceAttemptHTTP2: true, + TLSHandshakeTimeout: 10 * time.Second, + TLSClientConfig: &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + }, + }, + }) + } for username, password := range settings.ServiceAccounts { if err := adminCl.CreateUser(ctx, username, password); err != nil { @@ -210,11 +237,6 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize } } - scheme := "http" - if settings.EnableTLS { - scheme += "s" - } - return &Container{Container: container, urlScheme: scheme}, nil } diff --git a/modules/redpanda/redpanda_test.go b/modules/redpanda/redpanda_test.go index 2a6ed8dde6..668038196d 100644 --- a/modules/redpanda/redpanda_test.go +++ b/modules/redpanda/redpanda_test.go @@ -300,6 +300,50 @@ func TestRedpandaWithTLS(t *testing.T) { require.Error(t, results.FirstErr(), kerr.UnknownTopicOrPartition) } +func TestRedpandaWithTLSAndSASL(t *testing.T) { + cert, err := tls.X509KeyPair(localhostCert, localhostKey) + require.NoError(t, err, "failed to load key pair") + + ctx := context.Background() + + container, err := RunContainer(ctx, + WithTLS(localhostCert, localhostKey), + WithEnableSASL(), + WithEnableKafkaAuthorization(), + WithNewServiceAccount("superuser-1", "test"), + WithSuperusers("superuser-1"), + ) + require.NoError(t, err) + + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + caCertPool := x509.NewCertPool() + caCertPool.AppendCertsFromPEM(localhostCert) + + tlsConfig := &tls.Config{ + Certificates: []tls.Certificate{cert}, + RootCAs: caCertPool, + } + + broker, err := container.KafkaSeedBroker(ctx) + require.NoError(t, err) + + kafkaCl, err := kgo.NewClient( + kgo.SeedBrokers(broker), + kgo.DialTLSConfig(tlsConfig), + kgo.SASL(scram.Auth{ + User: "superuser-1", + Pass: "test", + }.AsSha256Mechanism()), + ) + require.NoError(t, err) + defer kafkaCl.Close() +} + func TestRedpandaListener_Simple(t *testing.T) { ctx := context.Background() From bc67dc34d298393de63839170c61c76dc318d2db Mon Sep 17 00:00:00 2001 From: Andrei Tserakhau Date: Fri, 2 Feb 2024 16:44:35 +0100 Subject: [PATCH 007/115] feat(modules.clickhouse): Add zookeeper for clickhouse clusterization (#1995) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(modules.clickhouse): Add zookeeper for clikchouse clusterization If you would like to perform queries against clusterized ClickHouse you need to start zookeeper near your cluster and pass link to it via `config.xml` API example: ``` zk, err := RunZookeeper(ctx) if err != nil { t.Fatal(err) } container, err := RunContainer(ctx, WithUsername(user), WithPassword(password), WithDatabase(dbname), WithZookeeper(zk), ) if err != nil { t.Fatal(err) } ``` * Remove separate zookeeper container Pass clickhouse config as separate config file Move xml config into go-tmpl * fix comments typo and review notes * fix golangci-lint * docs: document panics * fix: use require.NoError in tests * docs: use require.NoError in docs --------- Co-authored-by: Manuel de la Peña --- docs/features/docker_compose.md | 24 ++--- docs/modules/clickhouse.md | 11 +++ modules/clickhouse/clickhouse.go | 54 +++++++++++ modules/clickhouse/clickhouse_test.go | 101 ++++++++++++++++++++ modules/clickhouse/mounts/zk_config.xml.tpl | 31 ++++++ 5 files changed, 209 insertions(+), 12 deletions(-) create mode 100644 modules/clickhouse/mounts/zk_config.xml.tpl diff --git a/docs/features/docker_compose.md b/docs/features/docker_compose.md index 4014eec9ea..ea2a56bc19 100644 --- a/docs/features/docker_compose.md +++ b/docs/features/docker_compose.md @@ -32,22 +32,22 @@ import ( "context" "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" tc "github.com/testcontainers/testcontainers-go/modules/compose" ) func TestSomething(t *testing.T) { compose, err := tc.NewDockerCompose("testdata/docker-compose.yml") - assert.NoError(t, err, "NewDockerComposeAPI()") + require.NoError(t, err, "NewDockerComposeAPI()") t.Cleanup(func() { - assert.NoError(t, compose.Down(context.Background(), tc.RemoveOrphans(true), tc.RemoveImagesLocal), "compose.Down()") + require.NoError(t, compose.Down(context.Background(), tc.RemoveOrphans(true), tc.RemoveImagesLocal), "compose.Down()") }) ctx, cancel := context.WithCancel(context.Background()) t.Cleanup(cancel) - assert.NoError(t, compose.Up(ctx, tc.Wait(true)), "compose.Up()") + require.NoError(t, compose.Up(ctx, tc.Wait(true)), "compose.Up()") // do some testing here } @@ -62,23 +62,23 @@ import ( "context" "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" tc "github.com/testcontainers/testcontainers-go/modules/compose" ) func TestSomethingElse(t *testing.T) { identifier := tc.StackIdentifier("some_ident") compose, err := tc.NewDockerComposeWith(tc.WithStackFiles("./testdata/docker-compose-simple.yml"), identifier) - assert.NoError(t, err, "NewDockerComposeAPIWith()") + require.NoError(t, err, "NewDockerComposeAPIWith()") t.Cleanup(func() { - assert.NoError(t, compose.Down(context.Background(), tc.RemoveOrphans(true), tc.RemoveImagesLocal), "compose.Down()") + require.NoError(t, compose.Down(context.Background(), tc.RemoveOrphans(true), tc.RemoveImagesLocal), "compose.Down()") }) ctx, cancel := context.WithCancel(context.Background()) t.Cleanup(cancel) - assert.NoError(t, compose.Up(ctx, tc.Wait(true)), "compose.Up()") + require.NoError(t, compose.Up(ctx, tc.Wait(true)), "compose.Up()") // do some testing here } @@ -110,7 +110,7 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" tc "github.com/testcontainers/testcontainers-go/modules/compose" "github.com/testcontainers/testcontainers-go/wait" ) @@ -118,10 +118,10 @@ import ( func TestSomethingWithWaiting(t *testing.T) { identifier := tc.StackIdentifier("some_ident") compose, err := tc.NewDockerComposeWith(tc.WithStackFiles("./testdata/docker-compose-simple.yml"), identifier) - assert.NoError(t, err, "NewDockerComposeAPIWith()") + require.NoError(t, err, "NewDockerComposeAPIWith()") t.Cleanup(func() { - assert.NoError(t, compose.Down(context.Background(), tc.RemoveOrphans(true), tc.RemoveImagesLocal), "compose.Down()") + require.NoError(t, compose.Down(context.Background(), tc.RemoveOrphans(true), tc.RemoveImagesLocal), "compose.Down()") }) ctx, cancel := context.WithCancel(context.Background()) @@ -131,7 +131,7 @@ func TestSomethingWithWaiting(t *testing.T) { WaitForService("nginx", wait.NewHTTPStrategy("/").WithPort("80/tcp").WithStartupTimeout(10*time.Second)). Up(ctx, tc.Wait(true)) - assert.NoError(t, err, "compose.Up()") + require.NoError(t, err, "compose.Up()") // do some testing here } diff --git a/docs/modules/clickhouse.md b/docs/modules/clickhouse.md index 8bf668e688..749ded3bec 100644 --- a/docs/modules/clickhouse.md +++ b/docs/modules/clickhouse.md @@ -73,6 +73,17 @@ initialization before starting the service. [Init script content](../../modules/clickhouse/testdata/init-db.sh) +#### Zookeeper + +Clusterized ClickHouse requires to start Zookeeper and pass link to it via `config.xml`. + + +[Include zookeeper](../../modules/clickhouse/clickhouse_test.go) inside_block:withZookeeper + + +!!!warning + The `WithZookeeper` option will `panic` if it's not possible to create the Zookeeper config file. + #### Custom configuration If you need to set a custom configuration, the module provides the `WithConfigFile` option to pass the path to a custom configuration file in XML format. diff --git a/modules/clickhouse/clickhouse.go b/modules/clickhouse/clickhouse.go index 92c7616235..86ebac1704 100644 --- a/modules/clickhouse/clickhouse.go +++ b/modules/clickhouse/clickhouse.go @@ -1,10 +1,14 @@ package clickhouse import ( + "bytes" "context" + _ "embed" "fmt" + "os" "path/filepath" "strings" + "text/template" "github.com/docker/go-connections/nat" @@ -12,6 +16,9 @@ import ( "github.com/testcontainers/testcontainers-go/wait" ) +//go:embed mounts/zk_config.xml.tpl +var zookeeperConfigTpl string + const ( defaultUser = "default" defaultDatabaseName = "clickhouse" @@ -72,6 +79,53 @@ func (c *ClickHouseContainer) ConnectionString(ctx context.Context, args ...stri return connectionString, nil } +// ZookeeperOptions arguments for zookeeper in clickhouse +type ZookeeperOptions struct { + Host, Port string +} + +// renderZookeeperConfig generate default zookeeper configuration for clickhouse +func renderZookeeperConfig(settings ZookeeperOptions) ([]byte, error) { + tpl, err := template.New("bootstrap.yaml").Parse(zookeeperConfigTpl) + if err != nil { + return nil, fmt.Errorf("failed to parse zookeeper config file template: %w", err) + } + + var bootstrapConfig bytes.Buffer + if err := tpl.Execute(&bootstrapConfig, settings); err != nil { + return nil, fmt.Errorf("failed to render zookeeper bootstrap config template: %w", err) + } + + return bootstrapConfig.Bytes(), nil +} + +// WithZookeeper pass a config to connect clickhouse with zookeeper and make clickhouse as cluster +func WithZookeeper(host, port string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + f, err := os.CreateTemp("", "clickhouse-tc-config-") + if err != nil { + panic(err) + } + + defer f.Close() + + // write data to the temporary file + data, err := renderZookeeperConfig(ZookeeperOptions{Host: host, Port: port}) + if err != nil { + panic(err) + } + if _, err := f.Write(data); err != nil { + panic(err) + } + cf := testcontainers.ContainerFile{ + HostFilePath: f.Name(), + ContainerFilePath: "/etc/clickhouse-server/config.d/zookeeper_config.xml", + FileMode: 0o755, + } + req.Files = append(req.Files, cf) + } +} + // WithInitScripts sets the init scripts to be run when the container starts func WithInitScripts(scripts ...string) testcontainers.CustomizeRequestOption { return func(req *testcontainers.GenericContainerRequest) { diff --git a/modules/clickhouse/clickhouse_test.go b/modules/clickhouse/clickhouse_test.go index c503218abf..075bbf4460 100644 --- a/modules/clickhouse/clickhouse_test.go +++ b/modules/clickhouse/clickhouse_test.go @@ -8,10 +8,12 @@ import ( ch "github.com/ClickHouse/clickhouse-go/v2" "github.com/ClickHouse/clickhouse-go/v2/lib/driver" "github.com/cenkalti/backoff/v4" + "github.com/docker/go-connections/nat" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" ) const ( @@ -219,6 +221,105 @@ func TestClickHouseWithConfigFile(t *testing.T) { } } +func TestClickHouseWithZookeeper(t *testing.T) { + ctx := context.Background() + + // withZookeeper { + zkPort := nat.Port("2181/tcp") + + zkcontainer, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + ExposedPorts: []string{zkPort.Port()}, + Image: "zookeeper:3.7", + WaitingFor: wait.ForListeningPort(zkPort), + }, + Started: true, + }) + if err != nil { + t.Fatal(err) + } + + ipaddr, err := zkcontainer.ContainerIP(ctx) + if err != nil { + t.Fatal(err) + } + + container, err := RunContainer(ctx, + WithUsername(user), + WithPassword(password), + WithDatabase(dbname), + WithZookeeper(ipaddr, zkPort.Port()), + ) + if err != nil { + t.Fatal(err) + } + // } + + // Clean up the container after the test is complete + t.Cleanup(func() { + require.NoError(t, container.Terminate(ctx)) + require.NoError(t, zkcontainer.Terminate(ctx)) + }) + + connectionHost, err := container.ConnectionHost(ctx) + require.NoError(t, err) + + conn, err := ch.Open(&ch.Options{ + Addr: []string{connectionHost}, + Auth: ch.Auth{ + Database: dbname, + Username: user, + Password: password, // --> password is not required + }, + }) + require.NoError(t, err) + assert.NotNil(t, conn) + defer conn.Close() + + // perform assertions + data, err := performReplicatedCRUD(conn) + require.NoError(t, err) + assert.Len(t, data, 1) +} + +func performReplicatedCRUD(conn driver.Conn) ([]Test, error) { + var ( + err error + res []Test + ) + + err = backoff.Retry(func() error { + err = conn.Exec(context.Background(), "CREATE TABLE replicated_test_table (id UInt64) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/mdb.data_transfer_cp_cdc', '{replica}') PRIMARY KEY (id) ORDER BY (id) SETTINGS index_granularity = 8192;") + if err != nil { + return err + } + + err = conn.Exec(context.Background(), "INSERT INTO replicated_test_table (id) VALUES (1);") + if err != nil { + return err + } + + rows, err := conn.Query(context.Background(), "SELECT * FROM replicated_test_table;") + if err != nil { + return err + } + + for rows.Next() { + var r Test + + err := rows.Scan(&r.Id) + if err != nil { + return err + } + + res = append(res, r) + } + return nil + }, backoff.NewExponentialBackOff()) + + return res, err +} + func performCRUD(conn driver.Conn) ([]Test, error) { var ( err error diff --git a/modules/clickhouse/mounts/zk_config.xml.tpl b/modules/clickhouse/mounts/zk_config.xml.tpl new file mode 100644 index 0000000000..7b85493322 --- /dev/null +++ b/modules/clickhouse/mounts/zk_config.xml.tpl @@ -0,0 +1,31 @@ + + + + + {{.Host}} + {{.Port}} + + + + + + + + localhost + 9000 + + + + + + default + shard + replica + + + + /clickhouse/task_queue/ddl + + + /var/lib/clickhouse/format_schemas/ + From 5e6736f20f13109c5adec59ab7271aa074911485 Mon Sep 17 00:00:00 2001 From: gene-redpanda <123959009+gene-redpanda@users.noreply.github.com> Date: Sun, 4 Feb 2024 16:40:40 -0500 Subject: [PATCH 008/115] Add Support for WASM Transforms to Redpanda Module (#2170) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add redpanda wasm transforms * fix: switch to standard comparison * fix: reduce version * chore: run make lint --------- Co-authored-by: Manuel de la Peña --- modules/redpanda/examples_test.go | 1 + modules/redpanda/go.mod | 4 +- modules/redpanda/go.sum | 6 + modules/redpanda/mounts/bootstrap.yaml.tpl | 4 + modules/redpanda/options.go | 11 ++ modules/redpanda/redpanda.go | 31 +++- modules/redpanda/redpanda_test.go | 162 +++++++++++++++++++++ 7 files changed, 216 insertions(+), 3 deletions(-) diff --git a/modules/redpanda/examples_test.go b/modules/redpanda/examples_test.go index e4d2b0a47c..21913f95ff 100644 --- a/modules/redpanda/examples_test.go +++ b/modules/redpanda/examples_test.go @@ -15,6 +15,7 @@ func ExampleRunContainer() { redpandaContainer, err := redpanda.RunContainer(ctx, redpanda.WithEnableSASL(), redpanda.WithEnableKafkaAuthorization(), + redpanda.WithEnableWasmTransform(), redpanda.WithNewServiceAccount("superuser-1", "test"), redpanda.WithNewServiceAccount("superuser-2", "test"), redpanda.WithNewServiceAccount("no-superuser", "test"), diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 5f504c12c8..abfd703af8 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -8,6 +8,7 @@ require ( github.com/testcontainers/testcontainers-go v0.27.0 github.com/twmb/franz-go v1.15.4 github.com/twmb/franz-go/pkg/kadm v1.10.0 + golang.org/x/mod v0.14.0 ) require ( @@ -58,9 +59,8 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index 107aacb7a8..a459120595 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -3,6 +3,8 @@ dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= @@ -137,6 +139,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -168,6 +172,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/redpanda/mounts/bootstrap.yaml.tpl b/modules/redpanda/mounts/bootstrap.yaml.tpl index 78c7053a27..643236bbef 100644 --- a/modules/redpanda/mounts/bootstrap.yaml.tpl +++ b/modules/redpanda/mounts/bootstrap.yaml.tpl @@ -15,6 +15,10 @@ superusers: kafka_enable_authorization: true {{- end }} +{{- if .EnableWasmTransform }} +data_transforms_enabled: true +{{- end }} + {{- if .AutoCreateTopics }} auto_create_topics_enabled: true {{- end }} diff --git a/modules/redpanda/options.go b/modules/redpanda/options.go index 1d4afcf8af..4340be30d8 100644 --- a/modules/redpanda/options.go +++ b/modules/redpanda/options.go @@ -22,6 +22,9 @@ type options struct { // or "http_basic" for HTTP basic authentication. SchemaRegistryAuthenticationMethod string + // EnableWasmTransform is a flag to enable wasm transform. + EnableWasmTransform bool + // ServiceAccounts is a map of username (key) to password (value) of users // that shall be created, so that you can use these to authenticate against // Redpanda (either for the Kafka API or Schema Registry HTTP access). @@ -97,6 +100,14 @@ func WithEnableKafkaAuthorization() Option { } } +// WithEnableWasmTransform enables wasm transform. +// Should not be used with RP versions before 23.3 +func WithEnableWasmTransform() Option { + return func(o *options) { + o.EnableWasmTransform = true + } +} + // WithEnableSchemaRegistryHTTPBasicAuth enables HTTP basic authentication for // Schema Registry. func WithEnableSchemaRegistryHTTPBasicAuth() Option { diff --git a/modules/redpanda/redpanda.go b/modules/redpanda/redpanda.go index 9160524226..6213809d4b 100644 --- a/modules/redpanda/redpanda.go +++ b/modules/redpanda/redpanda.go @@ -11,10 +11,12 @@ import ( "net/http" "os" "path/filepath" + "strings" "text/template" "time" "github.com/docker/go-connections/nat" + "golang.org/x/mod/semver" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/wait" @@ -62,7 +64,7 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize // Some (e.g. Image) may be overridden by providing an option argument to this function. req := testcontainers.GenericContainerRequest{ ContainerRequest: testcontainers.ContainerRequest{ - Image: "docker.redpanda.com/redpandadata/redpanda:v23.1.7", + Image: "docker.redpanda.com/redpandadata/redpanda:v23.3.3", User: "root:root", // Files: Will be added later after we've rendered our YAML templates. ExposedPorts: []string{ @@ -92,6 +94,11 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize opt.Customize(&req) } + // 2.1. If the image is not at least v23.3, disable wasm transform + if !isAtLeastVersion(req.ContainerRequest.Image, "23.3") { + settings.EnableWasmTransform = false + } + // 3. Create temporary entrypoint file. We need a custom entrypoint that waits // until the actual Redpanda node config is mounted. Once the redpanda config is // mounted we will call the original entrypoint with the same parameters. @@ -267,6 +274,7 @@ func renderBootstrapConfig(settings options) ([]byte, error) { Superusers: settings.Superusers, KafkaAPIEnableAuthorization: settings.KafkaEnableAuthorization, AutoCreateTopics: settings.AutoCreateTopics, + EnableWasmTransform: settings.EnableWasmTransform, } tpl, err := template.New("bootstrap.yaml").Parse(bootstrapConfigTpl) @@ -340,6 +348,7 @@ type redpandaBootstrapConfigTplParams struct { Superusers []string KafkaAPIEnableAuthorization bool AutoCreateTopics bool + EnableWasmTransform bool } type redpandaConfigTplParams struct { @@ -366,3 +375,23 @@ type listener struct { Port int AuthenticationMethod string } + +// isAtLeastVersion returns true if the base image (without tag) is in a version or above +func isAtLeastVersion(image, major string) bool { + parts := strings.Split(image, ":") + version := parts[len(parts)-1] + + if version == "latest" { + return true + } + + if !strings.HasPrefix(version, "v") { + version = fmt.Sprintf("v%s", version) + } + + if semver.IsValid(version) { + return semver.Compare(version, fmt.Sprintf("v%s", major)) >= 0 // version >= v8.x + } + + return false +} diff --git a/modules/redpanda/redpanda_test.go b/modules/redpanda/redpanda_test.go index 668038196d..0a28940779 100644 --- a/modules/redpanda/redpanda_test.go +++ b/modules/redpanda/redpanda_test.go @@ -85,6 +85,119 @@ func TestRedpandaWithAuthentication(t *testing.T) { container, err := RunContainer(ctx, WithEnableSASL(), WithEnableKafkaAuthorization(), + WithEnableWasmTransform(), + WithNewServiceAccount("superuser-1", "test"), + WithNewServiceAccount("superuser-2", "test"), + WithNewServiceAccount("no-superuser", "test"), + WithSuperusers("superuser-1", "superuser-2"), + WithEnableSchemaRegistryHTTPBasicAuth(), + ) + require.NoError(t, err) + // } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + // kafkaSeedBroker { + seedBroker, err := container.KafkaSeedBroker(ctx) + // } + require.NoError(t, err) + + // Test successful authentication & authorization with all created superusers + serviceAccounts := map[string]string{ + "superuser-1": "test", + "superuser-2": "test", + } + + for user, password := range serviceAccounts { + kafkaCl, err := kgo.NewClient( + kgo.SeedBrokers(seedBroker), + kgo.SASL(scram.Auth{ + User: user, + Pass: password, + }.AsSha256Mechanism()), + ) + require.NoError(t, err) + + kafkaAdmCl := kadm.NewClient(kafkaCl) + _, err = kafkaAdmCl.CreateTopic(ctx, 1, 1, nil, fmt.Sprintf("test-%v", user)) + require.NoError(t, err) + kafkaCl.Close() + } + + // Test successful authentication, but failed authorization with a non-superuser account + { + kafkaCl, err := kgo.NewClient( + kgo.SeedBrokers(seedBroker), + kgo.SASL(scram.Auth{ + User: "no-superuser", + Pass: "test", + }.AsSha256Mechanism()), + ) + require.NoError(t, err) + + kafkaAdmCl := kadm.NewClient(kafkaCl) + _, err = kafkaAdmCl.CreateTopic(ctx, 1, 1, nil, "test-2") + require.Error(t, err) + require.ErrorContains(t, err, "TOPIC_AUTHORIZATION_FAILED") + kafkaCl.Close() + } + + // Test failed authentication + { + kafkaCl, err := kgo.NewClient( + kgo.SeedBrokers(seedBroker), + kgo.SASL(scram.Auth{ + User: "wrong", + Pass: "wrong", + }.AsSha256Mechanism()), + ) + require.NoError(t, err) + + kafkaAdmCl := kadm.NewClient(kafkaCl) + _, err = kafkaAdmCl.Metadata(ctx) + require.Error(t, err) + require.ErrorContains(t, err, "SASL_AUTHENTICATION_FAILED") + } + + // Test Schema Registry API + httpCl := &http.Client{Timeout: 5 * time.Second} + // schemaRegistryAddress { + schemaRegistryURL, err := container.SchemaRegistryAddress(ctx) + // } + require.NoError(t, err) + + // Failed authentication + req, err := http.NewRequestWithContext(ctx, http.MethodGet, fmt.Sprintf("%s/subjects", schemaRegistryURL), nil) + require.NoError(t, err) + resp, err := httpCl.Do(req) + require.NoError(t, err) + assert.Equal(t, http.StatusUnauthorized, resp.StatusCode) + resp.Body.Close() + + // Successful authentication + for user, password := range serviceAccounts { + req.SetBasicAuth(user, password) + resp, err = httpCl.Do(req) + require.NoError(t, err) + assert.Equal(t, http.StatusOK, resp.StatusCode) + resp.Body.Close() + } +} + +func TestRedpandaWithOldVersionAndWasm(t *testing.T) { + ctx := context.Background() + // redpandaCreateContainer { + // this would fail to start if we weren't ignoring wasm transforms for older versions + container, err := RunContainer(ctx, + testcontainers.WithImage("redpandadata/redpanda:v23.2.18"), + WithEnableSASL(), + WithEnableKafkaAuthorization(), + WithEnableWasmTransform(), WithNewServiceAccount("superuser-1", "test"), WithNewServiceAccount("superuser-2", "test"), WithNewServiceAccount("no-superuser", "test"), @@ -512,3 +625,52 @@ D4ZNvyXf/6E27Ibu6v2p/vs= -----END TESTING KEY-----`)) func testingKey(s string) string { return strings.ReplaceAll(s, "TESTING KEY", "PRIVATE KEY") } + +func Test_isAtLeastVersion(t *testing.T) { + type args struct { + image string + major string + } + tests := []struct { + name string + args args + want bool + }{ + { + name: "v21.5.6", + args: args{ + image: "redpandadata/redpanda:v21.5.6", + major: "23.3", + }, + want: false, + }, + { + name: "v23.3.3", + args: args{ + image: "redpandadata/redpanda:v23.3.3", + major: "23.3", + }, + want: true, + }, + { + name: "v23.3.3-rc1", + args: args{ + image: "redpandadata/redpanda:v23.3.3-rc1", + major: "23.3", + }, + want: true, + }, + { + name: "v21.3.3-rc1", + args: args{ + image: "redpandadata/redpanda:v21.3.3-rc1", + major: "23.3", + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert.Equalf(t, tt.want, isAtLeastVersion(tt.args.image, tt.args.major), "isAtLeastVersion(%v, %v)", tt.args.image, tt.args.major) + }) + } +} From c38961e36fc258b69257a774f10faa1edb7b4e3a Mon Sep 17 00:00:00 2001 From: Matthieu MOREL Date: Sun, 4 Feb 2024 22:48:27 +0100 Subject: [PATCH 009/115] fix: go doc reference broken image (#2195) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 71ad93ef9e..cf7e0fc2f9 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ **Documentation** -[![GoDoc Reference](https://camo.githubusercontent.com/8609cfcb531fa0f5598a3d4353596fae9336cce3/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f79616e6777656e6d61692f686f772d746f2d6164642d62616467652d696e2d6769746875622d726561646d653f7374617475732e737667)](https://pkg.go.dev/github.com/testcontainers/testcontainers-go) +[![GoDoc Reference](https://pkg.go.dev/badge/github.com/testcontainers/testcontainers-go.svg)](https://pkg.go.dev/github.com/testcontainers/testcontainers-go) **Social** From 3562ef7c62ee1ad67d68e776eb78b1f371311665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 5 Feb 2024 15:01:12 +0100 Subject: [PATCH 010/115] chore(deps): bump github.com/docker/docker from 25.0.1+incompatible to 25.0.2+incompatible (#2196) * chore(deps): bump github.com/docker/docker in /modules/k6 Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.1+incompatible to 25.0.2+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.1...v25.0.2) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.1+incompatible to 25.0.2+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.1...v25.0.2) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/k3s Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.1+incompatible to 25.0.2+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.1...v25.0.2) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/pulsar Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.1+incompatible to 25.0.2+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.1...v25.0.2) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore: run mod tidy in modules --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/consul/go.mod | 2 +- examples/consul/go.sum | 4 ++-- examples/nginx/go.mod | 2 +- examples/nginx/go.sum | 4 ++-- examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 4 ++-- modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 4 ++-- modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 4 ++-- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- modules/compose/go.mod | 2 +- modules/compose/go.sum | 4 ++-- modules/couchbase/go.mod | 2 +- modules/couchbase/go.sum | 4 ++-- modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 4 ++-- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- modules/inbucket/go.mod | 2 +- modules/inbucket/go.sum | 4 ++-- modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 4 ++-- modules/k6/go.mod | 2 +- modules/k6/go.sum | 4 ++-- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 4 ++-- modules/mariadb/go.mod | 2 +- modules/mariadb/go.sum | 4 ++-- modules/minio/go.mod | 2 +- modules/minio/go.sum | 4 ++-- modules/mockserver/go.mod | 2 +- modules/mockserver/go.sum | 4 ++-- modules/mongodb/go.mod | 2 +- modules/mongodb/go.sum | 4 ++-- modules/mssql/go.mod | 2 +- modules/mssql/go.sum | 4 ++-- modules/mysql/go.mod | 2 +- modules/mysql/go.sum | 4 ++-- modules/nats/go.mod | 2 +- modules/nats/go.sum | 4 ++-- modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 4 ++-- modules/openldap/go.mod | 2 +- modules/openldap/go.sum | 4 ++-- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 4 ++-- modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 4 ++-- modules/rabbitmq/go.mod | 2 +- modules/rabbitmq/go.sum | 4 ++-- modules/redis/go.mod | 2 +- modules/redis/go.sum | 4 ++-- modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 10 ++-------- modules/vault/go.mod | 2 +- modules/vault/go.sum | 4 ++-- 64 files changed, 96 insertions(+), 102 deletions(-) diff --git a/examples/consul/go.mod b/examples/consul/go.mod index 86189f6e4e..a177fe6244 100644 --- a/examples/consul/go.mod +++ b/examples/consul/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/fatih/color v1.14.1 // indirect diff --git a/examples/consul/go.sum b/examples/consul/go.sum index 5b6faa2f5a..0cf02246a2 100644 --- a/examples/consul/go.sum +++ b/examples/consul/go.sum @@ -39,8 +39,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 379b09e368..985bea4009 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -16,7 +16,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index 3393da7a3f..5026d53dbc 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index fa9e7fd53f..14558bc876 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -21,7 +21,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index 9a70611972..d7f39b21ed 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -27,8 +27,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/go.mod b/go.mod index 1e7247b60c..af1bd02de5 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/containerd/containerd v1.7.12 github.com/cpuguy83/dockercfg v0.3.1 - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 github.com/docker/go-units v0.5.0 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 7384916683..b6e23d3197 100644 --- a/go.sum +++ b/go.sum @@ -22,8 +22,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 6f39e61c05..0cf10e3fbf 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index f13fdb1d24..80442cd2ab 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index c84fba6054..8185e610da 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index e78c42ae3e..fb816f358b 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 5187aef949..d245446c49 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-faster/city v1.0.1 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index 4bb09ac014..a476eeb72e 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 7779e744c6..5f59c47288 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 4e5af29b2c..92559dfe21 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -22,8 +22,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index 048ec11e1b..04542ac1f3 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -10,7 +10,7 @@ require ( github.com/compose-spec/compose-go/v2 v2.0.0-rc.2 github.com/docker/cli v25.0.1+incompatible github.com/docker/compose/v2 v2.24.3 - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 diff --git a/modules/compose/go.sum b/modules/compose/go.sum index 6fa6686503..5c6f5e4322 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -131,8 +131,8 @@ github.com/docker/compose/v2 v2.24.3/go.mod h1:D8Nv9+juzD7xiMyyHJ7G2J/MOYiGBmb9S github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 6b9535ca2b..5804302c72 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -23,7 +23,7 @@ require ( github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index f00d822319..3b7bfaa29e 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -39,8 +39,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 77150c7fb5..55a7eeb95e 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/elastic/elastic-transport-go/v8 v8.3.0 // indirect diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index 854a084bb2..c9762b6a48 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 5fa6d7a61b..bfc300871d 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -37,7 +37,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/envoyproxy/go-control-plane v0.11.1 // indirect github.com/envoyproxy/protoc-gen-validate v1.0.2 // indirect diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index cdcf85aade..dd19dcee54 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -67,8 +67,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 96ba5b05d0..47de310026 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index 334debdbd2..dabf2ce8ed 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index 5b3c0f8d6a..c1fa18d823 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/k3s go 1.20 require ( - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.27.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index bc6aaf401d..73c7987e14 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -22,8 +22,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 6a0a1ea5ac..c78526c823 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/k6 go 1.20 require ( - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/testcontainers/testcontainers-go v0.27.0 ) diff --git a/modules/k6/go.sum b/modules/k6/go.sum index 3393da7a3f..5026d53dbc 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index d4b32c0abd..9c0b79ea4a 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index 0605827f52..8f41374ff5 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 0ae426e0dc..08ccd695b2 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.26.3 github.com/aws/aws-sdk-go-v2/credentials v1.16.14 github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index 4dca7b9293..f9ffa77e88 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -59,8 +59,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index 520d55fcbd..2bf48e19a3 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index 811b2407b3..6bfe43fb8c 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index b909299e9c..bef817a8d7 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect diff --git a/modules/minio/go.sum b/modules/minio/go.sum index 9212103a45..c41c34fe71 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index e14045aa2d..61eb09cd43 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index 76d9bcfb1d..4531edd931 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index b7448ed542..6ba600da5c 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 9642443dc3..82b9a49604 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index c9e0847fe0..d8c962d13a 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index 1c52230e8c..9e0c146700 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index a8873a1697..700536008d 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index 811b2407b3..6bfe43fb8c 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 82ec20dead..b32bf15f13 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/nats/go.sum b/modules/nats/go.sum index 15b56c4764..a72d35299d 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index fed2efc29a..f36ddf50b5 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 32a9646141..2547a74a6e 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index 643446017a..ad7d5e90f0 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index f50ed288c7..2216c16dde 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 02d75b7370..09ff7674ba 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -21,7 +21,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index 39db1fec97..ebe3f14b0e 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -22,8 +22,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 1377fcad27..5569b4915a 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/apache/pulsar-client-go v0.10.0 - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index cc95ffb316..fbf6da3185 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -96,8 +96,8 @@ github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4w github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index bca3871389..d5355ecd5d 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index fc34907519..da0177e4d1 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index cb470a4ede..072d482246 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -25,7 +25,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/redis/go.sum b/modules/redis/go.sum index b036ad9dfd..b42aaaf331 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -25,8 +25,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index abfd703af8..dbb03f42aa 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.1+incompatible // indirect + github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index a459120595..0038ebc28c 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -3,8 +3,6 @@ dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= -github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= @@ -23,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -137,8 +135,6 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -170,8 +166,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index e543ea5570..5a76aea19f 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/vault go 1.20 require ( - github.com/docker/docker v25.0.1+incompatible + github.com/docker/docker v25.0.2+incompatible github.com/hashicorp/vault-client-go v0.3.3 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 diff --git a/modules/vault/go.sum b/modules/vault/go.sum index ef6fe33edb..7f652dc043 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -21,8 +21,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.1+incompatible h1:k5TYd5rIVQRSqcTwCID+cyVA0yRg86+Pcrz1ls0/frA= -github.com/docker/docker v25.0.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= From 0e16af2f0301e9fbe150eba192796c7153647655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 5 Feb 2024 19:00:00 +0100 Subject: [PATCH 011/115] chore(deps): bump cloud.google.com/go/spanner from 1.55.0 to 1.56.0 in /modules/gcloud, cloud.google.com/go/pubsub from 1.35.0 to 1.36.1 in /modules/gcloud, cloud.google.com/go/bigquery from 1.57.1 to 1.58.0 in /modules/gcloud (#2197) * chore(deps): bump cloud.google.com/go/bigquery in /modules/gcloud Bumps [cloud.google.com/go/bigquery](https://github.com/googleapis/google-cloud-go) from 1.57.1 to 1.58.0. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.57.1...bigquery/v1.58.0) --- updated-dependencies: - dependency-name: cloud.google.com/go/bigquery dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump cloud.google.com/go/pubsub in /modules/gcloud Bumps [cloud.google.com/go/pubsub](https://github.com/googleapis/google-cloud-go) from 1.35.0 to 1.36.1. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/pubsub/v1.35.0...pubsub/v1.36.1) --- updated-dependencies: - dependency-name: cloud.google.com/go/pubsub dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump cloud.google.com/go/spanner in /modules/gcloud Bumps [cloud.google.com/go/spanner](https://github.com/googleapis/google-cloud-go) from 1.55.0 to 1.56.0. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/spanner/v1.55.0...spanner/v1.56.0) --- updated-dependencies: - dependency-name: cloud.google.com/go/spanner dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/gcloud/go.mod | 20 +++++++++++++------- modules/gcloud/go.sum | 37 ++++++++++++++++++++++--------------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index bfc300871d..6e5a145b5c 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -3,15 +3,15 @@ module github.com/testcontainers/testcontainers-go/modules/gcloud go 1.20 require ( - cloud.google.com/go/bigquery v1.57.1 + cloud.google.com/go/bigquery v1.58.0 cloud.google.com/go/bigtable v1.21.0 cloud.google.com/go/datastore v1.15.0 cloud.google.com/go/firestore v1.14.0 - cloud.google.com/go/pubsub v1.35.0 - cloud.google.com/go/spanner v1.55.0 + cloud.google.com/go/pubsub v1.36.1 + cloud.google.com/go/spanner v1.56.0 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.27.0 - google.golang.org/api v0.159.0 + google.golang.org/api v0.160.0 google.golang.org/grpc v1.61.0 ) @@ -26,7 +26,7 @@ require ( github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/andybalholm/brotli v1.0.4 // indirect - github.com/apache/arrow/go/v12 v12.0.0 // indirect + github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect @@ -36,6 +36,7 @@ require ( github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect @@ -59,6 +60,7 @@ require ( github.com/klauspost/asmfmt v1.3.2 // indirect github.com/klauspost/compress v1.16.0 // indirect github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect @@ -74,10 +76,13 @@ require ( github.com/opencontainers/image-spec v1.1.0-rc5 // indirect github.com/pierrec/lz4/v4 v4.1.15 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect + github.com/stretchr/objx v0.5.0 // indirect + github.com/stretchr/testify v1.8.4 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect @@ -101,9 +106,10 @@ require ( golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240122161410-6c6643bf1457 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240122161410-6c6643bf1457 // indirect google.golang.org/protobuf v1.32.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index dd19dcee54..0bb91074bd 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -1,8 +1,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= -cloud.google.com/go/bigquery v1.57.1 h1:FiULdbbzUxWD0Y4ZGPSVCDLvqRSyCIO6zKV7E2nf5uA= -cloud.google.com/go/bigquery v1.57.1/go.mod h1:iYzC0tGVWt1jqSzBHqCr3lrRn0u13E8e+AqowBsDgug= +cloud.google.com/go/bigquery v1.58.0 h1:drSd9RcPVLJP2iFMimvOB9SCSIrcl+9HD4II03Oy7A0= +cloud.google.com/go/bigquery v1.58.0/go.mod h1:0eh4mWNY0KrBTjUzLjoYImapGORq9gEPT7MWjCy9lik= cloud.google.com/go/bigtable v1.21.0 h1:BFN4jhkA9ULYYV2Ug7AeOtetVLnN2jKuIq5TcRc5C38= cloud.google.com/go/bigtable v1.21.0/go.mod h1:V0sYNRtk0dgAKjyRr/MyBpHpSXqh+9P39euf820EZ74= cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= @@ -19,10 +19,10 @@ cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXE cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM= cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgGS0GVg= cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= -cloud.google.com/go/pubsub v1.35.0 h1:vXSdguviyy1OZ78UZwlceZoveapB77t7v6xR74GiFgk= -cloud.google.com/go/pubsub v1.35.0/go.mod h1:qQvGW4ANjuYcOpTMTy5+u6HBIoJF00cPfQ/ubMcc/D8= -cloud.google.com/go/spanner v1.55.0 h1:YF/A/k73EMYCjp8wcJTpkE+TcrWutHRlsCtlRSfWS64= -cloud.google.com/go/spanner v1.55.0/go.mod h1:HXEznMUVhC+PC+HDyo9YFG2Ajj5BQDkcbqB9Z2Ffxi0= +cloud.google.com/go/pubsub v1.36.1 h1:dfEPuGCHGbWUhaMCTHUFjfroILEkx55iUmKBZTP5f+Y= +cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= +cloud.google.com/go/spanner v1.56.0 h1:o/Cv7/zZ1WgRXVCd5g3Nc23ZI39p/1pWFqFwvg6Wcu8= +cloud.google.com/go/spanner v1.56.0/go.mod h1:DndqtUKQAt3VLuV2Le+9Y3WTnq5cNKrnLb/Piqcj+h0= cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= @@ -37,8 +37,8 @@ github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7 github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/apache/arrow/go/v12 v12.0.0 h1:xtZE63VWl7qLdB0JObIXvvhGjoVNrQ9ciIHG2OK5cmc= -github.com/apache/arrow/go/v12 v12.0.0/go.mod h1:d+tV/eHZZ7Dz7RPrFKtPK02tpr+c9/PEd/zm8mDS9Vg= +github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/DiJbg= +github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= @@ -61,6 +61,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -151,6 +152,9 @@ github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -187,6 +191,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -197,6 +202,7 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -217,7 +223,7 @@ github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= -go.einride.tech/aip v0.65.0 h1:aqKEV1g9diXcR6DAxBVZoJn6ho8SuC+TOZFXzuu7kLU= +go.einride.tech/aip v0.66.0 h1:XfV+NQX6L7EOYK11yoHHFtndeaWh3KbD9/cN/6iWEt8= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= @@ -320,8 +326,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= -google.golang.org/api v0.159.0 h1:fVTj+7HHiUYz4JEZCHHoRIeQX7h5FMzrA2RF/DzDdbs= -google.golang.org/api v0.159.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9ZHyw= +google.golang.org/api v0.160.0 h1:SEspjXHVqE1m5a1fRy8JFB+5jSu+V0GEDKDghF3ttO4= +google.golang.org/api v0.160.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9ZHyw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= @@ -331,10 +337,10 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac h1:ZL/Teoy/ZGnzyrqK/Optxxp2pmVh+fmJ97slxSRyzUg= google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k= -google.golang.org/genproto/googleapis/api v0.0.0-20240122161410-6c6643bf1457 h1:KHBtwE+eQc3+NxpjmRFlQ3pJQ2FNnhhgB9xOV8kyBuU= -google.golang.org/genproto/googleapis/api v0.0.0-20240122161410-6c6643bf1457/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac h1:nUQEQmH/csSvFECKYRv6HWEyypysidKl2I6Qpsglq/0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= +google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe h1:0poefMBYvYbs7g5UkjS6HcxBPaTRAmznle9jnxYoAI8= +google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240122161410-6c6643bf1457 h1:6Bi3wdn5Ed9baJn7P0gOhjwA98wOr6uSPjKagPHOVsE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240122161410-6c6643bf1457/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -356,6 +362,7 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From f012d3486861b7ad3b920c0778b2b265883bc875 Mon Sep 17 00:00:00 2001 From: Stephan Renatus Date: Tue, 6 Feb 2024 12:30:03 +0100 Subject: [PATCH 012/115] redpanda/test: add admin client call (#2200) Signed-off-by: Stephan Renatus --- modules/redpanda/redpanda_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/redpanda/redpanda_test.go b/modules/redpanda/redpanda_test.go index 0a28940779..aeea2f7f63 100644 --- a/modules/redpanda/redpanda_test.go +++ b/modules/redpanda/redpanda_test.go @@ -455,6 +455,9 @@ func TestRedpandaWithTLSAndSASL(t *testing.T) { ) require.NoError(t, err) defer kafkaCl.Close() + + _, err = kadm.NewClient(kafkaCl).ListTopics(ctx) + require.NoError(t, err) } func TestRedpandaListener_Simple(t *testing.T) { From 54b1d8aa22fd0169939ecc7957db2313fc1f13db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 6 Feb 2024 17:35:28 +0100 Subject: [PATCH 013/115] fix: apply volume options only to volumes (#2201) * fix: apply volume options only to volumes * chore: rename test case * fix: update tests --- docker_mounts.go | 14 +++++++++++--- mounts_test.go | 24 +++++++++++------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/docker_mounts.go b/docker_mounts.go index 2efdb0c7e2..4906a90692 100644 --- a/docker_mounts.go +++ b/docker_mounts.go @@ -101,9 +101,6 @@ func mapToDockerMounts(containerMounts ContainerMounts) []mount.Mount { Source: m.Source.Source(), ReadOnly: m.ReadOnly, Target: m.Target.Target(), - VolumeOptions: &mount.VolumeOptions{ - Labels: GenericLabels(), - }, } switch typedMounter := m.Source.(type) { @@ -117,6 +114,17 @@ func mapToDockerMounts(containerMounts ContainerMounts) []mount.Mount { // The provided source type has no custom options } + if mountType == mount.TypeVolume { + if containerMount.VolumeOptions == nil { + containerMount.VolumeOptions = &mount.VolumeOptions{ + Labels: make(map[string]string), + } + } + for k, v := range GenericLabels() { + containerMount.VolumeOptions.Labels[k] = v + } + } + mounts = append(mounts, containerMount) } diff --git a/mounts_test.go b/mounts_test.go index a89e6355c0..6ec994c635 100644 --- a/mounts_test.go +++ b/mounts_test.go @@ -45,6 +45,9 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { Labels: GenericLabels(), } + expectedLabels := GenericLabels() + expectedLabels["hello"] = "world" + t.Parallel() tests := []struct { name string @@ -104,9 +107,7 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { Target: "/data", VolumeOptions: &mount.VolumeOptions{ NoCopy: true, - Labels: map[string]string{ - "hello": "world", - }, + Labels: expectedLabels, }, }, }, @@ -117,26 +118,24 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { mounts: ContainerMounts{{Source: GenericTmpfsMountSource{}, Target: "/data"}}, want: []mount.Mount{ { - Type: mount.TypeTmpfs, - Target: "/data", - VolumeOptions: volumeOptions, + Type: mount.TypeTmpfs, + Target: "/data", }, }, }, { - name: "Single volume mount - read-only", + name: "Single tmpfs mount - read-only", mounts: ContainerMounts{{Source: GenericTmpfsMountSource{}, Target: "/data", ReadOnly: true}}, want: []mount.Mount{ { - Type: mount.TypeTmpfs, - Target: "/data", - ReadOnly: true, - VolumeOptions: volumeOptions, + Type: mount.TypeTmpfs, + Target: "/data", + ReadOnly: true, }, }, }, { - name: "Single volume mount - with options", + name: "Single tmpfs mount - with options", mounts: ContainerMounts{ { Source: DockerTmpfsMountSource{ @@ -156,7 +155,6 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { SizeBytes: 50 * 1024 * 1024, Mode: 0o644, }, - VolumeOptions: volumeOptions, }, }, }, From 48fc22882cb0e99a93807343c779726fffae6800 Mon Sep 17 00:00:00 2001 From: Guillaume St-Pierre Date: Wed, 14 Feb 2024 13:05:39 -0500 Subject: [PATCH 014/115] feat (postgres): support for creating and restoring Snapshots (#2199) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add tips and examples to the documentation I recently went through building a complex testing setup for an entire webservice using testcontainers-go, which taught me some important tips and tricks about the library. I have added these in the documentation wherever I thought they could be useful. I also added a new example for using the postgres module and making each test use a clean database. It's a pretty useful tool, and it's available as an example in the Java version, so I've added it here as well. * Added the example to the sidebar * Move everything to the module * Remove testing stuff I added to debug the integration * Apply review feedback and rename reset to restore since it makes more sense in context * Update modules/postgres/postgres.go Co-authored-by: Manuel de la Peña * Add test examples for file copy and update the docs * Add the wait for hello file to help understanding the example * chore: use pinned version of the image * chore: simplify waiting for an expected log * chore: check for errors in tests * docs: use dot * docs: simplify tabs * chore: simplify variables and paths * docs: remove misleading comment * docs: move customise requests to each module * docs: swap places * chore: less verbose * chore: use testify assertions * Revert "chore: use testify assertions" This reverts commit b7d6e902fcf201cb84a2b125a3c416908ce6bb27. --------- Co-authored-by: Manuel de la Peña Co-authored-by: Manuel de la Peña --- docker_files_test.go | 213 ++++++++++++++++++++ docs/features/common_functional_options.md | 20 ++ docs/features/files_and_mounts.md | 76 ++----- docs/features/override_container_command.md | 7 + docs/features/wait/http.md | 3 + docs/modules/postgres.md | 11 + modules/postgres/go.mod | 5 + modules/postgres/go.sum | 13 +- modules/postgres/postgres.go | 92 ++++++++- modules/postgres/postgres_test.go | 161 ++++++++++++--- network/network_test.go | 2 + testdata/waitForHello.sh | 10 + 12 files changed, 528 insertions(+), 85 deletions(-) create mode 100644 docker_files_test.go create mode 100644 testdata/waitForHello.sh diff --git a/docker_files_test.go b/docker_files_test.go new file mode 100644 index 0000000000..065f87443f --- /dev/null +++ b/docker_files_test.go @@ -0,0 +1,213 @@ +package testcontainers + +import ( + "context" + "path/filepath" + "testing" + "time" + + "github.com/stretchr/testify/require" + + "github.com/testcontainers/testcontainers-go/wait" +) + +func TestCopyFileToContainer(t *testing.T) { + ctx, cnl := context.WithTimeout(context.Background(), 30*time.Second) + defer cnl() + + // copyFileOnCreate { + absPath, err := filepath.Abs(filepath.Join(".", "testdata", "hello.sh")) + if err != nil { + t.Fatal(err) + } + + container, err := GenericContainer(ctx, GenericContainerRequest{ + ContainerRequest: ContainerRequest{ + Image: "docker.io/bash", + Files: []ContainerFile{ + { + HostFilePath: absPath, + ContainerFilePath: "/hello.sh", + FileMode: 0o700, + }, + }, + Cmd: []string{"bash", "/hello.sh"}, + WaitingFor: wait.ForLog("done"), + }, + Started: true, + }) + // } + + require.NoError(t, err) + require.NoError(t, container.Terminate(ctx)) +} + +func TestCopyFileToRunningContainer(t *testing.T) { + ctx, cnl := context.WithTimeout(context.Background(), 30*time.Second) + defer cnl() + + // Not using the assertations here to avoid leaking the library into the example + // copyFileAfterCreate { + waitForPath, err := filepath.Abs(filepath.Join(".", "testdata", "waitForHello.sh")) + if err != nil { + t.Fatal(err) + } + helloPath, err := filepath.Abs(filepath.Join(".", "testdata", "hello.sh")) + if err != nil { + t.Fatal(err) + } + + container, err := GenericContainer(ctx, GenericContainerRequest{ + ContainerRequest: ContainerRequest{ + Image: "docker.io/bash:5.2.26", + Files: []ContainerFile{ + { + HostFilePath: waitForPath, + ContainerFilePath: "/waitForHello.sh", + FileMode: 0o700, + }, + }, + Cmd: []string{"bash", "/waitForHello.sh"}, + }, + Started: true, + }) + if err != nil { + t.Fatal(err) + } + + err = container.CopyFileToContainer(ctx, helloPath, "/scripts/hello.sh", 0o700) + // } + + require.NoError(t, err) + + // Give some time to the wait script to catch the hello script being created + err = wait.ForLog("done").WithStartupTimeout(200*time.Millisecond).WaitUntilReady(ctx, container) + require.NoError(t, err) + + require.NoError(t, container.Terminate(ctx)) +} + +func TestCopyDirectoryToContainer(t *testing.T) { + ctx, cnl := context.WithTimeout(context.Background(), 30*time.Second) + defer cnl() + + // Not using the assertations here to avoid leaking the library into the example + // copyDirectoryToContainer { + dataDirectory, err := filepath.Abs(filepath.Join(".", "testdata")) + if err != nil { + t.Fatal(err) + } + + container, err := GenericContainer(ctx, GenericContainerRequest{ + ContainerRequest: ContainerRequest{ + Image: "docker.io/bash", + Files: []ContainerFile{ + { + HostFilePath: dataDirectory, + // ContainerFile cannot create the parent directory, so we copy the scripts + // to the root of the container instead. Make sure to create the container directory + // before you copy a host directory on create. + ContainerFilePath: "/", + FileMode: 0o700, + }, + }, + Cmd: []string{"bash", "/testdata/hello.sh"}, + WaitingFor: wait.ForLog("done"), + }, + Started: true, + }) + // } + + require.NoError(t, err) + require.NoError(t, container.Terminate(ctx)) +} + +func TestCopyDirectoryToRunningContainerAsFile(t *testing.T) { + ctx, cnl := context.WithTimeout(context.Background(), 30*time.Second) + defer cnl() + + // copyDirectoryToRunningContainerAsFile { + dataDirectory, err := filepath.Abs(filepath.Join(".", "testdata")) + if err != nil { + t.Fatal(err) + } + waitForPath, err := filepath.Abs(filepath.Join(dataDirectory, "waitForHello.sh")) + if err != nil { + t.Fatal(err) + } + + container, err := GenericContainer(ctx, GenericContainerRequest{ + ContainerRequest: ContainerRequest{ + Image: "docker.io/bash", + Files: []ContainerFile{ + { + HostFilePath: waitForPath, + ContainerFilePath: "/waitForHello.sh", + FileMode: 0o700, + }, + }, + Cmd: []string{"bash", "/waitForHello.sh"}, + }, + Started: true, + }) + require.NoError(t, err) + + // as the container is started, we can create the directory first + _, _, err = container.Exec(ctx, []string{"mkdir", "-p", "/scripts"}) + require.NoError(t, err) + + // because the container path is a directory, it will use the copy dir method as fallback + err = container.CopyFileToContainer(ctx, dataDirectory, "/scripts", 0o700) + if err != nil { + t.Fatal(err) + } + // } + + require.NoError(t, err) + require.NoError(t, container.Terminate(ctx)) +} + +func TestCopyDirectoryToRunningContainerAsDir(t *testing.T) { + ctx, cnl := context.WithTimeout(context.Background(), 30*time.Second) + defer cnl() + + // Not using the assertations here to avoid leaking the library into the example + // copyDirectoryToRunningContainerAsDir { + waitForPath, err := filepath.Abs(filepath.Join(".", "testdata", "waitForHello.sh")) + if err != nil { + t.Fatal(err) + } + dataDirectory, err := filepath.Abs(filepath.Join(".", "testdata")) + if err != nil { + t.Fatal(err) + } + + container, err := GenericContainer(ctx, GenericContainerRequest{ + ContainerRequest: ContainerRequest{ + Image: "docker.io/bash", + Files: []ContainerFile{ + { + HostFilePath: waitForPath, + ContainerFilePath: "/waitForHello.sh", + FileMode: 0o700, + }, + }, + Cmd: []string{"bash", "/waitForHello.sh"}, + }, + Started: true, + }) + require.NoError(t, err) + + // as the container is started, we can create the directory first + _, _, err = container.Exec(ctx, []string{"mkdir", "-p", "/scripts"}) + require.NoError(t, err) + + err = container.CopyDirToContainer(ctx, dataDirectory, "/scripts", 0o700) + if err != nil { + t.Fatal(err) + } + // } + + require.NoError(t, err) + require.NoError(t, container.Terminate(ctx)) +} diff --git a/docs/features/common_functional_options.md b/docs/features/common_functional_options.md index 3cc5d902aa..b60dbd288d 100644 --- a/docs/features/common_functional_options.md +++ b/docs/features/common_functional_options.md @@ -86,3 +86,23 @@ If you need an advanced configuration for the container, you can leverage the fo - `testcontainers.WithEndpointSettingsModifier` Please read the [Create containers: Advanced Settings](/features/creating_container.md#advanced-settings) documentation for more information. + +#### Customising the ContainerRequest + +This option will merge the customized request into the module's own `ContainerRequest`. + +```go +container, err := RunContainer(ctx, + /* Other module options */ + testcontainers.CustomizeRequest(testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Cmd: []string{"-c", "log_statement=all"}, + }, + }), +) +``` + +The above example is updating the predefined command of the image, **appending** them to the module's command. + +!!!info + This can't be used to replace the command, only to append options. diff --git a/docs/features/files_and_mounts.md b/docs/features/files_and_mounts.md index 9c0b3711d2..76e54012f3 100644 --- a/docs/features/files_and_mounts.md +++ b/docs/features/files_and_mounts.md @@ -16,48 +16,26 @@ It is possible to map a Docker volume into the container using the `Mounts` attr !!!warning Bind mounts are not supported, as it could not work with remote Docker hosts. +!!!tip + It is recommended to copy data from your local host machine to a test container using the file copy API + described below, as it is much more portable. + ## Copying files to a container If you would like to copy a file to a container, you can do it in two different manners: 1. Adding a list of files in the `ContainerRequest`, which will be copied before the container starts: -```go -ctx := context.Background() - -nginxC, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ - Image: "nginx:1.17.6", - ExposedPorts: []string{"80/tcp"}, - WaitingFor: wait.ForListeningPort("80/tcp"), - Files: []ContainerFile{ - { - HostFilePath: "./testdata/hello.sh", - ContainerFilePath: "/copies-hello.sh", - FileMode: 0o700, - }, - }, - }, - Started: false, - }) -``` + +[Copying a list of files](../../docker_files_test.go) inside_block:copyFileOnCreate + 2. Using the `CopyFileToContainer` method on a `running` container: -```go -ctx := context.Background() - -nginxC, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ - Image: "nginx:1.17.6", - ExposedPorts: []string{"80/tcp"}, - WaitingFor: wait.ForListeningPort("80/tcp"), - }, - Started: true, - }) - -nginxC.CopyFileToContainer(ctx, "./testdata/hello.sh", "/hello_copy.sh", 0o700) -``` + +[Copying files to a running container](../../docker_files_test.go) inside_block:copyFileAfterCreate +[Wait for hello](../../testdata/waitForHello.sh) + ## Copying directories to a container @@ -67,30 +45,20 @@ It's important to notice that, when copying the directory to the container, the You can leverage the very same mechanism used for copying files to a container, but for directories.: -1. The first way is using the `Files` field in the `ContainerRequest` struct, as shown in the previous section, but using the path of a directory as `HostFilePath`. +1. The first way is using the `Files` field in the `ContainerRequest` struct, as shown in the previous section, but using the path of a directory as `HostFilePath`. Like so: + + +[Copying a directory using files](../../docker_files_test.go) inside_block:copyDirectoryToContainer + 2. The second way uses the existing `CopyFileToContainer` method, which will internally check if the host path is a directory, calling the `CopyDirToContainer` method if needed: -```go -ctx := context.Background() -// as the container is started, we can create the directory first -_, _, err = myContainer.Exec(ctx, []string{"mkdir", "-p", "/usr/lib/my-software/config"}) -// because the container path is a directory, it will use the copy dir method as fallback -err = myContainer.CopyFileToContainer(ctx, "./files", "/usr/lib/my-software/config/files", 0o700) -if err != nil { - // handle error -} -``` + +[Copying a directory to a running container](../../docker_files_test.go) inside_block:copyDirectoryToRunningContainerAsFile + 3. The last third way uses the `CopyDirToContainer` method, directly, which, as you probably know, needs the existence of the parent directory in order to copy the directory: -```go -ctx := context.Background() - -// as the container is started, we can create the directory first -_, _, err = nginxC.Exec(ctx, []string{"mkdir", "-p", "/usr/lib/my-software/config"}) -err = nginxC.CopyDirToContainer(ctx, "./plugins", "/usr/lib/my-software/config/plugins", 0o700) -if err != nil { - // handle error -} -``` + +[Copying a directory to a running container](../../docker_files_test.go) inside_block:copyDirectoryToRunningContainerAsDir + diff --git a/docs/features/override_container_command.md b/docs/features/override_container_command.md index c7a369ed6f..0ea1d6c921 100644 --- a/docs/features/override_container_command.md +++ b/docs/features/override_container_command.md @@ -15,6 +15,13 @@ req := ContainerRequest{ } ``` +!!!info + If you are using a module, you can use the `testcontainers.CustomizeRequest` option to add arguments to the command. Check the individual module's pages for more information on their commands. + +This option will merge the customized request into the module's request, appending any additional `Cmd` arguments to the +module's command. This can't be used to replace the command, only to append options. +Check the individual module's pages for more information on their commands. + ## Executing a command You can execute a command inside a running container, similar to a `docker exec` call: diff --git a/docs/features/wait/http.md b/docs/features/wait/http.md index 81a42df292..8b2b731762 100644 --- a/docs/features/wait/http.md +++ b/docs/features/wait/http.md @@ -13,6 +13,9 @@ The HTTP wait strategy will check the result of an HTTP(S) request against the c - the poll interval to be used in milliseconds, default is 100 milliseconds. - the basic auth credentials to be used. +!!!info + It's important to notice that the HTTP wait strategy will default to the first port exported/published by the image. + Variations on the HTTP wait strategy are supported, including: ## Match an HTTP method diff --git a/docs/modules/postgres.md b/docs/modules/postgres.md index 0614b689b4..56fd9617e8 100644 --- a/docs/modules/postgres.md +++ b/docs/modules/postgres.md @@ -91,3 +91,14 @@ It's possible to use the Postgres container with Timescale or Postgis, to name a [Image for Postgis](../../modules/postgres/postgres_test.go) inside_block:postgis + +## Examples + +### Using Snapshots +This example shows the usage of the postgres module's Snapshot feature to give each test a clean database without having +to recreate the database container on every test or run heavy scripts to clean your database. This makes the individual +tests very modular, since they always run on a brand-new database. + + +[Test with a reusable Postgres container](../../modules/postgres/postgres_test.go) inside_block:snapshotAndReset + diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 09ff7674ba..f2e28fd416 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -4,6 +4,7 @@ go 1.20 require ( github.com/docker/go-connections v0.5.0 + github.com/jackc/pgx/v5 v5.5.3 github.com/lib/pq v1.10.9 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 @@ -30,6 +31,8 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/klauspost/compress v1.16.0 // indirect github.com/kr/text v0.2.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect @@ -54,9 +57,11 @@ require ( go.opentelemetry.io/otel v1.19.0 // indirect go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.10.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index ebe3f14b0e..ab4b81e8e7 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -50,6 +50,13 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.5.3 h1:Ces6/M3wbDXYpM8JyyPD57ivTtJACFZJd885pdIaV2s= +github.com/jackc/pgx/v5 v5.5.3/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -95,6 +102,7 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -123,6 +131,8 @@ go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lI golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -152,7 +162,8 @@ golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= diff --git a/modules/postgres/postgres.go b/modules/postgres/postgres.go index b50f58737a..111a2a0953 100644 --- a/modules/postgres/postgres.go +++ b/modules/postgres/postgres.go @@ -14,14 +14,16 @@ const ( defaultUser = "postgres" defaultPassword = "postgres" defaultPostgresImage = "docker.io/postgres:11-alpine" + defaultSnapshotName = "migrated_template" ) // PostgresContainer represents the postgres container type used in the module type PostgresContainer struct { testcontainers.Container - dbName string - user string - password string + dbName string + user string + password string + snapshotName string } // ConnectionString returns the connection string for the postgres container, using the default 5432 port, and @@ -141,3 +143,87 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize return &PostgresContainer{Container: container, dbName: dbName, password: password, user: user}, nil } + +type snapshotConfig struct { + snapshotName string +} + +// SnapshotOption is the type for passing options to the snapshot function of the database +type SnapshotOption func(container *snapshotConfig) *snapshotConfig + +// WithSnapshotName adds a specific name to the snapshot database created from the main database defined on the +// container. The snapshot must not have the same name as your main database, otherwise it will be overwritten +func WithSnapshotName(name string) SnapshotOption { + return func(cfg *snapshotConfig) *snapshotConfig { + cfg.snapshotName = name + return cfg + } +} + +// Snapshot takes a snapshot of the current state of the database as a template, which can then be restored using +// the Restore method. By default, the snapshot will be created under a database called migrated_template, you can +// customize the snapshot name with the options. +// If a snapshot already exists under the given/default name, it will be overwritten with the new snapshot. +func (c *PostgresContainer) Snapshot(ctx context.Context, opts ...SnapshotOption) error { + config := &snapshotConfig{} + for _, opt := range opts { + config = opt(config) + } + + snapshotName := defaultSnapshotName + if config.snapshotName != "" { + snapshotName = config.snapshotName + } + + // execute the commands to create the snapshot, in order + cmds := []string{ + // Drop the snapshot database if it already exists + fmt.Sprintf(`DROP DATABASE IF EXISTS "%s"`, snapshotName), + // Create a copy of the database to another database to use as a template now that it was fully migrated + fmt.Sprintf(`CREATE DATABASE "%s" WITH TEMPLATE "%s" OWNER "%s"`, snapshotName, c.dbName, c.user), + // Snapshot the template database so we can restore it onto our original database going forward + fmt.Sprintf(`ALTER DATABASE "%s" WITH is_template = TRUE`, snapshotName), + } + + for _, cmd := range cmds { + _, _, err := c.Exec(ctx, []string{"psql", "-U", c.user, "-c", cmd}) + if err != nil { + return err + } + } + + c.snapshotName = snapshotName + + return nil +} + +// Restore will restore the database to a specific snapshot. By default, it will restore the last snapshot taken on the +// database by the Snapshot method. If a snapshot name is provided, it will instead try to restore the snapshot by name. +func (c *PostgresContainer) Restore(ctx context.Context, opts ...SnapshotOption) error { + config := &snapshotConfig{} + for _, opt := range opts { + config = opt(config) + } + + snapshotName := c.snapshotName + if config.snapshotName != "" { + snapshotName = config.snapshotName + } + + // execute the commands to restore the snapshot, in order + cmds := []string{ + // Drop the entire database by connecting to the postgres global database + fmt.Sprintf(`DROP DATABASE "%s" with (FORCE)`, c.dbName), + // Then restore the previous snapshot + fmt.Sprintf(`CREATE DATABASE "%s" WITH TEMPLATE "%s" OWNER "%s"`, c.dbName, snapshotName, c.user), + } + + for _, cmd := range cmds { + _, _, err := c.Exec(ctx, []string{"psql", "-U", c.user, "-d", "postgres", "-c", cmd}) + if err != nil { + return err + } + } + + return nil +} diff --git a/modules/postgres/postgres_test.go b/modules/postgres/postgres_test.go index 040b4775c4..6cb1346977 100644 --- a/modules/postgres/postgres_test.go +++ b/modules/postgres/postgres_test.go @@ -1,19 +1,22 @@ -package postgres +package postgres_test import ( "context" "database/sql" + "errors" "fmt" "path/filepath" "testing" "time" "github.com/docker/go-connections/nat" + "github.com/jackc/pgx/v5" _ "github.com/lib/pq" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/postgres" "github.com/testcontainers/testcontainers-go/wait" ) @@ -54,11 +57,11 @@ func TestPostgres(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - container, err := RunContainer(ctx, + container, err := postgres.RunContainer(ctx, testcontainers.WithImage(tt.image), - WithDatabase(dbname), - WithUsername(user), - WithPassword(password), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), testcontainers.WithWaitStrategy(tt.wait), ) if err != nil { @@ -109,33 +112,33 @@ func TestContainerWithWaitForSQL(t *testing.T) { } t.Run("default query", func(t *testing.T) { - container, err := RunContainer( + container, err := postgres.RunContainer( ctx, - WithDatabase(dbname), - WithUsername(user), - WithPassword(password), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), testcontainers.WithWaitStrategy(wait.ForSQL(nat.Port(port), "postgres", dbURL)), ) require.NoError(t, err) require.NotNil(t, container) }) t.Run("custom query", func(t *testing.T) { - container, err := RunContainer( + container, err := postgres.RunContainer( ctx, - WithDatabase(dbname), - WithUsername(user), - WithPassword(password), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), testcontainers.WithWaitStrategy(wait.ForSQL(nat.Port(port), "postgres", dbURL).WithStartupTimeout(time.Second*5).WithQuery("SELECT 10")), ) require.NoError(t, err) require.NotNil(t, container) }) t.Run("custom bad query", func(t *testing.T) { - container, err := RunContainer( + container, err := postgres.RunContainer( ctx, - WithDatabase(dbname), - WithUsername(user), - WithPassword(password), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), testcontainers.WithWaitStrategy(wait.ForSQL(nat.Port(port), "postgres", dbURL).WithStartupTimeout(time.Second*5).WithQuery("SELECT 'a' from b")), ) require.Error(t, err) @@ -146,11 +149,11 @@ func TestContainerWithWaitForSQL(t *testing.T) { func TestWithConfigFile(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithConfigFile(filepath.Join("testdata", "my-postgres.conf")), - WithDatabase(dbname), - WithUsername(user), - WithPassword(password), + container, err := postgres.RunContainer(ctx, + postgres.WithConfigFile(filepath.Join("testdata", "my-postgres.conf")), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), testcontainers.WithWaitStrategy(wait.ForLog("database system is ready to accept connections").WithOccurrence(2).WithStartupTimeout(5*time.Second)), ) if err != nil { @@ -176,12 +179,12 @@ func TestWithConfigFile(t *testing.T) { func TestWithInitScript(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, + container, err := postgres.RunContainer(ctx, testcontainers.WithImage("docker.io/postgres:15.2-alpine"), - WithInitScripts(filepath.Join("testdata", "init-user-db.sh")), - WithDatabase(dbname), - WithUsername(user), - WithPassword(password), + postgres.WithInitScripts(filepath.Join("testdata", "init-user-db.sh")), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), testcontainers.WithWaitStrategy(wait.ForLog("database system is ready to accept connections").WithOccurrence(2).WithStartupTimeout(5*time.Second)), ) if err != nil { @@ -208,3 +211,107 @@ func TestWithInitScript(t *testing.T) { require.NoError(t, err) assert.NotNil(t, result) } + +func TestSnapshot(t *testing.T) { + // snapshotAndReset { + ctx := context.Background() + + // 1. Start the postgres container and run any migrations on it + container, err := postgres.RunContainer( + ctx, + testcontainers.WithImage("docker.io/postgres:16-alpine"), + postgres.WithDatabase(dbname), + postgres.WithUsername(user), + postgres.WithPassword(password), + testcontainers.WithWaitStrategy( + wait.ForLog("database system is ready to accept connections"). + WithOccurrence(2). + WithStartupTimeout(5*time.Second)), + ) + if err != nil { + t.Fatal(err) + } + + // Run any migrations on the database + _, _, err = container.Exec(ctx, []string{"psql", "-U", user, "-d", dbname, "-c", "CREATE TABLE users (id SERIAL, name TEXT NOT NULL, age INT NOT NULL)"}) + if err != nil { + t.Fatal(err) + } + + // 2. Create a snapshot of the database to restore later + err = container.Snapshot(ctx, postgres.WithSnapshotName("test-snapshot")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + dbURL, err := container.ConnectionString(ctx) + if err != nil { + t.Fatal(err) + } + + t.Run("Test inserting a user", func(t *testing.T) { + t.Cleanup(func() { + // 3. In each test, reset the DB to its snapshot state. + err = container.Restore(ctx) + if err != nil { + t.Fatal(err) + } + }) + + conn, err := pgx.Connect(context.Background(), dbURL) + if err != nil { + t.Fatal(err) + } + defer conn.Close(context.Background()) + + _, err = conn.Exec(ctx, "INSERT INTO users(name, age) VALUES ($1, $2)", "test", 42) + if err != nil { + t.Fatal(err) + } + + var name string + var age int64 + err = conn.QueryRow(context.Background(), "SELECT name, age FROM users LIMIT 1").Scan(&name, &age) + if err != nil { + t.Fatal(err) + } + + if name != "test" { + t.Fatalf("Expected %s to equal `test`", name) + } + if age != 42 { + t.Fatalf("Expected %d to equal `42`", age) + } + }) + + // 4. Run as many tests as you need, they will each get a clean database + t.Run("Test querying empty DB", func(t *testing.T) { + t.Cleanup(func() { + err = container.Restore(ctx) + if err != nil { + t.Fatal(err) + } + }) + + conn, err := pgx.Connect(context.Background(), dbURL) + if err != nil { + t.Fatal(err) + } + defer conn.Close(context.Background()) + + var name string + var age int64 + err = conn.QueryRow(context.Background(), "SELECT name, age FROM users LIMIT 1").Scan(&name, &age) + if !errors.Is(err, pgx.ErrNoRows) { + t.Fatalf("Expected error to be a NoRows error, since the DB should be empty on every test. Got %s instead", err) + } + }) + // } +} diff --git a/network/network_test.go b/network/network_test.go index 05e22756cf..1756c7d5e6 100644 --- a/network/network_test.go +++ b/network/network_test.go @@ -32,6 +32,8 @@ func ExampleNew() { net, err := network.New(ctx, network.WithCheckDuplicate(), network.WithAttachable(), + // Makes the network internal only, meaning the host machine cannot access it. + // Remove or use `network.WithDriver("bridge")` to change the network's mode. network.WithInternal(), network.WithLabels(map[string]string{"this-is-a-test": "value"}), ) diff --git a/testdata/waitForHello.sh b/testdata/waitForHello.sh new file mode 100644 index 0000000000..9fefeeeace --- /dev/null +++ b/testdata/waitForHello.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +file=/scripts/hello.sh + +until [ -s "$file" ] +do + sleep 0.1 +done + +sh $file \ No newline at end of file From 4bf9515566f261cc97929caa57e86ea0e25c8814 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 00:49:31 +0100 Subject: [PATCH 015/115] chore(ci): do not fail fast main tests in different Go versions (#2210) * chore(ci): do not fail fast main tests in different Go versions * chore: revert fail-fast condition for the main job --- .github/workflows/ci.yml | 4 ++-- modulegen/_template/ci.yml.tmpl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2302a66a4..2c7b90777c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,7 @@ jobs: uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} - fail-fast: true + fail-fast: false platform: "ubuntu-latest" project-directory: "." rootless-docker: false @@ -72,7 +72,7 @@ jobs: uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} - fail-fast: true + fail-fast: false platform: "ubuntu-latest" project-directory: "." rootless-docker: true diff --git a/modulegen/_template/ci.yml.tmpl b/modulegen/_template/ci.yml.tmpl index 38162c4845..defba6beb8 100644 --- a/modulegen/_template/ci.yml.tmpl +++ b/modulegen/_template/ci.yml.tmpl @@ -52,7 +52,7 @@ jobs: uses: ./.github/workflows/ci-test-go.yml with: go-version: {{ "${{ matrix.go-version }}" }} - fail-fast: true + fail-fast: false platform: "ubuntu-latest" project-directory: "." rootless-docker: false @@ -72,7 +72,7 @@ jobs: uses: ./.github/workflows/ci-test-go.yml with: go-version: {{ "${{ matrix.go-version }}" }} - fail-fast: true + fail-fast: false platform: "ubuntu-latest" project-directory: "." rootless-docker: true From 1f628e25935b2d0adbc9b5344d6ff35000165f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 01:35:46 +0100 Subject: [PATCH 016/115] fix: wait more time in test (#2211) --- docker_files_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker_files_test.go b/docker_files_test.go index 065f87443f..d6eb15b804 100644 --- a/docker_files_test.go +++ b/docker_files_test.go @@ -81,7 +81,7 @@ func TestCopyFileToRunningContainer(t *testing.T) { require.NoError(t, err) // Give some time to the wait script to catch the hello script being created - err = wait.ForLog("done").WithStartupTimeout(200*time.Millisecond).WaitUntilReady(ctx, container) + err = wait.ForLog("done").WithStartupTimeout(2*time.Second).WaitUntilReady(ctx, container) require.NoError(t, err) require.NoError(t, container.Terminate(ctx)) From 50fc8e7e61664f1ad07389eda0c0da2d1b20cd90 Mon Sep 17 00:00:00 2001 From: Chris <8493773+Chris-AS1@users.noreply.github.com> Date: Thu, 15 Feb 2024 11:18:14 +0100 Subject: [PATCH 017/115] Added Consul module (#2194) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * added consul module * removed existing examples * added WithConfigFile and examples. swapped panics with fatalf * removed more references * chore: run make lint * chore: reverse assertion * chore: fix lint * docs: use pinned version in docs --------- Co-authored-by: Manuel de la Peña --- .github/dependabot.yml | 14 ++-- .github/workflows/ci.yml | 4 +- .vscode/.testcontainers-go.code-workspace | 10 +-- RELEASING.md | 2 - docs/examples/consul.md | 9 --- docs/modules/consul.md | 58 +++++++++++++++ examples/consul/consul.go | 44 ------------ examples/consul/consul_test.go | 48 ------------- mkdocs.yml | 2 +- {examples => modules}/consul/Makefile | 1 + modules/consul/consul.go | 88 +++++++++++++++++++++++ modules/consul/consul_test.go | 73 +++++++++++++++++++ modules/consul/examples_test.go | 83 +++++++++++++++++++++ {examples => modules}/consul/go.mod | 6 +- {examples => modules}/consul/go.sum | 6 ++ modules/consul/testdata/config.json | 3 + sonar-project.properties | 2 +- 17 files changed, 333 insertions(+), 120 deletions(-) delete mode 100644 docs/examples/consul.md create mode 100644 docs/modules/consul.md delete mode 100644 examples/consul/consul.go delete mode 100644 examples/consul/consul_test.go rename {examples => modules}/consul/Makefile (98%) create mode 100644 modules/consul/consul.go create mode 100644 modules/consul/consul_test.go create mode 100644 modules/consul/examples_test.go rename {examples => modules}/consul/go.mod (92%) rename {examples => modules}/consul/go.sum (98%) create mode 100644 modules/consul/testdata/config.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 25b9e9a0cb..31229f5111 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -23,13 +23,6 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled - - package-ecosystem: gomod - directory: /examples/consul - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - package-ecosystem: gomod directory: /examples/nginx schedule: @@ -86,6 +79,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/consul + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/couchbase schedule: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2c7b90777c..a40a43666e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,7 +104,7 @@ jobs: matrix: go-version: [1.20.x, 1.x] platform: [ubuntu-latest] - module: [artemis, cassandra, clickhouse, cockroachdb, compose, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, postgres, pulsar, rabbitmq, redis, redpanda, vault] + module: [artemis, cassandra, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, postgres, pulsar, rabbitmq, redis, redpanda, vault] exclude: - go-version: 1.20.x module: compose @@ -124,7 +124,7 @@ jobs: needs: test-modules strategy: matrix: - module: [consul, nginx, toxiproxy] + module: [nginx, toxiproxy] uses: ./.github/workflows/ci-test-go.yml with: go-version: "1.20.x" diff --git a/.vscode/.testcontainers-go.code-workspace b/.vscode/.testcontainers-go.code-workspace index 962dbe5886..a1bd38e6ed 100644 --- a/.vscode/.testcontainers-go.code-workspace +++ b/.vscode/.testcontainers-go.code-workspace @@ -5,10 +5,6 @@ "name": "testcontainers-go", "path": "../" }, - { - "name": "example / consul", - "path": "../examples/consul" - }, { "name": "example / nginx", "path": "../examples/nginx" @@ -37,6 +33,10 @@ "name": "module / compose", "path": "../modules/compose" }, + { + "name": "module / consul", + "path": "../modules/consul" + }, { "name": "module / couchbase", "path": "../modules/couchbase" @@ -134,4 +134,4 @@ "path": "../modulegen" } ] -} \ No newline at end of file +} diff --git a/RELEASING.md b/RELEASING.md index fb3727b9cc..31a9954933 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -150,7 +150,6 @@ git add modules/**/go.* git commit -m chore: use new version (v0.20.1) in modules and examples git tag v0.20.1 git tag examples/bigtable/v0.20.1 -git tag examples/consul/v0.20.1 git tag examples/datastore/v0.20.1 git tag examples/firestore/v0.20.1 git tag examples/mongodb/v0.20.1 @@ -178,7 +177,6 @@ git commit -m chore: prepare for next minor development cycle (0.21.0) git push origin main --tags curl https://proxy.golang.org/github.com/testcontainers/testcontainers-go/@v/v0.20.1.info curl https://proxy.golang.org/github.com/testcontainers/testcontainers-go/examples/bigtable/@v/v0.20.1.info -curl https://proxy.golang.org/github.com/testcontainers/testcontainers-go/examples/consul/@v/v0.20.1.info curl https://proxy.golang.org/github.com/testcontainers/testcontainers-go/examples/datastore/@v/v0.20.1.info curl https://proxy.golang.org/github.com/testcontainers/testcontainers-go/examples/firestore/@v/v0.20.1.info curl https://proxy.golang.org/github.com/testcontainers/testcontainers-go/examples/mongodb/@v/v0.20.1.info diff --git a/docs/examples/consul.md b/docs/examples/consul.md deleted file mode 100644 index 6f8cb8bc76..0000000000 --- a/docs/examples/consul.md +++ /dev/null @@ -1,9 +0,0 @@ -# Consul - - -[Creating a Consul container](../../examples/consul/consul.go) - - - -[Test for a Consul container](../../examples/consul/consul_test.go) - diff --git a/docs/modules/consul.md b/docs/modules/consul.md new file mode 100644 index 0000000000..ba21cc39b1 --- /dev/null +++ b/docs/modules/consul.md @@ -0,0 +1,58 @@ +# Consul + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Consul. + +## Adding this module to your project dependencies + +Please run the following command to add the Consul module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/consul +``` + +## Usage example + + +[Creating a Consul container](../../modules/consul/examples_test.go) inside_block:runConsulContainer + + +## Module reference + +The Consul module exposes one entrypoint function to create the Consul container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ConsulContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Consul container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Consul Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Consul. E.g. `testcontainers.WithImage("docker.io/hashicorp/consul:1.15")`. + +{% include "../features/common_functional_options.md" %} + +#### Configuration File +If you need to customize the behavior for the deployed node you can use either `WithConfigString(config string)` or `WithConfigFile(configPath string)`. +The configuration has to be in JSON format and will be loaded at the node startup. + +### Container Methods + +The Consul container exposes the following method: + +#### ApiEndpoint +This method returns the connection string to connect to the Consul container API, using the default `8500` port. + + +[Using ApiEndpoint with the Consul client](../../modules/consul/examples_test.go) inside_block:connectConsul + diff --git a/examples/consul/consul.go b/examples/consul/consul.go deleted file mode 100644 index 46c1b62642..0000000000 --- a/examples/consul/consul.go +++ /dev/null @@ -1,44 +0,0 @@ -package consul - -import ( - "context" - "fmt" - - "github.com/testcontainers/testcontainers-go" - "github.com/testcontainers/testcontainers-go/wait" -) - -// consulContainer represents the consul container type used in the module -type consulContainer struct { - testcontainers.Container - endpoint string -} - -// startContainer creates an instance of the consul container type -func startContainer(ctx context.Context) (*consulContainer, error) { - req := testcontainers.ContainerRequest{ - Image: "hashicorp/consul:latest", - ExposedPorts: []string{"8500/tcp", "8600/udp"}, - Name: "badger", - Cmd: []string{"agent", "-server", "-ui", "-node=server-1", "-bootstrap-expect=1", "-client=0.0.0.0"}, - WaitingFor: wait.ForListeningPort("8500/tcp"), - } - container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ - ContainerRequest: req, - Started: true, - }) - if err != nil { - return nil, err - } - mappedPort, err := container.MappedPort(ctx, "8500") - if err != nil { - return nil, err - } - - host, err := container.Host(ctx) - if err != nil { - return nil, err - } - - return &consulContainer{Container: container, endpoint: fmt.Sprintf("%s:%s", host, mappedPort.Port())}, nil -} diff --git a/examples/consul/consul_test.go b/examples/consul/consul_test.go deleted file mode 100644 index f22e89290c..0000000000 --- a/examples/consul/consul_test.go +++ /dev/null @@ -1,48 +0,0 @@ -package consul - -import ( - "bytes" - "context" - "testing" - - "github.com/hashicorp/consul/api" -) - -func TestConsul(t *testing.T) { - ctx := context.Background() - - container, err := startContainer(ctx) - if err != nil { - t.Fatal(err) - } - - // Clean up the container after the test is complete - t.Cleanup(func() { - if err := container.Terminate(ctx); err != nil { - t.Fatalf("failed to terminate container: %s", err) - } - }) - - // perform assertions - cfg := api.DefaultConfig() - cfg.Address = container.endpoint - client, err := api.NewClient(cfg) - if nil != err { - t.Fatal(err) - } - bs := []byte("apple") - _, err = client.KV().Put(&api.KVPair{ - Key: "fruit", - Value: bs, - }, nil) - if nil != err { - t.Fatal(err) - } - pair, _, err := client.KV().Get("fruit", nil) - if err != nil { - t.Fatal(err) - } - if pair.Key != "fruit" || !bytes.Equal(pair.Value, []byte("apple")) { - t.Errorf("get KV: %v %s,expect them to be: 'fruit' and 'apple'\n", pair.Key, pair.Value) - } -} diff --git a/mkdocs.yml b/mkdocs.yml index 6d6e7b75a5..cbee932874 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -67,6 +67,7 @@ nav: - modules/cassandra.md - modules/clickhouse.md - modules/cockroachdb.md + - modules/consul.md - modules/couchbase.md - modules/elasticsearch.md - modules/gcloud.md @@ -92,7 +93,6 @@ nav: - modules/vault.md - Examples: - examples/index.md - - examples/consul.md - examples/nginx.md - examples/toxiproxy.md - System Requirements: diff --git a/examples/consul/Makefile b/modules/consul/Makefile similarity index 98% rename from examples/consul/Makefile rename to modules/consul/Makefile index 4e67d96436..3e9bb56a17 100644 --- a/examples/consul/Makefile +++ b/modules/consul/Makefile @@ -3,3 +3,4 @@ include ../../commons-test.mk .PHONY: test test: $(MAKE) test-consul + diff --git a/modules/consul/consul.go b/modules/consul/consul.go new file mode 100644 index 0000000000..08a6e0ece2 --- /dev/null +++ b/modules/consul/consul.go @@ -0,0 +1,88 @@ +package consul + +import ( + "context" + "fmt" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +const ( + defaultHttpApiPort = "8500" + defaultBrokerPort = "8600" +) + +const ( + DefaultBaseImage = "docker.io/hashicorp/consul:1.15" +) + +// ConsulContainer represents the Consul container type used in the module. +type ConsulContainer struct { + testcontainers.Container +} + +// ApiEndpoint returns host:port for the HTTP API endpoint. +func (c *ConsulContainer) ApiEndpoint(ctx context.Context) (string, error) { + mappedPort, err := c.MappedPort(ctx, defaultHttpApiPort) + if err != nil { + return "", err + } + + hostIP, err := c.Host(ctx) + if err != nil { + return "", err + } + + uri := fmt.Sprintf("%s:%s", hostIP, mappedPort.Port()) + return uri, nil +} + +// WithConfigString takes in a JSON string of keys and values to define a configuration to be used by the instance. +func WithConfigString(config string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Env["CONSUL_LOCAL_CONFIG"] = config + } +} + +// WithConfigFile takes in a path to a JSON file to define a configuration to be used by the instance. +func WithConfigFile(configPath string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + cf := testcontainers.ContainerFile{ + HostFilePath: configPath, + ContainerFilePath: "/consul/config/node.json", + FileMode: 0o755, + } + req.Files = append(req.Files, cf) + } +} + +// RunContainer creates an instance of the Consul container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ConsulContainer, error) { + containerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Image: DefaultBaseImage, + ExposedPorts: []string{ + defaultHttpApiPort + "/tcp", + defaultBrokerPort + "/tcp", + defaultBrokerPort + "/udp", + }, + Env: map[string]string{}, + WaitingFor: wait.ForAll( + wait.ForLog("Consul agent running!"), + ), + }, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&containerReq) + } + + container, err := testcontainers.GenericContainer(ctx, containerReq) + if err != nil { + return nil, err + } + + return &ConsulContainer{Container: container}, nil +} diff --git a/modules/consul/consul_test.go b/modules/consul/consul_test.go new file mode 100644 index 0000000000..e9f6bfa860 --- /dev/null +++ b/modules/consul/consul_test.go @@ -0,0 +1,73 @@ +package consul_test + +import ( + "context" + "net/http" + "path/filepath" + "testing" + + capi "github.com/hashicorp/consul/api" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/consul" +) + +func TestConsul(t *testing.T) { + ctx := context.Background() + tests := []struct { + name string + opts []testcontainers.ContainerCustomizer + }{ + { + name: "Default", + opts: []testcontainers.ContainerCustomizer{}, + }, + { + name: "WithConfigString", + opts: []testcontainers.ContainerCustomizer{ + consul.WithConfigString(`{ "server":true }`), + }, + }, + { + name: "WithConfigFile", + opts: []testcontainers.ContainerCustomizer{ + consul.WithConfigFile(filepath.Join("testdata", "config.json")), + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + container, err := consul.RunContainer(ctx, test.opts...) + require.NoError(t, err) + t.Cleanup(func() { require.NoError(t, container.Terminate(ctx), "failed to terminate container") }) + + // Check if API is up + host, err := container.ApiEndpoint(ctx) + require.NoError(t, err) + assert.NotEmpty(t, len(host)) + + res, err := http.Get("http://" + host) + require.NoError(t, err) + assert.Equal(t, http.StatusOK, res.StatusCode) + + cfg := capi.DefaultConfig() + cfg.Address = host + + reg := &capi.AgentServiceRegistration{ID: "abcd", Name: test.name} + + client, err := capi.NewClient(cfg) + require.NoError(t, err) + + // Register / Unregister service + s := client.Agent() + err = s.ServiceRegister(reg) + require.NoError(t, err) + + err = s.ServiceDeregister("abcd") + require.NoError(t, err) + }) + } +} diff --git a/modules/consul/examples_test.go b/modules/consul/examples_test.go new file mode 100644 index 0000000000..002c143c95 --- /dev/null +++ b/modules/consul/examples_test.go @@ -0,0 +1,83 @@ +package consul_test + +import ( + "context" + "fmt" + "log" + + capi "github.com/hashicorp/consul/api" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/consul" +) + +func ExampleRunContainer() { + // runConsulContainer { + ctx := context.Background() + + consulContainer, err := consul.RunContainer(ctx, + testcontainers.WithImage("docker.io/hashicorp/consul:1.15"), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := consulContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) + } + }() + // } + + state, err := consulContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_connect() { + // connectConsul { + ctx := context.Background() + + consulContainer, err := consul.RunContainer(ctx, + testcontainers.WithImage("docker.io/hashicorp/consul:1.15"), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := consulContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) + } + }() + + endpoint, err := consulContainer.ApiEndpoint(ctx) + if err != nil { + log.Fatalf("failed to get endpoint: %s", err) // nolint:gocritic + } + + config := capi.DefaultConfig() + config.Address = endpoint + client, err := capi.NewClient(config) + if err != nil { + log.Fatalf("failed to connect to Consul: %s", err) + } + // } + + node_name, err := client.Agent().NodeName() + if err != nil { + log.Fatalf("failed to get node name: %s", err) // nolint:gocritic + } + fmt.Println(len(node_name) > 0) + + // Output: + // true +} diff --git a/examples/consul/go.mod b/modules/consul/go.mod similarity index 92% rename from examples/consul/go.mod rename to modules/consul/go.mod index a177fe6244..f1adfded88 100644 --- a/examples/consul/go.mod +++ b/modules/consul/go.mod @@ -1,9 +1,10 @@ -module github.com/testcontainers/testcontainers-go/examples/consul +module github.com/testcontainers/testcontainers-go/modules/consul go 1.20 require ( github.com/hashicorp/consul/api v1.27.0 + github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 ) @@ -17,6 +18,7 @@ require ( github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect @@ -52,6 +54,7 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc5 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect @@ -70,6 +73,7 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/examples/consul/go.sum b/modules/consul/go.sum similarity index 98% rename from examples/consul/go.sum rename to modules/consul/go.sum index 0cf02246a2..6a015d9eea 100644 --- a/examples/consul/go.sum +++ b/modules/consul/go.sum @@ -37,6 +37,7 @@ github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= @@ -135,8 +136,10 @@ github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQs github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -194,6 +197,7 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= @@ -209,6 +213,7 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -347,6 +352,7 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/modules/consul/testdata/config.json b/modules/consul/testdata/config.json new file mode 100644 index 0000000000..3e35005afb --- /dev/null +++ b/modules/consul/testdata/config.json @@ -0,0 +1,3 @@ +{ + "server": true +} diff --git a/sonar-project.properties b/sonar-project.properties index e332ab9c27..25d6e50b0d 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -18,4 +18,4 @@ sonar.test.inclusions=**/*_test.go sonar.test.exclusions=**/vendor/** sonar.go.coverage.reportPaths=**/coverage.out -sonar.go.tests.reportPaths=TEST-unit.xml,examples/consul/TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/vault/TEST-unit.xml +sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/vault/TEST-unit.xml From c906e65a26478ec78463c378bbd37627ce279c3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 11:43:53 +0100 Subject: [PATCH 018/115] chore: define proper execution order for container lifecycle hooks (#1922) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: simplify test method * feat: define execution order for default hooks and user-defined hooks * chore: extract default hooks to variables * docs: include execution order in docs * docs: update docs for default logging hook * chore: use ✅ consistently in post hooks * fix: lint * feat: define Readiness hooks * fix: move cassandra's startup commands to the post-ready hook * feat: add a WithReadyCommand that happens after the container is ready * chore: move rabbitmq post-starts to post-ready * chore: move elasticsearch post-starts to post-ready * chore: simplify using new functional option * chore: remove PreRedies * chore: apply exec options to ready commands * chore: add unit test for ready command * fix: lint * chore: use WithAfterReadyCommand * docs: reword * docs: remove extra spaces * fix: lint * chore: update postreadies in openLDAP module * docs: refine --- docker.go | 90 ++-------- docs/features/common_functional_options.md | 13 ++ docs/features/creating_container.md | 24 ++- lifecycle.go | 186 +++++++++++++++++++- lifecycle_test.go | 191 ++++++++++++++++++--- modules/cassandra/cassandra.go | 5 +- modules/elasticsearch/elasticsearch.go | 5 +- modules/openldap/openldap.go | 7 +- modules/rabbitmq/examples_test.go | 2 +- modules/rabbitmq/rabbitmq_test.go | 46 ++--- options.go | 22 +++ options_test.go | 31 ++++ 12 files changed, 488 insertions(+), 134 deletions(-) diff --git a/docker.go b/docker.go index 9af552c3dd..a559b8d7ea 100644 --- a/docker.go +++ b/docker.go @@ -203,6 +203,13 @@ func (c *DockerContainer) Start(ctx context.Context) error { return err } + c.isRunning = true + + err = c.readiedHook(ctx) + if err != nil { + return err + } + return nil } @@ -1066,86 +1073,13 @@ func (p *DockerProvider) CreateContainer(ctx context.Context, req ContainerReque // default hooks include logger hook and pre-create hook defaultHooks := []ContainerLifecycleHooks{ DefaultLoggingHook(p.Logger), - { - PreCreates: []ContainerRequestHook{ - func(ctx context.Context, req ContainerRequest) error { - return p.preCreateContainerHook(ctx, req, dockerInput, hostConfig, networkingConfig) - }, - }, - PostCreates: []ContainerHook{ - // copy files to container after it's created - func(ctx context.Context, c Container) error { - for _, f := range req.Files { - err := c.CopyFileToContainer(ctx, f.HostFilePath, f.ContainerFilePath, f.FileMode) - if err != nil { - return fmt.Errorf("can't copy %s to container: %w", f.HostFilePath, err) - } - } - - return nil - }, - }, - PostStarts: []ContainerHook{ - // first post-start hook is to produce logs and start log consumers - func(ctx context.Context, c Container) error { - dockerContainer := c.(*DockerContainer) - - logConsumerConfig := req.LogConsumerCfg - if logConsumerConfig == nil { - return nil - } - - for _, consumer := range logConsumerConfig.Consumers { - dockerContainer.followOutput(consumer) - } - - if len(logConsumerConfig.Consumers) > 0 { - return dockerContainer.startLogProduction(ctx, logConsumerConfig.Opts...) - } - return nil - }, - // second post-start hook is to wait for the container to be ready - func(ctx context.Context, c Container) error { - dockerContainer := c.(*DockerContainer) - - // if a Wait Strategy has been specified, wait before returning - if dockerContainer.WaitingFor != nil { - dockerContainer.logger.Printf( - "🚧 Waiting for container id %s image: %s. Waiting for: %+v", - dockerContainer.ID[:12], dockerContainer.Image, dockerContainer.WaitingFor, - ) - if err := dockerContainer.WaitingFor.WaitUntilReady(ctx, c); err != nil { - return err - } - } - - dockerContainer.isRunning = true - - return nil - }, - }, - PreTerminates: []ContainerHook{ - // first pre-terminate hook is to stop the log production - func(ctx context.Context, c Container) error { - logConsumerConfig := req.LogConsumerCfg - - if logConsumerConfig == nil { - return nil - } - if len(logConsumerConfig.Consumers) == 0 { - return nil - } - - dockerContainer := c.(*DockerContainer) - - return dockerContainer.stopLogProduction() - }, - }, - }, + defaultPreCreateHook(ctx, p, req, dockerInput, hostConfig, networkingConfig), + defaultCopyFileToContainerHook(req.Files), + defaultLogConsumersHook(req.LogConsumerCfg), + defaultReadinessHook(), } - // always prepend default lifecycle hooks to user-defined hooks - req.LifecycleHooks = append(defaultHooks, req.LifecycleHooks...) + req.LifecycleHooks = []ContainerLifecycleHooks{combineContainerHooks(defaultHooks, req.LifecycleHooks)} err = req.creatingHook(ctx) if err != nil { diff --git a/docs/features/common_functional_options.md b/docs/features/common_functional_options.md index b60dbd288d..ad617ed814 100644 --- a/docs/features/common_functional_options.md +++ b/docs/features/common_functional_options.md @@ -58,6 +58,19 @@ It also exports an `Executable` interface, defining the following methods: You could use this feature to run a custom script, or to run a command that is not supported by the module right after the container is started. +#### Ready Commands + +- Not available until the next release of testcontainers-go :material-tag: main + +Testcontainers exposes the `WithAfterReadyCommand(e ...Executable)` option to run arbitrary commands in the container right after it's ready, which happens when the defined wait strategies have finished with success. + +!!!info + To better understand how this feature works, please read the [Create containers: Lifecycle Hooks](/features/creating_container/#lifecycle-hooks) documentation. + +It leverages the `Executable` interface to represent the command and positional arguments to be executed in the container. + +You could use this feature to run a custom script, or to run a command that is not supported by the module right after the container is ready. + #### WithNetwork - Since testcontainers-go :material-tag: v0.27.0 diff --git a/docs/features/creating_container.md b/docs/features/creating_container.md index 0bbfa27fbc..decabc2a35 100644 --- a/docs/features/creating_container.md +++ b/docs/features/creating_container.md @@ -91,19 +91,32 @@ func TestIntegrationNginxLatestReturn(t *testing.T) { _Testcontainers for Go_ allows you to define your own lifecycle hooks for better control over your containers. You just need to define functions that return an error and receive the Go context as first argument, and a `ContainerRequest` for the `Creating` hook, and a `Container` for the rest of them as second argument. -You'll be able to pass multiple lifecycle hooks at the `ContainerRequest` as an array of `testcontainers.ContainerLifecycleHooks`, which will be processed one by one in the order they are passed. - -The `testcontainers.ContainerLifecycleHooks` struct defines the following lifecycle hooks, each of them backed by an array of functions representing the hooks: +You'll be able to pass multiple lifecycle hooks at the `ContainerRequest` as an array of `testcontainers.ContainerLifecycleHooks`. The `testcontainers.ContainerLifecycleHooks` struct defines the following lifecycle hooks, each of them backed by an array of functions representing the hooks: * `PreCreates` - hooks that are executed before the container is created * `PostCreates` - hooks that are executed after the container is created * `PreStarts` - hooks that are executed before the container is started * `PostStarts` - hooks that are executed after the container is started +* `PostReadies` - hooks that are executed after the container is ready * `PreStops` - hooks that are executed before the container is stopped * `PostStops` - hooks that are executed after the container is stopped * `PreTerminates` - hooks that are executed before the container is terminated * `PostTerminates` - hooks that are executed after the container is terminated +_Testcontainers for Go_ defines some default lifecycle hooks that are always executed in a specific order with respect to the user-defined hooks. The order of execution is the following: + +1. default `pre` hooks. +2. user-defined `pre` hooks. +3. user-defined `post` hooks. +4. default `post` hooks. + +Inside each group, the hooks will be executed in the order they were defined. + +!!!info + The default hooks are for logging (applied to all hooks), customising the Docker config (applied to the pre-create hook), copying files in to the container (applied to the post-create hook), adding log consumers (applied to the post-start and pre-terminate hooks), and running the wait strategies as a readiness check (applied to the post-start hook). + +It's important to notice that the `Readiness` of a container is defined by the wait strategies defined for the container. **This hook will be executed right after the `PostStarts` hook**. If you want to add your own readiness checks, you can do it by adding a `PostReadies` hook to the container request, which will execute your own readiness check after the default ones. That said, the `PostStarts` hooks don't warrant that the container is ready, so you should not rely on that. + In the following example, we are going to create a container using all the lifecycle hooks, all of them printing a message when any of the lifecycle hooks is called: @@ -112,10 +125,11 @@ In the following example, we are going to create a container using all the lifec #### Default Logging Hook -_Testcontainers for Go_ comes with a default logging hook that will print a log message for each container lifecycle event. You can enable it by passing the `testcontainers.DefaultLoggingHook` option to the `ContainerRequest`, passing a reference to the container logger like this: +_Testcontainers for Go_ comes with a default logging hook that will print a log message for each container lifecycle event, using the default logger. You can add your own logger by passing the `testcontainers.DefaultLoggingHook` option to the `ContainerRequest`, passing a reference to your preferred logger: -[Extending container with life cycle hooks](../../lifecycle_test.go) inside_block:reqWithDefaultLogginHook +[Use a custom logger for container hooks](../../lifecycle_test.go) inside_block:reqWithDefaultLogginHook +[Custom Logger implementation](../../lifecycle_test.go) inside_block:customLoggerImplementation ### Advanced Settings diff --git a/lifecycle.go b/lifecycle.go index 7d4e4af78d..fc1b28e17e 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -2,6 +2,7 @@ package testcontainers import ( "context" + "fmt" "io" "strings" @@ -24,6 +25,7 @@ type ContainerRequestHook func(ctx context.Context, req ContainerRequest) error // - Created // - Starting // - Started +// - Readied // - Stopping // - Stopped // - Terminating @@ -39,12 +41,14 @@ type ContainerLifecycleHooks struct { PostCreates []ContainerHook PreStarts []ContainerHook PostStarts []ContainerHook + PostReadies []ContainerHook PreStops []ContainerHook PostStops []ContainerHook PreTerminates []ContainerHook PostTerminates []ContainerHook } +// DefaultLoggingHook is a hook that will log the container lifecycle events var DefaultLoggingHook = func(logger Logging) ContainerLifecycleHooks { shortContainerID := func(c Container) string { return c.GetContainerID()[:12] @@ -75,6 +79,12 @@ var DefaultLoggingHook = func(logger Logging) ContainerLifecycleHooks { return nil }, }, + PostReadies: []ContainerHook{ + func(ctx context.Context, c Container) error { + logger.Printf("🔔 Container is ready: %s", shortContainerID(c)) + return nil + }, + }, PreStops: []ContainerHook{ func(ctx context.Context, c Container) error { logger.Printf("🐳 Stopping container: %s", shortContainerID(c)) @@ -83,7 +93,7 @@ var DefaultLoggingHook = func(logger Logging) ContainerLifecycleHooks { }, PostStops: []ContainerHook{ func(ctx context.Context, c Container) error { - logger.Printf("✋ Container stopped: %s", shortContainerID(c)) + logger.Printf("✅ Container stopped: %s", shortContainerID(c)) return nil }, }, @@ -102,6 +112,101 @@ var DefaultLoggingHook = func(logger Logging) ContainerLifecycleHooks { } } +// defaultPreCreateHook is a hook that will apply the default configuration to the container +var defaultPreCreateHook = func(ctx context.Context, p *DockerProvider, req ContainerRequest, dockerInput *container.Config, hostConfig *container.HostConfig, networkingConfig *network.NetworkingConfig) ContainerLifecycleHooks { + return ContainerLifecycleHooks{ + PreCreates: []ContainerRequestHook{ + func(ctx context.Context, req ContainerRequest) error { + return p.preCreateContainerHook(ctx, req, dockerInput, hostConfig, networkingConfig) + }, + }, + } +} + +// defaultCopyFileToContainerHook is a hook that will copy files to the container after it's created +// but before it's started +var defaultCopyFileToContainerHook = func(files []ContainerFile) ContainerLifecycleHooks { + return ContainerLifecycleHooks{ + PostCreates: []ContainerHook{ + // copy files to container after it's created + func(ctx context.Context, c Container) error { + for _, f := range files { + err := c.CopyFileToContainer(ctx, f.HostFilePath, f.ContainerFilePath, f.FileMode) + if err != nil { + return fmt.Errorf("can't copy %s to container: %w", f.HostFilePath, err) + } + } + + return nil + }, + }, + } +} + +// defaultLogConsumersHook is a hook that will start log consumers after the container is started +var defaultLogConsumersHook = func(cfg *LogConsumerConfig) ContainerLifecycleHooks { + return ContainerLifecycleHooks{ + PostStarts: []ContainerHook{ + // first post-start hook is to produce logs and start log consumers + func(ctx context.Context, c Container) error { + dockerContainer := c.(*DockerContainer) + + if cfg == nil { + return nil + } + + for _, consumer := range cfg.Consumers { + dockerContainer.followOutput(consumer) + } + + if len(cfg.Consumers) > 0 { + return dockerContainer.startLogProduction(ctx, cfg.Opts...) + } + return nil + }, + }, + PreTerminates: []ContainerHook{ + // first pre-terminate hook is to stop the log production + func(ctx context.Context, c Container) error { + if cfg == nil || len(cfg.Consumers) == 0 { + return nil + } + + dockerContainer := c.(*DockerContainer) + + return dockerContainer.stopLogProduction() + }, + }, + } +} + +// defaultReadinessHook is a hook that will wait for the container to be ready +var defaultReadinessHook = func() ContainerLifecycleHooks { + return ContainerLifecycleHooks{ + PostStarts: []ContainerHook{ + // wait for the container to be ready + func(ctx context.Context, c Container) error { + dockerContainer := c.(*DockerContainer) + + // if a Wait Strategy has been specified, wait before returning + if dockerContainer.WaitingFor != nil { + dockerContainer.logger.Printf( + "🚧 Waiting for container id %s image: %s. Waiting for: %+v", + dockerContainer.ID[:12], dockerContainer.Image, dockerContainer.WaitingFor, + ) + if err := dockerContainer.WaitingFor.WaitUntilReady(ctx, c); err != nil { + return err + } + } + + dockerContainer.isRunning = true + + return nil + }, + }, + } +} + // creatingHook is a hook that will be called before a container is created. func (req ContainerRequest) creatingHook(ctx context.Context) error { for _, lifecycleHooks := range req.LifecycleHooks { @@ -152,6 +257,19 @@ func (c *DockerContainer) startedHook(ctx context.Context) error { return nil } +// readiedHook is a hook that will be called after a container is ready +func (c *DockerContainer) readiedHook(ctx context.Context) error { + for _, lifecycleHooks := range c.lifecycleHooks { + err := containerHookFn(ctx, lifecycleHooks.PostReadies)(c) + if err != nil { + c.printLogs(ctx, err) + return err + } + } + + return nil +} + // printLogs is a helper function that will print the logs of a Docker container // We are going to use this helper function to inform the user of the logs when an error occurs func (c *DockerContainer) printLogs(ctx context.Context, cause error) { @@ -260,6 +378,11 @@ func (c ContainerLifecycleHooks) Started(ctx context.Context) func(container Con return containerHookFn(ctx, c.PostStarts) } +// Readied is a hook that will be called after a container is ready +func (c ContainerLifecycleHooks) Readied(ctx context.Context) func(container Container) error { + return containerHookFn(ctx, c.PostReadies) +} + // Stopping is a hook that will be called before a container is stopped func (c ContainerLifecycleHooks) Stopping(ctx context.Context) func(container Container) error { return containerHookFn(ctx, c.PreStops) @@ -352,6 +475,67 @@ func (p *DockerProvider) preCreateContainerHook(ctx context.Context, req Contain return nil } +// combineContainerHooks it returns just one ContainerLifecycle hook, as the result of combining +// the default hooks with the user-defined hooks. The function will loop over all the default hooks, +// storing each of the hooks in a slice, and then it will loop over all the user-defined hooks, +// appending or prepending them to the slice of hooks. The order of hooks is the following: +// - for Pre-hooks, always run the default hooks first, then append the user-defined hooks +// - for Post-hooks, always run the user-defined hooks first, then the default hooks +func combineContainerHooks(defaultHooks, userDefinedHooks []ContainerLifecycleHooks) ContainerLifecycleHooks { + preCreates := []ContainerRequestHook{} + postCreates := []ContainerHook{} + preStarts := []ContainerHook{} + postStarts := []ContainerHook{} + postReadies := []ContainerHook{} + preStops := []ContainerHook{} + postStops := []ContainerHook{} + preTerminates := []ContainerHook{} + postTerminates := []ContainerHook{} + + for _, defaultHook := range defaultHooks { + preCreates = append(preCreates, defaultHook.PreCreates...) + preStarts = append(preStarts, defaultHook.PreStarts...) + preStops = append(preStops, defaultHook.PreStops...) + preTerminates = append(preTerminates, defaultHook.PreTerminates...) + } + + // append the user-defined hooks after the default pre-hooks + // and because the post hooks are still empty, the user-defined post-hooks + // will be the first ones to be executed + for _, userDefinedHook := range userDefinedHooks { + preCreates = append(preCreates, userDefinedHook.PreCreates...) + postCreates = append(postCreates, userDefinedHook.PostCreates...) + preStarts = append(preStarts, userDefinedHook.PreStarts...) + postStarts = append(postStarts, userDefinedHook.PostStarts...) + postReadies = append(postReadies, userDefinedHook.PostReadies...) + preStops = append(preStops, userDefinedHook.PreStops...) + postStops = append(postStops, userDefinedHook.PostStops...) + preTerminates = append(preTerminates, userDefinedHook.PreTerminates...) + postTerminates = append(postTerminates, userDefinedHook.PostTerminates...) + } + + // finally, append the default post-hooks + for _, defaultHook := range defaultHooks { + postCreates = append(postCreates, defaultHook.PostCreates...) + postStarts = append(postStarts, defaultHook.PostStarts...) + postReadies = append(postReadies, defaultHook.PostReadies...) + postStops = append(postStops, defaultHook.PostStops...) + postTerminates = append(postTerminates, defaultHook.PostTerminates...) + } + + return ContainerLifecycleHooks{ + PreCreates: preCreates, + PostCreates: postCreates, + PreStarts: preStarts, + PostStarts: postStarts, + PostReadies: postReadies, + PreStops: preStops, + PostStops: postStops, + PreTerminates: preTerminates, + PostTerminates: postTerminates, + } +} + func mergePortBindings(configPortMap, exposedPortMap nat.PortMap, exposedPorts []string) nat.PortMap { if exposedPortMap == nil { exposedPortMap = make(map[nat.Port][]nat.PortBinding) diff --git a/lifecycle_test.go b/lifecycle_test.go index ac8d8e1ee3..6316df739e 100644 --- a/lifecycle_test.go +++ b/lifecycle_test.go @@ -489,6 +489,16 @@ func TestLifecycleHooks(t *testing.T) { return nil }, }, + PostReadies: []ContainerHook{ + func(ctx context.Context, c Container) error { + prints = append(prints, fmt.Sprintf("post-ready hook 1: %#v", c)) + return nil + }, + func(ctx context.Context, c Container) error { + prints = append(prints, fmt.Sprintf("post-ready hook 2: %#v", c)) + return nil + }, + }, PreStops: []ContainerHook{ func(ctx context.Context, c Container) error { prints = append(prints, fmt.Sprintf("pre-stop hook 1: %#v", c)) @@ -556,11 +566,12 @@ func TestLifecycleHooks(t *testing.T) { err = c.Terminate(ctx) require.NoError(t, err) - lifecycleHooksIsHonouredFn(t, ctx, c, prints) + lifecycleHooksIsHonouredFn(t, ctx, prints) }) } } +// customLoggerImplementation { type inMemoryLogger struct { data []string } @@ -569,6 +580,8 @@ func (l *inMemoryLogger) Printf(format string, args ...interface{}) { l.data = append(l.data, fmt.Sprintf(format, args...)) } +// } + func TestLifecycleHooks_WithDefaultLogger(t *testing.T) { ctx := context.Background() @@ -600,7 +613,140 @@ func TestLifecycleHooks_WithDefaultLogger(t *testing.T) { err = c.Terminate(ctx) require.NoError(t, err) - require.Len(t, dl.data, 10) + require.Len(t, dl.data, 12) +} + +func TestCombineLifecycleHooks(t *testing.T) { + prints := []string{} + + preCreateFunc := func(prefix string, hook string, lifecycleID int, hookID int) func(ctx context.Context, req ContainerRequest) error { + return func(ctx context.Context, _ ContainerRequest) error { + prints = append(prints, fmt.Sprintf("[%s] pre-%s hook %d.%d", prefix, hook, lifecycleID, hookID)) + return nil + } + } + hookFunc := func(prefix string, hookType string, hook string, lifecycleID int, hookID int) func(ctx context.Context, c Container) error { + return func(ctx context.Context, _ Container) error { + prints = append(prints, fmt.Sprintf("[%s] %s-%s hook %d.%d", prefix, hookType, hook, lifecycleID, hookID)) + return nil + } + } + preFunc := func(prefix string, hook string, lifecycleID int, hookID int) func(ctx context.Context, c Container) error { + return hookFunc(prefix, "pre", hook, lifecycleID, hookID) + } + postFunc := func(prefix string, hook string, lifecycleID int, hookID int) func(ctx context.Context, c Container) error { + return hookFunc(prefix, "post", hook, lifecycleID, hookID) + } + + lifecycleHookFunc := func(prefix string, lifecycleID int) ContainerLifecycleHooks { + return ContainerLifecycleHooks{ + PreCreates: []ContainerRequestHook{preCreateFunc(prefix, "create", lifecycleID, 1), preCreateFunc(prefix, "create", lifecycleID, 2)}, + PostCreates: []ContainerHook{postFunc(prefix, "create", lifecycleID, 1), postFunc(prefix, "create", lifecycleID, 2)}, + PreStarts: []ContainerHook{preFunc(prefix, "start", lifecycleID, 1), preFunc(prefix, "start", lifecycleID, 2)}, + PostStarts: []ContainerHook{postFunc(prefix, "start", lifecycleID, 1), postFunc(prefix, "start", lifecycleID, 2)}, + PostReadies: []ContainerHook{postFunc(prefix, "ready", lifecycleID, 1), postFunc(prefix, "ready", lifecycleID, 2)}, + PreStops: []ContainerHook{preFunc(prefix, "stop", lifecycleID, 1), preFunc(prefix, "stop", lifecycleID, 2)}, + PostStops: []ContainerHook{postFunc(prefix, "stop", lifecycleID, 1), postFunc(prefix, "stop", lifecycleID, 2)}, + PreTerminates: []ContainerHook{preFunc(prefix, "terminate", lifecycleID, 1), preFunc(prefix, "terminate", lifecycleID, 2)}, + PostTerminates: []ContainerHook{postFunc(prefix, "terminate", lifecycleID, 1), postFunc(prefix, "terminate", lifecycleID, 2)}, + } + } + + defaultHooks := []ContainerLifecycleHooks{lifecycleHookFunc("default", 1), lifecycleHookFunc("default", 2)} + userDefinedHooks := []ContainerLifecycleHooks{lifecycleHookFunc("user-defined", 1), lifecycleHookFunc("user-defined", 2), lifecycleHookFunc("user-defined", 3)} + + hooks := combineContainerHooks(defaultHooks, userDefinedHooks) + + // call all the hooks in the right order, honouring the lifecycle + + req := ContainerRequest{} + err := hooks.Creating(context.Background())(req) + require.NoError(t, err) + + c := &DockerContainer{} + + err = hooks.Created(context.Background())(c) + require.NoError(t, err) + err = hooks.Starting(context.Background())(c) + require.NoError(t, err) + err = hooks.Started(context.Background())(c) + require.NoError(t, err) + err = hooks.Readied(context.Background())(c) + require.NoError(t, err) + err = hooks.Stopping(context.Background())(c) + require.NoError(t, err) + err = hooks.Stopped(context.Background())(c) + require.NoError(t, err) + err = hooks.Terminating(context.Background())(c) + require.NoError(t, err) + err = hooks.Terminated(context.Background())(c) + require.NoError(t, err) + + // assertions + + // There are 2 default container lifecycle hooks and 3 user-defined container lifecycle hooks. + // Each lifecycle hook has 2 pre-create hooks and 2 post-create hooks. + // That results in 16 hooks per lifecycle (8 defaults + 12 user-defined = 20) + + // There are 5 lifecycles (create, start, ready, stop, terminate), + // but ready has only half of the hooks (it only has post), so we have 90 hooks in total. + assert.Len(t, prints, 90) + + // The order of the hooks is: + // - pre-X hooks: first default (2*2), then user-defined (3*2) + // - post-X hooks: first user-defined (3*2), then default (2*2) + + for i := 0; i < 5; i++ { + var hookType string + // this is the particular order of execution for the hooks + switch i { + case 0: + hookType = "create" + case 1: + hookType = "start" + case 2: + hookType = "ready" + case 3: + hookType = "stop" + case 4: + hookType = "terminate" + } + + initialIndex := i * 20 + if i >= 2 { + initialIndex -= 10 + } + + if hookType != "ready" { + // default pre-hooks: 4 hooks + assert.Equal(t, fmt.Sprintf("[default] pre-%s hook 1.1", hookType), prints[initialIndex]) + assert.Equal(t, fmt.Sprintf("[default] pre-%s hook 1.2", hookType), prints[initialIndex+1]) + assert.Equal(t, fmt.Sprintf("[default] pre-%s hook 2.1", hookType), prints[initialIndex+2]) + assert.Equal(t, fmt.Sprintf("[default] pre-%s hook 2.2", hookType), prints[initialIndex+3]) + + // user-defined pre-hooks: 6 hooks + assert.Equal(t, fmt.Sprintf("[user-defined] pre-%s hook 1.1", hookType), prints[initialIndex+4]) + assert.Equal(t, fmt.Sprintf("[user-defined] pre-%s hook 1.2", hookType), prints[initialIndex+5]) + assert.Equal(t, fmt.Sprintf("[user-defined] pre-%s hook 2.1", hookType), prints[initialIndex+6]) + assert.Equal(t, fmt.Sprintf("[user-defined] pre-%s hook 2.2", hookType), prints[initialIndex+7]) + assert.Equal(t, fmt.Sprintf("[user-defined] pre-%s hook 3.1", hookType), prints[initialIndex+8]) + assert.Equal(t, fmt.Sprintf("[user-defined] pre-%s hook 3.2", hookType), prints[initialIndex+9]) + } + + // user-defined post-hooks: 6 hooks + assert.Equal(t, fmt.Sprintf("[user-defined] post-%s hook 1.1", hookType), prints[initialIndex+10]) + assert.Equal(t, fmt.Sprintf("[user-defined] post-%s hook 1.2", hookType), prints[initialIndex+11]) + assert.Equal(t, fmt.Sprintf("[user-defined] post-%s hook 2.1", hookType), prints[initialIndex+12]) + assert.Equal(t, fmt.Sprintf("[user-defined] post-%s hook 2.2", hookType), prints[initialIndex+13]) + assert.Equal(t, fmt.Sprintf("[user-defined] post-%s hook 3.1", hookType), prints[initialIndex+14]) + assert.Equal(t, fmt.Sprintf("[user-defined] post-%s hook 3.2", hookType), prints[initialIndex+15]) + + // default post-hooks: 4 hooks + assert.Equal(t, fmt.Sprintf("[default] post-%s hook 1.1", hookType), prints[initialIndex+16]) + assert.Equal(t, fmt.Sprintf("[default] post-%s hook 1.2", hookType), prints[initialIndex+17]) + assert.Equal(t, fmt.Sprintf("[default] post-%s hook 2.1", hookType), prints[initialIndex+18]) + assert.Equal(t, fmt.Sprintf("[default] post-%s hook 2.2", hookType), prints[initialIndex+19]) + } } func TestLifecycleHooks_WithMultipleHooks(t *testing.T) { @@ -633,7 +779,7 @@ func TestLifecycleHooks_WithMultipleHooks(t *testing.T) { err = c.Terminate(ctx) require.NoError(t, err) - require.Len(t, dl.data, 20) + require.Len(t, dl.data, 24) } type linesTestLogger struct { @@ -646,11 +792,6 @@ func (l *linesTestLogger) Printf(format string, args ...interface{}) { func TestPrintContainerLogsOnError(t *testing.T) { ctx := context.Background() - client, err := NewDockerClientWithOpts(ctx) - if err != nil { - t.Fatal(err) - } - defer client.Close() req := ContainerRequest{ Image: "docker.io/alpine", @@ -705,8 +846,8 @@ func TestPrintContainerLogsOnError(t *testing.T) { } } -func lifecycleHooksIsHonouredFn(t *testing.T, ctx context.Context, container Container, prints []string) { - require.Len(t, prints, 20) +func lifecycleHooksIsHonouredFn(t *testing.T, ctx context.Context, prints []string) { + require.Len(t, prints, 24) assert.True(t, strings.HasPrefix(prints[0], "pre-create hook 1: ")) assert.True(t, strings.HasPrefix(prints[1], "pre-create hook 2: ")) @@ -720,21 +861,27 @@ func lifecycleHooksIsHonouredFn(t *testing.T, ctx context.Context, container Con assert.True(t, strings.HasPrefix(prints[6], "post-start hook 1: ")) assert.True(t, strings.HasPrefix(prints[7], "post-start hook 2: ")) - assert.True(t, strings.HasPrefix(prints[8], "pre-stop hook 1: ")) - assert.True(t, strings.HasPrefix(prints[9], "pre-stop hook 2: ")) + assert.True(t, strings.HasPrefix(prints[8], "post-ready hook 1: ")) + assert.True(t, strings.HasPrefix(prints[9], "post-ready hook 2: ")) + + assert.True(t, strings.HasPrefix(prints[10], "pre-stop hook 1: ")) + assert.True(t, strings.HasPrefix(prints[11], "pre-stop hook 2: ")) + + assert.True(t, strings.HasPrefix(prints[12], "post-stop hook 1: ")) + assert.True(t, strings.HasPrefix(prints[13], "post-stop hook 2: ")) - assert.True(t, strings.HasPrefix(prints[10], "post-stop hook 1: ")) - assert.True(t, strings.HasPrefix(prints[11], "post-stop hook 2: ")) + assert.True(t, strings.HasPrefix(prints[14], "pre-start hook 1: ")) + assert.True(t, strings.HasPrefix(prints[15], "pre-start hook 2: ")) - assert.True(t, strings.HasPrefix(prints[12], "pre-start hook 1: ")) - assert.True(t, strings.HasPrefix(prints[13], "pre-start hook 2: ")) + assert.True(t, strings.HasPrefix(prints[16], "post-start hook 1: ")) + assert.True(t, strings.HasPrefix(prints[17], "post-start hook 2: ")) - assert.True(t, strings.HasPrefix(prints[14], "post-start hook 1: ")) - assert.True(t, strings.HasPrefix(prints[15], "post-start hook 2: ")) + assert.True(t, strings.HasPrefix(prints[18], "post-ready hook 1: ")) + assert.True(t, strings.HasPrefix(prints[19], "post-ready hook 2: ")) - assert.True(t, strings.HasPrefix(prints[16], "pre-terminate hook 1: ")) - assert.True(t, strings.HasPrefix(prints[17], "pre-terminate hook 2: ")) + assert.True(t, strings.HasPrefix(prints[20], "pre-terminate hook 1: ")) + assert.True(t, strings.HasPrefix(prints[21], "pre-terminate hook 2: ")) - assert.True(t, strings.HasPrefix(prints[18], "post-terminate hook 1: ")) - assert.True(t, strings.HasPrefix(prints[19], "post-terminate hook 2: ")) + assert.True(t, strings.HasPrefix(prints[22], "post-terminate hook 1: ")) + assert.True(t, strings.HasPrefix(prints[23], "post-terminate hook 2: ")) } diff --git a/modules/cassandra/cassandra.go b/modules/cassandra/cassandra.go index 8956927ae5..c37c10d90d 100644 --- a/modules/cassandra/cassandra.go +++ b/modules/cassandra/cassandra.go @@ -55,6 +55,7 @@ func WithConfigFile(configFile string) testcontainers.CustomizeRequestOption { func WithInitScripts(scripts ...string) testcontainers.CustomizeRequestOption { return func(req *testcontainers.GenericContainerRequest) { var initScripts []testcontainers.ContainerFile + var execs []testcontainers.Executable for _, script := range scripts { cf := testcontainers.ContainerFile{ HostFilePath: script, @@ -63,9 +64,11 @@ func WithInitScripts(scripts ...string) testcontainers.CustomizeRequestOption { } initScripts = append(initScripts, cf) - testcontainers.WithStartupCommand(initScript{File: cf.ContainerFilePath})(req) + execs = append(execs, initScript{File: cf.ContainerFilePath}) } + req.Files = append(req.Files, initScripts...) + testcontainers.WithAfterReadyCommand(execs...)(req) } } diff --git a/modules/elasticsearch/elasticsearch.go b/modules/elasticsearch/elasticsearch.go index 9dfd95904b..79a364fd01 100644 --- a/modules/elasticsearch/elasticsearch.go +++ b/modules/elasticsearch/elasticsearch.go @@ -52,6 +52,7 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize { // the container needs a post create hook to set the default JVM options in a file PostCreates: []testcontainers.ContainerHook{}, + PostReadies: []testcontainers.ContainerHook{}, }, }, }, @@ -126,9 +127,9 @@ func configureAddress(ctx context.Context, c *ElasticsearchContainer) (string, e // The certificate is only available since version 8, and will be located in a well-known location. func configureCertificate(settings *Options, req *testcontainers.GenericContainerRequest) error { if isAtLeastVersion(req.Image, 8) { - // The container needs a post start hook to copy the certificate from the container to the host. + // The container needs a post ready hook to copy the certificate from the container to the host. // This certificate is only available since version 8 - req.LifecycleHooks[0].PostStarts = append(req.LifecycleHooks[0].PostStarts, + req.LifecycleHooks[0].PostReadies = append(req.LifecycleHooks[0].PostReadies, func(ctx context.Context, container testcontainers.Container) error { const defaultCaCertPath = "/usr/share/elasticsearch/config/certs/http_ca.crt" diff --git a/modules/openldap/openldap.go b/modules/openldap/openldap.go index 03d8b4e379..e29658c639 100644 --- a/modules/openldap/openldap.go +++ b/modules/openldap/openldap.go @@ -94,7 +94,7 @@ func WithInitialLdif(ldif string) testcontainers.CustomizeRequestOption { }) req.LifecycleHooks = append(req.LifecycleHooks, testcontainers.ContainerLifecycleHooks{ - PostStarts: []testcontainers.ContainerHook{ + PostReadies: []testcontainers.ContainerHook{ func(ctx context.Context, container testcontainers.Container) error { username := req.Env["LDAP_ADMIN_USERNAME"] rootDn := req.Env["LDAP_ROOT"] @@ -128,6 +128,11 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize wait.ForLog("** Starting slapd **"), wait.ForListeningPort("1389/tcp"), ), + LifecycleHooks: []testcontainers.ContainerLifecycleHooks{ + { + PostReadies: []testcontainers.ContainerHook{}, + }, + }, } genericContainerReq := testcontainers.GenericContainerRequest{ diff --git a/modules/rabbitmq/examples_test.go b/modules/rabbitmq/examples_test.go index f24bae0169..a6fc829424 100644 --- a/modules/rabbitmq/examples_test.go +++ b/modules/rabbitmq/examples_test.go @@ -131,7 +131,7 @@ func ExampleRunContainer_withPlugins() { testcontainers.WithImage("rabbitmq:3.7.25-management-alpine"), // Multiple test implementations of the Executable interface, specific to RabbitMQ, exist in the types_test.go file. // Please refer to them for more examples. - testcontainers.WithStartupCommand( + testcontainers.WithAfterReadyCommand( testcontainers.NewRawCommand([]string{"rabbitmq_shovel"}), testcontainers.NewRawCommand([]string{"rabbitmq_random_exchange"}), ), diff --git a/modules/rabbitmq/rabbitmq_test.go b/modules/rabbitmq/rabbitmq_test.go index 6636da3061..0c85c66607 100644 --- a/modules/rabbitmq/rabbitmq_test.go +++ b/modules/rabbitmq/rabbitmq_test.go @@ -48,17 +48,17 @@ func TestRunContainer_withAllSettings(t *testing.T) { rabbitmqContainer, err := rabbitmq.RunContainer(ctx, testcontainers.WithImage("rabbitmq:3.12.11-management-alpine"), // addVirtualHosts { - testcontainers.WithStartupCommand(VirtualHost{Name: "vhost1"}), - testcontainers.WithStartupCommand(VirtualHostLimit{VHost: "vhost1", Name: "max-connections", Value: 1}), - testcontainers.WithStartupCommand(VirtualHost{Name: "vhost2", Tracing: true}), + testcontainers.WithAfterReadyCommand(VirtualHost{Name: "vhost1"}), + testcontainers.WithAfterReadyCommand(VirtualHostLimit{VHost: "vhost1", Name: "max-connections", Value: 1}), + testcontainers.WithAfterReadyCommand(VirtualHost{Name: "vhost2", Tracing: true}), // } // addExchanges { - testcontainers.WithStartupCommand(Exchange{Name: "direct-exchange", Type: "direct"}), - testcontainers.WithStartupCommand(Exchange{ + testcontainers.WithAfterReadyCommand(Exchange{Name: "direct-exchange", Type: "direct"}), + testcontainers.WithAfterReadyCommand(Exchange{ Name: "topic-exchange", Type: "topic", }), - testcontainers.WithStartupCommand(Exchange{ + testcontainers.WithAfterReadyCommand(Exchange{ VHost: "vhost1", Name: "topic-exchange-2", Type: "topic", @@ -67,12 +67,12 @@ func TestRunContainer_withAllSettings(t *testing.T) { Durable: true, Args: map[string]interface{}{}, }), - testcontainers.WithStartupCommand(Exchange{ + testcontainers.WithAfterReadyCommand(Exchange{ VHost: "vhost2", Name: "topic-exchange-3", Type: "topic", }), - testcontainers.WithStartupCommand(Exchange{ + testcontainers.WithAfterReadyCommand(Exchange{ Name: "topic-exchange-4", Type: "topic", AutoDelete: false, @@ -82,26 +82,26 @@ func TestRunContainer_withAllSettings(t *testing.T) { }), // } // addQueues { - testcontainers.WithStartupCommand(Queue{Name: "queue1"}), - testcontainers.WithStartupCommand(Queue{ + testcontainers.WithAfterReadyCommand(Queue{Name: "queue1"}), + testcontainers.WithAfterReadyCommand(Queue{ Name: "queue2", AutoDelete: true, Durable: false, Args: map[string]interface{}{"x-message-ttl": 1000}, }), - testcontainers.WithStartupCommand(Queue{ + testcontainers.WithAfterReadyCommand(Queue{ VHost: "vhost1", Name: "queue3", AutoDelete: true, Durable: false, Args: map[string]interface{}{"x-message-ttl": 1000}, }), - testcontainers.WithStartupCommand(Queue{VHost: "vhost2", Name: "queue4"}), + testcontainers.WithAfterReadyCommand(Queue{VHost: "vhost2", Name: "queue4"}), // } // addBindings { - testcontainers.WithStartupCommand(NewBinding("direct-exchange", "queue1")), - testcontainers.WithStartupCommand(NewBindingWithVHost("vhost1", "topic-exchange-2", "queue3")), - testcontainers.WithStartupCommand(Binding{ + testcontainers.WithAfterReadyCommand(NewBinding("direct-exchange", "queue1")), + testcontainers.WithAfterReadyCommand(NewBindingWithVHost("vhost1", "topic-exchange-2", "queue3")), + testcontainers.WithAfterReadyCommand(Binding{ VHost: "vhost2", Source: "topic-exchange-3", Destination: "queue4", @@ -111,33 +111,33 @@ func TestRunContainer_withAllSettings(t *testing.T) { }), // } // addUsers { - testcontainers.WithStartupCommand(User{ + testcontainers.WithAfterReadyCommand(User{ Name: "user1", Password: "password1", }), - testcontainers.WithStartupCommand(User{ + testcontainers.WithAfterReadyCommand(User{ Name: "user2", Password: "password2", Tags: []string{"administrator"}, }), // } // addPermissions { - testcontainers.WithStartupCommand(NewPermission("vhost1", "user1", ".*", ".*", ".*")), + testcontainers.WithAfterReadyCommand(NewPermission("vhost1", "user1", ".*", ".*", ".*")), // } // addPolicies { - testcontainers.WithStartupCommand(Policy{ + testcontainers.WithAfterReadyCommand(Policy{ Name: "max length policy", Pattern: "^dog", Definition: map[string]interface{}{"max-length": 1}, Priority: 1, ApplyTo: "queues", }), - testcontainers.WithStartupCommand(Policy{ + testcontainers.WithAfterReadyCommand(Policy{ Name: "alternate exchange policy", Pattern: "^direct-exchange", Definition: map[string]interface{}{"alternate-exchange": "amq.direct"}, }), - testcontainers.WithStartupCommand(Policy{ + testcontainers.WithAfterReadyCommand(Policy{ VHost: "vhost2", Name: "ha-all", Pattern: ".*", @@ -146,7 +146,7 @@ func TestRunContainer_withAllSettings(t *testing.T) { "ha-sync-mode": "automatic", }, }), - testcontainers.WithStartupCommand(OperatorPolicy{ + testcontainers.WithAfterReadyCommand(OperatorPolicy{ Name: "operator policy 1", Pattern: "^queue1", Definition: map[string]interface{}{"message-ttl": 1000}, @@ -155,7 +155,7 @@ func TestRunContainer_withAllSettings(t *testing.T) { }), // } // enablePlugins { - testcontainers.WithStartupCommand(Plugin{Name: "rabbitmq_shovel"}, Plugin{Name: "rabbitmq_random_exchange"}), + testcontainers.WithAfterReadyCommand(Plugin{Name: "rabbitmq_shovel"}, Plugin{Name: "rabbitmq_random_exchange"}), // } ) if err != nil { diff --git a/options.go b/options.go index 40bf671bcc..13711e8b56 100644 --- a/options.go +++ b/options.go @@ -201,6 +201,28 @@ func WithStartupCommand(execs ...Executable) CustomizeRequestOption { } } +// WithAfterReadyCommand will execute the command representation of each Executable into the container. +// It will leverage the container lifecycle hooks to call the command right after the container +// is ready. +func WithAfterReadyCommand(execs ...Executable) CustomizeRequestOption { + return func(req *GenericContainerRequest) { + postReadiesHook := []ContainerHook{} + + for _, exec := range execs { + execFn := func(ctx context.Context, c Container) error { + _, _, err := c.Exec(ctx, exec.AsCommand(), exec.Options()...) + return err + } + + postReadiesHook = append(postReadiesHook, execFn) + } + + req.LifecycleHooks = append(req.LifecycleHooks, ContainerLifecycleHooks{ + PostReadies: postReadiesHook, + }) + } +} + // WithWaitStrategy sets the wait strategy for a container, using 60 seconds as deadline func WithWaitStrategy(strategies ...wait.Strategy) CustomizeRequestOption { return WithWaitStrategyAndDeadline(60*time.Second, strategies...) diff --git a/options_test.go b/options_test.go index f402d42b7c..e13642ac09 100644 --- a/options_test.go +++ b/options_test.go @@ -131,3 +131,34 @@ func TestWithStartupCommand(t *testing.T) { require.NoError(t, err) assert.Equal(t, "/tmp/.testcontainers\n", string(content)) } + +func TestWithAfterReadyCommand(t *testing.T) { + req := testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Image: "alpine", + Entrypoint: []string{"tail", "-f", "/dev/null"}, + }, + Started: true, + } + + testExec := testcontainers.NewRawCommand([]string{"touch", "/tmp/.testcontainers"}) + + testcontainers.WithAfterReadyCommand(testExec)(&req) + + assert.Len(t, req.LifecycleHooks, 1) + assert.Len(t, req.LifecycleHooks[0].PostReadies, 1) + + c, err := testcontainers.GenericContainer(context.Background(), req) + require.NoError(t, err) + defer func() { + err = c.Terminate(context.Background()) + require.NoError(t, err) + }() + + _, reader, err := c.Exec(context.Background(), []string{"ls", "/tmp/.testcontainers"}, exec.Multiplexed()) + require.NoError(t, err) + + content, err := io.ReadAll(reader) + require.NoError(t, err) + assert.Equal(t, "/tmp/.testcontainers\n", string(content)) +} From 357cff81c2e44ce1c27112244dce4d40229be347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 11:54:11 +0100 Subject: [PATCH 019/115] chore: use new version (v0.28.0) in modules and examples --- docs/features/common_functional_options.md | 4 ++-- docs/modules/cockroachdb.md | 2 +- docs/modules/consul.md | 2 +- docs/modules/inbucket.md | 2 +- docs/modules/minio.md | 2 +- docs/modules/mockserver.md | 2 +- docs/modules/openldap.md | 2 +- examples/nginx/go.mod | 2 +- examples/toxiproxy/go.mod | 2 +- mkdocs.yml | 2 +- modules/artemis/go.mod | 2 +- modules/cassandra/go.mod | 2 +- modules/clickhouse/go.mod | 2 +- modules/cockroachdb/go.mod | 2 +- modules/compose/go.mod | 2 +- modules/consul/go.mod | 2 +- modules/couchbase/go.mod | 2 +- modules/elasticsearch/go.mod | 2 +- modules/gcloud/go.mod | 2 +- modules/inbucket/go.mod | 2 +- modules/k3s/go.mod | 2 +- modules/k6/go.mod | 2 +- modules/kafka/go.mod | 2 +- modules/localstack/go.mod | 2 +- modules/mariadb/go.mod | 2 +- modules/minio/go.mod | 2 +- modules/mockserver/go.mod | 2 +- modules/mongodb/go.mod | 2 +- modules/mssql/go.mod | 2 +- modules/mysql/go.mod | 2 +- modules/nats/go.mod | 2 +- modules/neo4j/go.mod | 2 +- modules/openldap/go.mod | 2 +- modules/postgres/go.mod | 2 +- modules/pulsar/go.mod | 2 +- modules/rabbitmq/go.mod | 2 +- modules/redis/go.mod | 2 +- modules/redpanda/go.mod | 2 +- modules/vault/go.mod | 2 +- sonar-project.properties | 2 +- 40 files changed, 41 insertions(+), 41 deletions(-) diff --git a/docs/features/common_functional_options.md b/docs/features/common_functional_options.md index ad617ed814..e9f35bcaff 100644 --- a/docs/features/common_functional_options.md +++ b/docs/features/common_functional_options.md @@ -17,7 +17,7 @@ Using the `WithImageSubstitutors` options, you could define your own substitutio #### WithLogConsumers -- Not available until the next release of testcontainers-go :material-tag: main +- Since testcontainers-go :material-tag: v0.28.0 If you need to consume the logs of the container, you can use `testcontainers.WithLogConsumers` with a valid log consumer. An example of a log consumer is the following: @@ -60,7 +60,7 @@ You could use this feature to run a custom script, or to run a command that is n #### Ready Commands -- Not available until the next release of testcontainers-go :material-tag: main +- Since testcontainers-go :material-tag: v0.28.0 Testcontainers exposes the `WithAfterReadyCommand(e ...Executable)` option to run arbitrary commands in the container right after it's ready, which happens when the defined wait strategies have finished with success. diff --git a/docs/modules/cockroachdb.md b/docs/modules/cockroachdb.md index a3dd3d84bb..51c845b9f4 100644 --- a/docs/modules/cockroachdb.md +++ b/docs/modules/cockroachdb.md @@ -1,6 +1,6 @@ # CockroachDB -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.28.0 ## Introduction diff --git a/docs/modules/consul.md b/docs/modules/consul.md index ba21cc39b1..e094efed9e 100644 --- a/docs/modules/consul.md +++ b/docs/modules/consul.md @@ -1,6 +1,6 @@ # Consul -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.28.0 ## Introduction diff --git a/docs/modules/inbucket.md b/docs/modules/inbucket.md index 729538d831..eb94a0b918 100644 --- a/docs/modules/inbucket.md +++ b/docs/modules/inbucket.md @@ -1,6 +1,6 @@ # Inbucket -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.28.0 ## Introduction diff --git a/docs/modules/minio.md b/docs/modules/minio.md index 6205aa7725..141aae23fe 100644 --- a/docs/modules/minio.md +++ b/docs/modules/minio.md @@ -1,6 +1,6 @@ # Minio -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.28.0 ## Introduction diff --git a/docs/modules/mockserver.md b/docs/modules/mockserver.md index 30c8520ecc..4ebc2bd732 100644 --- a/docs/modules/mockserver.md +++ b/docs/modules/mockserver.md @@ -1,6 +1,6 @@ # MockServer -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.28.0 ## Introduction diff --git a/docs/modules/openldap.md b/docs/modules/openldap.md index 48b545c8c1..b7311a61d0 100644 --- a/docs/modules/openldap.md +++ b/docs/modules/openldap.md @@ -1,6 +1,6 @@ # OpenLDAP -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.28.0 ## Introduction diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 985bea4009..d649e5329a 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -2,7 +2,7 @@ module github.com/testcontainers/testcontainers-go/examples/nginx go 1.20 -require github.com/testcontainers/testcontainers-go v0.27.0 +require github.com/testcontainers/testcontainers-go v0.28.0 replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 14558bc876..aeb6dc5e17 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -6,7 +6,7 @@ require ( github.com/Shopify/toxiproxy/v2 v2.7.0 github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/mkdocs.yml b/mkdocs.yml index cbee932874..a4138d35f8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -117,4 +117,4 @@ nav: - Getting help: getting_help.md edit_uri: edit/main/docs/ extra: - latest_version: v0.27.0 + latest_version: v0.28.0 diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 0cf10e3fbf..764401ece1 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/go-stomp/stomp/v3 v3.0.5 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index 8185e610da..94c4f628f2 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/gocql/gocql v1.6.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index d245446c49..ef8015b146 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -7,7 +7,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 5f59c47288..ae5217a7b4 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/jackc/pgx/v5 v5.5.2 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/compose/go.mod b/modules/compose/go.mod index 04542ac1f3..2832604328 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -13,7 +13,7 @@ require ( github.com/docker/docker v25.0.2+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/sync v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/modules/consul/go.mod b/modules/consul/go.mod index f1adfded88..921057679d 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/hashicorp/consul/api v1.27.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 5804302c72..a3000d29d3 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -6,7 +6,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/couchbase/gocb/v2 v2.7.1 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 github.com/tidwall/gjson v1.17.0 ) diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 55a7eeb95e..e9067f2e03 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/elastic/go-elasticsearch/v8 v8.11.1 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/mod v0.14.0 ) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 6e5a145b5c..849bef64e9 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -10,7 +10,7 @@ require ( cloud.google.com/go/pubsub v1.36.1 cloud.google.com/go/spanner v1.56.0 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 google.golang.org/api v0.160.0 google.golang.org/grpc v1.61.0 ) diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 47de310026..8013c7b60b 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/inbucket/inbucket v2.0.0+incompatible - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index c1fa18d823..937bc83a2a 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.29.1 k8s.io/apimachinery v0.29.1 diff --git a/modules/k6/go.mod b/modules/k6/go.mod index c78526c823..eb809d5122 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/docker/docker v25.0.2+incompatible - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 9c0b79ea4a..900f11ef65 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/IBM/sarama v1.42.1 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/mod v0.14.0 ) diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 08ccd695b2..5f0d9e6c70 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -11,7 +11,7 @@ require ( github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/mod v0.12.0 ) diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index 2bf48e19a3..159d435700 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/minio/go.mod b/modules/minio/go.mod index bef817a8d7..6c5dfb5369 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/minio/minio-go/v7 v7.0.66 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index 61eb09cd43..c7abe31c04 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/BraspagDevelopers/mock-server-client v0.2.2 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index 6ba600da5c..37d1059c5e 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/mongodb go 1.20 require ( - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 go.mongodb.org/mongo-driver v1.13.1 ) diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index d8c962d13a..45b3041a34 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/microsoft/go-mssqldb v1.6.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index 700536008d..086a3774cc 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/nats/go.mod b/modules/nats/go.mod index b32bf15f13..375dc648ab 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/nats-io/nats.go v1.32.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index f36ddf50b5..b7bd5c681b 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/docker/go-connections v0.5.0 github.com/neo4j/neo4j-go-driver/v5 v5.16.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index ad7d5e90f0..e320ee4ab1 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/go-ldap/ldap/v3 v3.4.6 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index f2e28fd416..16ab32cb19 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -7,7 +7,7 @@ require ( github.com/jackc/pgx/v5 v5.5.3 github.com/lib/pq v1.10.9 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 5569b4915a..36195ceedb 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -7,7 +7,7 @@ require ( github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index d5355ecd5d..a6df65925f 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/docker/go-connections v0.5.0 github.com/rabbitmq/amqp091-go v1.9.0 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) require ( diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 072d482246..2c777fba77 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -6,7 +6,7 @@ require ( github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index dbb03f42aa..1e30aa58c9 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 github.com/twmb/franz-go v1.15.4 github.com/twmb/franz-go/pkg/kadm v1.10.0 golang.org/x/mod v0.14.0 diff --git a/modules/vault/go.mod b/modules/vault/go.mod index 5a76aea19f..46653e043f 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/docker v25.0.2+incompatible github.com/hashicorp/vault-client-go v0.3.3 github.com/stretchr/testify v1.8.4 - github.com/testcontainers/testcontainers-go v0.27.0 + github.com/testcontainers/testcontainers-go v0.28.0 github.com/tidwall/gjson v1.17.0 ) diff --git a/sonar-project.properties b/sonar-project.properties index 25d6e50b0d..588a152626 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -7,7 +7,7 @@ sonar.projectKey=testcontainers_testcontainers-go sonar.projectName=testcontainers-go -sonar.projectVersion=v0.27.0 +sonar.projectVersion=v0.28.0 sonar.sources=. From b9aecfbfc1501cfc6278306ba550e17bae324e15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 11:54:12 +0100 Subject: [PATCH 020/115] chore: prepare for next minor development cycle (0.29.0) --- internal/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/version.go b/internal/version.go index 6f3488fdbf..79a44f09fb 100644 --- a/internal/version.go +++ b/internal/version.go @@ -1,4 +1,4 @@ package internal // Version is the next development version of the application -const Version = "0.28.0" +const Version = "0.29.0" From 44014477ff52f264ff158799cf1bc6b871634017 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 12:50:29 +0100 Subject: [PATCH 021/115] chore(deps): bump golang.org/x/mod from 0.14.0 to 0.15.0 in /modules/kafka, golang.org/x/mod from 0.14.0 to 0.15.0 in /modulegen (#2237) * chore(deps): bump golang.org/x/mod from 0.14.0 to 0.15.0 in /modulegen Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.14.0 to 0.15.0. - [Commits](https://github.com/golang/mod/compare/v0.14.0...v0.15.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump golang.org/x/mod in /modules/kafka Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.14.0 to 0.15.0. - [Commits](https://github.com/golang/mod/compare/v0.14.0...v0.15.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modulegen/go.mod | 2 +- modulegen/go.sum | 4 ++-- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modulegen/go.mod b/modulegen/go.mod index f6b58d063e..def55e15b9 100644 --- a/modulegen/go.mod +++ b/modulegen/go.mod @@ -6,7 +6,7 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.8.4 golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb - golang.org/x/mod v0.14.0 + golang.org/x/mod v0.15.0 golang.org/x/text v0.14.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/modulegen/go.sum b/modulegen/go.sum index 43ee5b0f8b..7642f19f1d 100644 --- a/modulegen/go.sum +++ b/modulegen/go.sum @@ -14,8 +14,8 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb h1:mIKbk8weKhSeLH2GmUTrvx8CjkyJmnU1wFmg59CUjFA= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 900f11ef65..2c238e6125 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -6,7 +6,7 @@ require ( github.com/IBM/sarama v1.42.1 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 - golang.org/x/mod v0.14.0 + golang.org/x/mod v0.15.0 ) require ( diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index 8f41374ff5..b97ce996f1 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -165,8 +165,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnL golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= From e27aaeb3bc2abf0a3d250b974e749b5a17988850 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 12:50:40 +0100 Subject: [PATCH 022/115] chore(deps): bump cloud.google.com/go/spanner from 1.56.0 to 1.57.0 in /modules/gcloud, cloud.google.com/go/bigquery from 1.58.0 to 1.59.1 in /modules/gcloud, google.golang.org/api from 0.160.0 to 0.165.0 in /modules/gcloud (#2238) * chore(deps): bump google.golang.org/api in /modules/gcloud Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.160.0 to 0.165.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.160.0...v0.165.0) --- updated-dependencies: - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump cloud.google.com/go/bigquery in /modules/gcloud Bumps [cloud.google.com/go/bigquery](https://github.com/googleapis/google-cloud-go) from 1.58.0 to 1.59.1. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/bigquery/v1.58.0...bigquery/v1.59.1) --- updated-dependencies: - dependency-name: cloud.google.com/go/bigquery dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump cloud.google.com/go/spanner in /modules/gcloud Bumps [cloud.google.com/go/spanner](https://github.com/googleapis/google-cloud-go) from 1.56.0 to 1.57.0. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/spanner/v1.56.0...spanner/v1.57.0) --- updated-dependencies: - dependency-name: cloud.google.com/go/spanner dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/gcloud/go.mod | 60 +++++++++------------ modules/gcloud/go.sum | 123 ++++++++++++++++++------------------------ 2 files changed, 76 insertions(+), 107 deletions(-) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 849bef64e9..fbee737e29 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -3,15 +3,15 @@ module github.com/testcontainers/testcontainers-go/modules/gcloud go 1.20 require ( - cloud.google.com/go/bigquery v1.58.0 + cloud.google.com/go/bigquery v1.59.1 cloud.google.com/go/bigtable v1.21.0 cloud.google.com/go/datastore v1.15.0 cloud.google.com/go/firestore v1.14.0 cloud.google.com/go/pubsub v1.36.1 - cloud.google.com/go/spanner v1.56.0 + cloud.google.com/go/spanner v1.57.0 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 - google.golang.org/api v0.160.0 + google.golang.org/api v0.165.0 google.golang.org/grpc v1.61.0 ) @@ -19,15 +19,13 @@ require ( cloud.google.com/go v0.112.0 // indirect cloud.google.com/go/compute v1.23.3 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.5 // indirect - cloud.google.com/go/longrunning v0.5.4 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/longrunning v0.5.5 // indirect dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect - github.com/andybalholm/brotli v1.0.4 // indirect - github.com/apache/arrow/go/v12 v12.0.1 // indirect - github.com/apache/thrift v0.16.0 // indirect + github.com/apache/arrow/go/v14 v14.0.2 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect @@ -36,7 +34,6 @@ require ( github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect @@ -46,25 +43,20 @@ require ( github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect - github.com/goccy/go-json v0.9.11 // indirect + github.com/goccy/go-json v0.10.2 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/golang/snappy v0.0.4 // indirect - github.com/google/flatbuffers v2.0.8+incompatible // indirect + github.com/google/flatbuffers v23.5.26+incompatible // indirect github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/asmfmt v1.3.2 // indirect - github.com/klauspost/compress v1.16.0 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect - github.com/kr/text v0.2.0 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect - github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect - github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/moby/patternmatcher v0.6.0 // indirect github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/sys/user v0.1.0 // indirect @@ -74,15 +66,12 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc5 // indirect - github.com/pierrec/lz4/v4 v4.1.15 // indirect + github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/stretchr/objx v0.5.0 // indirect - github.com/stretchr/testify v1.8.4 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect @@ -90,26 +79,25 @@ require ( go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect - golang.org/x/crypto v0.18.0 // indirect - golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect - golang.org/x/net v0.20.0 // indirect - golang.org/x/oauth2 v0.16.0 // indirect + go.opentelemetry.io/otel v1.23.0 // indirect + go.opentelemetry.io/otel/metric v1.23.0 // indirect + go.opentelemetry.io/otel/trace v1.23.0 // indirect + golang.org/x/crypto v0.19.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/mod v0.13.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/oauth2 v0.17.0 // indirect golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.14.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240122161410-6c6643bf1457 // indirect + google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014 // indirect google.golang.org/protobuf v1.32.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 0bb91074bd..b0ebf2b685 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -1,46 +1,41 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= -cloud.google.com/go/bigquery v1.58.0 h1:drSd9RcPVLJP2iFMimvOB9SCSIrcl+9HD4II03Oy7A0= -cloud.google.com/go/bigquery v1.58.0/go.mod h1:0eh4mWNY0KrBTjUzLjoYImapGORq9gEPT7MWjCy9lik= +cloud.google.com/go/bigquery v1.59.1 h1:CpT+/njKuKT3CEmswm6IbhNu9u35zt5dO4yPDLW+nG4= +cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= cloud.google.com/go/bigtable v1.21.0 h1:BFN4jhkA9ULYYV2Ug7AeOtetVLnN2jKuIq5TcRc5C38= cloud.google.com/go/bigtable v1.21.0/go.mod h1:V0sYNRtk0dgAKjyRr/MyBpHpSXqh+9P39euf820EZ74= cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= -cloud.google.com/go/datacatalog v1.19.0 h1:rbYNmHwvAOOwnW2FPXYkaK3Mf1MmGqRzK0mMiIEyLdo= +cloud.google.com/go/datacatalog v1.19.3 h1:A0vKYCQdxQuV4Pi0LL9p39Vwvg4jH5yYveMv50gU5Tw= cloud.google.com/go/datastore v1.15.0 h1:0P9WcsQeTWjuD1H14JIY7XQscIPQ4Laje8ti96IC5vg= cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= cloud.google.com/go/firestore v1.14.0 h1:8aLcKnMPoldYU3YHgu4t2exrKhLQkqaXAGqT0ljrFVw= cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= -cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= -cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM= -cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgGS0GVg= -cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= +cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= +cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= cloud.google.com/go/pubsub v1.36.1 h1:dfEPuGCHGbWUhaMCTHUFjfroILEkx55iUmKBZTP5f+Y= cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= -cloud.google.com/go/spanner v1.56.0 h1:o/Cv7/zZ1WgRXVCd5g3Nc23ZI39p/1pWFqFwvg6Wcu8= -cloud.google.com/go/spanner v1.56.0/go.mod h1:DndqtUKQAt3VLuV2Le+9Y3WTnq5cNKrnLb/Piqcj+h0= -cloud.google.com/go/storage v1.36.0 h1:P0mOkAcaJxhCTvAkMhxMfrTKiNcub4YmmPBtlhAyTr8= +cloud.google.com/go/spanner v1.57.0 h1:fJq+ZfQUDHE+cy1li0bJA8+sy2oiSGhuGqN5nqVaZdU= +cloud.google.com/go/spanner v1.57.0/go.mod h1:aXQ5QDdhPRIqVhYmnkAdwPYvj/DRN0FguclhEWw+jOo= +cloud.google.com/go/storage v1.37.0 h1:WI8CsaFO8Q9KjPVtsZ5Cmi0dXV25zMoX0FklT7c3Jm4= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= -github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/DiJbg= -github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= -github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= -github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/apache/arrow/go/v14 v14.0.2 h1:N8OkaJEOfI3mEZt07BIkvo4sC6XDbL+48MBPWO5IONw= +github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -61,7 +56,6 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -91,8 +85,8 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -100,7 +94,6 @@ github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4er github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= @@ -114,11 +107,9 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= -github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= +github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -146,23 +137,14 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= -github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs= -github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 h1:+n/aFZefKZp7spd8DFdX7uMikMLXX4oubIzJF4kv/wI= -github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= @@ -182,8 +164,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= -github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= -github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -191,7 +173,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -230,33 +211,33 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.4 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel v1.23.0 h1:Df0pqjqExIywbMCMTxkAwzjLZtRf+bBKLbUcpxO2C9E= +go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/metric v1.23.0 h1:pazkx7ss4LFVVYSxYew7L5I6qvLXHA0Ap2pwV+9Cnpo= +go.opentelemetry.io/otel/metric v1.23.0/go.mod h1:MqUW2X2a6Q8RN96E2/nqNoT+z9BSms20Jb7Bbp+HiTo= go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/otel/trace v1.23.0 h1:37Ik5Ib7xfYVb4V1UtnT97T1jI+AoIYkJyPkuL4iJgI= +go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= -golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -268,11 +249,11 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= -golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= +golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -293,11 +274,12 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -317,17 +299,17 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= -gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= -google.golang.org/api v0.160.0 h1:SEspjXHVqE1m5a1fRy8JFB+5jSu+V0GEDKDghF3ttO4= -google.golang.org/api v0.160.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9ZHyw= +gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= +google.golang.org/api v0.165.0 h1:zd5d4JIIIaYYsfVy1HzoXYZ9rWCSBxxAglbczzo7Bgc= +google.golang.org/api v0.165.0/go.mod h1:2OatzO7ZDQsoS7IFf3rvsE17/TldiU3F/zxFHeqUB5o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= @@ -335,12 +317,12 @@ google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac h1:ZL/Teoy/ZGnzyrqK/Optxxp2pmVh+fmJ97slxSRyzUg= -google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k= -google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe h1:0poefMBYvYbs7g5UkjS6HcxBPaTRAmznle9jnxYoAI8= -google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240122161410-6c6643bf1457 h1:6Bi3wdn5Ed9baJn7P0gOhjwA98wOr6uSPjKagPHOVsE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240122161410-6c6643bf1457/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe h1:USL2DhxfgRchafRvt/wYyyQNzwgL7ZiURcozOE/Pkvo= +google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 h1:x9PwdEgd11LgK+orcck69WVRo7DezSO4VUMPI4xpc8A= +google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014 h1:FSL3lRCkhaPFxqi0s9o+V4UI2WTzAVOvkgbd4kVV4Wg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014/go.mod h1:SaPjaZGWb0lPqs6Ittu0spdfrOArqji4ZdeP5IC/9N4= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= @@ -362,7 +344,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From ca7d66878f647a4ecb2294ad83f11a46484d355d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 16:08:33 +0100 Subject: [PATCH 023/115] docs: improve module creation section (#2239) --- docs/modules/index.md | 44 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/docs/modules/index.md b/docs/modules/index.md index a5eb772083..6c0e9ceb94 100644 --- a/docs/modules/index.md +++ b/docs/modules/index.md @@ -1,8 +1,45 @@ # Testcontainers for Go modules -In this section you'll discover how to create Go modules for _Testcontainers for Go_. +In this section you'll discover how to create Go modules for _Testcontainers for Go_, including the steps to follow, the best practices, and the guidelines to consider before creating a new module. -## Interested in adding a new module? +## Before creating a new module + +First, you have to consider the following things before creating a new module to the project: + +1. Please check if the module you are interested in is already present in the [Modules Catalog](https://testcontainers.com/modules/?language=go). +If it's already there, you can use it as a dependency in your project, and you can also contribute to the module if you want to improve it! +2. If it is not present there, please consider where you are going to host the module: under your own GitHub account as a **Community module**, or under the `testcontainers-go` repository. +3. If you're a vendor interested in creating an **Official module** for your project/product, please contact us, see below. + +In any case, we will be happy to assist you in the process of creating the module. Please feel free to ask for assistance in our [Slack](https://slack.testcontainers.org/) or in the [GitHub Discussions](https://github.com/testcontainers/testcontainers-go/discussions). + +### Community modules + +If you are going to host the module under your own GitHub account, please consider the following: + +- you'll have to follow the same guidelines as the ones for the modules hosted under the `testcontainers-go` repository, +including the naming conventions, the documentation, the tests and the testable examples, and defining a proper CI workflow. +You'll find more information in the sections below. +- you'll be more autonomous in the development and release of the module, not having to wait for the maintainers to review and merge your PRs. +As a direct consequence, you'll be responsible for the maintenance, documentation and support of the module, +including updating the module to the latest version of _Testcontainers for Go_ if/when needed. +- once created, you'll need to add the module to the [Modules Catalog](https://testcontainers.com/modules/?language=go) in order to be listed there. +You can do this by submitting a PR to the [community repository](https://github.com/testcontainers/community-module-registry). +An example can be found [here](https://github.com/testcontainers/community-module-registry/pull/21/files). +- you'll need to add the module to the [Go documentation](https://pkg.go.dev) in order to be listed there. Please check our [Releasing docs](https://github.com/testcontainers/testcontainers-go/blob/main/RELEASING.md) for more information about triggering the Golang Proxy. + +### Modules hosted under the `testcontainers-go` repository + +If you still want to host the module under the `testcontainers-go` repository, please consider the following: + +- we are not experts in all the technologies out there, so we are open to contributions from the community. +We are happy to review and merge your PRs, and we are also happy to help you with the development of the module. +But this is a shared responsibility, so we expect you to be involved in the maintenance, documentation and support of the module. +- the module will be part of the CI/CD pipeline of the `testcontainers-go` repository, so it will be tested and released with the rest of the modules. +Think of Github workflows, Dependabot, release notes, etc. Although it sounds great, which it is, it also means that it will increase the build time in our CI/CD pipeline on Github, including flaky tests, number of dependabot updates, etc. So in the end it's more work for us. +- once created, we'll add the module to the [Modules Catalog](https://testcontainers.com/modules/?language=go) and to the [Go documentation](https://pkg.go.dev/github.com/testcontainers/testcontainers-go). + +## Creating a new module We have provided a command line tool to generate the scaffolding for the code of the example you are interested in. This tool will generate: @@ -28,6 +65,9 @@ We have provided a command line tool to generate the scaffolding for the code of - an entry in Dependabot's configuration file, in order to receive dependency updates. - an entry in the VSCode workspace file, in order to include the new module in the project's workspace. +!!!info + If you are hosting the module under your own Github account, please move the generated files to the new repository. Discard the following files and directories: `mkdocs.yml`, `dependabot.yml`, VSCode workspace, Sonarqube properties, and the `.github/workflows` directory, as they are specific to the `testcontainers-go` repository. You can use them as reference to create your own CI/CD pipeline. + ### Command line flags | Flag | Short | Type | Required | Description | From 5054ae1f868c50ac92c0022a51ffa53a31028126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 15 Feb 2024 16:09:13 +0100 Subject: [PATCH 024/115] chore(deps): bump k8s.io/client-go from 0.29.1 to 0.29.2 in /modules/k3s, k8s.io/apimachinery from 0.29.1 to 0.29.2 in /modules/k3s, k8s.io/api from 0.29.1 to 0.29.2 in /modules/k3s (#2236) * chore(deps): bump k8s.io/api from 0.29.1 to 0.29.2 in /modules/k3s Bumps [k8s.io/api](https://github.com/kubernetes/api) from 0.29.1 to 0.29.2. - [Commits](https://github.com/kubernetes/api/compare/v0.29.1...v0.29.2) --- updated-dependencies: - dependency-name: k8s.io/api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump k8s.io/apimachinery in /modules/k3s Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.29.1 to 0.29.2. - [Commits](https://github.com/kubernetes/apimachinery/compare/v0.29.1...v0.29.2) --- updated-dependencies: - dependency-name: k8s.io/apimachinery dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump k8s.io/client-go from 0.29.1 to 0.29.2 in /modules/k3s Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.29.1 to 0.29.2. - [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/kubernetes/client-go/compare/v0.29.1...v0.29.2) --- updated-dependencies: - dependency-name: k8s.io/client-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/k3s/go.mod | 6 +++--- modules/k3s/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index 937bc83a2a..3004584883 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -7,9 +7,9 @@ require ( github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.29.1 - k8s.io/apimachinery v0.29.1 - k8s.io/client-go v0.29.1 + k8s.io/api v0.29.2 + k8s.io/apimachinery v0.29.2 + k8s.io/client-go v0.29.2 ) require ( diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index 73c7987e14..2eca8d356a 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -236,12 +236,12 @@ gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= -k8s.io/api v0.29.1 h1:DAjwWX/9YT7NQD4INu49ROJuZAAAP/Ijki48GUPzxqw= -k8s.io/api v0.29.1/go.mod h1:7Kl10vBRUXhnQQI8YR/R327zXC8eJ7887/+Ybta+RoQ= -k8s.io/apimachinery v0.29.1 h1:KY4/E6km/wLBguvCZv8cKTeOwwOBqFNjwJIdMkMbbRc= -k8s.io/apimachinery v0.29.1/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= -k8s.io/client-go v0.29.1 h1:19B/+2NGEwnFLzt0uB5kNJnfTsbV8w6TgQRz9l7ti7A= -k8s.io/client-go v0.29.1/go.mod h1:TDG/psL9hdet0TI9mGyHJSgRkW3H9JZk2dNEUS7bRks= +k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= +k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= +k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= +k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= +k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= +k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= From a3f02abf93096ffbdd5f28ee13c2b024b61bbdb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 16 Feb 2024 18:02:27 +0100 Subject: [PATCH 025/115] chore: enforce test package in modules (#2241) * fix: include import of the log package * chore: use test package in new modules * chore: use test package in modules * chore: improve mssql test * chore: fix test * fix: lint --- modulegen/_template/examples_test.go.tmpl | 1 + modulegen/_template/module_test.go.tmpl | 5 +- modulegen/main_test.go | 24 ++-- modules/cassandra/cassandra_test.go | 12 +- modules/clickhouse/clickhouse.go | 10 +- modules/clickhouse/clickhouse_test.go | 53 ++++---- modules/k6/k6_test.go | 6 +- modules/kafka/consumer_test.go | 2 +- modules/kafka/kafka_helpers_test.go | 111 +++++++++++++++++ modules/kafka/kafka_test.go | 111 +---------------- modules/mariadb/mariadb_test.go | 35 +++--- modules/minio/minio_test.go | 7 +- modules/mockserver/coverage.out | 1 - modules/mssql/mssql_test.go | 46 ++++--- modules/nats/nats_test.go | 6 +- modules/openldap/openldap_test.go | 17 ++- modules/redis/options_test.go | 138 +++++++++++++++++++++ modules/redis/redis_test.go | 144 ++-------------------- modules/redpanda/redpanda_helpers_test.go | 56 +++++++++ modules/redpanda/redpanda_test.go | 118 ++++++------------ 20 files changed, 475 insertions(+), 428 deletions(-) create mode 100644 modules/kafka/kafka_helpers_test.go delete mode 100644 modules/mockserver/coverage.out create mode 100644 modules/redis/options_test.go create mode 100644 modules/redpanda/redpanda_helpers_test.go diff --git a/modulegen/_template/examples_test.go.tmpl b/modulegen/_template/examples_test.go.tmpl index 8e47e5cd0a..127d69ba16 100644 --- a/modulegen/_template/examples_test.go.tmpl +++ b/modulegen/_template/examples_test.go.tmpl @@ -3,6 +3,7 @@ import ( "context" "fmt" + "log" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/{{ ParentDir }}/{{ $lower }}" diff --git a/modulegen/_template/module_test.go.tmpl b/modulegen/_template/module_test.go.tmpl index 1057d3d447..9a0f5391d5 100644 --- a/modulegen/_template/module_test.go.tmpl +++ b/modulegen/_template/module_test.go.tmpl @@ -1,16 +1,17 @@ -{{ $entrypoint := Entrypoint }}{{ $image := Image }}{{ $lower := ToLower }}{{ $title := Title }}package {{ $lower }} +{{ $entrypoint := Entrypoint }}{{ $image := Image }}{{ $lower := ToLower }}{{ $title := Title }}package {{ $lower }}_test import ( "context" "testing" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/{{ ParentDir }}/{{ $lower }}" ) func Test{{ $title }}(t *testing.T) { ctx := context.Background() - container, err := {{ $entrypoint }}(ctx, testcontainers.WithImage("{{ $image }}")) + container, err := {{ $lower }}.{{ $entrypoint }}(ctx, testcontainers.WithImage("{{ $image }}")) if err != nil { t.Fatal(err) } diff --git a/modulegen/main_test.go b/modulegen/main_test.go index f861a8d3ac..772a18c952 100644 --- a/modulegen/main_test.go +++ b/modulegen/main_test.go @@ -430,15 +430,15 @@ func assertExamplesTestContent(t *testing.T, module context.TestcontainersModule title := module.Title() data := sanitiseContent(content) - assert.Equal(t, data[0], "package "+lower+"_test") - assert.Equal(t, "\t\"github.com/testcontainers/testcontainers-go\"", data[6]) - assert.Equal(t, data[7], "\t\"github.com/testcontainers/testcontainers-go/modules/"+lower+"\"") - assert.Equal(t, data[10], "func Example"+entrypoint+"() {") - assert.Equal(t, data[11], "\t// run"+title+"Container {") - assert.Equal(t, data[14], "\t"+lower+"Container, err := "+lower+"."+entrypoint+"(ctx, testcontainers.WithImage(\""+module.Image+"\"))") - assert.Equal(t, "\tfmt.Println(state.Running)", data[32]) - assert.Equal(t, "\t// Output:", data[34]) - assert.Equal(t, "\t// true", data[35]) + assert.Equal(t, "package "+lower+"_test", data[0]) + assert.Equal(t, "\t\"github.com/testcontainers/testcontainers-go\"", data[7]) + assert.Equal(t, "\t\"github.com/testcontainers/testcontainers-go/modules/"+lower+"\"", data[8]) + assert.Equal(t, "func Example"+entrypoint+"() {", data[11]) + assert.Equal(t, "\t// run"+title+"Container {", data[12]) + assert.Equal(t, "\t"+lower+"Container, err := "+lower+"."+entrypoint+"(ctx, testcontainers.WithImage(\""+module.Image+"\"))", data[15]) + assert.Equal(t, "\tfmt.Println(state.Running)", data[33]) + assert.Equal(t, "\t// Output:", data[35]) + assert.Equal(t, "\t// true", data[36]) } // assert content module test @@ -447,9 +447,9 @@ func assertModuleTestContent(t *testing.T, module context.TestcontainersModule, require.NoError(t, err) data := sanitiseContent(content) - assert.Equal(t, data[0], "package "+module.Lower()) - assert.Equal(t, data[9], "func Test"+module.Title()+"(t *testing.T) {") - assert.Equal(t, data[12], "\tcontainer, err := "+module.Entrypoint()+"(ctx, testcontainers.WithImage(\""+module.Image+"\"))") + assert.Equal(t, "package "+module.Lower()+"_test", data[0]) + assert.Equal(t, "func Test"+module.Title()+"(t *testing.T) {", data[10]) + assert.Equal(t, "\tcontainer, err := "+module.Lower()+"."+module.Entrypoint()+"(ctx, testcontainers.WithImage(\""+module.Image+"\"))", data[13]) } // assert content module diff --git a/modules/cassandra/cassandra_test.go b/modules/cassandra/cassandra_test.go index 11e47ccb55..831ce01d32 100644 --- a/modules/cassandra/cassandra_test.go +++ b/modules/cassandra/cassandra_test.go @@ -1,4 +1,4 @@ -package cassandra +package cassandra_test import ( "context" @@ -8,6 +8,8 @@ import ( "github.com/gocql/gocql" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/testcontainers/testcontainers-go/modules/cassandra" ) type Test struct { @@ -18,7 +20,7 @@ type Test struct { func TestCassandra(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx) + container, err := cassandra.RunContainer(ctx) if err != nil { t.Fatal(err) } @@ -58,7 +60,7 @@ func TestCassandra(t *testing.T) { func TestCassandraWithConfigFile(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, WithConfigFile(filepath.Join("testdata", "config.yaml"))) + container, err := cassandra.RunContainer(ctx, cassandra.WithConfigFile(filepath.Join("testdata", "config.yaml"))) if err != nil { t.Fatal(err) } @@ -89,7 +91,7 @@ func TestCassandraWithInitScripts(t *testing.T) { ctx := context.Background() // withInitScripts { - container, err := RunContainer(ctx, WithInitScripts(filepath.Join("testdata", "init.cql"))) + container, err := cassandra.RunContainer(ctx, cassandra.WithInitScripts(filepath.Join("testdata", "init.cql"))) // } if err != nil { t.Fatal(err) @@ -121,7 +123,7 @@ func TestCassandraWithInitScripts(t *testing.T) { t.Run("with init bash script", func(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, WithInitScripts(filepath.Join("testdata", "init.sh"))) + container, err := cassandra.RunContainer(ctx, cassandra.WithInitScripts(filepath.Join("testdata", "init.sh"))) if err != nil { t.Fatal(err) } diff --git a/modules/clickhouse/clickhouse.go b/modules/clickhouse/clickhouse.go index 86ebac1704..b133d98752 100644 --- a/modules/clickhouse/clickhouse.go +++ b/modules/clickhouse/clickhouse.go @@ -36,9 +36,9 @@ const ( // ClickHouseContainer represents the ClickHouse container type used in the module type ClickHouseContainer struct { testcontainers.Container - dbName string - user string - password string + DbName string + User string + Password string } // ConnectionHost returns the host and port of the clickhouse container, using the default, native 9000 port, and @@ -75,7 +75,7 @@ func (c *ClickHouseContainer) ConnectionString(ctx context.Context, args ...stri extraArgs = "?" + extraArgs } - connectionString := fmt.Sprintf("clickhouse://%s:%s@%s/%s%s", c.user, c.password, host, c.dbName, extraArgs) + connectionString := fmt.Sprintf("clickhouse://%s:%s@%s/%s%s", c.User, c.Password, host, c.DbName, extraArgs) return connectionString, nil } @@ -237,5 +237,5 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize password := req.Env["CLICKHOUSE_PASSWORD"] dbName := req.Env["CLICKHOUSE_DB"] - return &ClickHouseContainer{Container: container, dbName: dbName, password: password, user: user}, nil + return &ClickHouseContainer{Container: container, DbName: dbName, Password: password, User: user}, nil } diff --git a/modules/clickhouse/clickhouse_test.go b/modules/clickhouse/clickhouse_test.go index 075bbf4460..970106a471 100644 --- a/modules/clickhouse/clickhouse_test.go +++ b/modules/clickhouse/clickhouse_test.go @@ -1,4 +1,4 @@ -package clickhouse +package clickhouse_test import ( "context" @@ -13,6 +13,7 @@ import ( "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/clickhouse" "github.com/testcontainers/testcontainers-go/wait" ) @@ -29,7 +30,7 @@ type Test struct { func TestClickHouseDefaultConfig(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx) + container, err := clickhouse.RunContainer(ctx) if err != nil { t.Fatal(err) } @@ -45,9 +46,9 @@ func TestClickHouseDefaultConfig(t *testing.T) { conn, err := ch.Open(&ch.Options{ Addr: []string{connectionHost}, Auth: ch.Auth{ - Database: container.dbName, - Username: container.user, - Password: container.password, + Database: container.DbName, + Username: container.User, + Password: container.Password, }, }) require.NoError(t, err) @@ -61,10 +62,10 @@ func TestClickHouseDefaultConfig(t *testing.T) { func TestClickHouseConnectionHost(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithUsername(user), - WithPassword(password), - WithDatabase(dbname), + container, err := clickhouse.RunContainer(ctx, + clickhouse.WithUsername(user), + clickhouse.WithPassword(password), + clickhouse.WithDatabase(dbname), ) if err != nil { t.Fatal(err) @@ -101,7 +102,7 @@ func TestClickHouseConnectionHost(t *testing.T) { func TestClickHouseDSN(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, WithUsername(user), WithPassword(password), WithDatabase(dbname)) + container, err := clickhouse.RunContainer(ctx, clickhouse.WithUsername(user), clickhouse.WithPassword(password), clickhouse.WithDatabase(dbname)) if err != nil { t.Fatal(err) } @@ -134,11 +135,11 @@ func TestClickHouseWithInitScripts(t *testing.T) { ctx := context.Background() // withInitScripts { - container, err := RunContainer(ctx, - WithUsername(user), - WithPassword(password), - WithDatabase(dbname), - WithInitScripts(filepath.Join("testdata", "init-db.sh")), + container, err := clickhouse.RunContainer(ctx, + clickhouse.WithUsername(user), + clickhouse.WithPassword(password), + clickhouse.WithDatabase(dbname), + clickhouse.WithInitScripts(filepath.Join("testdata", "init-db.sh")), ) if err != nil { t.Fatal(err) @@ -178,15 +179,15 @@ func TestClickHouseWithConfigFile(t *testing.T) { desc string configOption testcontainers.CustomizeRequestOption }{ - {"XML_Config", WithConfigFile(filepath.Join("testdata", "config.xml"))}, // 1 - {"YAML_Config", WithYamlConfigFile(filepath.Join("testdata", "config.yaml"))}, // allow_no_password: true + {"XML_Config", clickhouse.WithConfigFile(filepath.Join("testdata", "config.xml"))}, // 1 + {"YAML_Config", clickhouse.WithYamlConfigFile(filepath.Join("testdata", "config.yaml"))}, // allow_no_password: true } for _, tC := range testCases { t.Run(tC.desc, func(t *testing.T) { - container, err := RunContainer(ctx, - WithUsername(user), - WithPassword(""), - WithDatabase(dbname), + container, err := clickhouse.RunContainer(ctx, + clickhouse.WithUsername(user), + clickhouse.WithPassword(""), + clickhouse.WithDatabase(dbname), tC.configOption, ) if err != nil { @@ -244,11 +245,11 @@ func TestClickHouseWithZookeeper(t *testing.T) { t.Fatal(err) } - container, err := RunContainer(ctx, - WithUsername(user), - WithPassword(password), - WithDatabase(dbname), - WithZookeeper(ipaddr, zkPort.Port()), + container, err := clickhouse.RunContainer(ctx, + clickhouse.WithUsername(user), + clickhouse.WithPassword(password), + clickhouse.WithDatabase(dbname), + clickhouse.WithZookeeper(ipaddr, zkPort.Port()), ) if err != nil { t.Fatal(err) diff --git a/modules/k6/k6_test.go b/modules/k6/k6_test.go index 02e8433c70..f90b24ab29 100644 --- a/modules/k6/k6_test.go +++ b/modules/k6/k6_test.go @@ -1,9 +1,11 @@ -package k6 +package k6_test import ( "context" "path/filepath" "testing" + + "github.com/testcontainers/testcontainers-go/modules/k6" ) func TestK6(t *testing.T) { @@ -34,7 +36,7 @@ func TestK6(t *testing.T) { t.Fatal(err) } - container, err := RunContainer(ctx, WithCache(), WithTestScript(absPath)) + container, err := k6.RunContainer(ctx, k6.WithCache(), k6.WithTestScript(absPath)) if err != nil { t.Fatal(err) } diff --git a/modules/kafka/consumer_test.go b/modules/kafka/consumer_test.go index 20d32a5232..d7305540f8 100644 --- a/modules/kafka/consumer_test.go +++ b/modules/kafka/consumer_test.go @@ -1,4 +1,4 @@ -package kafka +package kafka_test import ( "testing" diff --git a/modules/kafka/kafka_helpers_test.go b/modules/kafka/kafka_helpers_test.go new file mode 100644 index 0000000000..4a49a00f50 --- /dev/null +++ b/modules/kafka/kafka_helpers_test.go @@ -0,0 +1,111 @@ +package kafka + +import ( + "testing" + + "github.com/testcontainers/testcontainers-go" +) + +func TestConfigureQuorumVoters(t *testing.T) { + tests := []struct { + name string + req *testcontainers.GenericContainerRequest + expectedVoters string + }{ + { + name: "voters on localhost", + req: &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Env: map[string]string{}, + }, + }, + expectedVoters: "1@localhost:9094", + }, + { + name: "voters on first network alias of the first network", + req: &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Env: map[string]string{}, + Networks: []string{"foo", "bar", "baaz"}, + NetworkAliases: map[string][]string{ + "foo": {"foo0", "foo1", "foo2", "foo3"}, + "bar": {"bar0", "bar1", "bar2", "bar3"}, + "baaz": {"baaz0", "baaz1", "baaz2", "baaz3"}, + }, + }, + }, + expectedVoters: "1@foo0:9094", + }, + { + name: "voters on localhost if alias but no networks", + req: &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + NetworkAliases: map[string][]string{ + "foo": {"foo0", "foo1", "foo2", "foo3"}, + "bar": {"bar0", "bar1", "bar2", "bar3"}, + "baaz": {"baaz0", "baaz1", "baaz2", "baaz3"}, + }, + }, + }, + expectedVoters: "1@localhost:9094", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + configureControllerQuorumVoters(test.req) + + if test.req.Env["KAFKA_CONTROLLER_QUORUM_VOTERS"] != test.expectedVoters { + t.Fatalf("expected KAFKA_CONTROLLER_QUORUM_VOTERS to be %s, got %s", test.expectedVoters, test.req.Env["KAFKA_CONTROLLER_QUORUM_VOTERS"]) + } + }) + } +} + +func TestValidateKRaftVersion(t *testing.T) { + tests := []struct { + name string + image string + wantErr bool + }{ + { + name: "Official: valid version", + image: "confluentinc/confluent-local:7.5.0", + wantErr: false, + }, + { + name: "Official: valid, limit version", + image: "confluentinc/confluent-local:7.4.0", + wantErr: false, + }, + { + name: "Official: invalid, low version", + image: "confluentinc/confluent-local:7.3.99", + wantErr: true, + }, + { + name: "Official: invalid, too low version", + image: "confluentinc/confluent-local:5.0.0", + wantErr: true, + }, + { + name: "Unofficial does not validate KRaft version", + image: "my-kafka:1.0.0", + wantErr: false, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := validateKRaftVersion(test.image) + + if test.wantErr && err == nil { + t.Fatalf("expected error, got nil") + } + + if !test.wantErr && err != nil { + t.Fatalf("expected no error, got %s", err) + } + }) + } +} diff --git a/modules/kafka/kafka_test.go b/modules/kafka/kafka_test.go index 821ca66fef..662bb5d0a8 100644 --- a/modules/kafka/kafka_test.go +++ b/modules/kafka/kafka_test.go @@ -1,4 +1,4 @@ -package kafka +package kafka_test import ( "context" @@ -8,6 +8,7 @@ import ( "github.com/IBM/sarama" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/kafka" ) func TestKafka(t *testing.T) { @@ -15,7 +16,7 @@ func TestKafka(t *testing.T) { ctx := context.Background() - kafkaContainer, err := RunContainer(ctx, WithClusterID("kraftCluster"), testcontainers.WithImage("confluentinc/confluent-local:7.5.0")) + kafkaContainer, err := kafka.RunContainer(ctx, kafka.WithClusterID("kraftCluster"), testcontainers.WithImage("confluentinc/confluent-local:7.5.0")) if err != nil { t.Fatal(err) } @@ -87,112 +88,8 @@ func TestKafka(t *testing.T) { func TestKafka_invalidVersion(t *testing.T) { ctx := context.Background() - _, err := RunContainer(ctx, WithClusterID("kraftCluster"), testcontainers.WithImage("confluentinc/confluent-local:6.3.3")) + _, err := kafka.RunContainer(ctx, kafka.WithClusterID("kraftCluster"), testcontainers.WithImage("confluentinc/confluent-local:6.3.3")) if err == nil { t.Fatal(err) } } - -func TestConfigureQuorumVoters(t *testing.T) { - tests := []struct { - name string - req *testcontainers.GenericContainerRequest - expectedVoters string - }{ - { - name: "voters on localhost", - req: &testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Env: map[string]string{}, - }, - }, - expectedVoters: "1@localhost:9094", - }, - { - name: "voters on first network alias of the first network", - req: &testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Env: map[string]string{}, - Networks: []string{"foo", "bar", "baaz"}, - NetworkAliases: map[string][]string{ - "foo": {"foo0", "foo1", "foo2", "foo3"}, - "bar": {"bar0", "bar1", "bar2", "bar3"}, - "baaz": {"baaz0", "baaz1", "baaz2", "baaz3"}, - }, - }, - }, - expectedVoters: "1@foo0:9094", - }, - { - name: "voters on localhost if alias but no networks", - req: &testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - NetworkAliases: map[string][]string{ - "foo": {"foo0", "foo1", "foo2", "foo3"}, - "bar": {"bar0", "bar1", "bar2", "bar3"}, - "baaz": {"baaz0", "baaz1", "baaz2", "baaz3"}, - }, - }, - }, - expectedVoters: "1@localhost:9094", - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - configureControllerQuorumVoters(test.req) - - if test.req.Env["KAFKA_CONTROLLER_QUORUM_VOTERS"] != test.expectedVoters { - t.Fatalf("expected KAFKA_CONTROLLER_QUORUM_VOTERS to be %s, got %s", test.expectedVoters, test.req.Env["KAFKA_CONTROLLER_QUORUM_VOTERS"]) - } - }) - } -} - -func TestValidateKRaftVersion(t *testing.T) { - tests := []struct { - name string - image string - wantErr bool - }{ - { - name: "Official: valid version", - image: "confluentinc/confluent-local:7.5.0", - wantErr: false, - }, - { - name: "Official: valid, limit version", - image: "confluentinc/confluent-local:7.4.0", - wantErr: false, - }, - { - name: "Official: invalid, low version", - image: "confluentinc/confluent-local:7.3.99", - wantErr: true, - }, - { - name: "Official: invalid, too low version", - image: "confluentinc/confluent-local:5.0.0", - wantErr: true, - }, - { - name: "Unofficial does not validate KRaft version", - image: "my-kafka:1.0.0", - wantErr: false, - }, - } - - for _, test := range tests { - t.Run(test.name, func(t *testing.T) { - err := validateKRaftVersion(test.image) - - if test.wantErr && err == nil { - t.Fatalf("expected error, got nil") - } - - if !test.wantErr && err != nil { - t.Fatalf("expected no error, got %s", err) - } - }) - } -} diff --git a/modules/mariadb/mariadb_test.go b/modules/mariadb/mariadb_test.go index 6ec9bc0070..e7399bdb09 100644 --- a/modules/mariadb/mariadb_test.go +++ b/modules/mariadb/mariadb_test.go @@ -1,4 +1,4 @@ -package mariadb +package mariadb_test import ( "context" @@ -10,12 +10,13 @@ import ( _ "github.com/go-sql-driver/mysql" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/mariadb" ) func TestMariaDB(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx) + container, err := mariadb.RunContainer(ctx) if err != nil { t.Fatal(err) } @@ -57,10 +58,10 @@ func TestMariaDB(t *testing.T) { func TestMariaDBWithNonRootUserAndEmptyPassword(t *testing.T) { ctx := context.Background() - _, err := RunContainer(ctx, - WithDatabase("foo"), - WithUsername("test"), - WithPassword("")) + _, err := mariadb.RunContainer(ctx, + mariadb.WithDatabase("foo"), + mariadb.WithUsername("test"), + mariadb.WithPassword("")) if err.Error() != "empty password can be used only with the root user" { t.Fatal(err) } @@ -69,10 +70,10 @@ func TestMariaDBWithNonRootUserAndEmptyPassword(t *testing.T) { func TestMariaDBWithRootUserAndEmptyPassword(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithDatabase("foo"), - WithUsername("root"), - WithPassword("")) + container, err := mariadb.RunContainer(ctx, + mariadb.WithDatabase("foo"), + mariadb.WithUsername("root"), + mariadb.WithPassword("")) if err != nil { t.Fatal(err) } @@ -111,8 +112,8 @@ func TestMariaDBWithRootUserAndEmptyPassword(t *testing.T) { func TestMariaDBWithMySQLEnvVars(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, testcontainers.WithImage("mariadb:10.3.29"), - WithScripts(filepath.Join("testdata", "schema.sql"))) + container, err := mariadb.RunContainer(ctx, testcontainers.WithImage("mariadb:10.3.29"), + mariadb.WithScripts(filepath.Join("testdata", "schema.sql"))) if err != nil { t.Fatal(err) } @@ -129,8 +130,8 @@ func TestMariaDBWithMySQLEnvVars(t *testing.T) { func TestMariaDBWithConfigFile(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, testcontainers.WithImage("mariadb:11.0.3"), - WithConfigFile(filepath.Join("testdata", "my.cnf"))) + container, err := mariadb.RunContainer(ctx, testcontainers.WithImage("mariadb:11.0.3"), + mariadb.WithConfigFile(filepath.Join("testdata", "my.cnf"))) if err != nil { t.Fatal(err) } @@ -180,8 +181,8 @@ func TestMariaDBWithConfigFile(t *testing.T) { func TestMariaDBWithScripts(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithScripts(filepath.Join("testdata", "schema.sql"))) + container, err := mariadb.RunContainer(ctx, + mariadb.WithScripts(filepath.Join("testdata", "schema.sql"))) if err != nil { t.Fatal(err) } @@ -196,7 +197,7 @@ func TestMariaDBWithScripts(t *testing.T) { assertDataCanBeFetched(t, ctx, container) } -func assertDataCanBeFetched(t *testing.T, ctx context.Context, container *MariaDBContainer) { +func assertDataCanBeFetched(t *testing.T, ctx context.Context, container *mariadb.MariaDBContainer) { connectionString, err := container.ConnectionString(ctx) if err != nil { t.Fatal(err) diff --git a/modules/minio/minio_test.go b/modules/minio/minio_test.go index 36a7fd11b6..0cb5a7fc2e 100644 --- a/modules/minio/minio_test.go +++ b/modules/minio/minio_test.go @@ -1,4 +1,4 @@ -package minio +package minio_test import ( "context" @@ -10,14 +10,15 @@ import ( "github.com/minio/minio-go/v7/pkg/credentials" "github.com/testcontainers/testcontainers-go" + tcminio "github.com/testcontainers/testcontainers-go/modules/minio" ) func TestMinio(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, + container, err := tcminio.RunContainer(ctx, testcontainers.WithImage("minio/minio:RELEASE.2024-01-16T16-07-38Z"), - WithUsername("thisismyuser"), WithPassword("thisismypassword")) + tcminio.WithUsername("thisismyuser"), tcminio.WithPassword("thisismypassword")) if err != nil { t.Fatal(err) } diff --git a/modules/mockserver/coverage.out b/modules/mockserver/coverage.out deleted file mode 100644 index 5f02b11199..0000000000 --- a/modules/mockserver/coverage.out +++ /dev/null @@ -1 +0,0 @@ -mode: set diff --git a/modules/mssql/mssql_test.go b/modules/mssql/mssql_test.go index 8d8aa9c48c..b691935eaa 100644 --- a/modules/mssql/mssql_test.go +++ b/modules/mssql/mssql_test.go @@ -1,4 +1,4 @@ -package mssql +package mssql_test import ( "context" @@ -8,14 +8,15 @@ import ( _ "github.com/microsoft/go-mssqldb" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/mssql" "github.com/testcontainers/testcontainers-go/wait" ) func TestMSSQLServer(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithAcceptEULA(), + container, err := mssql.RunContainer(ctx, + mssql.WithAcceptEULA(), ) if err != nil { t.Fatal(err) @@ -57,22 +58,27 @@ func TestMSSQLServer(t *testing.T) { func TestMSSQLServerWithMissingEulaOption(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx) - testcontainers.WithWaitStrategy( - wait.ForLog("The SQL Server End-User License Agreement (EULA) must be accepted")) - - if container == nil && err != nil { - t.Log("Success: Confirmed proper handling of missing EULA, so container is nil.") - } else { + container, err := mssql.RunContainer(ctx, testcontainers.WithWaitStrategy( + wait.ForLog("The SQL Server End-User License Agreement (EULA) must be accepted"))) + if err != nil { t.Fatalf("Expected a log to confirm missing EULA but got error: %s", err) } + + state, err := container.State(ctx) + if err != nil { + t.Fatalf("failed to get container state: %s", err) + } + + if !state.Running { + t.Log("Success: Confirmed proper handling of missing EULA, so container is not running.") + } } func TestMSSQLServerWithConnectionStringParameters(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithAcceptEULA(), + container, err := mssql.RunContainer(ctx, + mssql.WithAcceptEULA(), ) if err != nil { t.Fatal(err) @@ -114,9 +120,9 @@ func TestMSSQLServerWithConnectionStringParameters(t *testing.T) { func TestMSSQLServerWithCustomStrongPassword(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithAcceptEULA(), - WithPassword("Strong@Passw0rd"), + container, err := mssql.RunContainer(ctx, + mssql.WithAcceptEULA(), + mssql.WithPassword("Strong@Passw0rd"), ) if err != nil { t.Fatal(err) @@ -150,11 +156,11 @@ func TestMSSQLServerWithCustomStrongPassword(t *testing.T) { func TestMSSQLServerWithInvalidPassword(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, + container, err := mssql.RunContainer(ctx, testcontainers.WithWaitStrategy( wait.ForLog("Password validation failed")), - WithAcceptEULA(), - WithPassword("weakPassword"), + mssql.WithAcceptEULA(), + mssql.WithPassword("weakPassword"), ) if err == nil { @@ -174,9 +180,9 @@ func TestMSSQLServerWithInvalidPassword(t *testing.T) { func TestMSSQLServerWithAlternativeImage(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, + container, err := mssql.RunContainer(ctx, testcontainers.WithImage("mcr.microsoft.com/mssql/server:2022-RTM-GDR1-ubuntu-20.04"), - WithAcceptEULA(), + mssql.WithAcceptEULA(), ) if err != nil { t.Fatalf("Failed to create the container with alternative image: %s", err) diff --git a/modules/nats/nats_test.go b/modules/nats/nats_test.go index 5d05432ac7..c5aa12a86a 100644 --- a/modules/nats/nats_test.go +++ b/modules/nats/nats_test.go @@ -1,17 +1,19 @@ -package nats +package nats_test import ( "context" "testing" "github.com/nats-io/nats.go" + + tcnats "github.com/testcontainers/testcontainers-go/modules/nats" ) func TestNATS(t *testing.T) { ctx := context.Background() // createNATSContainer { - container, err := RunContainer(ctx) + container, err := tcnats.RunContainer(ctx) // } if err != nil { t.Fatal(err) diff --git a/modules/openldap/openldap_test.go b/modules/openldap/openldap_test.go index d11d89b7ed..9407a5716a 100644 --- a/modules/openldap/openldap_test.go +++ b/modules/openldap/openldap_test.go @@ -1,4 +1,4 @@ -package openldap +package openldap_test import ( "context" @@ -8,12 +8,13 @@ import ( "github.com/go-ldap/ldap/v3" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/openldap" ) func TestOpenLDAP(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6")) + container, err := openldap.RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6")) if err != nil { t.Fatal(err) } @@ -29,7 +30,11 @@ func TestOpenLDAP(t *testing.T) { func TestOpenLDAPWithAdminUsernameAndPassword(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6"), WithAdminUsername("openldap"), WithAdminPassword("openldap")) + container, err := openldap.RunContainer(ctx, + testcontainers.WithImage("bitnami/openldap:2.6.6"), + openldap.WithAdminUsername("openldap"), + openldap.WithAdminPassword("openldap"), + ) if err != nil { t.Fatal(err) } @@ -62,7 +67,7 @@ func TestOpenLDAPWithAdminUsernameAndPassword(t *testing.T) { func TestOpenLDAPWithDifferentRoot(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6"), WithRoot("dc=mydomain,dc=com")) + container, err := openldap.RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6"), openldap.WithRoot("dc=mydomain,dc=com")) if err != nil { t.Fatal(err) } @@ -97,7 +102,7 @@ func TestOpenLDAPWithDifferentRoot(t *testing.T) { func TestOpenLDAPLoadLdif(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6")) + container, err := openldap.RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6")) if err != nil { t.Fatal(err) } @@ -188,7 +193,7 @@ userPassword: Password1 t.Fatal(err) } - container, err := RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6"), WithInitialLdif(f.Name())) + container, err := openldap.RunContainer(ctx, testcontainers.WithImage("bitnami/openldap:2.6.6"), openldap.WithInitialLdif(f.Name())) if err != nil { t.Fatal(err) } diff --git a/modules/redis/options_test.go b/modules/redis/options_test.go new file mode 100644 index 0000000000..7150af6df2 --- /dev/null +++ b/modules/redis/options_test.go @@ -0,0 +1,138 @@ +package redis + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/testcontainers/testcontainers-go" +) + +func TestWithConfigFile(t *testing.T) { + tests := []struct { + name string + cmds []string + expectedCmds []string + }{ + { + name: "no existing command", + cmds: []string{}, + expectedCmds: []string{redisServerProcess, "/usr/local/redis.conf"}, + }, + { + name: "existing redis-server command as first argument", + cmds: []string{redisServerProcess, "a", "b", "c"}, + expectedCmds: []string{redisServerProcess, "/usr/local/redis.conf", "a", "b", "c"}, + }, + { + name: "non existing redis-server command", + cmds: []string{"a", "b", "c"}, + expectedCmds: []string{redisServerProcess, "/usr/local/redis.conf", "a", "b", "c"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + req := &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Cmd: tt.cmds, + }, + } + + WithConfigFile("redis.conf")(req) + + require.Equal(t, tt.expectedCmds, req.Cmd) + }) + } +} + +func TestWithLogLevel(t *testing.T) { + tests := []struct { + name string + cmds []string + expectedCmds []string + }{ + { + name: "no existing command", + cmds: []string{}, + expectedCmds: []string{redisServerProcess, "--loglevel", "debug"}, + }, + { + name: "existing redis-server command as first argument", + cmds: []string{redisServerProcess, "a", "b", "c"}, + expectedCmds: []string{redisServerProcess, "a", "b", "c", "--loglevel", "debug"}, + }, + { + name: "non existing redis-server command", + cmds: []string{"a", "b", "c"}, + expectedCmds: []string{redisServerProcess, "a", "b", "c", "--loglevel", "debug"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + req := &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Cmd: tt.cmds, + }, + } + + WithLogLevel(LogLevelDebug)(req) + + require.Equal(t, tt.expectedCmds, req.Cmd) + }) + } +} + +func TestWithSnapshotting(t *testing.T) { + tests := []struct { + name string + cmds []string + expectedCmds []string + seconds int + changedKeys int + }{ + { + name: "no existing command", + cmds: []string{}, + seconds: 60, + changedKeys: 100, + expectedCmds: []string{redisServerProcess, "--save", "60", "100"}, + }, + { + name: "existing redis-server command as first argument", + cmds: []string{redisServerProcess, "a", "b", "c"}, + seconds: 60, + changedKeys: 100, + expectedCmds: []string{redisServerProcess, "a", "b", "c", "--save", "60", "100"}, + }, + { + name: "non existing redis-server command", + cmds: []string{"a", "b", "c"}, + seconds: 60, + changedKeys: 100, + expectedCmds: []string{redisServerProcess, "a", "b", "c", "--save", "60", "100"}, + }, + { + name: "existing redis-server command as first argument", + cmds: []string{redisServerProcess, "a", "b", "c"}, + seconds: 0, + changedKeys: 0, + expectedCmds: []string{redisServerProcess, "a", "b", "c", "--save", "1", "1"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + req := &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Cmd: tt.cmds, + }, + } + + WithSnapshotting(tt.seconds, tt.changedKeys)(req) + + require.Equal(t, tt.expectedCmds, req.Cmd) + }) + } +} diff --git a/modules/redis/redis_test.go b/modules/redis/redis_test.go index 86d123dd8e..e66e6e37d5 100644 --- a/modules/redis/redis_test.go +++ b/modules/redis/redis_test.go @@ -1,4 +1,4 @@ -package redis +package redis_test import ( "context" @@ -12,12 +12,13 @@ import ( "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go" + tcredis "github.com/testcontainers/testcontainers-go/modules/redis" ) func TestIntegrationSetGet(t *testing.T) { ctx := context.Background() - redisContainer, err := RunContainer(ctx) + redisContainer, err := tcredis.RunContainer(ctx) require.NoError(t, err) t.Cleanup(func() { if err := redisContainer.Terminate(ctx); err != nil { @@ -31,7 +32,7 @@ func TestIntegrationSetGet(t *testing.T) { func TestRedisWithConfigFile(t *testing.T) { ctx := context.Background() - redisContainer, err := RunContainer(ctx, WithConfigFile(filepath.Join("testdata", "redis7.conf"))) + redisContainer, err := tcredis.RunContainer(ctx, tcredis.WithConfigFile(filepath.Join("testdata", "redis7.conf"))) require.NoError(t, err) t.Cleanup(func() { if err := redisContainer.Terminate(ctx); err != nil { @@ -73,7 +74,7 @@ func TestRedisWithImage(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - redisContainer, err := RunContainer(ctx, testcontainers.WithImage(tt.image), WithConfigFile(filepath.Join("testdata", "redis6.conf"))) + redisContainer, err := tcredis.RunContainer(ctx, testcontainers.WithImage(tt.image), tcredis.WithConfigFile(filepath.Join("testdata", "redis6.conf"))) require.NoError(t, err) t.Cleanup(func() { if err := redisContainer.Terminate(ctx); err != nil { @@ -89,7 +90,7 @@ func TestRedisWithImage(t *testing.T) { func TestRedisWithLogLevel(t *testing.T) { ctx := context.Background() - redisContainer, err := RunContainer(ctx, WithLogLevel(LogLevelVerbose)) + redisContainer, err := tcredis.RunContainer(ctx, tcredis.WithLogLevel(tcredis.LogLevelVerbose)) require.NoError(t, err) t.Cleanup(func() { if err := redisContainer.Terminate(ctx); err != nil { @@ -103,7 +104,7 @@ func TestRedisWithLogLevel(t *testing.T) { func TestRedisWithSnapshotting(t *testing.T) { ctx := context.Background() - redisContainer, err := RunContainer(ctx, WithSnapshotting(10, 1)) + redisContainer, err := tcredis.RunContainer(ctx, tcredis.WithSnapshotting(10, 1)) require.NoError(t, err) t.Cleanup(func() { if err := redisContainer.Terminate(ctx); err != nil { @@ -114,7 +115,7 @@ func TestRedisWithSnapshotting(t *testing.T) { assertSetsGets(t, ctx, redisContainer, 10) } -func assertSetsGets(t *testing.T, ctx context.Context, redisContainer *RedisContainer, keyCount int) { +func assertSetsGets(t *testing.T, ctx context.Context, redisContainer *tcredis.RedisContainer, keyCount int) { // connectionString { uri, err := redisContainer.ConnectionString(ctx) // } @@ -163,132 +164,3 @@ func assertSetsGets(t *testing.T, ctx context.Context, redisContainer *RedisCont func flushRedis(ctx context.Context, client redis.Client) error { return client.FlushAll(ctx).Err() } - -func TestWithConfigFile(t *testing.T) { - tests := []struct { - name string - cmds []string - expectedCmds []string - }{ - { - name: "no existing command", - cmds: []string{}, - expectedCmds: []string{redisServerProcess, "/usr/local/redis.conf"}, - }, - { - name: "existing redis-server command as first argument", - cmds: []string{redisServerProcess, "a", "b", "c"}, - expectedCmds: []string{redisServerProcess, "/usr/local/redis.conf", "a", "b", "c"}, - }, - { - name: "non existing redis-server command", - cmds: []string{"a", "b", "c"}, - expectedCmds: []string{redisServerProcess, "/usr/local/redis.conf", "a", "b", "c"}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - req := &testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Cmd: tt.cmds, - }, - } - - WithConfigFile("redis.conf")(req) - - require.Equal(t, tt.expectedCmds, req.Cmd) - }) - } -} - -func TestWithLogLevel(t *testing.T) { - tests := []struct { - name string - cmds []string - expectedCmds []string - }{ - { - name: "no existing command", - cmds: []string{}, - expectedCmds: []string{redisServerProcess, "--loglevel", "debug"}, - }, - { - name: "existing redis-server command as first argument", - cmds: []string{redisServerProcess, "a", "b", "c"}, - expectedCmds: []string{redisServerProcess, "a", "b", "c", "--loglevel", "debug"}, - }, - { - name: "non existing redis-server command", - cmds: []string{"a", "b", "c"}, - expectedCmds: []string{redisServerProcess, "a", "b", "c", "--loglevel", "debug"}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - req := &testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Cmd: tt.cmds, - }, - } - - WithLogLevel(LogLevelDebug)(req) - - require.Equal(t, tt.expectedCmds, req.Cmd) - }) - } -} - -func TestWithSnapshotting(t *testing.T) { - tests := []struct { - name string - cmds []string - expectedCmds []string - seconds int - changedKeys int - }{ - { - name: "no existing command", - cmds: []string{}, - seconds: 60, - changedKeys: 100, - expectedCmds: []string{redisServerProcess, "--save", "60", "100"}, - }, - { - name: "existing redis-server command as first argument", - cmds: []string{redisServerProcess, "a", "b", "c"}, - seconds: 60, - changedKeys: 100, - expectedCmds: []string{redisServerProcess, "a", "b", "c", "--save", "60", "100"}, - }, - { - name: "non existing redis-server command", - cmds: []string{"a", "b", "c"}, - seconds: 60, - changedKeys: 100, - expectedCmds: []string{redisServerProcess, "a", "b", "c", "--save", "60", "100"}, - }, - { - name: "existing redis-server command as first argument", - cmds: []string{redisServerProcess, "a", "b", "c"}, - seconds: 0, - changedKeys: 0, - expectedCmds: []string{redisServerProcess, "a", "b", "c", "--save", "1", "1"}, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - req := &testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Cmd: tt.cmds, - }, - } - - WithSnapshotting(tt.seconds, tt.changedKeys)(req) - - require.Equal(t, tt.expectedCmds, req.Cmd) - }) - } -} diff --git a/modules/redpanda/redpanda_helpers_test.go b/modules/redpanda/redpanda_helpers_test.go new file mode 100644 index 0000000000..36503bdf11 --- /dev/null +++ b/modules/redpanda/redpanda_helpers_test.go @@ -0,0 +1,56 @@ +package redpanda + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func Test_isAtLeastVersion(t *testing.T) { + type args struct { + image string + major string + } + tests := []struct { + name string + args args + want bool + }{ + { + name: "v21.5.6", + args: args{ + image: "redpandadata/redpanda:v21.5.6", + major: "23.3", + }, + want: false, + }, + { + name: "v23.3.3", + args: args{ + image: "redpandadata/redpanda:v23.3.3", + major: "23.3", + }, + want: true, + }, + { + name: "v23.3.3-rc1", + args: args{ + image: "redpandadata/redpanda:v23.3.3-rc1", + major: "23.3", + }, + want: true, + }, + { + name: "v21.3.3-rc1", + args: args{ + image: "redpandadata/redpanda:v21.3.3-rc1", + major: "23.3", + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert.Equalf(t, tt.want, isAtLeastVersion(tt.args.image, tt.args.major), "isAtLeastVersion(%v, %v)", tt.args.image, tt.args.major) + }) + } +} diff --git a/modules/redpanda/redpanda_test.go b/modules/redpanda/redpanda_test.go index aeea2f7f63..cdb264bd56 100644 --- a/modules/redpanda/redpanda_test.go +++ b/modules/redpanda/redpanda_test.go @@ -1,4 +1,4 @@ -package redpanda +package redpanda_test import ( "context" @@ -20,13 +20,14 @@ import ( "github.com/twmb/franz-go/pkg/sasl/scram" "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/redpanda" "github.com/testcontainers/testcontainers-go/network" ) func TestRedpanda(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx) + container, err := redpanda.RunContainer(ctx) require.NoError(t, err) // Clean up the container after the test is complete @@ -82,15 +83,15 @@ func TestRedpanda(t *testing.T) { func TestRedpandaWithAuthentication(t *testing.T) { ctx := context.Background() // redpandaCreateContainer { - container, err := RunContainer(ctx, - WithEnableSASL(), - WithEnableKafkaAuthorization(), - WithEnableWasmTransform(), - WithNewServiceAccount("superuser-1", "test"), - WithNewServiceAccount("superuser-2", "test"), - WithNewServiceAccount("no-superuser", "test"), - WithSuperusers("superuser-1", "superuser-2"), - WithEnableSchemaRegistryHTTPBasicAuth(), + container, err := redpanda.RunContainer(ctx, + redpanda.WithEnableSASL(), + redpanda.WithEnableKafkaAuthorization(), + redpanda.WithEnableWasmTransform(), + redpanda.WithNewServiceAccount("superuser-1", "test"), + redpanda.WithNewServiceAccount("superuser-2", "test"), + redpanda.WithNewServiceAccount("no-superuser", "test"), + redpanda.WithSuperusers("superuser-1", "superuser-2"), + redpanda.WithEnableSchemaRegistryHTTPBasicAuth(), ) require.NoError(t, err) // } @@ -193,16 +194,16 @@ func TestRedpandaWithOldVersionAndWasm(t *testing.T) { ctx := context.Background() // redpandaCreateContainer { // this would fail to start if we weren't ignoring wasm transforms for older versions - container, err := RunContainer(ctx, + container, err := redpanda.RunContainer(ctx, testcontainers.WithImage("redpandadata/redpanda:v23.2.18"), - WithEnableSASL(), - WithEnableKafkaAuthorization(), - WithEnableWasmTransform(), - WithNewServiceAccount("superuser-1", "test"), - WithNewServiceAccount("superuser-2", "test"), - WithNewServiceAccount("no-superuser", "test"), - WithSuperusers("superuser-1", "superuser-2"), - WithEnableSchemaRegistryHTTPBasicAuth(), + redpanda.WithEnableSASL(), + redpanda.WithEnableKafkaAuthorization(), + redpanda.WithEnableWasmTransform(), + redpanda.WithNewServiceAccount("superuser-1", "test"), + redpanda.WithNewServiceAccount("superuser-2", "test"), + redpanda.WithNewServiceAccount("no-superuser", "test"), + redpanda.WithSuperusers("superuser-1", "superuser-2"), + redpanda.WithEnableSchemaRegistryHTTPBasicAuth(), ) require.NoError(t, err) // } @@ -321,7 +322,7 @@ func TestRedpandaWithOldVersionAndWasm(t *testing.T) { func TestRedpandaProduceWithAutoCreateTopics(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, WithAutoCreateTopics()) + container, err := redpanda.RunContainer(ctx, redpanda.WithAutoCreateTopics()) require.NoError(t, err) t.Cleanup(func() { @@ -350,7 +351,7 @@ func TestRedpandaWithTLS(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, WithTLS(localhostCert, localhostKey)) + container, err := redpanda.RunContainer(ctx, redpanda.WithTLS(localhostCert, localhostKey)) require.NoError(t, err) t.Cleanup(func() { @@ -419,12 +420,12 @@ func TestRedpandaWithTLSAndSASL(t *testing.T) { ctx := context.Background() - container, err := RunContainer(ctx, - WithTLS(localhostCert, localhostKey), - WithEnableSASL(), - WithEnableKafkaAuthorization(), - WithNewServiceAccount("superuser-1", "test"), - WithSuperusers("superuser-1"), + container, err := redpanda.RunContainer(ctx, + redpanda.WithTLS(localhostCert, localhostKey), + redpanda.WithEnableSASL(), + redpanda.WithEnableKafkaAuthorization(), + redpanda.WithNewServiceAccount("superuser-1", "test"), + redpanda.WithSuperusers("superuser-1"), ) require.NoError(t, err) @@ -469,10 +470,10 @@ func TestRedpandaListener_Simple(t *testing.T) { // 2. Start Redpanda container // withListenerRP { - container, err := RunContainer(ctx, + container, err := redpanda.RunContainer(ctx, testcontainers.WithImage("redpandadata/redpanda:v23.2.18"), network.WithNetwork([]string{"redpanda-host"}, rpNetwork), - WithListener("redpanda:29092"), WithAutoCreateTopics(), + redpanda.WithListener("redpanda:29092"), redpanda.WithAutoCreateTopics(), ) // } require.NoError(t, err) @@ -542,9 +543,9 @@ func TestRedpandaListener_InvalidPort(t *testing.T) { require.NoError(t, err) // 2. Attempt Start Redpanda container - _, err = RunContainer(ctx, + _, err = redpanda.RunContainer(ctx, testcontainers.WithImage("redpandadata/redpanda:v23.2.18"), - WithListener("redpanda:99092"), + redpanda.WithListener("redpanda:99092"), network.WithNetwork([]string{"redpanda-host"}, RPNetwork), ) @@ -563,9 +564,9 @@ func TestRedpandaListener_NoNetwork(t *testing.T) { ctx := context.Background() // 1. Attempt Start Redpanda container - _, err := RunContainer(ctx, + _, err := redpanda.RunContainer(ctx, testcontainers.WithImage("redpandadata/redpanda:v23.2.18"), - WithListener("redpanda:99092"), + redpanda.WithListener("redpanda:99092"), ) require.Error(t, err) @@ -628,52 +629,3 @@ D4ZNvyXf/6E27Ibu6v2p/vs= -----END TESTING KEY-----`)) func testingKey(s string) string { return strings.ReplaceAll(s, "TESTING KEY", "PRIVATE KEY") } - -func Test_isAtLeastVersion(t *testing.T) { - type args struct { - image string - major string - } - tests := []struct { - name string - args args - want bool - }{ - { - name: "v21.5.6", - args: args{ - image: "redpandadata/redpanda:v21.5.6", - major: "23.3", - }, - want: false, - }, - { - name: "v23.3.3", - args: args{ - image: "redpandadata/redpanda:v23.3.3", - major: "23.3", - }, - want: true, - }, - { - name: "v23.3.3-rc1", - args: args{ - image: "redpandadata/redpanda:v23.3.3-rc1", - major: "23.3", - }, - want: true, - }, - { - name: "v21.3.3-rc1", - args: args{ - image: "redpandadata/redpanda:v21.3.3-rc1", - major: "23.3", - }, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - assert.Equalf(t, tt.want, isAtLeastVersion(tt.args.image, tt.args.major), "isAtLeastVersion(%v, %v)", tt.args.image, tt.args.major) - }) - } -} From 91f6f595bf553af948b8a57234dac00ff8e63dc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Sun, 18 Feb 2024 00:34:41 +0100 Subject: [PATCH 026/115] Fix modulege template to succeed on make lint command (#2243) --- modulegen/_template/examples_test.go.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modulegen/_template/examples_test.go.tmpl b/modulegen/_template/examples_test.go.tmpl index 127d69ba16..c5a0cb57d5 100644 --- a/modulegen/_template/examples_test.go.tmpl +++ b/modulegen/_template/examples_test.go.tmpl @@ -28,7 +28,7 @@ func Example{{ $entrypoint }}() { state, err := {{ $lower }}Container.State(ctx) if err != nil { - log.Fatalf("failed to get container state: %s", err) + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic } fmt.Println(state.Running) From c84e479ce8d1438f8e7220b36fbf510b7a86234a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 20 Feb 2024 18:26:28 +0100 Subject: [PATCH 027/115] feat: add vector database modules (Qdrant, Weaviate, Chroma, pgvector, OpenSearch, Milvus) (#2245) * fix: add nolint to the examples template * chore: bootstrap qdrant module * feat: add container methods for endpoints REST, gRPC and webUI * chore: add a full example using the gRPC client * fix: lint * fix: use inner t * chore: reduce network flakines on GH hosted runners OS-neutral interface to disable TCP/UDP offload to fix flaky networking on GitHub-hosted runners See https://github.com/smorimoto/tune-github-hosted-runner-network/blob/main/action.yml * Revert "chore: reduce network flakines on GH hosted runners" This reverts commit 7ce031e352fb76fb59507e40a825a549244564bc. * chore: try with daemon host * chore: hardcode 127.0.0.1 for testing on GH action * chore: print container logs on error * Revert "chore: hardcode 127.0.0.1 for testing on GH action" This reverts commit b602505f34f8c37dc9e74956f9509d623e21c82a. * Revert "chore: try with daemon host" This reverts commit 67a5abf1e14ccdc2fb0e9e3a115a7a9283c95c28. * chore: wait for the listening ports to be available * feat: new weaviate module * chore: add default values for the weviate module * chore: remove helper test method in qdrant * feat: add method to connect to the REST endpoint of weaviate * chore: add example for creating an weaviate client * docs: document weaviate methods * chore: bootstrap Chroma module * feat: support for passing env vars to modules * chore: add container method to get the base URL * chore: add example on how to connect to Chroma * docs: document weaviate client * chore: include heartbeat in the wait strategies * chore: add example for collections * Revert "feat: support for passing env vars to modules" This reverts commit ac974722461ba6ae7f353313dcf6cb8ffc361668. * feat: include pgvector to postgres module * fix: wrong value * feat: bootstrap opensearch module * chore: configure opensearch * chore: implement options and methods for opensearch * chore: bootstrap milvus * chore: improve container lifecycle and defaults for embed etcd * chore: add full example for creating collections * fix: lint * chore: rename to HttpHostAddress --- .github/dependabot.yml | 35 ++ .github/workflows/ci.yml | 2 +- .vscode/.testcontainers-go.code-workspace | 22 +- docs/modules/chroma.md | 84 ++++ docs/modules/milvus.md | 65 +++ docs/modules/opensearch.md | 67 +++ docs/modules/postgres.md | 6 +- docs/modules/qdrant.md | 79 ++++ docs/modules/weaviate.md | 78 ++++ mkdocs.yml | 5 + modulegen/_template/examples_test.go.tmpl | 2 +- modules/chroma/Makefile | 5 + modules/chroma/chroma.go | 60 +++ modules/chroma/chroma_test.go | 46 ++ modules/chroma/examples_test.go | 173 ++++++++ modules/chroma/go.mod | 61 +++ modules/chroma/go.sum | 177 ++++++++ modules/milvus/Makefile | 5 + modules/milvus/examples_test.go | 118 ++++++ modules/milvus/go.mod | 75 ++++ modules/milvus/go.sum | 490 ++++++++++++++++++++++ modules/milvus/milvus.go | 151 +++++++ modules/milvus/milvus_test.go | 49 +++ modules/milvus/mounts/embedEtcd.yaml.tpl | 2 + modules/opensearch/Makefile | 5 + modules/opensearch/examples_test.go | 45 ++ modules/opensearch/go.mod | 60 +++ modules/opensearch/go.sum | 174 ++++++++ modules/opensearch/opensearch.go | 134 ++++++ modules/opensearch/opensearch_test.go | 46 ++ modules/opensearch/options.go | 41 ++ modules/postgres/postgres_test.go | 7 + modules/qdrant/Makefile | 5 + modules/qdrant/examples_test.go | 328 +++++++++++++++ modules/qdrant/go.mod | 63 +++ modules/qdrant/go.sum | 178 ++++++++ modules/qdrant/qdrant.go | 83 ++++ modules/qdrant/qdrant_test.go | 84 ++++ modules/weaviate/Makefile | 5 + modules/weaviate/examples_test.go | 84 ++++ modules/weaviate/go.mod | 84 ++++ modules/weaviate/go.sum | 348 +++++++++++++++ modules/weaviate/weaviate.go | 68 +++ modules/weaviate/weaviate_test.go | 47 +++ sonar-project.properties | 2 +- 45 files changed, 3740 insertions(+), 8 deletions(-) create mode 100644 docs/modules/chroma.md create mode 100644 docs/modules/milvus.md create mode 100644 docs/modules/opensearch.md create mode 100644 docs/modules/qdrant.md create mode 100644 docs/modules/weaviate.md create mode 100644 modules/chroma/Makefile create mode 100644 modules/chroma/chroma.go create mode 100644 modules/chroma/chroma_test.go create mode 100644 modules/chroma/examples_test.go create mode 100644 modules/chroma/go.mod create mode 100644 modules/chroma/go.sum create mode 100644 modules/milvus/Makefile create mode 100644 modules/milvus/examples_test.go create mode 100644 modules/milvus/go.mod create mode 100644 modules/milvus/go.sum create mode 100644 modules/milvus/milvus.go create mode 100644 modules/milvus/milvus_test.go create mode 100644 modules/milvus/mounts/embedEtcd.yaml.tpl create mode 100644 modules/opensearch/Makefile create mode 100644 modules/opensearch/examples_test.go create mode 100644 modules/opensearch/go.mod create mode 100644 modules/opensearch/go.sum create mode 100644 modules/opensearch/opensearch.go create mode 100644 modules/opensearch/opensearch_test.go create mode 100644 modules/opensearch/options.go create mode 100644 modules/qdrant/Makefile create mode 100644 modules/qdrant/examples_test.go create mode 100644 modules/qdrant/go.mod create mode 100644 modules/qdrant/go.sum create mode 100644 modules/qdrant/qdrant.go create mode 100644 modules/qdrant/qdrant_test.go create mode 100644 modules/weaviate/Makefile create mode 100644 modules/weaviate/examples_test.go create mode 100644 modules/weaviate/go.mod create mode 100644 modules/weaviate/go.sum create mode 100644 modules/weaviate/weaviate.go create mode 100644 modules/weaviate/weaviate_test.go diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 31229f5111..38b4f4e3fa 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -58,6 +58,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/chroma + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/clickhouse schedule: @@ -149,6 +156,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/milvus + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/minio schedule: @@ -205,6 +219,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/opensearch + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/postgres schedule: @@ -219,6 +240,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/qdrant + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/rabbitmq schedule: @@ -247,3 +275,10 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/weaviate + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a40a43666e..5d43c32db5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,7 +104,7 @@ jobs: matrix: go-version: [1.20.x, 1.x] platform: [ubuntu-latest] - module: [artemis, cassandra, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, postgres, pulsar, rabbitmq, redis, redpanda, vault] + module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, vault, weaviate] exclude: - go-version: 1.20.x module: compose diff --git a/.vscode/.testcontainers-go.code-workspace b/.vscode/.testcontainers-go.code-workspace index a1bd38e6ed..68db0baf8e 100644 --- a/.vscode/.testcontainers-go.code-workspace +++ b/.vscode/.testcontainers-go.code-workspace @@ -21,6 +21,10 @@ "name": "module / cassandra", "path": "../modules/cassandra" }, + { + "name": "module / chroma", + "path": "../modules/chroma" + }, { "name": "module / clickhouse", "path": "../modules/clickhouse" @@ -73,6 +77,10 @@ "name": "module / mariadb", "path": "../modules/mariadb" }, + { + "name": "module / milvus", + "path": "../modules/milvus" + }, { "name": "module / minio", "path": "../modules/minio" @@ -105,6 +113,10 @@ "name": "module / openldap", "path": "../modules/openldap" }, + { + "name": "module / opensearch", + "path": "../modules/opensearch" + }, { "name": "module / postgres", "path": "../modules/postgres" @@ -113,6 +125,10 @@ "name": "module / pulsar", "path": "../modules/pulsar" }, + { + "name": "module / qdrant", + "path": "../modules/qdrant" + }, { "name": "module / rabbitmq", "path": "../modules/rabbitmq" @@ -129,9 +145,13 @@ "name": "module / vault", "path": "../modules/vault" }, + { + "name": "module / weaviate", + "path": "../modules/weaviate" + }, { "name": "modulegen", "path": "../modulegen" } ] -} +} \ No newline at end of file diff --git a/docs/modules/chroma.md b/docs/modules/chroma.md new file mode 100644 index 0000000000..7aefb2a456 --- /dev/null +++ b/docs/modules/chroma.md @@ -0,0 +1,84 @@ +# Chroma + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Chroma. + +## Adding this module to your project dependencies + +Please run the following command to add the Chroma module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/chroma +``` + +## Usage example + + +[Creating a Chroma container](../../modules/chroma/examples_test.go) inside_block:runChromaContainer + + +## Module reference + +The Chroma module exposes one entrypoint function to create the Chroma container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ChromaContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Chroma container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Chroma Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Chroma. E.g. `testcontainers.WithImage("chromadb/chroma:0.4.22.dev44")`. + +{% include "../features/common_functional_options.md" %} + +### Container Methods + +The Chroma container exposes the following methods: + +#### REST Endpoint + +This method returns the REST endpoint of the Chroma container, using the default `8000` port. + + +[Get REST endpoint](../../modules/chroma/chroma_test.go) inside_block:restEndpoint + + +## Examples + +### Getting a Chroma client + +The following example demonstrates how to create a Chroma client using the Chroma module. + +First of all, you need to import the Chroma module and the Swagger client: + +```golang +import ( + chromago "github.com/amikos-tech/chroma-go" + chromaopenapi "github.com/amikos-tech/chroma-go/swagger" +) +``` + +Then, you can create a Chroma client using the Chroma module: + + +[Get the client](../../modules/chroma/examples_test.go) inside_block:createClient + + +### Working with Collections + + +[Create Collection](../../modules/chroma/examples_test.go) inside_block:createCollection +[List Collections](../../modules/chroma/examples_test.go) inside_block:listCollections +[Delete Collection](../../modules/chroma/examples_test.go) inside_block:deleteCollection + \ No newline at end of file diff --git a/docs/modules/milvus.md b/docs/modules/milvus.md new file mode 100644 index 0000000000..cd1ac6ecf3 --- /dev/null +++ b/docs/modules/milvus.md @@ -0,0 +1,65 @@ +# Milvus + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Milvus. + +## Adding this module to your project dependencies + +Please run the following command to add the Milvus module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/milvus +``` + +## Usage example + + +[Creating a Milvus container](../../modules/milvus/examples_test.go) inside_block:runMilvusContainer + + +## Module reference + +The Milvus module exposes one entrypoint function to create the Milvus container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*MilvusContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Milvus container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Milvus Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Milvus. E.g. `testcontainers.WithImage("milvusdb/milvus:v2.3.9")`. + +{% include "../features/common_functional_options.md" %} + +### Container Methods + +The Milvus container exposes the following methods: + +#### ConnectionString + +This method returns the connection string to connect to the Milvus container, using the default `19530` port. + + +[Get connection string](../../modules/milvus/milvus_test.go) inside_block:connectionString + + +## Examples + +### Creating collections + +This example shows the usage of the Milvus module to create and retrieve collections. + + +[Create collections](../../modules/milvus/examples_test.go) inside_block:createCollections + diff --git a/docs/modules/opensearch.md b/docs/modules/opensearch.md new file mode 100644 index 0000000000..3340467b73 --- /dev/null +++ b/docs/modules/opensearch.md @@ -0,0 +1,67 @@ +# OpenSearch + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for OpenSearch. + +## Adding this module to your project dependencies + +Please run the following command to add the OpenSearch module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/opensearch +``` + +## Usage example + + +[Creating a OpenSearch container](../../modules/opensearch/examples_test.go) inside_block:runOpenSearchContainer + + +## Module reference + +The OpenSearch module exposes one entrypoint function to create the OpenSearch container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*OpenSearchContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the OpenSearch container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different OpenSearch Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for OpenSearch. E.g. `testcontainers.WithImage("opensearchproject/opensearch:2.11.1")`. + +{% include "../features/common_functional_options.md" %} + +#### User and password + +If you need to set a different password to request authorization when performing HTTP requests to the container, you can use the `WithUsername` and `WithPassword` options. By default, the username is set to `admin`, and the password is set to `admin`. + + +[Custom Credentials](../../modules/opensearch/examples_test.go) inside_block:runOpenSearchContainer + + +### Container Methods + +The OpenSearch container exposes the following methods: + +#### Address + +The `Address` method returns the location where the OpenSearch container is listening. +It returns a string with the format `http://:`. + +!!!warning + TLS is not supported at the moment. + + +[Connecting using HTTP](../../modules/opensearch/opensearch_test.go) inside_block:httpConnection + diff --git a/docs/modules/postgres.md b/docs/modules/postgres.md index 56fd9617e8..47cb9115dc 100644 --- a/docs/modules/postgres.md +++ b/docs/modules/postgres.md @@ -82,13 +82,11 @@ It's possible to pass extra parameters to the connection string, e.g. `sslmode=d ### Postgres variants -It's possible to use the Postgres container with Timescale or Postgis, to name a few. You simply need to update the image name and the wait strategy. +It's possible to use the Postgres container with PGVector, Timescale or Postgis, to name a few. You simply need to update the image name and the wait strategy. +[Image for PGVector](../../modules/postgres/postgres_test.go) inside_block:pgvector [Image for Timescale](../../modules/postgres/postgres_test.go) inside_block:timescale - - - [Image for Postgis](../../modules/postgres/postgres_test.go) inside_block:postgis diff --git a/docs/modules/qdrant.md b/docs/modules/qdrant.md new file mode 100644 index 0000000000..22c7d30d40 --- /dev/null +++ b/docs/modules/qdrant.md @@ -0,0 +1,79 @@ +# Qdrant + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Qdrant. + +## Adding this module to your project dependencies + +Please run the following command to add the Qdrant module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/qdrant +``` + +## Usage example + + +[Creating a Qdrant container](../../modules/qdrant/examples_test.go) inside_block:runQdrantContainer + + +## Module reference + +The Qdrant module exposes one entrypoint function to create the Qdrant container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*QdrantContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Qdrant container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Qdrant Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Qdrant. E.g. `testcontainers.WithImage("qdrant/qdrant:v1.7.4")`. + +{% include "../features/common_functional_options.md" %} + +### Container Methods + +The Qdrant container exposes the following methods: + +#### REST Endpoint + +This method returns the REST endpoint of the Qdrant container, using the default `6333` port. + + +[Get REST endpoint](../../modules/qdrant/qdrant_test.go) inside_block:restEndpoint + + +#### Web UI Endpoint + +This method returns the Web UI endpoint of the Qdrant container (`/dashboard`), using the default `6333` port. + + +[Get Web UI endpoint](../../modules/qdrant/qdrant_test.go) inside_block:webUIEndpoint + + +#### gRPC Endpoint + +This method returns the gRPC endpoint of the Qdrant container, using the default `6334` port. + + +[Get gRPC endpoint](../../modules/qdrant/qdrant_test.go) inside_block:gRPCEndpoint + + +### Full Example + +Here you can find a full example on how to use the qdrant-go module to perform operations with Qdrant, as seen in the [examples provided by the module](https://github.com/qdrant/go-client/blob/76db566382ed656a920fa273db1a58eec2417dcd/examples/main.go#L1) itself: + + +[Full Example](../../modules/qdrant/examples_test.go) inside_block:fullExample + \ No newline at end of file diff --git a/docs/modules/weaviate.md b/docs/modules/weaviate.md new file mode 100644 index 0000000000..0d0345f1d6 --- /dev/null +++ b/docs/modules/weaviate.md @@ -0,0 +1,78 @@ +# Weaviate + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Weaviate. + +## Adding this module to your project dependencies + +Please run the following command to add the Weaviate module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/weaviate +``` + +## Usage example + + +[Creating a Weaviate container](../../modules/weaviate/examples_test.go) inside_block:runWeaviateContainer + + +## Module reference + +The Weaviate module exposes one entrypoint function to create the Weaviate container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*WeaviateContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Weaviate container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Weaviate Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Weaviate. E.g. `testcontainers.WithImage("semitechnologies/weaviate:1.23.9")`. + +{% include "../features/common_functional_options.md" %} + +### Container Methods + +The Weaviate container exposes the following methods: + +#### HTTP Host Address + +This method returns the Schema and Host for the Weaviate container, using the default `8080` port. + +!!!info + At the moment, the Weaviate module only supports the HTTP schema. + + +[HTTP Host Address](../../modules/weaviate/weaviate_test.go) inside_block:httpHostAddress + + +## Examples + +### Getting a Weaviate client + +The following example demonstrates how to create a Weaviate client using the Weaviate module. + +First of all, you need to import the CWeaviate client: + +```golang +import ( + "github.com/weaviate/weaviate-go-client/v4/weaviate" +) +``` + +Then, you can create a Chroma client using the Chroma module: + + +[Get the client](../../modules/weaviate/examples_test.go) inside_block:createClient + diff --git a/mkdocs.yml b/mkdocs.yml index a4138d35f8..e8f46ab676 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -65,6 +65,7 @@ nav: - modules/index.md - modules/artemis.md - modules/cassandra.md + - modules/chroma.md - modules/clickhouse.md - modules/cockroachdb.md - modules/consul.md @@ -77,6 +78,7 @@ nav: - modules/kafka.md - modules/localstack.md - modules/mariadb.md + - modules/milvus.md - modules/minio.md - modules/mockserver.md - modules/mongodb.md @@ -85,12 +87,15 @@ nav: - modules/nats.md - modules/neo4j.md - modules/openldap.md + - modules/opensearch.md - modules/postgres.md - modules/pulsar.md + - modules/qdrant.md - modules/rabbitmq.md - modules/redis.md - modules/redpanda.md - modules/vault.md + - modules/weaviate.md - Examples: - examples/index.md - examples/nginx.md diff --git a/modulegen/_template/examples_test.go.tmpl b/modulegen/_template/examples_test.go.tmpl index c5a0cb57d5..d386959330 100644 --- a/modulegen/_template/examples_test.go.tmpl +++ b/modulegen/_template/examples_test.go.tmpl @@ -21,7 +21,7 @@ func Example{{ $entrypoint }}() { // Clean up the container defer func() { if err := {{ $lower }}Container.Terminate(ctx); err != nil { - log.Fatalf("failed to terminate container: %s", err) + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic } }() // } diff --git a/modules/chroma/Makefile b/modules/chroma/Makefile new file mode 100644 index 0000000000..ace50b69e3 --- /dev/null +++ b/modules/chroma/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-chroma diff --git a/modules/chroma/chroma.go b/modules/chroma/chroma.go new file mode 100644 index 0000000000..239e0e6fa0 --- /dev/null +++ b/modules/chroma/chroma.go @@ -0,0 +1,60 @@ +package chroma + +import ( + "context" + "fmt" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +// ChromaContainer represents the Chroma container type used in the module +type ChromaContainer struct { + testcontainers.Container +} + +// RunContainer creates an instance of the Chroma container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ChromaContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "chromadb/chroma:0.4.22", + ExposedPorts: []string{"8000/tcp"}, + WaitingFor: wait.ForAll( + wait.ForListeningPort("8000/tcp"), + wait.ForLog("Application startup complete"), + wait.ForHTTP("/api/v1/heartbeat").WithStatusCodeMatcher(func(status int) bool { + return status == 200 + }), + ), // 5 seconds it's not enough for the container to start + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &ChromaContainer{Container: container}, nil +} + +// RESTEndpoint returns the REST endpoint of the Chroma container +func (c *ChromaContainer) RESTEndpoint(ctx context.Context) (string, error) { + containerPort, err := c.MappedPort(ctx, "8000/tcp") + if err != nil { + return "", fmt.Errorf("failed to get container port: %w", err) + } + + host, err := c.Host(ctx) + if err != nil { + return "", fmt.Errorf("failed to get container host") + } + + return fmt.Sprintf("http://%s:%s", host, containerPort.Port()), nil +} diff --git a/modules/chroma/chroma_test.go b/modules/chroma/chroma_test.go new file mode 100644 index 0000000000..be6a1008a4 --- /dev/null +++ b/modules/chroma/chroma_test.go @@ -0,0 +1,46 @@ +package chroma_test + +import ( + "context" + "net/http" + "testing" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/chroma" +) + +func TestChroma(t *testing.T) { + ctx := context.Background() + + container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22.dev44")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + t.Run("REST Endpoint retrieve docs site", func(tt *testing.T) { + // restEndpoint { + restEndpoint, err := container.RESTEndpoint(ctx) + // } + if err != nil { + tt.Fatalf("failed to get REST endpoint: %s", err) + } + + cli := &http.Client{} + resp, err := cli.Get(restEndpoint + "/docs") + if err != nil { + tt.Fatalf("failed to perform GET request: %s", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + tt.Fatalf("unexpected status code: %d", resp.StatusCode) + } + }) +} diff --git a/modules/chroma/examples_test.go b/modules/chroma/examples_test.go new file mode 100644 index 0000000000..7dec6287b7 --- /dev/null +++ b/modules/chroma/examples_test.go @@ -0,0 +1,173 @@ +package chroma_test + +import ( + "context" + "fmt" + "log" + "os" + + chromago "github.com/amikos-tech/chroma-go" + "github.com/amikos-tech/chroma-go/openai" + chromaopenapi "github.com/amikos-tech/chroma-go/swagger" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/chroma" +) + +func ExampleRunContainer() { + // runChromaContainer { + ctx := context.Background() + + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := chromaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := chromaContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleChromaContainer_connectWithClient() { + // createClient { + ctx := context.Background() + + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := chromaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + connectionStr, err := chromaContainer.RESTEndpoint(ctx) + if err != nil { + log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic + } + + // create the client connection and confirm that we can access the server with it + configuration := chromaopenapi.NewConfiguration() + configuration.Servers = chromaopenapi.ServerConfigurations{ + { + URL: connectionStr, + Description: "Chromadb server url for this store", + }, + } + chromaClient := &chromago.Client{ + ApiClient: chromaopenapi.NewAPIClient(configuration), + } + + hbs, errHb := chromaClient.Heartbeat(context.Background()) + // } + if _, ok := hbs["nanosecond heartbeat"]; ok { + fmt.Println(ok) + } + + fmt.Println(errHb) + + // Output: + // true + // +} + +func ExampleChromaContainer_collections() { + ctx := context.Background() + + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + defer func() { + if err := chromaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + connectionStr, err := chromaContainer.RESTEndpoint(ctx) + if err != nil { + log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic + } + + // create the client connection and confirm that we can access the server with it + configuration := chromaopenapi.NewConfiguration() + configuration.Servers = chromaopenapi.ServerConfigurations{ + { + URL: connectionStr, + Description: "Chromadb server url for this store", + }, + } + chromaClient := &chromago.Client{ + ApiClient: chromaopenapi.NewAPIClient(configuration), + } + + // createCollection { + // for testing purposes, the OPENAI_API_KEY environment variable can be empty + // therefore this test is expected to succeed even though the API key is not set. + embeddingFunction := openai.NewOpenAIEmbeddingFunction(os.Getenv("OPENAI_API_KEY")) + distanceFunction := chromago.L2 + + col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, embeddingFunction, distanceFunction) + // } + if err != nil { + log.Fatalf("failed to create collection: %s", err) // nolint:gocritic + } + + fmt.Println("Collection created:", col.Name) + + // verify it's possible to add data to the collection + col1, err := col.Add( + context.Background(), + [][]float32{{1, 2, 3}, {4, 5, 6}}, + []map[string]interface{}{}, + []string{"test-doc-1", "test-doc-2"}, + []string{"test-label-1", "test-label-2"}, + ) + if err != nil { + log.Fatalf("failed to add data to collection: %s", err) // nolint:gocritic + } + + fmt.Println(col1.Count(context.Background())) + + // listCollections { + cols, err := chromaClient.ListCollections(context.Background()) + // } + if err != nil { + log.Fatalf("failed to list collections: %s", err) // nolint:gocritic + } + + fmt.Println(len(cols)) + + // deleteCollection { + _, err = chromaClient.DeleteCollection(context.Background(), "test-collection") + // } + if err != nil { + log.Fatalf("failed to delete collection: %s", err) // nolint:gocritic + } + + fmt.Println(err) + + // Output: + // Collection created: test-collection + // 2 + // 1 + // +} diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod new file mode 100644 index 0000000000..e76bd1768b --- /dev/null +++ b/modules/chroma/go.mod @@ -0,0 +1,61 @@ +module github.com/testcontainers/testcontainers-go/modules/chroma + +go 1.20 + +require ( + github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c + github.com/testcontainers/testcontainers-go v0.28.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.10.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum new file mode 100644 index 0000000000..82be5f22a2 --- /dev/null +++ b/modules/chroma/go.sum @@ -0,0 +1,177 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c h1:DzSXJSUVK5ed+HhAnGA1TKgBdXqAW/iXPRvpd9rXWLc= +github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c/go.mod h1:uJwgGN4rBUTMI88Rn68Xia+cTRogOo0/elcPvJYFtBU= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= diff --git a/modules/milvus/Makefile b/modules/milvus/Makefile new file mode 100644 index 0000000000..bda4a5997e --- /dev/null +++ b/modules/milvus/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-milvus diff --git a/modules/milvus/examples_test.go b/modules/milvus/examples_test.go new file mode 100644 index 0000000000..f4fab25376 --- /dev/null +++ b/modules/milvus/examples_test.go @@ -0,0 +1,118 @@ +package milvus_test + +import ( + "context" + "fmt" + "log" + + "github.com/milvus-io/milvus-sdk-go/v2/client" + "github.com/milvus-io/milvus-sdk-go/v2/entity" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/milvus" +) + +func ExampleRunContainer() { + // runMilvusContainer { + ctx := context.Background() + + milvusContainer, err := milvus.RunContainer(ctx, testcontainers.WithImage("milvusdb/milvus:v2.3.9")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := milvusContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := milvusContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleMilvusContainer_collections() { + // createCollections { + ctx := context.Background() + + milvusContainer, err := milvus.RunContainer(ctx, testcontainers.WithImage("milvusdb/milvus:v2.3.9")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := milvusContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + connectionStr, err := milvusContainer.ConnectionString(ctx) + if err != nil { + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic + } + + // Create a client to interact with the Milvus container + milvusClient, err := client.NewGrpcClient(context.Background(), connectionStr) + if err != nil { + log.Fatal("failed to connect to Milvus:", err.Error()) + } + defer milvusClient.Close() + + collectionName := "book" + schema := &entity.Schema{ + CollectionName: collectionName, + Description: "Test book search", + Fields: []*entity.Field{ + { + Name: "book_id", + DataType: entity.FieldTypeInt64, + PrimaryKey: true, + AutoID: false, + }, + { + Name: "word_count", + DataType: entity.FieldTypeInt64, + PrimaryKey: false, + AutoID: false, + }, + { + Name: "book_intro", + DataType: entity.FieldTypeFloatVector, + TypeParams: map[string]string{ + "dim": "2", + }, + }, + }, + EnableDynamicField: true, + } + + err = milvusClient.CreateCollection( + context.Background(), // ctx + schema, + 2, // shardNum + ) + if err != nil { + log.Fatalf("failed to create collection: %s", err) // nolint:gocritic + } + + list, err := milvusClient.ListCollections(context.Background()) + if err != nil { + log.Fatalf("failed to list collections: %s", err) // nolint:gocritic + } + // } + + fmt.Println(len(list)) + + // Output: + // 1 +} diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod new file mode 100644 index 0000000000..dbe0faab37 --- /dev/null +++ b/modules/milvus/go.mod @@ -0,0 +1,75 @@ +module github.com/testcontainers/testcontainers-go/modules/milvus + +go 1.20 + +require ( + github.com/milvus-io/milvus-sdk-go/v2 v2.3.6 + github.com/testcontainers/testcontainers-go v0.28.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/cockroachdb/errors v1.9.1 // indirect + github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f // indirect + github.com/cockroachdb/redact v1.1.3 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/getsentry/sentry-go v0.12.0 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/kr/pretty v0.3.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/milvus-io/milvus-proto/go-api/v2 v2.3.5 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/rogpeppe/go-internal v1.8.1 // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tidwall/gjson v1.14.4 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.0 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/text v0.13.0 // indirect + golang.org/x/tools v0.10.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum new file mode 100644 index 0000000000..59f92cdb63 --- /dev/null +++ b/modules/milvus/go.sum @@ -0,0 +1,490 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53/go.mod h1:+3IMCy2vIlbG1XG/0ggNQv0SvxCAIpPM5b1nCz56Xno= +github.com/CloudyKit/jet/v3 v3.0.0/go.mod h1:HKQPgSJmdK8hdoAbKUUWajkHyHo4RaU5rMdUywE7VMo= +github.com/Joker/hpp v1.0.0/go.mod h1:8x5n+M1Hp5hC0g8okX3sR3vFQwynaX/UgSOM9MeBKzY= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/Shopify/goreferrer v0.0.0-20181106222321-ec9c9a553398/go.mod h1:a1uqRtAwp2Xwc6WNPJEufxJ7fx3npB4UV/JOLmbu5I0= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.9.1 h1:yFVvsI0VxmRShfawbt/laCIDy/mtTqqnvoNgiy5bEV8= +github.com/cockroachdb/errors v1.9.1/go.mod h1:2sxOtL2WIc096WSZqZ5h8fa17rdDq9HZOZLBCor4mBk= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f h1:6jduT9Hfc0njg5jJ1DdKCFPdMBrp/mdZfCpa5h+WM74= +github.com/cockroachdb/logtags v0.0.0-20211118104740-dabe8e521a4f/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.3 h1:AKZds10rFSIj7qADf0g46UixK8NNLwWTNdCIGS5wfSQ= +github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= +github.com/codegangsta/inject v0.0.0-20150114235600-33e0aa1cb7c0/go.mod h1:4Zcjuz89kmFXt9morQgcfYZAYZ5n8WHjt81YYWIwtTM= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/etcd-io/bbolt v1.3.3/go.mod h1:ZF2nL25h33cCyBtcyWeZ2/I3HQOfTP+0PIEvHjkjCrw= +github.com/fasthttp-contrib/websocket v0.0.0-20160511215533-1f3b11f56072/go.mod h1:duJ4Jxv5lDcvg4QuQr0oowTf7dz4/CR8NtyCooz9HL8= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= +github.com/getsentry/sentry-go v0.12.0 h1:era7g0re5iY13bHSdN/xMkyV+5zZppjRVQhZrXCaEIk= +github.com/getsentry/sentry-go v0.12.0/go.mod h1:NSap0JBYWzHND8oMbyi0+XZhUalc1TBdRL1M71JZW2c= +github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= +github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= +github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= +github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-faker/faker/v4 v4.1.0 h1:ffuWmpDrducIUOO0QSKSF5Q2dxAht+dhsT9FvVHhPEI= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-martini/martini v0.0.0-20170121215854-22fa46961aab/go.mod h1:/P9AEU963A2AYjv4d1V5eVL1CQbEJq6aCNHDDjibzu8= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/gogo/status v1.1.0/go.mod h1:BFv9nrluPLmrS0EmGVvLaPNmRosr9KapBYd5/hpY1WM= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/gomodule/redigo v1.7.1-0.20190724094224-574c33c3df38/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/iris-contrib/blackfriday v2.0.0+incompatible/go.mod h1:UzZ2bDEoaSGPbkg6SAB4att1aAwTmVIx/5gCVqeyUdI= +github.com/iris-contrib/go.uuid v2.0.0+incompatible/go.mod h1:iz2lgM/1UnEf1kP0L/+fafWORmlnuysV2EMP8MW+qe0= +github.com/iris-contrib/jade v1.1.3/go.mod h1:H/geBymxJhShH5kecoiOCSssPX7QWYH7UaeZTSWddIk= +github.com/iris-contrib/pongo2 v0.0.1/go.mod h1:Ssh+00+3GAZqSQb30AvBRNxBx7rf0GqwkjqxNd0u65g= +github.com/iris-contrib/schema v0.0.1/go.mod h1:urYA3uvUNG1TIIjOSCzHr9/LmbQo8LrOcOqfqxa4hXw= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/kataras/golog v0.0.10/go.mod h1:yJ8YKCmyL+nWjERB90Qwn+bdyBZsaQwU3bTVFgkFIp8= +github.com/kataras/iris/v12 v12.1.8/go.mod h1:LMYy4VlP67TQ3Zgriz8RE2h2kMZV2SgMYbq3UhfoFmE= +github.com/kataras/neffos v0.0.14/go.mod h1:8lqADm8PnbeFfL7CLXh1WHw53dG27MC3pgi2R1rmoTE= +github.com/kataras/pio v0.0.2/go.mod h1:hAoW0t9UmXi4R5Oyq5Z4irTbaTsOemSrDGUtaTl7Dro= +github.com/kataras/sitemap v0.0.5/go.mod h1:KY2eugMKiPwsJgx7+U103YZehfvNGOXURubcGyk0Bz8= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.8.2/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.7/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/cpuid v1.2.1/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo/v4 v4.5.0/go.mod h1:czIriw4a0C1dFun+ObrXp7ok03xON0N1awStJ6ArI7Y= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/mediocregopher/radix/v3 v3.4.2/go.mod h1:8FL3F6UQRXHXIBSPUs5h0RybMF8i4n7wVopoX3x7Bv8= +github.com/microcosm-cc/bluemonday v1.0.2/go.mod h1:iVP4YcDBq+n/5fb23BhYFvIMq/leAFZyRl6bYmGDlGc= +github.com/milvus-io/milvus-proto/go-api/v2 v2.3.5 h1:4XDy6ATB2Z0fl4Jn0hS6BT6/8YaE0d+ZUf4uBH+Z0Do= +github.com/milvus-io/milvus-proto/go-api/v2 v2.3.5/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek= +github.com/milvus-io/milvus-sdk-go/v2 v2.3.6 h1:JVn9OdaronLGmtpxvamQf523mtn3Z/CRxkSZCMWutV4= +github.com/milvus-io/milvus-sdk-go/v2 v2.3.6/go.mod h1:bYFSXVxEj6A/T8BfiR+xkofKbAVZpWiDvKr3SzYUWiA= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/schollz/closestmatch v2.1.0+incompatible/go.mod h1:RtP1ddjLong6gTkbtmuhtR2uUrrJOpYzYRvbcPAid+g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= +github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.6.0/go.mod h1:FstJa9V+Pj9vQ7OJie2qMHdwemEDaDiSdBnvPM1Su9w= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/yalp/jsonpath v0.0.0-20180802001716-5cc68e5049a0/go.mod h1:/LWChgwKmvncFJFHJ7Gvn9wZArjbV5/FppcK2fKk/tI= +github.com/yudai/gojsondiff v1.0.0/go.mod h1:AY32+k2cwILAkW1fbgxQ5mUmMiZFgLIV+FBNExI05xg= +github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM= +github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190327091125-710a502c58a2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20211008194852-3b03d305991f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190327201419-c70d86f8b7cf/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180518175338-11a468237815/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc/examples v0.0.0-20220617181431-3e7b97febc7f h1:rqzndB2lIQGivcXdTuY3Y9NBvr70X+y77woofSRluec= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v8 v8.18.2/go.mod h1:RX2a/7Ha8BgOhfk7j780h4/u/RRjR0eouCJSH80/M2Y= +gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20191120175047-4206685974f2/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/modules/milvus/milvus.go b/modules/milvus/milvus.go new file mode 100644 index 0000000000..f788ea5497 --- /dev/null +++ b/modules/milvus/milvus.go @@ -0,0 +1,151 @@ +package milvus + +import ( + "bytes" + "context" + _ "embed" + "fmt" + "html/template" + "os" + "time" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +//go:embed mounts/embedEtcd.yaml.tpl +var embedEtcdConfigTpl string + +const embedEtcdContainerPath string = "/milvus/configs/embedEtcd.yaml" + +// MilvusContainer represents the Milvus container type used in the module +type MilvusContainer struct { + testcontainers.Container +} + +// ConnectionString returns the connection string for the milvus container, using the default 19530 port, and +// obtaining the host and exposed port from the container. +func (c *MilvusContainer) ConnectionString(ctx context.Context) (string, error) { + host, err := c.Host(ctx) + if err != nil { + return "", err + } + port, err := c.MappedPort(ctx, "19530/tcp") + if err != nil { + return "", err + } + return fmt.Sprintf("%s:%s", host, port.Port()), nil +} + +// RunContainer creates an instance of the Milvus container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*MilvusContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "milvusdb/milvus:v2.3.9", + ExposedPorts: []string{"19530/tcp", "9091/tcp", "2379/tcp"}, + Env: map[string]string{ + "ETCD_USE_EMBED": "true", + "ETCD_DATA_DIR": "/var/lib/milvus/etcd", + "ETCD_CONFIG_PATH": embedEtcdContainerPath, + "COMMON_STORAGETYPE": "local", + }, + Cmd: []string{"milvus", "run", "standalone"}, + WaitingFor: wait.ForHTTP("/healthz").WithPort("9091").WithStartupTimeout(60 * time.Second).WithPollInterval(30 * time.Second), + LifecycleHooks: []testcontainers.ContainerLifecycleHooks{ + { + PostCreates: []testcontainers.ContainerHook{ + // Copy the default embed etcd config to container after it's created. + // Otherwise the milvus container will panic on startup. + createDefaultEmbedEtcdConfig, + }, + PostStarts: []testcontainers.ContainerHook{regenerateEmbedEtcdConfig}, + }, + }, + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &MilvusContainer{Container: container}, nil +} + +type embedEtcdConfigTplParams struct { + Port int +} + +func renderEmbedEtcdConfig(port int) ([]byte, error) { + tplParams := embedEtcdConfigTplParams{ + Port: port, + } + + etcdCfgTpl, err := template.New("embedEtcd.yaml").Parse(embedEtcdConfigTpl) + if err != nil { + return nil, fmt.Errorf("failed to parse embed etcd config file template: %w", err) + } + + var embedEtcdYaml bytes.Buffer + if err := etcdCfgTpl.Execute(&embedEtcdYaml, tplParams); err != nil { + return nil, fmt.Errorf("failed to render embed etcd config template: %w", err) + } + + return embedEtcdYaml.Bytes(), nil +} + +// createDefaultEmbedEtcdConfig creates a default embed etcd config file, +// using the default port 2379 as the advertised port. The file is then copied to the container. +func createDefaultEmbedEtcdConfig(ctx context.Context, c testcontainers.Container) error { + // Otherwise the milvus container will panic on startup. + defaultEmbedEtcdConfig, err := renderEmbedEtcdConfig(2379) + if err != nil { + return fmt.Errorf("failed to render default config: %w", err) + } + + tmpDir := os.TempDir() + defaultEmbedEtcdConfigPath := fmt.Sprintf("%s/embedEtcd.yaml", tmpDir) + + if err := os.WriteFile(defaultEmbedEtcdConfigPath, defaultEmbedEtcdConfig, 0o644); err != nil { + return fmt.Errorf("failed to write default embed etcd config to a temporary dir: %w", err) + } + + if err != nil { + return fmt.Errorf("can't create default embed etcd config: %w", err) + } + defer os.Remove(defaultEmbedEtcdConfigPath) + + err = c.CopyFileToContainer(ctx, defaultEmbedEtcdConfigPath, embedEtcdContainerPath, 0o644) + if err != nil { + return fmt.Errorf("can't copy %s to container: %w", defaultEmbedEtcdConfigPath, err) + } + + return nil +} + +// regenerateEmbedEtcdConfig updates the embed etcd config file with the mapped port +func regenerateEmbedEtcdConfig(ctx context.Context, c testcontainers.Container) error { + containerPort, err := c.MappedPort(ctx, "2379/tcp") + if err != nil { + return fmt.Errorf("failed to get mapped port: %w", err) + } + + embedEtcdConfig, err := renderEmbedEtcdConfig(containerPort.Int()) + if err != nil { + return fmt.Errorf("failed to embed etcd config: %w", err) + } + + err = c.CopyToContainer(ctx, embedEtcdConfig, embedEtcdContainerPath, 600) + if err != nil { + return fmt.Errorf("failed to copy embedEtcd.yaml into container: %w", err) + } + + return nil +} diff --git a/modules/milvus/milvus_test.go b/modules/milvus/milvus_test.go new file mode 100644 index 0000000000..43465ffa77 --- /dev/null +++ b/modules/milvus/milvus_test.go @@ -0,0 +1,49 @@ +package milvus_test + +import ( + "context" + "testing" + + "github.com/milvus-io/milvus-sdk-go/v2/client" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/milvus" +) + +func TestMilvus(t *testing.T) { + ctx := context.Background() + + container, err := milvus.RunContainer(ctx, testcontainers.WithImage("milvusdb/milvus:v2.3.9")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + t.Run("Connect to Milvus with gRPC", func(tt *testing.T) { + // connectionString { + connectionStr, err := container.ConnectionString(ctx) + // } + if err != nil { + tt.Fatal(err) + } + + milvusClient, err := client.NewGrpcClient(context.Background(), connectionStr) + if err != nil { + tt.Fatal("failed to connect to Milvus:", err.Error()) + } + defer milvusClient.Close() + + v, err := milvusClient.GetVersion(ctx) + if err != nil { + tt.Fatal("failed to get version:", err.Error()) + } + + tt.Logf("Milvus version: %s", v) + }) +} diff --git a/modules/milvus/mounts/embedEtcd.yaml.tpl b/modules/milvus/mounts/embedEtcd.yaml.tpl new file mode 100644 index 0000000000..74e9aab2b7 --- /dev/null +++ b/modules/milvus/mounts/embedEtcd.yaml.tpl @@ -0,0 +1,2 @@ +listen-client-urls: http://0.0.0.0:{{ .Port }} +advertise-client-urls: http://0.0.0.0:{{ .Port }} diff --git a/modules/opensearch/Makefile b/modules/opensearch/Makefile new file mode 100644 index 0000000000..fd48b1c9a6 --- /dev/null +++ b/modules/opensearch/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-opensearch diff --git a/modules/opensearch/examples_test.go b/modules/opensearch/examples_test.go new file mode 100644 index 0000000000..bb9a855c2a --- /dev/null +++ b/modules/opensearch/examples_test.go @@ -0,0 +1,45 @@ +package opensearch_test + +import ( + "context" + "fmt" + "log" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/opensearch" +) + +func ExampleRunContainer() { + // runOpenSearchContainer { + ctx := context.Background() + + opensearchContainer, err := opensearch.RunContainer( + ctx, + testcontainers.WithImage("opensearchproject/opensearch:2.11.1"), + opensearch.WithUsername("new-username"), + opensearch.WithPassword("new-password"), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := opensearchContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := opensearchContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + fmt.Printf("%s : %s\n", opensearchContainer.User, opensearchContainer.Password) + + // Output: + // true + // new-username : new-password +} diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod new file mode 100644 index 0000000000..4b06263d10 --- /dev/null +++ b/modules/opensearch/go.mod @@ -0,0 +1,60 @@ +module github.com/testcontainers/testcontainers-go/modules/opensearch + +go 1.20 + +require ( + github.com/docker/docker v25.0.2+incompatible + github.com/docker/go-units v0.5.0 + github.com/testcontainers/testcontainers-go v0.28.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.10.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum new file mode 100644 index 0000000000..5026d53dbc --- /dev/null +++ b/modules/opensearch/go.sum @@ -0,0 +1,174 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= diff --git a/modules/opensearch/opensearch.go b/modules/opensearch/opensearch.go new file mode 100644 index 0000000000..019f68f287 --- /dev/null +++ b/modules/opensearch/opensearch.go @@ -0,0 +1,134 @@ +package opensearch + +import ( + "context" + "encoding/json" + "fmt" + "io" + "time" + + "github.com/docker/docker/api/types/container" + "github.com/docker/go-units" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +const ( + defaultPassword = "admin" + defaultUsername = "admin" + defaultHTTPPort = "9200/tcp" +) + +// OpenSearchContainer represents the OpenSearch container type used in the module +type OpenSearchContainer struct { + testcontainers.Container + User string + Password string +} + +// RunContainer creates an instance of the OpenSearch container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*OpenSearchContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "opensearchproject/opensearch:2.11.1", + ExposedPorts: []string{defaultHTTPPort, "9600/tcp"}, + Env: map[string]string{ + "discovery.type": "single-node", + "DISABLE_INSTALL_DEMO_CONFIG": "true", + "DISABLE_SECURITY_PLUGIN": "true", + "OPENSEARCH_USERNAME": defaultUsername, + "OPENSEARCH_PASSWORD": defaultPassword, + }, + HostConfigModifier: func(hc *container.HostConfig) { + hc.Ulimits = []*units.Ulimit{ + { + Name: "memlock", + Soft: -1, // Set memlock to unlimited (no soft or hard limit) + Hard: -1, + }, + { + Name: "nofile", + Soft: 65536, // Maximum number of open files for the opensearch user - set to at least 65536 + Hard: 65536, + }, + } + }, + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + // Gather all config options (defaults and then apply provided options) + settings := defaultOptions() + for _, opt := range opts { + if apply, ok := opt.(Option); ok { + apply(settings) + } + opt.Customize(&genericContainerReq) + } + + // set credentials if they are provided, otherwise use the defaults + if settings.Username != "" { + genericContainerReq.Env["OPENSEARCH_USERNAME"] = settings.Username + } + if settings.Password != "" { + genericContainerReq.Env["OPENSEARCH_PASSWORD"] = settings.Password + } + + username := genericContainerReq.Env["OPENSEARCH_USERNAME"] + password := genericContainerReq.Env["OPENSEARCH_PASSWORD"] + + // the wat strategy does not support TLS at the moment, + // so we need to disable it in the strategy for now. + genericContainerReq.WaitingFor = wait.ForHTTP("/"). + WithPort("9200"). + WithTLS(false). + WithStartupTimeout(120*time.Second). + WithStatusCodeMatcher(func(status int) bool { + return status == 200 + }). + WithBasicAuth(username, password). + WithResponseMatcher(func(body io.Reader) bool { + bs, err := io.ReadAll(body) + if err != nil { + return false + } + + type response struct { + Tagline string `json:"tagline"` + } + + var r response + err = json.Unmarshal(bs, &r) + if err != nil { + return false + } + + return r.Tagline == "The OpenSearch Project: https://opensearch.org/" + }) + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &OpenSearchContainer{Container: container, User: username, Password: password}, nil +} + +// Address retrieves the address of the OpenSearch container. +// It will use http as protocol, as TLS is not supported at the moment. +func (c *OpenSearchContainer) Address(ctx context.Context) (string, error) { + containerPort, err := c.MappedPort(ctx, defaultHTTPPort) + if err != nil { + return "", err + } + + host, err := c.Host(ctx) + if err != nil { + return "", err + } + + return fmt.Sprintf("http://%s:%s", host, containerPort.Port()), nil +} diff --git a/modules/opensearch/opensearch_test.go b/modules/opensearch/opensearch_test.go new file mode 100644 index 0000000000..4d62638af6 --- /dev/null +++ b/modules/opensearch/opensearch_test.go @@ -0,0 +1,46 @@ +package opensearch_test + +import ( + "context" + "net/http" + "testing" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/opensearch" +) + +func TestOpenSearch(t *testing.T) { + ctx := context.Background() + + container, err := opensearch.RunContainer(ctx, testcontainers.WithImage("opensearchproject/opensearch:2.11.1")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + t.Run("Connect to Address", func(t *testing.T) { + address, err := container.Address(ctx) + if err != nil { + t.Fatal(err) + } + + client := &http.Client{} + + req, err := http.NewRequest("GET", address, nil) + if err != nil { + t.Fatal(err) + } + + resp, err := client.Do(req) + if err != nil { + t.Fatalf("failed to perform GET request: %s", err) + } + defer resp.Body.Close() + }) +} diff --git a/modules/opensearch/options.go b/modules/opensearch/options.go new file mode 100644 index 0000000000..3792d08c6f --- /dev/null +++ b/modules/opensearch/options.go @@ -0,0 +1,41 @@ +package opensearch + +import "github.com/testcontainers/testcontainers-go" + +// Options is a struct for specifying options for the OpenSearch container. +type Options struct { + Password string + Username string +} + +func defaultOptions() *Options { + return &Options{ + Username: defaultUsername, + Password: defaultPassword, + } +} + +// Compiler check to ensure that Option implements the testcontainers.ContainerCustomizer interface. +var _ testcontainers.ContainerCustomizer = (*Option)(nil) + +// Option is an option for the OpenSearch container. +type Option func(*Options) + +// Customize is a NOOP. It's defined to satisfy the testcontainers.ContainerCustomizer interface. +func (o Option) Customize(*testcontainers.GenericContainerRequest) { + // NOOP to satisfy interface. +} + +// WithPassword sets the password for the OpenSearch container. +func WithPassword(password string) Option { + return func(o *Options) { + o.Password = password + } +} + +// WithUsername sets the username for the OpenSearch container. +func WithUsername(username string) Option { + return func(o *Options) { + o.Username = username + } +} diff --git a/modules/postgres/postgres_test.go b/modules/postgres/postgres_test.go index 6cb1346977..3ce2692d26 100644 --- a/modules/postgres/postgres_test.go +++ b/modules/postgres/postgres_test.go @@ -53,6 +53,13 @@ func TestPostgres(t *testing.T) { wait: wait.ForLog("database system is ready to accept connections").WithOccurrence(2).WithStartupTimeout(30 * time.Second), // } }, + { + name: "Pgvector", + // pgvector { + image: "docker.io/pgvector/pgvector:pg16", + wait: wait.ForLog("database system is ready to accept connections").WithOccurrence(2).WithStartupTimeout(30 * time.Second), + // } + }, } for _, tt := range tests { diff --git a/modules/qdrant/Makefile b/modules/qdrant/Makefile new file mode 100644 index 0000000000..09e3012fbb --- /dev/null +++ b/modules/qdrant/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-qdrant diff --git a/modules/qdrant/examples_test.go b/modules/qdrant/examples_test.go new file mode 100644 index 0000000000..c21f5812ab --- /dev/null +++ b/modules/qdrant/examples_test.go @@ -0,0 +1,328 @@ +package qdrant_test + +import ( + "context" + "fmt" + "log" + "time" + + pb "github.com/qdrant/go-client/qdrant" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/qdrant" +) + +func ExampleRunContainer() { + // runQdrantContainer { + ctx := context.Background() + + qdrantContainer, err := qdrant.RunContainer(ctx, testcontainers.WithImage("qdrant/qdrant:v1.7.4")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := qdrantContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := qdrantContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_createPoints() { + // fullExample { + qdrantContainer, err := qdrant.RunContainer(context.Background(), testcontainers.WithImage("qdrant/qdrant:v1.7.4")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + defer func() { + if err := qdrantContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + grpcEndpoint, err := qdrantContainer.GRPCEndpoint(context.Background()) + if err != nil { + log.Fatalf("failed to get gRPC endpoint: %s", err) // nolint:gocritic + } + + // Set up a connection to the server. + conn, err := grpc.Dial(grpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + log.Fatalf("did not connect: %v", err) + } + defer conn.Close() + + collections_client := pb.NewCollectionsClient(conn) + + const ( + collectionName = "test_collection" + vectorSize uint64 = 4 + distance = pb.Distance_Dot + ) + + // 1. create the collection + var defaultSegmentNumber uint64 = 2 + _, err = collections_client.Create(context.Background(), &pb.CreateCollection{ + CollectionName: collectionName, + VectorsConfig: &pb.VectorsConfig{Config: &pb.VectorsConfig_Params{ + Params: &pb.VectorParams{ + Size: vectorSize, + Distance: distance, + }, + }}, + OptimizersConfig: &pb.OptimizersConfigDiff{ + DefaultSegmentNumber: &defaultSegmentNumber, + }, + }) + if err != nil { + log.Fatalf("Could not create collection: %v", err) + } + + // 2. Contact the server and print out its response. + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + r, err := collections_client.List(ctx, &pb.ListCollectionsRequest{}) + if err != nil { + log.Fatalf("could not get collections: %v", err) + } + fmt.Printf("List of collections: %s\n", r.GetCollections()) + + // 3. Create points grpc client + pointsClient := pb.NewPointsClient(conn) + + // 4. Create keyword field index + fieldIndex1Type := pb.FieldType_FieldTypeKeyword + fieldIndex1Name := "city" + _, err = pointsClient.CreateFieldIndex(context.Background(), &pb.CreateFieldIndexCollection{ + CollectionName: collectionName, + FieldName: fieldIndex1Name, + FieldType: &fieldIndex1Type, + }) + if err != nil { + log.Fatalf("Could not create field index: %v", err) + } + + // 5. Create integer field index + fieldIndex2Type := pb.FieldType_FieldTypeInteger + fieldIndex2Name := "count" + _, err = pointsClient.CreateFieldIndex(context.Background(), &pb.CreateFieldIndexCollection{ + CollectionName: collectionName, + FieldName: fieldIndex2Name, + FieldType: &fieldIndex2Type, + }) + if err != nil { + log.Fatalf("Could not create field index: %v", err) + } + + // 6. Upsert points + waitUpsert := true + upsertPoints := []*pb.PointStruct{ + { + // Point Id is number or UUID + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Num{Num: 1}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.05, 0.61, 0.76, 0.74}}}}, + Payload: map[string]*pb.Value{ + "city": { + Kind: &pb.Value_StringValue{StringValue: "Berlin"}, + }, + "country": { + Kind: &pb.Value_StringValue{StringValue: "Germany"}, + }, + "count": { + Kind: &pb.Value_IntegerValue{IntegerValue: 1000000}, + }, + "square": { + Kind: &pb.Value_DoubleValue{DoubleValue: 12.5}, + }, + }, + }, + { + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Num{Num: 2}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.19, 0.81, 0.75, 0.11}}}}, + Payload: map[string]*pb.Value{ + "city": { + Kind: &pb.Value_ListValue{ + ListValue: &pb.ListValue{ + Values: []*pb.Value{ + { + Kind: &pb.Value_StringValue{StringValue: "Berlin"}, + }, + { + Kind: &pb.Value_StringValue{StringValue: "London"}, + }, + }, + }, + }, + }, + }, + }, + { + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Num{Num: 3}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.36, 0.55, 0.47, 0.94}}}}, + Payload: map[string]*pb.Value{ + "city": { + Kind: &pb.Value_ListValue{ + ListValue: &pb.ListValue{ + Values: []*pb.Value{ + { + Kind: &pb.Value_StringValue{StringValue: "Berlin"}, + }, + { + Kind: &pb.Value_StringValue{StringValue: "Moscow"}, + }, + }, + }, + }, + }, + }, + }, + { + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Num{Num: 4}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.18, 0.01, 0.85, 0.80}}}}, + Payload: map[string]*pb.Value{ + "city": { + Kind: &pb.Value_ListValue{ + ListValue: &pb.ListValue{ + Values: []*pb.Value{ + { + Kind: &pb.Value_StringValue{StringValue: "London"}, + }, + { + Kind: &pb.Value_StringValue{StringValue: "Moscow"}, + }, + }, + }, + }, + }, + }, + }, + { + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Num{Num: 5}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.24, 0.18, 0.22, 0.44}}}}, + Payload: map[string]*pb.Value{ + "count": { + Kind: &pb.Value_ListValue{ + ListValue: &pb.ListValue{ + Values: []*pb.Value{ + { + Kind: &pb.Value_IntegerValue{IntegerValue: 0}, + }, + }, + }, + }, + }, + }, + }, + { + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Num{Num: 6}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.35, 0.08, 0.11, 0.44}}}}, + Payload: map[string]*pb.Value{}, + }, + { + Id: &pb.PointId{ + PointIdOptions: &pb.PointId_Uuid{Uuid: "58384991-3295-4e21-b711-fd3b94fa73e3"}, + }, + Vectors: &pb.Vectors{VectorsOptions: &pb.Vectors_Vector{Vector: &pb.Vector{Data: []float32{0.35, 0.08, 0.11, 0.44}}}}, + Payload: map[string]*pb.Value{}, + }, + } + _, err = pointsClient.Upsert(context.Background(), &pb.UpsertPoints{ + CollectionName: collectionName, + Wait: &waitUpsert, + Points: upsertPoints, + }) + if err != nil { + log.Fatalf("Could not upsert points: %v", err) + } + + // 7. Retrieve points by ids + pointsById, err := pointsClient.Get(context.Background(), &pb.GetPoints{ + CollectionName: collectionName, + Ids: []*pb.PointId{ + {PointIdOptions: &pb.PointId_Num{Num: 1}}, + {PointIdOptions: &pb.PointId_Num{Num: 2}}, + }, + }) + if err != nil { + log.Fatalf("Could not retrieve points: %v", err) + } + + fmt.Printf("Retrieved points: %d\n", len(pointsById.GetResult())) + + // 8. Unfiltered search + unfilteredSearchResult, err := pointsClient.Search(context.Background(), &pb.SearchPoints{ + CollectionName: collectionName, + Vector: []float32{0.2, 0.1, 0.9, 0.7}, + Limit: 3, + // Include all payload and vectors in the search result + WithVectors: &pb.WithVectorsSelector{SelectorOptions: &pb.WithVectorsSelector_Enable{Enable: true}}, + WithPayload: &pb.WithPayloadSelector{SelectorOptions: &pb.WithPayloadSelector_Enable{Enable: true}}, + }) + if err != nil { + log.Fatalf("Could not search points: %v", err) + } + + fmt.Printf("Found points: %d\n", len(unfilteredSearchResult.GetResult())) + + // 9. filtered search + filteredSearchResult, err := pointsClient.Search(ctx, &pb.SearchPoints{ + CollectionName: collectionName, + Vector: []float32{0.2, 0.1, 0.9, 0.7}, + Limit: 3, + Filter: &pb.Filter{ + Should: []*pb.Condition{ + { + ConditionOneOf: &pb.Condition_Field{ + Field: &pb.FieldCondition{ + Key: "city", + Match: &pb.Match{ + MatchValue: &pb.Match_Keyword{ + Keyword: "London", + }, + }, + }, + }, + }, + }, + }, + }) + if err != nil { + log.Fatalf("Could not search points: %v", err) + } + // } + + fmt.Printf("Found points: %d\n", len(filteredSearchResult.GetResult())) + + // Output: + // List of collections: [name:"test_collection"] + // Retrieved points: 2 + // Found points: 3 + // Found points: 2 +} diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod new file mode 100644 index 0000000000..d1cb76271a --- /dev/null +++ b/modules/qdrant/go.mod @@ -0,0 +1,63 @@ +module github.com/testcontainers/testcontainers-go/modules/qdrant + +go 1.20 + +require ( + github.com/qdrant/go-client v1.7.0 + github.com/testcontainers/testcontainers-go v0.28.0 + google.golang.org/grpc v1.58.3 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/text v0.13.0 // indirect + golang.org/x/tools v0.10.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum new file mode 100644 index 0000000000..8843f111d3 --- /dev/null +++ b/modules/qdrant/go.sum @@ -0,0 +1,178 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/qdrant/go-client v1.7.0 h1:2TeeWyZAWIup7vvD7Ne6aAvo0H+F5OUb1pB9Z8Y4pFk= +github.com/qdrant/go-client v1.7.0/go.mod h1:680gkxNAsVtre0Z8hAQmtPzJtz1xFAyCu2TUxULtnoE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= diff --git a/modules/qdrant/qdrant.go b/modules/qdrant/qdrant.go new file mode 100644 index 0000000000..675a8ebfc8 --- /dev/null +++ b/modules/qdrant/qdrant.go @@ -0,0 +1,83 @@ +package qdrant + +import ( + "context" + "fmt" + "time" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +// QdrantContainer represents the Qdrant container type used in the module +type QdrantContainer struct { + testcontainers.Container +} + +// RunContainer creates an instance of the Qdrant container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*QdrantContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "qdrant/qdrant:v1.7.4", + ExposedPorts: []string{"6333/tcp", "6334/tcp"}, + WaitingFor: wait.ForAll( + wait.ForListeningPort("6333/tcp").WithStartupTimeout(5*time.Second), + wait.ForListeningPort("6334/tcp").WithStartupTimeout(5*time.Second), + ), + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &QdrantContainer{Container: container}, nil +} + +// RESTEndpoint returns the REST endpoint of the Qdrant container +func (c *QdrantContainer) RESTEndpoint(ctx context.Context) (string, error) { + containerPort, err := c.MappedPort(ctx, "6333/tcp") + if err != nil { + return "", fmt.Errorf("failed to get container port: %w", err) + } + + host, err := c.Host(ctx) + if err != nil { + return "", fmt.Errorf("failed to get container host") + } + + return fmt.Sprintf("http://%s:%s", host, containerPort.Port()), nil +} + +// GRPCEndpoint returns the gRPC endpoint of the Qdrant container +func (c *QdrantContainer) GRPCEndpoint(ctx context.Context) (string, error) { + containerPort, err := c.MappedPort(ctx, "6334/tcp") + if err != nil { + return "", fmt.Errorf("failed to get container port: %w", err) + } + + host, err := c.Host(ctx) + if err != nil { + return "", fmt.Errorf("failed to get container host") + } + + return fmt.Sprintf("%s:%s", host, containerPort.Port()), nil +} + +// WebUI returns the web UI endpoint of the Qdrant container +func (c *QdrantContainer) WebUI(ctx context.Context) (string, error) { + s, err := c.RESTEndpoint(ctx) + if err != nil { + return "", err + } + + return s + "/dashboard", nil +} diff --git a/modules/qdrant/qdrant_test.go b/modules/qdrant/qdrant_test.go new file mode 100644 index 0000000000..7295580c73 --- /dev/null +++ b/modules/qdrant/qdrant_test.go @@ -0,0 +1,84 @@ +package qdrant_test + +import ( + "context" + "net/http" + "testing" + + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/qdrant" +) + +func TestQdrant(t *testing.T) { + ctx := context.Background() + + container, err := qdrant.RunContainer(ctx, testcontainers.WithImage("qdrant/qdrant:v1.7.4")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + t.Run("REST Endpoint", func(tt *testing.T) { + // restEndpoint { + restEndpoint, err := container.RESTEndpoint(ctx) + // } + if err != nil { + tt.Fatalf("failed to get REST endpoint: %s", err) + } + + cli := &http.Client{} + resp, err := cli.Get(restEndpoint) + if err != nil { + tt.Fatalf("failed to perform GET request: %s", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + tt.Fatalf("unexpected status code: %d", resp.StatusCode) + } + }) + + t.Run("gRPC Endpoint", func(tt *testing.T) { + // gRPCEndpoint { + grpcEndpoint, err := container.GRPCEndpoint(ctx) + // } + if err != nil { + tt.Fatalf("failed to get REST endpoint: %s", err) + } + + conn, err := grpc.Dial(grpcEndpoint, grpc.WithTransportCredentials(insecure.NewCredentials())) + if err != nil { + t.Fatalf("did not connect: %v", err) + } + defer conn.Close() + }) + + t.Run("Web UI", func(tt *testing.T) { + // webUIEndpoint { + webUI, err := container.WebUI(ctx) + // } + if err != nil { + tt.Fatalf("failed to get REST endpoint: %s", err) + } + + cli := &http.Client{} + resp, err := cli.Get(webUI) + if err != nil { + tt.Fatalf("failed to perform GET request: %s", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + tt.Fatalf("unexpected status code: %d", resp.StatusCode) + } + }) +} diff --git a/modules/weaviate/Makefile b/modules/weaviate/Makefile new file mode 100644 index 0000000000..d73fbb42cf --- /dev/null +++ b/modules/weaviate/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-weaviate diff --git a/modules/weaviate/examples_test.go b/modules/weaviate/examples_test.go new file mode 100644 index 0000000000..e9e4048157 --- /dev/null +++ b/modules/weaviate/examples_test.go @@ -0,0 +1,84 @@ +package weaviate_test + +import ( + "context" + "fmt" + "log" + "net/http" + "time" + + "github.com/weaviate/weaviate-go-client/v4/weaviate" + + "github.com/testcontainers/testcontainers-go" + tcweaviate "github.com/testcontainers/testcontainers-go/modules/weaviate" +) + +func ExampleRunContainer() { + // runWeaviateContainer { + ctx := context.Background() + + weaviateContainer, err := tcweaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.23.9")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := weaviateContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := weaviateContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_connectWithClient() { + // createClient { + ctx := context.Background() + + weaviateContainer, err := tcweaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.23.9")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + defer func() { + if err := weaviateContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + scheme, host, err := weaviateContainer.HttpHostAddress(ctx) + if err != nil { + log.Fatalf("failed to get schema and host: %s", err) // nolint:gocritic + } + + connectionClient := &http.Client{} + headers := map[string]string{ + // put here the custom API key, e.g. for OpenAPI + "Authorization": fmt.Sprintf("Bearer %s", "custom-api-key"), + } + + cli := weaviate.New(weaviate.Config{ + Scheme: scheme, + Host: host, + Headers: headers, + AuthConfig: nil, // put here the weaviate auth.Config, if you need it + ConnectionClient: connectionClient, + }) + + err = cli.WaitForWeavaite(5 * time.Second) + // } + fmt.Println(err) + + // Output: + // +} diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod new file mode 100644 index 0000000000..6e945a1de4 --- /dev/null +++ b/modules/weaviate/go.mod @@ -0,0 +1,84 @@ +module github.com/testcontainers/testcontainers-go/modules/weaviate + +go 1.20 + +require ( + github.com/testcontainers/testcontainers-go v0.28.0 + github.com/weaviate/weaviate-go-client/v4 v4.12.1 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-openapi/analysis v0.21.2 // indirect + github.com/go-openapi/errors v0.20.3 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/loads v0.21.1 // indirect + github.com/go-openapi/spec v0.20.4 // indirect + github.com/go-openapi/strfmt v0.21.3 // indirect + github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/validate v0.21.0 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/klauspost/compress v1.16.7 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/weaviate/weaviate v1.23.9 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.mongodb.org/mongo-driver v1.11.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/oauth2 v0.11.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/text v0.13.0 // indirect + golang.org/x/tools v0.10.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect + google.golang.org/grpc v1.59.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum new file mode 100644 index 0000000000..3212ee01f3 --- /dev/null +++ b/modules/weaviate/go.sum @@ -0,0 +1,348 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= +github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/analysis v0.21.2 h1:hXFrOYFHUAMQdu6zwAiKKJHJQ8kqZs1ux/ru1P1wLJU= +github.com/go-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= +github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.3 h1:rz6kiC84sqNQoqrtulzaL/VERgkoCyB6WdEkc2ujzUc= +github.com/go-openapi/errors v0.20.3/go.mod h1:Z3FlZ4I8jEGxjUK+bugx3on2mIAk4txuAOhlsB1FSgk= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= +github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= +github.com/go-openapi/loads v0.21.1 h1:Wb3nVZpdEzDTcly8S4HMkey6fjARRzb7iEaySimlDW0= +github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= +github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= +github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.3 h1:xwhj5X6CjXEZZHMWy1zKJxvW9AfHC9pkyUjLvHtKG7o= +github.com/go-openapi/strfmt v0.21.3/go.mod h1:k+RzNO0Da+k3FrrynSNN8F7n/peCmQQqbbXjtDfvmGg= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/validate v0.21.0 h1:+Wqk39yKOhfpLqNLEC0/eViCkzM5FVXVqrvt526+wcI= +github.com/go-openapi/validate v0.21.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= +github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= +github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= +github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= +github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= +github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= +github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= +github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= +github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= +github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= +github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= +github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= +github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= +github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= +github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/weaviate/weaviate v1.23.9 h1:aSwyYvnD3MvxW+ShfcP8yAnqSnr3JysN4lFiDPCubso= +github.com/weaviate/weaviate v1.23.9/go.mod h1:afludwbcyIZa9HEBELvHNb8zjH+KcjcW/jb4SZ5C2T4= +github.com/weaviate/weaviate-go-client/v4 v4.12.1 h1:XFKL49BgSOcxrFs5IV+Q5pydLTsh0HQHuWbKNSLMWLU= +github.com/weaviate/weaviate-go-client/v4 v4.12.1/go.mod h1:r1PlU5sAZKFvAPgymEHQj0hjSAuEV9X77PJ/ffZ6cEo= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= +go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= +go.mongodb.org/mongo-driver v1.10.0/go.mod h1:wsihk0Kdgv8Kqu1Anit4sfK+22vSFbUrAVEYRhCXrA8= +go.mongodb.org/mongo-driver v1.11.3 h1:Ql6K6qYHEzB6xvu4+AU0BoRoqf9vFPcc4o7MUIdPW8Y= +go.mongodb.org/mongo-driver v1.11.3/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= diff --git a/modules/weaviate/weaviate.go b/modules/weaviate/weaviate.go new file mode 100644 index 0000000000..30a196c8a6 --- /dev/null +++ b/modules/weaviate/weaviate.go @@ -0,0 +1,68 @@ +package weaviate + +import ( + "context" + "fmt" + "time" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +// WeaviateContainer represents the Weaviate container type used in the module +type WeaviateContainer struct { + testcontainers.Container +} + +// RunContainer creates an instance of the Weaviate container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*WeaviateContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "semitechnologies/weaviate:1.23.9", + Cmd: []string{"--host", "0.0.0.0", "--scheme", "http", "--port", "8080"}, + ExposedPorts: []string{"8080/tcp", "50051/tcp"}, + Env: map[string]string{ + "QUERY_DEFAULTS_LIMIT": "25", + "AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED": "true", + "PERSISTENCE_DATA_PATH": "/var/lib/weaviate", + "DEFAULT_VECTORIZER_MODULE": "none", + "ENABLE_MODULES": "text2vec-cohere,text2vec-huggingface,text2vec-palm,text2vec-openai,generative-openai,generative-cohere,generative-palm,ref2vec-centroid,reranker-cohere,qna-openai", + "CLUSTER_HOSTNAME": "node1", + }, + WaitingFor: wait.ForAll( + wait.ForListeningPort("8080").WithStartupTimeout(5*time.Second), + wait.ForListeningPort("50051").WithStartupTimeout(5*time.Second), + ), + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &WeaviateContainer{Container: container}, nil +} + +// HttpHostAddress returns the schema and host of the Weaviate container. +// At the moment, it only supports the http scheme. +func (c *WeaviateContainer) HttpHostAddress(ctx context.Context) (string, string, error) { + containerPort, err := c.MappedPort(ctx, "8080/tcp") + if err != nil { + return "", "", fmt.Errorf("failed to get container port: %w", err) + } + + host, err := c.Host(ctx) + if err != nil { + return "", "", fmt.Errorf("failed to get container host") + } + + return "http", fmt.Sprintf("%s:%s", host, containerPort.Port()), nil +} diff --git a/modules/weaviate/weaviate_test.go b/modules/weaviate/weaviate_test.go new file mode 100644 index 0000000000..dfde0a7fc1 --- /dev/null +++ b/modules/weaviate/weaviate_test.go @@ -0,0 +1,47 @@ +package weaviate_test + +import ( + "context" + "fmt" + "net/http" + "testing" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/weaviate" +) + +func TestWeaviate(t *testing.T) { + ctx := context.Background() + + container, err := weaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.23.9")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + t.Run("HttpHostAddress", func(tt *testing.T) { + // httpHostAddress { + schema, host, err := container.HttpHostAddress(ctx) + // } + if err != nil { + t.Fatal(err) + } + + cli := &http.Client{} + resp, err := cli.Get(fmt.Sprintf("%s://%s", schema, host)) + if err != nil { + tt.Fatalf("failed to perform GET request: %s", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + tt.Fatalf("unexpected status code: %d", resp.StatusCode) + } + }) +} diff --git a/sonar-project.properties b/sonar-project.properties index 588a152626..7d5aaa6a7e 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -18,4 +18,4 @@ sonar.test.inclusions=**/*_test.go sonar.test.exclusions=**/vendor/** sonar.go.coverage.reportPaths=**/coverage.out -sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/vault/TEST-unit.xml +sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml From 154cb34dd54c08341862c5021a8a72c38286c163 Mon Sep 17 00:00:00 2001 From: Steven Hartland Date: Wed, 21 Feb 2024 10:52:06 +0000 Subject: [PATCH 028/115] chore: use logger.PrintXX instead of fmt.PrintXX (#2257) Use logger for printing output instead of raw output to Stdout which causes issues with running tests. --- file.go | 4 ++-- options.go | 2 +- wait/host_port.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/file.go b/file.go index 76844bd6d7..4c1f3ee32b 100644 --- a/file.go +++ b/file.go @@ -41,7 +41,7 @@ func tarDir(src string, fileMode int64) (*bytes.Buffer, error) { buffer := &bytes.Buffer{} - fmt.Printf(">> creating TAR file from directory: %s\n", src) + Logger.Printf(">> creating TAR file from directory: %s\n", src) // tar > gzip > buffer zr := gzip.NewWriter(buffer) @@ -59,7 +59,7 @@ func tarDir(src string, fileMode int64) (*bytes.Buffer, error) { // if a symlink, skip file if fi.Mode().Type() == os.ModeSymlink { - fmt.Printf(">> skipping symlink: %s\n", file) + Logger.Printf(">> skipping symlink: %s\n", file) return nil } diff --git a/options.go b/options.go index 13711e8b56..3811e4eb53 100644 --- a/options.go +++ b/options.go @@ -33,7 +33,7 @@ func (opt CustomizeRequestOption) Customize(req *GenericContainerRequest) { func CustomizeRequest(src GenericContainerRequest) CustomizeRequestOption { return func(req *GenericContainerRequest) { if err := mergo.Merge(req, &src, mergo.WithOverride, mergo.WithAppendSlice); err != nil { - fmt.Printf("error merging container request, keeping the original one. Error: %v", err) + Logger.Printf("error merging container request, keeping the original one. Error: %v", err) return } } diff --git a/wait/host_port.go b/wait/host_port.go index 24914c9260..c544825831 100644 --- a/wait/host_port.go +++ b/wait/host_port.go @@ -122,7 +122,7 @@ func (hp *HostPortStrategy) WaitUntilReady(ctx context.Context, target StrategyT } port, err = target.MappedPort(ctx, internalPort) if err != nil { - fmt.Printf("(%d) [%s] %s\n", i, port, err) + log.Printf("(%d) [%s] %s\n", i, port, err) } } } From 618a42ce4ecaa53566ed2529fabb0c7d4af05cfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 21 Feb 2024 14:05:49 +0100 Subject: [PATCH 029/115] chore(milvus): embed etcd should use default ports (#2258) --- modules/milvus/milvus.go | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/modules/milvus/milvus.go b/modules/milvus/milvus.go index f788ea5497..5f64021a93 100644 --- a/modules/milvus/milvus.go +++ b/modules/milvus/milvus.go @@ -57,7 +57,6 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize // Otherwise the milvus container will panic on startup. createDefaultEmbedEtcdConfig, }, - PostStarts: []testcontainers.ContainerHook{regenerateEmbedEtcdConfig}, }, }, } @@ -129,23 +128,3 @@ func createDefaultEmbedEtcdConfig(ctx context.Context, c testcontainers.Containe return nil } - -// regenerateEmbedEtcdConfig updates the embed etcd config file with the mapped port -func regenerateEmbedEtcdConfig(ctx context.Context, c testcontainers.Container) error { - containerPort, err := c.MappedPort(ctx, "2379/tcp") - if err != nil { - return fmt.Errorf("failed to get mapped port: %w", err) - } - - embedEtcdConfig, err := renderEmbedEtcdConfig(containerPort.Int()) - if err != nil { - return fmt.Errorf("failed to embed etcd config: %w", err) - } - - err = c.CopyToContainer(ctx, embedEtcdConfig, embedEtcdContainerPath, 600) - if err != nil { - return fmt.Errorf("failed to copy embedEtcd.yaml into container: %w", err) - } - - return nil -} From c81b798eae9bbf45da70c360f9d1e7816abb65a3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 14:06:09 +0100 Subject: [PATCH 030/115] chore(deps): bump google.golang.org/grpc in /modules/qdrant (#2255) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.58.3 to 1.61.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.58.3...v1.61.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/qdrant/go.mod | 8 ++++---- modules/qdrant/go.sum | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index d1cb76271a..38c81ce8bd 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -5,7 +5,7 @@ go 1.20 require ( github.com/qdrant/go-client v1.7.0 github.com/testcontainers/testcontainers-go v0.28.0 - google.golang.org/grpc v1.58.3 + google.golang.org/grpc v1.61.1 ) require ( @@ -52,11 +52,11 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.11.0 // indirect - golang.org/x/net v0.17.0 // indirect + golang.org/x/net v0.18.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/text v0.13.0 // indirect + golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.10.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/protobuf v1.31.0 // indirect ) diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index 8843f111d3..8f8a635af3 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -128,12 +128,12 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -148,8 +148,8 @@ golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -161,12 +161,12 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= +google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= +google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= From 6aece920d5b22a1bae9797b7a14fda6811a603c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 16:13:17 +0100 Subject: [PATCH 031/115] chore(deps): bump github.com/opencontainers/image-spec from 1.1.0-rc5 to 1.1.0 (#2254) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): bump github.com/opencontainers/image-spec Bumps [github.com/opencontainers/image-spec](https://github.com/opencontainers/image-spec) from 1.1.0-rc5 to 1.1.0. - [Release notes](https://github.com/opencontainers/image-spec/releases) - [Changelog](https://github.com/opencontainers/image-spec/blob/main/RELEASES.md) - [Commits](https://github.com/opencontainers/image-spec/compare/v1.1.0-rc5...v1.1.0) --- updated-dependencies: - dependency-name: github.com/opencontainers/image-spec dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore: run mod tidy in modules --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- examples/nginx/go.mod | 2 +- examples/nginx/go.sum | 4 ++-- examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 4 ++-- modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 4 ++-- modules/chroma/go.mod | 2 +- modules/chroma/go.sum | 4 ++-- modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 4 ++-- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- modules/compose/go.mod | 2 +- modules/compose/go.sum | 4 ++-- modules/consul/go.mod | 2 +- modules/consul/go.sum | 4 ++-- modules/couchbase/go.mod | 2 +- modules/couchbase/go.sum | 4 ++-- modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 4 ++-- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- modules/inbucket/go.mod | 2 +- modules/inbucket/go.sum | 4 ++-- modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 4 ++-- modules/k6/go.mod | 2 +- modules/k6/go.sum | 4 ++-- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 4 ++-- modules/mariadb/go.mod | 2 +- modules/mariadb/go.sum | 4 ++-- modules/milvus/go.mod | 2 +- modules/milvus/go.sum | 4 ++-- modules/minio/go.mod | 2 +- modules/minio/go.sum | 4 ++-- modules/mockserver/go.mod | 2 +- modules/mockserver/go.sum | 4 ++-- modules/mongodb/go.mod | 2 +- modules/mongodb/go.sum | 4 ++-- modules/mssql/go.mod | 2 +- modules/mssql/go.sum | 4 ++-- modules/mysql/go.mod | 2 +- modules/mysql/go.sum | 4 ++-- modules/nats/go.mod | 2 +- modules/nats/go.sum | 4 ++-- modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 4 ++-- modules/openldap/go.mod | 2 +- modules/openldap/go.sum | 4 ++-- modules/opensearch/go.mod | 2 +- modules/opensearch/go.sum | 4 ++-- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 4 ++-- modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 4 ++-- modules/qdrant/go.mod | 2 +- modules/qdrant/go.sum | 4 ++-- modules/rabbitmq/go.mod | 2 +- modules/rabbitmq/go.sum | 4 ++-- modules/redis/go.mod | 2 +- modules/redis/go.sum | 4 ++-- modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 4 ++-- modules/vault/go.mod | 2 +- modules/vault/go.sum | 4 ++-- modules/weaviate/go.mod | 2 +- modules/weaviate/go.sum | 4 ++-- 74 files changed, 111 insertions(+), 111 deletions(-) diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index d649e5329a..ec616c3083 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -35,7 +35,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index 5026d53dbc..3b1acb7df2 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -69,8 +69,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index aeb6dc5e17..0e79d136cc 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -39,7 +39,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index d7f39b21ed..1466c196e2 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -81,8 +81,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/go.mod b/go.mod index af1bd02de5..709ed8ead7 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ require ( github.com/magiconair/properties v1.8.7 github.com/moby/patternmatcher v0.6.0 github.com/moby/term v0.5.0 - github.com/opencontainers/image-spec v1.1.0-rc5 + github.com/opencontainers/image-spec v1.1.0 github.com/shirou/gopsutil/v3 v3.23.12 github.com/stretchr/testify v1.8.4 golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea diff --git a/go.sum b/go.sum index b6e23d3197..71c0aa2652 100644 --- a/go.sum +++ b/go.sum @@ -78,8 +78,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 764401ece1..1b2811e454 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -38,7 +38,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index 80442cd2ab..5ee2e57c50 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -78,8 +78,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index 94c4f628f2..460e783c80 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -40,7 +40,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index fb816f358b..e0ac9771bd 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -84,8 +84,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index e76bd1768b..ec82d58608 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -36,7 +36,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 82be5f22a2..3e167e510f 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -72,8 +72,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index ef8015b146..ecf6af39bd 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -42,7 +42,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/paulmach/orb v0.10.0 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pkg/errors v0.9.1 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index a476eeb72e..68255d0c75 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -88,8 +88,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/paulmach/orb v0.10.0 h1:guVYVqzxHE/CQ1KpfGO077TR0ATHSNjp4s6XGLn3W9s= github.com/paulmach/orb v0.10.0/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index ae5217a7b4..4f161184f8 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -42,7 +42,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 92559dfe21..aa504201a1 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -81,8 +81,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index 2832604328..a07a3a2fa9 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -118,7 +118,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pelletier/go-toml v1.9.5 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/modules/compose/go.sum b/modules/compose/go.sum index 5c6f5e4322..da00c260a5 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -389,8 +389,8 @@ github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1 github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 921057679d..5b5aaf6904 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -52,7 +52,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 6a015d9eea..4b72ee0628 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -186,8 +186,8 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index a3000d29d3..3ed60cbdd7 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -43,7 +43,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index 3b7bfaa29e..ef3d71c7f8 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -109,8 +109,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index e9067f2e03..3b0a7cc256 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -41,7 +41,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index c9762b6a48..f43b259603 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -77,8 +77,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index fbee737e29..df0a6a4983 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -65,7 +65,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index b0ebf2b685..8612c24d13 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -162,8 +162,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 8013c7b60b..0913d57a9d 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -37,7 +37,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index dabf2ce8ed..62e267647c 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -73,8 +73,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index 3004584883..deeb2e1ac7 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -53,7 +53,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index 2eca8d356a..ac26bd931f 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -109,8 +109,8 @@ github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4 github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index eb809d5122..5ee21383f4 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -35,7 +35,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/k6/go.sum b/modules/k6/go.sum index 5026d53dbc..3b1acb7df2 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -69,8 +69,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 2c238e6125..3615b570f9 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -50,7 +50,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index b97ce996f1..d492683a69 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -102,8 +102,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 5f0d9e6c70..74499099a4 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -59,7 +59,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index f9ffa77e88..88d21d71e3 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -115,8 +115,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index 159d435700..e721f57771 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -36,7 +36,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index 6bfe43fb8c..d9f8c564a5 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -71,8 +71,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index dbe0faab37..c67001d225 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -44,7 +44,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index 59f92cdb63..2a710736cb 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -221,8 +221,8 @@ github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index 6c5dfb5369..de254b7a4f 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -43,7 +43,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/rs/xid v1.5.0 // indirect diff --git a/modules/minio/go.sum b/modules/minio/go.sum index c41c34fe71..330b934f9b 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -88,8 +88,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index c7abe31c04..08d9dbdedf 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -37,7 +37,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index 4531edd931..e1ac260f11 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -73,8 +73,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index 37d1059c5e..aad48bb1ca 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -38,7 +38,7 @@ require ( github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 82b9a49604..75ca575002 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -75,8 +75,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index 45b3041a34..c9890b149c 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -38,7 +38,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index 9e0c146700..c17f9bde86 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -83,8 +83,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index 086a3774cc..37dc0f39bc 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -37,7 +37,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index 6bfe43fb8c..d9f8c564a5 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -71,8 +71,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 375dc648ab..48907d1887 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -38,7 +38,7 @@ require ( github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/nats/go.sum b/modules/nats/go.sum index a72d35299d..4a098ea8b1 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -75,8 +75,8 @@ github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index b7bd5c681b..c4596c4000 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -36,7 +36,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 2547a74a6e..ed4621043f 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -71,8 +71,8 @@ github.com/neo4j/neo4j-go-driver/v5 v5.16.0 h1:m3ZTjqulwob5HBysu5QdSvFB1+6x8xC9I github.com/neo4j/neo4j-go-driver/v5 v5.16.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index e320ee4ab1..e321fe2e48 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -38,7 +38,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index 2216c16dde..d7d0beb818 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -78,8 +78,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 4b06263d10..4a7fe38016 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -35,7 +35,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index 5026d53dbc..3b1acb7df2 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -69,8 +69,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 16ab32cb19..3d80bc60f2 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -43,7 +43,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index ab4b81e8e7..2e9b2c633e 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -82,8 +82,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 36195ceedb..06631c3404 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -58,7 +58,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4 v2.0.5+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index fbf6da3185..fe0673b897 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -266,8 +266,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 38c81ce8bd..c7d36b4362 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -37,7 +37,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index 8f8a635af3..e1900fee1b 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -69,8 +69,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index a6df65925f..d9f545f47c 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -36,7 +36,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index da0177e4d1..f841b83744 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -72,8 +72,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 2c777fba77..24432361e1 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -44,7 +44,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/redis/go.sum b/modules/redis/go.sum index b42aaaf331..be793ab355 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -83,8 +83,8 @@ github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 1e30aa58c9..330c67d6ff 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -41,7 +41,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.19 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index 0038ebc28c..eba3ada754 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -73,8 +73,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pierrec/lz4/v4 v4.1.19 h1:tYLzDnjDXh9qIxSTKHwXwOYmm9d887Y7Y1ZkyXYHAN4= github.com/pierrec/lz4/v4 v4.1.19/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index 46653e043f..a637961206 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -47,7 +47,7 @@ require ( github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/modules/vault/go.sum b/modules/vault/go.sum index 7f652dc043..2af0787ba4 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -92,8 +92,8 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 6e945a1de4..9e79b741ee 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -52,7 +52,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.1.0-rc5 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index 3212ee01f3..3b4033bb89 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -164,8 +164,8 @@ github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= -github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= From 105f48568cee5eed28dcb342070284a1dd6a67e4 Mon Sep 17 00:00:00 2001 From: Steven Hartland Date: Thu, 22 Feb 2024 16:55:25 +0000 Subject: [PATCH 032/115] feat: WithEnv customize request option (#2260) Add WithEnv which set additional environment variables on a request so that callers can customise a request. This can be used to easily add environment variables to a container created using one of the standard module e.g. postgres. --- docs/features/common_functional_options.md | 10 +++++ options.go | 14 +++++++ options_test.go | 48 ++++++++++++++++++++++ 3 files changed, 72 insertions(+) diff --git a/docs/features/common_functional_options.md b/docs/features/common_functional_options.md index e9f35bcaff..595f87e73d 100644 --- a/docs/features/common_functional_options.md +++ b/docs/features/common_functional_options.md @@ -15,6 +15,16 @@ _Testcontainers for Go_ exposes an interface to perform this operations: `ImageS Using the `WithImageSubstitutors` options, you could define your own substitutions to the container images. E.g. adding a prefix to the images so that they can be pulled from a Docker registry other than Docker Hub. This is the usual mechanism for using Docker image proxies, caches, etc. +#### WithEnv + +- Not available until the next release of testcontainers-go :material-tag: main + +If you need to either pass additional environment variables to a container or override them, you can use `testcontainers.WithEnv` for example: + +```golang +postgres, err = postgresModule.RunContainer(ctx, testcontainers.WithEnv(map[string]string{"POSTGRES_INITDB_ARGS", "--no-sync"})) +``` + #### WithLogConsumers - Since testcontainers-go :material-tag: v0.28.0 diff --git a/options.go b/options.go index 3811e4eb53..34881dba85 100644 --- a/options.go +++ b/options.go @@ -53,6 +53,20 @@ func WithEndpointSettingsModifier(modifier func(settings map[string]*network.End } } +// WithEnv sets the environment variables for a container. +// If the environment variable already exists, it will be overridden. +func WithEnv(envs map[string]string) CustomizeRequestOption { + return func(req *GenericContainerRequest) { + if req.Env == nil { + req.Env = map[string]string{} + } + + for key, val := range envs { + req.Env[key] = val + } + } +} + // WithHostConfigModifier allows to override the default host config func WithHostConfigModifier(modifier func(hostConfig *container.HostConfig)) CustomizeRequestOption { return func(req *GenericContainerRequest) { diff --git a/options_test.go b/options_test.go index e13642ac09..bbd4a944d5 100644 --- a/options_test.go +++ b/options_test.go @@ -162,3 +162,51 @@ func TestWithAfterReadyCommand(t *testing.T) { require.NoError(t, err) assert.Equal(t, "/tmp/.testcontainers\n", string(content)) } + +func TestWithEnv(t *testing.T) { + tests := map[string]struct { + req *testcontainers.GenericContainerRequest + env map[string]string + expect map[string]string + }{ + "add": { + req: &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Env: map[string]string{"KEY1": "VAL1"}, + }, + }, + env: map[string]string{"KEY2": "VAL2"}, + expect: map[string]string{ + "KEY1": "VAL1", + "KEY2": "VAL2", + }, + }, + "add-nil": { + req: &testcontainers.GenericContainerRequest{}, + env: map[string]string{"KEY2": "VAL2"}, + expect: map[string]string{"KEY2": "VAL2"}, + }, + "override": { + req: &testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Env: map[string]string{ + "KEY1": "VAL1", + "KEY2": "VAL2", + }, + }, + }, + env: map[string]string{"KEY2": "VAL3"}, + expect: map[string]string{ + "KEY1": "VAL1", + "KEY2": "VAL3", + }, + }, + } + for name, tc := range tests { + t.Run(name, func(t *testing.T) { + opt := testcontainers.WithEnv(tc.env) + opt.Customize(tc.req) + require.Equal(t, tc.expect, tc.req.Env) + }) + } +} From 3a53a7e132839970c66a08e468cb5424eab11cf3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 17:55:52 +0100 Subject: [PATCH 033/115] chore(deps): bump google.golang.org/grpc in /modules/gcloud (#2251) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.61.0 to 1.61.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.61.0...v1.61.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index df0a6a4983..2dabc1b88a 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -12,7 +12,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 google.golang.org/api v0.165.0 - google.golang.org/grpc v1.61.0 + google.golang.org/grpc v1.61.1 ) require ( diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 8612c24d13..c6c565c64d 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -328,8 +328,8 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= -google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= +google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From 9eea435ec5ae4af917a5a4910dbe1d1542dfe58f Mon Sep 17 00:00:00 2001 From: Ivan Sitkin Date: Fri, 23 Feb 2024 08:02:44 +0100 Subject: [PATCH 034/115] bug: allow start container with reuse in different test package (#2247) * feat: allow start container with reuse in different test package * feat(reuse): add defaultLogConsumersHook in reuse container --------- Co-authored-by: Ivan Sitkin --- docker.go | 53 ++++++++++++++++++++++++++++++++++-- generic_test.go | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ reaper.go | 3 --- 3 files changed, 123 insertions(+), 5 deletions(-) diff --git a/docker.go b/docker.go index a559b8d7ea..33a73cae73 100644 --- a/docker.go +++ b/docker.go @@ -14,6 +14,7 @@ import ( "net/url" "os" "path/filepath" + "regexp" "strings" "sync" "time" @@ -49,6 +50,8 @@ const ( logStoppedForOutOfSyncMessage = "Stopping log consumer: Headers out of sync" ) +var createContainerFailDueToNameConflictRegex = regexp.MustCompile("Conflict. The container name .* is already in use by container .*") + // DockerContainer represents a container started using Docker type DockerContainer struct { // Container ID from Docker @@ -1153,13 +1156,40 @@ func (p *DockerProvider) findContainerByName(ctx context.Context, name string) ( return nil, nil } +func (p *DockerProvider) waitContainerCreation(ctx context.Context, name string) (*types.Container, error) { + var container *types.Container + return container, backoff.Retry(func() error { + c, err := p.findContainerByName(ctx, name) + if err != nil { + return err + } + + if c == nil { + return fmt.Errorf("container %s not found", name) + } + + container = c + return nil + }, backoff.WithContext(backoff.NewExponentialBackOff(), ctx)) +} + func (p *DockerProvider) ReuseOrCreateContainer(ctx context.Context, req ContainerRequest) (Container, error) { c, err := p.findContainerByName(ctx, req.Name) if err != nil { return nil, err } if c == nil { - return p.CreateContainer(ctx, req) + createdContainer, err := p.CreateContainer(ctx, req) + if err == nil { + return createdContainer, nil + } + if !createContainerFailDueToNameConflictRegex.MatchString(err.Error()) { + return nil, err + } + c, err = p.waitContainerCreation(ctx, req.Name) + if err != nil { + return nil, err + } } sessionID := core.SessionID() @@ -1178,6 +1208,13 @@ func (p *DockerProvider) ReuseOrCreateContainer(ctx context.Context, req Contain } } + // default hooks include logger hook and pre-create hook + defaultHooks := []ContainerLifecycleHooks{ + DefaultLoggingHook(p.Logger), + defaultReadinessHook(), + defaultLogConsumersHook(req.LogConsumerCfg), + } + dc := &DockerContainer{ ID: c.ID, WaitingFor: req.WaitingFor, @@ -1187,7 +1224,19 @@ func (p *DockerProvider) ReuseOrCreateContainer(ctx context.Context, req Contain terminationSignal: termSignal, stopLogProductionCh: nil, logger: p.Logger, - isRunning: c.State == "running", + lifecycleHooks: []ContainerLifecycleHooks{combineContainerHooks(defaultHooks, req.LifecycleHooks)}, + } + + err = dc.startedHook(ctx) + if err != nil { + return nil, err + } + + dc.isRunning = true + + err = dc.readiedHook(ctx) + if err != nil { + return nil, err } return dc, nil diff --git a/generic_test.go b/generic_test.go index cb38e29faf..72688876ec 100644 --- a/generic_test.go +++ b/generic_test.go @@ -3,6 +3,11 @@ package testcontainers import ( "context" "errors" + "net/http" + "os" + "os/exec" + "strings" + "sync" "testing" "time" @@ -117,3 +122,70 @@ func TestGenericContainerShouldReturnRefOnError(t *testing.T) { require.NotNil(t, c) terminateContainerOnEnd(t, context.Background(), c) } + +func TestGenericReusableContainerInSubprocess(t *testing.T) { + wg := sync.WaitGroup{} + wg.Add(10) + for i := 0; i < 10; i++ { + go func() { + defer wg.Done() + + // create containers in subprocesses, as "go test ./..." does. + output := createReuseContainerInSubprocess(t) + + // check is reuse container with WaitingFor work correctly. + require.True(t, strings.Contains(output, "🚧 Waiting for container id")) + require.True(t, strings.Contains(output, "🔔 Container is ready")) + }() + } + + wg.Wait() +} + +func createReuseContainerInSubprocess(t *testing.T) string { + cmd := exec.Command(os.Args[0], "-test.run=TestHelperContainerStarterProcess") + cmd.Env = []string{"GO_WANT_HELPER_PROCESS=1"} + + output, err := cmd.CombinedOutput() + require.NoError(t, err, string(output)) + + return string(output) +} + +// TestHelperContainerStarterProcess is a helper function +// to start a container in a subprocess. It's not a real test. +func TestHelperContainerStarterProcess(t *testing.T) { + if os.Getenv("GO_WANT_HELPER_PROCESS") != "1" { + t.Skip("Skipping helper test function. It's not a real test") + } + + ctx := context.Background() + + nginxC, err := GenericContainer(ctx, GenericContainerRequest{ + ProviderType: providerType, + ContainerRequest: ContainerRequest{ + Image: nginxDelayedImage, + ExposedPorts: []string{nginxDefaultPort}, + WaitingFor: wait.ForListeningPort(nginxDefaultPort), // default startupTimeout is 60s + Name: reusableContainerName, + }, + Started: true, + Reuse: true, + }) + require.NoError(t, err) + require.True(t, nginxC.IsRunning()) + + origin, err := nginxC.PortEndpoint(ctx, nginxDefaultPort, "http") + require.NoError(t, err) + + // check is reuse container with WaitingFor work correctly. + req, err := http.NewRequestWithContext(ctx, http.MethodGet, origin, nil) + require.NoError(t, err) + req.Close = true + + resp, err := http.DefaultClient.Do(req) + require.NoError(t, err) + defer resp.Body.Close() + + require.Equal(t, http.StatusOK, resp.StatusCode) +} diff --git a/reaper.go b/reaper.go index 724d2635a1..3dff6a7c9d 100644 --- a/reaper.go +++ b/reaper.go @@ -6,7 +6,6 @@ import ( "fmt" "math/rand" "net" - "regexp" "strings" "sync" "time" @@ -186,8 +185,6 @@ func reuseOrCreateReaper(ctx context.Context, sessionID string, provider ReaperP return reaperInstance, nil } -var createContainerFailDueToNameConflictRegex = regexp.MustCompile("Conflict. The container name .* is already in use by container .*") - // reuseReaperContainer constructs a Reaper from an already running reaper // DockerContainer. func reuseReaperContainer(ctx context.Context, sessionID string, provider ReaperProvider, reaperContainer *DockerContainer) (*Reaper, error) { From 8085e2f1ce96439386130c946261e2c806cba7c2 Mon Sep 17 00:00:00 2001 From: Steven Hartland Date: Fri, 23 Feb 2024 07:05:01 +0000 Subject: [PATCH 035/115] docs: fix comment corruption (#2262) Fix doc generation comments being included package documentation by ensuring they are separated by a blank line. --- internal/config/config.go | 3 ++- logconsumer.go | 2 ++ modules/couchbase/couchbase.go | 2 ++ modules/couchbase/storage_mode.go | 1 + modules/neo4j/config.go | 2 ++ options.go | 1 + testing.go | 1 + 7 files changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/config/config.go b/internal/config/config.go index 08d784b7ed..7471cf0de5 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -18,8 +18,9 @@ var ( tcConfigOnce *sync.Once = new(sync.Once) ) -// Config represents the configuration for Testcontainers // testcontainersConfig { + +// Config represents the configuration for Testcontainers type Config struct { Host string `properties:"docker.host,default="` TLSVerify int `properties:"docker.tls.verify,default=0"` diff --git a/logconsumer.go b/logconsumer.go index 0b9b1bd025..95bf111983 100644 --- a/logconsumer.go +++ b/logconsumer.go @@ -7,6 +7,7 @@ const StdoutLog = "STDOUT" const StderrLog = "STDERR" // logStruct { + // Log represents a message that was created by a process, // LogType is either "STDOUT" or "STDERR", // Content is the byte contents of the message itself @@ -18,6 +19,7 @@ type Log struct { // } // logConsumerInterface { + // LogConsumer represents any object that can // handle a Log, it is up to the LogConsumer instance // what to do with the log diff --git a/modules/couchbase/couchbase.go b/modules/couchbase/couchbase.go index f13378ab43..c81c420c8b 100644 --- a/modules/couchbase/couchbase.go +++ b/modules/couchbase/couchbase.go @@ -20,6 +20,7 @@ import ( const ( // containerPorts { + MGMT_PORT = "8091" MGMT_SSL_PORT = "18091" @@ -40,6 +41,7 @@ const ( KV_PORT = "11210" KV_SSL_PORT = "11207" + // } ) diff --git a/modules/couchbase/storage_mode.go b/modules/couchbase/storage_mode.go index 2f65886688..6957c7fbef 100644 --- a/modules/couchbase/storage_mode.go +++ b/modules/couchbase/storage_mode.go @@ -6,6 +6,7 @@ package couchbase type indexStorageMode string // storageTypes { + const ( // MemoryOptimized sets the cluster-wide index storage mode to use memory optimized global // secondary indexes which can perform index maintenance and index scan faster at in-memory speeds. diff --git a/modules/neo4j/config.go b/modules/neo4j/config.go index 5c868ce3aa..9d0bc70816 100644 --- a/modules/neo4j/config.go +++ b/modules/neo4j/config.go @@ -12,12 +12,14 @@ type LabsPlugin string const ( // labsPlugins { + Apoc LabsPlugin = "apoc" ApocCore LabsPlugin = "apoc-core" Bloom LabsPlugin = "bloom" GraphDataScience LabsPlugin = "graph-data-science" NeoSemantics LabsPlugin = "n10s" Streams LabsPlugin = "streams" + // } ) diff --git a/options.go b/options.go index 34881dba85..391d3e1a82 100644 --- a/options.go +++ b/options.go @@ -82,6 +82,7 @@ func WithImage(image string) CustomizeRequestOption { } // imageSubstitutor { + // ImageSubstitutor represents a way to substitute container image names type ImageSubstitutor interface { // Description returns the name of the type and a short description of how it modifies the image. diff --git a/testing.go b/testing.go index 6d23952952..eab23cb805 100644 --- a/testing.go +++ b/testing.go @@ -41,6 +41,7 @@ func SkipIfDockerDesktop(t *testing.T, ctx context.Context) { } // exampleLogConsumer { + // StdoutLogConsumer is a LogConsumer that prints the log to stdout type StdoutLogConsumer struct{} From 9d8e3861f3d8ecd4e8f81983448c5aaa911a8440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Omar=20Vergara=20P=C3=A9rez?= Date: Thu, 29 Feb 2024 11:25:01 -0600 Subject: [PATCH 036/115] Fix Dockerfile not located when added to dockerignore (#2272) * test(testdata): add a dockerignore file to the testdata directory to replicate the bug 2203 * fix(container): include the target dockerignore and the target dockerfile to the buildcontext 2203 * test(container): update the parse docker ignore test case to pass under the new changes 2203 --- container.go | 11 ++++++++++- container_test.go | 2 +- testdata/.dockerignore | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 testdata/.dockerignore diff --git a/container.go b/container.go index 7168e72370..7c37523bdf 100644 --- a/container.go +++ b/container.go @@ -194,6 +194,8 @@ func (c *ContainerRequest) Validate() error { // GetContext retrieve the build context for the request func (c *ContainerRequest) GetContext() (io.Reader, error) { + var includes []string = []string{"."} + if c.ContextArchive != nil { return c.ContextArchive, nil } @@ -209,7 +211,14 @@ func (c *ContainerRequest) GetContext() (io.Reader, error) { if err != nil { return nil, err } - buildContext, err := archive.TarWithOptions(c.Context, &archive.TarOptions{ExcludePatterns: excluded}) + + dockerIgnoreLocation := filepath.Join(abs, ".dockerignore") + includes = append(includes, dockerIgnoreLocation, c.GetDockerfile()) + + buildContext, err := archive.TarWithOptions( + c.Context, + &archive.TarOptions{ExcludePatterns: excluded, IncludeFiles: includes}, + ) if err != nil { return nil, err } diff --git a/container_test.go b/container_test.go index b9089aab97..bea5ef02c0 100644 --- a/container_test.go +++ b/container_test.go @@ -502,7 +502,7 @@ func TestParseDockerIgnore(t *testing.T) { { filePath: "./testdata", expectedErr: nil, - expectedExcluded: []string(nil), + expectedExcluded: []string{"Dockerfile", "echo.Dockerfile"}, }, } diff --git a/testdata/.dockerignore b/testdata/.dockerignore new file mode 100644 index 0000000000..5adb76c74c --- /dev/null +++ b/testdata/.dockerignore @@ -0,0 +1,2 @@ +Dockerfile +echo.Dockerfile From 38550a6fc81ae89716d33878455b04a5facc6919 Mon Sep 17 00:00:00 2001 From: Guillaume St-Pierre Date: Fri, 1 Mar 2024 02:11:25 -0500 Subject: [PATCH 037/115] Move the file and mounts tests into a test package (#2270) * Move the file and mounts tests into a test package This work has been extracted from #2202 and is related to #2180. See the original PR for the full context and reasoning. This will help with the documentation, since all examples will now have the module prefixes. * Rename the utils file --- docker_files_test.go | 49 ++++++++++++++++++++-------------- docker_mounts.go | 6 +++++ file_test.go | 2 ++ mounts_test.go | 62 +++++++++++++++++++++++--------------------- testhelpers_test.go | 21 +++++++++++++++ 5 files changed, 90 insertions(+), 50 deletions(-) create mode 100644 testhelpers_test.go diff --git a/docker_files_test.go b/docker_files_test.go index d6eb15b804..afdb44822d 100644 --- a/docker_files_test.go +++ b/docker_files_test.go @@ -1,4 +1,4 @@ -package testcontainers +package testcontainers_test import ( "context" @@ -8,6 +8,7 @@ import ( "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/wait" ) @@ -21,10 +22,10 @@ func TestCopyFileToContainer(t *testing.T) { t.Fatal(err) } - container, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "docker.io/bash", - Files: []ContainerFile{ + Files: []testcontainers.ContainerFile{ { HostFilePath: absPath, ContainerFilePath: "/hello.sh", @@ -57,10 +58,10 @@ func TestCopyFileToRunningContainer(t *testing.T) { t.Fatal(err) } - container, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "docker.io/bash:5.2.26", - Files: []ContainerFile{ + Files: []testcontainers.ContainerFile{ { HostFilePath: waitForPath, ContainerFilePath: "/waitForHello.sh", @@ -98,10 +99,10 @@ func TestCopyDirectoryToContainer(t *testing.T) { t.Fatal(err) } - container, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "docker.io/bash", - Files: []ContainerFile{ + Files: []testcontainers.ContainerFile{ { HostFilePath: dataDirectory, // ContainerFile cannot create the parent directory, so we copy the scripts @@ -136,10 +137,10 @@ func TestCopyDirectoryToRunningContainerAsFile(t *testing.T) { t.Fatal(err) } - container, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "docker.io/bash", - Files: []ContainerFile{ + Files: []testcontainers.ContainerFile{ { HostFilePath: waitForPath, ContainerFilePath: "/waitForHello.sh", @@ -150,11 +151,15 @@ func TestCopyDirectoryToRunningContainerAsFile(t *testing.T) { }, Started: true, }) - require.NoError(t, err) + if err != nil { + t.Fatal(err) + } // as the container is started, we can create the directory first _, _, err = container.Exec(ctx, []string{"mkdir", "-p", "/scripts"}) - require.NoError(t, err) + if err != nil { + t.Fatal(err) + } // because the container path is a directory, it will use the copy dir method as fallback err = container.CopyFileToContainer(ctx, dataDirectory, "/scripts", 0o700) @@ -182,10 +187,10 @@ func TestCopyDirectoryToRunningContainerAsDir(t *testing.T) { t.Fatal(err) } - container, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "docker.io/bash", - Files: []ContainerFile{ + Files: []testcontainers.ContainerFile{ { HostFilePath: waitForPath, ContainerFilePath: "/waitForHello.sh", @@ -196,11 +201,15 @@ func TestCopyDirectoryToRunningContainerAsDir(t *testing.T) { }, Started: true, }) - require.NoError(t, err) + if err != nil { + t.Fatal(err) + } // as the container is started, we can create the directory first _, _, err = container.Exec(ctx, []string{"mkdir", "-p", "/scripts"}) - require.NoError(t, err) + if err != nil { + t.Fatal(err) + } err = container.CopyDirToContainer(ctx, dataDirectory, "/scripts", 0o700) if err != nil { diff --git a/docker_mounts.go b/docker_mounts.go index 4906a90692..aed3010361 100644 --- a/docker_mounts.go +++ b/docker_mounts.go @@ -81,6 +81,12 @@ func (s DockerTmpfsMountSource) GetTmpfsOptions() *mount.TmpfsOptions { return s.TmpfsOptions } +// PrepareMounts maps the given []ContainerMount to the corresponding +// []mount.Mount for further processing +func (m ContainerMounts) PrepareMounts() []mount.Mount { + return mapToDockerMounts(m) +} + // mapToDockerMounts maps the given []ContainerMount to the corresponding // []mount.Mount for further processing func mapToDockerMounts(containerMounts ContainerMounts) []mount.Mount { diff --git a/file_test.go b/file_test.go index 367e4833bc..c1fc9f0704 100644 --- a/file_test.go +++ b/file_test.go @@ -1,3 +1,5 @@ +// This test is testing very internal logic that should not be exported away from this package. We'll +// leave it in the main testcontainers package. Do not use for user facing examples. package testcontainers import ( diff --git a/mounts_test.go b/mounts_test.go index 6ec994c635..ecf91943dd 100644 --- a/mounts_test.go +++ b/mounts_test.go @@ -1,4 +1,4 @@ -package testcontainers +package testcontainers_test import ( "context" @@ -7,51 +7,53 @@ import ( "github.com/docker/docker/api/types/mount" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/testcontainers/testcontainers-go" ) func TestVolumeMount(t *testing.T) { t.Parallel() type args struct { volumeName string - mountTarget ContainerMountTarget + mountTarget testcontainers.ContainerMountTarget } tests := []struct { name string args args - want ContainerMount + want testcontainers.ContainerMount }{ { name: "sample-data:/data", args: args{volumeName: "sample-data", mountTarget: "/data"}, - want: ContainerMount{Source: GenericVolumeMountSource{Name: "sample-data"}, Target: "/data"}, + want: testcontainers.ContainerMount{Source: testcontainers.GenericVolumeMountSource{Name: "sample-data"}, Target: "/data"}, }, { name: "web:/var/nginx/html", args: args{volumeName: "web", mountTarget: "/var/nginx/html"}, - want: ContainerMount{Source: GenericVolumeMountSource{Name: "web"}, Target: "/var/nginx/html"}, + want: testcontainers.ContainerMount{Source: testcontainers.GenericVolumeMountSource{Name: "web"}, Target: "/var/nginx/html"}, }, } for _, tt := range tests { tt := tt t.Run(tt.name, func(t *testing.T) { t.Parallel() - assert.Equalf(t, tt.want, VolumeMount(tt.args.volumeName, tt.args.mountTarget), "VolumeMount(%v, %v)", tt.args.volumeName, tt.args.mountTarget) + assert.Equalf(t, tt.want, testcontainers.VolumeMount(tt.args.volumeName, tt.args.mountTarget), "VolumeMount(%v, %v)", tt.args.volumeName, tt.args.mountTarget) }) } } func TestContainerMounts_PrepareMounts(t *testing.T) { volumeOptions := &mount.VolumeOptions{ - Labels: GenericLabels(), + Labels: testcontainers.GenericLabels(), } - expectedLabels := GenericLabels() + expectedLabels := testcontainers.GenericLabels() expectedLabels["hello"] = "world" t.Parallel() tests := []struct { name string - mounts ContainerMounts + mounts testcontainers.ContainerMounts want []mount.Mount }{ { @@ -61,7 +63,7 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { }, { name: "Single volume mount", - mounts: ContainerMounts{{Source: GenericVolumeMountSource{Name: "app-data"}, Target: "/data"}}, + mounts: testcontainers.ContainerMounts{{Source: testcontainers.GenericVolumeMountSource{Name: "app-data"}, Target: "/data"}}, want: []mount.Mount{ { Type: mount.TypeVolume, @@ -73,7 +75,7 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { }, { name: "Single volume mount - read-only", - mounts: ContainerMounts{{Source: GenericVolumeMountSource{Name: "app-data"}, Target: "/data", ReadOnly: true}}, + mounts: testcontainers.ContainerMounts{{Source: testcontainers.GenericVolumeMountSource{Name: "app-data"}, Target: "/data", ReadOnly: true}}, want: []mount.Mount{ { Type: mount.TypeVolume, @@ -86,9 +88,9 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { }, { name: "Single volume mount - with options", - mounts: ContainerMounts{ + mounts: testcontainers.ContainerMounts{ { - Source: DockerVolumeMountSource{ + Source: testcontainers.DockerVolumeMountSource{ Name: "app-data", VolumeOptions: &mount.VolumeOptions{ NoCopy: true, @@ -115,7 +117,7 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { { name: "Single tmpfs mount", - mounts: ContainerMounts{{Source: GenericTmpfsMountSource{}, Target: "/data"}}, + mounts: testcontainers.ContainerMounts{{Source: testcontainers.GenericTmpfsMountSource{}, Target: "/data"}}, want: []mount.Mount{ { Type: mount.TypeTmpfs, @@ -124,8 +126,8 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { }, }, { - name: "Single tmpfs mount - read-only", - mounts: ContainerMounts{{Source: GenericTmpfsMountSource{}, Target: "/data", ReadOnly: true}}, + name: "Single volume mount - read-only", + mounts: testcontainers.ContainerMounts{{Source: testcontainers.GenericTmpfsMountSource{}, Target: "/data", ReadOnly: true}}, want: []mount.Mount{ { Type: mount.TypeTmpfs, @@ -136,9 +138,9 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { }, { name: "Single tmpfs mount - with options", - mounts: ContainerMounts{ + mounts: testcontainers.ContainerMounts{ { - Source: DockerTmpfsMountSource{ + Source: testcontainers.DockerTmpfsMountSource{ TmpfsOptions: &mount.TmpfsOptions{ SizeBytes: 50 * 1024 * 1024, Mode: 0o644, @@ -163,18 +165,18 @@ func TestContainerMounts_PrepareMounts(t *testing.T) { tt := tt t.Run(tt.name, func(t *testing.T) { t.Parallel() - assert.Equalf(t, tt.want, mapToDockerMounts(tt.mounts), "PrepareMounts()") + assert.Equalf(t, tt.want, tt.mounts.PrepareMounts(), "PrepareMounts()") }) } } func TestCreateContainerWithVolume(t *testing.T) { // volumeMounts { - req := ContainerRequest{ + req := testcontainers.ContainerRequest{ Image: "alpine", - Mounts: ContainerMounts{ + Mounts: testcontainers.ContainerMounts{ { - Source: GenericVolumeMountSource{ + Source: testcontainers.GenericVolumeMountSource{ Name: "test-volume", }, Target: "/data", @@ -184,7 +186,7 @@ func TestCreateContainerWithVolume(t *testing.T) { // } ctx := context.Background() - c, err := GenericContainer(ctx, GenericContainerRequest{ + c, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: req, Started: true, }) @@ -192,7 +194,7 @@ func TestCreateContainerWithVolume(t *testing.T) { terminateContainerOnEnd(t, ctx, c) // Check if volume is created - client, err := NewDockerClientWithOpts(ctx) + client, err := testcontainers.NewDockerClientWithOpts(ctx) require.NoError(t, err) defer client.Close() @@ -202,11 +204,11 @@ func TestCreateContainerWithVolume(t *testing.T) { } func TestMountsReceiveRyukLabels(t *testing.T) { - req := ContainerRequest{ + req := testcontainers.ContainerRequest{ Image: "alpine", - Mounts: ContainerMounts{ + Mounts: testcontainers.ContainerMounts{ { - Source: GenericVolumeMountSource{ + Source: testcontainers.GenericVolumeMountSource{ Name: "app-data", }, Target: "/data", @@ -215,7 +217,7 @@ func TestMountsReceiveRyukLabels(t *testing.T) { } ctx := context.Background() - c, err := GenericContainer(ctx, GenericContainerRequest{ + c, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: req, Started: true, }) @@ -223,11 +225,11 @@ func TestMountsReceiveRyukLabels(t *testing.T) { terminateContainerOnEnd(t, ctx, c) // Check if volume is created with the expected labels - client, err := NewDockerClientWithOpts(ctx) + client, err := testcontainers.NewDockerClientWithOpts(ctx) require.NoError(t, err) defer client.Close() volume, err := client.VolumeInspect(ctx, "app-data") require.NoError(t, err) - assert.Equal(t, GenericLabels(), volume.Labels) + assert.Equal(t, testcontainers.GenericLabels(), volume.Labels) } diff --git a/testhelpers_test.go b/testhelpers_test.go new file mode 100644 index 0000000000..480cf857a3 --- /dev/null +++ b/testhelpers_test.go @@ -0,0 +1,21 @@ +package testcontainers_test + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/testcontainers/testcontainers-go" +) + +func terminateContainerOnEnd(tb testing.TB, ctx context.Context, ctr testcontainers.Container) { + tb.Helper() + if ctr == nil { + return + } + tb.Cleanup(func() { + tb.Log("terminating container") + require.NoError(tb, ctr.Terminate(ctx)) + }) +} From 8838003065e51a82a5a3e682ee420242583b781f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 11:42:00 +0100 Subject: [PATCH 038/115] chore(deps): bump github.com/jackc/pgx/v5 in /modules/cockroachdb (#2217) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.2 to 5.5.3. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.5.2...v5.5.3) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 4f161184f8..bfafa00e59 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/docker/go-connections v0.5.0 - github.com/jackc/pgx/v5 v5.5.2 + github.com/jackc/pgx/v5 v5.5.3 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index aa504201a1..393322af39 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -54,8 +54,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.5.2 h1:iLlpgp4Cp/gC9Xuscl7lFL1PhhW+ZLtXZcrfCt4C3tA= -github.com/jackc/pgx/v5 v5.5.2/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/pgx/v5 v5.5.3 h1:Ces6/M3wbDXYpM8JyyPD57ivTtJACFZJd885pdIaV2s= +github.com/jackc/pgx/v5 v5.5.3/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= From c474bcdc336ae941201707e8b4e708e5b3f7817b Mon Sep 17 00:00:00 2001 From: Steven Hartland Date: Fri, 1 Mar 2024 10:44:05 +0000 Subject: [PATCH 039/115] feat: WithLogger ContainerCustomizer support (#2259) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: WithLogger ContainerCustomizer support Add support to use WithLogger as a ContainerCustomizer so that callers have an easy way to configure the logger of a container. Add tests for WithLogger. Validate Logger and LoggerOption implement the required interfaces. * chore: add note about order Add a note about WithLogger being used before other functions so it can capture any logging they may generate. Co-authored-by: Manuel de la Peña --------- Co-authored-by: Manuel de la Peña --- docs/features/common_functional_options.md | 23 ++++++++++++++++ logger.go | 30 ++++++++++++++++++--- logger_test.go | 31 ++++++++++++++++++++++ 3 files changed, 80 insertions(+), 4 deletions(-) create mode 100644 logger_test.go diff --git a/docs/features/common_functional_options.md b/docs/features/common_functional_options.md index 595f87e73d..8a86718efe 100644 --- a/docs/features/common_functional_options.md +++ b/docs/features/common_functional_options.md @@ -41,6 +41,29 @@ func (g *TestLogConsumer) Accept(l Log) { } ``` +#### WithLogger + +- Not available until the next release of testcontainers-go :material-tag: main + +If you need to either pass logger to a container, you can use `testcontainers.WithLogger`. + +!!!info + Consider calling this before other "With" functions as these may generate logs. + +In this example we also use `TestLogger` which writes to the passed in `testing.TB` using `Logf`. +The result is that we capture all logging from the container into the test context meaning its +hidden behind `go test -v` and is associated with the relevant test, providing the user with +useful context instead of appearing out of band. + +```golang +func TestHandler(t *testing.T) { + logger := TestLogger(t) + _, err := postgresModule.RunContainer(ctx, testcontainers.WithLogger(logger)) + require.NoError(t, err) + // Do something with container. +} +``` + Please read the [Following Container Logs](/features/follow_logs) documentation for more information about creating log consumers. #### Wait Strategies diff --git a/logger.go b/logger.go index 5236ac4640..b137fdca66 100644 --- a/logger.go +++ b/logger.go @@ -12,6 +12,14 @@ import ( // Logger is the default log instance var Logger Logging = log.New(os.Stderr, "", log.LstdFlags) +// Validate our types implement the required interfaces. +var ( + _ Logging = (*log.Logger)(nil) + _ ContainerCustomizer = LoggerOption{} + _ GenericProviderOption = LoggerOption{} + _ DockerProviderOption = LoggerOption{} +) + // Logging defines the Logger interface type Logging interface { Printf(format string, v ...interface{}) @@ -24,37 +32,51 @@ func LogDockerServerInfo(ctx context.Context, client client.APIClient, logger Lo } // TestLogger returns a Logging implementation for testing.TB -// This way logs from testcontainers are part of the test output of a test suite or test case +// This way logs from testcontainers are part of the test output of a test suite or test case. func TestLogger(tb testing.TB) Logging { tb.Helper() return testLogger{TB: tb} } -// WithLogger is a generic option that implements GenericProviderOption, DockerProviderOption -// It replaces the global Logging implementation with a user defined one e.g. to aggregate logs from testcontainers -// with the logs of specific test case +// WithLogger returns a generic option that sets the logger to be used. +// +// Consider calling this before other "With functions" as these may generate logs. +// +// This can be given a TestLogger to collect the logs from testcontainers into a +// test case. func WithLogger(logger Logging) LoggerOption { return LoggerOption{ logger: logger, } } +// LoggerOption is a generic option that sets the logger to be used. +// +// It can be used to set the logger for providers and containers. type LoggerOption struct { logger Logging } +// ApplyGenericTo implements GenericProviderOption. func (o LoggerOption) ApplyGenericTo(opts *GenericProviderOptions) { opts.Logger = o.logger } +// ApplyDockerTo implements DockerProviderOption. func (o LoggerOption) ApplyDockerTo(opts *DockerProviderOptions) { opts.Logger = o.logger } +// Customize implements ContainerCustomizer. +func (o LoggerOption) Customize(req *GenericContainerRequest) { + req.Logger = o.logger +} + type testLogger struct { testing.TB } +// Printf implements Logging. func (t testLogger) Printf(format string, v ...interface{}) { t.Helper() t.Logf(format, v...) diff --git a/logger_test.go b/logger_test.go new file mode 100644 index 0000000000..d4debef016 --- /dev/null +++ b/logger_test.go @@ -0,0 +1,31 @@ +package testcontainers + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestWithLogger(t *testing.T) { + logger := TestLogger(t) + logOpt := WithLogger(logger) + t.Run("container", func(t *testing.T) { + var req GenericContainerRequest + logOpt.Customize(&req) + require.Equal(t, logger, req.Logger) + }) + + t.Run("provider", func(t *testing.T) { + var opts GenericProviderOptions + logOpt.ApplyGenericTo(&opts) + require.Equal(t, logger, opts.Logger) + }) + + t.Run("docker", func(t *testing.T) { + opts := &DockerProviderOptions{ + GenericProviderOptions: &GenericProviderOptions{}, + } + logOpt.ApplyDockerTo(opts) + require.Equal(t, logger, opts.Logger) + }) +} From 9fbd21ca8807745f8ee51b3563f7253f5795b90c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 11:45:02 +0100 Subject: [PATCH 040/115] chore(deps): bump github.com/ClickHouse/clickhouse-go/v2 (#2226) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.17.1 to 2.18.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.17.1...v2.18.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- modules/clickhouse/go.mod | 14 +++++++------- modules/clickhouse/go.sum | 30 +++++++++++++++--------------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index ecf6af39bd..03575dfc79 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/clickhouse go 1.20 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.17.1 + github.com/ClickHouse/clickhouse-go/v2 v2.18.0 github.com/cenkalti/backoff/v4 v4.2.1 github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.8.4 @@ -16,7 +16,7 @@ require ( github.com/ClickHouse/ch-go v0.58.2 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect - github.com/andybalholm/brotli v1.0.6 // indirect + github.com/andybalholm/brotli v1.1.0 // indirect github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect @@ -27,7 +27,7 @@ require ( github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-faster/city v1.0.1 // indirect github.com/go-faster/errors v0.6.1 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -43,7 +43,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/paulmach/orb v0.10.0 // indirect + github.com/paulmach/orb v0.11.1 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect @@ -57,9 +57,9 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index 68255d0c75..09cd852f6c 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -5,14 +5,14 @@ github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOEl github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/ClickHouse/ch-go v0.58.2 h1:jSm2szHbT9MCAB1rJ3WuCJqmGLi5UTjlNu+f530UTS0= github.com/ClickHouse/ch-go v0.58.2/go.mod h1:Ap/0bEmiLa14gYjCiRkYGbXvbe8vwdrfTYWhsuQ99aw= -github.com/ClickHouse/clickhouse-go/v2 v2.17.1 h1:ZCmAYWpu75IyEi7+Yrs/uaAjiCGY5wfW5kXo64exkX4= -github.com/ClickHouse/clickhouse-go/v2 v2.17.1/go.mod h1:rkGTvFDTLqLIm0ma+13xmcCfr/08Gvs7KmFt1tgiWHQ= +github.com/ClickHouse/clickhouse-go/v2 v2.18.0 h1:O1LicIeg2JS2V29fKRH4+yT3f6jvvcJBm506dpVQ4mQ= +github.com/ClickHouse/clickhouse-go/v2 v2.18.0/go.mod h1:ztQvX6wm7kAbhJslS87EXEhOVNY/TObXwyURnGju5FQ= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/andybalholm/brotli v1.0.6 h1:Yf9fFpf49Zrxb9NlQaluyE92/+X7UVHlhMNJN2sxfOI= -github.com/andybalholm/brotli v1.0.6/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= +github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= @@ -40,8 +40,8 @@ github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6v github.com/go-faster/errors v0.6.1 h1:nNIPOBkprlKzkThvS/0YaX8Zs9KewLCOSFQS5BU06FI= github.com/go-faster/errors v0.6.1/go.mod h1:5MGV2/2T9yvlrbhe9pD9LO5Z/2zCSq2T8j+Jpi2LAyY= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -90,8 +90,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/paulmach/orb v0.10.0 h1:guVYVqzxHE/CQ1KpfGO077TR0ATHSNjp4s6XGLn3W9s= -github.com/paulmach/orb v0.10.0/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= +github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= +github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= @@ -139,15 +139,15 @@ github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -164,7 +164,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 20929aec150d862880ffa881d339ad374f3c3ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 1 Mar 2024 13:36:55 +0100 Subject: [PATCH 041/115] chore: bump Go version to 1.21 (#2292) * fix: update misleading comment * chore: bump Go version to 1.21 using script * chore: remove exclusion for compose in Go 1.20 * chore: Go versions in CI matrix * chore: bump more Go versions in markdown * chore: run mod tidy * fix: update references in tests --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci.yml | 15 +++++-------- docs/system_requirements/ci/aws_codebuild.md | 2 +- docs/system_requirements/ci/concourse_ci.md | 2 +- docs/system_requirements/ci/dind_patterns.md | 4 ++-- docs/system_requirements/ci/gitlab_ci.md | 2 +- docs/system_requirements/ci/tekton.md | 2 +- docs/system_requirements/ci/travis.md | 2 +- examples/nginx/go.mod | 2 +- examples/nginx/go.sum | 13 +++++++++++ examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 19 ++++++++++++++++ go.mod | 2 +- go.sum | 11 ++++++++++ modulegen/_template/ci.yml.tmpl | 15 +++++-------- modulegen/go.mod | 2 +- modulegen/main_test.go | 2 +- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 15 +++++++++++++ modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 16 ++++++++++++++ modules/chroma/go.mod | 2 +- modules/chroma/go.sum | 14 ++++++++++++ modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 15 +++++++++++++ modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 14 ++++++++++++ modules/compose/go.mod | 2 -- modules/consul/go.mod | 2 +- modules/consul/go.sum | 23 ++++++++++++++++++++ modules/couchbase/go.mod | 4 +++- modules/couchbase/go.sum | 13 +++++++++++ modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 16 ++++++++++++++ modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 17 +++++++++++++++ modules/inbucket/go.mod | 2 +- modules/inbucket/go.sum | 13 +++++++++++ modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 16 ++++++++++++++ modules/k6/go.mod | 2 +- modules/k6/go.sum | 13 +++++++++++ modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 13 +++++++++++ modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 17 +++++++++++++++ modules/mariadb/go.mod | 2 +- modules/mariadb/go.sum | 13 +++++++++++ modules/milvus/go.mod | 2 +- modules/milvus/go.sum | 13 +++++++++++ modules/minio/go.mod | 2 +- modules/minio/go.sum | 10 +++++++++ modules/mockserver/go.mod | 2 +- modules/mockserver/go.sum | 12 ++++++++++ modules/mongodb/go.mod | 2 +- modules/mongodb/go.sum | 11 ++++++++++ modules/mssql/go.mod | 2 +- modules/mssql/go.sum | 21 ++++++++++++++++++ modules/mysql/go.mod | 2 +- modules/mysql/go.sum | 13 +++++++++++ modules/nats/go.mod | 2 +- modules/nats/go.sum | 13 +++++++++++ modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 13 +++++++++++ modules/openldap/go.mod | 2 +- modules/openldap/go.sum | 13 +++++++++++ modules/opensearch/go.mod | 2 +- modules/opensearch/go.sum | 13 +++++++++++ modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 16 ++++++++++++++ modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 20 +++++++++++++++++ modules/qdrant/go.mod | 2 +- modules/qdrant/go.sum | 11 ++++++++++ modules/rabbitmq/go.mod | 2 +- modules/rabbitmq/go.sum | 13 +++++++++++ modules/redis/go.mod | 2 +- modules/redis/go.sum | 22 +++++++++++++++++++ modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 16 ++++++++++++++ modules/vault/go.mod | 2 +- modules/vault/go.sum | 15 +++++++++++++ modules/weaviate/go.mod | 2 +- modules/weaviate/go.sum | 14 ++++++++++++ scripts/bump-go.sh | 11 +++++++++- wait/testdata/go.mod | 2 +- 86 files changed, 601 insertions(+), 68 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7d8824ce16..04930115d6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/go { "name": "Go", - "image": "mcr.microsoft.com/devcontainers/go:0-1.20-bullseye", + "image": "mcr.microsoft.com/devcontainers/go:0-1.21-bullseye", // Features to add to the dev container. More info: https://containers.dev/features. // "features": {}, diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5d43c32db5..2b78722a91 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ jobs: if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest, macos-latest] uses: ./.github/workflows/ci-test-go.yml with: @@ -48,7 +48,7 @@ jobs: name: "Test with reaper off" strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} @@ -67,7 +67,7 @@ jobs: name: "Test with Rootless Docker" strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest] uses: ./.github/workflows/ci-test-go.yml with: @@ -84,7 +84,7 @@ jobs: if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest, macos-latest, windows-latest] uses: ./.github/workflows/ci-test-go.yml with: @@ -102,12 +102,9 @@ jobs: needs: test strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest] module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, vault, weaviate] - exclude: - - go-version: 1.20.x - module: compose uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} @@ -127,7 +124,7 @@ jobs: module: [nginx, toxiproxy] uses: ./.github/workflows/ci-test-go.yml with: - go-version: "1.20.x" + go-version: "1.21.x" fail-fast: true platform: 'ubuntu-latest' project-directory: examples/${{ matrix.module }} diff --git a/docs/system_requirements/ci/aws_codebuild.md b/docs/system_requirements/ci/aws_codebuild.md index d453debf72..1320e6bdba 100644 --- a/docs/system_requirements/ci/aws_codebuild.md +++ b/docs/system_requirements/ci/aws_codebuild.md @@ -11,7 +11,7 @@ version: 0.2 phases: install: runtime-versions: - golang: 1.20 + golang: 1.21 build: commands: - go test ./... diff --git a/docs/system_requirements/ci/concourse_ci.md b/docs/system_requirements/ci/concourse_ci.md index 8f61f37b58..2d711d3b73 100644 --- a/docs/system_requirements/ci/concourse_ci.md +++ b/docs/system_requirements/ci/concourse_ci.md @@ -36,7 +36,7 @@ jobs: start_docker cd repo - docker run -it --rm -v "$PWD:$PWD" -w "$PWD" -v /var/run/docker.sock:/var/run/docker.sock golang:1.20 go test ./... + docker run -it --rm -v "$PWD:$PWD" -w "$PWD" -v /var/run/docker.sock:/var/run/docker.sock golang:1.21 go test ./... ``` Finally, you can use Concourse's [fly CLI](https://concourse-ci.org/fly.html) to set the pipeline and trigger the job: diff --git a/docs/system_requirements/ci/dind_patterns.md b/docs/system_requirements/ci/dind_patterns.md index 6475040737..853a174d32 100644 --- a/docs/system_requirements/ci/dind_patterns.md +++ b/docs/system_requirements/ci/dind_patterns.md @@ -24,7 +24,7 @@ $ tree . └── platform └── integration_test.go -$ docker run -it --rm -v $PWD:$PWD -w $PWD -v /var/run/docker.sock:/var/run/docker.sock golang:1.20 go test ./... -v +$ docker run -it --rm -v $PWD:$PWD -w $PWD -v /var/run/docker.sock:/var/run/docker.sock golang:1.21 go test ./... -v ``` Where: @@ -45,7 +45,7 @@ The same can be achieved with Docker Compose: ```yaml tests: - image: golang:1.20 + image: golang:1.21 stop_signal: SIGKILL stdin_open: true tty: true diff --git a/docs/system_requirements/ci/gitlab_ci.md b/docs/system_requirements/ci/gitlab_ci.md index 0604a695a7..6289dc59ae 100644 --- a/docs/system_requirements/ci/gitlab_ci.md +++ b/docs/system_requirements/ci/gitlab_ci.md @@ -57,7 +57,7 @@ variables: DOCKER_DRIVER: overlay2 test: - image: golang:1.20 + image: golang:1.21 stage: test script: go test ./... -v ``` diff --git a/docs/system_requirements/ci/tekton.md b/docs/system_requirements/ci/tekton.md index fb5c16a8a6..a8280a0802 100644 --- a/docs/system_requirements/ci/tekton.md +++ b/docs/system_requirements/ci/tekton.md @@ -16,7 +16,7 @@ spec: - name: source steps: - name: read - image: golang:1.20 + image: golang:1.21 workingDir: $(workspaces.source.path) script: go test ./... -v volumeMounts: diff --git a/docs/system_requirements/ci/travis.md b/docs/system_requirements/ci/travis.md index 7534c86fc9..0701d2e367 100644 --- a/docs/system_requirements/ci/travis.md +++ b/docs/system_requirements/ci/travis.md @@ -7,7 +7,7 @@ is the minimal required config. language: go go: - 1.x -- "1.20" +- "1.21" services: - docker diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index ec616c3083..843ad455d6 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/examples/nginx -go 1.20 +go 1.21 require github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index 3b1acb7df2..0a9b818242 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -106,13 +109,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -127,10 +134,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -146,7 +155,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -159,6 +170,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -172,3 +184,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 0e79d136cc..9fc6c4ff01 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/examples/toxiproxy -go 1.20 +go 1.21 require ( github.com/Shopify/toxiproxy/v2 v2.7.0 diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index 1466c196e2..2baed0fa1d 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -20,6 +21,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -36,6 +38,7 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -58,6 +61,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -77,8 +81,11 @@ github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3 github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= +github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -118,13 +125,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -139,10 +150,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -158,7 +171,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -171,6 +186,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -181,8 +197,11 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/go.mod b/go.mod index 709ed8ead7..27f16311a1 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go -go 1.20 +go 1.21 require ( dario.cat/mergo v1.0.0 diff --git a/go.sum b/go.sum index 71c0aa2652..79712a0171 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -17,6 +18,7 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -50,6 +52,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -119,13 +122,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -140,10 +147,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -159,6 +168,7 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -173,6 +183,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= diff --git a/modulegen/_template/ci.yml.tmpl b/modulegen/_template/ci.yml.tmpl index defba6beb8..4a7588d4c5 100644 --- a/modulegen/_template/ci.yml.tmpl +++ b/modulegen/_template/ci.yml.tmpl @@ -28,7 +28,7 @@ jobs: if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest, macos-latest] uses: ./.github/workflows/ci-test-go.yml with: @@ -48,7 +48,7 @@ jobs: name: "Test with reaper off" strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] uses: ./.github/workflows/ci-test-go.yml with: go-version: {{ "${{ matrix.go-version }}" }} @@ -67,7 +67,7 @@ jobs: name: "Test with Rootless Docker" strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest] uses: ./.github/workflows/ci-test-go.yml with: @@ -84,7 +84,7 @@ jobs: if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest, macos-latest, windows-latest] uses: ./.github/workflows/ci-test-go.yml with: @@ -102,12 +102,9 @@ jobs: needs: test strategy: matrix: - go-version: [1.20.x, 1.x] + go-version: [1.21.x, 1.x] platform: [ubuntu-latest] module: [{{ .Modules }}] - exclude: - - go-version: 1.20.x - module: compose uses: ./.github/workflows/ci-test-go.yml with: go-version: {{ "${{ matrix.go-version }}" }} @@ -127,7 +124,7 @@ jobs: module: [{{ .Examples }}] uses: ./.github/workflows/ci-test-go.yml with: - go-version: "1.20.x" + go-version: "1.21.x" fail-fast: true platform: 'ubuntu-latest' project-directory: {{ "examples/${{ matrix.module }}" }} diff --git a/modulegen/go.mod b/modulegen/go.mod index def55e15b9..9b033d7969 100644 --- a/modulegen/go.mod +++ b/modulegen/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modulegen -go 1.20 +go 1.21 require ( github.com/spf13/cobra v1.8.0 diff --git a/modulegen/main_test.go b/modulegen/main_test.go index 772a18c952..d57d7598a6 100644 --- a/modulegen/main_test.go +++ b/modulegen/main_test.go @@ -486,7 +486,7 @@ func assertModuleGithubWorkflowContent(t *testing.T, module context.Testcontaine examplesList, err := ctx.GetExamples() require.NoError(t, err) - assert.Equal(t, " module: ["+strings.Join(examplesList, ", ")+"]", data[126]) + assert.Equal(t, " module: ["+strings.Join(examplesList, ", ")+"]", data[123]) } // assert content go.mod diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 1b2811e454..c01fb3abe8 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/artemis -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index 5ee2e57c50..45b1c5a81b 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -53,12 +55,14 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -87,6 +91,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -117,13 +122,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -140,11 +149,13 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -164,7 +175,9 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -178,6 +191,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -193,3 +207,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index 460e783c80..a0ea28ff3e 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/cassandra -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index e0ac9771bd..60b6ef6a26 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -20,6 +21,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -57,6 +59,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -65,6 +68,7 @@ github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -93,6 +97,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -123,13 +128,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -144,10 +153,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -163,7 +174,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -176,6 +189,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -186,9 +200,11 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index ec82d58608..fee134b88f 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/chroma -go 1.20 +go 1.21 require ( github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 3e167e510f..8812d9a54d 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -18,6 +19,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -51,7 +53,9 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -109,13 +113,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -130,10 +138,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -149,7 +159,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -162,6 +174,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -175,3 +188,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 03575dfc79..980108f02c 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/clickhouse -go 1.20 +go 1.21 require ( github.com/ClickHouse/clickhouse-go/v2 v2.18.0 diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index 09cd852f6c..aabea68d41 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/ClickHouse/ch-go v0.58.2 h1:jSm2szHbT9MCAB1rJ3WuCJqmGLi5UTjlNu+f530UTS0= @@ -22,6 +23,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -61,6 +63,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= @@ -68,6 +71,7 @@ github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGC github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -102,6 +106,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys= github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= @@ -142,13 +147,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -165,11 +174,13 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -193,6 +204,7 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -205,6 +217,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -217,7 +230,9 @@ google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index bfafa00e59..99e6c515b1 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/cockroachdb -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 393322af39..f5836689c1 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -17,6 +18,7 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -50,6 +52,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= @@ -63,6 +66,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= @@ -90,6 +94,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -120,13 +125,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -143,6 +152,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -165,6 +175,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -177,6 +188,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -187,7 +199,9 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index a07a3a2fa9..3b983e47a2 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -2,8 +2,6 @@ module github.com/testcontainers/testcontainers-go/modules/compose go 1.21 -toolchain go1.21.3 - replace github.com/testcontainers/testcontainers-go => ../.. require ( diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 5b5aaf6904..8aed5c13e9 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/consul -go 1.20 +go 1.21 require ( github.com/hashicorp/consul/api v1.27.0 diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 4b72ee0628..13a41ee5c7 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -34,6 +35,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -76,6 +78,7 @@ github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -87,9 +90,11 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hashicorp/consul/api v1.27.0 h1:gmJ6DPKQog1426xsdmgk5iqDyoRiNc+ipBdJOqKQFjc= github.com/hashicorp/consul/api v1.27.0/go.mod h1:JkekNRSou9lANFdt+4IKx3Za7XY0JzzpQjEb4Ivo1c8= github.com/hashicorp/consul/sdk v0.15.1 h1:kKIGxc7CZtflcF5DLfHeq7rOQmRq3vk7kwISN9bif8Q= +github.com/hashicorp/consul/sdk v0.15.1/go.mod h1:7pxqqhqoaPqnBnzXD1StKed62LqJeClzVsUEy85Zr0A= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -103,6 +108,7 @@ github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJ github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= +github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= @@ -112,11 +118,14 @@ github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5O github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.1 h1:zEfKbn2+PDgroKdiOzqiE8rsmLqU2uwi5PB5pBJ3TkI= +github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= @@ -137,9 +146,11 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -214,6 +225,7 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -255,13 +267,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= @@ -283,6 +299,7 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -290,6 +307,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -327,7 +345,9 @@ golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -341,6 +361,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -353,6 +374,7 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -361,3 +383,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 3ed60cbdd7..ae8d4afeb5 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -1,6 +1,8 @@ module github.com/testcontainers/testcontainers-go/modules/couchbase -go 1.18 +go 1.21 + +toolchain go1.21.7 require ( github.com/cenkalti/backoff/v4 v4.2.1 diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index ef3d71c7f8..de4b698d54 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -2,6 +2,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -29,11 +30,13 @@ github.com/couchbase/goprotostellar v1.0.1 h1:mtDVYTgnnDSQ3t7mQRG6jl/tOXKOuuFM9P github.com/couchbase/goprotostellar v1.0.1/go.mod h1:gs1eioLVOHETTFWxDY4v7Q/kRPMgqmX6t/TPcI429ls= github.com/couchbaselabs/gocaves/client v0.0.0-20230307083111-cc3960c624b1/go.mod h1:AVekAZwIY2stsJOMWLAS/0uA/+qdp7pjO8EHnl61QkY= github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259 h1:2TXy68EGEzIMHOx9UvczR5ApVecwCfQZ0LjkmwMI6g4= +github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259/go.mod h1:AVekAZwIY2stsJOMWLAS/0uA/+qdp7pjO8EHnl61QkY= github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 h1:2EAfFswAfgYn3a05DVcegiw6DgMgn1Mv5eGz6IHt1Cw= github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131/go.mod h1:o7T431UOfFVHDNvMBUmUxpHnhivwv7BziUao/nMl81E= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -85,6 +88,7 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 h1:UH//fgunKIs4JdUbpDl1VZCDaL56wXCB/5+wF6uHfaI= github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vbp88Yd8NsDy6rZz+RcrMPxvld8= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -162,16 +166,21 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= @@ -209,6 +218,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -229,6 +239,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -251,6 +262,7 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4= google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -273,5 +285,6 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 3b0a7cc256..e08ee8bf6e 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/elasticsearch -go 1.20 +go 1.21 require ( github.com/elastic/go-elasticsearch/v8 v8.11.1 diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index f43b259603..be4ea4bf00 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -53,11 +55,13 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -86,6 +90,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -115,13 +120,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -136,10 +145,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -155,7 +166,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -168,6 +181,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -178,7 +192,9 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 2dabc1b88a..aafb72b048 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/gcloud -go 1.20 +go 1.21 require ( cloud.google.com/go/bigquery v1.59.1 diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index c6c565c64d..0b7da517d2 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -10,6 +10,7 @@ cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzc cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datacatalog v1.19.3 h1:A0vKYCQdxQuV4Pi0LL9p39Vwvg4jH5yYveMv50gU5Tw= +cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= cloud.google.com/go/datastore v1.15.0 h1:0P9WcsQeTWjuD1H14JIY7XQscIPQ4Laje8ti96IC5vg= cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= cloud.google.com/go/firestore v1.14.0 h1:8aLcKnMPoldYU3YHgu4t2exrKhLQkqaXAGqT0ljrFVw= @@ -17,6 +18,7 @@ cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LR cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= cloud.google.com/go/pubsub v1.36.1 h1:dfEPuGCHGbWUhaMCTHUFjfroILEkx55iUmKBZTP5f+Y= @@ -24,9 +26,11 @@ cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK cloud.google.com/go/spanner v1.57.0 h1:fJq+ZfQUDHE+cy1li0bJA8+sy2oiSGhuGqN5nqVaZdU= cloud.google.com/go/spanner v1.57.0/go.mod h1:aXQ5QDdhPRIqVhYmnkAdwPYvj/DRN0FguclhEWw+jOo= cloud.google.com/go/storage v1.37.0 h1:WI8CsaFO8Q9KjPVtsZ5Cmi0dXV25zMoX0FklT7c3Jm4= +cloud.google.com/go/storage v1.37.0/go.mod h1:i34TiT2IhiNDmcj65PqwCjcoUX7Z5pLzS8DEmoiFq1k= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -57,6 +61,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -108,6 +113,7 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/flatbuffers v23.5.26+incompatible h1:M9dgRyhJemaM4Sw8+66GHBu8ioaQmyPLg1b8VwK5WJg= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -123,6 +129,7 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -133,6 +140,7 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksP github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -202,9 +210,11 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.einride.tech/aip v0.66.0 h1:XfV+NQX6L7EOYK11yoHHFtndeaWh3KbD9/cN/6iWEt8= +go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= @@ -214,13 +224,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1: go.opentelemetry.io/otel v1.23.0 h1:Df0pqjqExIywbMCMTxkAwzjLZtRf+bBKLbUcpxO2C9E= go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.23.0 h1:pazkx7ss4LFVVYSxYew7L5I6qvLXHA0Ap2pwV+9Cnpo= go.opentelemetry.io/otel/metric v1.23.0/go.mod h1:MqUW2X2a6Q8RN96E2/nqNoT+z9BSms20Jb7Bbp+HiTo= go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= go.opentelemetry.io/otel/trace v1.23.0 h1:37Ik5Ib7xfYVb4V1UtnT97T1jI+AoIYkJyPkuL4iJgI= go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -308,6 +322,7 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= +gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= google.golang.org/api v0.165.0 h1:zd5d4JIIIaYYsfVy1HzoXYZ9rWCSBxxAglbczzo7Bgc= google.golang.org/api v0.165.0/go.mod h1:2OatzO7ZDQsoS7IFf3rvsE17/TldiU3F/zxFHeqUB5o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= @@ -348,6 +363,8 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= rsc.io/binaryregexp v0.2.0 h1:HfqmD5MEmC0zvwBuF187nq9mdnXjXsSivRiXN7SmRkE= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 0913d57a9d..8d8318f0c9 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/inbucket -go 1.20 +go 1.21 require ( github.com/inbucket/inbucket v2.0.0+incompatible diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index 62e267647c..044d872ad2 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/inbucket/inbucket v2.0.0+incompatible h1:o/8x3EVhub5Z4VMhX6u6Puaskv3GcD6oDfHlfK1Ea0M= github.com/inbucket/inbucket v2.0.0+incompatible/go.mod h1:61hO8wV7F8cd8mCAceG40EvJ1HAfBugqLDIHf5wtzHA= github.com/jhillyerd/inbucket v2.0.0+incompatible h1:gTmxV077ktqV4ZbFjB/0rjiTrdsKQGXWUqYKWjoNIrE= @@ -110,13 +113,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -131,10 +138,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -150,7 +159,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -163,6 +174,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -176,3 +188,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index deeb2e1ac7..1a81e4d6a6 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/k3s -go 1.20 +go 1.21 require ( github.com/docker/docker v25.0.2+incompatible diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index ac26bd931f..57eed07e7a 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -17,6 +18,7 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -46,6 +48,7 @@ github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -63,9 +66,11 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -78,6 +83,7 @@ github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -106,7 +112,9 @@ github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7P github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/onsi/ginkgo/v2 v2.13.0 h1:0jY9lJquiL8fcf3M4LAXN5aMlS/b2BV86HFFPCPMgE4= +github.com/onsi/ginkgo/v2 v2.13.0/go.mod h1:TE309ZR8s5FsKKpuB1YAQYBzCaAfUgatB/xlT/ETL/o= github.com/onsi/gomega v1.29.0 h1:KIA/t2t5UBzoirT4H9tsML45GEbo3ouUnBHsCfD2tVg= +github.com/onsi/gomega v1.29.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -118,6 +126,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -151,13 +160,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -180,6 +193,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -215,6 +229,7 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -236,6 +251,7 @@ gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 5ee21383f4..6c91b55758 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/k6 -go 1.20 +go 1.21 require ( github.com/docker/docker v25.0.2+incompatible diff --git a/modules/k6/go.sum b/modules/k6/go.sum index 3b1acb7df2..0a9b818242 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -106,13 +109,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -127,10 +134,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -146,7 +155,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -159,6 +170,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -172,3 +184,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 3615b570f9..c7e5ca4721 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/kafka -go 1.20 +go 1.21 require ( github.com/IBM/sarama v1.42.1 diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index d492683a69..d52e8ab76f 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/IBM/sarama v1.42.1 h1:wugyWa15TDEHh2kvq2gAy1IHLjEjuYOYgXz/ruC/OSQ= @@ -18,6 +19,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -38,6 +40,7 @@ github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFP github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -62,6 +65,7 @@ github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -146,13 +150,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -183,6 +191,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -208,7 +217,9 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -222,6 +233,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -236,3 +248,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 74499099a4..08d7ec6ada 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/localstack -go 1.20 +go 1.21 require ( github.com/aws/aws-sdk-go v1.49.19 diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index 88d21d71e3..3aead3e476 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -54,6 +55,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -87,6 +89,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= @@ -96,6 +99,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -124,6 +128,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -153,13 +158,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -174,10 +183,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -193,7 +204,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -206,6 +219,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -216,9 +230,12 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index e721f57771..c4a2fc9cb8 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/mariadb -go 1.20 +go 1.21 require ( github.com/go-sql-driver/mysql v1.7.1 diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index d9f8c564a5..a9eac70900 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -51,6 +53,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -108,13 +111,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -129,10 +136,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -148,7 +157,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -161,6 +172,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -174,3 +186,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index c67001d225..8b1b743c10 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/milvus -go 1.20 +go 1.21 require ( github.com/milvus-io/milvus-sdk-go/v2 v2.3.6 diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index 2a710736cb..a5ad9b5e8e 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -2,6 +2,7 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AndreasBriese/bbloom v0.0.0-20190306092124-e2d15f34fcf9/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= @@ -43,6 +44,7 @@ github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHf github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -78,6 +80,7 @@ github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclK github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-faker/faker/v4 v4.1.0 h1:ffuWmpDrducIUOO0QSKSF5Q2dxAht+dhsT9FvVHhPEI= +github.com/go-faker/faker/v4 v4.1.0/go.mod h1:uuNc0PSRxF8nMgjGrrrU4Nw5cF30Jc6Kd0/FUTTYbhg= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -137,6 +140,7 @@ github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -313,13 +317,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -372,6 +380,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -414,6 +423,7 @@ golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181221001348-537d06c36207/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -443,6 +453,7 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= @@ -455,6 +466,7 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc/examples v0.0.0-20220617181431-3e7b97febc7f h1:rqzndB2lIQGivcXdTuY3Y9NBvr70X+y77woofSRluec= +google.golang.org/grpc/examples v0.0.0-20220617181431-3e7b97febc7f/go.mod h1:gxndsbNG1n4TZcHGgsYEfVGnTxqfEdfiDv6/DADXX9o= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -486,5 +498,6 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index de254b7a4f..f2a8b6ebde 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/minio -go 1.20 +go 1.21 require ( github.com/minio/minio-go/v7 v7.0.66 diff --git a/modules/minio/go.sum b/modules/minio/go.sum index 330b934f9b..43fa3d9868 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -52,6 +54,7 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -128,13 +131,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -175,6 +182,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -187,6 +195,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -202,3 +211,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index 08d9dbdedf..7e6bd3ff25 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/mockserver -go 1.20 +go 1.21 require ( github.com/BraspagDevelopers/mock-server-client v0.2.2 diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index e1ac260f11..a22a4763c5 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BraspagDevelopers/mock-server-client v0.2.2 h1:Zro0OonNeaDwkkQGIxeJQfYweNKZ+m+8QIlDZAFRc/4= @@ -18,6 +19,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -53,6 +55,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -110,13 +113,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -137,6 +144,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -153,7 +161,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -166,6 +176,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -179,3 +190,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index aad48bb1ca..d2f7f4927e 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/mongodb -go 1.20 +go 1.21 require ( github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 75ca575002..47fc8f9450 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -52,6 +54,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= @@ -123,13 +126,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -152,6 +159,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -186,6 +194,7 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -199,6 +208,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -212,3 +222,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index c9890b149c..42cd70b856 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/mssql -go 1.20 +go 1.21 require ( github.com/microsoft/go-mssqldb v1.6.0 diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index c17f9bde86..b525415022 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -1,14 +1,21 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0/go.mod h1:Q28U+75mpCaSCDowNEmhIo/rmgdkqmkmzI7N6TGR4UY= github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0/go.mod h1:cw4zVQgBby0Z5f2v0itn6se2dDP17nTjbZFXW5uPyHA= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= +github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= @@ -22,6 +29,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -45,6 +53,7 @@ github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiU github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= +github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -60,11 +69,13 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -86,6 +97,7 @@ github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3I github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -121,13 +133,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -144,10 +160,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -165,6 +183,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -177,6 +196,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -190,3 +210,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index 37dc0f39bc..e7f4438d38 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/mysql -go 1.20 +go 1.21 require ( github.com/go-sql-driver/mysql v1.7.1 diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index d9f8c564a5..a9eac70900 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -51,6 +53,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -108,13 +111,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -129,10 +136,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -148,7 +157,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -161,6 +172,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -174,3 +186,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 48907d1887..73215b048d 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/nats -go 1.20 +go 1.21 require ( github.com/nats-io/nats.go v1.32.0 diff --git a/modules/nats/go.sum b/modules/nats/go.sum index 4a098ea8b1..3bfcd62984 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= @@ -112,13 +115,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -135,10 +142,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -154,7 +163,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -167,6 +178,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -180,3 +192,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index c4596c4000..7c4c2f1ebc 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/neo4j -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index ed4621043f..f357dab649 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -108,13 +111,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -129,10 +136,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -148,7 +157,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -161,6 +172,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -174,3 +186,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index e321fe2e48..a4898a91b7 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/openldap -go 1.20 +go 1.21 require ( github.com/go-ldap/ldap/v3 v3.4.6 diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index d7d0beb818..38849c149a 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= @@ -20,6 +21,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -58,6 +60,7 @@ github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -116,13 +119,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -147,12 +154,14 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -183,7 +192,9 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -198,6 +209,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -211,3 +223,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 4a7fe38016..28d023468c 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/opensearch -go 1.20 +go 1.21 require ( github.com/docker/docker v25.0.2+incompatible diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index 3b1acb7df2..0a9b818242 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -106,13 +109,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -127,10 +134,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -146,7 +155,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -159,6 +170,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -172,3 +184,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 3d80bc60f2..52979b7cc8 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/postgres -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index 2e9b2c633e..c97bb667dc 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -17,6 +18,7 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -50,6 +52,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= @@ -57,11 +60,13 @@ github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZ github.com/jackc/pgx/v5 v5.5.3 h1:Ces6/M3wbDXYpM8JyyPD57ivTtJACFZJd885pdIaV2s= github.com/jackc/pgx/v5 v5.5.3/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= @@ -91,6 +96,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -121,13 +127,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -144,10 +154,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -165,6 +177,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -177,6 +190,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -187,7 +201,9 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 06631c3404..6181698008 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/pulsar -go 1.20 +go 1.21 require ( github.com/apache/pulsar-client-go v0.10.0 diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index fe0673b897..0b154bc8e5 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -38,6 +38,7 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/AthenZ/athenz v1.10.39 h1:mtwHTF/v62ewY2Z5KWhuZgVXftBej1/Tn80zx4DcawY= github.com/AthenZ/athenz v1.10.39/go.mod h1:3Tg8HLsiQZp81BJY58JBeU2BR6B/H4/0MQGfCwhHNEA= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= @@ -87,6 +88,7 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -111,6 +113,7 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -201,6 +204,7 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -228,6 +232,7 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -262,8 +267,11 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= +github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -306,6 +314,7 @@ github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5 github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -354,13 +363,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -459,6 +472,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -520,10 +534,12 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -627,6 +643,7 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -663,10 +680,12 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/square/go-jose.v2 v2.4.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -678,6 +697,7 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index c7d36b4362..522291d383 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/qdrant -go 1.20 +go 1.21 require ( github.com/qdrant/go-client v1.7.0 diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index e1900fee1b..6fb82fbc3e 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -108,13 +111,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -134,6 +141,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -151,6 +159,7 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -163,6 +172,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= @@ -176,3 +186,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index d9f545f47c..6115bc4b15 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/rabbitmq -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index f841b83744..92d3dcf58d 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -111,13 +114,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -134,10 +141,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -153,7 +162,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -166,6 +177,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -180,3 +192,4 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 24432361e1..755036f7a3 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/redis -go 1.20 +go 1.21 require ( github.com/go-redis/redis/v8 v8.11.5 diff --git a/modules/redis/go.sum b/modules/redis/go.sum index be793ab355..c59341d4eb 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -18,6 +19,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -34,6 +36,7 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -56,11 +59,13 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -79,8 +84,11 @@ github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3 github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v1.18.1 h1:M1GfJqGRrBrrGGsbxzV5dqM2U2ApXefZCQpkukxYRLE= +github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -92,6 +100,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -121,13 +130,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -142,10 +155,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -161,7 +176,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -174,6 +191,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -184,9 +202,13 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 330c67d6ff..0689f5174b 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/redpanda -go 1.20 +go 1.21 require ( github.com/docker/go-connections v0.5.0 diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index eba3ada754..8f438f5f61 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,11 +51,13 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -84,6 +88,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -119,13 +124,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -142,10 +151,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -161,7 +172,9 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= @@ -174,6 +187,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -184,7 +198,9 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index a637961206..d5c1927759 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/vault -go 1.20 +go 1.21 require ( github.com/docker/docker v25.0.2+incompatible diff --git a/modules/vault/go.sum b/modules/vault/go.sum index 2af0787ba4..1d9aeb98f8 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= @@ -16,6 +17,7 @@ github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3 github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -49,6 +51,7 @@ github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeN github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -71,6 +74,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -101,6 +105,7 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= @@ -139,13 +144,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -160,10 +169,12 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -179,6 +190,7 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -193,6 +205,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= @@ -203,7 +216,9 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 9e79b741ee..e4f2eb8887 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -1,6 +1,6 @@ module github.com/testcontainers/testcontainers-go/modules/weaviate -go 1.20 +go 1.21 require ( github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index 3b4033bb89..9131bce56c 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -1,6 +1,7 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= @@ -25,6 +26,7 @@ github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoY github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -114,6 +116,7 @@ github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -129,6 +132,7 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -179,6 +183,7 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -234,13 +239,17 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1: go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= @@ -273,6 +282,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -304,6 +314,7 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -322,6 +333,7 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d h1:VBu5YqKPv6XiJ199exd8Br+Aetz+o08F+PLMnwJQHAY= google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d h1:DoPTO70H+bcDXcd39vOqb2viZxgqeBeSGtZ55yZU4/Q= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4= google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= @@ -334,6 +346,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -346,3 +359,4 @@ gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/scripts/bump-go.sh b/scripts/bump-go.sh index 02a20da35c..7b949ee89b 100755 --- a/scripts/bump-go.sh +++ b/scripts/bump-go.sh @@ -15,7 +15,7 @@ # # It's possible to run the script without dry-run mode actually executing the commands. # -# Usage: DRY_RUN="false" ./scripts/go.sh "1.20" +# Usage: DRY_RUN="false" ./scripts/bump-go.sh "1.20" readonly CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" readonly DRY_RUN="${DRY_RUN:-true}" @@ -62,10 +62,13 @@ function bumpCIMatrix() { if [[ "${DRY_RUN}" == "true" ]]; then echo "sed \"s/go-version: \[${oldGoVersion}/go-version: \[${newGoVersion}/g\" ${file} > ${file}.tmp" + echo "sed \"s/go-version: \\"${oldGoVersion}.x\"/go-version: \\"${newGoVersion}.x\"/g\" ${file}.tmp > ${file}.tmp" echo "mv ${file}.tmp ${file}" else sed "s/go-version: \[${oldGoVersion}/go-version: \[${newGoVersion}/g" ${file} > ${file}.tmp mv ${file}.tmp ${file} + sed "s/go-version: \"${oldGoVersion}\.x\"/go-version: \"${newGoVersion}\.x\"/g" ${file} > ${file}.tmp + mv ${file}.tmp ${file} fi } @@ -92,10 +95,16 @@ function bumpGolangDockerImages() { if [[ "${DRY_RUN}" == "true" ]]; then echo "sed \"s/golang:${oldGoVersion}/golang:${newGoVersion}/g\" ${file} > ${file}.tmp" + echo "sed \"s/golang: ${oldGoVersion}/golang: ${newGoVersion}/g\" ${file}.tmp > ${file}.tmp" + echo "sed \"s/- \\"${oldGoVersion}\\"/- \\"${newGoVersion}\\"/g\" ${file}.tmp > ${file}.tmp" echo "mv ${file}.tmp ${file}" else sed "s/golang:${oldGoVersion}/golang:${newGoVersion}/g" ${file} > ${file}.tmp mv ${file}.tmp ${file} + sed "s/golang: ${oldGoVersion}/golang: ${newGoVersion}/g" ${file} > ${file}.tmp + mv ${file}.tmp ${file} + sed "s/- \"${oldGoVersion}\"/- \"${newGoVersion}\"/g" ${file} > ${file}.tmp + mv ${file}.tmp ${file} fi } diff --git a/wait/testdata/go.mod b/wait/testdata/go.mod index e1a0955de6..0b51175838 100644 --- a/wait/testdata/go.mod +++ b/wait/testdata/go.mod @@ -1,3 +1,3 @@ module httptest -go 1.20 +go 1.21 From 5567a76d3e55279ba81dc1bdf5140ab3388efb85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 16:03:23 +0100 Subject: [PATCH 042/115] chore(deps): bump github.com/nats-io/nats.go in /modules/nats (#2253) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/nats-io/nats.go](https://github.com/nats-io/nats.go) from 1.32.0 to 1.33.1. - [Release notes](https://github.com/nats-io/nats.go/releases) - [Commits](https://github.com/nats-io/nats.go/compare/v1.32.0...v1.33.1) --- updated-dependencies: - dependency-name: github.com/nats-io/nats.go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- modules/nats/go.mod | 2 +- modules/nats/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 73215b048d..a4f21ff1ac 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/nats go 1.21 require ( - github.com/nats-io/nats.go v1.32.0 + github.com/nats-io/nats.go v1.33.1 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/nats/go.sum b/modules/nats/go.sum index 3bfcd62984..e908d6d461 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -70,8 +70,8 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/nats-io/nats.go v1.32.0 h1:Bx9BZS+aXYlxW08k8Gd3yR2s73pV5XSoAQUyp1Kwvp0= -github.com/nats-io/nats.go v1.32.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= +github.com/nats-io/nats.go v1.33.1 h1:8TxLZZ/seeEfR97qV0/Bl939tpDnt2Z2fK3HkPypj70= +github.com/nats-io/nats.go v1.33.1/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= From bf87aee46d202a4f9447fdbf9018c9cc673b2670 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 1 Mar 2024 16:46:25 +0100 Subject: [PATCH 043/115] chore(deps): bump google.golang.org/grpc from 1.61.1 to 1.62.0 in /modules/gcloud, google.golang.org/api from 0.165.0 to 0.167.0 in /modules/gcloud, cloud.google.com/go/pubsub from 1.36.1 to 1.36.2 in /modules/gcloud (#2293) * chore(deps): bump cloud.google.com/go/pubsub in /modules/gcloud Bumps [cloud.google.com/go/pubsub](https://github.com/googleapis/google-cloud-go) from 1.36.1 to 1.36.2. - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/pubsub/v1.36.1...pubsub/v1.36.2) --- updated-dependencies: - dependency-name: cloud.google.com/go/pubsub dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/api in /modules/gcloud Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.165.0 to 0.167.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.165.0...v0.167.0) --- updated-dependencies: - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/grpc in /modules/gcloud Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.61.1 to 1.62.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.61.1...v1.62.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/gcloud/go.mod | 26 ++++++++++---------- modules/gcloud/go.sum | 56 +++++++++++++++++++++---------------------- 2 files changed, 41 insertions(+), 41 deletions(-) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index aafb72b048..c015e1da38 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -7,17 +7,17 @@ require ( cloud.google.com/go/bigtable v1.21.0 cloud.google.com/go/datastore v1.15.0 cloud.google.com/go/firestore v1.14.0 - cloud.google.com/go/pubsub v1.36.1 + cloud.google.com/go/pubsub v1.36.2 cloud.google.com/go/spanner v1.57.0 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 - google.golang.org/api v0.165.0 - google.golang.org/grpc v1.61.1 + google.golang.org/api v0.167.0 + google.golang.org/grpc v1.62.0 ) require ( cloud.google.com/go v0.112.0 // indirect - cloud.google.com/go/compute v1.23.3 // indirect + cloud.google.com/go/compute v1.24.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/longrunning v0.5.5 // indirect @@ -30,15 +30,15 @@ require ( github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe // indirect - github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101 // indirect + github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa // indirect github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/docker v25.0.2+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/envoyproxy/go-control-plane v0.11.1 // indirect - github.com/envoyproxy/protoc-gen-validate v1.0.2 // indirect + github.com/envoyproxy/go-control-plane v0.12.0 // indirect + github.com/envoyproxy/protoc-gen-validate v1.0.4 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -51,7 +51,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.0 // indirect + github.com/googleapis/gax-go/v2 v2.12.1 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect @@ -77,8 +77,8 @@ require ( github.com/yusufpapurcu/wmi v1.2.3 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 // indirect go.opentelemetry.io/otel v1.23.0 // indirect go.opentelemetry.io/otel/metric v1.23.0 // indirect go.opentelemetry.io/otel/trace v1.23.0 // indirect @@ -94,9 +94,9 @@ require ( golang.org/x/tools v0.14.0 // indirect golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014 // indirect + google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect google.golang.org/protobuf v1.32.0 // indirect ) diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 0b7da517d2..208d404270 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -5,8 +5,8 @@ cloud.google.com/go/bigquery v1.59.1 h1:CpT+/njKuKT3CEmswm6IbhNu9u35zt5dO4yPDLW+ cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= cloud.google.com/go/bigtable v1.21.0 h1:BFN4jhkA9ULYYV2Ug7AeOtetVLnN2jKuIq5TcRc5C38= cloud.google.com/go/bigtable v1.21.0/go.mod h1:V0sYNRtk0dgAKjyRr/MyBpHpSXqh+9P39euf820EZ74= -cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= -cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= +cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= +cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datacatalog v1.19.3 h1:A0vKYCQdxQuV4Pi0LL9p39Vwvg4jH5yYveMv50gU5Tw= @@ -17,12 +17,12 @@ cloud.google.com/go/firestore v1.14.0 h1:8aLcKnMPoldYU3YHgu4t2exrKhLQkqaXAGqT0lj cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= -cloud.google.com/go/kms v1.15.5 h1:pj1sRfut2eRbD9pFRjNnPNg/CzJPuQAzUujMIM1vVeM= -cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= +cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= +cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= -cloud.google.com/go/pubsub v1.36.1 h1:dfEPuGCHGbWUhaMCTHUFjfroILEkx55iUmKBZTP5f+Y= -cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= +cloud.google.com/go/pubsub v1.36.2 h1:nAUD4aiWHZFYyINhRag1qOnHUk0/7QiWEa04XWnqACA= +cloud.google.com/go/pubsub v1.36.2/go.mod h1:mHCFLNG8abCrPzhuOnpBcr9DUy+l3/LWWn0qoJdbh1w= cloud.google.com/go/spanner v1.57.0 h1:fJq+ZfQUDHE+cy1li0bJA8+sy2oiSGhuGqN5nqVaZdU= cloud.google.com/go/spanner v1.57.0/go.mod h1:aXQ5QDdhPRIqVhYmnkAdwPYvj/DRN0FguclhEWw+jOo= cloud.google.com/go/storage v1.37.0 h1:WI8CsaFO8Q9KjPVtsZ5Cmi0dXV25zMoX0FklT7c3Jm4= @@ -52,8 +52,8 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe h1:QQ3GSy+MqSHxm/d8nCtnAiZdYFd45cYZPs8vOOIYKfk= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101 h1:7To3pQ+pZo0i3dsWEbinPNFs5gPSBOsJtx3wTT94VBY= -github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ= +github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= @@ -76,11 +76,11 @@ github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.11.1 h1:wSUXTlLfiAQRWs2F+p+EKOY9rUyis1MyGqJ2DIk5HpM= -github.com/envoyproxy/go-control-plane v0.11.1/go.mod h1:uhMcXKCQMEJHiAb0w+YGefQLaTEw+YhGluxZkrTmD0g= +github.com/envoyproxy/go-control-plane v0.12.0 h1:4X+VP1GHd1Mhj6IB5mMeGbLCleqxjletLK6K0rbxyZI= +github.com/envoyproxy/go-control-plane v0.12.0/go.mod h1:ZBTaoJ23lqITozF0M6G4/IragXCQKCnYbmlmtHvwRG0= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= -github.com/envoyproxy/protoc-gen-validate v1.0.2/go.mod h1:GpiZQP3dDbg4JouG/NNS7QWXpgx6x8QiMKdmN72jogE= +github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= +github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -137,8 +137,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= -github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gax-go/v2 v2.12.1 h1:9F8GV9r9ztXyAi00gsMQHNoF51xPZm8uj1dpYt2ZETM= +github.com/googleapis/gax-go/v2 v2.12.1/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -217,10 +217,10 @@ go.einride.tech/aip v0.66.0 h1:XfV+NQX6L7EOYK11yoHHFtndeaWh3KbD9/cN/6iWEt8= go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 h1:P+/g8GpuJGYbOp2tAdKrIPUX9JO02q8Q0YNlHolpibA= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0/go.mod h1:tIKj3DbO8N9Y2xo52og3irLsPI4GW02DSMtrVgNMgxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 h1:doUP+ExOpH3spVTLS0FcWGLnQrPct/hD/bCPbDRUEAU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA= go.opentelemetry.io/otel v1.23.0 h1:Df0pqjqExIywbMCMTxkAwzjLZtRf+bBKLbUcpxO2C9E= go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= @@ -323,8 +323,8 @@ golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSm golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= -google.golang.org/api v0.165.0 h1:zd5d4JIIIaYYsfVy1HzoXYZ9rWCSBxxAglbczzo7Bgc= -google.golang.org/api v0.165.0/go.mod h1:2OatzO7ZDQsoS7IFf3rvsE17/TldiU3F/zxFHeqUB5o= +google.golang.org/api v0.167.0 h1:CKHrQD1BLRii6xdkatBDXyKzM0mkawt2QP+H3LtPmSE= +google.golang.org/api v0.167.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= @@ -332,19 +332,19 @@ google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe h1:USL2DhxfgRchafRvt/wYyyQNzwgL7ZiURcozOE/Pkvo= -google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= -google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 h1:x9PwdEgd11LgK+orcck69WVRo7DezSO4VUMPI4xpc8A= -google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014 h1:FSL3lRCkhaPFxqi0s9o+V4UI2WTzAVOvkgbd4kVV4Wg= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014/go.mod h1:SaPjaZGWb0lPqs6Ittu0spdfrOArqji4ZdeP5IC/9N4= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c h1:9g7erC9qu44ks7UK4gDNlnk4kOxZG707xKm4jVniy6o= +google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 h1:hZB7eLIaYlW9qXRfCq/qDaPdbeY3757uARz5Vvfv+cY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= -google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From a7801287ead261f5822a9eee459b466cc7749e15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 10:20:35 +0100 Subject: [PATCH 044/115] chore(deps): bump github.com/amikos-tech/chroma-go in /modules/chroma (#2275) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/amikos-tech/chroma-go](https://github.com/amikos-tech/chroma-go) from 0.0.0-20240109142503-c8fb49c3e28c to 0.0.1. - [Release notes](https://github.com/amikos-tech/chroma-go/releases) - [Commits](https://github.com/amikos-tech/chroma-go/commits/v0.0.1) --- updated-dependencies: - dependency-name: github.com/amikos-tech/chroma-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- modules/chroma/go.mod | 2 +- modules/chroma/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index fee134b88f..0524beab83 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/chroma go 1.21 require ( - github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c + github.com/amikos-tech/chroma-go v0.0.1 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 8812d9a54d..82156376bd 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -8,8 +8,8 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c h1:DzSXJSUVK5ed+HhAnGA1TKgBdXqAW/iXPRvpd9rXWLc= -github.com/amikos-tech/chroma-go v0.0.0-20240109142503-c8fb49c3e28c/go.mod h1:uJwgGN4rBUTMI88Rn68Xia+cTRogOo0/elcPvJYFtBU= +github.com/amikos-tech/chroma-go v0.0.1 h1:yWgl6YUhM+kXuH82DR9Q8dWddcjgaFuFPk+MtWNreqE= +github.com/amikos-tech/chroma-go v0.0.1/go.mod h1:uJwgGN4rBUTMI88Rn68Xia+cTRogOo0/elcPvJYFtBU= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= From 666151c2b917d3a1949097cbe567d8b2c0f72738 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 13:06:36 +0100 Subject: [PATCH 045/115] chore(deps): bump github.com/microsoft/go-mssqldb in /modules/mssql (#2288) Bumps [github.com/microsoft/go-mssqldb](https://github.com/microsoft/go-mssqldb) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/microsoft/go-mssqldb/releases) - [Changelog](https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md) - [Commits](https://github.com/microsoft/go-mssqldb/compare/v1.6.0...v1.7.0) --- updated-dependencies: - dependency-name: github.com/microsoft/go-mssqldb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/mssql/go.mod | 4 ++-- modules/mssql/go.sum | 44 ++++++++++++++++++++++---------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index 42cd70b856..e6a9ba4c49 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/mssql go 1.21 require ( - github.com/microsoft/go-mssqldb v1.6.0 + github.com/microsoft/go-mssqldb v1.7.0 github.com/testcontainers/testcontainers-go v0.28.0 ) @@ -51,7 +51,7 @@ require ( go.opentelemetry.io/otel v1.19.0 // indirect go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index b525415022..d932541f03 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -2,20 +2,20 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0/go.mod h1:Q28U+75mpCaSCDowNEmhIo/rmgdkqmkmzI7N6TGR4UY= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= -github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0/go.mod h1:cw4zVQgBby0Z5f2v0itn6se2dDP17nTjbZFXW5uPyHA= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1 h1:MyVTgWR8qd/Jw1Le0NZebGBUCLbtak3bJ3z1OlqZBpw= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.1/go.mod h1:GpPjLhVR9dnUoJMyHWSPy71xY9/lcmpzIPZXmF0FCVY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0 h1:D3occbWoio4EBLkbkevetNMAVX197GkzbUMtqjGWn80= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.0.0/go.mod h1:bTSOgj05NGRuHHhQwAdPnYr9TOdNmKlZTgGLL6nyAdI= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= -github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= @@ -52,8 +52,8 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= -github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= +github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= @@ -80,8 +80,8 @@ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= -github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= +github.com/microsoft/go-mssqldb v1.7.0 h1:sgMPW0HA6Ihd37Yx0MzHyKD726C2kY/8KJsQtXHNaAs= +github.com/microsoft/go-mssqldb v1.7.0/go.mod h1:kOvZKUdrhhFQmxLZqbwUV0rHkNkZpthMITIb2Ko1IoA= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= @@ -96,8 +96,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -147,8 +147,8 @@ go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v8 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -159,8 +159,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= From 00a1feac9f9353883fd212b9759a9a2bf761978f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 4 Mar 2024 13:21:13 +0100 Subject: [PATCH 046/115] chore(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#2295) * chore(deps): bump github.com/stretchr/testify in /modules/clickhouse Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore: run mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/nginx/go.sum | 3 ++- examples/toxiproxy/go.sum | 3 ++- go.mod | 2 +- go.sum | 3 ++- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 3 ++- modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 3 ++- modules/chroma/go.sum | 3 ++- modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 3 ++- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 3 ++- modules/compose/go.mod | 2 +- modules/compose/go.sum | 3 ++- modules/consul/go.mod | 2 +- modules/consul/go.sum | 6 ++++-- modules/couchbase/go.sum | 3 ++- modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 3 ++- modules/gcloud/go.sum | 3 ++- modules/inbucket/go.sum | 3 ++- modules/k3s/go.sum | 3 ++- modules/k6/go.sum | 3 ++- modules/kafka/go.sum | 3 ++- modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 3 ++- modules/mariadb/go.sum | 3 ++- modules/milvus/go.sum | 3 ++- modules/minio/go.sum | 3 ++- modules/mockserver/go.sum | 3 ++- modules/mongodb/go.sum | 3 ++- modules/mssql/go.sum | 3 ++- modules/mysql/go.sum | 3 ++- modules/nats/go.sum | 3 ++- modules/neo4j/go.sum | 3 ++- modules/openldap/go.sum | 3 ++- modules/opensearch/go.sum | 3 ++- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 3 ++- modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 6 ++++-- modules/qdrant/go.sum | 3 ++- modules/rabbitmq/go.sum | 3 ++- modules/redis/go.mod | 2 +- modules/redis/go.sum | 3 ++- modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 3 ++- modules/vault/go.mod | 2 +- modules/vault/go.sum | 3 ++- modules/weaviate/go.sum | 3 ++- 51 files changed, 92 insertions(+), 53 deletions(-) diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index 0a9b818242..b4e5892c7c 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -94,8 +94,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index 2baed0fa1d..fed34e125a 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -110,8 +110,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/go.mod b/go.mod index 27f16311a1..60222f9abb 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,7 @@ require ( github.com/moby/term v0.5.0 github.com/opencontainers/image-spec v1.1.0 github.com/shirou/gopsutil/v3 v3.23.12 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea golang.org/x/sys v0.16.0 ) diff --git a/go.sum b/go.sum index 79712a0171..19450ecb94 100644 --- a/go.sum +++ b/go.sum @@ -107,8 +107,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index c01fb3abe8..716d1fb649 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/go-stomp/stomp/v3 v3.0.5 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index 45b1c5a81b..31304a4b9c 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -106,8 +106,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index a0ea28ff3e..5bc20e59ed 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/gocql/gocql v1.6.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index 60b6ef6a26..b61983e07d 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -113,8 +113,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 82156376bd..82bc4d52db 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -98,8 +98,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 980108f02c..65e3591f3a 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -6,7 +6,7 @@ require ( github.com/ClickHouse/clickhouse-go/v2 v2.18.0 github.com/cenkalti/backoff/v4 v4.2.1 github.com/docker/go-connections v0.5.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index aabea68d41..1df61f8999 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -126,8 +126,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 99e6c515b1..8fcbffab61 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/jackc/pgx/v5 v5.5.3 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index f5836689c1..7c133c1333 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -110,8 +110,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index 3b983e47a2..de4f3e2698 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -10,7 +10,7 @@ require ( github.com/docker/compose/v2 v2.24.3 github.com/docker/docker v25.0.2+incompatible github.com/google/uuid v1.6.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/sync v0.6.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/modules/compose/go.sum b/modules/compose/go.sum index da00c260a5..1752bf596b 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -481,8 +481,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/theupdateframework/notary v0.7.0 h1:QyagRZ7wlSpjT5N2qQAh/pN+DVqgekv4DzbAiAiEL3c= github.com/theupdateframework/notary v0.7.0/go.mod h1:c9DRxcmhHmVLDay4/2fUYdISnHqbFDGRSlXPO0AhYWw= github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 h1:QB54BJwA6x8QU9nHY3xJSZR2kX9bgpZekRKGkLTmEXA= diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 8aed5c13e9..32f406cb2f 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/hashicorp/consul/api v1.27.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 13a41ee5c7..67bbe2cd6d 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -242,8 +242,9 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -251,8 +252,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index de4b698d54..1118e83e14 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -145,8 +145,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index e08ee8bf6e..09202d00d5 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/elastic/go-elasticsearch/v8 v8.11.1 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/mod v0.14.0 ) diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index be4ea4bf00..0b1ff5f0a8 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -105,8 +105,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 208d404270..928993ca21 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -198,8 +198,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index 044d872ad2..70c82bb50c 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -98,8 +98,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index 57eed07e7a..edb5471585 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -145,8 +145,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/k6/go.sum b/modules/k6/go.sum index 0a9b818242..b4e5892c7c 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -94,8 +94,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index d52e8ab76f..bbeeaa1cc9 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -134,8 +134,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 08d7ec6ada..f63ef8f5b8 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -10,7 +10,7 @@ require ( github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/mod v0.12.0 ) diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index 3aead3e476..bcefa9e68f 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -143,8 +143,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index a9eac70900..da7321c280 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -96,8 +96,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index a5ad9b5e8e..a9e102e3da 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -277,8 +277,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= diff --git a/modules/minio/go.sum b/modules/minio/go.sum index 43fa3d9868..6a6262988b 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -116,8 +116,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index a22a4763c5..2b5cc18429 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -98,8 +98,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 47fc8f9450..67ff476f30 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -100,8 +100,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index d932541f03..d2993b1d36 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -118,8 +118,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index a9eac70900..da7321c280 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -96,8 +96,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/nats/go.sum b/modules/nats/go.sum index e908d6d461..823765ab6d 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -100,8 +100,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index f357dab649..29754eddc9 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -96,8 +96,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index 38849c149a..050096a2b6 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -103,8 +103,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index 0a9b818242..b4e5892c7c 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -94,8 +94,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 52979b7cc8..8992219f86 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/jackc/pgx/v5 v5.5.3 github.com/lib/pq v1.10.9 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index c97bb667dc..3600b59852 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -112,8 +112,9 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 6181698008..f69defc3cb 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -6,7 +6,7 @@ require ( github.com/apache/pulsar-client-go v0.10.0 github.com/docker/docker v25.0.2+incompatible github.com/docker/go-connections v0.5.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index 0b154bc8e5..4cd543ea0e 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -332,8 +332,9 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -341,8 +342,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index 6fb82fbc3e..6395412365 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -96,8 +96,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index 92d3dcf58d..1e77fd8410 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -99,8 +99,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 755036f7a3..1ebebb3275 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/redis/go.sum b/modules/redis/go.sum index c59341d4eb..35e84ec7b1 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -115,8 +115,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 0689f5174b..f5f9f1cb3e 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 github.com/twmb/franz-go v1.15.4 github.com/twmb/franz-go/pkg/kadm v1.10.0 diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index 8f438f5f61..1182ee1deb 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -103,8 +103,9 @@ github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpE github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index d5c1927759..b042598277 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.2+incompatible github.com/hashicorp/vault-client-go v0.3.3 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 github.com/tidwall/gjson v1.17.0 ) diff --git a/modules/vault/go.sum b/modules/vault/go.sum index 1d9aeb98f8..ca4b2414e4 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -123,8 +123,9 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index 9131bce56c..0572e9b787 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -207,8 +207,9 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= From badc3e6e7a66feee153cc75be06ee5f727106a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 4 Mar 2024 17:05:32 +0100 Subject: [PATCH 047/115] chore(deps): bump github.com/couchbase/gocb/v2 from 2.7.1 to 2.7.2 in /modules/couchbase, github.com/tidwall/gjson from 1.17.0 to 1.17.1 in /modules/couchbase (#2297) * chore(deps): bump github.com/couchbase/gocb/v2 in /modules/couchbase Bumps [github.com/couchbase/gocb/v2](https://github.com/couchbase/gocb) from 2.7.1 to 2.7.2. - [Commits](https://github.com/couchbase/gocb/compare/v2.7.1...v2.7.2) --- updated-dependencies: - dependency-name: github.com/couchbase/gocb/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/tidwall/gjson in /modules/couchbase Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.17.0 to 1.17.1. - [Commits](https://github.com/tidwall/gjson/compare/v1.17.0...v1.17.1) --- updated-dependencies: - dependency-name: github.com/tidwall/gjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/couchbase/go.mod | 14 +++++++------- modules/couchbase/go.sum | 38 +++++++++++++++++++------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index ae8d4afeb5..d8b1c40382 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -6,10 +6,10 @@ toolchain go1.21.7 require ( github.com/cenkalti/backoff/v4 v4.2.1 - github.com/couchbase/gocb/v2 v2.7.1 + github.com/couchbase/gocb/v2 v2.7.2 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 - github.com/tidwall/gjson v1.17.0 + github.com/tidwall/gjson v1.17.1 ) require ( @@ -19,9 +19,9 @@ require ( github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/couchbase/gocbcore/v10 v10.3.1 // indirect - github.com/couchbase/gocbcoreps v0.1.1 // indirect - github.com/couchbase/goprotostellar v1.0.1 // indirect + github.com/couchbase/gocbcore/v10 v10.3.2 // indirect + github.com/couchbase/gocbcoreps v0.1.2 // indirect + github.com/couchbase/goprotostellar v1.0.2 // indirect github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect @@ -68,8 +68,8 @@ require ( golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.10.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect - google.golang.org/grpc v1.60.1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/grpc v1.61.1 // indirect google.golang.org/protobuf v1.32.0 // indirect ) diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index 1118e83e14..3e6fe4fb57 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -20,14 +20,14 @@ github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMP github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/couchbase/gocb/v2 v2.7.1 h1:Wy5IufpGWDStErhe9bNxXdiHpXf4LIhEpWnR7gJcme0= -github.com/couchbase/gocb/v2 v2.7.1/go.mod h1:tn/jNMSMGwEB2Dd1uHW/aTwScx1lXZqb9oM0zyWeEUg= -github.com/couchbase/gocbcore/v10 v10.3.1 h1:dx+lub02eDYiQXavtF0EwYMppVUcbjCxAAqa6/nQldg= -github.com/couchbase/gocbcore/v10 v10.3.1/go.mod h1:lYQIIk+tzoMcwtwU5GzPbDdqEkwkH3isI2rkSpfL0oM= -github.com/couchbase/gocbcoreps v0.1.1 h1:H5Q/TVmRqEpcdTDlepwAmLW7cemP9Di6Lp91Qa9oz1A= -github.com/couchbase/gocbcoreps v0.1.1/go.mod h1:tpbHglpBO7DZZmr8XhHe7INj5VJcJ3i+41Ktep9lejI= -github.com/couchbase/goprotostellar v1.0.1 h1:mtDVYTgnnDSQ3t7mQRG6jl/tOXKOuuFM9PakqC1qhCY= -github.com/couchbase/goprotostellar v1.0.1/go.mod h1:gs1eioLVOHETTFWxDY4v7Q/kRPMgqmX6t/TPcI429ls= +github.com/couchbase/gocb/v2 v2.7.2 h1:muQZoLLnlaGInNIhqgEmDdyGhlVJ269aAIXa8rp14pA= +github.com/couchbase/gocb/v2 v2.7.2/go.mod h1:majhVAf32ALdJLdsGYL9pEedvfC+w9S+00+KnxEivbI= +github.com/couchbase/gocbcore/v10 v10.3.2 h1:Z1jIJSj2tCqQhd+Uwa4gKqHbCVJ8Mizw6zxX6XsAjPA= +github.com/couchbase/gocbcore/v10 v10.3.2/go.mod h1:lYQIIk+tzoMcwtwU5GzPbDdqEkwkH3isI2rkSpfL0oM= +github.com/couchbase/gocbcoreps v0.1.2 h1:wlGyyMnkWpCNOlTtfy8UG+8XZsFtqTJtPXz63+QKC58= +github.com/couchbase/gocbcoreps v0.1.2/go.mod h1:33hSdOKnrUVaBqw4+RiqW+2JoD8ylkbvqm89Wg81uXk= +github.com/couchbase/goprotostellar v1.0.2 h1:yoPbAL9sCtcyZ5e/DcU5PRMOEFaJrF9awXYu3VPfGls= +github.com/couchbase/goprotostellar v1.0.2/go.mod h1:5/yqVnZlW2/NSbAWu1hPJCFBEwjxgpe0PFFOlRixnp4= github.com/couchbaselabs/gocaves/client v0.0.0-20230307083111-cc3960c624b1/go.mod h1:AVekAZwIY2stsJOMWLAS/0uA/+qdp7pjO8EHnl61QkY= github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259 h1:2TXy68EGEzIMHOx9UvczR5ApVecwCfQZ0LjkmwMI6g4= github.com/couchbaselabs/gocaves/client v0.0.0-20230404095311-05e3ba4f0259/go.mod h1:AVekAZwIY2stsJOMWLAS/0uA/+qdp7pjO8EHnl61QkY= @@ -148,8 +148,8 @@ github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= -github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.17.1 h1:wlYEnwqAHgzmhNUFfw7Xalt2JzQvsMx2Se4PcoFCT/U= +github.com/tidwall/gjson v1.17.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= @@ -218,8 +218,8 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -261,18 +261,18 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= -google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= +google.golang.org/genproto v0.0.0-20240205150955-31a09d347014 h1:g/4bk7P6TPMkAUbUhquq98xey1slwvuVJPosdBqYJlU= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= +google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 h1:hZB7eLIaYlW9qXRfCq/qDaPdbeY3757uARz5Vvfv+cY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU= -google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= +google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= From e6d6659f0de8a146c8cc1d69d9f67aa7a1e85387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 4 Mar 2024 17:11:12 +0100 Subject: [PATCH 048/115] chore(deps): bump github.com/docker/docker from 25.0.2+incompatible to 25.0.3+incompatible (#2296) * chore(deps): bump github.com/docker/docker in /modules/k6 Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.2+incompatible to 25.0.3+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.2...v25.0.3) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/pulsar Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.2+incompatible to 25.0.3+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.2...v25.0.3) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/opensearch Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.2+incompatible to 25.0.3+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.2...v25.0.3) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/k3s Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.2+incompatible to 25.0.3+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.2...v25.0.3) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.2+incompatible to 25.0.3+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.2...v25.0.3) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore: run mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/nginx/go.mod | 2 +- examples/nginx/go.sum | 4 ++-- examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 4 ++-- modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 4 ++-- modules/chroma/go.mod | 2 +- modules/chroma/go.sum | 4 ++-- modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 4 ++-- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- modules/compose/go.mod | 2 +- modules/compose/go.sum | 4 ++-- modules/consul/go.mod | 2 +- modules/consul/go.sum | 4 ++-- modules/couchbase/go.mod | 2 +- modules/couchbase/go.sum | 4 ++-- modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 4 ++-- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- modules/inbucket/go.mod | 2 +- modules/inbucket/go.sum | 4 ++-- modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 4 ++-- modules/k6/go.mod | 2 +- modules/k6/go.sum | 4 ++-- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 4 ++-- modules/mariadb/go.mod | 2 +- modules/mariadb/go.sum | 4 ++-- modules/milvus/go.mod | 2 +- modules/milvus/go.sum | 4 ++-- modules/minio/go.mod | 2 +- modules/minio/go.sum | 4 ++-- modules/mockserver/go.mod | 2 +- modules/mockserver/go.sum | 4 ++-- modules/mongodb/go.mod | 2 +- modules/mongodb/go.sum | 4 ++-- modules/mssql/go.mod | 2 +- modules/mssql/go.sum | 4 ++-- modules/mysql/go.mod | 2 +- modules/mysql/go.sum | 4 ++-- modules/nats/go.mod | 2 +- modules/nats/go.sum | 4 ++-- modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 4 ++-- modules/openldap/go.mod | 2 +- modules/openldap/go.sum | 4 ++-- modules/opensearch/go.mod | 2 +- modules/opensearch/go.sum | 4 ++-- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 4 ++-- modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 4 ++-- modules/qdrant/go.mod | 2 +- modules/qdrant/go.sum | 4 ++-- modules/rabbitmq/go.mod | 2 +- modules/rabbitmq/go.sum | 4 ++-- modules/redis/go.mod | 2 +- modules/redis/go.sum | 4 ++-- modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 4 ++-- modules/vault/go.mod | 2 +- modules/vault/go.sum | 4 ++-- modules/weaviate/go.mod | 2 +- modules/weaviate/go.sum | 4 ++-- 74 files changed, 111 insertions(+), 111 deletions(-) diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 843ad455d6..1ca398eb1d 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -16,7 +16,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index b4e5892c7c..19f4d010a9 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 9fc6c4ff01..207b1ee828 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -21,7 +21,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index fed34e125a..62ff4f892a 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -29,8 +29,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/go.mod b/go.mod index 60222f9abb..c9be18cd5b 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/containerd/containerd v1.7.12 github.com/cpuguy83/dockercfg v0.3.1 - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/docker/go-units v0.5.0 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 19450ecb94..bb425f7e2f 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 716d1fb649..246944a74a 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index 31304a4b9c..a806c85223 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index 5bc20e59ed..e0ebeb2757 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index b61983e07d..621a31bf48 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index 0524beab83..962cd60114 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 82bc4d52db..36176e8314 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 65e3591f3a..795da5bd80 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-faster/city v1.0.1 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index 1df61f8999..88715573a1 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -29,8 +29,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 8fcbffab61..abf3602b6d 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 7c133c1333..a194a40962 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index de4f3e2698..1ee469130d 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -8,7 +8,7 @@ require ( github.com/compose-spec/compose-go/v2 v2.0.0-rc.2 github.com/docker/cli v25.0.1+incompatible github.com/docker/compose/v2 v2.24.3 - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/compose/go.sum b/modules/compose/go.sum index 1752bf596b..f08410b966 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -131,8 +131,8 @@ github.com/docker/compose/v2 v2.24.3/go.mod h1:D8Nv9+juzD7xiMyyHJ7G2J/MOYiGBmb9S github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 32f406cb2f..5c5a97e673 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/fatih/color v1.14.1 // indirect diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 67bbe2cd6d..406e1545e4 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -42,8 +42,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index d8b1c40382..6ce2af5689 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -25,7 +25,7 @@ require ( github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index 3e6fe4fb57..f1b4f40cad 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -42,8 +42,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 09202d00d5..64cee24b58 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/elastic/elastic-transport-go/v8 v8.3.0 // indirect diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index 0b1ff5f0a8..efd17a4917 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index c015e1da38..c54a8ac0cf 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -35,7 +35,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/envoyproxy/go-control-plane v0.12.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.0.4 // indirect diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 928993ca21..4e7f548e2b 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -67,8 +67,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 8d8318f0c9..ac17856798 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index 70c82bb50c..2501daef1b 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index 1a81e4d6a6..dc5498bcbe 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/k3s go 1.21 require ( - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 gopkg.in/yaml.v3 v3.0.1 diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index edb5471585..51c101eac4 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 6c91b55758..1a2115581c 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/k6 go 1.21 require ( - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/k6/go.sum b/modules/k6/go.sum index b4e5892c7c..19f4d010a9 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index c7e5ca4721..e11764fb4e 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index bbeeaa1cc9..0b3441455f 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index f63ef8f5b8..d2bdf4f753 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.26.3 github.com/aws/aws-sdk-go-v2/credentials v1.16.14 github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index bcefa9e68f..2a14078a23 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -61,8 +61,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index c4a2fc9cb8..c021a5cd4d 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index da7321c280..51de53427a 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index 8b1b743c10..bdd975f97b 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -20,7 +20,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index a9e102e3da..9d0db6ff33 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -52,8 +52,8 @@ github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6ps github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index f2a8b6ebde..46370d7289 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect diff --git a/modules/minio/go.sum b/modules/minio/go.sum index 6a6262988b..b8c71727a6 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index 7e6bd3ff25..ff4533e0fb 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index 2b5cc18429..927ccb21a5 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index d2f7f4927e..0cfc2e1130 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 67ff476f30..229dcdb9b5 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index e6a9ba4c49..af71fc0b7f 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index d2993b1d36..d7a3828a7a 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -35,8 +35,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index e7f4438d38..413bb4ad35 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index da7321c280..51de53427a 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index a4f21ff1ac..8fe1591228 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/nats/go.sum b/modules/nats/go.sum index 823765ab6d..fd440b1998 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index 7c4c2f1ebc..9b45a01af5 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 29754eddc9..6a809b97e7 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index a4898a91b7..7ed268299e 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index 050096a2b6..899455b7fa 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 28d023468c..7f4cb078a6 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/opensearch go 1.21 require ( - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/docker/go-units v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index b4e5892c7c..19f4d010a9 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 8992219f86..9c87a8a057 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index 3600b59852..d51f6e86b6 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index f69defc3cb..303d3fdaaa 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/apache/pulsar-client-go v0.10.0 - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index 4cd543ea0e..feca1602e7 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -98,8 +98,8 @@ github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4w github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 522291d383..7350b59dec 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index 6395412365..cf65b88eb9 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index 6115bc4b15..6c64385151 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index 1e77fd8410..fbae211e50 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 1ebebb3275..02b60c73bf 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -25,7 +25,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/redis/go.sum b/modules/redis/go.sum index 35e84ec7b1..5750a9e755 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -27,8 +27,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index f5f9f1cb3e..76ea5957be 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index 1182ee1deb..dc5e108859 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index b042598277..e5513596d1 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/vault go 1.21 require ( - github.com/docker/docker v25.0.2+incompatible + github.com/docker/docker v25.0.3+incompatible github.com/hashicorp/vault-client-go v0.3.3 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/vault/go.sum b/modules/vault/go.sum index ca4b2414e4..24678d1b0d 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index e4f2eb8887..23267b0153 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -20,7 +20,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.2+incompatible // indirect + github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index 0572e9b787..07b16009bc 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -32,8 +32,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.2+incompatible h1:/OaKeauroa10K4Nqavw4zlhcDq/WBcPMc5DbjOGgozY= -github.com/docker/docker v25.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= From cf17a027712480ccfc38666927a4ed052477861f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Mon, 4 Mar 2024 17:26:13 +0100 Subject: [PATCH 049/115] Adding surrealDB module (#2192) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adding surrealDB module * go mod tidy * Replacing panics with log.Fatal * go mod tidy * Fixing linter errors * Addressing PR review comments * chore: bump Go to 1.21 * fix: typo * fix: update comments * docs: document options * fix: wrong copy&paste * fix: wrong copy&paste * chore: bump testcontainers-go to latest * chore: run mod tidy --------- Co-authored-by: Manuel de la Peña Co-authored-by: Manuel de la Peña --- .github/dependabot.yml | 7 + .github/workflows/ci.yml | 2 +- .vscode/.testcontainers-go.code-workspace | 4 + docs/modules/surrealdb.md | 74 +++++++++ mkdocs.yml | 1 + modules/surrealdb/Makefile | 5 + modules/surrealdb/examples_test.go | 38 +++++ modules/surrealdb/go.mod | 62 +++++++ modules/surrealdb/go.sum | 192 ++++++++++++++++++++++ modules/surrealdb/surrealdb.go | 106 ++++++++++++ modules/surrealdb/surrealdb_test.go | 138 ++++++++++++++++ sonar-project.properties | 2 +- 12 files changed, 629 insertions(+), 2 deletions(-) create mode 100644 docs/modules/surrealdb.md create mode 100644 modules/surrealdb/Makefile create mode 100644 modules/surrealdb/examples_test.go create mode 100644 modules/surrealdb/go.mod create mode 100644 modules/surrealdb/go.sum create mode 100644 modules/surrealdb/surrealdb.go create mode 100644 modules/surrealdb/surrealdb_test.go diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 38b4f4e3fa..81c3348d7e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -268,6 +268,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/surrealdb + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/vault schedule: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b78722a91..28d8257708 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,7 +104,7 @@ jobs: matrix: go-version: [1.21.x, 1.x] platform: [ubuntu-latest] - module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, vault, weaviate] + module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, surrealdb, vault, weaviate] uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} diff --git a/.vscode/.testcontainers-go.code-workspace b/.vscode/.testcontainers-go.code-workspace index 68db0baf8e..83f640d831 100644 --- a/.vscode/.testcontainers-go.code-workspace +++ b/.vscode/.testcontainers-go.code-workspace @@ -141,6 +141,10 @@ "name": "module / redpanda", "path": "../modules/redpanda" }, + { + "name": "module / surrealdb", + "path": "../modules/surrealdb" + }, { "name": "module / vault", "path": "../modules/vault" diff --git a/docs/modules/surrealdb.md b/docs/modules/surrealdb.md new file mode 100644 index 0000000000..2400619404 --- /dev/null +++ b/docs/modules/surrealdb.md @@ -0,0 +1,74 @@ +# SurrealDB + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for SurrealDB. + +## Adding this module to your project dependencies + +Please run the following command to add the SurrealDB module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/surrealdb +``` + +## Usage example + + +[Creating a SurrealDB container](../../modules/surrealdb/examples_test.go) inside_block:runSurrealDBContainer + + +## Module reference + +The SurrealDB module exposes one entrypoint function to create the SurrealDB container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*SurrealDBContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the SurrealDB container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different SurrealDB Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for SurrealDB. E.g. `testcontainers.WithImage("surrealdb/surrealdb:v1.1.1")`. + +{% include "../features/common_functional_options.md" %} + +#### Set username and password + +If you need to set different credentials, you can use `WithUsername` and `WithPassword` options. + +!!!info + The default values for the username and the password is `root`. + +#### WithAuthentication + +If you need to enable authentication, you can use `WithAuthentication` option. By default, it is disabled. + +#### WithStrictMode + +If you need to enable the strict mode for SurrealDB, you can use `WithStrictMode` option. By default, it is disabled. + +### WithAllowAllCaps + +If you need to enable the all caps mode for SurrealDB, you can use `WithAllowAllCaps` option. By default, it is disabled. + +### Container Methods + +The SurrealDB container exposes the following methods: + +#### URL + +This method returns the websocket URL string to connect to the SurrealDB API, using the `8000` port. + + +[Get websocket URL string](../../modules/surrealdb/surrealdb_test.go) inside_block:websocketURL + diff --git a/mkdocs.yml b/mkdocs.yml index e8f46ab676..6a001b5683 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -94,6 +94,7 @@ nav: - modules/rabbitmq.md - modules/redis.md - modules/redpanda.md + - modules/surrealdb.md - modules/vault.md - modules/weaviate.md - Examples: diff --git a/modules/surrealdb/Makefile b/modules/surrealdb/Makefile new file mode 100644 index 0000000000..f2d7c86c22 --- /dev/null +++ b/modules/surrealdb/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-surrealdb diff --git a/modules/surrealdb/examples_test.go b/modules/surrealdb/examples_test.go new file mode 100644 index 0000000000..ad27e3ac0e --- /dev/null +++ b/modules/surrealdb/examples_test.go @@ -0,0 +1,38 @@ +package surrealdb_test + +import ( + "context" + "fmt" + "log" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/surrealdb" +) + +func ExampleRunContainer() { + // runSurrealDBContainer { + ctx := context.Background() + + surrealdbContainer, err := surrealdb.RunContainer(ctx, testcontainers.WithImage("surrealdb/surrealdb:v1.1.1")) + if err != nil { + log.Fatal(err) + } + + // Clean up the container + defer func() { + if err := surrealdbContainer.Terminate(ctx); err != nil { + log.Fatal(err) + } + }() + // } + + state, err := surrealdbContainer.State(ctx) + if err != nil { + log.Fatal(err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} diff --git a/modules/surrealdb/go.mod b/modules/surrealdb/go.mod new file mode 100644 index 0000000000..f3f61a2785 --- /dev/null +++ b/modules/surrealdb/go.mod @@ -0,0 +1,62 @@ +module github.com/testcontainers/testcontainers-go/modules/surrealdb + +go 1.21 + +require ( + github.com/surrealdb/surrealdb.go v0.2.1 + github.com/testcontainers/testcontainers-go v0.28.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.11.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.10.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/surrealdb/go.sum b/modules/surrealdb/go.sum new file mode 100644 index 0000000000..f09c727fe3 --- /dev/null +++ b/modules/surrealdb/go.sum @@ -0,0 +1,192 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/surrealdb/surrealdb.go v0.2.1 h1:E4rCnD75Ftq8/wTgbQ9kJgMACi3xMziXtMlRkm6Jh1g= +github.com/surrealdb/surrealdb.go v0.2.1/go.mod h1:CloW70O49xyVO/rGO9cAZ62FEbl0/hreRHEJuamnndQ= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= +golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= +golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/surrealdb/surrealdb.go b/modules/surrealdb/surrealdb.go new file mode 100644 index 0000000000..04e38b3d75 --- /dev/null +++ b/modules/surrealdb/surrealdb.go @@ -0,0 +1,106 @@ +package surrealdb + +import ( + "context" + "fmt" + "net" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +// SurrealDBContainer represents the SurrealDB container type used in the module +type SurrealDBContainer struct { + testcontainers.Container +} + +// ConnectionString returns the connection string for the OpenLDAP container +func (c *SurrealDBContainer) URL(ctx context.Context) (string, error) { + containerPort, err := c.MappedPort(ctx, "8000/tcp") + if err != nil { + return "", err + } + + host, err := c.Host(ctx) + if err != nil { + return "", err + } + + connStr := fmt.Sprintf("ws://%s/rpc", net.JoinHostPort(host, containerPort.Port())) + return connStr, nil +} + +// WithUser sets the initial username to be created when the container starts +// It is used in conjunction with WithPassword to set a username and its password. +// It will create the specified user with superuser power. +func WithUsername(username string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Env["SURREAL_USER"] = username + } +} + +// WithPassword sets the initial password of the user to be created when the container starts +// It is used in conjunction with WithUsername to set a username and its password. +// It will set the superuser password for SurrealDB. +func WithPassword(password string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Env["SURREAL_PASS"] = password + } +} + +// WithAuthentication enables authentication for the SurrealDB instance +func WithAuthentication() testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Env["SURREAL_AUTH"] = "true" + } +} + +// WithStrict enables strict mode for the SurrealDB instance +func WithStrictMode() testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Env["SURREAL_STRICT"] = "true" + } +} + +// WithAllowAllCaps enables all caps for the SurrealDB instance +func WithAllowAllCaps() testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Env["SURREAL_CAPS_ALLOW_ALL"] = "false" + } +} + +// RunContainer creates an instance of the SurrealDB container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*SurrealDBContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "surrealdb/surrealdb:v1.1.1", + Env: map[string]string{ + "SURREAL_USER": "root", + "SURREAL_PASS": "root", + "SURREAL_AUTH": "false", + "SURREAL_STRICT": "false", + "SURREAL_CAPS_ALLOW_ALL": "false", + "SURREAL_PATH": "memory", + }, + ExposedPorts: []string{"8000/tcp"}, + WaitingFor: wait.ForAll( + wait.ForLog("Started web server on "), + ), + Cmd: []string{"start"}, + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &SurrealDBContainer{Container: container}, nil +} diff --git a/modules/surrealdb/surrealdb_test.go b/modules/surrealdb/surrealdb_test.go new file mode 100644 index 0000000000..27ed38017b --- /dev/null +++ b/modules/surrealdb/surrealdb_test.go @@ -0,0 +1,138 @@ +package surrealdb + +import ( + "context" + "testing" + + "github.com/surrealdb/surrealdb.go" + + "github.com/testcontainers/testcontainers-go" +) + +func TestSurrealDBSelect(t *testing.T) { + ctx := context.Background() + + container, err := RunContainer(ctx, testcontainers.WithImage("surrealdb/surrealdb:v1.1.1")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + url, err := container.URL(ctx) + if err != nil { + t.Fatal(err) + } + + db, err := surrealdb.New(url) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + if _, err := db.Use("test", "test"); err != nil { + t.Fatal(err) + } + + if _, err := db.Create("person.tobie", map[string]any{ + "title": "Founder & CEO", + "name": map[string]string{ + "first": "Tobie", + "last": "Morgan Hitchcock", + }, + "marketing": true, + }); err != nil { + t.Fatal(err) + } + + result, err := db.Select("person.tobie") + if err != nil { + t.Fatal(err) + } + + resultData := result.([]any)[0].(map[string]interface{}) + if resultData["title"] != "Founder & CEO" { + t.Fatal("title is not Founder & CEO") + } + if resultData["name"].(map[string]interface{})["first"] != "Tobie" { + t.Fatal("name.first is not Tobie") + } + if resultData["name"].(map[string]interface{})["last"] != "Morgan Hitchcock" { + t.Fatal("name.last is not Morgan Hitchcock") + } + if resultData["marketing"] != true { + t.Fatal("marketing is not true") + } +} + +func TestSurrealDBWithAuth(t *testing.T) { + ctx := context.Background() + + container, err := RunContainer(ctx, testcontainers.WithImage("surrealdb/surrealdb:v1.1.1"), WithAuthentication()) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + // websocketURL { + url, err := container.URL(ctx) + // } + if err != nil { + t.Fatal(err) + } + + db, err := surrealdb.New(url) + if err != nil { + t.Fatal(err) + } + defer db.Close() + + if _, err := db.Signin(map[string]string{"user": "root", "pass": "root"}); err != nil { + t.Fatal(err) + } + + if _, err := db.Use("test", "test"); err != nil { + t.Fatal(err) + } + + if _, err := db.Create("person.tobie", map[string]any{ + "title": "Founder & CEO", + "name": map[string]string{ + "first": "Tobie", + "last": "Morgan Hitchcock", + }, + "marketing": true, + }); err != nil { + t.Fatal(err) + } + + result, err := db.Select("person.tobie") + if err != nil { + t.Fatal(err) + } + + resultData := result.([]any)[0].(map[string]interface{}) + if resultData["title"] != "Founder & CEO" { + t.Fatal("title is not Founder & CEO") + } + if resultData["name"].(map[string]interface{})["first"] != "Tobie" { + t.Fatal("name.first is not Tobie") + } + if resultData["name"].(map[string]interface{})["last"] != "Morgan Hitchcock" { + t.Fatal("name.last is not Morgan Hitchcock") + } + if resultData["marketing"] != true { + t.Fatal("marketing is not true") + } +} diff --git a/sonar-project.properties b/sonar-project.properties index 7d5aaa6a7e..64bccb0d07 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -18,4 +18,4 @@ sonar.test.inclusions=**/*_test.go sonar.test.exclusions=**/vendor/** sonar.go.coverage.reportPaths=**/coverage.out -sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml +sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/surrealdb/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml From 6a7d02d3d6c7120b2d4aa6a8d1b1c8b1c388588b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 17:44:43 +0100 Subject: [PATCH 050/115] chore(deps): bump github.com/stretchr/testify in /modulegen (#2298) Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0. - [Release notes](https://github.com/stretchr/testify/releases) - [Commits](https://github.com/stretchr/testify/compare/v1.8.4...v1.9.0) --- updated-dependencies: - dependency-name: github.com/stretchr/testify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modulegen/go.mod | 2 +- modulegen/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modulegen/go.mod b/modulegen/go.mod index 9b033d7969..4fac9675ae 100644 --- a/modulegen/go.mod +++ b/modulegen/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/spf13/cobra v1.8.0 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb golang.org/x/mod v0.15.0 golang.org/x/text v0.14.0 diff --git a/modulegen/go.sum b/modulegen/go.sum index 7642f19f1d..2bc563846b 100644 --- a/modulegen/go.sum +++ b/modulegen/go.sum @@ -10,8 +10,8 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb h1:mIKbk8weKhSeLH2GmUTrvx8CjkyJmnU1wFmg59CUjFA= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= From bbb4382889797651826bd499cf04800d88fabc8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 07:44:53 +0100 Subject: [PATCH 051/115] feat: add ollama module (#2265) * chore: bootstrap ollama module * feat: enrich Ollama container with opts * chore: automatically detect GPU support * chore: skip example on CI * chore: mod tidy * fix: lint * fix: handle error * fix: first pull the model * chore: remove prompt capabilities by now * fix: wait for the container more time * chore: run mod tidy * feat: support commiting the image for speeding up the containers * fix: typo * chore: bump docker/docker * chore: delegate the creation of the target image to the user * chore: test the new container * chore: extract assertions to a function * chore: go mod tidy * chore: do not couple implementation with the ollama CLI --- .github/dependabot.yml | 7 + .github/workflows/ci.yml | 2 +- .vscode/.testcontainers-go.code-workspace | 4 + docs/modules/ollama.md | 81 +++++++++ mkdocs.yml | 1 + modules/ollama/Makefile | 5 + modules/ollama/examples_test.go | 169 +++++++++++++++++++ modules/ollama/go.mod | 63 +++++++ modules/ollama/go.sum | 194 ++++++++++++++++++++++ modules/ollama/ollama.go | 100 +++++++++++ modules/ollama/ollama_test.go | 168 +++++++++++++++++++ modules/ollama/options.go | 39 +++++ sonar-project.properties | 2 +- 13 files changed, 833 insertions(+), 2 deletions(-) create mode 100644 docs/modules/ollama.md create mode 100644 modules/ollama/Makefile create mode 100644 modules/ollama/examples_test.go create mode 100644 modules/ollama/go.mod create mode 100644 modules/ollama/go.sum create mode 100644 modules/ollama/ollama.go create mode 100644 modules/ollama/ollama_test.go create mode 100644 modules/ollama/options.go diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 81c3348d7e..f9d98d91c5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -212,6 +212,13 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled + - package-ecosystem: gomod + directory: /modules/ollama + schedule: + interval: monthly + day: sunday + open-pull-requests-limit: 3 + rebase-strategy: disabled - package-ecosystem: gomod directory: /modules/openldap schedule: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 28d8257708..e8d6aa5e7c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,7 +104,7 @@ jobs: matrix: go-version: [1.21.x, 1.x] platform: [ubuntu-latest] - module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, surrealdb, vault, weaviate] + module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, ollama, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, surrealdb, vault, weaviate] uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} diff --git a/.vscode/.testcontainers-go.code-workspace b/.vscode/.testcontainers-go.code-workspace index 83f640d831..35ae35184c 100644 --- a/.vscode/.testcontainers-go.code-workspace +++ b/.vscode/.testcontainers-go.code-workspace @@ -109,6 +109,10 @@ "name": "module / neo4j", "path": "../modules/neo4j" }, + { + "name": "module / ollama", + "path": "../modules/ollama" + }, { "name": "module / openldap", "path": "../modules/openldap" diff --git a/docs/modules/ollama.md b/docs/modules/ollama.md new file mode 100644 index 0000000000..7f750619dc --- /dev/null +++ b/docs/modules/ollama.md @@ -0,0 +1,81 @@ +# Ollama + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Ollama. + +## Adding this module to your project dependencies + +Please run the following command to add the Ollama module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/ollama +``` + +## Usage example + + +[Creating a Ollama container](../../modules/ollama/examples_test.go) inside_block:runOllamaContainer + + +## Module reference + +The Ollama module exposes one entrypoint function to create the Ollama container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*OllamaContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Ollama container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Ollama Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Ollama. E.g. `testcontainers.WithImage("ollama/ollama:0.1.25")`. + +{% include "../features/common_functional_options.md" %} + +### Container Methods + +The Ollama container exposes the following methods: + +#### ConnectionString + +This method returns the connection string to connect to the Ollama container, using the default `11434` port. + + +[Get connection string](../../modules/ollama/ollama_test.go) inside_block:connectionString + + +#### Commit + +This method commits the container to a new image, returning the new image ID. +It should be used after a model has been pulled and loaded into the container in order to create a new image with the model, +and eventually use it as the base image for a new container. That will speed up the execution of the following containers. + + +[Commit Ollama image](../../modules/ollama/ollama_test.go) inside_block:commitOllamaContainer + + +## Examples + +### Loading Models + +It's possible to initialise the Ollama container with a specific model passed as parameter. The supported models are described in the Ollama project: [https://github.com/ollama/ollama?tab=readme-ov-file](https://github.com/ollama/ollama?tab=readme-ov-file) and [https://ollama.com/library](https://ollama.com/library). + +!!!warning + At the moment you use one of those models, the Ollama image will load the model and could take longer to start because of that. + +The following examples use the `llama2` model to connect to the Ollama container using HTTP and Langchain. + + +[Using HTTP](../../modules/ollama/examples_test.go) inside_block:withHTTPModelLlama2 +[Using Langchaingo](../../modules/ollama/examples_test.go) inside_block:withLangchainModelLlama2 + diff --git a/mkdocs.yml b/mkdocs.yml index 6a001b5683..8c331f19b1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -86,6 +86,7 @@ nav: - modules/mysql.md - modules/nats.md - modules/neo4j.md + - modules/ollama.md - modules/openldap.md - modules/opensearch.md - modules/postgres.md diff --git a/modules/ollama/Makefile b/modules/ollama/Makefile new file mode 100644 index 0000000000..4ed57e2575 --- /dev/null +++ b/modules/ollama/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-ollama diff --git a/modules/ollama/examples_test.go b/modules/ollama/examples_test.go new file mode 100644 index 0000000000..683580795f --- /dev/null +++ b/modules/ollama/examples_test.go @@ -0,0 +1,169 @@ +package ollama_test + +import ( + "context" + "fmt" + "log" + "net/http" + "strings" + + "github.com/tmc/langchaingo/llms" + langchainollama "github.com/tmc/langchaingo/llms/ollama" + + "github.com/testcontainers/testcontainers-go" + tcollama "github.com/testcontainers/testcontainers-go/modules/ollama" +) + +func ExampleRunContainer() { + // runOllamaContainer { + ctx := context.Background() + + ollamaContainer, err := tcollama.RunContainer(ctx, testcontainers.WithImage("ollama/ollama:0.1.25")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := ollamaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := ollamaContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_withModel_llama2_http() { + // withHTTPModelLlama2 { + ctx := context.Background() + + ollamaContainer, err := tcollama.RunContainer( + ctx, + testcontainers.WithImage("ollama/ollama:0.1.25"), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + defer func() { + if err := ollamaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + model := "llama2" + + _, _, err = ollamaContainer.Exec(ctx, []string{"ollama", "pull", model}) + if err != nil { + log.Fatalf("failed to pull model %s: %s", model, err) + } + + _, _, err = ollamaContainer.Exec(ctx, []string{"ollama", "run", model}) + if err != nil { + log.Fatalf("failed to run model %s: %s", model, err) + } + + connectionStr, err := ollamaContainer.ConnectionString(ctx) + if err != nil { + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic + } + + httpClient := &http.Client{} + + // generate a response + payload := `{ + "model": "llama2", + "prompt":"Why is the sky blue?" +}` + + req, err := http.NewRequest("POST", fmt.Sprintf("%s/api/generate", connectionStr), strings.NewReader(payload)) + if err != nil { + log.Fatalf("failed to create request: %s", err) // nolint:gocritic + } + + resp, err := httpClient.Do(req) + if err != nil { + log.Fatalf("failed to get response: %s", err) // nolint:gocritic + } + // } + + fmt.Println(resp.StatusCode) + + // Intentionally not asserting the output, as we don't want to run this example in the tests. +} + +func ExampleRunContainer_withModel_llama2_langchain() { + // withLangchainModelLlama2 { + ctx := context.Background() + + ollamaContainer, err := tcollama.RunContainer( + ctx, + testcontainers.WithImage("ollama/ollama:0.1.25"), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + defer func() { + if err := ollamaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + model := "llama2" + + _, _, err = ollamaContainer.Exec(ctx, []string{"ollama", "pull", model}) + if err != nil { + log.Fatalf("failed to pull model %s: %s", model, err) + } + + _, _, err = ollamaContainer.Exec(ctx, []string{"ollama", "run", model}) + if err != nil { + log.Fatalf("failed to run model %s: %s", model, err) + } + + connectionStr, err := ollamaContainer.ConnectionString(ctx) + if err != nil { + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic + } + + var llm *langchainollama.LLM + if llm, err = langchainollama.New( + langchainollama.WithModel(model), + langchainollama.WithServerURL(connectionStr), + ); err != nil { + log.Fatalf("failed to create langchain ollama: %s", err) // nolint:gocritic + } + + completion, err := llm.Call( + context.Background(), + "how can Testcontainers help with testing?", + llms.WithSeed(42), // the lower the seed, the more deterministic the completion + llms.WithTemperature(0.0), // the lower the temperature, the more creative the completion + ) + if err != nil { + log.Fatalf("failed to create langchain ollama: %s", err) // nolint:gocritic + } + + words := []string{ + "easy", "isolation", "consistency", + } + lwCompletion := strings.ToLower(completion) + + for _, word := range words { + if strings.Contains(lwCompletion, word) { + fmt.Println(true) + } + } + + // } + + // Intentionally not asserting the output, as we don't want to run this example in the tests. +} diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod new file mode 100644 index 0000000000..b624f525cf --- /dev/null +++ b/modules/ollama/go.mod @@ -0,0 +1,63 @@ +module github.com/testcontainers/testcontainers-go/modules/ollama + +go 1.21 + +require ( + github.com/docker/docker v25.0.3+incompatible + github.com/google/uuid v1.6.0 + github.com/testcontainers/testcontainers-go v0.28.0 + github.com/tmc/langchaingo v0.1.4 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/dlclark/regexp2 v1.8.1 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pkoukk/tiktoken-go v0.1.2 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect + golang.org/x/mod v0.13.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 // indirect + google.golang.org/grpc v1.60.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/ollama/go.sum b/modules/ollama/go.sum new file mode 100644 index 0000000000..a0a71e570c --- /dev/null +++ b/modules/ollama/go.sum @@ -0,0 +1,194 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/dlclark/regexp2 v1.8.1 h1:6Lcdwya6GjPUNsBct8Lg/yRPwMhABj269AAzdGSiR+0= +github.com/dlclark/regexp2 v1.8.1/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkoukk/tiktoken-go v0.1.2 h1:u7PCSBiWJ3nJYoTGShyM9iHXz4dNyYkurwwp+GHtyHY= +github.com/pkoukk/tiktoken-go v0.1.2/go.mod h1:boMWvk9pQCOTx11pgu0DrIdrAKgQzzJKUP6vLXaz7Rw= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tmc/langchaingo v0.1.4 h1:skgT2G6D+BzbRFWg8bGE6MQgLPQ10LpyHxQ4vIhD/8k= +github.com/tmc/langchaingo v0.1.4/go.mod h1:PKtJMXizDxJnT86q7lsVsyzTJqd0P2QKF7wt2jF6Lxk= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= +golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg= +google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3 h1:EWIeHfGuUf00zrVZGEgYFxok7plSAXBGcH7NNdMAWvA= +google.golang.org/genproto/googleapis/api v0.0.0-20231211222908-989df2bf70f3/go.mod h1:k2dtGpRrbsSyKcNPKKI5sstZkrNCZwpU/ns96JoHbGg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 h1:kzJAXnzZoFbe5bhZd4zjUuHos/I31yH4thfMb/13oVY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3/go.mod h1:eJVxU6o+4G1PSczBr85xmyvSNYAKvAYgkub40YGomFM= +google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= +google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/ollama/ollama.go b/modules/ollama/ollama.go new file mode 100644 index 0000000000..910ba9f2d7 --- /dev/null +++ b/modules/ollama/ollama.go @@ -0,0 +1,100 @@ +package ollama + +import ( + "context" + "fmt" + "time" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/filters" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/internal/core" + "github.com/testcontainers/testcontainers-go/wait" +) + +const DefaultOllamaImage = "ollama/ollama:0.1.25" + +// OllamaContainer represents the Ollama container type used in the module +type OllamaContainer struct { + testcontainers.Container +} + +// ConnectionString returns the connection string for the Ollama container, +// using the default port 11434. +func (c *OllamaContainer) ConnectionString(ctx context.Context) (string, error) { + host, err := c.Host(ctx) + if err != nil { + return "", err + } + + port, err := c.MappedPort(ctx, "11434/tcp") + if err != nil { + return "", err + } + + return fmt.Sprintf("http://%s:%d", host, port.Int()), nil +} + +// Commit it commits the current file system changes in the container into a new image, +// and returns the image name. The image name is generated by appending a random string +// to the tag of the current image. +// It should be used for creating an image that contains a loaded model. +func (c *OllamaContainer) Commit(ctx context.Context, targetImage string) (string, error) { + cli, err := testcontainers.NewDockerClientWithOpts(context.Background()) + if err != nil { + return "", err + } + + list, err := cli.ImageList(ctx, types.ImageListOptions{Filters: filters.NewArgs(filters.Arg("reference", targetImage))}) + if err != nil { + return "", fmt.Errorf("listing images %w", err) + } + + if len(list) > 0 { + return "", fmt.Errorf("image %s already exists", targetImage) + } + + _, err = cli.ContainerCommit(ctx, c.GetContainerID(), container.CommitOptions{ + Reference: targetImage, + Config: &container.Config{ + Labels: map[string]string{ + core.LabelSessionID: "", + }, + }, + }) + if err != nil { + return "", fmt.Errorf("committing container %w", err) + } + + return targetImage, nil +} + +// RunContainer creates an instance of the Ollama container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*OllamaContainer, error) { + req := testcontainers.ContainerRequest{ + Image: DefaultOllamaImage, + ExposedPorts: []string{"11434/tcp"}, + WaitingFor: wait.ForListeningPort("11434/tcp").WithStartupTimeout(60 * time.Second), + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + // always request a GPU if the host supports it + opts = append(opts, withGpu()) + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &OllamaContainer{Container: container}, nil +} diff --git a/modules/ollama/ollama_test.go b/modules/ollama/ollama_test.go new file mode 100644 index 0000000000..ceb6405bcb --- /dev/null +++ b/modules/ollama/ollama_test.go @@ -0,0 +1,168 @@ +package ollama_test + +import ( + "context" + "fmt" + "io" + "log" + "net/http" + "strings" + "testing" + + "github.com/google/uuid" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/exec" + "github.com/testcontainers/testcontainers-go/modules/ollama" +) + +func TestOllama(t *testing.T) { + ctx := context.Background() + + container, err := ollama.RunContainer(ctx, testcontainers.WithImage("ollama/ollama:0.1.25")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + t.Run("ConnectionString", func(t *testing.T) { + // connectionString { + connectionStr, err := container.ConnectionString(ctx) + // } + if err != nil { + t.Fatal(err) + } + + httpClient := &http.Client{} + resp, err := httpClient.Get(connectionStr) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("expected status code 200, got %d", resp.StatusCode) + } + }) + + t.Run("Pull and Run Model", func(t *testing.T) { + model := "all-minilm" + + _, _, err = container.Exec(context.Background(), []string{"ollama", "pull", model}) + if err != nil { + log.Fatalf("failed to pull model %s: %s", model, err) + } + + _, _, err = container.Exec(context.Background(), []string{"ollama", "run", model}) + if err != nil { + log.Fatalf("failed to run model %s: %s", model, err) + } + + assertLoadedModel(t, container) + }) + + t.Run("Commit to image including model", func(t *testing.T) { + // commitOllamaContainer { + + // Defining the target image name based on the default image and a random string. + // Users can change the way this is generated, but it should be unique. + targetImage := fmt.Sprintf("%s-%s", ollama.DefaultOllamaImage, strings.ToLower(uuid.New().String()[:4])) + + newImage, err := container.Commit(context.Background(), targetImage) + // } + if err != nil { + t.Fatal(err) + } + + if newImage == "" { + t.Fatal("new image should not be empty") + } + + newOllamaContainer, err := ollama.RunContainer( + context.Background(), + testcontainers.WithImage(newImage), + ) + if err != nil { + t.Fatal(err) + } + t.Cleanup(func() { + if err := newOllamaContainer.Terminate(context.Background()); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + assertLoadedModel(t, newOllamaContainer) + }) +} + +// assertLoadedModel checks if the model is loaded in the container. +// For that, it checks if the response of the /api/tags endpoint +// contains the model name. +func assertLoadedModel(t *testing.T, c *ollama.OllamaContainer) { + url, err := c.ConnectionString(context.Background()) + if err != nil { + t.Fatal(err) + } + + httpCli := &http.Client{} + + resp, err := httpCli.Get(url + "/api/tags") + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("expected status code 200, got %d", resp.StatusCode) + } + + bs, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatal(err) + } + + if !strings.Contains(string(bs), "all-minilm") { + t.Fatalf("expected response to contain all-minilm, got %s", string(bs)) + } +} + +func TestRunContainer_withModel_error(t *testing.T) { + ctx := context.Background() + + ollamaContainer, err := ollama.RunContainer( + ctx, + testcontainers.WithImage("ollama/ollama:0.1.25"), + ) + if err != nil { + t.Fatalf("expected error to be nil, got %s", err) + } + + model := "non-existent" + + _, _, err = ollamaContainer.Exec(ctx, []string{"ollama", "pull", model}) + if err != nil { + log.Fatalf("expected nil error, got %s", err) + } + + // we need to parse the response here to check if the error message is correct + _, r, err := ollamaContainer.Exec(ctx, []string{"ollama", "run", model}, exec.Multiplexed()) + if err != nil { + log.Fatalf("expected nil error, got %s", err) + } + + bs, err := io.ReadAll(r) + if err != nil { + t.Fatalf("failed to run %s model: %s", model, err) + } + + stdOutput := string(bs) + if !strings.Contains(stdOutput, "Error: pull model manifest: file does not exist") { + t.Fatalf("expected output to contain %q, got %s", "Error: pull model manifest: file does not exist", stdOutput) + } +} diff --git a/modules/ollama/options.go b/modules/ollama/options.go new file mode 100644 index 0000000000..7d74aeddaf --- /dev/null +++ b/modules/ollama/options.go @@ -0,0 +1,39 @@ +package ollama + +import ( + "context" + + "github.com/docker/docker/api/types/container" + + "github.com/testcontainers/testcontainers-go" +) + +var noopCustomizeRequestOption = func(req *testcontainers.GenericContainerRequest) {} + +// withGpu requests a GPU for the container, which could improve performance for some models. +// This option will be automaticall added to the Ollama container to check if the host supports nvidia. +func withGpu() testcontainers.CustomizeRequestOption { + cli, err := testcontainers.NewDockerClientWithOpts(context.Background()) + if err != nil { + return noopCustomizeRequestOption + } + + info, err := cli.Info(context.Background()) + if err != nil { + return noopCustomizeRequestOption + } + + // if the Runtime does not support nvidia, we don't need to request a GPU + if _, ok := info.Runtimes["nvidia"]; !ok { + return noopCustomizeRequestOption + } + + return testcontainers.WithHostConfigModifier(func(hostConfig *container.HostConfig) { + hostConfig.DeviceRequests = []container.DeviceRequest{ + { + Count: -1, + Capabilities: [][]string{{"gpu"}}, + }, + } + }) +} diff --git a/sonar-project.properties b/sonar-project.properties index 64bccb0d07..b30486ff3d 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -18,4 +18,4 @@ sonar.test.inclusions=**/*_test.go sonar.test.exclusions=**/vendor/** sonar.go.coverage.reportPaths=**/coverage.out -sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/surrealdb/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml +sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/ollama/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/surrealdb/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml From 96b2d1696f36bc4c5fdfb37cf284b46758527c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 07:54:04 +0100 Subject: [PATCH 052/115] chore: simplify commit method --- modules/ollama/ollama.go | 18 +++++++++--------- modules/ollama/ollama_test.go | 8 ++------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/modules/ollama/ollama.go b/modules/ollama/ollama.go index 910ba9f2d7..58ddbcf070 100644 --- a/modules/ollama/ollama.go +++ b/modules/ollama/ollama.go @@ -37,23 +37,23 @@ func (c *OllamaContainer) ConnectionString(ctx context.Context) (string, error) return fmt.Sprintf("http://%s:%d", host, port.Int()), nil } -// Commit it commits the current file system changes in the container into a new image, -// and returns the image name. The image name is generated by appending a random string -// to the tag of the current image. +// Commit it commits the current file system changes in the container into a new target image. +// The target image name should be unique, as this method will commit the current state +// of the container into a new image with the given name, so it doesn't override existing images. // It should be used for creating an image that contains a loaded model. -func (c *OllamaContainer) Commit(ctx context.Context, targetImage string) (string, error) { +func (c *OllamaContainer) Commit(ctx context.Context, targetImage string) error { cli, err := testcontainers.NewDockerClientWithOpts(context.Background()) if err != nil { - return "", err + return err } list, err := cli.ImageList(ctx, types.ImageListOptions{Filters: filters.NewArgs(filters.Arg("reference", targetImage))}) if err != nil { - return "", fmt.Errorf("listing images %w", err) + return fmt.Errorf("listing images %w", err) } if len(list) > 0 { - return "", fmt.Errorf("image %s already exists", targetImage) + return fmt.Errorf("image %s already exists", targetImage) } _, err = cli.ContainerCommit(ctx, c.GetContainerID(), container.CommitOptions{ @@ -65,10 +65,10 @@ func (c *OllamaContainer) Commit(ctx context.Context, targetImage string) (strin }, }) if err != nil { - return "", fmt.Errorf("committing container %w", err) + return fmt.Errorf("committing container %w", err) } - return targetImage, nil + return nil } // RunContainer creates an instance of the Ollama container type diff --git a/modules/ollama/ollama_test.go b/modules/ollama/ollama_test.go index ceb6405bcb..bece78f0a8 100644 --- a/modules/ollama/ollama_test.go +++ b/modules/ollama/ollama_test.go @@ -74,19 +74,15 @@ func TestOllama(t *testing.T) { // Users can change the way this is generated, but it should be unique. targetImage := fmt.Sprintf("%s-%s", ollama.DefaultOllamaImage, strings.ToLower(uuid.New().String()[:4])) - newImage, err := container.Commit(context.Background(), targetImage) + err := container.Commit(context.Background(), targetImage) // } if err != nil { t.Fatal(err) } - if newImage == "" { - t.Fatal("new image should not be empty") - } - newOllamaContainer, err := ollama.RunContainer( context.Background(), - testcontainers.WithImage(newImage), + testcontainers.WithImage(targetImage), ) if err != nil { t.Fatal(err) From 411e43f09a11a10e406c4637ba20418a8cb12ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 09:41:09 +0100 Subject: [PATCH 053/115] chore(deps): bump golang.org/x/mod from 0.12.0 to 0.16.0 (#2316) * chore(deps): bump golang.org/x/mod from 0.15.0 to 0.16.0 in /modulegen Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.15.0 to 0.16.0. - [Commits](https://github.com/golang/mod/compare/v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump golang.org/x/mod in /modules/elasticsearch Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.14.0 to 0.16.0. - [Commits](https://github.com/golang/mod/compare/v0.14.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump golang.org/x/mod in /modules/kafka Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.15.0 to 0.16.0. - [Commits](https://github.com/golang/mod/compare/v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump golang.org/x/mod in /modules/redpanda Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.14.0 to 0.16.0. - [Commits](https://github.com/golang/mod/compare/v0.14.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump golang.org/x/mod in /modules/localstack Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.12.0 to 0.16.0. - [Commits](https://github.com/golang/mod/compare/v0.12.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore: bump x/mod * chore: mod tidy in ollama --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/nginx/go.mod | 4 ++-- examples/nginx/go.sum | 8 ++++---- examples/toxiproxy/go.mod | 4 ++-- examples/toxiproxy/go.sum | 8 ++++---- go.mod | 4 ++-- go.sum | 8 ++++---- modulegen/go.mod | 2 +- modulegen/go.sum | 4 ++-- modules/artemis/go.mod | 4 ++-- modules/artemis/go.sum | 8 ++++---- modules/cassandra/go.mod | 4 ++-- modules/cassandra/go.sum | 8 ++++---- modules/chroma/go.mod | 4 ++-- modules/chroma/go.sum | 8 ++++---- modules/clickhouse/go.mod | 4 ++-- modules/clickhouse/go.sum | 8 ++++---- modules/cockroachdb/go.mod | 4 ++-- modules/cockroachdb/go.sum | 8 ++++---- modules/compose/go.mod | 4 ++-- modules/compose/go.sum | 8 ++++---- modules/consul/go.mod | 4 ++-- modules/consul/go.sum | 8 ++++---- modules/couchbase/go.mod | 4 ++-- modules/couchbase/go.sum | 8 ++++---- modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 4 ++-- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- modules/inbucket/go.mod | 4 ++-- modules/inbucket/go.sum | 8 ++++---- modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 4 ++-- modules/k6/go.mod | 4 ++-- modules/k6/go.sum | 8 ++++---- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- modules/localstack/go.mod | 4 ++-- modules/localstack/go.sum | 8 ++++---- modules/mariadb/go.mod | 4 ++-- modules/mariadb/go.sum | 8 ++++---- modules/milvus/go.mod | 4 ++-- modules/milvus/go.sum | 8 ++++---- modules/minio/go.mod | 4 ++-- modules/minio/go.sum | 8 ++++---- modules/mockserver/go.mod | 4 ++-- modules/mockserver/go.sum | 8 ++++---- modules/mongodb/go.mod | 4 ++-- modules/mongodb/go.sum | 8 ++++---- modules/mssql/go.mod | 4 ++-- modules/mssql/go.sum | 8 ++++---- modules/mysql/go.mod | 4 ++-- modules/mysql/go.sum | 8 ++++---- modules/nats/go.mod | 4 ++-- modules/nats/go.sum | 8 ++++---- modules/neo4j/go.mod | 4 ++-- modules/neo4j/go.sum | 8 ++++---- modules/ollama/go.mod | 2 +- modules/ollama/go.sum | 4 ++-- modules/openldap/go.mod | 4 ++-- modules/openldap/go.sum | 8 ++++---- modules/opensearch/go.mod | 4 ++-- modules/opensearch/go.sum | 8 ++++---- modules/postgres/go.mod | 4 ++-- modules/postgres/go.sum | 8 ++++---- modules/pulsar/go.mod | 4 ++-- modules/pulsar/go.sum | 8 ++++---- modules/qdrant/go.mod | 4 ++-- modules/qdrant/go.sum | 8 ++++---- modules/rabbitmq/go.mod | 4 ++-- modules/rabbitmq/go.sum | 8 ++++---- modules/redis/go.mod | 4 ++-- modules/redis/go.sum | 8 ++++---- modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 4 ++-- modules/surrealdb/go.mod | 4 ++-- modules/surrealdb/go.sum | 8 ++++---- modules/vault/go.mod | 4 ++-- modules/vault/go.sum | 8 ++++---- modules/weaviate/go.mod | 4 ++-- modules/weaviate/go.sum | 8 ++++---- 80 files changed, 219 insertions(+), 219 deletions(-) diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 1ca398eb1d..80dc1f8a60 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -49,9 +49,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index 19f4d010a9..e3cda40324 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -128,8 +128,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -163,8 +163,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 207b1ee828..56308d24fd 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -53,9 +53,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index 62ff4f892a..dc8b1c8498 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -144,8 +144,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -179,8 +179,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/go.mod b/go.mod index c9be18cd5b..fa961bef38 100644 --- a/go.mod +++ b/go.mod @@ -54,9 +54,9 @@ require ( go.opentelemetry.io/otel v1.19.0 // indirect go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/go.sum b/go.sum index bb425f7e2f..a3a9e298eb 100644 --- a/go.sum +++ b/go.sum @@ -141,8 +141,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -176,8 +176,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modulegen/go.mod b/modulegen/go.mod index 4fac9675ae..613a7c2791 100644 --- a/modulegen/go.mod +++ b/modulegen/go.mod @@ -6,7 +6,7 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.9.0 golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb - golang.org/x/mod v0.15.0 + golang.org/x/mod v0.16.0 golang.org/x/text v0.14.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/modulegen/go.sum b/modulegen/go.sum index 2bc563846b..efc4b8651d 100644 --- a/modulegen/go.sum +++ b/modulegen/go.sum @@ -14,8 +14,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb h1:mIKbk8weKhSeLH2GmUTrvx8CjkyJmnU1wFmg59CUjFA= golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 246944a74a..919ed516b7 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -53,9 +53,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index a806c85223..640aa31a48 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -142,8 +142,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnL golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -184,8 +184,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index e0ebeb2757..4751fff254 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -55,9 +55,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index 621a31bf48..c590a88fd4 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -147,8 +147,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -182,8 +182,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index 962cd60114..6e926f0f60 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -50,9 +50,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 36176e8314..7646faf022 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -132,8 +132,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -167,8 +167,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 795da5bd80..a3a593ce48 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -61,10 +61,10 @@ require ( go.opentelemetry.io/otel/metric v1.22.0 // indirect go.opentelemetry.io/otel/trace v1.22.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index 88715573a1..c934c17e6c 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -167,8 +167,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -210,8 +210,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index abf3602b6d..85172042a3 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -58,11 +58,11 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index a194a40962..0af521c6b1 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -146,8 +146,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -181,8 +181,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index 1ee469130d..a998191c21 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -164,14 +164,14 @@ require ( go.uber.org/mock v0.4.0 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/term v0.15.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect diff --git a/modules/compose/go.sum b/modules/compose/go.sum index f08410b966..b15320a1bf 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -572,8 +572,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -655,8 +655,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 5c5a97e673..94f127730d 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -67,9 +67,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 // indirect - golang.org/x/mod v0.12.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 406e1545e4..27c9d3525f 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -289,8 +289,8 @@ golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63 h1:m64FZMko/V45gv0bNmrNYoDEq golang.org/x/exp v0.0.0-20230817173708-d852ddb80c63/go.mod h1:0v4NqG35kSWCMzLaMeX+IQrlSnVE/bqGSyC2cz/9Le8= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -355,8 +355,8 @@ golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846 h1:Vve/L0v7CXXuxUmaMGIEK/dEeq7uiqb5qBgQrZzIE7E= -golang.org/x/tools v0.12.1-0.20230815132531-74c255bcf846/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 6ce2af5689..282f8b3cfa 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -63,11 +63,11 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.20.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect google.golang.org/grpc v1.61.1 // indirect google.golang.org/protobuf v1.32.0 // indirect diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index f1b4f40cad..3b70d8470a 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -200,8 +200,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -250,8 +250,8 @@ golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 64cee24b58..ce575a4ebe 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -6,7 +6,7 @@ require ( github.com/elastic/go-elasticsearch/v8 v8.11.1 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 - golang.org/x/mod v0.14.0 + golang.org/x/mod v0.16.0 ) require ( diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index efd17a4917..685ce05040 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -139,8 +139,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index c54a8ac0cf..6c438553c2 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -84,7 +84,7 @@ require ( go.opentelemetry.io/otel/trace v1.23.0 // indirect golang.org/x/crypto v0.19.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect - golang.org/x/mod v0.13.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.21.0 // indirect golang.org/x/oauth2 v0.17.0 // indirect golang.org/x/sync v0.6.0 // indirect diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 4e7f548e2b..9fad13285d 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -251,8 +251,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index ac17856798..a6ad97b359 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -51,9 +51,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index 2501daef1b..6accf90fbe 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -132,8 +132,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -167,8 +167,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index dc5498bcbe..884d726384 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -68,7 +68,7 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.14.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/oauth2 v0.10.0 // indirect golang.org/x/sys v0.16.0 // indirect diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index 51c101eac4..2f05c7485c 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -179,8 +179,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 1a2115581c..318e01989c 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -49,9 +49,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/k6/go.sum b/modules/k6/go.sum index 19f4d010a9..e3cda40324 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -128,8 +128,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -163,8 +163,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index e11764fb4e..00f0f837e2 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -6,7 +6,7 @@ require ( github.com/IBM/sarama v1.42.1 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 - golang.org/x/mod v0.15.0 + golang.org/x/mod v0.16.0 ) require ( diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index 0b3441455f..c95ed6cbf5 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -174,8 +174,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnL golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index d2bdf4f753..53a5558fcd 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -12,7 +12,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 - golang.org/x/mod v0.12.0 + golang.org/x/mod v0.16.0 ) require ( @@ -75,7 +75,7 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index 2a14078a23..fca92eba9e 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -177,8 +177,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -212,8 +212,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index c021a5cd4d..f380fdab7a 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -50,9 +50,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index 51de53427a..8328e7117f 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -130,8 +130,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -165,8 +165,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index bdd975f97b..b2cccff578 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -62,11 +62,11 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index 9d0db6ff33..a7a10a6b96 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -351,8 +351,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -438,8 +438,8 @@ golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapK golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index 46370d7289..7e774e564a 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -59,12 +59,12 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.19.0 // indirect golang.org/x/sync v0.5.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/minio/go.sum b/modules/minio/go.sum index b8c71727a6..deabae3b2d 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -152,8 +152,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -188,8 +188,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index ff4533e0fb..39efd2d4fc 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -51,10 +51,10 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index 927ccb21a5..819fff6a42 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -132,8 +132,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -169,8 +169,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index 0cfc2e1130..bef3d5442c 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -57,11 +57,11 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 229dcdb9b5..79ad88e12b 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -150,8 +150,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnL golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -201,8 +201,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index af71fc0b7f..bea942cecc 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -53,10 +53,10 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index d7a3828a7a..eb6ce3d308 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -154,8 +154,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -189,8 +189,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index 413bb4ad35..d6977489e7 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -51,9 +51,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index 51de53427a..8328e7117f 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -130,8 +130,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -165,8 +165,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 8fe1591228..d3a6b74ebb 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -53,9 +53,9 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/nats/go.sum b/modules/nats/go.sum index fd440b1998..d18638040e 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -136,8 +136,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -171,8 +171,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index 9b45a01af5..e88bd64d4a 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -50,9 +50,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 6a809b97e7..3c76786737 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -130,8 +130,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -165,8 +165,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod index b624f525cf..3a89049269 100644 --- a/modules/ollama/go.mod +++ b/modules/ollama/go.mod @@ -52,7 +52,7 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect - golang.org/x/mod v0.13.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/tools v0.14.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 // indirect diff --git a/modules/ollama/go.sum b/modules/ollama/go.sum index a0a71e570c..54ec224710 100644 --- a/modules/ollama/go.sum +++ b/modules/ollama/go.sum @@ -134,8 +134,8 @@ golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xpp golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index 7ed268299e..be429a24fc 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -53,9 +53,9 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index 899455b7fa..f27cc9d6d7 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -144,8 +144,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -202,8 +202,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 7f4cb078a6..0667537282 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -49,9 +49,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index 19f4d010a9..e3cda40324 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -128,8 +128,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -163,8 +163,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 9c87a8a057..eec46ac7da 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -59,10 +59,10 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/crypto v0.17.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index d51f6e86b6..102a91fab9 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -148,8 +148,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -183,8 +183,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 303d3fdaaa..22d69172ad 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -80,12 +80,12 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect go.uber.org/atomic v1.7.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.10.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/term v0.13.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index feca1602e7..0048c22d31 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -417,8 +417,8 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -584,8 +584,8 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 7350b59dec..89ee3f6729 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -51,11 +51,11 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.18.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect google.golang.org/protobuf v1.31.0 // indirect ) diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index cf65b88eb9..c0e2401a83 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -130,8 +130,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -165,8 +165,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index 6c64385151..f24ea54d48 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -50,9 +50,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index fbae211e50..5106d69a1d 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -135,8 +135,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -170,8 +170,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 02b60c73bf..47cb048b52 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -59,9 +59,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/redis/go.sum b/modules/redis/go.sum index 5750a9e755..478b0b7cf5 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -149,8 +149,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -184,8 +184,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 76ea5957be..be52c984c6 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -8,7 +8,7 @@ require ( github.com/testcontainers/testcontainers-go v0.28.0 github.com/twmb/franz-go v1.15.4 github.com/twmb/franz-go/pkg/kadm v1.10.0 - golang.org/x/mod v0.14.0 + golang.org/x/mod v0.16.0 ) require ( diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index dc5e108859..f7709e0703 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -145,8 +145,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= diff --git a/modules/surrealdb/go.mod b/modules/surrealdb/go.mod index f3f61a2785..40d44735a6 100644 --- a/modules/surrealdb/go.mod +++ b/modules/surrealdb/go.mod @@ -51,9 +51,9 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/surrealdb/go.sum b/modules/surrealdb/go.sum index f09c727fe3..81c687bb58 100644 --- a/modules/surrealdb/go.sum +++ b/modules/surrealdb/go.sum @@ -132,8 +132,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -167,8 +167,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index e5513596d1..e2cc6fe9db 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -65,10 +65,10 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/vault/go.sum b/modules/vault/go.sum index 24678d1b0d..bcb02fc7d4 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -163,8 +163,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -198,8 +198,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 23267b0153..098bfc8d4f 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -68,12 +68,12 @@ require ( go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/mod v0.11.0 // indirect + golang.org/x/mod v0.16.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.10.0 // indirect + golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect google.golang.org/grpc v1.59.0 // indirect diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index 07b16009bc..e7543bdefe 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -262,8 +262,8 @@ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQ golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= @@ -324,8 +324,8 @@ golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 5281b4c0dae1e0b9159dacc81509f81c38607c29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 10:03:29 +0100 Subject: [PATCH 054/115] chore(deps): bump github.com/jackc/pgx/v5 from 5.5.3 to 5.5.4 in /modules/postgres, github.com/jackc/pgx/v5 from 5.5.3 to 5.5.4 in /modules/cockroachdb (#2323) * chore(deps): bump github.com/jackc/pgx/v5 in /modules/cockroachdb Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.3 to 5.5.4. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.5.3...v5.5.4) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/jackc/pgx/v5 in /modules/postgres Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.3 to 5.5.4. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.5.3...v5.5.4) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 85172042a3..13710f912a 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 - github.com/jackc/pgx/v5 v5.5.3 + github.com/jackc/pgx/v5 v5.5.4 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 0af521c6b1..20d8611fb7 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -57,8 +57,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA= github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.5.3 h1:Ces6/M3wbDXYpM8JyyPD57ivTtJACFZJd885pdIaV2s= -github.com/jackc/pgx/v5 v5.5.3/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/pgx/v5 v5.5.4 h1:Xp2aQS8uXButQdnCMWNmvx6UysWQQC+u1EoizjguY+8= +github.com/jackc/pgx/v5 v5.5.4/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index eec46ac7da..94645129d2 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 - github.com/jackc/pgx/v5 v5.5.3 + github.com/jackc/pgx/v5 v5.5.4 github.com/lib/pq v1.10.9 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index 102a91fab9..662d9b8b7d 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -57,8 +57,8 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= -github.com/jackc/pgx/v5 v5.5.3 h1:Ces6/M3wbDXYpM8JyyPD57ivTtJACFZJd885pdIaV2s= -github.com/jackc/pgx/v5 v5.5.3/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= +github.com/jackc/pgx/v5 v5.5.4 h1:Xp2aQS8uXButQdnCMWNmvx6UysWQQC+u1EoizjguY+8= +github.com/jackc/pgx/v5 v5.5.4/go.mod h1:ez9gk+OAat140fv9ErkZDYFWmXLfV+++K0uAOiwgm1A= github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= From 301ebe7380c9f1af7df59fd8bfaaec052b094ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 10:03:40 +0100 Subject: [PATCH 055/115] chore(deps): bump github.com/hashicorp/vault-client-go from 0.3.3 to 0.4.3 in /modules/vault, github.com/tidwall/gjson from 1.17.0 to 1.17.1 in /modules/vault (#2321) * chore(deps): bump github.com/hashicorp/vault-client-go in /modules/vault Bumps [github.com/hashicorp/vault-client-go](https://github.com/hashicorp/vault-client-go) from 0.3.3 to 0.4.3. - [Release notes](https://github.com/hashicorp/vault-client-go/releases) - [Changelog](https://github.com/hashicorp/vault-client-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/hashicorp/vault-client-go/compare/v0.3.3...v0.4.3) --- updated-dependencies: - dependency-name: github.com/hashicorp/vault-client-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/tidwall/gjson in /modules/vault Bumps [github.com/tidwall/gjson](https://github.com/tidwall/gjson) from 1.17.0 to 1.17.1. - [Commits](https://github.com/tidwall/gjson/compare/v1.17.0...v1.17.1) --- updated-dependencies: - dependency-name: github.com/tidwall/gjson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/vault/go.mod | 6 ++---- modules/vault/go.sum | 13 ++++--------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/modules/vault/go.mod b/modules/vault/go.mod index e2cc6fe9db..6f95bfd1cf 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -4,10 +4,10 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible - github.com/hashicorp/vault-client-go v0.3.3 + github.com/hashicorp/vault-client-go v0.4.3 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 - github.com/tidwall/gjson v1.17.0 + github.com/tidwall/gjson v1.17.1 ) require ( @@ -30,9 +30,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect - github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-retryablehttp v0.7.2 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect diff --git a/modules/vault/go.sum b/modules/vault/go.sum index bcb02fc7d4..988e585e3f 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -52,23 +52,18 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= -github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= -github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/go-retryablehttp v0.7.2 h1:AcYqCvkpalPnPF2pn0KamgwamS42TqUDDYFRKq/RAd0= github.com/hashicorp/go-retryablehttp v0.7.2/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 h1:kes8mmyCpxJsI7FTwtzRqEy9CdjCtrXrXGuOpxEA7Ts= github.com/hashicorp/go-secure-stdlib/strutil v0.1.2/go.mod h1:Gou2R9+il93BqX25LAKCLuM+y9U2T4hlwvT1yprcna4= -github.com/hashicorp/vault-client-go v0.3.3 h1:osw2OiT8sPnHbwJCC7sZc/NSlgN4hm0Ka1M1yXsYuHw= -github.com/hashicorp/vault-client-go v0.3.3/go.mod h1:C9rbJeHeI1Dy/MXXd5YLrzRfAH27n6mARnhpvaW/8gk= +github.com/hashicorp/vault-client-go v0.4.3 h1:zG7STGVgn/VK6rnZc0k8PGbfv2x/sJExRKHSUg3ljWc= +github.com/hashicorp/vault-client-go v0.4.3/go.mod h1:4tDw7Uhq5XOxS1fO+oMtotHL7j4sB9cp0T7U6m4FzDY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= @@ -126,8 +121,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tidwall/gjson v1.17.0 h1:/Jocvlh98kcTfpN2+JzGQWQcqrPQwDrVEMApx/M5ZwM= -github.com/tidwall/gjson v1.17.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.17.1 h1:wlYEnwqAHgzmhNUFfw7Xalt2JzQvsMx2Se4PcoFCT/U= +github.com/tidwall/gjson v1.17.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= From 6c6f89de007c900bc6982d7279c5f5dafee6a4a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 10:04:14 +0100 Subject: [PATCH 056/115] chore(deps): bump github.com/twmb/franz-go from 1.15.4 to 1.16.1 in /modules/redpanda, github.com/twmb/franz-go/pkg/kadm from 1.10.0 to 1.11.0 in /modules/redpanda (#2322) * chore(deps): bump github.com/twmb/franz-go/pkg/kadm in /modules/redpanda Bumps [github.com/twmb/franz-go/pkg/kadm](https://github.com/twmb/franz-go) from 1.10.0 to 1.11.0. - [Changelog](https://github.com/twmb/franz-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/twmb/franz-go/compare/v1.10.0...v1.11.0) --- updated-dependencies: - dependency-name: github.com/twmb/franz-go/pkg/kadm dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/twmb/franz-go in /modules/redpanda Bumps [github.com/twmb/franz-go](https://github.com/twmb/franz-go) from 1.15.4 to 1.16.1. - [Changelog](https://github.com/twmb/franz-go/blob/master/CHANGELOG.md) - [Commits](https://github.com/twmb/franz-go/compare/v1.15.4...v1.16.1) --- updated-dependencies: - dependency-name: github.com/twmb/franz-go dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/redpanda/go.mod | 6 +++--- modules/redpanda/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index be52c984c6..920f564b33 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -6,8 +6,8 @@ require ( github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 - github.com/twmb/franz-go v1.15.4 - github.com/twmb/franz-go/pkg/kadm v1.10.0 + github.com/twmb/franz-go v1.16.1 + github.com/twmb/franz-go/pkg/kadm v1.11.0 golang.org/x/mod v0.16.0 ) @@ -31,7 +31,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/klauspost/compress v1.17.0 // indirect + github.com/klauspost/compress v1.17.4 // indirect github.com/kr/text v0.1.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index f7709e0703..7207c83f4c 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -54,8 +54,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rH github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= -github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -110,10 +110,10 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/twmb/franz-go v1.15.4 h1:qBCkHaiutetnrXjAUWA99D9FEcZVMt2AYwkH3vWEQTw= -github.com/twmb/franz-go v1.15.4/go.mod h1:rC18hqNmfo8TMc1kz7CQmHL74PLNF8KVvhflxiiJZCU= -github.com/twmb/franz-go/pkg/kadm v1.10.0 h1:3oYKNP+e3HGo4GYadrDeRxOaAIsOXmX6LBVMz9PxpCU= -github.com/twmb/franz-go/pkg/kadm v1.10.0/go.mod h1:hUMoV4SRho+2ij/S9cL39JaLsr+XINjn0ZkCdBY2DXc= +github.com/twmb/franz-go v1.16.1 h1:rpWc7fB9jd7TgmCyfxzenBI+QbgS8ZfJOUQE+tzPtbE= +github.com/twmb/franz-go v1.16.1/go.mod h1:/pER254UPPGp/4WfGqRi+SIRGE50RSQzVubQp6+N4FA= +github.com/twmb/franz-go/pkg/kadm v1.11.0 h1:FfeWJ0qadntFpAcQt8JzNXW4dijjytZNLrzJuzzzuxA= +github.com/twmb/franz-go/pkg/kadm v1.11.0/go.mod h1:qrhkdH+SWS3ivmbqOgHbpgVHamhaKcjH0UM+uOp0M1A= github.com/twmb/franz-go/pkg/kmsg v1.7.0 h1:a457IbvezYfA5UkiBvyV3zj0Is3y1i8EJgqjJYoij2E= github.com/twmb/franz-go/pkg/kmsg v1.7.0/go.mod h1:se9Mjdt0Nwzc9lnjJ0HyDtLyBnaBDAd7pCje47OhSyw= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= From ec911df444357a7f98b3e2b8e13f62b11a5d35bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 5 Mar 2024 11:12:17 +0100 Subject: [PATCH 057/115] chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.16.14 to 1.17.5 in /modules/localstack, github.com/aws/aws-sdk-go-v2 from 1.24.1 to 1.25.2 in /modules/localstack (#2320) * chore(deps): bump github.com/aws/aws-sdk-go-v2 in /modules/localstack Bumps [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) from 1.24.1 to 1.25.2. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.24.1...v1.25.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials Bumps [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) from 1.16.14 to 1.17.5. - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Changelog](https://github.com/aws/aws-sdk-go-v2/blob/v1.17.5/CHANGELOG.md) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.16.14...v1.17.5) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/credentials dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore: bump aws dependencies --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/localstack/go.mod | 107 ++++++++++------- modules/localstack/go.sum | 233 ++++++++++++++++++++++++++++++++++---- 2 files changed, 275 insertions(+), 65 deletions(-) diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 53a5558fcd..d14ebb4427 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -3,11 +3,11 @@ module github.com/testcontainers/testcontainers-go/modules/localstack go 1.21 require ( - github.com/aws/aws-sdk-go v1.49.19 - github.com/aws/aws-sdk-go-v2 v1.24.1 - github.com/aws/aws-sdk-go-v2/config v1.26.3 - github.com/aws/aws-sdk-go-v2/credentials v1.16.14 - github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 + github.com/aws/aws-sdk-go v1.50.31 + github.com/aws/aws-sdk-go-v2 v1.25.2 + github.com/aws/aws-sdk-go-v2/config v1.27.5 + github.com/aws/aws-sdk-go-v2/credentials v1.17.5 + github.com/aws/aws-sdk-go-v2/service/s3 v1.51.2 github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 @@ -17,68 +17,89 @@ require ( require ( dario.cat/mergo v1.0.0 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect + github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/Microsoft/hcsshim v0.11.4 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.18.6 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.6 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect - github.com/aws/smithy-go v1.19.0 // indirect + github.com/Microsoft/hcsshim v0.12.0 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.3 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.2 // indirect + github.com/aws/smithy-go v1.20.1 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect - github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/cgroups/v3 v3.0.2 // indirect + github.com/containerd/containerd v1.7.13 // indirect + github.com/containerd/continuity v0.4.2 // indirect + github.com/containerd/errdefs v0.1.0 // indirect + github.com/containerd/fifo v1.1.0 // indirect github.com/containerd/log v0.1.0 // indirect + github.com/containerd/ttrpc v1.2.2 // indirect + github.com/containerd/typeurl/v2 v2.1.1 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect + github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/felixge/httpsnoop v1.0.3 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/klauspost/compress v1.16.0 // indirect - github.com/kr/text v0.1.0 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/klauspost/compress v1.17.7 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a // indirect github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/locker v1.0.1 // indirect github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/signal v0.7.0 // indirect github.com/moby/sys/user v0.1.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/opencontainers/runtime-spec v1.1.0 // indirect + github.com/opencontainers/selinux v1.11.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect + github.com/shirou/gopsutil/v3 v3.24.2 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/sirupsen/logrus v1.9.3 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect - golang.org/x/sys v0.16.0 // indirect - golang.org/x/tools v0.13.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect - google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + github.com/tklauser/go-sysconf v0.3.13 // indirect + github.com/tklauser/numcpus v0.7.0 // indirect + github.com/yusufpapurcu/wmi v1.2.4 // indirect + go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect + golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.19.0 // indirect + google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect + google.golang.org/grpc v1.62.0 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index fca92eba9e..69c7d75a90 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -1,59 +1,103 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA= +github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/Microsoft/hcsshim v0.12.0 h1:rbICA+XZFwrBef2Odk++0LjFvClNCJGRK+fsrP254Ts= +github.com/Microsoft/hcsshim v0.12.0/go.mod h1:RZV12pcHCXQ42XnlQ3pz6FZfmrC1C+R4gaOHhRNML1g= github.com/aws/aws-sdk-go v1.49.19 h1:oZryiqeQpeJsIcAmZlp86duMu/s/DJ43qyfwa51qmLg= github.com/aws/aws-sdk-go v1.49.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= -github.com/aws/aws-sdk-go-v2 v1.24.1 h1:xAojnj+ktS95YZlDf0zxWBkbFtymPeDP+rvUQIH3uAU= -github.com/aws/aws-sdk-go-v2 v1.24.1/go.mod h1:LNh45Br1YAkEKaAqvmE1m8FUx6a5b/V0oAKV7of29b4= +github.com/aws/aws-sdk-go v1.50.31 h1:gx2NRLLEDUmQFC4YUsfMUKkGCwpXVO8ijUecq/nOQGA= +github.com/aws/aws-sdk-go v1.50.31/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go-v2 v1.25.2 h1:/uiG1avJRgLGiQM9X3qJM8+Qa6KRGK5rRPuXE0HUM+w= +github.com/aws/aws-sdk-go-v2 v1.25.2/go.mod h1:Evoc5AsmtveRt1komDwIsjHFyrP5tDuF1D1U+6z6pNo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 h1:OCs21ST2LrepDfD3lwlQiOqIGp6JiEUqG84GzTDoyJs= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4/go.mod h1:usURWEKSNNAcAZuzRn/9ZYPT8aZQkR7xcCtunK/LkJo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= github.com/aws/aws-sdk-go-v2/config v1.26.3 h1:dKuc2jdp10y13dEEvPqWxqLoc0vF3Z9FC45MvuQSxOA= github.com/aws/aws-sdk-go-v2/config v1.26.3/go.mod h1:Bxgi+DeeswYofcYO0XyGClwlrq3DZEXli0kLf4hkGA0= -github.com/aws/aws-sdk-go-v2/credentials v1.16.14 h1:mMDTwwYO9A0/JbOCOG7EOZHtYM+o7OfGWfu0toa23VE= -github.com/aws/aws-sdk-go-v2/credentials v1.16.14/go.mod h1:cniAUh3ErQPHtCQGPT5ouvSAQ0od8caTO9OOuufZOAE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 h1:c5I5iH+DZcH3xOIMlz3/tCKJDaHFwYEmxvlh2fAcFo8= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11/go.mod h1:cRrYDYAMUohBJUtUnOhydaMHtiK/1NZ0Otc9lIb6O0Y= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 h1:vF+Zgd9s+H4vOXd5BMaPWykta2a6Ih0AKLq/X6NYKn4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10/go.mod h1:6BkRjejp/GR4411UGqkX8+wFMbFbqsUIimfK4XjOKR4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 h1:nYPe006ktcqUji8S2mqXf9c/7NdiKriOwMvWQHgYztw= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10/go.mod h1:6UV4SZkVvmODfXKql4LCbaZUpF7HO2BX38FgBf9ZOLw= +github.com/aws/aws-sdk-go-v2/config v1.27.5 h1:brBPsyRFQn97M1ZhQ9tLXkO7Zytiar0NS06FGmEJBdg= +github.com/aws/aws-sdk-go-v2/config v1.27.5/go.mod h1:I53uvsfddRRTG5YcC4n5Z3aOD1BU8hYCoIG7iEJG4wM= +github.com/aws/aws-sdk-go-v2/credentials v1.17.5 h1:yn3zSvIKC2NZIs40cY3kckcy9Zma96PrRR07N54PCvY= +github.com/aws/aws-sdk-go-v2/credentials v1.17.5/go.mod h1:8JcKPAGZVnDWuR5lusAwmrSDtZnDIAnpQWaDC9RFt2g= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2 h1:AK0J8iYBFeUk2Ax7O8YpLtFsfhdOByh2QIkHmigpRYk= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.2/go.mod h1:iRlGzMix0SExQEviAyptRWRGdYNo3+ufW/lCzvKVTUc= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 h1:bNo4LagzUKbjdxE0tIcR9pMzLR2U/Tgie1Hq1HQ3iH8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2/go.mod h1:wRQv0nN6v9wDXuWThpovGQjqF1HFdcgWjporw14lS8k= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 h1:EtOU5jsPdIQNP+6Q2C5e3d65NKT1PeCiQk+9OdzO12Q= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2/go.mod h1:tyF5sKccmDz0Bv4NrstEr+/9YkSPJHrcO7UsUKf7pWM= github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9 h1:ugD6qzjYtB7zM5PN/ZIeaAIyefPaD82G8+SJopgvUpw= github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9/go.mod h1:YD0aYBWCrPENpHolhKw2XDlTIWae2GKXT1T4o6N6hiM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 h1:/b31bi3YVNlkzkBrm9LfpaKoaYZUxIAj4sHfOTmLfqw= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4/go.mod h1:2aGXHFmbInwgP9ZfpmdIfOELL79zhdNYNmReK8qDfdQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2 h1:en92G0Z7xlksoOylkUhuBSfJgijC7rHVLRdnIlHEs0E= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2/go.mod h1:HgtQ/wN5G+8QSlK62lbOtNwQ3wTSByJ4wH2rCkPt+AE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9 h1:/90OR2XbSYfXucBMJ4U14wrjlfleq/0SB6dZDPncgmo= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9/go.mod h1:dN/Of9/fNZet7UrQQ6kTDo/VSwKPIq94vjlU16bRARc= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 h1:DBYTXwIGQSGs9w4jKm60F5dmCQ3EEruxdc0MFh+3EY4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10/go.mod h1:wohMUQiFdzo0NtxbBg0mSRGZ4vL3n0dKjLTINdcIino= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.3 h1:fpFzBoro/MetYBk+8kxoQGMeKSkXbymnbUh2gy6nVgk= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.3/go.mod h1:qmQPbMe5NQk/nEmpkl8iHyCSREJjEbRUrnqHpHabLlM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.3 h1:x0N5ftQzgcfRpCpTiyZC40pvNUJYhzf4UgCsAyO6/P8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.3/go.mod h1:Ru7vg1iQ7cR4i7SZ/JTLYN9kaXtbL69UdgG0OQWQxW0= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9 h1:iEAeF6YC3l4FzlJPP9H3Ko1TXpdjdqWffxXjp8SY6uk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9/go.mod h1:kjsXoK23q9Z/tLBrckZLLyvjhZoS+AGrzqzUfEClvMM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 h1:1oY1AVEisRI4HNuFoLdRUB0hC63ylDAN6Me3MrfclEg= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2/go.mod h1:KZ03VgvZwSjkT7fOetQ/wF3MZUvYFirlI1H5NklUNsY= github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 h1:o0ASbVwUAIrfp/WcCac+6jioZt4Hd8k/1X8u7GJ/QeM= github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7/go.mod h1:vADO6Jn+Rq4nDtfwNjhgR84qkZwiC6FqCaXdw/kYwjA= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.6 h1:dGrs+Q/WzhsiUKh82SfTVN66QzyulXuMDTV/G8ZxOac= -github.com/aws/aws-sdk-go-v2/service/sso v1.18.6/go.mod h1:+mJNDdF+qiUlNKNC3fxn74WWNN+sOiGOEImje+3ScPM= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.6 h1:Yf2MIo9x+0tyv76GljxzqA3WtC5mw7NmazD2chwjxE4= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.6/go.mod h1:ykf3COxYI0UJmxcfcxcVuz7b6uADi1FkiUz6Eb7AgM8= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 h1:NzO4Vrau795RkUdSHKEwiR01FaGzGOH1EETJ+5QHnm0= -github.com/aws/aws-sdk-go-v2/service/sts v1.26.7/go.mod h1:6h2YuIoxaMSCFf5fi1EgZAwdfkGMgDY+DVfa61uLe4U= -github.com/aws/smithy-go v1.19.0 h1:KWFKQV80DpP3vJrrA9sVAHQ5gc2z8i4EzrLhLlWXcBM= -github.com/aws/smithy-go v1.19.0/go.mod h1:NukqUGpCZIILqqiV0NIjeFh24kd/FAa4beRb6nbIUPE= +github.com/aws/aws-sdk-go-v2/service/s3 v1.51.2 h1:ukAaTX8n/pX0Essg9CxW8VCjACv75vnNo2GRONR1w1Q= +github.com/aws/aws-sdk-go-v2/service/s3 v1.51.2/go.mod h1:wt4wZz/CBlJJwY0L7X6vPQ9njh2aHi59knqpJ6B/2cM= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 h1:utEGkfdQ4L6YW/ietH7111ZYglLJvS+sLriHJ1NBJEQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.1/go.mod h1:RsYqzYr2F2oPDdpy+PdhephuZxTfjHQe7SOBcZGoAU8= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1 h1:9/GylMS45hGGFCcMrUZDVayQE1jYSIN6da9jo7RAYIw= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.1/go.mod h1:YjAPFn4kGFqKC54VsHs5fn5B6d+PCY2tziEa3U/GB5Y= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.2 h1:0YjXuWdYHvsm0HnT4vO8XpwG1D+i2roxSCBoN6deJ7M= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.2/go.mod h1:jI+FWmYkSMn+4APWmZiZTgt0oM0TrvymD51FMqCnWgA= +github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= +github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= +github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/containerd v1.7.13 h1:wPYKIeGMN8vaggSKuV1X0wZulpMz4CrgEsZdaCyB6Is= +github.com/containerd/containerd v1.7.13/go.mod h1:zT3up6yTRfEUa6+GsITYIJNgSVL9NQ4x4h1RPzk0Wu4= +github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= +github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/containerd/errdefs v0.1.0 h1:m0wCRBiu1WJT/Fr+iOoQHMQS/eP5myQ8lCv4Dz5ZURM= +github.com/containerd/errdefs v0.1.0/go.mod h1:YgWiiHtLmSeBrvpw+UfPijzbLaB77mEG1WwJTDETIV0= +github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= +github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/ttrpc v1.2.2 h1:9vqZr0pxwOF5koz6N0N3kJ0zDHokrcPxIR/ZR2YFtOs= +github.com/containerd/ttrpc v1.2.2/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak= +github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= +github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4= +github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -65,27 +109,62 @@ github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+ github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= @@ -98,19 +177,31 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a h1:3Bm7EwfUQUvhNeKIkUct/gl9eod1TcXuj8stxvi/GoI= +github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI= +github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -121,114 +212,210 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= +github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= +github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shirou/gopsutil/v3 v3.24.2 h1:kcR0erMbLg5/3LcInpw0X/rrPSqq4CDPyI6A6ZRC18Y= +github.com/shirou/gopsutil/v3 v3.24.2/go.mod h1:tSg/594BcA+8UdQU2XcW803GWYgdtauFFPgJCJKZlVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= +github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= +github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= +github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= +golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= +golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 h1:IR+hp6ypxjH24bkMfEJ0yHR21+gwPWdV+/IBrPQyn3k= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -240,3 +427,5 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 8bdfff5e26414e47bf90336508f68b4d7546e7f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 11:12:41 +0100 Subject: [PATCH 058/115] chore(deps): bump google.golang.org/api in /modules/gcloud (#2317) Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.167.0 to 0.168.0. - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.167.0...v0.168.0) --- updated-dependencies: - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/gcloud/go.mod | 16 ++++++++-------- modules/gcloud/go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 6c438553c2..13d8bee33e 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -11,7 +11,7 @@ require ( cloud.google.com/go/spanner v1.57.0 github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.28.0 - google.golang.org/api v0.167.0 + google.golang.org/api v0.168.0 google.golang.org/grpc v1.62.0 ) @@ -51,7 +51,7 @@ require ( github.com/google/s2a-go v0.1.7 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect - github.com/googleapis/gax-go/v2 v2.12.1 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.16.7 // indirect github.com/klauspost/cpuid/v2 v2.2.5 // indirect @@ -77,11 +77,11 @@ require ( github.com/yusufpapurcu/wmi v1.2.3 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 // indirect - go.opentelemetry.io/otel v1.23.0 // indirect - go.opentelemetry.io/otel/metric v1.23.0 // indirect - go.opentelemetry.io/otel/trace v1.23.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect golang.org/x/crypto v0.19.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/mod v0.16.0 // indirect @@ -96,7 +96,7 @@ require ( google.golang.org/appengine v1.6.8 // indirect google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240304161311-37d4d3c04a78 // indirect google.golang.org/protobuf v1.32.0 // indirect ) diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 9fad13285d..8314d6dc7f 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -137,8 +137,8 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= -github.com/googleapis/gax-go/v2 v2.12.1 h1:9F8GV9r9ztXyAi00gsMQHNoF51xPZm8uj1dpYt2ZETM= -github.com/googleapis/gax-go/v2 v2.12.1/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= @@ -218,22 +218,22 @@ go.einride.tech/aip v0.66.0 h1:XfV+NQX6L7EOYK11yoHHFtndeaWh3KbD9/cN/6iWEt8= go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 h1:P+/g8GpuJGYbOp2tAdKrIPUX9JO02q8Q0YNlHolpibA= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0/go.mod h1:tIKj3DbO8N9Y2xo52og3irLsPI4GW02DSMtrVgNMgxg= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 h1:doUP+ExOpH3spVTLS0FcWGLnQrPct/hD/bCPbDRUEAU= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA= -go.opentelemetry.io/otel v1.23.0 h1:Df0pqjqExIywbMCMTxkAwzjLZtRf+bBKLbUcpxO2C9E= -go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.23.0 h1:pazkx7ss4LFVVYSxYew7L5I6qvLXHA0Ap2pwV+9Cnpo= -go.opentelemetry.io/otel/metric v1.23.0/go.mod h1:MqUW2X2a6Q8RN96E2/nqNoT+z9BSms20Jb7Bbp+HiTo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.23.0 h1:37Ik5Ib7xfYVb4V1UtnT97T1jI+AoIYkJyPkuL4iJgI= -go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -324,8 +324,8 @@ golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSm golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o= gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY= -google.golang.org/api v0.167.0 h1:CKHrQD1BLRii6xdkatBDXyKzM0mkawt2QP+H3LtPmSE= -google.golang.org/api v0.167.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA= +google.golang.org/api v0.168.0 h1:MBRe+Ki4mMN93jhDDbpuRLjRddooArz4FeSObvUMmjY= +google.golang.org/api v0.168.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= @@ -337,8 +337,8 @@ google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJ google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c h1:9g7erC9qu44ks7UK4gDNlnk4kOxZG707xKm4jVniy6o= google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 h1:hZB7eLIaYlW9qXRfCq/qDaPdbeY3757uARz5Vvfv+cY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:YUWgXUFRPfoYK1IHMuxH5K6nPEXSCzIMljnQ59lLRCk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304161311-37d4d3c04a78 h1:Xs9lu+tLXxLIfuci70nG4cpwaRC+mRQPUL7LoIeDJC4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= From f1d45edfb5b7bdaf568504010a21922d9e0b9010 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 11:12:59 +0100 Subject: [PATCH 059/115] chore(deps): bump github.com/elastic/go-elasticsearch/v8 (#2303) Bumps [github.com/elastic/go-elasticsearch/v8](https://github.com/elastic/go-elasticsearch) from 8.11.1 to 8.12.1. - [Release notes](https://github.com/elastic/go-elasticsearch/releases) - [Changelog](https://github.com/elastic/go-elasticsearch/blob/main/CHANGELOG.md) - [Commits](https://github.com/elastic/go-elasticsearch/compare/v8.11.1...v8.12.1) --- updated-dependencies: - dependency-name: github.com/elastic/go-elasticsearch/v8 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/elasticsearch/go.mod | 12 ++++++------ modules/elasticsearch/go.sum | 28 ++++++++++++++-------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index ce575a4ebe..68b70a76c8 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/elasticsearch go 1.21 require ( - github.com/elastic/go-elasticsearch/v8 v8.11.1 + github.com/elastic/go-elasticsearch/v8 v8.12.1 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.28.0 golang.org/x/mod v0.16.0 @@ -23,9 +23,9 @@ require ( github.com/docker/docker v25.0.3+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/elastic/elastic-transport-go/v8 v8.3.0 // indirect + github.com/elastic/elastic-transport-go/v8 v8.4.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/logr v1.3.0 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -52,9 +52,9 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect - go.opentelemetry.io/otel v1.19.0 // indirect - go.opentelemetry.io/otel/metric v1.19.0 // indirect - go.opentelemetry.io/otel/trace v1.19.0 // indirect + go.opentelemetry.io/otel v1.21.0 // indirect + go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/trace v1.21.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/tools v0.13.0 // indirect diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index 685ce05040..3e6fc9d595 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -29,15 +29,15 @@ github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/elastic/elastic-transport-go/v8 v8.3.0 h1:DJGxovyQLXGr62e9nDMPSxRyWION0Bh6d9eCFBriiHo= -github.com/elastic/elastic-transport-go/v8 v8.3.0/go.mod h1:87Tcz8IVNe6rVSLdBux1o/PEItLtyabHU3naC7IoqKI= -github.com/elastic/go-elasticsearch/v8 v8.11.1 h1:1VgTgUTbpqQZ4uE+cPjkOvy/8aw1ZvKcU0ZUE5Cn1mc= -github.com/elastic/go-elasticsearch/v8 v8.11.1/go.mod h1:GU1BJHO7WeamP7UhuElYwzzHtvf9SDmeVpSSy9+o6Qg= +github.com/elastic/elastic-transport-go/v8 v8.4.0 h1:EKYiH8CHd33BmMna2Bos1rDNMM89+hdgcymI+KzJCGE= +github.com/elastic/elastic-transport-go/v8 v8.4.0/go.mod h1:YLHer5cj0csTzNFXoNQ8qhtGY1GTvSqPnKWKaqQE3Hk= +github.com/elastic/go-elasticsearch/v8 v8.12.1 h1:QcuFK5LaZS0pSIj/eAEsxmJWmMo7tUs1aVBbzdIgtnE= +github.com/elastic/go-elasticsearch/v8 v8.12.1/go.mod h1:wSzJYrrKPZQ8qPuqAqc6KMR4HrBfHnZORvyL+FMFqq0= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= @@ -118,18 +118,18 @@ github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFi github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= From c95465a30a828034532a51b7e857ba9e4c6eb14a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:00:52 +0100 Subject: [PATCH 060/115] chore(deps): bump github.com/tmc/langchaingo in /modules/ollama (#2318) Bumps [github.com/tmc/langchaingo](https://github.com/tmc/langchaingo) from 0.1.4 to 0.1.5. - [Release notes](https://github.com/tmc/langchaingo/releases) - [Commits](https://github.com/tmc/langchaingo/compare/v0.1.4...v0.1.5) --- updated-dependencies: - dependency-name: github.com/tmc/langchaingo dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/ollama/go.mod | 6 +++--- modules/ollama/go.sum | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod index 3a89049269..e037e201e8 100644 --- a/modules/ollama/go.mod +++ b/modules/ollama/go.mod @@ -6,12 +6,12 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/google/uuid v1.6.0 github.com/testcontainers/testcontainers-go v0.28.0 - github.com/tmc/langchaingo v0.1.4 + github.com/tmc/langchaingo v0.1.5 ) require ( dario.cat/mergo v1.0.0 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect @@ -28,7 +28,7 @@ require ( github.com/go-ole/go-ole v1.2.6 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/klauspost/compress v1.16.0 // indirect + github.com/klauspost/compress v1.17.2 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect diff --git a/modules/ollama/go.sum b/modules/ollama/go.sum index 54ec224710..106073cddf 100644 --- a/modules/ollama/go.sum +++ b/modules/ollama/go.sum @@ -2,8 +2,8 @@ dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= @@ -56,8 +56,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8 github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4= +github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -105,8 +105,8 @@ github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFA github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= -github.com/tmc/langchaingo v0.1.4 h1:skgT2G6D+BzbRFWg8bGE6MQgLPQ10LpyHxQ4vIhD/8k= -github.com/tmc/langchaingo v0.1.4/go.mod h1:PKtJMXizDxJnT86q7lsVsyzTJqd0P2QKF7wt2jF6Lxk= +github.com/tmc/langchaingo v0.1.5 h1:PNPFu54wn5uVPRt9GS/quRwdFZW4omSab9/dcFAsGmU= +github.com/tmc/langchaingo v0.1.5/go.mod h1:RLtnUED/hH2v765vdjS9Z6gonErZAXURuJHph0BttqM= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= From 324feba2f12e476b97f265163c06ba620caf079d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:01:12 +0100 Subject: [PATCH 061/115] chore(deps): bump github.com/minio/minio-go/v7 in /modules/minio (#2304) Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.66 to 7.0.68. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](https://github.com/minio/minio-go/compare/v7.0.66...v7.0.68) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/minio/go.mod | 10 +++++----- modules/minio/go.sum | 20 ++++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/modules/minio/go.mod b/modules/minio/go.mod index 7e774e564a..76d127180a 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/minio go 1.21 require ( - github.com/minio/minio-go/v7 v7.0.66 + github.com/minio/minio-go/v7 v7.0.68 github.com/testcontainers/testcontainers-go v0.28.0 ) @@ -29,7 +29,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.4 // indirect + github.com/klauspost/compress v1.17.6 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -57,12 +57,12 @@ require ( go.opentelemetry.io/otel v1.19.0 // indirect go.opentelemetry.io/otel/metric v1.19.0 // indirect go.opentelemetry.io/otel/trace v1.19.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.16.0 // indirect - golang.org/x/net v0.19.0 // indirect + golang.org/x/net v0.21.0 // indirect golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect diff --git a/modules/minio/go.sum b/modules/minio/go.sum index deabae3b2d..0d36fd50b3 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -59,8 +59,8 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= -github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.6 h1:60eq2E/jlfwQXtvZEeBUYADs+BwKBWURIY+Gj2eRGjI= +github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.2.6 h1:ndNyv040zDGIDh8thGkXYjnFtiN02M1PVVF+JE/48xc= github.com/klauspost/cpuid/v2 v2.2.6/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= @@ -70,8 +70,8 @@ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0V github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.66 h1:bnTOXOHjOqv/gcMuiVbN9o2ngRItvqE774dG9nq0Dzw= -github.com/minio/minio-go/v7 v7.0.66/go.mod h1:DHAgmyQEGdW3Cif0UooKOyrT3Vxs82zNdV6tkKhRtbs= +github.com/minio/minio-go/v7 v7.0.68 h1:hTqSIfLlpXaKuNy4baAp4Jjy2sqZEN9hRxD0M4aOfrQ= +github.com/minio/minio-go/v7 v7.0.68/go.mod h1:XAvOPJQ5Xlzk5o3o/ArO2NMbhSGkimC+bpW/ngRKDmQ= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= @@ -146,8 +146,8 @@ go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v8 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -158,8 +158,8 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -176,8 +176,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= From 0cfd7a1002ffbd99342d695a2ef1126099688bcd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:01:32 +0100 Subject: [PATCH 062/115] chore(deps): bump github.com/neo4j/neo4j-go-driver/v5 in /modules/neo4j (#2278) Bumps [github.com/neo4j/neo4j-go-driver/v5](https://github.com/neo4j/neo4j-go-driver) from 5.16.0 to 5.18.0. - [Release notes](https://github.com/neo4j/neo4j-go-driver/releases) - [Commits](https://github.com/neo4j/neo4j-go-driver/compare/v5.16.0...v5.18.0) --- updated-dependencies: - dependency-name: github.com/neo4j/neo4j-go-driver/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index e88bd64d4a..4202859c5b 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 - github.com/neo4j/neo4j-go-driver/v5 v5.16.0 + github.com/neo4j/neo4j-go-driver/v5 v5.18.0 github.com/testcontainers/testcontainers-go v0.28.0 ) diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 3c76786737..10b5fc5d46 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -70,8 +70,8 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/neo4j/neo4j-go-driver/v5 v5.16.0 h1:m3ZTjqulwob5HBysu5QdSvFB1+6x8xC9I3hC7yzcN6A= -github.com/neo4j/neo4j-go-driver/v5 v5.16.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k= +github.com/neo4j/neo4j-go-driver/v5 v5.18.0 h1:3dmYsCYt/Fc/bPeSyGRGGfn/T6h06/OmHm72OFQKa3c= +github.com/neo4j/neo4j-go-driver/v5 v5.18.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= From 245c8b01b8480d24a4c54813034340f99fc24c5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:03:02 +0100 Subject: [PATCH 063/115] chore(deps): bump github.com/Shopify/toxiproxy/v2 in /examples/toxiproxy (#2282) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [github.com/Shopify/toxiproxy/v2](https://github.com/Shopify/toxiproxy) from 2.7.0 to 2.8.0. - [Release notes](https://github.com/Shopify/toxiproxy/releases) - [Changelog](https://github.com/Shopify/toxiproxy/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/toxiproxy/compare/v2.7.0...v2.8.0) --- updated-dependencies: - dependency-name: github.com/Shopify/toxiproxy/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Manuel de la Peña --- examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 56308d24fd..939ac5019f 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/examples/toxiproxy go 1.21 require ( - github.com/Shopify/toxiproxy/v2 v2.7.0 + github.com/Shopify/toxiproxy/v2 v2.8.0 github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 github.com/testcontainers/testcontainers-go v0.28.0 diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index dc8b1c8498..dd99d57f9f 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -8,8 +8,8 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/Shopify/toxiproxy/v2 v2.7.0 h1:Zz2jdyqtYw1SpihfMWzLFGpOO92p9effjAkURG57ifc= -github.com/Shopify/toxiproxy/v2 v2.7.0/go.mod h1:k0V84e/dLQmVNuI6S0G7TpXCl611OSRYdptoxm0XTzA= +github.com/Shopify/toxiproxy/v2 v2.8.0 h1:d7OzvAc0Rco3QO8jVsDSfadQ1up0Ca42hK+EGEpnQWs= +github.com/Shopify/toxiproxy/v2 v2.8.0/go.mod h1:k0V84e/dLQmVNuI6S0G7TpXCl611OSRYdptoxm0XTzA= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= From ba92e0e64a40ea390def1c697d9ab60a2dddaac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 13:10:42 +0100 Subject: [PATCH 064/115] chore(deps): bump github.com/ClickHouse/clickhouse-go/v2 (#2290) Bumps [github.com/ClickHouse/clickhouse-go/v2](https://github.com/ClickHouse/clickhouse-go) from 2.18.0 to 2.20.0. - [Release notes](https://github.com/ClickHouse/clickhouse-go/releases) - [Changelog](https://github.com/ClickHouse/clickhouse-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/ClickHouse/clickhouse-go/compare/v2.18.0...v2.20.0) --- updated-dependencies: - dependency-name: github.com/ClickHouse/clickhouse-go/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/clickhouse/go.mod | 20 +++++++-------- modules/clickhouse/go.sum | 52 +++++++++++++++++++-------------------- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index a3a593ce48..d7280ffbee 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/clickhouse go 1.21 require ( - github.com/ClickHouse/clickhouse-go/v2 v2.18.0 + github.com/ClickHouse/clickhouse-go/v2 v2.20.0 github.com/cenkalti/backoff/v4 v4.2.1 github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 @@ -13,7 +13,7 @@ require ( require ( dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/ClickHouse/ch-go v0.58.2 // indirect + github.com/ClickHouse/ch-go v0.61.3 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/andybalholm/brotli v1.1.0 // indirect @@ -26,14 +26,14 @@ require ( github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-faster/city v1.0.1 // indirect - github.com/go-faster/errors v0.6.1 // indirect + github.com/go-faster/errors v0.7.1 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect - github.com/klauspost/compress v1.16.7 // indirect + github.com/klauspost/compress v1.17.7 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect @@ -44,7 +44,7 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/paulmach/orb v0.11.1 // indirect - github.com/pierrec/lz4/v4 v4.1.18 // indirect + github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect @@ -57,14 +57,14 @@ require ( github.com/tklauser/numcpus v0.6.1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect - go.opentelemetry.io/otel v1.22.0 // indirect - go.opentelemetry.io/otel/metric v1.22.0 // indirect - go.opentelemetry.io/otel/trace v1.22.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.16.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/tools v0.14.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index c934c17e6c..36075b6210 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -4,10 +4,10 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9 github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/ClickHouse/ch-go v0.58.2 h1:jSm2szHbT9MCAB1rJ3WuCJqmGLi5UTjlNu+f530UTS0= -github.com/ClickHouse/ch-go v0.58.2/go.mod h1:Ap/0bEmiLa14gYjCiRkYGbXvbe8vwdrfTYWhsuQ99aw= -github.com/ClickHouse/clickhouse-go/v2 v2.18.0 h1:O1LicIeg2JS2V29fKRH4+yT3f6jvvcJBm506dpVQ4mQ= -github.com/ClickHouse/clickhouse-go/v2 v2.18.0/go.mod h1:ztQvX6wm7kAbhJslS87EXEhOVNY/TObXwyURnGju5FQ= +github.com/ClickHouse/ch-go v0.61.3 h1:MmBwUhXrAOBZK7n/sWBzq6FdIQ01cuF2SaaO8KlDRzI= +github.com/ClickHouse/ch-go v0.61.3/go.mod h1:1PqXjMz/7S1ZUaKvwPA3i35W2bz2mAMFeCi6DIXgGwQ= +github.com/ClickHouse/clickhouse-go/v2 v2.20.0 h1:bvlLQ31XJfl7MxIqAq2l1G6JhHYzqEXdvfpMeU6bkKc= +github.com/ClickHouse/clickhouse-go/v2 v2.20.0/go.mod h1:VQfyA+tCwCRw2G7ogfY8V0fq/r0yJWzy8UDrjiP/Lbs= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= @@ -39,8 +39,8 @@ github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBd github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw= github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw= -github.com/go-faster/errors v0.6.1 h1:nNIPOBkprlKzkThvS/0YaX8Zs9KewLCOSFQS5BU06FI= -github.com/go-faster/errors v0.6.1/go.mod h1:5MGV2/2T9yvlrbhe9pD9LO5Z/2zCSq2T8j+Jpi2LAyY= +github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg= +github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= @@ -67,8 +67,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9K github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= +github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -97,8 +97,8 @@ github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2sz github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU= github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU= github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY= -github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= -github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= +github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -145,18 +145,18 @@ github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQ go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= -go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= -go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= -go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= -go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= -go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= -go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/sdk v1.23.1 h1:O7JmZw0h76if63LQdsBMKQDWNb5oEcOThG9IrxscV+E= +go.opentelemetry.io/otel/sdk v1.23.1/go.mod h1:LzdEVR5am1uKOOwfBWFef2DCi1nu3SA8XQxx2IerWFk= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -174,14 +174,14 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -195,8 +195,8 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -210,8 +210,8 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 755bbb80b7d1884cc8ced6451816e5c71948e067 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 13:37:34 +0100 Subject: [PATCH 065/115] chore(deps): bump google.golang.org/grpc in /modules/qdrant (#2281) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.61.1 to 1.62.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.61.1...v1.62.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- modules/qdrant/go.mod | 8 ++++---- modules/qdrant/go.sum | 26 +++++++++++++------------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 89ee3f6729..26e688c870 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/qdrant/go-client v1.7.0 github.com/testcontainers/testcontainers-go v0.28.0 - google.golang.org/grpc v1.61.1 + google.golang.org/grpc v1.62.0 ) require ( @@ -52,12 +52,12 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect golang.org/x/mod v0.16.0 // indirect - golang.org/x/net v0.18.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.13.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect + google.golang.org/protobuf v1.32.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index c0e2401a83..3c65d349ab 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -136,13 +136,13 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= -golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -171,17 +171,17 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= -google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= -google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 h1:AjyfHzEPEFp/NpvfN5g+KDla3EMojjhRVZc1i7cj+oM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= +google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From 85361febea2bf21131e3a7816254d18ccf5b0ff2 Mon Sep 17 00:00:00 2001 From: pablochacin Date: Tue, 5 Mar 2024 17:35:29 +0100 Subject: [PATCH 066/115] Add k3s WithManifest option (#1920) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add WithManifest option to k3s Signed-off-by: Pablo Chacin * Use new copy file feature to copy manifest Co-authored-by: Manuel de la Peña * Fix missing bracket Signed-off-by: Pablo Chacin --------- Signed-off-by: Pablo Chacin Co-authored-by: Manuel de la Peña --- docs/modules/k3s.md | 14 ++++++++++++++ modules/k3s/k3s.go | 16 ++++++++++++++++ modules/k3s/k3s_test.go | 21 +++++++++++++++++++++ modules/k3s/nginx-manifest.yaml | 14 ++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 modules/k3s/nginx-manifest.yaml diff --git a/docs/modules/k3s.md b/docs/modules/k3s.md index 3e448b8e45..c6edd0d255 100644 --- a/docs/modules/k3s.md +++ b/docs/modules/k3s.md @@ -49,6 +49,20 @@ for K3s. E.g. `testcontainers.WithImage("docker.io/rancher/k3s:v1.27.1-k3s1")`. {% include "../features/common_functional_options.md" %} +## WithManifest + +The `WithManifest` option loads a manifest obtained from a local file into the cluster. K3s applies it automatically during the startup process + +```golang +func WithManifest(manifestPath string) testcontainers.CustomizeRequestOption +``` + +Example: + +```golang + WithManifest("nginx-manifest.yaml") +``` + ### Container Methods The K3s container exposes the following methods: diff --git a/modules/k3s/k3s.go b/modules/k3s/k3s.go index 0f7ccb4d16..83fdde4338 100644 --- a/modules/k3s/k3s.go +++ b/modules/k3s/k3s.go @@ -29,6 +29,22 @@ type K3sContainer struct { testcontainers.Container } +// path to the k3s manifests directory +const k3sManifests = "/var/lib/rancher/k3s/server/manifests/" + +// WithManifest loads the manifest into the cluster. K3s applies it automatically during the startup process +func WithManifest(manifestPath string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + manifest := filepath.Base(manifestPath) + target := k3sManifests + manifest + + req.Files = append(req.Files, testcontainers.ContainerFile{ + HostFilePath: manifestPath, + ContainerFilePath: target, + }) + } +} + // RunContainer creates an instance of the K3s container type func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*K3sContainer, error) { host, err := getContainerHost(ctx, opts...) diff --git a/modules/k3s/k3s_test.go b/modules/k3s/k3s_test.go index 65510c037c..2a91a335ec 100644 --- a/modules/k3s/k3s_test.go +++ b/modules/k3s/k3s_test.go @@ -12,6 +12,7 @@ import ( "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/k3s" + "github.com/testcontainers/testcontainers-go/wait" ) func Test_LoadImages(t *testing.T) { @@ -161,3 +162,23 @@ func Test_APIServerReady(t *testing.T) { t.Fatalf("failed to create pod %v", err) } } + +func Test_WithManifestOption(t *testing.T) { + ctx := context.Background() + + k3sContainer, err := k3s.RunContainer(ctx, + testcontainers.WithImage("docker.io/rancher/k3s:v1.27.1-k3s1"), + k3s.WithManifest("nginx-manifest.yaml"), + testcontainers.WithWaitStrategy(wait.ForExec([]string{"kubectl", "wait", "pod", "nginx","--for=condition=Ready"})), + ) + if err != nil { + t.Fatal(err) + } + + // Clean up the container + defer func() { + if err := k3sContainer.Terminate(ctx); err != nil { + t.Fatal(err) + } + }() +} diff --git a/modules/k3s/nginx-manifest.yaml b/modules/k3s/nginx-manifest.yaml new file mode 100644 index 0000000000..fd552a1a24 --- /dev/null +++ b/modules/k3s/nginx-manifest.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Pod +metadata: + labels: + run: pod + name: nginx + namespace: default +spec: + containers: + - name: pod + image: nginx + imagePullPolicy: Always + + \ No newline at end of file From cfd60e9f7b1ca44d4fce3b6860a62ab03c129239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 6 Mar 2024 11:13:56 +0100 Subject: [PATCH 067/115] chore: confirm support for new mongo images (#2326) --- docs/modules/mongodb.md | 4 +- modules/mongodb/examples_test.go | 121 ++++++++++++++++++++++++ modules/mongodb/mongodb_test.go | 157 +++++++++++-------------------- 3 files changed, 177 insertions(+), 105 deletions(-) create mode 100644 modules/mongodb/examples_test.go diff --git a/docs/modules/mongodb.md b/docs/modules/mongodb.md index 58409e6449..31cb5dc38e 100644 --- a/docs/modules/mongodb.md +++ b/docs/modules/mongodb.md @@ -17,7 +17,7 @@ go get github.com/testcontainers/testcontainers-go/modules/mongodb ## Usage example -[Creating a MongoDB container](../../modules/mongodb/mongodb_test.go) inside_block:runMongoDBContainer +[Creating a MongoDB container](../../modules/mongodb/examples_test.go) inside_block:runMongoDBContainer ## Module reference @@ -72,5 +72,5 @@ It returns a string with the format `mongodb://:`. It can be use to configure a MongoDB client (`go.mongodb.org/mongo-driver/mongo`), e.g.: -[Using ConnectionString with the MongoDB client](../../modules/mongodb/mongodb_test.go) inside_block:connectToMongo +[Using ConnectionString with the MongoDB client](../../modules/mongodb/examples_test.go) inside_block:connectToMongo diff --git a/modules/mongodb/examples_test.go b/modules/mongodb/examples_test.go new file mode 100644 index 0000000000..8e936a7c64 --- /dev/null +++ b/modules/mongodb/examples_test.go @@ -0,0 +1,121 @@ +package mongodb_test + +import ( + "context" + "fmt" + "log" + "strings" + + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/mongodb" + "github.com/testcontainers/testcontainers-go/wait" +) + +func ExampleRunContainer() { + // runMongoDBContainer { + ctx := context.Background() + + mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage("mongo:6")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := mongodbContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) + } + }() + // } + + state, err := mongodbContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_connect() { + // connectToMongo { + ctx := context.Background() + + mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage("mongo:6")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := mongodbContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) + } + }() + + endpoint, err := mongodbContainer.ConnectionString(ctx) + if err != nil { + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic + } + + mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(endpoint)) + if err != nil { + log.Fatalf("failed to connect to MongoDB: %s", err) + } + // } + + err = mongoClient.Ping(ctx, nil) + if err != nil { + log.Fatalf("failed to ping MongoDB: %s", err) + } + + fmt.Println(mongoClient.Database("test").Name()) + + // Output: + // test +} + +func ExampleRunContainer_withCredentials() { + ctx := context.Background() + + container, err := mongodb.RunContainer(ctx, + testcontainers.WithImage("mongo:6"), + mongodb.WithUsername("root"), + mongodb.WithPassword("password"), + testcontainers.WithWaitStrategy(wait.ForLog("Waiting for connections")), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := container.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) + } + }() + + connStr, err := container.ConnectionString(ctx) + if err != nil { + log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic + } + + mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(connStr)) + if err != nil { + log.Fatalf("failed to connect to MongoDB: %s", err) + } + + err = mongoClient.Ping(ctx, nil) + if err != nil { + log.Fatalf("failed to ping MongoDB: %s", err) + } + fmt.Println(strings.Split(connStr, "@")[0]) + + // Output: + // mongodb://root:password +} diff --git a/modules/mongodb/mongodb_test.go b/modules/mongodb/mongodb_test.go index 8e936a7c64..9326509f09 100644 --- a/modules/mongodb/mongodb_test.go +++ b/modules/mongodb/mongodb_test.go @@ -2,120 +2,71 @@ package mongodb_test import ( "context" - "fmt" "log" - "strings" + "testing" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/mongodb" - "github.com/testcontainers/testcontainers-go/wait" ) -func ExampleRunContainer() { - // runMongoDBContainer { - ctx := context.Background() - - mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage("mongo:6")) - if err != nil { - log.Fatalf("failed to start container: %s", err) - } - - // Clean up the container - defer func() { - if err := mongodbContainer.Terminate(ctx); err != nil { - log.Fatalf("failed to terminate container: %s", err) - } - }() - // } - - state, err := mongodbContainer.State(ctx) - if err != nil { - log.Fatalf("failed to get container state: %s", err) // nolint:gocritic - } - - fmt.Println(state.Running) - - // Output: - // true -} - -func ExampleRunContainer_connect() { - // connectToMongo { - ctx := context.Background() - - mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage("mongo:6")) - if err != nil { - log.Fatalf("failed to start container: %s", err) - } - - // Clean up the container - defer func() { - if err := mongodbContainer.Terminate(ctx); err != nil { - log.Fatalf("failed to terminate container: %s", err) - } - }() - - endpoint, err := mongodbContainer.ConnectionString(ctx) - if err != nil { - log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic - } - - mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(endpoint)) - if err != nil { - log.Fatalf("failed to connect to MongoDB: %s", err) - } - // } - - err = mongoClient.Ping(ctx, nil) - if err != nil { - log.Fatalf("failed to ping MongoDB: %s", err) - } - - fmt.Println(mongoClient.Database("test").Name()) - - // Output: - // test -} - -func ExampleRunContainer_withCredentials() { - ctx := context.Background() - - container, err := mongodb.RunContainer(ctx, - testcontainers.WithImage("mongo:6"), - mongodb.WithUsername("root"), - mongodb.WithPassword("password"), - testcontainers.WithWaitStrategy(wait.ForLog("Waiting for connections")), - ) - if err != nil { - log.Fatalf("failed to start container: %s", err) +func TestMongoDB(t *testing.T) { + type tests struct { + name string + image string } - - // Clean up the container - defer func() { - if err := container.Terminate(ctx); err != nil { - log.Fatalf("failed to terminate container: %s", err) - } - }() - - connStr, err := container.ConnectionString(ctx) - if err != nil { - log.Fatalf("failed to get connection string: %s", err) // nolint:gocritic + testCases := []tests{ + { + name: "From Docker Hub", + image: "mongo:6", + }, + { + name: "Community Server", + image: "mongodb/mongodb-community-server:7.0.2-ubi8", + }, + { + name: "Enterprise Server", + image: "mongodb/mongodb-enterprise-server:7.0.0-ubi8", + }, } - mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(connStr)) - if err != nil { - log.Fatalf("failed to connect to MongoDB: %s", err) + for _, tc := range testCases { + t.Run(tc.image, func(t *testing.T) { + t.Parallel() + + ctx := context.Background() + + mongodbContainer, err := mongodb.RunContainer(ctx, testcontainers.WithImage(tc.image)) + if err != nil { + t.Fatalf("failed to start container: %s", err) + } + + defer func() { + if err := mongodbContainer.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }() + + endpoint, err := mongodbContainer.ConnectionString(ctx) + if err != nil { + t.Fatalf("failed to get connection string: %s", err) + } + + mongoClient, err := mongo.Connect(ctx, options.Client().ApplyURI(endpoint)) + if err != nil { + t.Fatalf("failed to connect to MongoDB: %s", err) + } + + err = mongoClient.Ping(ctx, nil) + if err != nil { + log.Fatalf("failed to ping MongoDB: %s", err) + } + + if mongoClient.Database("test").Name() != "test" { + t.Fatalf("failed to connect to the correct database") + } + }) } - - err = mongoClient.Ping(ctx, nil) - if err != nil { - log.Fatalf("failed to ping MongoDB: %s", err) - } - fmt.Println(strings.Split(connStr, "@")[0]) - - // Output: - // mongodb://root:password } From 12f23f8a7270c33c5a16f9a21f7cfd1d73572914 Mon Sep 17 00:00:00 2001 From: Jordan Pittier Date: Wed, 6 Mar 2024 11:14:14 +0100 Subject: [PATCH 068/115] generic.go: GenericContainer(): clearer error message (#2327) It's customary to prefix an actual Go error with a generic message explaining the error context. Ir looks like it's already done this way everywhere [1] else in the code base, but not here. [1] https://github.com/search?q=repo%3Atestcontainers%2Ftestcontainers-go%20%22failed%20to%20start%20container%22&type=code --- container_test.go | 2 +- generic.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/container_test.go b/container_test.go index bea5ef02c0..80320af310 100644 --- a/container_test.go +++ b/container_test.go @@ -320,7 +320,7 @@ func Test_GetLogsFromFailedContainer(t *testing.T) { Started: true, }) - if err != nil && err.Error() != "container exited with code 0: failed to start container" { + if err != nil && err.Error() != "failed to start container: container exited with code 0" { t.Fatal(err) } else if err == nil { terminateContainerOnEnd(t, ctx, c) diff --git a/generic.go b/generic.go index ad851b3de1..65fec35c88 100644 --- a/generic.go +++ b/generic.go @@ -79,7 +79,7 @@ func GenericContainer(ctx context.Context, req GenericContainerRequest) (Contain if req.Started && !c.IsRunning() { if err := c.Start(ctx); err != nil { - return c, fmt.Errorf("%w: failed to start container", err) + return c, fmt.Errorf("failed to start container: %w", err) } } return c, nil From c17ba622263d5e8ed704e11008d7621ea8af4070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 6 Mar 2024 14:29:37 +0100 Subject: [PATCH 069/115] chore: use new version (v0.29.0) in modules and examples --- docs/features/common_functional_options.md | 4 +- docs/modules/chroma.md | 2 +- docs/modules/milvus.md | 2 +- docs/modules/ollama.md | 2 +- docs/modules/opensearch.md | 2 +- docs/modules/qdrant.md | 2 +- docs/modules/surrealdb.md | 2 +- docs/modules/weaviate.md | 2 +- examples/nginx/go.mod | 2 +- examples/toxiproxy/go.mod | 2 +- mkdocs.yml | 2 +- modules/artemis/go.mod | 2 +- modules/cassandra/go.mod | 2 +- modules/chroma/go.mod | 2 +- modules/clickhouse/go.mod | 2 +- modules/cockroachdb/go.mod | 2 +- modules/compose/go.mod | 2 +- modules/consul/go.mod | 2 +- modules/couchbase/go.mod | 2 +- modules/elasticsearch/go.mod | 2 +- modules/gcloud/go.mod | 2 +- modules/inbucket/go.mod | 2 +- modules/k3s/go.mod | 2 +- modules/k6/go.mod | 2 +- modules/kafka/go.mod | 2 +- modules/localstack/go.mod | 23 +-- modules/localstack/go.sum | 185 +-------------------- modules/mariadb/go.mod | 2 +- modules/milvus/go.mod | 2 +- modules/minio/go.mod | 2 +- modules/mockserver/go.mod | 2 +- modules/mongodb/go.mod | 2 +- modules/mssql/go.mod | 2 +- modules/mysql/go.mod | 2 +- modules/nats/go.mod | 2 +- modules/neo4j/go.mod | 2 +- modules/ollama/go.mod | 2 +- modules/openldap/go.mod | 2 +- modules/opensearch/go.mod | 2 +- modules/postgres/go.mod | 2 +- modules/pulsar/go.mod | 2 +- modules/qdrant/go.mod | 2 +- modules/rabbitmq/go.mod | 2 +- modules/redis/go.mod | 2 +- modules/redpanda/go.mod | 2 +- modules/surrealdb/go.mod | 2 +- modules/vault/go.mod | 2 +- modules/weaviate/go.mod | 2 +- sonar-project.properties | 2 +- 49 files changed, 50 insertions(+), 254 deletions(-) diff --git a/docs/features/common_functional_options.md b/docs/features/common_functional_options.md index 8a86718efe..288093941c 100644 --- a/docs/features/common_functional_options.md +++ b/docs/features/common_functional_options.md @@ -17,7 +17,7 @@ Using the `WithImageSubstitutors` options, you could define your own substitutio #### WithEnv -- Not available until the next release of testcontainers-go :material-tag: main +- Since testcontainers-go :material-tag: v0.29.0 If you need to either pass additional environment variables to a container or override them, you can use `testcontainers.WithEnv` for example: @@ -43,7 +43,7 @@ func (g *TestLogConsumer) Accept(l Log) { #### WithLogger -- Not available until the next release of testcontainers-go :material-tag: main +- Since testcontainers-go :material-tag: v0.29.0 If you need to either pass logger to a container, you can use `testcontainers.WithLogger`. diff --git a/docs/modules/chroma.md b/docs/modules/chroma.md index 7aefb2a456..bb44b5d54c 100644 --- a/docs/modules/chroma.md +++ b/docs/modules/chroma.md @@ -1,6 +1,6 @@ # Chroma -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/docs/modules/milvus.md b/docs/modules/milvus.md index cd1ac6ecf3..4051316ff8 100644 --- a/docs/modules/milvus.md +++ b/docs/modules/milvus.md @@ -1,6 +1,6 @@ # Milvus -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/docs/modules/ollama.md b/docs/modules/ollama.md index 7f750619dc..19cde849c3 100644 --- a/docs/modules/ollama.md +++ b/docs/modules/ollama.md @@ -1,6 +1,6 @@ # Ollama -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/docs/modules/opensearch.md b/docs/modules/opensearch.md index 3340467b73..2046532db8 100644 --- a/docs/modules/opensearch.md +++ b/docs/modules/opensearch.md @@ -1,6 +1,6 @@ # OpenSearch -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/docs/modules/qdrant.md b/docs/modules/qdrant.md index 22c7d30d40..3d75c35433 100644 --- a/docs/modules/qdrant.md +++ b/docs/modules/qdrant.md @@ -1,6 +1,6 @@ # Qdrant -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/docs/modules/surrealdb.md b/docs/modules/surrealdb.md index 2400619404..9d026c0986 100644 --- a/docs/modules/surrealdb.md +++ b/docs/modules/surrealdb.md @@ -1,6 +1,6 @@ # SurrealDB -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/docs/modules/weaviate.md b/docs/modules/weaviate.md index 0d0345f1d6..3587f8c6a0 100644 --- a/docs/modules/weaviate.md +++ b/docs/modules/weaviate.md @@ -1,6 +1,6 @@ # Weaviate -Not available until the next release of testcontainers-go :material-tag: main +Since testcontainers-go :material-tag: v0.29.0 ## Introduction diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 80dc1f8a60..91945ce4db 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -2,7 +2,7 @@ module github.com/testcontainers/testcontainers-go/examples/nginx go 1.21 -require github.com/testcontainers/testcontainers-go v0.28.0 +require github.com/testcontainers/testcontainers-go v0.29.0 replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 939ac5019f..5f593f6700 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -6,7 +6,7 @@ require ( github.com/Shopify/toxiproxy/v2 v2.8.0 github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/mkdocs.yml b/mkdocs.yml index 8c331f19b1..958eae201b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -124,4 +124,4 @@ nav: - Getting help: getting_help.md edit_uri: edit/main/docs/ extra: - latest_version: v0.28.0 + latest_version: v0.29.0 diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 919ed516b7..7b6592bbe7 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/go-stomp/stomp/v3 v3.0.5 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index 4751fff254..560c14551a 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/gocql/gocql v1.6.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index 6e926f0f60..374f959c65 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/amikos-tech/chroma-go v0.0.1 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index d7280ffbee..2f39c222dd 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -7,7 +7,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 13710f912a..3ea9140ae3 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/jackc/pgx/v5 v5.5.4 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/compose/go.mod b/modules/compose/go.mod index a998191c21..9ede500d5b 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -11,7 +11,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 golang.org/x/sync v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 94f127730d..a46bcbf693 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/hashicorp/consul/api v1.27.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 282f8b3cfa..58c04bcdff 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -8,7 +8,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/couchbase/gocb/v2 v2.7.2 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 github.com/tidwall/gjson v1.17.1 ) diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 68b70a76c8..33ba6d0b65 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/elastic/go-elasticsearch/v8 v8.12.1 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 golang.org/x/mod v0.16.0 ) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 13d8bee33e..3aeab174b3 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -10,7 +10,7 @@ require ( cloud.google.com/go/pubsub v1.36.2 cloud.google.com/go/spanner v1.57.0 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 google.golang.org/api v0.168.0 google.golang.org/grpc v1.62.0 ) diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index a6ad97b359..6f42e4c63f 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/inbucket/inbucket v2.0.0+incompatible - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index 884d726384..257044feb1 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.29.2 k8s.io/apimachinery v0.29.2 diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 318e01989c..6d63b81ad5 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 00f0f837e2..1147ac0ec4 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/IBM/sarama v1.42.1 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 golang.org/x/mod v0.16.0 ) diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index d14ebb4427..98bf716682 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -11,14 +11,12 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 golang.org/x/mod v0.16.0 ) require ( dario.cat/mergo v1.0.0 // indirect - github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect - github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.12.0 // indirect @@ -37,45 +35,31 @@ require ( github.com/aws/aws-sdk-go-v2/service/sts v1.28.2 // indirect github.com/aws/smithy-go v1.20.1 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect - github.com/containerd/cgroups/v3 v3.0.2 // indirect github.com/containerd/containerd v1.7.13 // indirect - github.com/containerd/continuity v0.4.2 // indirect - github.com/containerd/errdefs v0.1.0 // indirect - github.com/containerd/fifo v1.1.0 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/containerd/ttrpc v1.2.2 // indirect - github.com/containerd/typeurl/v2 v2.1.1 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.1 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect - github.com/google/go-cmp v0.6.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/klauspost/compress v1.17.7 // indirect github.com/kr/text v0.2.0 // indirect github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a // indirect github.com/magiconair/properties v1.8.7 // indirect - github.com/moby/locker v1.0.1 // indirect github.com/moby/patternmatcher v0.6.0 // indirect - github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/sys/sequential v0.5.0 // indirect - github.com/moby/sys/signal v0.7.0 // indirect github.com/moby/sys/user v0.1.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/opencontainers/runtime-spec v1.1.0 // indirect - github.com/opencontainers/selinux v1.11.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect @@ -85,18 +69,13 @@ require ( github.com/tklauser/go-sysconf v0.3.13 // indirect github.com/tklauser/numcpus v0.7.0 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - go.opencensus.io v0.24.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect go.opentelemetry.io/otel v1.24.0 // indirect go.opentelemetry.io/otel/metric v1.24.0 // indirect go.opentelemetry.io/otel/trace v1.24.0 // indirect golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect - golang.org/x/net v0.22.0 // indirect - golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.18.0 // indirect - golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.19.0 // indirect - google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect google.golang.org/grpc v1.62.0 // indirect google.golang.org/protobuf v1.32.0 // indirect diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index 69c7d75a90..bea13ded04 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -1,33 +1,19 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 h1:59MxjQVfjXsBpLy+dbd2/ELV5ofnUkUZBvWSC85sheA= -github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= -github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= github.com/Microsoft/hcsshim v0.12.0 h1:rbICA+XZFwrBef2Odk++0LjFvClNCJGRK+fsrP254Ts= github.com/Microsoft/hcsshim v0.12.0/go.mod h1:RZV12pcHCXQ42XnlQ3pz6FZfmrC1C+R4gaOHhRNML1g= -github.com/aws/aws-sdk-go v1.49.19 h1:oZryiqeQpeJsIcAmZlp86duMu/s/DJ43qyfwa51qmLg= -github.com/aws/aws-sdk-go v1.49.19/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go v1.50.31 h1:gx2NRLLEDUmQFC4YUsfMUKkGCwpXVO8ijUecq/nOQGA= github.com/aws/aws-sdk-go v1.50.31/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.25.2 h1:/uiG1avJRgLGiQM9X3qJM8+Qa6KRGK5rRPuXE0HUM+w= github.com/aws/aws-sdk-go-v2 v1.25.2/go.mod h1:Evoc5AsmtveRt1komDwIsjHFyrP5tDuF1D1U+6z6pNo= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4 h1:OCs21ST2LrepDfD3lwlQiOqIGp6JiEUqG84GzTDoyJs= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.5.4/go.mod h1:usURWEKSNNAcAZuzRn/9ZYPT8aZQkR7xcCtunK/LkJo= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= -github.com/aws/aws-sdk-go-v2/config v1.26.3 h1:dKuc2jdp10y13dEEvPqWxqLoc0vF3Z9FC45MvuQSxOA= -github.com/aws/aws-sdk-go-v2/config v1.26.3/go.mod h1:Bxgi+DeeswYofcYO0XyGClwlrq3DZEXli0kLf4hkGA0= github.com/aws/aws-sdk-go-v2/config v1.27.5 h1:brBPsyRFQn97M1ZhQ9tLXkO7Zytiar0NS06FGmEJBdg= github.com/aws/aws-sdk-go-v2/config v1.27.5/go.mod h1:I53uvsfddRRTG5YcC4n5Z3aOD1BU8hYCoIG7iEJG4wM= github.com/aws/aws-sdk-go-v2/credentials v1.17.5 h1:yn3zSvIKC2NZIs40cY3kckcy9Zma96PrRR07N54PCvY= @@ -38,28 +24,18 @@ github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2 h1:bNo4LagzUKbjdxE0tI github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.2/go.mod h1:wRQv0nN6v9wDXuWThpovGQjqF1HFdcgWjporw14lS8k= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2 h1:EtOU5jsPdIQNP+6Q2C5e3d65NKT1PeCiQk+9OdzO12Q= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.2/go.mod h1:tyF5sKccmDz0Bv4NrstEr+/9YkSPJHrcO7UsUKf7pWM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 h1:GrSw8s0Gs/5zZ0SX+gX4zQjRnRsMJDJ2sLur1gRBhEM= -github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2/go.mod h1:6fQQgfuGmw8Al/3M2IgIllycxV7ZW7WCdVSqfBeUiCY= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9 h1:ugD6qzjYtB7zM5PN/ZIeaAIyefPaD82G8+SJopgvUpw= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.2.9/go.mod h1:YD0aYBWCrPENpHolhKw2XDlTIWae2GKXT1T4o6N6hiM= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2 h1:en92G0Z7xlksoOylkUhuBSfJgijC7rHVLRdnIlHEs0E= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.2/go.mod h1:HgtQ/wN5G+8QSlK62lbOtNwQ3wTSByJ4wH2rCkPt+AE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9 h1:/90OR2XbSYfXucBMJ4U14wrjlfleq/0SB6dZDPncgmo= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.2.9/go.mod h1:dN/Of9/fNZet7UrQQ6kTDo/VSwKPIq94vjlU16bRARc= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.3 h1:fpFzBoro/MetYBk+8kxoQGMeKSkXbymnbUh2gy6nVgk= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.3/go.mod h1:qmQPbMe5NQk/nEmpkl8iHyCSREJjEbRUrnqHpHabLlM= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.3 h1:x0N5ftQzgcfRpCpTiyZC40pvNUJYhzf4UgCsAyO6/P8= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.3/go.mod h1:Ru7vg1iQ7cR4i7SZ/JTLYN9kaXtbL69UdgG0OQWQxW0= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9 h1:iEAeF6YC3l4FzlJPP9H3Ko1TXpdjdqWffxXjp8SY6uk= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.16.9/go.mod h1:kjsXoK23q9Z/tLBrckZLLyvjhZoS+AGrzqzUfEClvMM= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2 h1:1oY1AVEisRI4HNuFoLdRUB0hC63ylDAN6Me3MrfclEg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.2/go.mod h1:KZ03VgvZwSjkT7fOetQ/wF3MZUvYFirlI1H5NklUNsY= -github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7 h1:o0ASbVwUAIrfp/WcCac+6jioZt4Hd8k/1X8u7GJ/QeM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.47.7/go.mod h1:vADO6Jn+Rq4nDtfwNjhgR84qkZwiC6FqCaXdw/kYwjA= github.com/aws/aws-sdk-go-v2/service/s3 v1.51.2 h1:ukAaTX8n/pX0Essg9CxW8VCjACv75vnNo2GRONR1w1Q= github.com/aws/aws-sdk-go-v2/service/s3 v1.51.2/go.mod h1:wt4wZz/CBlJJwY0L7X6vPQ9njh2aHi59knqpJ6B/2cM= github.com/aws/aws-sdk-go-v2/service/sso v1.20.1 h1:utEGkfdQ4L6YW/ietH7111ZYglLJvS+sLriHJ1NBJEQ= @@ -72,29 +48,10 @@ github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= -github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= -github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= -github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= github.com/containerd/containerd v1.7.13 h1:wPYKIeGMN8vaggSKuV1X0wZulpMz4CrgEsZdaCyB6Is= github.com/containerd/containerd v1.7.13/go.mod h1:zT3up6yTRfEUa6+GsITYIJNgSVL9NQ4x4h1RPzk0Wu4= -github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= -github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= -github.com/containerd/errdefs v0.1.0 h1:m0wCRBiu1WJT/Fr+iOoQHMQS/eP5myQ8lCv4Dz5ZURM= -github.com/containerd/errdefs v0.1.0/go.mod h1:YgWiiHtLmSeBrvpw+UfPijzbLaB77mEG1WwJTDETIV0= -github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY= -github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/containerd/ttrpc v1.2.2 h1:9vqZr0pxwOF5koz6N0N3kJ0zDHokrcPxIR/ZR2YFtOs= -github.com/containerd/ttrpc v1.2.2/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak= -github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= -github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4= -github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -109,62 +66,28 @@ github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+ github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= -github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= -github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= -github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= -github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= -github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= @@ -175,33 +98,21 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= -github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a h1:3Bm7EwfUQUvhNeKIkUct/gl9eod1TcXuj8stxvi/GoI= github.com/lufia/plan9stats v0.0.0-20240226150601-1dcf7310316a/go.mod h1:ilwx/Dta8jXAgpFYFvSWEMwxmbWXyiUHkd5FwyKhb5k= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= -github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= -github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/signal v0.7.0 h1:25RW3d5TnQEoKvRbEKUGay6DCQ46IxAVTT9CUMgmsSI= -github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= @@ -212,80 +123,54 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= -github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= -github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shirou/gopsutil/v3 v3.24.2 h1:kcR0erMbLg5/3LcInpw0X/rrPSqq4CDPyI6A6ZRC18Y= github.com/shirou/gopsutil/v3 v3.24.2/go.mod h1:tSg/594BcA+8UdQU2XcW803GWYgdtauFFPgJCJKZlVk= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= github.com/tklauser/go-sysconf v0.3.13 h1:GBUpcahXSpR2xN01jhkNAbTLRk2Yzgggk8IM08lq3r4= github.com/tklauser/go-sysconf v0.3.13/go.mod h1:zwleP4Q4OehZHGn4CYZDipCgg9usW5IJePewFCGVEa0= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/tklauser/numcpus v0.7.0 h1:yjuerZP127QG9m5Zh/mSO4wqurYil27tHrqwRoRjpr4= github.com/tklauser/numcpus v0.7.0/go.mod h1:bb6dMVcj8A42tSE7i32fsIUCbQNllK5iDguyOZRUzAY= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= -go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= -go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= -go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= -go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= -go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= -go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= -go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= @@ -293,127 +178,61 @@ go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v8 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= -golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 h1:KAeGQVN3M9nD0/bQXnr/ClcEMJ968gUXJQ9pwfSynuQ= -google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= -google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 h1:IR+hp6ypxjH24bkMfEJ0yHR21+gwPWdV+/IBrPQyn3k= google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= -google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -427,5 +246,3 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index f380fdab7a..291f390afe 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index b2cccff578..a7f66fa841 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/milvus-io/milvus-sdk-go/v2 v2.3.6 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/minio/go.mod b/modules/minio/go.mod index 76d127180a..304cd6acfb 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/minio/minio-go/v7 v7.0.68 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index 39efd2d4fc..11dfbdc474 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/BraspagDevelopers/mock-server-client v0.2.2 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index bef3d5442c..f7082e92d9 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/mongodb go 1.21 require ( - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 go.mongodb.org/mongo-driver v1.13.1 ) diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index bea942cecc..e2b9aaa84f 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/microsoft/go-mssqldb v1.7.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index d6977489e7..7dd13d933f 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) diff --git a/modules/nats/go.mod b/modules/nats/go.mod index d3a6b74ebb..90a467bf25 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/nats-io/nats.go v1.33.1 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index 4202859c5b..eb7178c09e 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/neo4j/neo4j-go-driver/v5 v5.18.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod index e037e201e8..477e2a9fc4 100644 --- a/modules/ollama/go.mod +++ b/modules/ollama/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible github.com/google/uuid v1.6.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 github.com/tmc/langchaingo v0.1.5 ) diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index be429a24fc..b04919bbca 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/go-ldap/ldap/v3 v3.4.6 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 0667537282..6e34cf96b6 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-units v0.5.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 94645129d2..3c8004de4d 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -7,7 +7,7 @@ require ( github.com/jackc/pgx/v5 v5.5.4 github.com/lib/pq v1.10.9 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 22d69172ad..35818adb6a 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -7,7 +7,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 26e688c870..11990562c0 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/qdrant/go-client v1.7.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 google.golang.org/grpc v1.62.0 ) diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index f24ea54d48..ada6364c8b 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/rabbitmq/amqp091-go v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 47cb048b52..2d5f0cfcf8 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -6,7 +6,7 @@ require ( github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 920f564b33..3fea98b504 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 github.com/twmb/franz-go v1.16.1 github.com/twmb/franz-go/pkg/kadm v1.11.0 golang.org/x/mod v0.16.0 diff --git a/modules/surrealdb/go.mod b/modules/surrealdb/go.mod index 40d44735a6..66cb8fed29 100644 --- a/modules/surrealdb/go.mod +++ b/modules/surrealdb/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/surrealdb/surrealdb.go v0.2.1 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 ) require ( diff --git a/modules/vault/go.mod b/modules/vault/go.mod index 6f95bfd1cf..9ea50de8d1 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/hashicorp/vault-client-go v0.4.3 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 github.com/tidwall/gjson v1.17.1 ) diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 098bfc8d4f..f46a63320b 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/weaviate go 1.21 require ( - github.com/testcontainers/testcontainers-go v0.28.0 + github.com/testcontainers/testcontainers-go v0.29.0 github.com/weaviate/weaviate-go-client/v4 v4.12.1 ) diff --git a/sonar-project.properties b/sonar-project.properties index b30486ff3d..dbf11aed92 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -7,7 +7,7 @@ sonar.projectKey=testcontainers_testcontainers-go sonar.projectName=testcontainers-go -sonar.projectVersion=v0.28.0 +sonar.projectVersion=v0.29.0 sonar.sources=. From e48323c39590887b51802446db123ba427e7cd2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 6 Mar 2024 14:29:37 +0100 Subject: [PATCH 070/115] chore: prepare for next minor development cycle () --- internal/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/version.go b/internal/version.go index 79a44f09fb..e74aeb159c 100644 --- a/internal/version.go +++ b/internal/version.go @@ -1,4 +1,4 @@ package internal // Version is the next development version of the application -const Version = "0.29.0" +const Version = "" From 4d7a27ee4a75a681d32631328c06a1eacaba95d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 6 Mar 2024 14:33:08 +0100 Subject: [PATCH 071/115] fix: incorrect version caused by wrong automation --- internal/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/version.go b/internal/version.go index e74aeb159c..bf72aa10cc 100644 --- a/internal/version.go +++ b/internal/version.go @@ -1,4 +1,4 @@ package internal // Version is the next development version of the application -const Version = "" +const Version = "v0.30.0" From 08c23850b4bd0762537d8a840d413c0d27401525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 6 Mar 2024 14:38:17 +0100 Subject: [PATCH 072/115] chore: use new version (v0.29.1) in modules and examples --- examples/nginx/go.mod | 2 +- examples/toxiproxy/go.mod | 2 +- internal/version.go | 2 +- mkdocs.yml | 2 +- modules/artemis/go.mod | 2 +- modules/cassandra/go.mod | 2 +- modules/chroma/go.mod | 2 +- modules/clickhouse/go.mod | 2 +- modules/cockroachdb/go.mod | 2 +- modules/compose/go.mod | 2 +- modules/consul/go.mod | 2 +- modules/couchbase/go.mod | 2 +- modules/elasticsearch/go.mod | 2 +- modules/gcloud/go.mod | 2 +- modules/inbucket/go.mod | 2 +- modules/k3s/go.mod | 2 +- modules/k6/go.mod | 2 +- modules/kafka/go.mod | 2 +- modules/localstack/go.mod | 2 +- modules/mariadb/go.mod | 2 +- modules/milvus/go.mod | 2 +- modules/minio/go.mod | 2 +- modules/mockserver/go.mod | 2 +- modules/mongodb/go.mod | 2 +- modules/mssql/go.mod | 2 +- modules/mysql/go.mod | 2 +- modules/nats/go.mod | 2 +- modules/neo4j/go.mod | 2 +- modules/ollama/go.mod | 2 +- modules/openldap/go.mod | 2 +- modules/opensearch/go.mod | 2 +- modules/postgres/go.mod | 2 +- modules/pulsar/go.mod | 2 +- modules/qdrant/go.mod | 2 +- modules/rabbitmq/go.mod | 2 +- modules/redis/go.mod | 2 +- modules/redpanda/go.mod | 2 +- modules/surrealdb/go.mod | 2 +- modules/vault/go.mod | 2 +- modules/weaviate/go.mod | 2 +- sonar-project.properties | 2 +- 41 files changed, 41 insertions(+), 41 deletions(-) diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 91945ce4db..d59a251890 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -2,7 +2,7 @@ module github.com/testcontainers/testcontainers-go/examples/nginx go 1.21 -require github.com/testcontainers/testcontainers-go v0.29.0 +require github.com/testcontainers/testcontainers-go v0.29.1 replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 5f593f6700..7c694116d9 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -6,7 +6,7 @@ require ( github.com/Shopify/toxiproxy/v2 v2.8.0 github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/internal/version.go b/internal/version.go index bf72aa10cc..ef0fc66d71 100644 --- a/internal/version.go +++ b/internal/version.go @@ -1,4 +1,4 @@ package internal // Version is the next development version of the application -const Version = "v0.30.0" +const Version = "0.29.1" diff --git a/mkdocs.yml b/mkdocs.yml index 958eae201b..f84d55cb3f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -124,4 +124,4 @@ nav: - Getting help: getting_help.md edit_uri: edit/main/docs/ extra: - latest_version: v0.29.0 + latest_version: v0.29.1 diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 7b6592bbe7..9fdf59d451 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/go-stomp/stomp/v3 v3.0.5 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index 560c14551a..f5dd5a6a97 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/gocql/gocql v1.6.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index 374f959c65..41f681ad2a 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/amikos-tech/chroma-go v0.0.1 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 2f39c222dd..8af4414143 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -7,7 +7,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index 3ea9140ae3..e16571ce36 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/go-connections v0.5.0 github.com/jackc/pgx/v5 v5.5.4 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/compose/go.mod b/modules/compose/go.mod index 9ede500d5b..e12ee88c0c 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -11,7 +11,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 golang.org/x/sync v0.6.0 gopkg.in/yaml.v3 v3.0.1 ) diff --git a/modules/consul/go.mod b/modules/consul/go.mod index a46bcbf693..00ff8eb6e0 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/hashicorp/consul/api v1.27.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 58c04bcdff..0201f820fa 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -8,7 +8,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/couchbase/gocb/v2 v2.7.2 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 github.com/tidwall/gjson v1.17.1 ) diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 33ba6d0b65..ed77b75448 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/elastic/go-elasticsearch/v8 v8.12.1 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 golang.org/x/mod v0.16.0 ) diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 3aeab174b3..9986a53661 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -10,7 +10,7 @@ require ( cloud.google.com/go/pubsub v1.36.2 cloud.google.com/go/spanner v1.57.0 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 google.golang.org/api v0.168.0 google.golang.org/grpc v1.62.0 ) diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 6f42e4c63f..d4aca19ca0 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/inbucket/inbucket v2.0.0+incompatible - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index 257044feb1..ff338b7a1d 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.29.2 k8s.io/apimachinery v0.29.2 diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 6d63b81ad5..df97e95e8b 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 1147ac0ec4..0456e40f73 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/IBM/sarama v1.42.1 github.com/docker/go-connections v0.5.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 golang.org/x/mod v0.16.0 ) diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 98bf716682..12dbfe3981 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -11,7 +11,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 golang.org/x/mod v0.16.0 ) diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index 291f390afe..e3e098cebc 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index a7f66fa841..8a4b1bc42a 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/milvus-io/milvus-sdk-go/v2 v2.3.6 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/minio/go.mod b/modules/minio/go.mod index 304cd6acfb..a56ce28f7c 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/minio/minio-go/v7 v7.0.68 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index 11dfbdc474..a549900a3e 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/BraspagDevelopers/mock-server-client v0.2.2 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index f7082e92d9..028ef5352b 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/mongodb go 1.21 require ( - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 go.mongodb.org/mongo-driver v1.13.1 ) diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index e2b9aaa84f..21c6bdf486 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/microsoft/go-mssqldb v1.7.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index 7dd13d933f..c69984fd47 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/go-sql-driver/mysql v1.7.1 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 90a467bf25..62d99104fa 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/nats-io/nats.go v1.33.1 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index eb7178c09e..47497123df 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/neo4j/neo4j-go-driver/v5 v5.18.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod index 477e2a9fc4..7199304364 100644 --- a/modules/ollama/go.mod +++ b/modules/ollama/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible github.com/google/uuid v1.6.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 github.com/tmc/langchaingo v0.1.5 ) diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index b04919bbca..c3134bb6c9 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/go-ldap/ldap/v3 v3.4.6 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 6e34cf96b6..9f00688432 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-units v0.5.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 3c8004de4d..ce76bc2c94 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -7,7 +7,7 @@ require ( github.com/jackc/pgx/v5 v5.5.4 github.com/lib/pq v1.10.9 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 35818adb6a..90ff7780c4 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -7,7 +7,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 11990562c0..6972aa31fd 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/qdrant/go-client v1.7.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 google.golang.org/grpc v1.62.0 ) diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index ada6364c8b..8ebcc04a1d 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/rabbitmq/amqp091-go v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 2d5f0cfcf8..9ccffa865d 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -6,7 +6,7 @@ require ( github.com/go-redis/redis/v8 v8.11.5 github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index 3fea98b504..e7c64618f1 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -5,7 +5,7 @@ go 1.21 require ( github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 github.com/twmb/franz-go v1.16.1 github.com/twmb/franz-go/pkg/kadm v1.11.0 golang.org/x/mod v0.16.0 diff --git a/modules/surrealdb/go.mod b/modules/surrealdb/go.mod index 66cb8fed29..d85a36ad92 100644 --- a/modules/surrealdb/go.mod +++ b/modules/surrealdb/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/surrealdb/surrealdb.go v0.2.1 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 ) require ( diff --git a/modules/vault/go.mod b/modules/vault/go.mod index 9ea50de8d1..1596d8dda7 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -6,7 +6,7 @@ require ( github.com/docker/docker v25.0.3+incompatible github.com/hashicorp/vault-client-go v0.4.3 github.com/stretchr/testify v1.9.0 - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 github.com/tidwall/gjson v1.17.1 ) diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index f46a63320b..9b32ebf5fa 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/weaviate go 1.21 require ( - github.com/testcontainers/testcontainers-go v0.29.0 + github.com/testcontainers/testcontainers-go v0.29.1 github.com/weaviate/weaviate-go-client/v4 v4.12.1 ) diff --git a/sonar-project.properties b/sonar-project.properties index dbf11aed92..44d7425b7c 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -7,7 +7,7 @@ sonar.projectKey=testcontainers_testcontainers-go sonar.projectName=testcontainers-go -sonar.projectVersion=v0.29.0 +sonar.projectVersion=v0.29.1 sonar.sources=. From c2c7d52874f28810151c9034d44ca068866479dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Wed, 6 Mar 2024 14:38:18 +0100 Subject: [PATCH 073/115] chore: prepare for next minor development cycle (0.30.0) --- internal/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/version.go b/internal/version.go index ef0fc66d71..684ecf1edf 100644 --- a/internal/version.go +++ b/internal/version.go @@ -1,4 +1,4 @@ package internal // Version is the next development version of the application -const Version = "0.29.1" +const Version = "0.30.0" From cc1b2de34307408cd1a5daa539c90ce9fbfb804e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 7 Mar 2024 12:41:51 +0100 Subject: [PATCH 074/115] chore: check that the new version is not empty (#2331) * chore: check that the new version is not empty This has been an issue when the underlying container runtime has a different platform, causing the bump process to fail, resulting in a blank value for the new version. That causes a commit with an invalid value. * chore: check new version earlier --- scripts/release.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/scripts/release.sh b/scripts/release.sh index bc1ddc5780..6709c5c358 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -29,6 +29,13 @@ function main() { local vVersion="v${version}" echo "Current version: ${vVersion}" + # Get the version to bump to from the semver-tool and the bump type + local newVersion=$(docker run --rm --platform=linux/amd64 -i "${DOCKER_IMAGE_SEMVER}" bump "${BUMP_TYPE}" "${vVersion}") + if [[ "${newVersion}" == "" ]]; then + echo "Failed to bump the version. Please check the semver-tool image and the bump type." + exit 1 + fi + # Commit the project in the current state gitCommitVersion "${vVersion}" @@ -45,8 +52,6 @@ function main() { done done - # Get the version to bump to from the semver-tool and the bump type - local newVersion=$(docker run --rm --platform=linux/amd64 -i "${DOCKER_IMAGE_SEMVER}" bump "${BUMP_TYPE}" "${vVersion}") echo "Producing a ${BUMP_TYPE} bump of the version, from ${version} to ${newVersion}" # Bump the version in the version.go file From c6f1f53cad22015ba550951cd8ddb5d098a9514b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 7 Mar 2024 20:43:08 +0100 Subject: [PATCH 075/115] chore: retire dependabot (#2325) * chore: remove dependabot * chore: remove unused param --- .github/dependabot.yml | 280 ------------------------ .github/workflows/ci.yml | 12 - docs/modules/index.md | 6 +- modulegen/_template/ci.yml.tmpl | 12 - modulegen/context_test.go | 87 -------- modulegen/internal/context/context.go | 4 - modulegen/internal/dependabot/main.go | 50 ----- modulegen/internal/dependabot/reader.go | 23 -- modulegen/internal/dependabot/sorter.go | 33 --- modulegen/internal/dependabot/types.go | 52 ----- modulegen/internal/dependabot/writer.go | 22 -- modulegen/internal/main.go | 8 +- modulegen/internal/make/main.go | 2 +- modulegen/main_test.go | 90 ++------ 14 files changed, 28 insertions(+), 653 deletions(-) delete mode 100644 modulegen/internal/dependabot/main.go delete mode 100644 modulegen/internal/dependabot/reader.go delete mode 100644 modulegen/internal/dependabot/sorter.go delete mode 100644 modulegen/internal/dependabot/types.go delete mode 100644 modulegen/internal/dependabot/writer.go diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f9d98d91c5..3dd26d0ae5 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,13 +9,6 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled - - package-ecosystem: gomod - directory: / - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - package-ecosystem: pip directory: / schedule: @@ -23,276 +16,3 @@ updates: day: sunday open-pull-requests-limit: 3 rebase-strategy: disabled - - package-ecosystem: gomod - directory: /examples/nginx - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /examples/toxiproxy - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modulegen - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/artemis - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/cassandra - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/chroma - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/clickhouse - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/cockroachdb - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/compose - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/consul - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/couchbase - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/elasticsearch - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/gcloud - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/inbucket - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/k3s - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/k6 - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/kafka - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/localstack - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/mariadb - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/milvus - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/minio - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/mockserver - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/mongodb - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/mssql - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/mysql - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/nats - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/neo4j - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/ollama - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/openldap - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/opensearch - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/postgres - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/pulsar - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/qdrant - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/rabbitmq - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/redis - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/redpanda - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/surrealdb - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/vault - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled - - package-ecosystem: gomod - directory: /modules/weaviate - schedule: - interval: monthly - day: sunday - open-pull-requests-limit: 3 - rebase-strategy: disabled diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e8d6aa5e7c..79598b5182 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,8 +24,6 @@ concurrency: jobs: test: - # do not run this job if it's a PR from dependabot that is not approved yet - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} strategy: matrix: go-version: [1.21.x, 1.x] @@ -43,8 +41,6 @@ jobs: # The job below is a copy of the job above, but with ryuk disabled. # It's executed in the first stage to avoid concurrency issues. test-reaper-off: - # do not run this job if it's a PR from dependabot that is not approved yet - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} name: "Test with reaper off" strategy: matrix: @@ -62,8 +58,6 @@ jobs: # The job below is a copy of the job above, but with Docker rootless. # It's executed in the first stage to avoid concurrency issues. test-rootless-docker: - # do not run this job if it's a PR from dependabot that is not approved yet - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} name: "Test with Rootless Docker" strategy: matrix: @@ -80,8 +74,6 @@ jobs: ryuk-disabled: false test-module-generator: - # do not run this job if it's a PR from dependabot that is not approved yet - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} strategy: matrix: go-version: [1.21.x, 1.x] @@ -97,8 +89,6 @@ jobs: ryuk-disabled: false test-modules: - # do not run this job if it's a PR from dependabot that is not approved yet - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} needs: test strategy: matrix: @@ -116,8 +106,6 @@ jobs: ryuk-disabled: false test-examples: - # do not run this job if it's a PR from dependabot that is not approved yet - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }} needs: test-modules strategy: matrix: diff --git a/docs/modules/index.md b/docs/modules/index.md index 6c0e9ceb94..5d54b2e38f 100644 --- a/docs/modules/index.md +++ b/docs/modules/index.md @@ -36,7 +36,7 @@ If you still want to host the module under the `testcontainers-go` repository, p We are happy to review and merge your PRs, and we are also happy to help you with the development of the module. But this is a shared responsibility, so we expect you to be involved in the maintenance, documentation and support of the module. - the module will be part of the CI/CD pipeline of the `testcontainers-go` repository, so it will be tested and released with the rest of the modules. -Think of Github workflows, Dependabot, release notes, etc. Although it sounds great, which it is, it also means that it will increase the build time in our CI/CD pipeline on Github, including flaky tests, number of dependabot updates, etc. So in the end it's more work for us. +Think of Github workflows, release notes, etc. Although it sounds great, which it is, it also means that it will increase the build time in our CI/CD pipeline on Github, including flaky tests, number of dependency updates, etc. So in the end it's more work for us. - once created, we'll add the module to the [Modules Catalog](https://testcontainers.com/modules/?language=go) and to the [Go documentation](https://pkg.go.dev/github.com/testcontainers/testcontainers-go). ## Creating a new module @@ -62,11 +62,10 @@ We have provided a command line tool to generate the scaffolding for the code of - a section for the container methods. - a new Nav entry for the module in the docs site, adding it to the `mkdocs.yml` file located at the root directory of the project. - a GitHub workflow file in the .github/workflows directory to run the tests for the example. -- an entry in Dependabot's configuration file, in order to receive dependency updates. - an entry in the VSCode workspace file, in order to include the new module in the project's workspace. !!!info - If you are hosting the module under your own Github account, please move the generated files to the new repository. Discard the following files and directories: `mkdocs.yml`, `dependabot.yml`, VSCode workspace, Sonarqube properties, and the `.github/workflows` directory, as they are specific to the `testcontainers-go` repository. You can use them as reference to create your own CI/CD pipeline. + If you are hosting the module under your own Github account, please move the generated files to the new repository. Discard the following files and directories: `mkdocs.yml`, VSCode workspace, Sonarqube properties, and the `.github/workflows` directory, as they are specific to the `testcontainers-go` repository. You can use them as reference to create your own CI/CD pipeline. ### Command line flags @@ -198,7 +197,6 @@ The steps to convert an existing example, aka `${THE_EXAMPLE}`, into a module ar 1. Rename the module path at the `go.mod` file for your example. 1. Move the `examples/${THE_EXAMPLE}` directory to `modules/${THE_EXAMPLE}`. -1. Move the `${THE_EXAMPLE}` dependabot config from the examples section to the modules one, which is located at the bottom. 1. In the `mkdocs.yml` file, move the entry for `${THE_EXAMPLE}` from examples to modules. 1. Move `docs/examples${THE_EXAMPLE}.md` file to `docs/modules/${THE_EXAMPLE}`, updating the references to the source code paths. 1. Update the Github workflow for `${THE_EXAMPLE}`, modifying names and paths. diff --git a/modulegen/_template/ci.yml.tmpl b/modulegen/_template/ci.yml.tmpl index 4a7588d4c5..616dd2bee6 100644 --- a/modulegen/_template/ci.yml.tmpl +++ b/modulegen/_template/ci.yml.tmpl @@ -24,8 +24,6 @@ concurrency: jobs: test: - # do not run this job if it's a PR from dependabot that is not approved yet - if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} strategy: matrix: go-version: [1.21.x, 1.x] @@ -43,8 +41,6 @@ jobs: # The job below is a copy of the job above, but with ryuk disabled. # It's executed in the first stage to avoid concurrency issues. test-reaper-off: - # do not run this job if it's a PR from dependabot that is not approved yet - if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} name: "Test with reaper off" strategy: matrix: @@ -62,8 +58,6 @@ jobs: # The job below is a copy of the job above, but with Docker rootless. # It's executed in the first stage to avoid concurrency issues. test-rootless-docker: - # do not run this job if it's a PR from dependabot that is not approved yet - if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} name: "Test with Rootless Docker" strategy: matrix: @@ -80,8 +74,6 @@ jobs: ryuk-disabled: false test-module-generator: - # do not run this job if it's a PR from dependabot that is not approved yet - if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} strategy: matrix: go-version: [1.21.x, 1.x] @@ -97,8 +89,6 @@ jobs: ryuk-disabled: false test-modules: - # do not run this job if it's a PR from dependabot that is not approved yet - if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} needs: test strategy: matrix: @@ -116,8 +106,6 @@ jobs: ryuk-disabled: false test-examples: - # do not run this job if it's a PR from dependabot that is not approved yet - if: {{ "${{ !(github.event_name == 'pull_request' && github.event.pull_request.state != 'approved' && github.triggering_actor == 'dependabot[bot]') }}" }} needs: test-modules strategy: matrix: diff --git a/modulegen/context_test.go b/modulegen/context_test.go index 08458171ce..fc56ea3c5d 100644 --- a/modulegen/context_test.go +++ b/modulegen/context_test.go @@ -3,100 +3,13 @@ package main import ( "os" "path/filepath" - "strings" "testing" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/testcontainers/testcontainers-go/modulegen/internal/context" - "github.com/testcontainers/testcontainers-go/modulegen/internal/dependabot" ) -func TestGetDependabotConfigFile(t *testing.T) { - ctx := context.New(filepath.Join(t.TempDir(), "testcontainers-go")) - - githubDir := ctx.GithubDir() - cfgFile := ctx.DependabotConfigFile() - err := os.MkdirAll(githubDir, 0o777) - require.NoError(t, err) - - err = os.WriteFile(cfgFile, []byte{}, 0o777) - require.NoError(t, err) - - file := ctx.DependabotConfigFile() - require.NotNil(t, file) - - assert.True(t, strings.HasSuffix(file, filepath.Join("testcontainers-go", ".github", "dependabot.yml"))) -} - -func TestExamplesHasDependabotEntry(t *testing.T) { - ctx := getTestRootContext(t) - examples, err := ctx.GetExamples() - require.NoError(t, err) - dependabotUpdates, err := dependabot.GetUpdates(ctx.DependabotConfigFile()) - require.NoError(t, err) - - exampleUpdates := []dependabot.Update{} - // exclude the Go modules from the examples updates - for _, update := range dependabotUpdates { - if strings.HasPrefix(update.Directory, "/examples/") { - exampleUpdates = append(exampleUpdates, update) - } - } - - assert.Equal(t, len(exampleUpdates), len(examples)) - - // all example modules exist in the dependabot updates - for _, example := range examples { - found := false - for _, exampleUpdate := range exampleUpdates { - dependabotDir := "/examples/" + example - - assert.Equal(t, "monthly", exampleUpdate.Schedule.Interval) - - if dependabotDir == exampleUpdate.Directory { - found = true - continue - } - } - assert.True(t, found, "example %s is not present in the dependabot updates", example) - } -} - -func TestModulesHasDependabotEntry(t *testing.T) { - ctx := getTestRootContext(t) - modules, err := ctx.GetModules() - require.NoError(t, err) - dependabotUpdates, err := dependabot.GetUpdates(ctx.DependabotConfigFile()) - require.NoError(t, err) - - moduleUpdates := []dependabot.Update{} - // exclude the Go modules from the examples updates - for _, update := range dependabotUpdates { - if strings.HasPrefix(update.Directory, "/modules/") { - moduleUpdates = append(moduleUpdates, update) - } - } - assert.Equal(t, len(moduleUpdates), len(modules)) - - // all module modules exist in the dependabot updates - for _, module := range modules { - found := false - for _, moduleUpdate := range moduleUpdates { - dependabotDir := "/modules/" + module - - assert.Equal(t, "monthly", moduleUpdate.Schedule.Interval) - - if dependabotDir == moduleUpdate.Directory { - found = true - continue - } - } - assert.True(t, found, "module %s is not present in the dependabot updates", module) - } -} - func getTestRootContext(t *testing.T) context.Context { current, err := os.Getwd() require.NoError(t, err) diff --git a/modulegen/internal/context/context.go b/modulegen/internal/context/context.go index d01de43ecb..2dcfc17e0e 100644 --- a/modulegen/internal/context/context.go +++ b/modulegen/internal/context/context.go @@ -10,10 +10,6 @@ type Context struct { RootDir string } -func (ctx Context) DependabotConfigFile() string { - return filepath.Join(ctx.GithubDir(), "dependabot.yml") -} - func (ctx Context) DocsDir() string { return filepath.Join(ctx.RootDir, "docs") } diff --git a/modulegen/internal/dependabot/main.go b/modulegen/internal/dependabot/main.go deleted file mode 100644 index 1ec4082254..0000000000 --- a/modulegen/internal/dependabot/main.go +++ /dev/null @@ -1,50 +0,0 @@ -package dependabot - -import "github.com/testcontainers/testcontainers-go/modulegen/internal/context" - -type Generator struct{} - -// AddModule update dependabot with the new module -func (g Generator) AddModule(ctx context.Context, tcModule context.TestcontainersModule) error { - configFile := ctx.DependabotConfigFile() - - config, err := readConfig(configFile) - if err != nil { - return err - } - - packageEcosystem := "gomod" - directory := "/" + tcModule.ParentDir() + "/" + tcModule.Lower() - - config.addUpdate(newUpdate(directory, packageEcosystem)) - - return writeConfig(configFile, config) -} - -// Generate generates dependabot config file from source -func (g Generator) Generate(ctx context.Context) error { - configFile := ctx.DependabotConfigFile() - - config, err := readConfig(configFile) - if err != nil { - return err - } - - return writeConfig(configFile, config) -} - -func GetUpdates(configFile string) (Updates, error) { - config, err := readConfig(configFile) - if err != nil { - return nil, err - } - return config.Updates, nil -} - -func CopyConfig(configFile string, tmpFile string) error { - config, err := readConfig(configFile) - if err != nil { - return err - } - return writeConfig(tmpFile, config) -} diff --git a/modulegen/internal/dependabot/reader.go b/modulegen/internal/dependabot/reader.go deleted file mode 100644 index b9bfe6db79..0000000000 --- a/modulegen/internal/dependabot/reader.go +++ /dev/null @@ -1,23 +0,0 @@ -package dependabot - -import ( - "os" - - "gopkg.in/yaml.v3" -) - -func readConfig(configFile string) (*Config, error) { - file, err := os.ReadFile(configFile) - if err != nil { - return nil, err - } - - config := &Config{} - - err = yaml.Unmarshal(file, config) - if err != nil { - return nil, err - } - - return config, nil -} diff --git a/modulegen/internal/dependabot/sorter.go b/modulegen/internal/dependabot/sorter.go deleted file mode 100644 index d6d572e464..0000000000 --- a/modulegen/internal/dependabot/sorter.go +++ /dev/null @@ -1,33 +0,0 @@ -package dependabot - -// Len is the number of elements in the collection. -func (u Updates) Len() int { - return len(u) -} - -// Less reports whether the element with index i -// must sort before the element with index j. -// -// If both Less(i, j) and Less(j, i) are false, -// then the elements at index i and j are considered equal. -// Sort may place equal elements in any order in the final result, -// while Stable preserves the original input order of equal elements. -// -// Less must describe a transitive ordering: -// - if both Less(i, j) and Less(j, k) are true, then Less(i, k) must be true as well. -// - if both Less(i, j) and Less(j, k) are false, then Less(i, k) must be false as well. -// -// Note that floating-point comparison (the < operator on float32 or float64 values) -// is not a transitive ordering when not-a-number (NaN) values are involved. -// See Float64Slice.Less for a correct implementation for floating-point values. -func (u Updates) Less(i, j int) bool { - if u[i].Directory != u[j].Directory { - return u[i].Directory < u[j].Directory - } - return u[i].PackageEcosystem < u[j].PackageEcosystem -} - -// Swap swaps the elements with indexes i and j. -func (u Updates) Swap(i, j int) { - u[i], u[j] = u[j], u[i] -} diff --git a/modulegen/internal/dependabot/types.go b/modulegen/internal/dependabot/types.go deleted file mode 100644 index aab8f622e7..0000000000 --- a/modulegen/internal/dependabot/types.go +++ /dev/null @@ -1,52 +0,0 @@ -package dependabot - -import ( - "sort" -) - -type Config struct { - Version int `yaml:"version"` - Updates Updates `yaml:"updates"` -} - -type Schedule struct { - Interval string `yaml:"interval"` - Day string `yaml:"day"` -} - -type Update struct { - PackageEcosystem string `yaml:"package-ecosystem"` - Directory string `yaml:"directory"` - Schedule Schedule `yaml:"schedule"` - OpenPullRequestsLimit int `yaml:"open-pull-requests-limit"` - RebaseStrategy string `yaml:"rebase-strategy"` -} - -type Updates []Update - -func newUpdate(directory string, packageExosystem string) Update { - return Update{ - Directory: directory, - OpenPullRequestsLimit: 3, - PackageEcosystem: packageExosystem, - RebaseStrategy: "disabled", - Schedule: Schedule{ - Interval: "monthly", - Day: "sunday", - }, - } -} - -func (c *Config) addUpdate(newUpdate Update) { - exists := false - for _, update := range c.Updates { - if update.Directory == newUpdate.Directory && update.PackageEcosystem == newUpdate.PackageEcosystem { - exists = true - } - } - - if !exists { - c.Updates = append(c.Updates, newUpdate) - sort.Sort(c.Updates) - } -} diff --git a/modulegen/internal/dependabot/writer.go b/modulegen/internal/dependabot/writer.go deleted file mode 100644 index 0a134f827a..0000000000 --- a/modulegen/internal/dependabot/writer.go +++ /dev/null @@ -1,22 +0,0 @@ -package dependabot - -import ( - "os" - "path/filepath" - - "gopkg.in/yaml.v3" -) - -func writeConfig(configFile string, config *Config) error { - err := os.MkdirAll(filepath.Dir(configFile), 0o755) - if err != nil { - return err - } - data, err := yaml.Marshal(config) - if err != nil { - return err - } - header := "# This file is autogenerated by the 'modulegen' tool.\n# Please look at the generator code when updating it.\n" - data = append([]byte(header), data...) - return os.WriteFile(configFile, data, 0o644) -} diff --git a/modulegen/internal/main.go b/modulegen/internal/main.go index 6832c66c42..2f64c5836d 100644 --- a/modulegen/internal/main.go +++ b/modulegen/internal/main.go @@ -5,7 +5,6 @@ import ( "path/filepath" "github.com/testcontainers/testcontainers-go/modulegen/internal/context" - "github.com/testcontainers/testcontainers-go/modulegen/internal/dependabot" "github.com/testcontainers/testcontainers-go/modulegen/internal/make" "github.com/testcontainers/testcontainers-go/modulegen/internal/mkdocs" "github.com/testcontainers/testcontainers-go/modulegen/internal/module" @@ -67,10 +66,9 @@ func GenerateFiles(ctx context.Context, tcModule context.TestcontainersModule) e } fileGenerators := []FileGenerator{ - make.Generator{}, // creates Makefile for module - module.Generator{}, // creates go.mod for module - mkdocs.Generator{}, // update examples in mkdocs - dependabot.Generator{}, // update examples in dependabot + make.Generator{}, // creates Makefile for module + module.Generator{}, // creates go.mod for module + mkdocs.Generator{}, // update examples in mkdocs } for _, generator := range fileGenerators { diff --git a/modulegen/internal/make/main.go b/modulegen/internal/make/main.go index 521c5be8f8..9c5f6293c2 100644 --- a/modulegen/internal/make/main.go +++ b/modulegen/internal/make/main.go @@ -10,7 +10,7 @@ import ( type Generator struct{} -// AddModule update dependabot with the new module +// AddModule update Makefile with the new module func (g Generator) AddModule(ctx context.Context, tcModule context.TestcontainersModule) error { moduleDir := filepath.Join(ctx.RootDir, tcModule.ParentDir(), tcModule.Lower()) moduleName := tcModule.Lower() diff --git a/modulegen/main_test.go b/modulegen/main_test.go index d57d7598a6..f108ddb0dd 100644 --- a/modulegen/main_test.go +++ b/modulegen/main_test.go @@ -12,7 +12,6 @@ import ( "github.com/testcontainers/testcontainers-go/modulegen/internal" "github.com/testcontainers/testcontainers-go/modulegen/internal/context" - "github.com/testcontainers/testcontainers-go/modulegen/internal/dependabot" "github.com/testcontainers/testcontainers-go/modulegen/internal/mkdocs" ) @@ -213,18 +212,19 @@ func TestGenerateWrongModuleTitle(t *testing.T) { require.NoError(t, err) tests := []struct { - title string + title string + expectError bool }{ - {title: " fooDB"}, - {title: "fooDB "}, - {title: "foo barDB"}, - {title: "foo-barDB"}, - {title: "foo/barDB"}, - {title: "foo\\barDB"}, - {title: "1fooDB"}, - {title: "foo1DB"}, - {title: "-fooDB"}, - {title: "foo-DB"}, + {title: " fooDB", expectError: true}, + {title: "fooDB ", expectError: true}, + {title: "foo barDB", expectError: true}, + {title: "foo-barDB", expectError: true}, + {title: "foo/barDB", expectError: true}, + {title: "foo\\barDB", expectError: true}, + {title: "1fooDB", expectError: true}, + {title: "foo1DB", expectError: false}, + {title: "-fooDB", expectError: true}, + {title: "foo-DB", expectError: true}, } for _, test := range tests { @@ -235,7 +235,11 @@ func TestGenerateWrongModuleTitle(t *testing.T) { } err = internal.GenerateFiles(tmpCtx, module) - require.Error(t, err) + if test.expectError { + require.Error(t, err) + } else { + require.NoError(t, err) + } } } @@ -258,12 +262,6 @@ func TestGenerate(t *testing.T) { originalConfig, err := mkdocs.ReadConfig(tmpCtx.MkdocsConfigFile()) require.NoError(t, err) - err = copyInitialDependabotConfig(t, tmpCtx) - require.NoError(t, err) - - originalDependabotConfigUpdates, err := dependabot.GetUpdates(tmpCtx.DependabotConfigFile()) - require.NoError(t, err) - module := context.TestcontainersModule{ Name: "foodb4tw", TitleName: "FooDB4TheWin", @@ -290,7 +288,7 @@ func TestGenerate(t *testing.T) { require.NoError(t, err) // error nil implies the file exist assertModuleDocContent(t, module, moduleDocFile) - assertModuleGithubWorkflowContent(t, module, mainWorkflowFile) + assertModuleGithubWorkflowContent(t, mainWorkflowFile) generatedTemplatesDir := filepath.Join(examplesTmp, moduleNameLower) // do not generate examples_test.go for examples @@ -299,7 +297,6 @@ func TestGenerate(t *testing.T) { assertGoModContent(t, module, originalConfig.Extra.LatestVersion, filepath.Join(generatedTemplatesDir, "go.mod")) assertMakefileContent(t, module, filepath.Join(generatedTemplatesDir, "Makefile")) assertMkdocsNavItems(t, module, originalConfig, tmpCtx) - assertDependabotUpdates(t, module, originalDependabotConfigUpdates, tmpCtx) } func TestGenerateModule(t *testing.T) { @@ -321,12 +318,6 @@ func TestGenerateModule(t *testing.T) { originalConfig, err := mkdocs.ReadConfig(tmpCtx.MkdocsConfigFile()) require.NoError(t, err) - err = copyInitialDependabotConfig(t, tmpCtx) - require.NoError(t, err) - - originalDependabotConfigUpdates, err := dependabot.GetUpdates(tmpCtx.DependabotConfigFile()) - require.NoError(t, err) - module := context.TestcontainersModule{ Name: "foodb", TitleName: "FooDB", @@ -353,7 +344,7 @@ func TestGenerateModule(t *testing.T) { require.NoError(t, err) // error nil implies the file exist assertModuleDocContent(t, module, moduleDocFile) - assertModuleGithubWorkflowContent(t, module, mainWorkflowFile) + assertModuleGithubWorkflowContent(t, mainWorkflowFile) generatedTemplatesDir := filepath.Join(modulesTmp, moduleNameLower) assertExamplesTestContent(t, module, filepath.Join(generatedTemplatesDir, "examples_test.go")) @@ -362,38 +353,6 @@ func TestGenerateModule(t *testing.T) { assertGoModContent(t, module, originalConfig.Extra.LatestVersion, filepath.Join(generatedTemplatesDir, "go.mod")) assertMakefileContent(t, module, filepath.Join(generatedTemplatesDir, "Makefile")) assertMkdocsNavItems(t, module, originalConfig, tmpCtx) - assertDependabotUpdates(t, module, originalDependabotConfigUpdates, tmpCtx) -} - -// assert content in the Dependabot descriptor file -func assertDependabotUpdates(t *testing.T, module context.TestcontainersModule, originalConfigUpdates dependabot.Updates, tmpCtx context.Context) { - modules, err := dependabot.GetUpdates(tmpCtx.DependabotConfigFile()) - require.NoError(t, err) - - assert.Len(t, modules, len(originalConfigUpdates)+1) - - // the module should be in the dependabot updates - found := false - for _, ex := range modules { - directory := "/" + module.ParentDir() + "/" + module.Lower() - if directory == ex.Directory { - found = true - } - } - - assert.True(t, found) - - // first item is the github-actions module - assert.Equal(t, "/", modules[0].Directory, modules) - assert.Equal(t, "github-actions", modules[0].PackageEcosystem, "PackageEcosystem should be github-actions") - - // second item is the core module - assert.Equal(t, "/", modules[1].Directory, modules) - assert.Equal(t, "gomod", modules[1].PackageEcosystem, "PackageEcosystem should be gomod") - - // third item is the pip module - assert.Equal(t, "/", modules[2].Directory, modules) - assert.Equal(t, "pip", modules[2].PackageEcosystem, "PackageEcosystem should be pip") } // assert content module file in the docs @@ -473,7 +432,7 @@ func assertModuleContent(t *testing.T, module context.TestcontainersModule, exam } // assert content GitHub workflow for the module -func assertModuleGithubWorkflowContent(t *testing.T, module context.TestcontainersModule, moduleWorkflowFile string) { +func assertModuleGithubWorkflowContent(t *testing.T, moduleWorkflowFile string) { content, err := os.ReadFile(moduleWorkflowFile) require.NoError(t, err) @@ -482,11 +441,11 @@ func assertModuleGithubWorkflowContent(t *testing.T, module context.Testcontaine modulesList, err := ctx.GetModules() require.NoError(t, err) - assert.Equal(t, " module: ["+strings.Join(modulesList, ", ")+"]", data[106]) + assert.Equal(t, " module: ["+strings.Join(modulesList, ", ")+"]", data[96]) examplesList, err := ctx.GetExamples() require.NoError(t, err) - assert.Equal(t, " module: ["+strings.Join(examplesList, ", ")+"]", data[123]) + assert.Equal(t, " module: ["+strings.Join(examplesList, ", ")+"]", data[111]) } // assert content go.mod @@ -550,8 +509,3 @@ func sanitiseContent(bytes []byte) []string { return data } - -func copyInitialDependabotConfig(t *testing.T, tmpCtx context.Context) error { - ctx := getTestRootContext(t) - return dependabot.CopyConfig(ctx.DependabotConfigFile(), tmpCtx.DependabotConfigFile()) -} From a935f77adf9adc223425f0295d5fa689fd72d30f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 7 Mar 2024 21:36:36 +0100 Subject: [PATCH 076/115] feat: add openfga module (#2332) * chore: bootstrap openfga module * chore: add wait strategy * feat: add container endpoints methods * chore: add example using client sdk * feat: enable playground * chore: add example for writing a model * docs: include example in docs * chore: simplify API using built-in blocks * chore: remove from dependabot --- .github/workflows/ci.yml | 2 +- .vscode/.testcontainers-go.code-workspace | 4 + docs/modules/openfga.md | 77 +++++++ mkdocs.yml | 1 + modules/openfga/Makefile | 5 + modules/openfga/examples_test.go | 213 ++++++++++++++++++ modules/openfga/go.mod | 62 +++++ modules/openfga/go.sum | 192 ++++++++++++++++ modules/openfga/openfga.go | 78 +++++++ modules/openfga/openfga_test.go | 27 +++ .../openfga/testdata/authorization_model.json | 47 ++++ sonar-project.properties | 2 +- 12 files changed, 708 insertions(+), 2 deletions(-) create mode 100644 docs/modules/openfga.md create mode 100644 modules/openfga/Makefile create mode 100644 modules/openfga/examples_test.go create mode 100644 modules/openfga/go.mod create mode 100644 modules/openfga/go.sum create mode 100644 modules/openfga/openfga.go create mode 100644 modules/openfga/openfga_test.go create mode 100644 modules/openfga/testdata/authorization_model.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 79598b5182..96b4673328 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: matrix: go-version: [1.21.x, 1.x] platform: [ubuntu-latest] - module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, ollama, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, surrealdb, vault, weaviate] + module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, ollama, openfga, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, surrealdb, vault, weaviate] uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} diff --git a/.vscode/.testcontainers-go.code-workspace b/.vscode/.testcontainers-go.code-workspace index 35ae35184c..fa5a2e90e6 100644 --- a/.vscode/.testcontainers-go.code-workspace +++ b/.vscode/.testcontainers-go.code-workspace @@ -113,6 +113,10 @@ "name": "module / ollama", "path": "../modules/ollama" }, + { + "name": "module / openfga", + "path": "../modules/openfga" + }, { "name": "module / openldap", "path": "../modules/openldap" diff --git a/docs/modules/openfga.md b/docs/modules/openfga.md new file mode 100644 index 0000000000..09db1576ce --- /dev/null +++ b/docs/modules/openfga.md @@ -0,0 +1,77 @@ +# OpenFGA + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for OpenFGA. + +## Adding this module to your project dependencies + +Please run the following command to add the OpenFGA module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/openfga +``` + +## Usage example + + +[Creating a OpenFGA container](../../modules/openfga/examples_test.go) inside_block:runOpenFGAContainer + + +## Module reference + +The OpenFGA module exposes one entrypoint function to create the OpenFGA container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*OpenFGAContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the OpenFGA container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different OpenFGA Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for OpenFGA. E.g. `testcontainers.WithImage("openfga/openfga:v1.5.0")`. + +{% include "../features/common_functional_options.md" %} + +### Container Methods + +The OpenFGA container exposes the following methods: + +#### HttpEndpoint + +This method returns the HTTP endpoint to connect to the OpenFGA container, using the `8080` port. + + +[Get HTTP endpoint](../../modules/openfga/examples_test.go) inside_block:httpEndpoint + + +#### GrpcEndpoint + +This method returns the gRPC endpoint to connect to the OpenFGA container, using the `8081` port. + +#### Playground URL + +In case you want to interact with the openfga playground, please use the `PlaygroundEndpoint` method, using the `3000` port. + + +[Get Playground endpoint](../../modules/openfga/examples_test.go) inside_block:playgroundEndpoint + + +## Examples + +### Writing an OpenFGA model + +The following example shows how to write an OpenFGA model using the OpenFGA container. + + +[Get Playground endpoint](../../modules/openfga/examples_test.go) inside_block:openFGAwriteModel + diff --git a/mkdocs.yml b/mkdocs.yml index f84d55cb3f..53d00fad03 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -87,6 +87,7 @@ nav: - modules/nats.md - modules/neo4j.md - modules/ollama.md + - modules/openfga.md - modules/openldap.md - modules/opensearch.md - modules/postgres.md diff --git a/modules/openfga/Makefile b/modules/openfga/Makefile new file mode 100644 index 0000000000..5b2745b8ba --- /dev/null +++ b/modules/openfga/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-openfga diff --git a/modules/openfga/examples_test.go b/modules/openfga/examples_test.go new file mode 100644 index 0000000000..9d66965998 --- /dev/null +++ b/modules/openfga/examples_test.go @@ -0,0 +1,213 @@ +package openfga_test + +import ( + "context" + "encoding/json" + "fmt" + "io" + "log" + "net/http" + "os" + "path/filepath" + + "github.com/openfga/go-sdk/client" + "github.com/openfga/go-sdk/credentials" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/openfga" +) + +func ExampleRunContainer() { + // runOpenFGAContainer { + ctx := context.Background() + + openfgaContainer, err := openfga.RunContainer(ctx, testcontainers.WithImage("openfga/openfga:v1.5.0")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := openfgaContainer.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := openfgaContainer.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_connectToPlayground() { + openfgaContainer, err := openfga.RunContainer(context.Background(), testcontainers.WithImage("openfga/openfga:v1.5.0")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := openfgaContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + // playgroundEndpoint { + playgroundEndpoint, err := openfgaContainer.PlaygroundEndpoint(context.Background()) + if err != nil { + log.Fatalf("failed to get playground endpoint: %s", err) // nolint:gocritic + } + // } + + httpClient := http.Client{} + + resp, err := httpClient.Get(playgroundEndpoint) + if err != nil { + log.Fatalf("failed to get playground endpoint: %s", err) // nolint:gocritic + } + + fmt.Println(resp.StatusCode) + + // Output: + // 200 +} + +func ExampleRunContainer_connectWithSDKClient() { + openfgaContainer, err := openfga.RunContainer(context.Background(), testcontainers.WithImage("openfga/openfga:v1.5.0")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := openfgaContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + // httpEndpoint { + httpEndpoint, err := openfgaContainer.HttpEndpoint(context.Background()) + if err != nil { + log.Fatalf("failed to get HTTP endpoint: %s", err) // nolint:gocritic + } + // } + + // StoreId is not required for listing and creating stores + fgaClient, err := client.NewSdkClient(&client.ClientConfiguration{ + ApiUrl: httpEndpoint, // required + }) + if err != nil { + log.Fatalf("failed to create SDK client: %s", err) // nolint:gocritic + } + + list, err := fgaClient.ListStores(context.Background()).Execute() + if err != nil { + log.Fatalf("failed to list stores: %s", err) // nolint:gocritic + } + + fmt.Println(len(list.Stores)) + + store, err := fgaClient.CreateStore(context.Background()).Body(client.ClientCreateStoreRequest{Name: "test"}).Execute() + if err != nil { + log.Fatalf("failed to create store: %s", err) // nolint:gocritic + } + + fmt.Println(store.Name) + + list, err = fgaClient.ListStores(context.Background()).Execute() + if err != nil { + log.Fatalf("failed to list stores: %s", err) // nolint:gocritic + } + + fmt.Println(len(list.Stores)) + + // Output: + // 0 + // test + // 1 +} + +func ExampleRunContainer_writeModel() { + // openFGAwriteModel { + secret := "openfga-secret" + openfgaContainer, err := openfga.RunContainer( + context.Background(), + testcontainers.WithImage("openfga/openfga:v1.5.0"), + testcontainers.WithEnv(map[string]string{ + "OPENFGA_LOG_LEVEL": "warn", + "OPENFGA_AUTHN_METHOD": "preshared", + "OPENFGA_AUTHN_PRESHARED_KEYS": secret, + }), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := openfgaContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + httpEndpoint, err := openfgaContainer.HttpEndpoint(context.Background()) + if err != nil { + log.Fatalf("failed to get HTTP endpoint: %s", err) // nolint:gocritic + } + + fgaClient, err := client.NewSdkClient(&client.ClientConfiguration{ + ApiUrl: httpEndpoint, + Credentials: &credentials.Credentials{ + Method: credentials.CredentialsMethodApiToken, + Config: &credentials.Config{ + ApiToken: secret, + }, + }, + // because we are going to write an authorization model, + // we need to specify an store id. Else, it will fail with + // "Configuration.StoreId is required and must be specified to call this method" + // In this example, it's an arbitrary store id, that will be created + // on the fly. + StoreId: "11111111111111111111111111", + }) + if err != nil { + log.Fatalf("failed to create openfga client: %v", err) + } + + f, err := os.Open(filepath.Join("testdata", "authorization_model.json")) + if err != nil { + log.Fatalf("failed to open file: %v", err) + } + defer f.Close() + + bs, err := io.ReadAll(f) + if err != nil { + log.Fatalf("failed to read file: %v", err) + } + + var body client.ClientWriteAuthorizationModelRequest + if err := json.Unmarshal(bs, &body); err != nil { + log.Fatalf("failed to unmarshal json: %v", err) + } + + resp, err := fgaClient.WriteAuthorizationModel(context.Background()).Body(body).Execute() + if err != nil { + log.Fatalf("failed to write authorization model: %v", err) + } + + // } + + value, ok := resp.GetAuthorizationModelIdOk() + fmt.Println(ok) + fmt.Println(*value != "") + + // Output: + // true + // true +} diff --git a/modules/openfga/go.mod b/modules/openfga/go.mod new file mode 100644 index 0000000000..bab59a9c1c --- /dev/null +++ b/modules/openfga/go.mod @@ -0,0 +1,62 @@ +module github.com/testcontainers/testcontainers-go/modules/openfga + +go 1.21 + +require ( + github.com/openfga/go-sdk v0.3.5 + github.com/testcontainers/testcontainers-go v0.29.1 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.13.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.31.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/openfga/go.sum b/modules/openfga/go.sum new file mode 100644 index 0000000000..bb1e49616a --- /dev/null +++ b/modules/openfga/go.sum @@ -0,0 +1,192 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= +github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= +github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/openfga/go-sdk v0.3.5 h1:KQXhMREh+g/K7HNuZ/YmXuHkREkq0VMKteua4bYr3Uw= +github.com/openfga/go-sdk v0.3.5/go.mod h1:u1iErzj5E9/bhe+8nsMv0gigcYbJtImcdgcE5DmpbBg= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/openfga/openfga.go b/modules/openfga/openfga.go new file mode 100644 index 0000000000..a88285a062 --- /dev/null +++ b/modules/openfga/openfga.go @@ -0,0 +1,78 @@ +package openfga + +import ( + "context" + "fmt" + "io" + "net/http" + "strings" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +// OpenFGAContainer represents the OpenFGA container type used in the module +type OpenFGAContainer struct { + testcontainers.Container +} + +// GrpcEndpoint returns the gRPC endpoint for the OpenFGA container, +// which uses the 8081/tcp port. +func (c *OpenFGAContainer) GrpcEndpoint(ctx context.Context) (string, error) { + return c.PortEndpoint(ctx, "8081/tcp", "http") +} + +// HttpEndpoint returns the HTTP endpoint for the OpenFGA container, +// which uses the 8080/tcp port. +func (c *OpenFGAContainer) HttpEndpoint(ctx context.Context) (string, error) { + return c.PortEndpoint(ctx, "8080/tcp", "http") +} + +// PlaygroundEndpoint returns the playground endpoint for the OpenFGA container, +// which is the HTTP endpoint with the path /playground in the port 3000/tcp. +func (c *OpenFGAContainer) PlaygroundEndpoint(ctx context.Context) (string, error) { + endpoint, err := c.PortEndpoint(ctx, "3000/tcp", "http") + if err != nil { + return "", fmt.Errorf("failed to get playground endpoint: %w", err) + } + + return fmt.Sprintf("%s/playground", endpoint), nil +} + +// RunContainer creates an instance of the OpenFGA container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*OpenFGAContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "openfga/openfga:v1.5.0", + Cmd: []string{"run"}, + ExposedPorts: []string{"3000/tcp", "8080/tcp", "8081/tcp"}, + WaitingFor: wait.ForAll( + wait.ForHTTP("/healthz").WithPort("8080/tcp").WithResponseMatcher(func(r io.Reader) bool { + bs, err := io.ReadAll(r) + if err != nil { + return false + } + + return (strings.Contains(string(bs), "SERVING")) + }), + wait.ForHTTP("/playground").WithPort("3000/tcp").WithStatusCodeMatcher(func(status int) bool { + return status == http.StatusOK + }), + ), + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + return &OpenFGAContainer{Container: container}, nil +} diff --git a/modules/openfga/openfga_test.go b/modules/openfga/openfga_test.go new file mode 100644 index 0000000000..476c077dcc --- /dev/null +++ b/modules/openfga/openfga_test.go @@ -0,0 +1,27 @@ +package openfga_test + +import ( + "context" + "testing" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/openfga" +) + +func TestOpenFGA(t *testing.T) { + ctx := context.Background() + + container, err := openfga.RunContainer(ctx, testcontainers.WithImage("openfga/openfga:v1.5.0")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(ctx); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + // perform assertions +} diff --git a/modules/openfga/testdata/authorization_model.json b/modules/openfga/testdata/authorization_model.json new file mode 100644 index 0000000000..cf68c90d82 --- /dev/null +++ b/modules/openfga/testdata/authorization_model.json @@ -0,0 +1,47 @@ +{ + "schema_version": "1.1", + "type_definitions": [ + { + "type": "user" + }, + { + "type": "document", + "relations": { + "reader": { + "this": {} + }, + "writer": { + "this": {} + }, + "owner": { + "this": {} + } + }, + "metadata": { + "relations": { + "reader": { + "directly_related_user_types": [ + { + "type": "user" + } + ] + }, + "writer": { + "directly_related_user_types": [ + { + "type": "user" + } + ] + }, + "owner": { + "directly_related_user_types": [ + { + "type": "user" + } + ] + } + } + } + } + ] +} \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties index 44d7425b7c..bc4bd78a0f 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -18,4 +18,4 @@ sonar.test.inclusions=**/*_test.go sonar.test.exclusions=**/vendor/** sonar.go.coverage.reportPaths=**/coverage.out -sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/ollama/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/surrealdb/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml +sonar.go.tests.reportPaths=TEST-unit.xml,examples/nginx/TEST-unit.xml,examples/toxiproxy/TEST-unit.xml,modulegen/TEST-unit.xml,modules/artemis/TEST-unit.xml,modules/cassandra/TEST-unit.xml,modules/chroma/TEST-unit.xml,modules/clickhouse/TEST-unit.xml,modules/cockroachdb/TEST-unit.xml,modules/compose/TEST-unit.xml,modules/consul/TEST-unit.xml,modules/couchbase/TEST-unit.xml,modules/elasticsearch/TEST-unit.xml,modules/gcloud/TEST-unit.xml,modules/inbucket/TEST-unit.xml,modules/k3s/TEST-unit.xml,modules/k6/TEST-unit.xml,modules/kafka/TEST-unit.xml,modules/localstack/TEST-unit.xml,modules/mariadb/TEST-unit.xml,modules/milvus/TEST-unit.xml,modules/minio/TEST-unit.xml,modules/mockserver/TEST-unit.xml,modules/mongodb/TEST-unit.xml,modules/mssql/TEST-unit.xml,modules/mysql/TEST-unit.xml,modules/nats/TEST-unit.xml,modules/neo4j/TEST-unit.xml,modules/ollama/TEST-unit.xml,modules/openfga/TEST-unit.xml,modules/openldap/TEST-unit.xml,modules/opensearch/TEST-unit.xml,modules/postgres/TEST-unit.xml,modules/pulsar/TEST-unit.xml,modules/qdrant/TEST-unit.xml,modules/rabbitmq/TEST-unit.xml,modules/redis/TEST-unit.xml,modules/redpanda/TEST-unit.xml,modules/surrealdb/TEST-unit.xml,modules/vault/TEST-unit.xml,modules/weaviate/TEST-unit.xml From 4dfbf801c8208b720f3fbc2115a411bda40c18a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Mar 2024 06:00:26 +0100 Subject: [PATCH 077/115] chore(deps): bump mkdocs-material from 8.2.7 to 9.5.13 (#2334) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 8.2.7 to 9.5.13. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Upgrade guide](https://github.com/squidfunk/mkdocs-material/blob/master/docs/upgrade.md) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/8.2.7...9.5.13) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Pipfile | 2 +- Pipfile.lock | 461 ++++++++++++++++++++++++++------------------------- 2 files changed, 235 insertions(+), 228 deletions(-) diff --git a/Pipfile b/Pipfile index 9141f3f6b1..ffa08b9757 100644 --- a/Pipfile +++ b/Pipfile @@ -9,7 +9,7 @@ verify_ssl = true mkdocs = "==1.5.3" mkdocs-codeinclude-plugin = "==0.2.1" mkdocs-include-markdown-plugin = "==6.0.4" -mkdocs-material = "==9.3.2" +mkdocs-material = "==9.5.13" mkdocs-markdownextradata-plugin = "==0.2.5" [requires] diff --git a/Pipfile.lock b/Pipfile.lock index 831f0a584f..4b44bc7a23 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "8ed4cd31d7c8384dadbcc5b5288e059c923be7d270c461800d9a2007d6dde743" + "sha256": "7e2177af09f35451787a76b01cf4552aa401ce8f0cc9739c329d98526c54a3ec" }, "pipfile-spec": 6, "requires": { @@ -18,11 +18,11 @@ "default": { "babel": { "hashes": [ - "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900", - "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed" + "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363", + "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287" ], "markers": "python_version >= '3.7'", - "version": "==2.13.1" + "version": "==2.14.0" }, "bracex": { "hashes": [ @@ -34,11 +34,11 @@ }, "certifi": { "hashes": [ - "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", - "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" + "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f", + "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1" ], "markers": "python_version >= '3.6'", - "version": "==2023.7.22" + "version": "==2024.2.2" }, "charset-normalizer": { "hashes": [ @@ -161,102 +161,101 @@ }, "idna": { "hashes": [ - "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", - "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + "sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca", + "sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f" ], "markers": "python_version >= '3.5'", - "version": "==3.4" + "version": "==3.6" }, "importlib-metadata": { "hashes": [ - "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb", - "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743" + "sha256:198f568f3230878cb1b44fbd7975f87906c22336dba2e4a7f05278c281fbd792", + "sha256:f4bc4c0c070c490abf4ce96d715f68e95923320370efb66143df00199bb6c100" ], "markers": "python_version < '3.10'", - "version": "==6.8.0" + "version": "==7.0.2" }, "jinja2": { "hashes": [ "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa", "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90" ], - "index": "pypi", "markers": "python_version >= '3.7'", "version": "==3.1.3" }, "markdown": { "hashes": [ - "sha256:5874b47d4ee3f0b14d764324d2c94c03ea66bee56f2d929da9f2508d65e722dc", - "sha256:b65d7beb248dc22f2e8a31fb706d93798093c308dc1aba295aedeb9d41a813bd" + "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd", + "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8" ], "markers": "python_version >= '3.8'", - "version": "==3.5.1" + "version": "==3.5.2" }, "markupsafe": { "hashes": [ - "sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e", - "sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e", - "sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431", - "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686", - "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c", - "sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559", - "sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc", - "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb", - "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939", - "sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c", - "sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0", - "sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4", - "sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9", - "sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575", - "sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba", - "sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d", - "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd", - "sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3", - "sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00", - "sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155", - "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac", - "sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52", - "sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f", - "sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8", - "sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b", - "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007", - "sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24", - "sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea", - "sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198", - "sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0", - "sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee", - "sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be", - "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2", - "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1", - "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707", - "sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6", - "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c", - "sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58", - "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823", - "sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779", - "sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636", - "sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c", - "sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad", - "sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee", - "sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc", - "sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2", - "sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48", - "sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7", - "sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e", - "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b", - "sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa", - "sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5", - "sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e", - "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb", - "sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9", - "sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57", - "sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc", - "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc", - "sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2", - "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11" + "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf", + "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff", + "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f", + "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", + "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532", + "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", + "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617", + "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df", + "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4", + "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906", + "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", + "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", + "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8", + "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371", + "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2", + "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465", + "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52", + "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6", + "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", + "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad", + "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", + "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0", + "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029", + "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f", + "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a", + "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", + "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5", + "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c", + "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf", + "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9", + "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", + "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", + "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3", + "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", + "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46", + "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc", + "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a", + "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", + "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900", + "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", + "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea", + "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", + "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5", + "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e", + "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a", + "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f", + "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50", + "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", + "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", + "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4", + "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff", + "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2", + "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46", + "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", + "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf", + "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", + "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5", + "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab", + "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd", + "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68" ], "markers": "python_version >= '3.7'", - "version": "==2.1.3" + "version": "==2.1.5" }, "mergedeep": { "hashes": [ @@ -303,20 +302,20 @@ }, "mkdocs-material": { "hashes": [ - "sha256:7b3a35a7731af02d70d120224fcec053ce09bebbf83dff3366ab72abc4d5fc89", - "sha256:f2fd5cef6f0266b4caad6414f31c6a51e3183dbdd341995ad8fa7f33bc998c3d" + "sha256:5cbe17fee4e3b4980c8420a04cc762d8dc052ef1e10532abd4fce88e5ea9ce6a", + "sha256:d8e4caae576312a88fd2609b81cf43d233cdbe36860d67a68702b018b425bd87" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==9.3.2" + "version": "==9.5.13" }, "mkdocs-material-extensions": { "hashes": [ - "sha256:0297cc48ba68a9fdd1ef3780a3b41b534b0d0df1d1181a44676fda5f464eeadc", - "sha256:f0446091503acb110a7cab9349cbc90eeac51b58d1caa92a704a81ca1e24ddbd" + "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", + "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31" ], "markers": "python_version >= '3.8'", - "version": "==1.3" + "version": "==1.3.1" }, "packaging": { "hashes": [ @@ -334,51 +333,51 @@ }, "pathspec": { "hashes": [ - "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20", - "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3" + "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", + "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712" ], - "markers": "python_version >= '3.7'", - "version": "==0.11.2" + "markers": "python_version >= '3.8'", + "version": "==0.12.1" }, "platformdirs": { "hashes": [ - "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b", - "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731" + "sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068", + "sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768" ], - "markers": "python_version >= '3.7'", - "version": "==4.0.0" + "markers": "python_version >= '3.8'", + "version": "==4.2.0" }, "pygments": { "hashes": [ - "sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692", - "sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29" + "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", + "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367" ], "markers": "python_version >= '3.7'", - "version": "==2.16.1" + "version": "==2.17.2" }, "pymdown-extensions": { "hashes": [ - "sha256:8cba67beb2a1318cdaf742d09dff7c0fc4cafcc290147ade0f8fb7b71522711a", - "sha256:f6c79941498a458852853872e379e7bab63888361ba20992fc8b4f8a9b61735e" + "sha256:c70e146bdd83c744ffc766b4671999796aba18842b268510a329f7f64700d584", + "sha256:f5cc7000d7ff0d1ce9395d216017fa4df3dde800afb1fb72d1c7d3fd35e710f4" ], "markers": "python_version >= '3.8'", - "version": "==10.3.1" + "version": "==10.7.1" }, "python-dateutil": { "hashes": [ - "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", - "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", + "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427" ], "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", - "version": "==2.8.2" + "version": "==2.9.0.post0" }, "pytz": { "hashes": [ - "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b", - "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7" + "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", + "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319" ], "markers": "python_version < '3.9'", - "version": "==2023.3.post1" + "version": "==2024.1" }, "pyyaml": { "hashes": [ @@ -411,6 +410,7 @@ "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef", "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", @@ -446,97 +446,102 @@ }, "regex": { "hashes": [ - "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad", - "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4", - "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd", - "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc", - "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d", - "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066", - "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec", - "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9", - "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e", - "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8", - "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e", - "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783", - "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6", - "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1", - "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c", - "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4", - "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1", - "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1", - "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7", - "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8", - "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe", - "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d", - "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b", - "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8", - "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c", - "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af", - "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49", - "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714", - "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542", - "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318", - "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e", - "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5", - "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc", - "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144", - "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453", - "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5", - "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61", - "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11", - "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a", - "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54", - "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73", - "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc", - "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347", - "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c", - "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66", - "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c", - "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93", - "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443", - "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc", - "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1", - "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892", - "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8", - "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001", - "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa", - "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90", - "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c", - "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0", - "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692", - "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4", - "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5", - "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690", - "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83", - "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66", - "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f", - "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f", - "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4", - "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee", - "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81", - "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95", - "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9", - "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff", - "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e", - "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5", - "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6", - "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7", - "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1", - "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394", - "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6", - "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742", - "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57", - "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b", - "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7", - "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b", - "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244", - "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af", - "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185", - "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8", - "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5" + "sha256:0694219a1d54336fd0445ea382d49d36882415c0134ee1e8332afd1529f0baa5", + "sha256:086dd15e9435b393ae06f96ab69ab2d333f5d65cbe65ca5a3ef0ec9564dfe770", + "sha256:094ba386bb5c01e54e14434d4caabf6583334090865b23ef58e0424a6286d3dc", + "sha256:09da66917262d9481c719599116c7dc0c321ffcec4b1f510c4f8a066f8768105", + "sha256:0ecf44ddf9171cd7566ef1768047f6e66975788258b1c6c6ca78098b95cf9a3d", + "sha256:0fda75704357805eb953a3ee15a2b240694a9a514548cd49b3c5124b4e2ad01b", + "sha256:11a963f8e25ab5c61348d090bf1b07f1953929c13bd2309a0662e9ff680763c9", + "sha256:150c39f5b964e4d7dba46a7962a088fbc91f06e606f023ce57bb347a3b2d4630", + "sha256:1b9d811f72210fa9306aeb88385b8f8bcef0dfbf3873410413c00aa94c56c2b6", + "sha256:1e0eabac536b4cc7f57a5f3d095bfa557860ab912f25965e08fe1545e2ed8b4c", + "sha256:22a86d9fff2009302c440b9d799ef2fe322416d2d58fc124b926aa89365ec482", + "sha256:22f3470f7524b6da61e2020672df2f3063676aff444db1daa283c2ea4ed259d6", + "sha256:263ef5cc10979837f243950637fffb06e8daed7f1ac1e39d5910fd29929e489a", + "sha256:283fc8eed679758de38fe493b7d7d84a198b558942b03f017b1f94dda8efae80", + "sha256:29171aa128da69afdf4bde412d5bedc335f2ca8fcfe4489038577d05f16181e5", + "sha256:298dc6354d414bc921581be85695d18912bea163a8b23cac9a2562bbcd5088b1", + "sha256:2aae8101919e8aa05ecfe6322b278f41ce2994c4a430303c4cd163fef746e04f", + "sha256:2f4e475a80ecbd15896a976aa0b386c5525d0ed34d5c600b6d3ebac0a67c7ddf", + "sha256:34e4af5b27232f68042aa40a91c3b9bb4da0eeb31b7632e0091afc4310afe6cb", + "sha256:37f8e93a81fc5e5bd8db7e10e62dc64261bcd88f8d7e6640aaebe9bc180d9ce2", + "sha256:3a17d3ede18f9cedcbe23d2daa8a2cd6f59fe2bf082c567e43083bba3fb00347", + "sha256:3b1de218d5375cd6ac4b5493e0b9f3df2be331e86520f23382f216c137913d20", + "sha256:43f7cd5754d02a56ae4ebb91b33461dc67be8e3e0153f593c509e21d219c5060", + "sha256:4558410b7a5607a645e9804a3e9dd509af12fb72b9825b13791a37cd417d73a5", + "sha256:4719bb05094d7d8563a450cf8738d2e1061420f79cfcc1fa7f0a44744c4d8f73", + "sha256:4bfc2b16e3ba8850e0e262467275dd4d62f0d045e0e9eda2bc65078c0110a11f", + "sha256:518440c991f514331f4850a63560321f833979d145d7d81186dbe2f19e27ae3d", + "sha256:51f4b32f793812714fd5307222a7f77e739b9bc566dc94a18126aba3b92b98a3", + "sha256:531ac6cf22b53e0696f8e1d56ce2396311254eb806111ddd3922c9d937151dae", + "sha256:5cd05d0f57846d8ba4b71d9c00f6f37d6b97d5e5ef8b3c3840426a475c8f70f4", + "sha256:5dd58946bce44b53b06d94aa95560d0b243eb2fe64227cba50017a8d8b3cd3e2", + "sha256:60080bb3d8617d96f0fb7e19796384cc2467447ef1c491694850ebd3670bc457", + "sha256:636ba0a77de609d6510235b7f0e77ec494d2657108f777e8765efc060094c98c", + "sha256:67d3ccfc590e5e7197750fcb3a2915b416a53e2de847a728cfa60141054123d4", + "sha256:68191f80a9bad283432385961d9efe09d783bcd36ed35a60fb1ff3f1ec2efe87", + "sha256:7502534e55c7c36c0978c91ba6f61703faf7ce733715ca48f499d3dbbd7657e0", + "sha256:7aa47c2e9ea33a4a2a05f40fcd3ea36d73853a2aae7b4feab6fc85f8bf2c9704", + "sha256:7d2af3f6b8419661a0c421584cfe8aaec1c0e435ce7e47ee2a97e344b98f794f", + "sha256:7e316026cc1095f2a3e8cc012822c99f413b702eaa2ca5408a513609488cb62f", + "sha256:88ad44e220e22b63b0f8f81f007e8abbb92874d8ced66f32571ef8beb0643b2b", + "sha256:88d1f7bef20c721359d8675f7d9f8e414ec5003d8f642fdfd8087777ff7f94b5", + "sha256:89723d2112697feaa320c9d351e5f5e7b841e83f8b143dba8e2d2b5f04e10923", + "sha256:8a0ccf52bb37d1a700375a6b395bff5dd15c50acb745f7db30415bae3c2b0715", + "sha256:8c2c19dae8a3eb0ea45a8448356ed561be843b13cbc34b840922ddf565498c1c", + "sha256:905466ad1702ed4acfd67a902af50b8db1feeb9781436372261808df7a2a7bca", + "sha256:9852b76ab558e45b20bf1893b59af64a28bd3820b0c2efc80e0a70a4a3ea51c1", + "sha256:98a2636994f943b871786c9e82bfe7883ecdaba2ef5df54e1450fa9869d1f756", + "sha256:9aa1a67bbf0f957bbe096375887b2505f5d8ae16bf04488e8b0f334c36e31360", + "sha256:9eda5f7a50141291beda3edd00abc2d4a5b16c29c92daf8d5bd76934150f3edc", + "sha256:a6d1047952c0b8104a1d371f88f4ab62e6275567d4458c1e26e9627ad489b445", + "sha256:a9b6d73353f777630626f403b0652055ebfe8ff142a44ec2cf18ae470395766e", + "sha256:a9cc99d6946d750eb75827cb53c4371b8b0fe89c733a94b1573c9dd16ea6c9e4", + "sha256:ad83e7545b4ab69216cef4cc47e344d19622e28aabec61574b20257c65466d6a", + "sha256:b014333bd0217ad3d54c143de9d4b9a3ca1c5a29a6d0d554952ea071cff0f1f8", + "sha256:b43523d7bc2abd757119dbfb38af91b5735eea45537ec6ec3a5ec3f9562a1c53", + "sha256:b521dcecebc5b978b447f0f69b5b7f3840eac454862270406a39837ffae4e697", + "sha256:b77e27b79448e34c2c51c09836033056a0547aa360c45eeeb67803da7b0eedaf", + "sha256:b7a635871143661feccce3979e1727c4e094f2bdfd3ec4b90dfd4f16f571a87a", + "sha256:b7fca9205b59c1a3d5031f7e64ed627a1074730a51c2a80e97653e3e9fa0d415", + "sha256:ba1b30765a55acf15dce3f364e4928b80858fa8f979ad41f862358939bdd1f2f", + "sha256:ba99d8077424501b9616b43a2d208095746fb1284fc5ba490139651f971d39d9", + "sha256:c25a8ad70e716f96e13a637802813f65d8a6760ef48672aa3502f4c24ea8b400", + "sha256:c3c4a78615b7762740531c27cf46e2f388d8d727d0c0c739e72048beb26c8a9d", + "sha256:c40281f7d70baf6e0db0c2f7472b31609f5bc2748fe7275ea65a0b4601d9b392", + "sha256:c7ad32824b7f02bb3c9f80306d405a1d9b7bb89362d68b3c5a9be53836caebdb", + "sha256:cb3fe77aec8f1995611f966d0c656fdce398317f850d0e6e7aebdfe61f40e1cd", + "sha256:cc038b2d8b1470364b1888a98fd22d616fba2b6309c5b5f181ad4483e0017861", + "sha256:cc37b9aeebab425f11f27e5e9e6cf580be7206c6582a64467a14dda211abc232", + "sha256:cc6bb9aa69aacf0f6032c307da718f61a40cf970849e471254e0e91c56ffca95", + "sha256:d126361607b33c4eb7b36debc173bf25d7805847346dd4d99b5499e1fef52bc7", + "sha256:d15b274f9e15b1a0b7a45d2ac86d1f634d983ca40d6b886721626c47a400bf39", + "sha256:d166eafc19f4718df38887b2bbe1467a4f74a9830e8605089ea7a30dd4da8887", + "sha256:d498eea3f581fbe1b34b59c697512a8baef88212f92e4c7830fcc1499f5b45a5", + "sha256:d6f7e255e5fa94642a0724e35406e6cb7001c09d476ab5fce002f652b36d0c39", + "sha256:d78bd484930c1da2b9679290a41cdb25cc127d783768a0369d6b449e72f88beb", + "sha256:d865984b3f71f6d0af64d0d88f5733521698f6c16f445bb09ce746c92c97c586", + "sha256:d902a43085a308cef32c0d3aea962524b725403fd9373dea18110904003bac97", + "sha256:d94a1db462d5690ebf6ae86d11c5e420042b9898af5dcf278bd97d6bda065423", + "sha256:da695d75ac97cb1cd725adac136d25ca687da4536154cdc2815f576e4da11c69", + "sha256:db2a0b1857f18b11e3b0e54ddfefc96af46b0896fb678c85f63fb8c37518b3e7", + "sha256:df26481f0c7a3f8739fecb3e81bc9da3fcfae34d6c094563b9d4670b047312e1", + "sha256:e14b73607d6231f3cc4622809c196b540a6a44e903bcfad940779c80dffa7be7", + "sha256:e2610e9406d3b0073636a3a2e80db05a02f0c3169b5632022b4e81c0364bcda5", + "sha256:e692296c4cc2873967771345a876bcfc1c547e8dd695c6b89342488b0ea55cd8", + "sha256:e693e233ac92ba83a87024e1d32b5f9ab15ca55ddd916d878146f4e3406b5c91", + "sha256:e81469f7d01efed9b53740aedd26085f20d49da65f9c1f41e822a33992cb1590", + "sha256:e8c7e08bb566de4faaf11984af13f6bcf6a08f327b13631d41d62592681d24fe", + "sha256:ed19b3a05ae0c97dd8f75a5d8f21f7723a8c33bbc555da6bbe1f96c470139d3c", + "sha256:efb2d82f33b2212898f1659fb1c2e9ac30493ac41e4d53123da374c3b5541e64", + "sha256:f44dd4d68697559d007462b0a3a1d9acd61d97072b71f6d1968daef26bc744bd", + "sha256:f72cbae7f6b01591f90814250e636065850c5926751af02bb48da94dfced7baa", + "sha256:f7bc09bc9c29ebead055bcba136a67378f03d66bf359e87d0f7c759d6d4ffa31", + "sha256:ff100b203092af77d1a5a7abe085b3506b7eaaf9abf65b73b7d6905b6cb76988" ], - "markers": "python_version >= '3.6'", - "version": "==2022.10.31" + "markers": "python_version >= '3.7'", + "version": "==2023.12.25" }, "requests": { "hashes": [ @@ -556,44 +561,46 @@ }, "urllib3": { "hashes": [ - "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", - "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e" + "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d", + "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19" ], - "markers": "python_version >= '3.7'", - "version": "==2.0.7" + "markers": "python_version >= '3.8'", + "version": "==2.2.1" }, "watchdog": { "hashes": [ - "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a", - "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100", - "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8", - "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc", - "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae", - "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41", - "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0", - "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f", - "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c", - "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9", - "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3", - "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709", - "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83", - "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759", - "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9", - "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3", - "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7", - "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f", - "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346", - "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674", - "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397", - "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96", - "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d", - "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a", - "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64", - "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44", - "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33" + "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257", + "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca", + "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b", + "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85", + "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b", + "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19", + "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50", + "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92", + "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269", + "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f", + "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c", + "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b", + "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87", + "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b", + "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b", + "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8", + "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c", + "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3", + "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7", + "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605", + "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935", + "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b", + "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927", + "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101", + "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07", + "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec", + "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4", + "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245", + "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d" ], - "markers": "python_version >= '3.7'", - "version": "==3.0.0" + "markers": "python_version >= '3.8'", + "version": "==4.0.0" }, "wcmatch": { "hashes": [ From f95a9181e73843e76c070c8f8516ca6a8dc7da9e Mon Sep 17 00:00:00 2001 From: Adrian Cole <64215+codefromthecrypt@users.noreply.github.com> Date: Fri, 8 Mar 2024 17:15:56 +0800 Subject: [PATCH 078/115] fix: consul race on HTTP port (#2336) * fix: consul race on HTTP port Signed-off-by: Adrian Cole * revert image bump Signed-off-by: Adrian Cole --------- Signed-off-by: Adrian Cole --- modules/consul/consul.go | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/consul/consul.go b/modules/consul/consul.go index 08a6e0ece2..e4ec01fd02 100644 --- a/modules/consul/consul.go +++ b/modules/consul/consul.go @@ -70,6 +70,7 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize Env: map[string]string{}, WaitingFor: wait.ForAll( wait.ForLog("Consul agent running!"), + wait.ForListeningPort(defaultHttpApiPort+"/tcp"), ), }, Started: true, From c3992eda84ba5a992cd5b1559c54c3508c5fc40a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 8 Mar 2024 13:31:34 +0100 Subject: [PATCH 079/115] docs: fix wrong copy&paste (#2338) --- docs/modules/weaviate.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/modules/weaviate.md b/docs/modules/weaviate.md index 3587f8c6a0..d347fc6d20 100644 --- a/docs/modules/weaviate.md +++ b/docs/modules/weaviate.md @@ -63,7 +63,7 @@ This method returns the Schema and Host for the Weaviate container, using the de The following example demonstrates how to create a Weaviate client using the Weaviate module. -First of all, you need to import the CWeaviate client: +First of all, you need to import the Weaviate client: ```golang import ( @@ -71,7 +71,7 @@ import ( ) ``` -Then, you can create a Chroma client using the Chroma module: +Then, you can create a Weaviate client using the Weaviate module: [Get the client](../../modules/weaviate/examples_test.go) inside_block:createClient From afeac2cf8a01bbc20fcb64ecd4b283bf6cc65159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 8 Mar 2024 16:29:06 +0100 Subject: [PATCH 080/115] chore: use withEnv in localstack module (#2337) --- docs/modules/localstack.md | 4 ++-- modules/localstack/examples_test.go | 31 +++++++++++---------------- modules/localstack/localstack_test.go | 10 ++------- 3 files changed, 16 insertions(+), 29 deletions(-) diff --git a/docs/modules/localstack.md b/docs/modules/localstack.md index 25a225b6c3..52a07c3e22 100644 --- a/docs/modules/localstack.md +++ b/docs/modules/localstack.md @@ -51,12 +51,12 @@ By default, the image used is `localstack:1.4.0`. If you need to use a differen It's possible to entirely override the default LocalStack container request: -[Customize container request](../../modules/localstack/localstack_test.go) inside_block:withCustomContainerRequest +[Customize container request](../../modules/localstack/examples_test.go) inside_block:withCustomContainerRequest With simply passing the `testcontainers.CustomizeRequest` functional option to the `RunContainer` function, you'll be able to configure the LocalStack container with your own needs, as this new container request will be merged with the original one. -In the above example you can check how it's possible to set certain environment variables that are needed by the tests, the most important ones are the AWS services you want to use. Besides, the container runs in a separate Docker network with an alias. +In the above example you can check how it's possible to copy files that are needed by the tests. The `flagsFn` function is a helper function that converts Docker labels used by Ryuk to a string with the format requested by LocalStack. ## Accessing hostname-sensitive services diff --git a/modules/localstack/examples_test.go b/modules/localstack/examples_test.go index a408a9d3c6..2e5e0636ab 100644 --- a/modules/localstack/examples_test.go +++ b/modules/localstack/examples_test.go @@ -62,14 +62,9 @@ func ExampleRunContainer_withNetwork() { localstackContainer, err := localstack.RunContainer( ctx, - testcontainers.CustomizeRequest(testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Image: "localstack/localstack:0.13.0", - Env: map[string]string{"SERVICES": "s3,sqs"}, - Networks: []string{nwName}, - NetworkAliases: map[string][]string{nwName: {"localstack"}}, - }, - }), + testcontainers.WithImage("localstack/localstack:0.13.0"), + testcontainers.WithEnv(map[string]string{"SERVICES": "s3,sqs"}), + network.WithNetwork([]string{nwName}, newNetwork), ) if err != nil { log.Fatalf("failed to start container: %s", err) @@ -99,13 +94,9 @@ func ExampleRunContainer_legacyMode() { _, err := localstack.RunContainer( ctx, - testcontainers.CustomizeRequest(testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Image: "localstack/localstack:0.10.0", - Env: map[string]string{"SERVICES": "s3,sqs"}, - WaitingFor: wait.ForLog("Ready.").WithStartupTimeout(5 * time.Minute).WithOccurrence(1), - }, - }), + testcontainers.WithImage("localstack/localstack:0.10.0"), + testcontainers.WithEnv(map[string]string{"SERVICES": "s3,sqs"}), + testcontainers.WithWaitStrategy(wait.ForLog("Ready.").WithStartupTimeout(5*time.Minute).WithOccurrence(1)), ) if err == nil { log.Fatalf("expected an error, got nil") @@ -133,14 +124,15 @@ func ExampleRunContainer_usingLambdas() { lambdaName := "localstack-lambda-url-example" + // withCustomContainerRequest { container, err := localstack.RunContainer(ctx, testcontainers.WithImage("localstack/localstack:2.3.0"), + testcontainers.WithEnv(map[string]string{ + "SERVICES": "lambda", + "LAMBDA_DOCKER_FLAGS": flagsFn(), + }), testcontainers.CustomizeRequest(testcontainers.GenericContainerRequest{ ContainerRequest: testcontainers.ContainerRequest{ - Env: map[string]string{ - "SERVICES": "lambda", - "LAMBDA_DOCKER_FLAGS": flagsFn(), - }, Files: []testcontainers.ContainerFile{ { HostFilePath: filepath.Join("testdata", "function.zip"), @@ -149,6 +141,7 @@ func ExampleRunContainer_usingLambdas() { }, }, }), + // } ) if err != nil { log.Fatalf("failed to start container: %s", err) diff --git a/modules/localstack/localstack_test.go b/modules/localstack/localstack_test.go index b8268c388e..b2e3a39ffd 100644 --- a/modules/localstack/localstack_test.go +++ b/modules/localstack/localstack_test.go @@ -154,21 +154,15 @@ func TestStartWithoutOverride(t *testing.T) { func TestStartV2WithNetwork(t *testing.T) { ctx := context.Background() - // withCustomContainerRequest { nw, err := network.New(ctx) require.NoError(t, err) localstack, err := RunContainer( ctx, network.WithNetwork([]string{"localstack"}, nw), - testcontainers.CustomizeRequest(testcontainers.GenericContainerRequest{ - ContainerRequest: testcontainers.ContainerRequest{ - Image: "localstack/localstack:2.0.0", - Env: map[string]string{"SERVICES": "s3,sqs"}, - }, - }), + testcontainers.WithImage("localstack/localstack:2.0.0"), + testcontainers.WithEnv(map[string]string{"SERVICES": "s3,sqs"}), ) - // } require.NoError(t, err) assert.NotNil(t, localstack) From e86884e8428a166dd70bfb6317f629c43cd594d0 Mon Sep 17 00:00:00 2001 From: Marcin Antas Date: Fri, 8 Mar 2024 17:40:44 +0100 Subject: [PATCH 081/115] Add method for getting Weaviate's gRPC port (#2339) --- modules/weaviate/examples_test.go | 18 ++++++++++++++---- modules/weaviate/go.mod | 2 +- modules/weaviate/weaviate.go | 18 +++++++++++++++++- modules/weaviate/weaviate_test.go | 31 ++++++++++++++++++++++++++++++- 4 files changed, 62 insertions(+), 7 deletions(-) diff --git a/modules/weaviate/examples_test.go b/modules/weaviate/examples_test.go index e9e4048157..7082972de3 100644 --- a/modules/weaviate/examples_test.go +++ b/modules/weaviate/examples_test.go @@ -8,6 +8,7 @@ import ( "time" "github.com/weaviate/weaviate-go-client/v4/weaviate" + "github.com/weaviate/weaviate-go-client/v4/weaviate/grpc" "github.com/testcontainers/testcontainers-go" tcweaviate "github.com/testcontainers/testcontainers-go/modules/weaviate" @@ -17,7 +18,7 @@ func ExampleRunContainer() { // runWeaviateContainer { ctx := context.Background() - weaviateContainer, err := tcweaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.23.9")) + weaviateContainer, err := tcweaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.24.1")) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -58,7 +59,12 @@ func ExampleRunContainer_connectWithClient() { scheme, host, err := weaviateContainer.HttpHostAddress(ctx) if err != nil { - log.Fatalf("failed to get schema and host: %s", err) // nolint:gocritic + log.Fatalf("failed to get http schema and host: %s", err) // nolint:gocritic + } + + grpcHost, err := weaviateContainer.GrpcHostAddress(ctx) + if err != nil { + log.Fatalf("failed to get gRPC host: %s", err) // nolint:gocritic } connectionClient := &http.Client{} @@ -68,8 +74,12 @@ func ExampleRunContainer_connectWithClient() { } cli := weaviate.New(weaviate.Config{ - Scheme: scheme, - Host: host, + Scheme: scheme, + Host: host, + GrpcConfig: &grpc.Config{ + Secured: false, // set true if gRPC connection is secured + Host: grpcHost, + }, Headers: headers, AuthConfig: nil, // put here the weaviate auth.Config, if you need it ConnectionClient: connectionClient, diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 9b32ebf5fa..2871fa164b 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -5,6 +5,7 @@ go 1.21 require ( github.com/testcontainers/testcontainers-go v0.29.1 github.com/weaviate/weaviate-go-client/v4 v4.12.1 + google.golang.org/grpc v1.59.0 ) require ( @@ -76,7 +77,6 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/weaviate/weaviate.go b/modules/weaviate/weaviate.go index 30a196c8a6..02950ce38c 100644 --- a/modules/weaviate/weaviate.go +++ b/modules/weaviate/weaviate.go @@ -17,7 +17,7 @@ type WeaviateContainer struct { // RunContainer creates an instance of the Weaviate container type func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*WeaviateContainer, error) { req := testcontainers.ContainerRequest{ - Image: "semitechnologies/weaviate:1.23.9", + Image: "semitechnologies/weaviate:1.24.1", Cmd: []string{"--host", "0.0.0.0", "--scheme", "http", "--port", "8080"}, ExposedPorts: []string{"8080/tcp", "50051/tcp"}, Env: map[string]string{ @@ -66,3 +66,19 @@ func (c *WeaviateContainer) HttpHostAddress(ctx context.Context) (string, string return "http", fmt.Sprintf("%s:%s", host, containerPort.Port()), nil } + +// GrpcHostAddress returns the gRPC host of the Weaviate container. +// At the moment, it only supports unsecured gRPC connection. +func (c *WeaviateContainer) GrpcHostAddress(ctx context.Context) (string, error) { + containerPort, err := c.MappedPort(ctx, "50051/tcp") + if err != nil { + return "", fmt.Errorf("failed to get container port: %w", err) + } + + host, err := c.Host(ctx) + if err != nil { + return "", fmt.Errorf("failed to get container host") + } + + return fmt.Sprintf("%s:%s", host, containerPort.Port()), nil +} diff --git a/modules/weaviate/weaviate_test.go b/modules/weaviate/weaviate_test.go index dfde0a7fc1..2f06f8fd53 100644 --- a/modules/weaviate/weaviate_test.go +++ b/modules/weaviate/weaviate_test.go @@ -6,6 +6,10 @@ import ( "net/http" "testing" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/grpc/health/grpc_health_v1" + "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/weaviate" ) @@ -13,7 +17,7 @@ import ( func TestWeaviate(t *testing.T) { ctx := context.Background() - container, err := weaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.23.9")) + container, err := weaviate.RunContainer(ctx, testcontainers.WithImage("semitechnologies/weaviate:1.24.1")) if err != nil { t.Fatal(err) } @@ -44,4 +48,29 @@ func TestWeaviate(t *testing.T) { tt.Fatalf("unexpected status code: %d", resp.StatusCode) } }) + + t.Run("GrpcHostAddress", func(tt *testing.T) { + // gRPCHostAddress { + host, err := container.GrpcHostAddress(ctx) + // } + if err != nil { + t.Fatal(err) + } + + var opts []grpc.DialOption + opts = append(opts, grpc.WithBlock()) + opts = append(opts, grpc.WithTransportCredentials(insecure.NewCredentials())) + conn, err := grpc.Dial(host, opts...) + if err != nil { + tt.Fatalf("failed to dial connection: %v", err) + } + client := grpc_health_v1.NewHealthClient(conn) + check, err := client.Check(context.TODO(), &grpc_health_v1.HealthCheckRequest{}) + if err != nil { + tt.Fatalf("failed to get a health check: %v", err) + } + if grpc_health_v1.HealthCheckResponse_SERVING.Enum().Number() != check.Status.Number() { + tt.Fatalf("unexpected status code: %d", check.Status.Number()) + } + }) } From f81826b3a0abdd8d60962dba0b19f24f3f30f575 Mon Sep 17 00:00:00 2001 From: Manjunatha Shetty H Date: Mon, 11 Mar 2024 15:28:22 +0530 Subject: [PATCH 082/115] chore: updated docker compose version (#2340) --- modules/compose/compose_api.go | 6 +++--- modules/compose/go.mod | 18 ++++++++--------- modules/compose/go.sum | 36 +++++++++++++++++----------------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/modules/compose/compose_api.go b/modules/compose/compose_api.go index 70bc071897..b0ec87ed29 100644 --- a/modules/compose/compose_api.go +++ b/modules/compose/compose_api.go @@ -186,7 +186,7 @@ func (d *dockerCompose) Up(ctx context.Context, opts ...StackUpOption) error { var err error - d.project, err = d.compileProject() + d.project, err = d.compileProject(ctx) if err != nil { return err } @@ -328,7 +328,7 @@ func (d *dockerCompose) lookupContainer(ctx context.Context, svcName string) (*t return container, nil } -func (d *dockerCompose) compileProject() (*types.Project, error) { +func (d *dockerCompose) compileProject(ctx context.Context) (*types.Project, error) { const nameAndDefaultConfigPath = 2 projectOptions := make([]cli.ProjectOptionsFn, len(d.projectOptions), len(d.projectOptions)+nameAndDefaultConfigPath) @@ -340,7 +340,7 @@ func (d *dockerCompose) compileProject() (*types.Project, error) { return nil, err } - proj, err := cli.ProjectFromOptions(compiledOptions) + proj, err := compiledOptions.LoadProject(ctx) if err != nil { return nil, err } diff --git a/modules/compose/go.mod b/modules/compose/go.mod index e12ee88c0c..f7542052e5 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -5,10 +5,10 @@ go 1.21 replace github.com/testcontainers/testcontainers-go => ../.. require ( - github.com/compose-spec/compose-go/v2 v2.0.0-rc.2 - github.com/docker/cli v25.0.1+incompatible - github.com/docker/compose/v2 v2.24.3 - github.com/docker/docker v25.0.3+incompatible + github.com/compose-spec/compose-go/v2 v2.0.0-rc.8.0.20240228111658-a0507e98fe60 + github.com/docker/cli v25.0.4-0.20240305161310-2bf4225ad269+incompatible + github.com/docker/compose/v2 v2.24.7 + github.com/docker/docker v25.0.4-0.20240301160236-51e876cd964c+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 @@ -162,16 +162,16 @@ require ( go.opentelemetry.io/otel/trace v1.19.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect go.uber.org/mock v0.4.0 // indirect - golang.org/x/crypto v0.17.0 // indirect - golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect golang.org/x/mod v0.16.0 // indirect - golang.org/x/net v0.17.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/oauth2 v0.11.0 // indirect golang.org/x/sys v0.16.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/term v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.3.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d // indirect google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect diff --git a/modules/compose/go.sum b/modules/compose/go.sum index b15320a1bf..62e24d6c37 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -86,8 +86,8 @@ github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+g github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb h1:EDmT6Q9Zs+SbUoc7Ik9EfrFqcylYqgPZ9ANSbTAntnE= github.com/codahale/rfc6979 v0.0.0-20141003034818-6a90f24967eb/go.mod h1:ZjrT6AXHbDs86ZSdt/osfBi5qfexBrKUdONk989Wnk4= -github.com/compose-spec/compose-go/v2 v2.0.0-rc.2 h1:eJ01FpliL/02KvsaPyH1bSLbM1S70yWQUojHVRbyvy4= -github.com/compose-spec/compose-go/v2 v2.0.0-rc.2/go.mod h1:IVsvFyGVhw4FASzUtlWNVaAOhYmakXAFY9IlZ7LAuD8= +github.com/compose-spec/compose-go/v2 v2.0.0-rc.8.0.20240228111658-a0507e98fe60 h1:NlkpaLBPFr05mNJWVMH7PP4L30gFG6k4z1QpypLUSh8= +github.com/compose-spec/compose-go/v2 v2.0.0-rc.8.0.20240228111658-a0507e98fe60/go.mod h1:bEPizBkIojlQ20pi2vNluBa58tevvj0Y18oUSHPyfdc= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= @@ -124,15 +124,15 @@ github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/buildx v0.12.0-rc2.0.20231219140829-617f538cb315 h1:UZxx9xBADdf/9UmSdEUi+pdJoPKpgcf9QUAY5gEIYmY= github.com/docker/buildx v0.12.0-rc2.0.20231219140829-617f538cb315/go.mod h1:X8ZHhuW6ncwtoJ36TlU+gyaROTcBkTE01VHYmTStQCE= -github.com/docker/cli v25.0.1+incompatible h1:mFpqnrS6Hsm3v1k7Wa/BO23oz0k121MTbTO1lpcGSkU= -github.com/docker/cli v25.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= -github.com/docker/compose/v2 v2.24.3 h1:BVc1oDV7aQgksH64pDKTvcI95G36uJ+Mz9DGGBBoZeQ= -github.com/docker/compose/v2 v2.24.3/go.mod h1:D8Nv9+juzD7xiMyyHJ7G2J/MOYiGBmb9SvdIW5+2zKo= +github.com/docker/cli v25.0.4-0.20240305161310-2bf4225ad269+incompatible h1:xhVCHXq+P5LhT31+RuDuk0xXEbEnd50Fr37J1bGuyWg= +github.com/docker/cli v25.0.4-0.20240305161310-2bf4225ad269+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/compose/v2 v2.24.7 h1:1WSo4CVf18tnGJMC6V78jYsAxSDD61ry6L3JwVT+8EI= +github.com/docker/compose/v2 v2.24.7/go.mod h1:7U3QbXdRJfBylTgkdlrjOg8hWLZqM09mof9DVZ5Fh4E= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.4-0.20240301160236-51e876cd964c+incompatible h1:sCE9u4l5Kr3Z0pvUEAC6XKe/wnH6Q4O19I/0Mcqlxz8= +github.com/docker/docker v25.0.4-0.20240301160236-51e876cd964c+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= @@ -561,11 +561,11 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1 h1:MGwJjxBy0HJshjDNfLsYO8xppfqWlA5ZT9OhtUUhTNw= -golang.org/x/exp v0.0.0-20230713183714-613f0c0eb8a1/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -588,8 +588,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.11.0 h1:vPL4xzxBM4niKCW6g9whtaWVXTJf1U5e4aZxxFx/gbU= golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= @@ -635,8 +635,8 @@ golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -655,8 +655,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= From 6c41653ad83fbc7cad90e33aa4bceb9fc809d824 Mon Sep 17 00:00:00 2001 From: Prateek Dwivedi Date: Tue, 12 Mar 2024 08:58:05 -0700 Subject: [PATCH 083/115] Added error handling for context.Canceled in log reading code (#2268) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added error handling for context.Canceled in log reading code * Added error handling for context.Canceled in log reading code * Added test case for context canceled error handling * Added necessary import statement for log consumer test * `make lint` changes * Handled the termination of the containers * `make lint` changes * Cancelled log consumer test: Increased timeout * Changes based on review comments * Updated check for log messages in the Cancelled Context test --------- Co-authored-by: Manuel de la Peña --- docker.go | 4 +- logconsumer_test.go | 115 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+), 2 deletions(-) diff --git a/docker.go b/docker.go index 33a73cae73..cb799dc05a 100644 --- a/docker.go +++ b/docker.go @@ -728,7 +728,7 @@ func (c *DockerContainer) startLogProduction(ctx context.Context, opts ...LogPro since = fmt.Sprintf("%d.%09d", now.Unix(), int64(now.Nanosecond())) goto BEGIN } - if errors.Is(err, context.DeadlineExceeded) { + if errors.Is(err, context.DeadlineExceeded) || errors.Is(err, context.Canceled) { // Probably safe to continue here continue } @@ -756,7 +756,7 @@ func (c *DockerContainer) startLogProduction(ctx context.Context, opts ...LogPro if err != nil { // TODO: add-logger: use logger to log out this error _, _ = fmt.Fprintf(os.Stderr, "error occurred reading log with known length %s", err.Error()) - if errors.Is(err, context.DeadlineExceeded) { + if errors.Is(err, context.DeadlineExceeded) || errors.Is(err, context.Canceled) { // Probably safe to continue here continue } diff --git a/logconsumer_test.go b/logconsumer_test.go index 3416c73f79..9c9b25fa09 100644 --- a/logconsumer_test.go +++ b/logconsumer_test.go @@ -1,6 +1,7 @@ package testcontainers import ( + "bytes" "context" "errors" "fmt" @@ -508,3 +509,117 @@ func Test_StartLogProductionStillStartsWithTooHighTimeout(t *testing.T) { terminateContainerOnEnd(t, ctx, c) } + +func Test_MultiContainerLogConsumer_CancelledContext(t *testing.T) { + // Redirect stderr to a buffer + oldStderr := os.Stderr + r, w, _ := os.Pipe() + os.Stderr = w + + // Context with cancellation functionality for simulating user interruption + ctx, cancel := context.WithCancel(context.Background()) + + first := TestLogConsumer{ + Msgs: []string{}, + Done: make(chan bool), + Accepted: devNullAcceptorChan(), + } + + containerReq1 := ContainerRequest{ + FromDockerfile: FromDockerfile{ + Context: "./testdata/", + Dockerfile: "echoserver.Dockerfile", + }, + ExposedPorts: []string{"8080/tcp"}, + WaitingFor: wait.ForLog("ready"), + LogConsumerCfg: &LogConsumerConfig{ + Consumers: []LogConsumer{&first}, + }, + } + + genericReq1 := GenericContainerRequest{ + ContainerRequest: containerReq1, + Started: true, + } + + c, err := GenericContainer(ctx, genericReq1) + require.NoError(t, err) + + ep1, err := c.Endpoint(ctx, "http") + require.NoError(t, err) + + _, err = http.Get(ep1 + "/stdout?echo=hello1") + require.NoError(t, err) + + _, err = http.Get(ep1 + "/stdout?echo=there1") + require.NoError(t, err) + + second := TestLogConsumer{ + Msgs: []string{}, + Done: make(chan bool), + Accepted: devNullAcceptorChan(), + } + + containerReq2 := ContainerRequest{ + FromDockerfile: FromDockerfile{ + Context: "./testdata/", + Dockerfile: "echoserver.Dockerfile", + }, + ExposedPorts: []string{"8080/tcp"}, + WaitingFor: wait.ForLog("ready"), + LogConsumerCfg: &LogConsumerConfig{ + Consumers: []LogConsumer{&second}, + }, + } + + genericReq2 := GenericContainerRequest{ + ContainerRequest: containerReq2, + Started: true, + } + + c2, err := GenericContainer(ctx, genericReq2) + require.NoError(t, err) + + ep2, err := c2.Endpoint(ctx, "http") + require.NoError(t, err) + + _, err = http.Get(ep2 + "/stdout?echo=hello2") + require.NoError(t, err) + + _, err = http.Get(ep2 + "/stdout?echo=there2") + require.NoError(t, err) + + // Handling the termination of the containers + defer func() { + shutdownCtx, shutdownCancel := context.WithTimeout( + context.Background(), 60*time.Second, + ) + defer shutdownCancel() + _ = c.Terminate(shutdownCtx) + _ = c2.Terminate(shutdownCtx) + }() + + // Deliberately calling context cancel + cancel() + + // We check log size due to context cancellation causing + // varying message counts, leading to test failure. + assert.GreaterOrEqual(t, len(first.Msgs), 2) + assert.GreaterOrEqual(t, len(second.Msgs), 2) + + // Restore stderr + w.Close() + os.Stderr = oldStderr + + // Read the stderr output from the buffer + var buf bytes.Buffer + _, _ = buf.ReadFrom(r) + + // Check the stderr message + actual := buf.String() + + // The context cancel shouldn't cause the system to throw a + // logStoppedForOutOfSyncMessage, as it hangs the system with + // the multiple containers. + assert.False(t, strings.Contains(actual, logStoppedForOutOfSyncMessage)) +} From fe0d3a835bfc3183c569457a0a166f496ccbb900 Mon Sep 17 00:00:00 2001 From: Guillaume St-Pierre Date: Tue, 12 Mar 2024 12:40:25 -0400 Subject: [PATCH 084/115] Move the container and config tests into a test package (#2242) * Move the container and config tests into a test package This work has been extracted from #2202 and is related to #2180. See the original PR for the full context and reasoning. * Rename the utils file * Remove some unused code --- config_test.go | 9 ++-- container_ignore_test.go | 34 +++++++++++++++ container_test.go | 94 +++++++++++++++------------------------- testhelpers_test.go | 5 +++ 4 files changed, 79 insertions(+), 63 deletions(-) create mode 100644 container_ignore_test.go diff --git a/config_test.go b/config_test.go index 85a7f8bba7..516b05218e 100644 --- a/config_test.go +++ b/config_test.go @@ -1,10 +1,11 @@ -package testcontainers +package testcontainers_test import ( "testing" "github.com/stretchr/testify/assert" + "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/internal/config" ) @@ -26,9 +27,9 @@ func TestReadConfig(t *testing.T) { t.Setenv("USERPROFILE", "") // Windows support t.Setenv("TESTCONTAINERS_RYUK_DISABLED", "true") - cfg := ReadConfig() + cfg := testcontainers.ReadConfig() - expected := TestcontainersConfig{ + expected := testcontainers.TestcontainersConfig{ RyukDisabled: true, Config: config.Config{ RyukDisabled: true, @@ -38,7 +39,7 @@ func TestReadConfig(t *testing.T) { assert.Equal(t, expected, cfg) t.Setenv("TESTCONTAINERS_RYUK_DISABLED", "false") - cfg = ReadConfig() + cfg = testcontainers.ReadConfig() assert.Equal(t, expected, cfg) }) } diff --git a/container_ignore_test.go b/container_ignore_test.go new file mode 100644 index 0000000000..566697c980 --- /dev/null +++ b/container_ignore_test.go @@ -0,0 +1,34 @@ +// This test is testing very internal logic that should not be exported away from this package. We'll +// leave it in the main testcontainers package. Do not use for user facing examples. +package testcontainers + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestParseDockerIgnore(t *testing.T) { + testCases := []struct { + filePath string + expectedErr error + expectedExcluded []string + }{ + { + filePath: "./testdata/dockerignore", + expectedErr: nil, + expectedExcluded: []string{"vendor", "foo", "bar"}, + }, + { + filePath: "./testdata", + expectedErr: nil, + expectedExcluded: []string{"Dockerfile", "echo.Dockerfile"}, + }, + } + + for _, testCase := range testCases { + excluded, err := parseDockerIgnore(testCase.filePath) + assert.Equal(t, testCase.expectedErr, err) + assert.Equal(t, testCase.expectedExcluded, excluded) + } +} diff --git a/container_test.go b/container_test.go index 80320af310..1d25c4d661 100644 --- a/container_test.go +++ b/container_test.go @@ -1,4 +1,4 @@ -package testcontainers +package testcontainers_test import ( "archive/tar" @@ -16,6 +16,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/wait" ) @@ -23,15 +24,15 @@ func Test_ContainerValidation(t *testing.T) { type ContainerValidationTestCase struct { Name string ExpectedError error - ContainerRequest ContainerRequest + ContainerRequest testcontainers.ContainerRequest } testTable := []ContainerValidationTestCase{ { Name: "cannot set both context and image", ExpectedError: errors.New("you cannot specify both an Image and Context in a ContainerRequest"), - ContainerRequest: ContainerRequest{ - FromDockerfile: FromDockerfile{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ Context: ".", }, Image: "redis:latest", @@ -40,15 +41,15 @@ func Test_ContainerValidation(t *testing.T) { { Name: "can set image without context", ExpectedError: nil, - ContainerRequest: ContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "redis:latest", }, }, { Name: "can set context without image", ExpectedError: nil, - ContainerRequest: ContainerRequest{ - FromDockerfile: FromDockerfile{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ Context: ".", }, }, @@ -56,7 +57,7 @@ func Test_ContainerValidation(t *testing.T) { { Name: "Can mount same source to multiple targets", ExpectedError: nil, - ContainerRequest: ContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "redis:latest", HostConfigModifier: func(hc *container.HostConfig) { hc.Binds = []string{"/data:/srv", "/data:/data"} @@ -66,7 +67,7 @@ func Test_ContainerValidation(t *testing.T) { { Name: "Cannot mount multiple sources to same target", ExpectedError: errors.New("duplicate mount target detected: /data"), - ContainerRequest: ContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "redis:latest", HostConfigModifier: func(hc *container.HostConfig) { hc.Binds = []string{"/data:/data", "/data:/data"} @@ -76,7 +77,7 @@ func Test_ContainerValidation(t *testing.T) { { Name: "Invalid bind mount", ExpectedError: errors.New("invalid bind mount: /data:/data:/data"), - ContainerRequest: ContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "redis:latest", HostConfigModifier: func(hc *container.HostConfig) { hc.Binds = []string{"/data:/data:/data"} @@ -106,27 +107,27 @@ func Test_GetDockerfile(t *testing.T) { type TestCase struct { name string ExpectedDockerfileName string - ContainerRequest ContainerRequest + ContainerRequest testcontainers.ContainerRequest } testTable := []TestCase{ { name: "defaults to \"Dockerfile\" 1", ExpectedDockerfileName: "Dockerfile", - ContainerRequest: ContainerRequest{}, + ContainerRequest: testcontainers.ContainerRequest{}, }, { name: "defaults to \"Dockerfile\" 2", ExpectedDockerfileName: "Dockerfile", - ContainerRequest: ContainerRequest{ - FromDockerfile: FromDockerfile{}, + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{}, }, }, { name: "will override name", ExpectedDockerfileName: "CustomDockerfile", - ContainerRequest: ContainerRequest{ - FromDockerfile: FromDockerfile{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ Dockerfile: "CustomDockerfile", }, }, @@ -278,8 +279,8 @@ func Test_BuildImageWithContexts(t *testing.T) { if err != nil { t.Fatal(err) } - req := ContainerRequest{ - FromDockerfile: FromDockerfile{ + req := testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ ContextArchive: a, Context: testCase.ContextPath, Dockerfile: testCase.Dockerfile, @@ -287,7 +288,7 @@ func Test_BuildImageWithContexts(t *testing.T) { WaitingFor: wait.ForLog(testCase.ExpectedEchoOutput).WithStartupTimeout(1 * time.Minute), } - c, err := GenericContainer(ctx, GenericContainerRequest{ + c, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: req, Started: true, }) @@ -308,14 +309,14 @@ func Test_BuildImageWithContexts(t *testing.T) { func Test_GetLogsFromFailedContainer(t *testing.T) { ctx := context.Background() // directDockerHubReference { - req := ContainerRequest{ + req := testcontainers.ContainerRequest{ Image: "docker.io/alpine", Cmd: []string{"echo", "-n", "I was not expecting this"}, WaitingFor: wait.ForLog("I was expecting this").WithStartupTimeout(5 * time.Second), } // } - c, err := GenericContainer(ctx, GenericContainerRequest{ + c, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: req, Started: true, }) @@ -391,7 +392,7 @@ func TestImageSubstitutors(t *testing.T) { tests := []struct { name string image string // must be a valid image, as the test will try to create a container from it - substitutors []ImageSubstitutor + substitutors []testcontainers.ImageSubstitutor expectedImage string expectedError error }{ @@ -403,19 +404,19 @@ func TestImageSubstitutors(t *testing.T) { { name: "Noop substitutor", image: "alpine", - substitutors: []ImageSubstitutor{NoopImageSubstitutor{}}, + substitutors: []testcontainers.ImageSubstitutor{NoopImageSubstitutor{}}, expectedImage: "alpine", }, { name: "Prepend namespace", image: "alpine", - substitutors: []ImageSubstitutor{dockerImageSubstitutor{}}, + substitutors: []testcontainers.ImageSubstitutor{dockerImageSubstitutor{}}, expectedImage: "docker.io/alpine", }, { name: "Substitution with error", image: "alpine", - substitutors: []ImageSubstitutor{errorSubstitutor{}}, + substitutors: []testcontainers.ImageSubstitutor{errorSubstitutor{}}, expectedImage: "alpine", expectedError: errSubstitution, }, @@ -424,12 +425,12 @@ func TestImageSubstitutors(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { ctx := context.Background() - req := ContainerRequest{ + req := testcontainers.ContainerRequest{ Image: test.image, ImageSubstitutors: test.substitutors, } - container, err := GenericContainer(ctx, GenericContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: req, Started: true, }) @@ -447,7 +448,7 @@ func TestImageSubstitutors(t *testing.T) { // enforce the concrete type, as GenericContainer returns an interface, // which will be changed in future implementations of the library - dockerContainer := container.(*DockerContainer) + dockerContainer := container.(*testcontainers.DockerContainer) assert.Equal(t, test.expectedImage, dockerContainer.Image) }) } @@ -462,12 +463,12 @@ func TestShouldStartContainersInParallel(t *testing.T) { t.Run(fmt.Sprintf("iteration_%d", i), func(t *testing.T) { t.Parallel() - req := ContainerRequest{ + req := testcontainers.ContainerRequest{ Image: nginxAlpineImage, ExposedPorts: []string{nginxDefaultPort}, WaitingFor: wait.ForHTTP("/").WithStartupTimeout(10 * time.Second), } - container, err := GenericContainer(ctx, GenericContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: req, Started: true, }) @@ -488,39 +489,14 @@ func TestShouldStartContainersInParallel(t *testing.T) { } } -func TestParseDockerIgnore(t *testing.T) { - testCases := []struct { - filePath string - expectedErr error - expectedExcluded []string - }{ - { - filePath: "./testdata/dockerignore", - expectedErr: nil, - expectedExcluded: []string{"vendor", "foo", "bar"}, - }, - { - filePath: "./testdata", - expectedErr: nil, - expectedExcluded: []string{"Dockerfile", "echo.Dockerfile"}, - }, - } - - for _, testCase := range testCases { - excluded, err := parseDockerIgnore(testCase.filePath) - assert.Equal(t, testCase.expectedErr, err) - assert.Equal(t, testCase.expectedExcluded, excluded) - } -} - func ExampleGenericContainer_withSubstitutors() { ctx := context.Background() // applyImageSubstitutors { - container, err := GenericContainer(ctx, GenericContainerRequest{ - ContainerRequest: ContainerRequest{ + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ Image: "alpine:latest", - ImageSubstitutors: []ImageSubstitutor{dockerImageSubstitutor{}}, + ImageSubstitutors: []testcontainers.ImageSubstitutor{dockerImageSubstitutor{}}, }, Started: true, }) @@ -538,7 +514,7 @@ func ExampleGenericContainer_withSubstitutors() { // enforce the concrete type, as GenericContainer returns an interface, // which will be changed in future implementations of the library - dockerContainer := container.(*DockerContainer) + dockerContainer := container.(*testcontainers.DockerContainer) fmt.Println(dockerContainer.Image) diff --git a/testhelpers_test.go b/testhelpers_test.go index 480cf857a3..47bbcb54c3 100644 --- a/testhelpers_test.go +++ b/testhelpers_test.go @@ -9,6 +9,11 @@ import ( "github.com/testcontainers/testcontainers-go" ) +const ( + nginxAlpineImage = "docker.io/nginx:alpine" + nginxDefaultPort = "80/tcp" +) + func terminateContainerOnEnd(tb testing.TB, ctx context.Context, ctr testcontainers.Container) { tb.Helper() if ctr == nil { From d243321aa40d901522582932e7621501a70a3cf1 Mon Sep 17 00:00:00 2001 From: Bojan Date: Wed, 13 Mar 2024 12:33:20 -0300 Subject: [PATCH 085/115] redpanda: set entrypoint to the custom entrypoint file (#2347) --- modules/redpanda/redpanda.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/modules/redpanda/redpanda.go b/modules/redpanda/redpanda.go index 6213809d4b..bea0abf691 100644 --- a/modules/redpanda/redpanda.go +++ b/modules/redpanda/redpanda.go @@ -72,9 +72,8 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize defaultAdminAPIPort, defaultSchemaRegistryPort, }, - Entrypoint: []string{}, + Entrypoint: []string{entrypointFile}, Cmd: []string{ - entrypointFile, "redpanda", "start", "--mode=dev-container", From cb79e55e2b4524df3e18542a4d5cdbfe3da75412 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 15 Mar 2024 00:12:09 +0100 Subject: [PATCH 086/115] chore(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#2392) * chore(deps): bump google.golang.org/protobuf in /modules/compose Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /examples/toxiproxy Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/k3s Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/k6 Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/cassandra Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0 Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/artemis Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/mysql Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /examples/nginx Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/rabbitmq Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/neo4j Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/redis Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/nats Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/redpanda Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/pulsar Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/mariadb Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/kafka Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/vault Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/mssql Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/postgres Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/elasticsearch Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/clickhouse Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/mongodb Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/mockserver Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/openldap Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/minio Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/inbucket Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/cockroachdb Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/chroma Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/consul Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/opensearch Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/weaviate Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/milvus Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/surrealdb Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/ollama Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/openfga Bumps google.golang.org/protobuf from 1.31.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/gcloud Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/localstack Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/qdrant Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump google.golang.org/protobuf in /modules/couchbase Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore: run mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/nginx/go.mod | 2 +- examples/nginx/go.sum | 4 ++-- examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 4 ++-- go.mod | 9 +++++++-- go.sum | 24 ++++++++++++++++++++---- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 9 +++------ modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 9 +++------ modules/chroma/go.mod | 2 +- modules/chroma/go.sum | 4 ++-- modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 4 ++-- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- modules/compose/go.mod | 2 +- modules/compose/go.sum | 4 ++-- modules/consul/go.mod | 2 +- modules/consul/go.sum | 9 +++------ modules/couchbase/go.mod | 2 +- modules/couchbase/go.sum | 4 ++-- modules/elasticsearch/go.mod | 4 ++-- modules/elasticsearch/go.sum | 19 ++++++++++--------- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- modules/inbucket/go.mod | 2 +- modules/inbucket/go.sum | 4 ++-- modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 4 ++-- modules/k6/go.mod | 2 +- modules/k6/go.sum | 4 ++-- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 4 ++-- modules/mariadb/go.mod | 2 +- modules/mariadb/go.sum | 4 ++-- modules/milvus/go.mod | 2 +- modules/milvus/go.sum | 4 ++-- modules/minio/go.mod | 2 +- modules/minio/go.sum | 4 ++-- modules/mockserver/go.mod | 2 +- modules/mockserver/go.sum | 4 ++-- modules/mongodb/go.mod | 2 +- modules/mongodb/go.sum | 4 ++-- modules/mssql/go.mod | 2 +- modules/mssql/go.sum | 4 ++-- modules/mysql/go.mod | 2 +- modules/mysql/go.sum | 4 ++-- modules/nats/go.mod | 2 +- modules/nats/go.sum | 4 ++-- modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 4 ++-- modules/ollama/go.mod | 2 +- modules/ollama/go.sum | 4 ++-- modules/openfga/go.mod | 2 +- modules/openfga/go.sum | 4 ++-- modules/openldap/go.mod | 2 +- modules/openldap/go.sum | 4 ++-- modules/opensearch/go.mod | 2 +- modules/opensearch/go.sum | 4 ++-- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 4 ++-- modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 9 +++------ modules/qdrant/go.mod | 2 +- modules/qdrant/go.sum | 4 ++-- modules/rabbitmq/go.mod | 2 +- modules/rabbitmq/go.sum | 4 ++-- modules/redis/go.mod | 4 ++-- modules/redis/go.sum | 19 ++++++++++--------- modules/redpanda/go.mod | 4 ++-- modules/redpanda/go.sum | 19 ++++++++++--------- modules/surrealdb/go.mod | 2 +- modules/surrealdb/go.sum | 4 ++-- modules/vault/go.mod | 4 ++-- modules/vault/go.sum | 19 ++++++++++--------- modules/weaviate/go.mod | 2 +- modules/weaviate/go.sum | 9 +++------ 80 files changed, 185 insertions(+), 175 deletions(-) diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index d59a251890..36e608dd29 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -54,5 +54,5 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index e3cda40324..f5fbc66019 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -178,8 +178,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 7c694116d9..88efafc0e7 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -58,7 +58,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index dd99d57f9f..02bdda1aea 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -194,8 +194,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= diff --git a/go.mod b/go.mod index fa961bef38..055b4d1db8 100644 --- a/go.mod +++ b/go.mod @@ -25,22 +25,27 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cilium/ebpf v0.9.1 // indirect + github.com/containerd/cgroups/v3 v3.0.2 // indirect github.com/containerd/log v0.1.0 // indirect + github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect + github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/klauspost/compress v1.16.0 // indirect - github.com/kr/pretty v0.3.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/sys/user v0.1.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/runtime-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect @@ -59,7 +64,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect gopkg.in/yaml.v3 v3.0.1 // indirect gotest.tools/v3 v3.5.0 // indirect diff --git a/go.sum b/go.sum index a3a9e298eb..05d5470f1b 100644 --- a/go.sum +++ b/go.sum @@ -10,13 +10,18 @@ github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7 github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= +github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= +github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= +github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -32,6 +37,8 @@ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4 github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= +github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -39,6 +46,9 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= +github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -71,6 +81,8 @@ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0V github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= @@ -83,6 +95,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= +github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -90,7 +104,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= @@ -134,6 +147,8 @@ go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1 go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -160,6 +175,7 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -191,8 +207,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 9fdf59d451..626bc25215 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -58,7 +58,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index 640aa31a48..b4c173429f 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -60,9 +60,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -90,8 +89,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -199,8 +196,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index f5dd5a6a97..f5e8f574a3 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -60,7 +60,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index c590a88fd4..46cb893218 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -66,9 +66,8 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -96,8 +95,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -197,8 +194,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index 41f681ad2a..bc94515cfc 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -55,7 +55,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 7646faf022..39d3d1131c 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -182,8 +182,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index 8af4414143..f22cf8aa09 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -67,7 +67,7 @@ require ( golang.org/x/tools v0.14.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index 36075b6210..aa5aaef34c 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -226,8 +226,8 @@ google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSs google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index e16571ce36..b05f6739e9 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -65,7 +65,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 20d8611fb7..1e87399d7a 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -196,8 +196,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index f7542052e5..e750660fbb 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -177,7 +177,7 @@ require ( google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect google.golang.org/grpc v1.59.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/api v0.26.7 // indirect diff --git a/modules/compose/go.sum b/modules/compose/go.sum index 62e24d6c37..61103e5b62 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -695,8 +695,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/cenkalti/backoff.v2 v2.2.1 h1:eJ9UAg01/HIHG987TwxvnzK2MgxXq97YY6rYDpY9aII= diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 00ff8eb6e0..33139114ba 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -72,7 +72,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 27c9d3525f..e295d32852 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -144,9 +144,8 @@ github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -224,8 +223,6 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -370,8 +367,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index 0201f820fa..ae36cde9b9 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -70,7 +70,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240213162025-012b6fc9bca9 // indirect google.golang.org/grpc v1.61.1 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index 3b70d8470a..865e678cd8 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -275,8 +275,8 @@ google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index ed77b75448..4dc713276d 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -32,7 +32,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect github.com/klauspost/compress v1.16.0 // indirect - github.com/kr/text v0.1.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect @@ -60,7 +60,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index 3e6fc9d595..55e3038910 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -16,6 +16,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -60,11 +61,10 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -83,14 +83,15 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -189,8 +190,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 9986a53661..3ae5ab5e86 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -97,7 +97,7 @@ require ( google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240304161311-37d4d3c04a78 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 8314d6dc7f..9ad5a95922 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -357,8 +357,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index d4aca19ca0..237d839fa4 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -56,7 +56,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index 6accf90fbe..a6f29fe3e6 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -182,8 +182,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index ff338b7a1d..a91e6e5d3d 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -79,7 +79,7 @@ require ( google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect k8s.io/klog/v2 v2.110.1 // indirect diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index 2f05c7485c..c0e62e0229 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -237,8 +237,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index df97e95e8b..0d2250721a 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -54,7 +54,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/k6/go.sum b/modules/k6/go.sum index e3cda40324..f5fbc66019 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -178,8 +178,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 0456e40f73..7506738edf 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -72,7 +72,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index c95ed6cbf5..bbfff647bb 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -241,8 +241,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 12dbfe3981..287cd6942c 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -78,7 +78,7 @@ require ( golang.org/x/tools v0.19.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240304212257-790db918fca8 // indirect google.golang.org/grpc v1.62.0 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index bea13ded04..dc635e0ed1 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -233,8 +233,8 @@ google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index e3e098cebc..8dac11c94a 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -55,7 +55,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index 8328e7117f..1897052b8b 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -180,8 +180,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index 8a4b1bc42a..e293d0100a 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -69,7 +69,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index a7a10a6b96..203725c882 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -479,8 +479,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index a56ce28f7c..8208d43968 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -67,7 +67,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect ) diff --git a/modules/minio/go.sum b/modules/minio/go.sum index 0d36fd50b3..e0a2bb979c 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -203,8 +203,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index a549900a3e..d6ba95f6fd 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -57,7 +57,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index 819fff6a42..ffb1b796f9 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -184,8 +184,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index 028ef5352b..d0d2cc7783 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -64,7 +64,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index 79ad88e12b..d34d72773b 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -216,8 +216,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index 21c6bdf486..ae4617e379 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -59,7 +59,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index eb6ce3d308..3cc97f41f5 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -204,8 +204,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index c69984fd47..54f65bf460 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -56,7 +56,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index 8328e7117f..1897052b8b 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -180,8 +180,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 62d99104fa..94accbe50a 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -58,7 +58,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/nats/go.sum b/modules/nats/go.sum index d18638040e..19efcaa0fb 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -186,8 +186,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index 47497123df..f8d5a8ed78 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -55,7 +55,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 10b5fc5d46..78d7f97d21 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -180,8 +180,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod index 7199304364..ccb4de9f10 100644 --- a/modules/ollama/go.mod +++ b/modules/ollama/go.mod @@ -57,7 +57,7 @@ require ( golang.org/x/tools v0.14.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231211222908-989df2bf70f3 // indirect google.golang.org/grpc v1.60.0 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/ollama/go.sum b/modules/ollama/go.sum index 106073cddf..a275266dcc 100644 --- a/modules/ollama/go.sum +++ b/modules/ollama/go.sum @@ -184,8 +184,8 @@ google.golang.org/grpc v1.60.0 h1:6FQAR0kM31P6MRdeluor2w2gPaS4SVNrD/DNTxrQ15k= google.golang.org/grpc v1.60.0/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/openfga/go.mod b/modules/openfga/go.mod index bab59a9c1c..eeb7b59463 100644 --- a/modules/openfga/go.mod +++ b/modules/openfga/go.mod @@ -56,7 +56,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/openfga/go.sum b/modules/openfga/go.sum index bb1e49616a..12e4ef9b59 100644 --- a/modules/openfga/go.sum +++ b/modules/openfga/go.sum @@ -182,8 +182,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index c3134bb6c9..c44d1b61fd 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -58,7 +58,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index f27cc9d6d7..ce65d3f0c3 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -217,8 +217,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 9f00688432..3de6a80c8b 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -54,7 +54,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index e3cda40324..f5fbc66019 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -178,8 +178,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index ce76bc2c94..83b7a49f0a 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -65,7 +65,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index 662d9b8b7d..3b4a0243da 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -198,8 +198,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 90ff7780c4..6e09cd218a 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -89,6 +89,6 @@ require ( google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index 0048c22d31..7cb0c2dac4 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -230,9 +230,8 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -313,8 +312,6 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -674,8 +671,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index 6972aa31fd..e882b04964 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -57,7 +57,7 @@ require ( golang.org/x/text v0.14.0 // indirect golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240123012728-ef4313101c80 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index 3c65d349ab..5fb783f2f2 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -180,8 +180,8 @@ google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk= google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index 8ebcc04a1d..f00a8aa5c4 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -55,7 +55,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index 5106d69a1d..86def76452 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -185,8 +185,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 9ccffa865d..0c842a8922 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -35,7 +35,7 @@ require ( github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/klauspost/compress v1.16.0 // indirect - github.com/kr/text v0.1.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect @@ -64,6 +64,6 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/redis/go.sum b/modules/redis/go.sum index 478b0b7cf5..8ffa789952 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -18,6 +18,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -64,11 +65,10 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -93,14 +93,15 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -199,8 +200,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index e7c64618f1..e2096fe256 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -32,7 +32,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect github.com/klauspost/compress v1.17.4 // indirect - github.com/kr/text v0.1.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect @@ -63,7 +63,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index 7207c83f4c..5d4621bbf9 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -16,6 +16,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -56,11 +57,10 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -81,14 +81,15 @@ github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQ github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pierrec/lz4/v4 v4.1.19 h1:tYLzDnjDXh9qIxSTKHwXwOYmm9d887Y7Y1ZkyXYHAN4= github.com/pierrec/lz4/v4 v4.1.19/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -195,8 +196,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/surrealdb/go.mod b/modules/surrealdb/go.mod index d85a36ad92..dc7135eae4 100644 --- a/modules/surrealdb/go.mod +++ b/modules/surrealdb/go.mod @@ -56,7 +56,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/surrealdb/go.sum b/modules/surrealdb/go.sum index 81c687bb58..8208763f10 100644 --- a/modules/surrealdb/go.sum +++ b/modules/surrealdb/go.sum @@ -182,8 +182,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index 1596d8dda7..67d447ef73 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -35,7 +35,7 @@ require ( github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.2 // indirect github.com/klauspost/compress v1.16.0 // indirect - github.com/kr/text v0.1.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -69,7 +69,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/vault/go.sum b/modules/vault/go.sum index 988e585e3f..64e209a666 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -16,6 +16,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -68,11 +69,10 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -93,14 +93,15 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= @@ -208,8 +209,8 @@ google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 2871fa164b..21b0dd2dcb 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -77,7 +77,7 @@ require ( golang.org/x/tools v0.13.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect - google.golang.org/protobuf v1.31.0 // indirect + google.golang.org/protobuf v1.33.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index e7543bdefe..544ecc9aca 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -130,9 +130,8 @@ github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGC github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -182,8 +181,6 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= -github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -341,8 +338,8 @@ google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= From 0f364a3ca09f4c6091fa497f15f946870f065cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 15 Mar 2024 00:14:15 +0100 Subject: [PATCH 087/115] feat: support for waiting for response headers (#2349) --- docs/features/wait/http.md | 8 +++++ wait/http.go | 67 +++++++++++++++++++++++++------------- wait/http_test.go | 57 ++++++++++++++++++++++++++++++++ wait/testdata/main.go | 11 +++++++ 4 files changed, 121 insertions(+), 22 deletions(-) diff --git a/docs/features/wait/http.md b/docs/features/wait/http.md index 8b2b731762..ab9d294fb5 100644 --- a/docs/features/wait/http.md +++ b/docs/features/wait/http.md @@ -8,6 +8,8 @@ The HTTP wait strategy will check the result of an HTTP(S) request against the c - the HTTP request body to be sent. - the HTTP status code matcher as a function. - the HTTP response matcher as a function. +- the HTTP headers to be used. +- the HTTP response headers matcher as a function. - the TLS config to be used for HTTPS. - the startup timeout to be used in seconds, default is 60 seconds. - the poll interval to be used in milliseconds, default is 100 milliseconds. @@ -41,3 +43,9 @@ Variations on the HTTP wait strategy are supported, including: [Waiting for an HTTP endpoint matching an HTTP status code](../../../wait/http_test.go) inside_block:waitForHTTPStatusCode + +## Match for HTTP response headers + + +[Waiting for an HTTP endpoint matching an HTTP response header](../../../wait/http_test.go) inside_block:waitForHTTPHeaders + diff --git a/wait/http.go b/wait/http.go index f1ea40df64..7b92eb6a15 100644 --- a/wait/http.go +++ b/wait/http.go @@ -28,33 +28,37 @@ type HTTPStrategy struct { timeout *time.Duration // additional properties - Port nat.Port - Path string - StatusCodeMatcher func(status int) bool - ResponseMatcher func(body io.Reader) bool - UseTLS bool - AllowInsecure bool - TLSConfig *tls.Config // TLS config for HTTPS - Method string // http method - Body io.Reader // http request body - PollInterval time.Duration - UserInfo *url.Userinfo - ForceIPv4LocalHost bool + Port nat.Port + Path string + StatusCodeMatcher func(status int) bool + ResponseMatcher func(body io.Reader) bool + UseTLS bool + AllowInsecure bool + TLSConfig *tls.Config // TLS config for HTTPS + Method string // http method + Body io.Reader // http request body + Headers map[string]string + ResponseHeadersMatcher func(headers http.Header) bool + PollInterval time.Duration + UserInfo *url.Userinfo + ForceIPv4LocalHost bool } // NewHTTPStrategy constructs a HTTP strategy waiting on port 80 and status code 200 func NewHTTPStrategy(path string) *HTTPStrategy { return &HTTPStrategy{ - Port: "", - Path: path, - StatusCodeMatcher: defaultStatusCodeMatcher, - ResponseMatcher: func(body io.Reader) bool { return true }, - UseTLS: false, - TLSConfig: nil, - Method: http.MethodGet, - Body: nil, - PollInterval: defaultPollInterval(), - UserInfo: nil, + Port: "", + Path: path, + StatusCodeMatcher: defaultStatusCodeMatcher, + ResponseMatcher: func(body io.Reader) bool { return true }, + UseTLS: false, + TLSConfig: nil, + Method: http.MethodGet, + Body: nil, + Headers: map[string]string{}, + ResponseHeadersMatcher: func(headers http.Header) bool { return true }, + PollInterval: defaultPollInterval(), + UserInfo: nil, } } @@ -110,6 +114,16 @@ func (ws *HTTPStrategy) WithBody(reqdata io.Reader) *HTTPStrategy { return ws } +func (ws *HTTPStrategy) WithHeaders(headers map[string]string) *HTTPStrategy { + ws.Headers = headers + return ws +} + +func (ws *HTTPStrategy) WithResponseHeadersMatcher(matcher func(http.Header) bool) *HTTPStrategy { + ws.ResponseHeadersMatcher = matcher + return ws +} + func (ws *HTTPStrategy) WithBasicAuth(username, password string) *HTTPStrategy { ws.UserInfo = url.UserPassword(username, password) return ws @@ -281,6 +295,11 @@ func (ws *HTTPStrategy) WaitUntilReady(ctx context.Context, target StrategyTarge if err != nil { return err } + + for k, v := range ws.Headers { + req.Header.Set(k, v) + } + resp, err := client.Do(req) if err != nil { continue @@ -293,6 +312,10 @@ func (ws *HTTPStrategy) WaitUntilReady(ctx context.Context, target StrategyTarge _ = resp.Body.Close() continue } + if ws.ResponseHeadersMatcher != nil && !ws.ResponseHeadersMatcher(resp.Header) { + _ = resp.Body.Close() + continue + } if err := resp.Body.Close(); err != nil { continue } diff --git a/wait/http_test.go b/wait/http_test.go index 8ed91097ad..dd838dfbae 100644 --- a/wait/http_test.go +++ b/wait/http_test.go @@ -58,6 +58,63 @@ func ExampleHTTPStrategy() { // true } +func ExampleHTTPStrategy_WithHeaders() { + capath := filepath.Join("testdata", "root.pem") + cafile, err := os.ReadFile(capath) + if err != nil { + log.Fatalf("can't load ca file: %v", err) + } + + certpool := x509.NewCertPool() + if !certpool.AppendCertsFromPEM(cafile) { + log.Fatalf("the ca file isn't valid") + } + + ctx := context.Background() + + // waitForHTTPHeaders { + tlsconfig := &tls.Config{RootCAs: certpool, ServerName: "testcontainer.go.test"} + req := testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ + Context: "testdata", + }, + ExposedPorts: []string{"6443/tcp"}, + WaitingFor: wait.ForHTTP("/headers"). + WithTLS(true, tlsconfig). + WithPort("6443/tcp"). + WithHeaders(map[string]string{"X-request-header": "value"}). + WithResponseHeadersMatcher(func(headers http.Header) bool { + return headers.Get("X-response-header") == "value" + }, + ), + } + // } + + c, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + }) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + defer func() { + if err := c.Terminate(ctx); err != nil { + log.Fatalf("failed to terminate container: %s", err) + } + }() + + state, err := c.State(ctx) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true + +} func ExampleHTTPStrategy_WithPort() { // waitForHTTPWithPort { ctx := context.Background() diff --git a/wait/testdata/main.go b/wait/testdata/main.go index 4e89caf9f8..9ed936731a 100644 --- a/wait/testdata/main.go +++ b/wait/testdata/main.go @@ -45,6 +45,17 @@ func main() { w.WriteHeader(http.StatusUnauthorized) }) + mux.HandleFunc("/headers", func(w http.ResponseWriter, req *http.Request) { + h := req.Header.Get("X-request-header") + if h != "" { + w.Header().Add("X-response-header", h) + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte("headers")) + } else { + w.WriteHeader(http.StatusBadRequest) + } + }) + mux.HandleFunc("/ping", func(w http.ResponseWriter, req *http.Request) { data, _ := io.ReadAll(req.Body) if bytes.Equal(data, []byte("ping")) { From ecbbd627a2260d55352a00210045ebac997feaa4 Mon Sep 17 00:00:00 2001 From: Reo Uehara <47747828+uh-zz@users.noreply.github.com> Date: Sun, 17 Mar 2024 08:36:16 +0900 Subject: [PATCH 088/115] fix: typo in ci-test-go.yml (#2394) --- .github/workflows/ci-test-go.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-test-go.yml b/.github/workflows/ci-test-go.yml index 2b31e6f435..a56dab64a4 100644 --- a/.github/workflows/ci-test-go.yml +++ b/.github/workflows/ci-test-go.yml @@ -55,7 +55,7 @@ jobs: if: ${{ inputs.rootless-docker }} uses: ScribeMD/rootless-docker@6bd157a512c2fafa4e0243a8aa87d964eb890886 # v0.2.2 - - name: Remove Docket root socket + - name: Remove Docker root socket if: ${{ inputs.rootless-docker }} run: sudo rm -rf /var/run/docker.sock From 9f1d656ea700b51e9a92a5976c13b1b8cb3a2c5c Mon Sep 17 00:00:00 2001 From: Barrett Strausser Date: Mon, 18 Mar 2024 05:31:22 -0400 Subject: [PATCH 089/115] feat(MustConn): Add MustConnectionString on (some) dbs (#2343) * Add MustConnectionString on (some) dbs * Remove requires * Update mod/sum after removing testify --------- Co-authored-by: bstrausser --- modules/mariadb/mariadb.go | 10 ++++++++++ modules/mariadb/mariadb_test.go | 5 +++++ modules/mysql/mysql.go | 9 +++++++++ modules/mysql/mysql_test.go | 4 ++++ modules/nats/nats.go | 8 ++++++++ modules/nats/nats_test.go | 5 +++++ modules/postgres/postgres.go | 10 ++++++++++ modules/postgres/postgres_test.go | 7 ++++++- 8 files changed, 57 insertions(+), 1 deletion(-) diff --git a/modules/mariadb/mariadb.go b/modules/mariadb/mariadb.go index b84d82c2ec..503473f3a5 100644 --- a/modules/mariadb/mariadb.go +++ b/modules/mariadb/mariadb.go @@ -159,6 +159,16 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize return &MariaDBContainer{container, username, password, database}, nil } +// MustConnectionString panics if the address cannot be determined. +func (c *MariaDBContainer) MustConnectionString(ctx context.Context, args ...string) string { + addr, err := c.ConnectionString(ctx,args...) + if err != nil { + panic(err) + } + return addr +} + + func (c *MariaDBContainer) ConnectionString(ctx context.Context, args ...string) (string, error) { containerPort, err := c.MappedPort(ctx, "3306/tcp") if err != nil { diff --git a/modules/mariadb/mariadb_test.go b/modules/mariadb/mariadb_test.go index e7399bdb09..a520f25758 100644 --- a/modules/mariadb/mariadb_test.go +++ b/modules/mariadb/mariadb_test.go @@ -36,6 +36,11 @@ func TestMariaDB(t *testing.T) { t.Fatal(err) } + mustConnectionString := container.MustConnectionString(ctx,"tls=false") + if mustConnectionString!=connectionString{ + t.Errorf("ConnectionString was not equal to MustConnectionString") + } + db, err := sql.Open("mysql", connectionString) if err != nil { t.Fatal(err) diff --git a/modules/mysql/mysql.go b/modules/mysql/mysql.go index 2ebfce1710..4c004d38e2 100644 --- a/modules/mysql/mysql.go +++ b/modules/mysql/mysql.go @@ -90,6 +90,15 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize return &MySQLContainer{container, username, password, database}, nil } +// MustConnectionString panics if the address cannot be determined. +func (c *MySQLContainer) MustConnectionString(ctx context.Context, args ...string) string { + addr, err := c.ConnectionString(ctx,args...) + if err != nil { + panic(err) + } + return addr +} + func (c *MySQLContainer) ConnectionString(ctx context.Context, args ...string) (string, error) { containerPort, err := c.MappedPort(ctx, "3306/tcp") if err != nil { diff --git a/modules/mysql/mysql_test.go b/modules/mysql/mysql_test.go index daf5d879dc..cee869f494 100644 --- a/modules/mysql/mysql_test.go +++ b/modules/mysql/mysql_test.go @@ -34,6 +34,10 @@ func TestMySQL(t *testing.T) { if err != nil { t.Fatal(err) } + mustConnectionString := container.MustConnectionString(ctx,"tls=skip-verify") + if mustConnectionString!=connectionString{ + t.Errorf("ConnectionString was not equal to MustConnectionString") + } db, err := sql.Open("mysql", connectionString) if err != nil { diff --git a/modules/nats/nats.go b/modules/nats/nats.go index 42cebc1590..3471824658 100644 --- a/modules/nats/nats.go +++ b/modules/nats/nats.go @@ -64,6 +64,14 @@ func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomize return &natsContainer, nil } +func (c *NATSContainer) MustConnectionString(ctx context.Context, args ...string) string { + addr, err := c.ConnectionString(ctx,args...) + if err != nil { + panic(err) + } + return addr +} + // ConnectionString returns a connection string for the NATS container func (c *NATSContainer) ConnectionString(ctx context.Context, args ...string) (string, error) { mappedPort, err := c.MappedPort(ctx, defaultClientPort) diff --git a/modules/nats/nats_test.go b/modules/nats/nats_test.go index c5aa12a86a..2fa6a7bf37 100644 --- a/modules/nats/nats_test.go +++ b/modules/nats/nats_test.go @@ -32,6 +32,11 @@ func TestNATS(t *testing.T) { if err != nil { t.Fatalf("failed to get connection string: %s", err) } + mustUri := container.MustConnectionString(ctx) + if mustUri!=uri{ + t.Errorf("URI was not equal to MustUri") + } + // perform assertions nc, err := nats.Connect(uri) diff --git a/modules/postgres/postgres.go b/modules/postgres/postgres.go index 111a2a0953..cb3d01694b 100644 --- a/modules/postgres/postgres.go +++ b/modules/postgres/postgres.go @@ -26,6 +26,16 @@ type PostgresContainer struct { snapshotName string } + +// MustConnectionString panics if the address cannot be determined. +func (c *PostgresContainer) MustConnectionString(ctx context.Context, args ...string) string { + addr, err := c.ConnectionString(ctx,args...) + if err != nil { + panic(err) + } + return addr +} + // ConnectionString returns the connection string for the postgres container, using the default 5432 port, and // obtaining the host and exposed port from the container. It also accepts a variadic list of extra arguments // which will be appended to the connection string. The format of the extra arguments is the same as the diff --git a/modules/postgres/postgres_test.go b/modules/postgres/postgres_test.go index 3ce2692d26..2a74e147f6 100644 --- a/modules/postgres/postgres_test.go +++ b/modules/postgres/postgres_test.go @@ -87,7 +87,12 @@ func TestPostgres(t *testing.T) { connStr, err := container.ConnectionString(ctx, "sslmode=disable", "application_name=test") // } require.NoError(t, err) - + + mustConnStr := container.MustConnectionString(ctx,"sslmode=disable", "application_name=test") + if mustConnStr!=connStr{ + t.Errorf("ConnectionString was not equal to MustConnectionString") + } + // Ensure connection string is using generic format id, err := container.MappedPort(ctx, "5432/tcp") require.NoError(t, err) From 2dfbcf7d3fc04948e5201bb67dccd19fb1acee4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Mon, 18 Mar 2024 16:16:09 +0100 Subject: [PATCH 090/115] chore: bump ryuk to latest (#2395) --- internal/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/config/config.go b/internal/config/config.go index 7471cf0de5..1a7d031560 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -11,7 +11,7 @@ import ( "github.com/magiconair/properties" ) -const ReaperDefaultImage = "testcontainers/ryuk:0.6.0" +const ReaperDefaultImage = "testcontainers/ryuk:0.7.0" var ( tcConfig Config From 462bb5035387d6fc2076f17aad0136c164f750df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Tue, 19 Mar 2024 11:02:43 +0100 Subject: [PATCH 091/115] feat: support passing io.Reader as ContainerFile (#2401) * chore: run mod tidy * feat: support passing a reader to the ContainerFile struct * chore: fix lint --- container.go | 16 ++++++- container_file_test.go | 73 +++++++++++++++++++++++++++++++ docker_files_test.go | 9 +++- docs/features/files_and_mounts.md | 10 +++++ go.mod | 7 +-- go.sum | 20 +-------- lifecycle.go | 18 +++++++- modules/artemis/go.sum | 5 ++- modules/cassandra/go.sum | 5 ++- modules/consul/go.sum | 5 ++- modules/pulsar/go.sum | 5 ++- modules/weaviate/go.sum | 5 ++- wait/http_test.go | 2 +- 13 files changed, 147 insertions(+), 33 deletions(-) create mode 100644 container_file_test.go diff --git a/container.go b/container.go index 7c37523bdf..249aff32cf 100644 --- a/container.go +++ b/container.go @@ -99,11 +99,25 @@ type FromDockerfile struct { } type ContainerFile struct { - HostFilePath string + HostFilePath string // If Reader is present, HostFilePath is ignored + Reader io.Reader // If Reader is present, HostFilePath is ignored ContainerFilePath string FileMode int64 } +// validate validates the ContainerFile +func (c *ContainerFile) validate() error { + if c.HostFilePath == "" && c.Reader == nil { + return errors.New("either HostFilePath or Reader must be specified") + } + + if c.ContainerFilePath == "" { + return errors.New("ContainerFilePath must be specified") + } + + return nil +} + // ContainerRequest represents the parameters used to get a running container type ContainerRequest struct { FromDockerfile diff --git a/container_file_test.go b/container_file_test.go new file mode 100644 index 0000000000..31273c9966 --- /dev/null +++ b/container_file_test.go @@ -0,0 +1,73 @@ +// This test is testing very internal logic that should not be exported away from this package. We'll +// leave it in the main testcontainers package. Do not use for user facing examples. +package testcontainers + +import ( + "errors" + "os" + "path/filepath" + "testing" +) + +func TestContainerFileValidation(t *testing.T) { + type ContainerFileValidationTestCase struct { + Name string + ExpectedError error + File ContainerFile + } + + f, err := os.Open(filepath.Join(".", "testdata", "hello.sh")) + if err != nil { + t.Fatal(err) + } + + testTable := []ContainerFileValidationTestCase{ + { + Name: "valid container file: has hostfilepath", + File: ContainerFile{ + HostFilePath: "/path/to/host", + ContainerFilePath: "/path/to/container", + }, + }, + { + Name: "valid container file: has reader", + File: ContainerFile{ + Reader: f, + ContainerFilePath: "/path/to/container", + }, + }, + { + Name: "invalid container file", + ExpectedError: errors.New("either HostFilePath or Reader must be specified"), + File: ContainerFile{ + HostFilePath: "", + Reader: nil, + ContainerFilePath: "/path/to/container", + }, + }, + { + Name: "invalid container file", + ExpectedError: errors.New("ContainerFilePath must be specified"), + File: ContainerFile{ + HostFilePath: "/path/to/host", + ContainerFilePath: "", + }, + }, + } + + for _, testCase := range testTable { + t.Run(testCase.Name, func(t *testing.T) { + err := testCase.File.validate() + switch { + case err == nil && testCase.ExpectedError == nil: + return + case err == nil && testCase.ExpectedError != nil: + t.Errorf("did not receive expected error: %s", testCase.ExpectedError.Error()) + case err != nil && testCase.ExpectedError == nil: + t.Errorf("received unexpected error: %s", err.Error()) + case err.Error() != testCase.ExpectedError.Error(): + t.Errorf("errors mismatch: %s != %s", err.Error(), testCase.ExpectedError.Error()) + } + }) + } +} diff --git a/docker_files_test.go b/docker_files_test.go index afdb44822d..6fcfc92a0b 100644 --- a/docker_files_test.go +++ b/docker_files_test.go @@ -2,6 +2,7 @@ package testcontainers_test import ( "context" + "os" "path/filepath" "testing" "time" @@ -22,12 +23,18 @@ func TestCopyFileToContainer(t *testing.T) { t.Fatal(err) } + r, err := os.Open(absPath) + if err != nil { + t.Fatal(err) + } + container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ ContainerRequest: testcontainers.ContainerRequest{ Image: "docker.io/bash", Files: []testcontainers.ContainerFile{ { - HostFilePath: absPath, + Reader: r, + HostFilePath: absPath, // will be discarded internally ContainerFilePath: "/hello.sh", FileMode: 0o700, }, diff --git a/docs/features/files_and_mounts.md b/docs/features/files_and_mounts.md index 76e54012f3..118ee1ccbb 100644 --- a/docs/features/files_and_mounts.md +++ b/docs/features/files_and_mounts.md @@ -30,6 +30,16 @@ If you would like to copy a file to a container, you can do it in two different [Copying a list of files](../../docker_files_test.go) inside_block:copyFileOnCreate +The `ContainerFile` struct will accept the following fields: + +- `HostFilePath`: the path to the file in the host machine. Optional (see below). +- `Reader`: a `io.Reader` that will be used to copy the file to the container. Optional. +- `ContainerFilePath`: the path to the file in the container. Mandatory. +- `Mode`: the file mode, which is optional. + +!!!info + If the `Reader` field is set, the `HostFilePath` field will be ignored. + 2. Using the `CopyFileToContainer` method on a `running` container: diff --git a/go.mod b/go.mod index 055b4d1db8..2c01fe0a8f 100644 --- a/go.mod +++ b/go.mod @@ -25,27 +25,22 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect - github.com/cilium/ebpf v0.9.1 // indirect - github.com/containerd/cgroups/v3 v3.0.2 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect - github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/klauspost/compress v1.16.0 // indirect + github.com/kr/pretty v0.3.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/sys/user v0.1.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/runtime-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect diff --git a/go.sum b/go.sum index 05d5470f1b..6befe0a132 100644 --- a/go.sum +++ b/go.sum @@ -10,18 +10,13 @@ github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7 github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cilium/ebpf v0.9.1 h1:64sn2K3UKw8NbP/blsixRpF3nXuyhz/VjRlRzvlBRu4= -github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= -github.com/containerd/cgroups/v3 v3.0.2 h1:f5WFqIVSgo5IZmtTT3qVBo6TzI1ON6sycSBKkymb9L0= -github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -37,8 +32,6 @@ github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4 github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= -github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -46,9 +39,6 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= @@ -81,8 +71,6 @@ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0V github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= -github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= @@ -95,8 +83,6 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= -github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -104,6 +90,7 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= @@ -147,8 +134,6 @@ go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1 go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= -go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= -go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -175,7 +160,6 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/lifecycle.go b/lifecycle.go index fc1b28e17e..4a10a90842 100644 --- a/lifecycle.go +++ b/lifecycle.go @@ -131,7 +131,23 @@ var defaultCopyFileToContainerHook = func(files []ContainerFile) ContainerLifecy // copy files to container after it's created func(ctx context.Context, c Container) error { for _, f := range files { - err := c.CopyFileToContainer(ctx, f.HostFilePath, f.ContainerFilePath, f.FileMode) + if err := f.validate(); err != nil { + return fmt.Errorf("invalid file: %w", err) + } + + var err error + // Bytes takes precedence over HostFilePath + if f.Reader != nil { + bs, ioerr := io.ReadAll(f.Reader) + if ioerr != nil { + return fmt.Errorf("can't read from reader: %w", ioerr) + } + + err = c.CopyToContainer(ctx, bs, f.ContainerFilePath, f.FileMode) + } else { + err = c.CopyFileToContainer(ctx, f.HostFilePath, f.ContainerFilePath, f.FileMode) + } + if err != nil { return fmt.Errorf("can't copy %s to container: %w", f.HostFilePath, err) } diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index b4c173429f..13dee677ed 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -60,8 +60,9 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -89,6 +90,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index 46cb893218..96e2ecb435 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -66,8 +66,9 @@ github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -95,6 +96,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= diff --git a/modules/consul/go.sum b/modules/consul/go.sum index e295d32852..00d9778100 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -144,8 +144,9 @@ github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -223,6 +224,8 @@ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8b github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index 7cb0c2dac4..43d1e4e899 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -230,8 +230,9 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -312,6 +313,8 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index 544ecc9aca..f9125eede3 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -130,8 +130,9 @@ github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGC github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -181,6 +182,8 @@ github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:Om github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rogpeppe/go-internal v1.8.1/go.mod h1:JeRgkft04UBgHMgCIwADu4Pn6Mtm5d4nPKWu0nJ5d+o= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= diff --git a/wait/http_test.go b/wait/http_test.go index dd838dfbae..8966e6968e 100644 --- a/wait/http_test.go +++ b/wait/http_test.go @@ -113,8 +113,8 @@ func ExampleHTTPStrategy_WithHeaders() { // Output: // true - } + func ExampleHTTPStrategy_WithPort() { // waitForHTTPWithPort { ctx := context.Background() From c83b93cb1effba7214cc06e719cae0c9e1cad14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Thu, 21 Mar 2024 08:29:01 +0100 Subject: [PATCH 092/115] chore(deps): bump github.com/docker/docker from 25.0.3+incompatible to 25.0.5+incompatible (#2444) * chore(deps): bump github.com/docker/docker in /modules/mongodb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/openldap Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/consul Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/nats Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/cassandra Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mssql Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/neo4j Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/cockroachdb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/weaviate Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /examples/nginx Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /examples/toxiproxy Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/elasticsearch Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/artemis Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/postgres Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/localstack Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/opensearch Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/minio Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/kafka Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/clickhouse Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mariadb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/pulsar Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/ollama Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/rabbitmq Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/surrealdb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/redis Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/redpanda Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/qdrant Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/openfga Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mysql Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mockserver Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/k6 Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/vault Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/gcloud Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/chroma Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/couchbase Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/k3s Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/compose Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.4-0.20240301160236-51e876cd964c+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/commits/v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/milvus Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker from 25.0.3+incompatible to 25.0.5+incompatible in /modules/inbucket --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- examples/nginx/go.mod | 2 +- examples/nginx/go.sum | 4 ++-- examples/toxiproxy/go.mod | 2 +- examples/toxiproxy/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- modules/artemis/go.mod | 2 +- modules/artemis/go.sum | 4 ++-- modules/cassandra/go.mod | 2 +- modules/cassandra/go.sum | 4 ++-- modules/chroma/go.mod | 2 +- modules/chroma/go.sum | 4 ++-- modules/clickhouse/go.mod | 2 +- modules/clickhouse/go.sum | 4 ++-- modules/cockroachdb/go.mod | 2 +- modules/cockroachdb/go.sum | 4 ++-- modules/compose/go.mod | 2 +- modules/compose/go.sum | 4 ++-- modules/consul/go.mod | 2 +- modules/consul/go.sum | 4 ++-- modules/couchbase/go.mod | 2 +- modules/couchbase/go.sum | 4 ++-- modules/elasticsearch/go.mod | 2 +- modules/elasticsearch/go.sum | 4 ++-- modules/gcloud/go.mod | 2 +- modules/gcloud/go.sum | 4 ++-- modules/inbucket/go.mod | 2 +- modules/inbucket/go.sum | 4 ++-- modules/k3s/go.mod | 2 +- modules/k3s/go.sum | 4 ++-- modules/k6/go.mod | 2 +- modules/k6/go.sum | 4 ++-- modules/kafka/go.mod | 2 +- modules/kafka/go.sum | 4 ++-- modules/localstack/go.mod | 2 +- modules/localstack/go.sum | 4 ++-- modules/mariadb/go.mod | 2 +- modules/mariadb/go.sum | 4 ++-- modules/milvus/go.mod | 2 +- modules/milvus/go.sum | 4 ++-- modules/minio/go.mod | 2 +- modules/minio/go.sum | 4 ++-- modules/mockserver/go.mod | 2 +- modules/mockserver/go.sum | 4 ++-- modules/mongodb/go.mod | 2 +- modules/mongodb/go.sum | 4 ++-- modules/mssql/go.mod | 2 +- modules/mssql/go.sum | 4 ++-- modules/mysql/go.mod | 2 +- modules/mysql/go.sum | 4 ++-- modules/nats/go.mod | 2 +- modules/nats/go.sum | 4 ++-- modules/neo4j/go.mod | 2 +- modules/neo4j/go.sum | 4 ++-- modules/ollama/go.mod | 2 +- modules/ollama/go.sum | 4 ++-- modules/openfga/go.mod | 2 +- modules/openfga/go.sum | 4 ++-- modules/openldap/go.mod | 2 +- modules/openldap/go.sum | 4 ++-- modules/opensearch/go.mod | 2 +- modules/opensearch/go.sum | 4 ++-- modules/postgres/go.mod | 2 +- modules/postgres/go.sum | 4 ++-- modules/pulsar/go.mod | 2 +- modules/pulsar/go.sum | 4 ++-- modules/qdrant/go.mod | 2 +- modules/qdrant/go.sum | 4 ++-- modules/rabbitmq/go.mod | 2 +- modules/rabbitmq/go.sum | 4 ++-- modules/redis/go.mod | 2 +- modules/redis/go.sum | 4 ++-- modules/redpanda/go.mod | 2 +- modules/redpanda/go.sum | 4 ++-- modules/surrealdb/go.mod | 2 +- modules/surrealdb/go.sum | 4 ++-- modules/vault/go.mod | 2 +- modules/vault/go.sum | 4 ++-- modules/weaviate/go.mod | 2 +- modules/weaviate/go.sum | 4 ++-- 80 files changed, 120 insertions(+), 120 deletions(-) diff --git a/examples/nginx/go.mod b/examples/nginx/go.mod index 36e608dd29..1a50fde3ba 100644 --- a/examples/nginx/go.mod +++ b/examples/nginx/go.mod @@ -16,7 +16,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/examples/nginx/go.sum b/examples/nginx/go.sum index f5fbc66019..d5d44b3380 100644 --- a/examples/nginx/go.sum +++ b/examples/nginx/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/examples/toxiproxy/go.mod b/examples/toxiproxy/go.mod index 88efafc0e7..7a67d7b174 100644 --- a/examples/toxiproxy/go.mod +++ b/examples/toxiproxy/go.mod @@ -21,7 +21,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/examples/toxiproxy/go.sum b/examples/toxiproxy/go.sum index 02bdda1aea..75e663fce8 100644 --- a/examples/toxiproxy/go.sum +++ b/examples/toxiproxy/go.sum @@ -29,8 +29,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/go.mod b/go.mod index 2c01fe0a8f..d900a9103f 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/containerd/containerd v1.7.12 github.com/cpuguy83/dockercfg v0.3.1 - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/docker/go-connections v0.5.0 github.com/docker/go-units v0.5.0 github.com/google/uuid v1.6.0 diff --git a/go.sum b/go.sum index 6befe0a132..8a1e482f0d 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/artemis/go.mod b/modules/artemis/go.mod index 626bc25215..f3b1a4f3c2 100644 --- a/modules/artemis/go.mod +++ b/modules/artemis/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/artemis/go.sum b/modules/artemis/go.sum index 13dee677ed..56e6057524 100644 --- a/modules/artemis/go.sum +++ b/modules/artemis/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/cassandra/go.mod b/modules/cassandra/go.mod index f5e8f574a3..7f275a3b78 100644 --- a/modules/cassandra/go.mod +++ b/modules/cassandra/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/cassandra/go.sum b/modules/cassandra/go.sum index 96e2ecb435..481b263b4c 100644 --- a/modules/cassandra/go.sum +++ b/modules/cassandra/go.sum @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index bc94515cfc..ace626670a 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 39d3d1131c..6eb214e235 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/clickhouse/go.mod b/modules/clickhouse/go.mod index f22cf8aa09..380a64d16f 100644 --- a/modules/clickhouse/go.mod +++ b/modules/clickhouse/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-faster/city v1.0.1 // indirect diff --git a/modules/clickhouse/go.sum b/modules/clickhouse/go.sum index aa5aaef34c..1d989d5563 100644 --- a/modules/clickhouse/go.sum +++ b/modules/clickhouse/go.sum @@ -29,8 +29,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/cockroachdb/go.mod b/modules/cockroachdb/go.mod index b05f6739e9..42917d874a 100644 --- a/modules/cockroachdb/go.mod +++ b/modules/cockroachdb/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/cockroachdb/go.sum b/modules/cockroachdb/go.sum index 1e87399d7a..58b35db92e 100644 --- a/modules/cockroachdb/go.sum +++ b/modules/cockroachdb/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/compose/go.mod b/modules/compose/go.mod index e750660fbb..08faedd55a 100644 --- a/modules/compose/go.mod +++ b/modules/compose/go.mod @@ -8,7 +8,7 @@ require ( github.com/compose-spec/compose-go/v2 v2.0.0-rc.8.0.20240228111658-a0507e98fe60 github.com/docker/cli v25.0.4-0.20240305161310-2bf4225ad269+incompatible github.com/docker/compose/v2 v2.24.7 - github.com/docker/docker v25.0.4-0.20240301160236-51e876cd964c+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/google/uuid v1.6.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 diff --git a/modules/compose/go.sum b/modules/compose/go.sum index 61103e5b62..54241b9911 100644 --- a/modules/compose/go.sum +++ b/modules/compose/go.sum @@ -131,8 +131,8 @@ github.com/docker/compose/v2 v2.24.7/go.mod h1:7U3QbXdRJfBylTgkdlrjOg8hWLZqM09mo github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v25.0.4-0.20240301160236-51e876cd964c+incompatible h1:sCE9u4l5Kr3Z0pvUEAC6XKe/wnH6Q4O19I/0Mcqlxz8= -github.com/docker/docker v25.0.4-0.20240301160236-51e876cd964c+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.8.0 h1:YQFtbBQb4VrpoPxhFuzEBPQ9E16qz5SpHLS+uswaCp8= github.com/docker/docker-credential-helpers v0.8.0/go.mod h1:UGFXcuoQ5TxPiB54nHOZ32AWRqQdECoh/Mg0AlEYb40= github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c h1:lzqkGL9b3znc+ZUgi7FlLnqjQhcXxkNM/quxIjBVMD0= diff --git a/modules/consul/go.mod b/modules/consul/go.mod index 33139114ba..360134ea02 100644 --- a/modules/consul/go.mod +++ b/modules/consul/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/fatih/color v1.14.1 // indirect diff --git a/modules/consul/go.sum b/modules/consul/go.sum index 00d9778100..7594a69a92 100644 --- a/modules/consul/go.sum +++ b/modules/consul/go.sum @@ -42,8 +42,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/couchbase/go.mod b/modules/couchbase/go.mod index ae36cde9b9..763d3b6c0c 100644 --- a/modules/couchbase/go.mod +++ b/modules/couchbase/go.mod @@ -25,7 +25,7 @@ require ( github.com/couchbaselabs/gocbconnstr/v2 v2.0.0-20230515165046-68b522a21131 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/couchbase/go.sum b/modules/couchbase/go.sum index 865e678cd8..e365c05161 100644 --- a/modules/couchbase/go.sum +++ b/modules/couchbase/go.sum @@ -42,8 +42,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/elasticsearch/go.mod b/modules/elasticsearch/go.mod index 4dc713276d..701a712cb8 100644 --- a/modules/elasticsearch/go.mod +++ b/modules/elasticsearch/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/elastic/elastic-transport-go/v8 v8.4.0 // indirect diff --git a/modules/elasticsearch/go.sum b/modules/elasticsearch/go.sum index 55e3038910..a15180b90f 100644 --- a/modules/elasticsearch/go.sum +++ b/modules/elasticsearch/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/gcloud/go.mod b/modules/gcloud/go.mod index 3ae5ab5e86..a659e24f4c 100644 --- a/modules/gcloud/go.mod +++ b/modules/gcloud/go.mod @@ -35,7 +35,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/envoyproxy/go-control-plane v0.12.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.0.4 // indirect diff --git a/modules/gcloud/go.sum b/modules/gcloud/go.sum index 9ad5a95922..806737017f 100644 --- a/modules/gcloud/go.sum +++ b/modules/gcloud/go.sum @@ -67,8 +67,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/inbucket/go.mod b/modules/inbucket/go.mod index 237d839fa4..083c33cffc 100644 --- a/modules/inbucket/go.mod +++ b/modules/inbucket/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/inbucket/go.sum b/modules/inbucket/go.sum index a6f29fe3e6..5d3b2bcc5e 100644 --- a/modules/inbucket/go.sum +++ b/modules/inbucket/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/k3s/go.mod b/modules/k3s/go.mod index a91e6e5d3d..95c624dfa0 100644 --- a/modules/k3s/go.mod +++ b/modules/k3s/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/k3s go 1.21 require ( - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/docker/go-connections v0.5.0 github.com/testcontainers/testcontainers-go v0.29.1 gopkg.in/yaml.v3 v3.0.1 diff --git a/modules/k3s/go.sum b/modules/k3s/go.sum index c0e62e0229..9412dcf0ec 100644 --- a/modules/k3s/go.sum +++ b/modules/k3s/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/k6/go.mod b/modules/k6/go.mod index 0d2250721a..eded4b5f3a 100644 --- a/modules/k6/go.mod +++ b/modules/k6/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/k6 go 1.21 require ( - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/testcontainers/testcontainers-go v0.29.1 ) diff --git a/modules/k6/go.sum b/modules/k6/go.sum index f5fbc66019..d5d44b3380 100644 --- a/modules/k6/go.sum +++ b/modules/k6/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/kafka/go.mod b/modules/kafka/go.mod index 7506738edf..45740f1a3e 100644 --- a/modules/kafka/go.mod +++ b/modules/kafka/go.mod @@ -20,7 +20,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/eapache/go-resiliency v1.4.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3 // indirect diff --git a/modules/kafka/go.sum b/modules/kafka/go.sum index bbfff647bb..aa5be52550 100644 --- a/modules/kafka/go.sum +++ b/modules/kafka/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/localstack/go.mod b/modules/localstack/go.mod index 287cd6942c..ebf9c9ff5d 100644 --- a/modules/localstack/go.mod +++ b/modules/localstack/go.mod @@ -8,7 +8,7 @@ require ( github.com/aws/aws-sdk-go-v2/config v1.27.5 github.com/aws/aws-sdk-go-v2/credentials v1.17.5 github.com/aws/aws-sdk-go-v2/service/s3 v1.51.2 - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 diff --git a/modules/localstack/go.sum b/modules/localstack/go.sum index dc635e0ed1..8a9a848fcf 100644 --- a/modules/localstack/go.sum +++ b/modules/localstack/go.sum @@ -62,8 +62,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mariadb/go.mod b/modules/mariadb/go.mod index 8dac11c94a..863d3ff68a 100644 --- a/modules/mariadb/go.mod +++ b/modules/mariadb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mariadb/go.sum b/modules/mariadb/go.sum index 1897052b8b..0140474a1c 100644 --- a/modules/mariadb/go.sum +++ b/modules/mariadb/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/milvus/go.mod b/modules/milvus/go.mod index e293d0100a..a5d084621f 100644 --- a/modules/milvus/go.mod +++ b/modules/milvus/go.mod @@ -20,7 +20,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/milvus/go.sum b/modules/milvus/go.sum index 203725c882..75b03176b3 100644 --- a/modules/milvus/go.sum +++ b/modules/milvus/go.sum @@ -52,8 +52,8 @@ github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6ps github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/minio/go.mod b/modules/minio/go.mod index 8208d43968..b5f44ad846 100644 --- a/modules/minio/go.mod +++ b/modules/minio/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/dustin/go-humanize v1.0.1 // indirect diff --git a/modules/minio/go.sum b/modules/minio/go.sum index e0a2bb979c..f214c14c40 100644 --- a/modules/minio/go.sum +++ b/modules/minio/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mockserver/go.mod b/modules/mockserver/go.mod index d6ba95f6fd..7989b8ff50 100644 --- a/modules/mockserver/go.mod +++ b/modules/mockserver/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mockserver/go.sum b/modules/mockserver/go.sum index ffb1b796f9..20ac2630da 100644 --- a/modules/mockserver/go.sum +++ b/modules/mockserver/go.sum @@ -25,8 +25,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mongodb/go.mod b/modules/mongodb/go.mod index d0d2cc7783..5a2b369166 100644 --- a/modules/mongodb/go.mod +++ b/modules/mongodb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mongodb/go.sum b/modules/mongodb/go.sum index d34d72773b..2ad68b4603 100644 --- a/modules/mongodb/go.sum +++ b/modules/mongodb/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mssql/go.mod b/modules/mssql/go.mod index ae4617e379..7bb68db12f 100644 --- a/modules/mssql/go.mod +++ b/modules/mssql/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mssql/go.sum b/modules/mssql/go.sum index 3cc97f41f5..b9d563d699 100644 --- a/modules/mssql/go.sum +++ b/modules/mssql/go.sum @@ -35,8 +35,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/mysql/go.mod b/modules/mysql/go.mod index 54f65bf460..d97407509f 100644 --- a/modules/mysql/go.mod +++ b/modules/mysql/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/mysql/go.sum b/modules/mysql/go.sum index 1897052b8b..0140474a1c 100644 --- a/modules/mysql/go.sum +++ b/modules/mysql/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/nats/go.mod b/modules/nats/go.mod index 94accbe50a..d88f02ebb1 100644 --- a/modules/nats/go.mod +++ b/modules/nats/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/nats/go.sum b/modules/nats/go.sum index 19efcaa0fb..2a531beed5 100644 --- a/modules/nats/go.sum +++ b/modules/nats/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/neo4j/go.mod b/modules/neo4j/go.mod index f8d5a8ed78..4697557215 100644 --- a/modules/neo4j/go.mod +++ b/modules/neo4j/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/neo4j/go.sum b/modules/neo4j/go.sum index 78d7f97d21..73500a8869 100644 --- a/modules/neo4j/go.sum +++ b/modules/neo4j/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/ollama/go.mod b/modules/ollama/go.mod index ccb4de9f10..97dba83244 100644 --- a/modules/ollama/go.mod +++ b/modules/ollama/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/ollama go 1.21 require ( - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/google/uuid v1.6.0 github.com/testcontainers/testcontainers-go v0.29.1 github.com/tmc/langchaingo v0.1.5 diff --git a/modules/ollama/go.sum b/modules/ollama/go.sum index a275266dcc..d26607c83e 100644 --- a/modules/ollama/go.sum +++ b/modules/ollama/go.sum @@ -25,8 +25,8 @@ github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/dlclark/regexp2 v1.8.1 h1:6Lcdwya6GjPUNsBct8Lg/yRPwMhABj269AAzdGSiR+0= github.com/dlclark/regexp2 v1.8.1/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/openfga/go.mod b/modules/openfga/go.mod index eeb7b59463..4583a7d99e 100644 --- a/modules/openfga/go.mod +++ b/modules/openfga/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/openfga/go.sum b/modules/openfga/go.sum index 12e4ef9b59..6693e5c322 100644 --- a/modules/openfga/go.sum +++ b/modules/openfga/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/openldap/go.mod b/modules/openldap/go.mod index c44d1b61fd..6769c9e855 100644 --- a/modules/openldap/go.mod +++ b/modules/openldap/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/openldap/go.sum b/modules/openldap/go.sum index ce65d3f0c3..555355c94c 100644 --- a/modules/openldap/go.sum +++ b/modules/openldap/go.sum @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/opensearch/go.mod b/modules/opensearch/go.mod index 3de6a80c8b..6625c6cdbf 100644 --- a/modules/opensearch/go.mod +++ b/modules/opensearch/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/opensearch go 1.21 require ( - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/docker/go-units v0.5.0 github.com/testcontainers/testcontainers-go v0.29.1 ) diff --git a/modules/opensearch/go.sum b/modules/opensearch/go.sum index f5fbc66019..d5d44b3380 100644 --- a/modules/opensearch/go.sum +++ b/modules/opensearch/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/postgres/go.mod b/modules/postgres/go.mod index 83b7a49f0a..c24255482a 100644 --- a/modules/postgres/go.mod +++ b/modules/postgres/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/postgres/go.sum b/modules/postgres/go.sum index 3b4a0243da..07b01ce51b 100644 --- a/modules/postgres/go.sum +++ b/modules/postgres/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/pulsar/go.mod b/modules/pulsar/go.mod index 6e09cd218a..1b00f9e0c3 100644 --- a/modules/pulsar/go.mod +++ b/modules/pulsar/go.mod @@ -4,7 +4,7 @@ go 1.21 require ( github.com/apache/pulsar-client-go v0.10.0 - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/docker/go-connections v0.5.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 diff --git a/modules/pulsar/go.sum b/modules/pulsar/go.sum index 43d1e4e899..30311da433 100644 --- a/modules/pulsar/go.sum +++ b/modules/pulsar/go.sum @@ -98,8 +98,8 @@ github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4w github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/qdrant/go.mod b/modules/qdrant/go.mod index e882b04964..d36e9c8dbb 100644 --- a/modules/qdrant/go.mod +++ b/modules/qdrant/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/qdrant/go.sum b/modules/qdrant/go.sum index 5fb783f2f2..843ad31c13 100644 --- a/modules/qdrant/go.sum +++ b/modules/qdrant/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/rabbitmq/go.mod b/modules/rabbitmq/go.mod index f00a8aa5c4..99246f287d 100644 --- a/modules/rabbitmq/go.mod +++ b/modules/rabbitmq/go.mod @@ -18,7 +18,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/rabbitmq/go.sum b/modules/rabbitmq/go.sum index 86def76452..83b2de6fda 100644 --- a/modules/rabbitmq/go.sum +++ b/modules/rabbitmq/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/redis/go.mod b/modules/redis/go.mod index 0c842a8922..d70e32a6cf 100644 --- a/modules/redis/go.mod +++ b/modules/redis/go.mod @@ -25,7 +25,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/redis/go.sum b/modules/redis/go.sum index 8ffa789952..e62b987972 100644 --- a/modules/redis/go.sum +++ b/modules/redis/go.sum @@ -28,8 +28,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/redpanda/go.mod b/modules/redpanda/go.mod index e2096fe256..5cb25ea8ed 100644 --- a/modules/redpanda/go.mod +++ b/modules/redpanda/go.mod @@ -22,7 +22,7 @@ require ( github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect github.com/go-logr/logr v1.2.4 // indirect diff --git a/modules/redpanda/go.sum b/modules/redpanda/go.sum index 5d4621bbf9..00b317109a 100644 --- a/modules/redpanda/go.sum +++ b/modules/redpanda/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/surrealdb/go.mod b/modules/surrealdb/go.mod index dc7135eae4..8ac0f39b8c 100644 --- a/modules/surrealdb/go.mod +++ b/modules/surrealdb/go.mod @@ -17,7 +17,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/surrealdb/go.sum b/modules/surrealdb/go.sum index 8208763f10..a32d3c7da1 100644 --- a/modules/surrealdb/go.sum +++ b/modules/surrealdb/go.sum @@ -23,8 +23,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/vault/go.mod b/modules/vault/go.mod index 67d447ef73..64ea38ea7d 100644 --- a/modules/vault/go.mod +++ b/modules/vault/go.mod @@ -3,7 +3,7 @@ module github.com/testcontainers/testcontainers-go/modules/vault go 1.21 require ( - github.com/docker/docker v25.0.3+incompatible + github.com/docker/docker v25.0.5+incompatible github.com/hashicorp/vault-client-go v0.4.3 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 diff --git a/modules/vault/go.sum b/modules/vault/go.sum index 64e209a666..858c2112c9 100644 --- a/modules/vault/go.sum +++ b/modules/vault/go.sum @@ -24,8 +24,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= diff --git a/modules/weaviate/go.mod b/modules/weaviate/go.mod index 21b0dd2dcb..9bdf9156a8 100644 --- a/modules/weaviate/go.mod +++ b/modules/weaviate/go.mod @@ -21,7 +21,7 @@ require ( github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v25.0.3+incompatible // indirect + github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.3 // indirect diff --git a/modules/weaviate/go.sum b/modules/weaviate/go.sum index f9125eede3..d216c5933b 100644 --- a/modules/weaviate/go.sum +++ b/modules/weaviate/go.sum @@ -32,8 +32,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v25.0.3+incompatible h1:D5fy/lYmY7bvZa0XTZ5/UJPljor41F+vdyJG5luQLfQ= -github.com/docker/docker v25.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= From 0866c3f1821113e126731b24eca3177a0e7ad239 Mon Sep 17 00:00:00 2001 From: Trayan Azarov Date: Fri, 22 Mar 2024 12:16:50 +0100 Subject: [PATCH 093/115] chore(deps): Bumping ChromaGo client version (#2402) * chore: Bumping ChromaGo client version * feat: Added GetClient utility method - Updated/Added a few examples * feat: Added GetClient utility method - Updated/Added a few examples - Updated docs * fix: Fixing docs built * fix: Removing GetClient from ChromaContainer --- docs/modules/chroma.md | 13 +++-- modules/chroma/chroma.go | 2 +- modules/chroma/chroma_test.go | 22 ++++++++- modules/chroma/examples_test.go | 85 ++++++++++++++++++--------------- modules/chroma/go.mod | 9 +++- modules/chroma/go.sum | 20 ++++++-- 6 files changed, 102 insertions(+), 49 deletions(-) diff --git a/docs/modules/chroma.md b/docs/modules/chroma.md index bb44b5d54c..4eb750e7f2 100644 --- a/docs/modules/chroma.md +++ b/docs/modules/chroma.md @@ -6,6 +6,11 @@ Since testcontainers-go -[Get the client](../../modules/chroma/examples_test.go) inside_block:createClient +[Get the client](../../modules/chroma/examples_test.go) inside_block:getClient ### Working with Collections @@ -80,5 +85,7 @@ Then, you can create a Chroma client using the Chroma module: [Create Collection](../../modules/chroma/examples_test.go) inside_block:createCollection [List Collections](../../modules/chroma/examples_test.go) inside_block:listCollections +[Add Data to Collection](../../modules/chroma/examples_test.go) inside_block:addData +[Query Collection](../../modules/chroma/examples_test.go) inside_block:queryCollection [Delete Collection](../../modules/chroma/examples_test.go) inside_block:deleteCollection \ No newline at end of file diff --git a/modules/chroma/chroma.go b/modules/chroma/chroma.go index 239e0e6fa0..e2ef604c99 100644 --- a/modules/chroma/chroma.go +++ b/modules/chroma/chroma.go @@ -16,7 +16,7 @@ type ChromaContainer struct { // RunContainer creates an instance of the Chroma container type func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*ChromaContainer, error) { req := testcontainers.ContainerRequest{ - Image: "chromadb/chroma:0.4.22", + Image: "chromadb/chroma:0.4.24", ExposedPorts: []string{"8000/tcp"}, WaitingFor: wait.ForAll( wait.ForListeningPort("8000/tcp"), diff --git a/modules/chroma/chroma_test.go b/modules/chroma/chroma_test.go index be6a1008a4..deea10be23 100644 --- a/modules/chroma/chroma_test.go +++ b/modules/chroma/chroma_test.go @@ -5,6 +5,9 @@ import ( "net/http" "testing" + chromago "github.com/amikos-tech/chroma-go" + "github.com/stretchr/testify/require" + "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/chroma" ) @@ -12,7 +15,7 @@ import ( func TestChroma(t *testing.T) { ctx := context.Background() - container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22.dev44")) + container, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24")) if err != nil { t.Fatal(err) } @@ -43,4 +46,21 @@ func TestChroma(t *testing.T) { tt.Fatalf("unexpected status code: %d", resp.StatusCode) } }) + + t.Run("GetClient", func(tt *testing.T) { + // restEndpoint { + endpoint, err := container.RESTEndpoint(context.Background()) + if err != nil { + tt.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic + } + chromaClient, err := chromago.NewClient(endpoint) + // } + if err != nil { + tt.Fatalf("failed to create client: %s", err) + } + + hb, err := chromaClient.Heartbeat(context.TODO()) + require.NoError(tt, err) + require.NotNil(tt, hb["nanosecond heartbeat"]) + }) } diff --git a/modules/chroma/examples_test.go b/modules/chroma/examples_test.go index 7dec6287b7..07bf04813c 100644 --- a/modules/chroma/examples_test.go +++ b/modules/chroma/examples_test.go @@ -4,11 +4,9 @@ import ( "context" "fmt" "log" - "os" chromago "github.com/amikos-tech/chroma-go" - "github.com/amikos-tech/chroma-go/openai" - chromaopenapi "github.com/amikos-tech/chroma-go/swagger" + "github.com/amikos-tech/chroma-go/types" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/chroma" @@ -18,7 +16,7 @@ func ExampleRunContainer() { // runChromaContainer { ctx := context.Background() - chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24")) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -46,7 +44,7 @@ func ExampleChromaContainer_connectWithClient() { // createClient { ctx := context.Background() - chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24")) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -58,21 +56,13 @@ func ExampleChromaContainer_connectWithClient() { } }() - connectionStr, err := chromaContainer.RESTEndpoint(ctx) + endpoint, err := chromaContainer.RESTEndpoint(context.Background()) if err != nil { log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic } - - // create the client connection and confirm that we can access the server with it - configuration := chromaopenapi.NewConfiguration() - configuration.Servers = chromaopenapi.ServerConfigurations{ - { - URL: connectionStr, - Description: "Chromadb server url for this store", - }, - } - chromaClient := &chromago.Client{ - ApiClient: chromaopenapi.NewAPIClient(configuration), + chromaClient, err := chromago.NewClient(endpoint) + if err != nil { + log.Fatalf("failed to get client: %s", err) // nolint:gocritic } hbs, errHb := chromaClient.Heartbeat(context.Background()) @@ -91,7 +81,7 @@ func ExampleChromaContainer_connectWithClient() { func ExampleChromaContainer_collections() { ctx := context.Background() - chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.22")) + chromaContainer, err := chroma.RunContainer(ctx, testcontainers.WithImage("chromadb/chroma:0.4.24"), testcontainers.WithEnv(map[string]string{"ALLOW_RESET": "true"})) if err != nil { log.Fatalf("failed to start container: %s", err) } @@ -102,30 +92,28 @@ func ExampleChromaContainer_collections() { } }() - connectionStr, err := chromaContainer.RESTEndpoint(ctx) + // getClient { + // create the client connection and confirm that we can access the server with it + endpoint, err := chromaContainer.RESTEndpoint(context.Background()) if err != nil { log.Fatalf("failed to get REST endpoint: %s", err) // nolint:gocritic } - - // create the client connection and confirm that we can access the server with it - configuration := chromaopenapi.NewConfiguration() - configuration.Servers = chromaopenapi.ServerConfigurations{ - { - URL: connectionStr, - Description: "Chromadb server url for this store", - }, + chromaClient, err := chromago.NewClient(endpoint) + // } + if err != nil { + log.Fatalf("failed to get client: %s", err) // nolint:gocritic } - chromaClient := &chromago.Client{ - ApiClient: chromaopenapi.NewAPIClient(configuration), + // reset { + reset, err := chromaClient.Reset(context.Background()) + // } + if err != nil { + log.Fatalf("failed to reset: %s", err) // nolint:gocritic } + fmt.Printf("Reset successful: %v\n", reset) // createCollection { - // for testing purposes, the OPENAI_API_KEY environment variable can be empty - // therefore this test is expected to succeed even though the API key is not set. - embeddingFunction := openai.NewOpenAIEmbeddingFunction(os.Getenv("OPENAI_API_KEY")) - distanceFunction := chromago.L2 - - col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, embeddingFunction, distanceFunction) + // for testing we use a dummy hashing function NewConsistentHashEmbeddingFunction + col, err := chromaClient.CreateCollection(context.Background(), "test-collection", map[string]any{}, true, types.NewConsistentHashEmbeddingFunction(), types.L2) // } if err != nil { log.Fatalf("failed to create collection: %s", err) // nolint:gocritic @@ -133,20 +121,37 @@ func ExampleChromaContainer_collections() { fmt.Println("Collection created:", col.Name) + // addData { // verify it's possible to add data to the collection col1, err := col.Add( context.Background(), - [][]float32{{1, 2, 3}, {4, 5, 6}}, - []map[string]interface{}{}, - []string{"test-doc-1", "test-doc-2"}, - []string{"test-label-1", "test-label-2"}, + nil, // embeddings + []map[string]interface{}{}, // metadata + []string{"test-doc-1", "test-doc-2"}, // documents + []string{"test-label-1", "test-label-2"}, // ids ) + // } if err != nil { log.Fatalf("failed to add data to collection: %s", err) // nolint:gocritic } fmt.Println(col1.Count(context.Background())) + // queryCollection { + // verify it's possible to query the collection + queryResults, err := col1.QueryWithOptions( + context.Background(), + types.WithQueryTexts([]string{"test-doc-1"}), + types.WithInclude(types.IDocuments, types.IEmbeddings, types.IMetadatas), + types.WithNResults(1), + ) + // } + if err != nil { + log.Fatalf("failed to query collection: %s", err) // nolint:gocritic + } + + fmt.Printf("Result of query: %v\n", queryResults) + // listCollections { cols, err := chromaClient.ListCollections(context.Background()) // } @@ -166,8 +171,10 @@ func ExampleChromaContainer_collections() { fmt.Println(err) // Output: + // Reset successful: true // Collection created: test-collection // 2 + // Result of query: &{[[test-doc-1]] [[test-label-1]] [[map[]]] []} // 1 // } diff --git a/modules/chroma/go.mod b/modules/chroma/go.mod index ace626670a..78a530ca9b 100644 --- a/modules/chroma/go.mod +++ b/modules/chroma/go.mod @@ -3,19 +3,22 @@ module github.com/testcontainers/testcontainers-go/modules/chroma go 1.21 require ( - github.com/amikos-tech/chroma-go v0.0.1 + github.com/amikos-tech/chroma-go v0.1.2 + github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.29.1 ) require ( dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Masterminds/semver v1.5.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/containerd/containerd v1.7.12 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/distribution/reference v0.5.0 // indirect github.com/docker/docker v25.0.5+incompatible // indirect github.com/docker/go-connections v0.5.0 // indirect @@ -28,6 +31,7 @@ require ( github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.6.0 // indirect github.com/klauspost/compress v1.16.0 // indirect + github.com/kr/pretty v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/moby/patternmatcher v0.6.0 // indirect @@ -35,9 +39,11 @@ require ( github.com/moby/sys/user v0.1.0 // indirect github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect + github.com/oklog/ulid v1.3.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect @@ -56,6 +62,7 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect google.golang.org/grpc v1.58.3 // indirect google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/chroma/go.sum b/modules/chroma/go.sum index 6eb214e235..199d77d223 100644 --- a/modules/chroma/go.sum +++ b/modules/chroma/go.sum @@ -4,12 +4,14 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9 github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/amikos-tech/chroma-go v0.0.1 h1:yWgl6YUhM+kXuH82DR9Q8dWddcjgaFuFPk+MtWNreqE= -github.com/amikos-tech/chroma-go v0.0.1/go.mod h1:uJwgGN4rBUTMI88Rn68Xia+cTRogOo0/elcPvJYFtBU= +github.com/amikos-tech/chroma-go v0.1.2 h1:ECiJ4Gn0AuJaj/jLo+FiqrKRHBVDkrDaUQVRBsEMmEQ= +github.com/amikos-tech/chroma-go v0.1.2/go.mod h1:R/RUp0aaqCWdSXWyIUTfjuNymwqBGLYFgXNZEmisphY= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= @@ -18,6 +20,7 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -54,12 +57,14 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= -github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= -github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -74,16 +79,21 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -185,6 +195,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= From 09648d156cd13a650925f423768c5ee7b1f72734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20de=20la=20Pe=C3=B1a?= Date: Fri, 22 Mar 2024 12:57:13 +0000 Subject: [PATCH 094/115] feat: add distribution-registry module (#2341) * feat: bootstrap registry module * chore: add options and tests for the module * feat: support for pushing images to the registry * feat: support for waiting for response headers * feat: support deleting images from the registry * docs: include ImageExists in the docs * chore: bump ryuk to latest (#2395) * feat: support passing io.Reader as ContainerFile (#2401) * chore: run mod tidy * feat: support passing a reader to the ContainerFile struct * chore: fix lint * chore(deps): bump github.com/docker/docker from 25.0.3+incompatible to 25.0.5+incompatible (#2444) * chore(deps): bump github.com/docker/docker in /modules/mongodb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/openldap Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/consul Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/nats Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/cassandra Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mssql Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/neo4j Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/cockroachdb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/weaviate Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /examples/nginx Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /examples/toxiproxy Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/elasticsearch Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/artemis Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/postgres Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/localstack Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/opensearch Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/minio Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/kafka Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/clickhouse Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mariadb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/pulsar Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/ollama Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/rabbitmq Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/surrealdb Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/redis Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/redpanda Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/qdrant Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/openfga Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mysql Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/mockserver Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/k6 Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/vault Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/gcloud Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/chroma Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/couchbase Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/k3s Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/compose Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.4-0.20240301160236-51e876cd964c+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/commits/v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker in /modules/milvus Bumps [github.com/docker/docker](https://github.com/docker/docker) from 25.0.3+incompatible to 25.0.5+incompatible. - [Release notes](https://github.com/docker/docker/releases) - [Commits](https://github.com/docker/docker/compare/v25.0.3...v25.0.5) --- updated-dependencies: - dependency-name: github.com/docker/docker dependency-type: indirect ... Signed-off-by: dependabot[bot] * chore(deps): bump github.com/docker/docker from 25.0.3+incompatible to 25.0.5+incompatible in /modules/inbucket --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): Bumping ChromaGo client version (#2402) * chore: Bumping ChromaGo client version * feat: Added GetClient utility method - Updated/Added a few examples * feat: Added GetClient utility method - Updated/Added a few examples - Updated docs * fix: Fixing docs built * fix: Removing GetClient from ChromaContainer * chore: mod tidy --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Trayan Azarov --- .github/workflows/ci.yml | 2 +- .vscode/.testcontainers-go.code-workspace | 4 + docs/modules/registry.md | 113 ++++++ mkdocs.yml | 1 + modules/registry/Makefile | 5 + modules/registry/examples_test.go | 246 +++++++++++++ modules/registry/go.mod | 60 ++++ modules/registry/go.sum | 188 ++++++++++ modules/registry/options.go | 74 ++++ modules/registry/registry.go | 198 +++++++++++ modules/registry/registry_test.go | 328 ++++++++++++++++++ modules/registry/testdata/auth/htpasswd | 2 + .../data | Bin 0 -> 2806054 bytes .../data | Bin 0 -> 580 bytes .../data | Bin 0 -> 135 bytes .../data | 41 +++ .../data | 1 + .../data | Bin 0 -> 6444723 bytes .../data | Bin 0 -> 398361 bytes .../data | Bin 0 -> 1271 bytes .../link | 1 + .../link | 1 + .../link | 1 + .../link | 1 + .../link | 1 + .../link | 1 + .../link | 1 + .../link | 1 + .../_manifests/tags/5.0-alpine/current/link | 1 + .../link | 1 + modules/registry/testdata/redis/Dockerfile | 3 + .../testdata/wrongdata/layerrrr/layer.tmp | 0 sonar-project.properties | 2 +- 33 files changed, 1276 insertions(+), 2 deletions(-) create mode 100644 docs/modules/registry.md create mode 100644 modules/registry/Makefile create mode 100644 modules/registry/examples_test.go create mode 100644 modules/registry/go.mod create mode 100644 modules/registry/go.sum create mode 100644 modules/registry/options.go create mode 100644 modules/registry/registry.go create mode 100644 modules/registry/registry_test.go create mode 100644 modules/registry/testdata/auth/htpasswd create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/21/213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/25/2595acf2c0bea71c4135062d027e4cf088b1674b3bb008b2571796491aa662b1/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/64/64acd9e2f7c70ed5b56219f5b8949a8cbc67c03f8c51fdb6786bec66eec4476b/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/66/662f040a4fc0e397e379a82a7d79663bb26698ae009d674e70b0224c4b155edb/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/96/960343481690ac146b55e1b704b9685104f1710bd557c7a409c48fdc721929fa/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/a5/a59c682d8704ef96c5dec2f59481ac24993fb3c25a4a139e22e2db664a34b06a/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/dc/dc2e3041aaa57579fe87bf26fbb56fcf7aef49b3f5a0e0ee37eab519855dd37e/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/blobs/sha256/fb/fb541f77610a7550755893b11853752742e9b173e4e9967f4db6b02c2e51ce4a/data create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/2595acf2c0bea71c4135062d027e4cf088b1674b3bb008b2571796491aa662b1/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/64acd9e2f7c70ed5b56219f5b8949a8cbc67c03f8c51fdb6786bec66eec4476b/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/960343481690ac146b55e1b704b9685104f1710bd557c7a409c48fdc721929fa/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/a59c682d8704ef96c5dec2f59481ac24993fb3c25a4a139e22e2db664a34b06a/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/dc2e3041aaa57579fe87bf26fbb56fcf7aef49b3f5a0e0ee37eab519855dd37e/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_layers/sha256/fb541f77610a7550755893b11853752742e9b173e4e9967f4db6b02c2e51ce4a/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_manifests/revisions/sha256/662f040a4fc0e397e379a82a7d79663bb26698ae009d674e70b0224c4b155edb/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_manifests/tags/5.0-alpine/current/link create mode 100644 modules/registry/testdata/data/docker/registry/v2/repositories/redis/_manifests/tags/5.0-alpine/index/sha256/662f040a4fc0e397e379a82a7d79663bb26698ae009d674e70b0224c4b155edb/link create mode 100644 modules/registry/testdata/redis/Dockerfile create mode 100644 modules/registry/testdata/wrongdata/layerrrr/layer.tmp diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96b4673328..8eb2989c8b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: matrix: go-version: [1.21.x, 1.x] platform: [ubuntu-latest] - module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, ollama, openfga, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, surrealdb, vault, weaviate] + module: [artemis, cassandra, chroma, clickhouse, cockroachdb, compose, consul, couchbase, elasticsearch, gcloud, inbucket, k3s, k6, kafka, localstack, mariadb, milvus, minio, mockserver, mongodb, mssql, mysql, nats, neo4j, ollama, openfga, openldap, opensearch, postgres, pulsar, qdrant, rabbitmq, redis, redpanda, registry, surrealdb, vault, weaviate] uses: ./.github/workflows/ci-test-go.yml with: go-version: ${{ matrix.go-version }} diff --git a/.vscode/.testcontainers-go.code-workspace b/.vscode/.testcontainers-go.code-workspace index fa5a2e90e6..fc27db598a 100644 --- a/.vscode/.testcontainers-go.code-workspace +++ b/.vscode/.testcontainers-go.code-workspace @@ -149,6 +149,10 @@ "name": "module / redpanda", "path": "../modules/redpanda" }, + { + "name": "module / registry", + "path": "../modules/registry" + }, { "name": "module / surrealdb", "path": "../modules/surrealdb" diff --git a/docs/modules/registry.md b/docs/modules/registry.md new file mode 100644 index 0000000000..18e9e14fd8 --- /dev/null +++ b/docs/modules/registry.md @@ -0,0 +1,113 @@ +# Registry + +Not available until the next release of testcontainers-go :material-tag: main + +## Introduction + +The Testcontainers module for Registry. + +## Adding this module to your project dependencies + +Please run the following command to add the Registry module to your Go dependencies: + +``` +go get github.com/testcontainers/testcontainers-go/modules/registry +``` + +## Usage example + + +[Creating a Registry container](../../modules/registry/examples_test.go) inside_block:runRegistryContainer + + +## Module reference + +The Registry module exposes one entrypoint function to create the Registry container, and this function receives two parameters: + +```golang +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*RegistryContainer, error) +``` + +- `context.Context`, the Go context. +- `testcontainers.ContainerCustomizer`, a variadic argument for passing options. + +### Container Options + +When starting the Registry container, you can pass options in a variadic way to configure it. + +#### Image + +If you need to set a different Registry Docker image, you can use `testcontainers.WithImage` with a valid Docker image +for Registry. E.g. `testcontainers.WithImage("registry:2.8.3")`. + +{% include "../features/common_functional_options.md" %} + +#### With Authentication + +It's possible to enable authentication for the Registry container. By default, it is disabled, but you can enable it in two ways: + +- You can use `WithHtpasswd` to enable authentication with a string representing the contents of a `htpasswd` file. +A temporary file will be created with the contents of the string and copied to the container. +- You can use `WithHtpasswdFile` to copy a `htpasswd` file from your local filesystem to the container. + +In both cases, the `htpasswd` file will be copied into the `/auth` directory inside the container. + + +[Htpasswd string](../../modules/registry/registry_test.go) inside_block:htpasswdString +[Htpasswd file](../../modules/registry/examples_test.go) inside_block:htpasswdFile + + +#### WithData + +In the case you want to initialise the Registry with your own images, you can use `WithData` to copy a directory from your local filesystem to the container. +The directory will be copied into the `/data` directory inside the container. +The format of the directory should be the same as the one used by the Registry to store images. +Otherwise, the Registry will start but you won't be able to read any images from it. + + +[Including data](../../modules/registry/examples_test.go) inside_block:htpasswdFile + + +### Container Methods + +The Registry container exposes the following methods: + +#### Address + +This method returns the HTTP address string to connect to the Distribution Registry, so that you can use to connect to the Registry. +E.g. `http://localhost:32878/v2/_catalog`. + + +[HTTP Address](../../modules/registry/registry_test.go) inside_block:httpAddress + + +#### ImageExists + +The `ImageExists` method allows to check if an image exists in the Registry. It receives the Go context and the image reference as parameters. + +!!! info + The image reference should be in the format `my-registry:port/image:tag` in order to be pushed to the Registry. + +#### PushImage + +The `PushImage` method allows to push an image to the Registry. It receives the Go context and the image reference as parameters. + +!!! info + The image reference should be in the format `my-registry:port/image:tag` in order to be pushed to the Registry. + + +[Pushing images to the registry](../../modules/registry/examples_test.go) inside_block:pushingImage + + +If the push operation is successful, the method will internally wait for the image to be available in the Registry, querying the Registry API, returning an error in case of any failure (e.g. pushing or waiting for the image). + +#### DeleteImage + +The `DeleteImage` method allows to delete an image from the Registry. It receives the Go context and the image reference as parameters. + +!!! info + The image reference should be in the format `image:tag` in order to be deleted from the Registry. + + +[Deleting images from the registry](../../modules/registry/examples_test.go) inside_block:deletingImage + diff --git a/mkdocs.yml b/mkdocs.yml index 53d00fad03..f8f282ee4a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -96,6 +96,7 @@ nav: - modules/rabbitmq.md - modules/redis.md - modules/redpanda.md + - modules/registry.md - modules/surrealdb.md - modules/vault.md - modules/weaviate.md diff --git a/modules/registry/Makefile b/modules/registry/Makefile new file mode 100644 index 0000000000..b4746b64d8 --- /dev/null +++ b/modules/registry/Makefile @@ -0,0 +1,5 @@ +include ../../commons-test.mk + +.PHONY: test +test: + $(MAKE) test-registry diff --git a/modules/registry/examples_test.go b/modules/registry/examples_test.go new file mode 100644 index 0000000000..efb0aff126 --- /dev/null +++ b/modules/registry/examples_test.go @@ -0,0 +1,246 @@ +package registry_test + +import ( + "context" + "fmt" + "log" + "os" + "path/filepath" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/registry" + "github.com/testcontainers/testcontainers-go/wait" +) + +func ExampleRunContainer() { + // runRegistryContainer { + registryContainer, err := registry.RunContainer(context.Background(), testcontainers.WithImage("registry:2.8.3")) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + + // Clean up the container + defer func() { + if err := registryContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + // } + + state, err := registryContainer.State(context.Background()) + if err != nil { + log.Fatalf("failed to get container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_withAuthentication() { + // htpasswdFile { + registryContainer, err := registry.RunContainer( + context.Background(), + testcontainers.WithImage("registry:2.8.3"), + registry.WithHtpasswdFile(filepath.Join("testdata", "auth", "htpasswd")), + registry.WithData(filepath.Join("testdata", "data")), + ) + // } + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + defer func() { + if err := registryContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + registryPort, err := registryContainer.MappedPort(context.Background(), "5000/tcp") + if err != nil { + log.Fatalf("failed to get mapped port: %s", err) // nolint:gocritic + } + strPort := registryPort.Port() + + previousAuthConfig := os.Getenv("DOCKER_AUTH_CONFIG") + + // make sure the Docker Auth credentials are set + // using the same as in the Docker Registry + // testuser:testpassword + os.Setenv("DOCKER_AUTH_CONFIG", `{ + "auths": { + "localhost:`+strPort+`": { "username": "testuser", "password": "testpassword", "auth": "dGVzdHVzZXI6dGVzdHBhc3N3b3Jk" } + }, + "credsStore": "desktop" + }`) + defer func() { + // reset the original state after the example. + os.Unsetenv("DOCKER_AUTH_CONFIG") + os.Setenv("DOCKER_AUTH_CONFIG", previousAuthConfig) + }() + + // build a custom redis image from the private registry, + // using RegistryName of the container as the registry. + + redisC, err := testcontainers.GenericContainer(context.Background(), testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ + Context: filepath.Join("testdata", "redis"), + BuildArgs: map[string]*string{ + "REGISTRY_PORT": &strPort, + }, + PrintBuildLog: true, + }, + AlwaysPullImage: true, // make sure the authentication takes place + ExposedPorts: []string{"6379/tcp"}, + WaitingFor: wait.ForLog("Ready to accept connections"), + }, + Started: true, + }) + if err != nil { + log.Fatalf("failed to start container: %s", err) // nolint:gocritic + } + defer func() { + if err := redisC.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + state, err := redisC.State(context.Background()) + if err != nil { + log.Fatalf("failed to get redis container state: %s", err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} + +func ExampleRunContainer_pushImage() { + registryContainer, err := registry.RunContainer( + context.Background(), + testcontainers.WithImage("registry:2.8.3"), + registry.WithHtpasswdFile(filepath.Join("testdata", "auth", "htpasswd")), + registry.WithData(filepath.Join("testdata", "data")), + ) + if err != nil { + log.Fatalf("failed to start container: %s", err) + } + defer func() { + if err := registryContainer.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + registryPort, err := registryContainer.MappedPort(context.Background(), "5000/tcp") + if err != nil { + log.Fatalf("failed to get mapped port: %s", err) // nolint:gocritic + } + strPort := registryPort.Port() + + previousAuthConfig := os.Getenv("DOCKER_AUTH_CONFIG") + + // make sure the Docker Auth credentials are set + // using the same as in the Docker Registry + // testuser:testpassword + // Besides, we are also setting the authentication + // for both the registry and localhost to make sure + // the image is pushed to the private registry. + os.Setenv("DOCKER_AUTH_CONFIG", `{ + "auths": { + "localhost:`+strPort+`": { "username": "testuser", "password": "testpassword", "auth": "dGVzdHVzZXI6dGVzdHBhc3N3b3Jk" }, + "`+registryContainer.RegistryName+`": { "username": "testuser", "password": "testpassword", "auth": "dGVzdHVzZXI6dGVzdHBhc3N3b3Jk" } + }, + "credsStore": "desktop" + }`) + defer func() { + // reset the original state after the example. + os.Unsetenv("DOCKER_AUTH_CONFIG") + os.Setenv("DOCKER_AUTH_CONFIG", previousAuthConfig) + }() + + // build a custom redis image from the private registry, + // using RegistryName of the container as the registry. + // We are agoing to build the image with a fixed tag + // that matches the private registry, and we are going to + // push it again to the registry after the build. + + repo := registryContainer.RegistryName + "/customredis" + tag := "v1.2.3" + + redisC, err := testcontainers.GenericContainer(context.Background(), testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ + Context: filepath.Join("testdata", "redis"), + BuildArgs: map[string]*string{ + "REGISTRY_PORT": &strPort, + }, + Repo: repo, + Tag: tag, + PrintBuildLog: true, + }, + AlwaysPullImage: true, // make sure the authentication takes place + ExposedPorts: []string{"6379/tcp"}, + WaitingFor: wait.ForLog("Ready to accept connections"), + }, + Started: true, + }) + if err != nil { + log.Fatalf("failed to start container: %s", err) // nolint:gocritic + } + defer func() { + if err := redisC.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + // pushingImage { + // repo is localhost:32878/customredis + // tag is v1.2.3 + err = registryContainer.PushImage(context.Background(), fmt.Sprintf("%s:%s", repo, tag)) + if err != nil { + log.Fatalf("failed to push image: %s", err) // nolint:gocritic + } + // } + + newImage := fmt.Sprintf("%s:%s", repo, tag) + + // now run a container from the new image + // But first remove the local image to avoid using the local one. + + // deletingImage { + // newImage is customredis:v1.2.3 + err = registryContainer.DeleteImage(context.Background(), newImage) + if err != nil { + log.Fatalf("failed to delete image: %s", err) // nolint:gocritic + } + // } + + newRedisC, err := testcontainers.GenericContainer(context.Background(), testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + Image: newImage, + ExposedPorts: []string{"6379/tcp"}, + WaitingFor: wait.ForLog("Ready to accept connections"), + }, + Started: true, + }) + if err != nil { + log.Fatalf("failed to start container from %s: %s", newImage, err) // nolint:gocritic + } + defer func() { + if err := newRedisC.Terminate(context.Background()); err != nil { + log.Fatalf("failed to terminate container: %s", err) // nolint:gocritic + } + }() + + state, err := newRedisC.State(context.Background()) + if err != nil { + log.Fatalf("failed to get redis container state from %s: %s", newImage, err) // nolint:gocritic + } + + fmt.Println(state.Running) + + // Output: + // true +} diff --git a/modules/registry/go.mod b/modules/registry/go.mod new file mode 100644 index 0000000000..dd742e1169 --- /dev/null +++ b/modules/registry/go.mod @@ -0,0 +1,60 @@ +module github.com/testcontainers/testcontainers-go/modules/registry + +go 1.21 + +require ( + github.com/docker/docker v25.0.5+incompatible + github.com/testcontainers/testcontainers-go v0.29.1 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/hcsshim v0.11.4 // indirect + github.com/cenkalti/backoff/v4 v4.2.1 // indirect + github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/cpuguy83/dockercfg v0.3.1 // indirect + github.com/distribution/reference v0.5.0 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/klauspost/compress v1.16.0 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/sys/sequential v0.5.0 // indirect + github.com/moby/sys/user v0.1.0 // indirect + github.com/moby/term v0.5.0 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/shirou/gopsutil/v3 v3.23.12 // indirect + github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/tklauser/go-sysconf v0.3.12 // indirect + github.com/tklauser/numcpus v0.6.1 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect + go.opentelemetry.io/otel v1.19.0 // indirect + go.opentelemetry.io/otel/metric v1.19.0 // indirect + go.opentelemetry.io/otel/trace v1.19.0 // indirect + golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea // indirect + golang.org/x/mod v0.16.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.13.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 // indirect + google.golang.org/grpc v1.58.3 // indirect + google.golang.org/protobuf v1.33.0 // indirect +) + +replace github.com/testcontainers/testcontainers-go => ../.. diff --git a/modules/registry/go.sum b/modules/registry/go.sum new file mode 100644 index 0000000000..d5d44b3380 --- /dev/null +++ b/modules/registry/go.sum @@ -0,0 +1,188 @@ +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= +github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= +github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= +github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/docker v25.0.5+incompatible h1:UmQydMduGkrD5nQde1mecF/YnSbTOaPeFIeP5C4W+DE= +github.com/docker/docker v25.0.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= +github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= +github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= +github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= +github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= +github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= +github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= +github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 h1:x8Z78aZx8cOF0+Kkazoc7lwUNMGy0LrzEMxTm4BbTxg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs= +go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 h1:IeMeyr1aBvBiPVYihXIaeIZba6b8E1bYp7lbdxK8CQg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= +go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE= +go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8= +go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o= +go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A= +go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg= +go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo= +go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea h1:vLCWI/yYrdEHyN2JzIzPO3aaQJHQdp89IZBA/+azVC4= +golang.org/x/exp v0.0.0-20230510235704-dd950f8aeaea/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 h1:Z0hjGZePRE0ZBWotvtrwxFNrNE9CUAGtplaDK5NNI/g= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98 h1:FmF5cCW94Ij59cfpoLiwTgodWmm60eEV0CjlsVg2fuw= +google.golang.org/genproto/googleapis/api v0.0.0-20230711160842-782d3b101e98/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98 h1:bVf09lpb+OJbByTj913DRJioFFAjf/ZGxEz7MajTp2U= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230711160842-782d3b101e98/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ= +google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= diff --git a/modules/registry/options.go b/modules/registry/options.go new file mode 100644 index 0000000000..a3304d1ffa --- /dev/null +++ b/modules/registry/options.go @@ -0,0 +1,74 @@ +package registry + +import ( + "os" + "path/filepath" + + "github.com/testcontainers/testcontainers-go" +) + +const ( + containerDataPath string = "/data" + containerHtpasswdPath string = "/auth/htpasswd" +) + +// WithData is a custom option to set the data directory for the registry, +// which is used to store the images. It will copy the data from the host to +// the container in the /data path. The container will be configured to use +// this path as the root directory for the registry, thanks to the +// REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY environment variable. +// The dataPath must have the same structure as the registry data directory. +func WithData(dataPath string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Files = append(req.Files, testcontainers.ContainerFile{ + HostFilePath: dataPath, + ContainerFilePath: containerDataPath, + }) + + req.Env["REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY"] = containerDataPath + } +} + +// WithHtpasswd is a custom option to set the htpasswd credentials for the registry +// It will create a temporary file with the credentials and copy it to the container +// in the /auth/htpasswd path. The container will be configured to use this file as +// the htpasswd file, thanks to the REGISTRY_AUTH_HTPASSWD_PATH environment variable. +func WithHtpasswd(credentials string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + tmpFile, err := os.Create(filepath.Join(os.TempDir(), "htpasswd")) + if err != nil { + tmpFile, err = os.Create(".") + if err != nil { + // cannot create the file in the temp dir or in the current dir + panic(err) + } + } + defer tmpFile.Close() + + _, err = tmpFile.WriteString(credentials) + if err != nil { + panic(err) + } + + WithHtpasswdFile(tmpFile.Name())(req) + } +} + +// WithHtpasswdFile is a custom option to set the htpasswd file for the registry +// It will copy a file with the credentials in the /auth/htpasswd path. +// The container will be configured to use this file as the htpasswd file, +// thanks to the REGISTRY_AUTH_HTPASSWD_PATH environment variable. +func WithHtpasswdFile(htpasswdPath string) testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) { + req.Files = append(req.Files, testcontainers.ContainerFile{ + HostFilePath: htpasswdPath, + ContainerFilePath: containerHtpasswdPath, + FileMode: 0o644, + }) + + req.Env["REGISTRY_AUTH"] = "htpasswd" + req.Env["REGISTRY_AUTH_HTPASSWD_REALM"] = "Registry" + req.Env["REGISTRY_AUTH_HTPASSWD_PATH"] = containerHtpasswdPath + req.Env["REGISTRY_AUTH_HTPASSWD_PATH"] = containerHtpasswdPath + } +} diff --git a/modules/registry/registry.go b/modules/registry/registry.go new file mode 100644 index 0000000000..7c77ac594e --- /dev/null +++ b/modules/registry/registry.go @@ -0,0 +1,198 @@ +package registry + +import ( + "context" + "encoding/base64" + "encoding/json" + "fmt" + "net/http" + "strings" + "time" + + "github.com/docker/docker/api/types" + "github.com/docker/docker/api/types/registry" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/wait" +) + +// RegistryContainer represents the Registry container type used in the module +type RegistryContainer struct { + testcontainers.Container + RegistryName string +} + +// Address returns the address of the Registry container, using the HTTP protocol +func (c *RegistryContainer) Address(ctx context.Context) (string, error) { + port, err := c.MappedPort(ctx, "5000") + if err != nil { + return "", err + } + + ipAddress, err := c.Host(ctx) + if err != nil { + return "", err + } + + return fmt.Sprintf("http://%s:%s", ipAddress, port.Port()), nil +} + +// getEndpointWithAuth returns the HTTP endpoint of the Registry container, along with the image auth +// for the image referece. +// E.g. imageRef = "localhost:5000/alpine:latest" +func getEndpointWithAuth(ctx context.Context, imageRef string) (string, string, registry.AuthConfig, error) { + registry, imageAuth, err := testcontainers.DockerImageAuth(ctx, imageRef) + if err != nil { + return "", "", imageAuth, fmt.Errorf("failed to get image auth: %w", err) + } + + imageWithoutRegistry := strings.TrimPrefix(imageRef, registry+"/") + image := strings.Split(imageWithoutRegistry, ":")[0] + tag := strings.Split(imageWithoutRegistry, ":")[1] + + return fmt.Sprintf("/v2/%s/manifests/%s", image, tag), image, imageAuth, nil +} + +// DeleteImage deletes an image reference from the Registry container. +// It will use the HTTP endpoint of the Registry container to delete it, +// doing a HEAD request to get the image digest and then a DELETE request +// to actually delete the image. +// E.g. imageRef = "localhost:5000/alpine:latest" +func (c *RegistryContainer) DeleteImage(ctx context.Context, imageRef string) error { + endpoint, image, imageAuth, err := getEndpointWithAuth(ctx, imageRef) + if err != nil { + return fmt.Errorf("failed to get image auth: %w", err) + } + + var digest string + err = wait.ForHTTP(endpoint). + WithMethod(http.MethodHead). + WithBasicAuth(imageAuth.Username, imageAuth.Password). + WithHeaders(map[string]string{"Accept": "application/vnd.docker.distribution.manifest.v2+json"}). + WithStatusCodeMatcher(func(statusCode int) bool { + return statusCode == http.StatusOK + }). + WithResponseHeadersMatcher(func(headers http.Header) bool { + contentDigest := headers.Get("Docker-Content-Digest") + if contentDigest != "" { + digest = contentDigest + return true + } + + return false + }). + WaitUntilReady(ctx, c) + + if err != nil { + return fmt.Errorf("failed to get image digest: %w", err) + } + + deleteEndpoint := fmt.Sprintf("/v2/%s/manifests/%s", image, digest) + return wait.ForHTTP(deleteEndpoint). + WithMethod(http.MethodDelete). + WithBasicAuth(imageAuth.Username, imageAuth.Password). + WithStatusCodeMatcher(func(statusCode int) bool { + return statusCode == http.StatusAccepted + }). + WaitUntilReady(ctx, c) +} + +// ImageExists checks if an image exists in the Registry container. It will use the v2 HTTP endpoint +// of the Registry container to check if the image reference exists. +// E.g. imageRef = "localhost:5000/alpine:latest" +func (c *RegistryContainer) ImageExists(ctx context.Context, imageRef string) error { + endpoint, _, imageAuth, err := getEndpointWithAuth(ctx, imageRef) + if err != nil { + return fmt.Errorf("failed to get image auth: %w", err) + } + + return wait.ForHTTP(endpoint). + WithMethod(http.MethodHead). + WithBasicAuth(imageAuth.Username, imageAuth.Password). + WithHeaders(map[string]string{"Accept": "application/vnd.docker.distribution.manifest.v2+json"}). + WithForcedIPv4LocalHost(). + WithStatusCodeMatcher(func(statusCode int) bool { + return statusCode == http.StatusOK + }). + WithResponseHeadersMatcher(func(headers http.Header) bool { + return headers.Get("Docker-Content-Digest") != "" + }). + WaitUntilReady(ctx, c) +} + +// PushImage pushes an image to the Registry container. It will use the internally stored RegistryName +// to push the image to the container, and it will finally wait for the image to be pushed. +func (c *RegistryContainer) PushImage(ctx context.Context, ref string) error { + dockerProvider, err := testcontainers.NewDockerProvider() + if err != nil { + return fmt.Errorf("failed to create Docker provider: %w", err) + } + defer dockerProvider.Close() + + dockerCli := dockerProvider.Client() + + _, imageAuth, err := testcontainers.DockerImageAuth(ctx, ref) + if err != nil { + return fmt.Errorf("failed to get image auth: %w", err) + } + + pushOpts := types.ImagePushOptions{ + All: true, + } + + // see https://github.com/docker/docs/blob/e8e1204f914767128814dca0ea008644709c117f/engine/api/sdk/examples.md?plain=1#L649-L657 + encodedJSON, err := json.Marshal(imageAuth) + if err != nil { + return fmt.Errorf("failed to encode image auth: %w", err) + } else { + pushOpts.RegistryAuth = base64.URLEncoding.EncodeToString(encodedJSON) + } + + _, err = dockerCli.ImagePush(ctx, ref, pushOpts) + if err != nil { + return fmt.Errorf("failed to push image %s: %w", ref, err) + } + + return c.ImageExists(ctx, ref) +} + +// RunContainer creates an instance of the Registry container type +func RunContainer(ctx context.Context, opts ...testcontainers.ContainerCustomizer) (*RegistryContainer, error) { + req := testcontainers.ContainerRequest{ + Image: "registry:2.8.3", + ExposedPorts: []string{"5000/tcp"}, + Env: map[string]string{ + // convenient for testing + "REGISTRY_STORAGE_DELETE_ENABLED": "true", + }, + WaitingFor: wait.ForAll( + wait.ForExposedPort(), + wait.ForLog("listening on [::]:5000").WithStartupTimeout(10*time.Second), + ), + } + + genericContainerReq := testcontainers.GenericContainerRequest{ + ContainerRequest: req, + Started: true, + } + + for _, opt := range opts { + opt.Customize(&genericContainerReq) + } + + container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + if err != nil { + return nil, err + } + + c := &RegistryContainer{Container: container} + + address, err := c.Address(ctx) + if err != nil { + return c, err + } + + c.RegistryName = strings.TrimPrefix(address, "http://") + + return c, nil +} diff --git a/modules/registry/registry_test.go b/modules/registry/registry_test.go new file mode 100644 index 0000000000..62c1ebf6e6 --- /dev/null +++ b/modules/registry/registry_test.go @@ -0,0 +1,328 @@ +package registry_test + +import ( + "context" + "net/http" + "path/filepath" + "strings" + "testing" + + "github.com/testcontainers/testcontainers-go" + "github.com/testcontainers/testcontainers-go/modules/registry" + "github.com/testcontainers/testcontainers-go/wait" +) + +func TestRegistry_unauthenticated(t *testing.T) { + container, err := registry.RunContainer(context.Background(), testcontainers.WithImage("registry:2.8.3")) + if err != nil { + t.Fatal(err) + } + + // Clean up the container after the test is complete + t.Cleanup(func() { + if err := container.Terminate(context.Background()); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + httpAddress, err := container.Address(context.Background()) + if err != nil { + t.Fatal(err) + } + + resp, err := http.Get(httpAddress + "/v2/_catalog") + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("expected status code 200, but got %d", resp.StatusCode) + } +} + +func TestRunContainer_authenticated(t *testing.T) { + registryContainer, err := registry.RunContainer( + context.Background(), + testcontainers.WithImage("registry:2.8.3"), + registry.WithHtpasswdFile(filepath.Join("testdata", "auth", "htpasswd")), + registry.WithData(filepath.Join("testdata", "data")), + ) + if err != nil { + t.Fatalf("failed to start container: %s", err) + } + t.Cleanup(func() { + if err := registryContainer.Terminate(context.Background()); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + // httpAddress { + httpAddress, err := registryContainer.Address(context.Background()) + // } + if err != nil { + t.Fatal(err) + } + + registryPort, err := registryContainer.MappedPort(context.Background(), "5000/tcp") + if err != nil { + t.Fatalf("failed to get mapped port: %s", err) + } + strPort := registryPort.Port() + + t.Run("HTTP connection without basic auth fails", func(tt *testing.T) { + httpCli := http.Client{} + req, err := http.NewRequest("GET", httpAddress+"/v2/_catalog", nil) + if err != nil { + tt.Fatal(err) + } + + resp, err := httpCli.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusUnauthorized { + t.Fatalf("expected status code 401, but got %d", resp.StatusCode) + } + }) + + t.Run("HTTP connection with incorrect basic auth fails", func(tt *testing.T) { + httpCli := http.Client{} + req, err := http.NewRequest("GET", httpAddress+"/v2/_catalog", nil) + if err != nil { + tt.Fatal(err) + } + + req.SetBasicAuth("foo", "bar") + + resp, err := httpCli.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusUnauthorized { + t.Fatalf("expected status code 401, but got %d", resp.StatusCode) + } + }) + + t.Run("HTTP connection with basic auth succeeds", func(tt *testing.T) { + httpCli := http.Client{} + req, err := http.NewRequest("GET", httpAddress+"/v2/_catalog", nil) + if err != nil { + tt.Fatal(err) + } + + req.SetBasicAuth("testuser", "testpassword") + + resp, err := httpCli.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("expected status code 200, but got %d", resp.StatusCode) + } + }) + + t.Run("build images with wrong credentials fails", func(tt *testing.T) { + // Zm9vOmJhcg== is base64 for foo:bar + tt.Setenv("DOCKER_AUTH_CONFIG", `{ + "auths": { + "localhost:`+strPort+`": { "username": "foo", "password": "bar", "auth": "Zm9vOmJhcg==" } + }, + "credsStore": "desktop" + }`) + + redisC, err := testcontainers.GenericContainer(context.Background(), testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ + Context: filepath.Join("testdata", "redis"), + BuildArgs: map[string]*string{ + "REGISTRY_PORT": &strPort, + }, + PrintBuildLog: true, + }, + AlwaysPullImage: true, // make sure the authentication takes place + ExposedPorts: []string{"6379/tcp"}, + WaitingFor: wait.ForLog("Ready to accept connections"), + }, + Started: true, + }) + if err == nil { + tt.Fatalf("expected to fail to start container, but it did not") + } + if redisC != nil { + tt.Fatal("redis container should not be running") + tt.Cleanup(func() { + if err := redisC.Terminate(context.Background()); err != nil { + tt.Fatalf("failed to terminate container: %s", err) + } + }) + } + + if !strings.Contains(err.Error(), "unauthorized: authentication required") { + tt.Fatalf("expected error to be 'unauthorized: authentication required' but got '%s'", err.Error()) + } + }) + + t.Run("build image with valid credentials", func(tt *testing.T) { + // dGVzdHVzZXI6dGVzdHBhc3N3b3Jk is base64 for testuser:testpassword + tt.Setenv("DOCKER_AUTH_CONFIG", `{ + "auths": { + "localhost:`+strPort+`": { "username": "testuser", "password": "testpassword", "auth": "dGVzdHVzZXI6dGVzdHBhc3N3b3Jk" } + }, + "credsStore": "desktop" + }`) + + // build a custom redis image from the private registry, + // using RegistryName of the container as the registry. + // The container should start because the authentication + // is correct. + + redisC, err := testcontainers.GenericContainer(context.Background(), testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ + Context: filepath.Join("testdata", "redis"), + BuildArgs: map[string]*string{ + "REGISTRY_PORT": &strPort, + }, + PrintBuildLog: true, + }, + AlwaysPullImage: true, // make sure the authentication takes place + ExposedPorts: []string{"6379/tcp"}, + WaitingFor: wait.ForLog("Ready to accept connections"), + }, + Started: true, + }) + if err != nil { + tt.Fatalf("failed to start container: %s", err) + } + + tt.Cleanup(func() { + if err := redisC.Terminate(context.Background()); err != nil { + tt.Fatalf("failed to terminate container: %s", err) + } + }) + + state, err := redisC.State(context.Background()) + if err != nil { + tt.Fatalf("failed to get redis container state: %s", err) // nolint:gocritic + } + + if !state.Running { + tt.Fatalf("expected redis container to be running, but it is not") + } + }) +} + +func TestRunContainer_authenticated_withCredentials(t *testing.T) { + // htpasswdString { + registryContainer, err := registry.RunContainer( + context.Background(), + testcontainers.WithImage("registry:2.8.3"), + registry.WithHtpasswd("testuser:$2y$05$tTymaYlWwJOqie.bcSUUN.I.kxmo1m5TLzYQ4/ejJ46UMXGtq78EO"), + ) + // } + if err != nil { + t.Fatalf("failed to start container: %s", err) + } + t.Cleanup(func() { + if err := registryContainer.Terminate(context.Background()); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + httpAddress, err := registryContainer.Address(context.Background()) + if err != nil { + t.Fatal(err) + } + + httpCli := http.Client{} + req, err := http.NewRequest("GET", httpAddress+"/v2/_catalog", nil) + if err != nil { + t.Fatal(err) + } + + req.SetBasicAuth("testuser", "testpassword") + + resp, err := httpCli.Do(req) + if err != nil { + t.Fatal(err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + t.Fatalf("expected status code 200, but got %d", resp.StatusCode) + } +} + +func TestRunContainer_wrongData(t *testing.T) { + registryContainer, err := registry.RunContainer( + context.Background(), + testcontainers.WithImage("registry:2.8.3"), + registry.WithHtpasswdFile(filepath.Join("testdata", "auth", "htpasswd")), + registry.WithData(filepath.Join("testdata", "wrongdata")), + ) + if err != nil { + t.Fatalf("failed to start container: %s", err) + } + t.Cleanup(func() { + if err := registryContainer.Terminate(context.Background()); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + + registryPort, err := registryContainer.MappedPort(context.Background(), "5000/tcp") + if err != nil { + t.Fatalf("failed to get mapped port: %s", err) + } + strPort := registryPort.Port() + + // dGVzdHVzZXI6dGVzdHBhc3N3b3Jk is base64 for testuser:testpassword + t.Setenv("DOCKER_AUTH_CONFIG", `{ + "auths": { + "localhost:`+strPort+`": { "username": "testuser", "password": "testpassword", "auth": "dGVzdHVzZXI6dGVzdHBhc3N3b3Jk" } + }, + "credsStore": "desktop" + }`) + + // build a custom redis image from the private registry, + // using RegistryName of the container as the registry. + // The container won't be able to start because the data + // directory is wrong. + + redisC, err := testcontainers.GenericContainer(context.Background(), testcontainers.GenericContainerRequest{ + ContainerRequest: testcontainers.ContainerRequest{ + FromDockerfile: testcontainers.FromDockerfile{ + Context: filepath.Join("testdata", "redis"), + BuildArgs: map[string]*string{ + "REGISTRY_PORT": &strPort, + }, + PrintBuildLog: true, + }, + AlwaysPullImage: true, // make sure the authentication takes place + ExposedPorts: []string{"6379/tcp"}, + WaitingFor: wait.ForLog("Ready to accept connections"), + }, + Started: true, + }) + if err == nil { + t.Fatalf("expected to fail to start container, but it did not") + } + if redisC != nil { + t.Fatal("redis container should not be running") + t.Cleanup(func() { + if err := redisC.Terminate(context.Background()); err != nil { + t.Fatalf("failed to terminate container: %s", err) + } + }) + } + + if !strings.Contains(err.Error(), "manifest unknown") { + t.Fatalf("expected error to be 'manifest unknown' but got '%s'", err.Error()) + } +} diff --git a/modules/registry/testdata/auth/htpasswd b/modules/registry/testdata/auth/htpasswd new file mode 100644 index 0000000000..9a5d4aaff6 --- /dev/null +++ b/modules/registry/testdata/auth/htpasswd @@ -0,0 +1,2 @@ +testuser:$2y$05$tTymaYlWwJOqie.bcSUUN.I.kxmo1m5TLzYQ4/ejJ46UMXGtq78EO + diff --git a/modules/registry/testdata/data/docker/registry/v2/blobs/sha256/21/213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49/data b/modules/registry/testdata/data/docker/registry/v2/blobs/sha256/21/213ec9aee27d8be045c6a92b7eac22c9a64b44558193775a1a7f626352392b49/data new file mode 100644 index 0000000000000000000000000000000000000000..caac84b41c516dcf39d9e99e3fdf7b9b72718c50 GIT binary patch literal 2806054 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�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

_LKQ) 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

LTc)yGaL)xX0=Nz3{B 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

7D)@a4ut=MU4Q!wgcv!9#BMo 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�p6doD_mG{( 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 z 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%0AIBb&e4|1rK+I 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