From 0dd918beeb6ed0f98bd7fd205813d0971a438316 Mon Sep 17 00:00:00 2001 From: Sergey Kudasov Date: Mon, 18 Nov 2024 23:22:57 +0100 Subject: [PATCH] Docker copy and P2P fixes (#1349) docker copy command, fix p2p --- book/src/SUMMARY.md | 1 + book/src/framework/components/state.md | 1 + book/src/framework/copying_files.md | 15 ++++ framework/.changeset/v0.2.7.md | 3 + framework/components/blockchain/anvil.go | 5 +- framework/components/blockchain/blockchain.go | 7 +- framework/components/clnode/clnode.go | 22 ++--- framework/components/clnode/clnode_test.go | 2 +- framework/components/postgres/postgres.go | 4 +- .../components/simple_node_set/node_set.go | 1 - .../simple_node_set/nodeset_test.go | 21 +---- .../components/simple_node_set/reload.go | 2 +- framework/docker.go | 87 +++++++++++++++++++ framework/examples/myproject/.envrc | 1 + framework/examples/myproject/go.mod | 27 +----- framework/examples/myproject/go.sum | 54 ------------ framework/examples/myproject/smoke_test.go | 1 - framework/examples/myproject/upgrade_test.go | 1 - 18 files changed, 132 insertions(+), 123 deletions(-) create mode 100644 book/src/framework/copying_files.md create mode 100644 framework/.changeset/v0.2.7.md diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 32cbe419f..439883baa 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -18,6 +18,7 @@ - [Components Cleanup](framework/components/cleanup.md) - [Components Caching](framework/components/caching.md) - [Mocking Services](framework/components/mocking.md) + - [Copying Files](framework/copying_files.md) - [External Environment](framework/components/external.md) - [Secrets]() - [Observability Stack](framework/observability/observability_stack.md) diff --git a/book/src/framework/components/state.md b/book/src/framework/components/state.md index 2cfe60d5d..b48ba0281 100644 --- a/book/src/framework/components/state.md +++ b/book/src/framework/components/state.md @@ -9,6 +9,7 @@ When deploying a component, you can explicitly configure port ranges if the defa Defaults are: - [NodeSet](../components/chainlink/nodeset.md) (Node HTTP API): `10000..100XX` - [NodeSet](../components/chainlink/nodeset.md) (Node P2P API): `12000..120XX` +- Shared `PostgreSQL` volume is called `postgresql_data` ``` [nodeset] # HTTP API port range start, each new node get port incremented (host machine) diff --git a/book/src/framework/copying_files.md b/book/src/framework/copying_files.md new file mode 100644 index 000000000..639d45ca9 --- /dev/null +++ b/book/src/framework/copying_files.md @@ -0,0 +1,15 @@ +# Copying Files + +You can copy files to containers by using the `ContainerName` from the output and specifying the source `src` and destination `dst` paths. + +However, using this API is discouraged and will be **deprecated** in the future, as it violates the principles of "black-box" testing. If your service relies on this functionality, consider designing a configuration or API to address the requirement instead. + +```go + bc, err := blockchain.NewBlockchainNetwork(&blockchain.Input{ + ... + }) + require.NoError(t, err) + + err = dockerClient.CopyFile(bc.ContainerName, "local_file.txt", "/home") + require.NoError(t, err) +``` diff --git a/framework/.changeset/v0.2.7.md b/framework/.changeset/v0.2.7.md new file mode 100644 index 000000000..d617d7d17 --- /dev/null +++ b/framework/.changeset/v0.2.7.md @@ -0,0 +1,3 @@ +- Do not expose P2P URL to prevent confusion +- Add container names into outputs +- Add `CopyFile` command for Docker diff --git a/framework/components/blockchain/anvil.go b/framework/components/blockchain/anvil.go index efdcf745c..2596ce0b2 100644 --- a/framework/components/blockchain/anvil.go +++ b/framework/components/blockchain/anvil.go @@ -55,8 +55,9 @@ func deployAnvil(in *Input) (*Output, error) { return nil, err } return &Output{ - UseCache: true, - ChainID: in.ChainID, + UseCache: true, + ChainID: in.ChainID, + ContainerName: containerName, Nodes: []*Node{ { HostWSUrl: fmt.Sprintf("ws://%s:%s", host, mp.Port()), diff --git a/framework/components/blockchain/blockchain.go b/framework/components/blockchain/blockchain.go index 8e0bc7623..c132a727f 100644 --- a/framework/components/blockchain/blockchain.go +++ b/framework/components/blockchain/blockchain.go @@ -17,9 +17,10 @@ type Input struct { // Output is a blockchain network output, ChainID and one or more nodes that forms the network type Output struct { - UseCache bool `toml:"use_cache"` - ChainID string `toml:"chain_id"` - Nodes []*Node `toml:"nodes"` + UseCache bool `toml:"use_cache"` + ContainerName string `toml:"container_name"` + ChainID string `toml:"chain_id"` + Nodes []*Node `toml:"nodes"` } // Node represents blockchain node output, URLs required for connection locally and inside docker network diff --git a/framework/components/clnode/clnode.go b/framework/components/clnode/clnode.go index f48b03696..35f94b700 100644 --- a/framework/components/clnode/clnode.go +++ b/framework/components/clnode/clnode.go @@ -64,8 +64,8 @@ type Output struct { type NodeOut struct { APIAuthUser string `toml:"api_auth_user"` APIAuthPassword string `toml:"api_auth_password"` + ContainerName string `toml:"container_name"` HostURL string `toml:"url"` - HostP2PURL string `toml:"p2p_url"` DockerURL string `toml:"docker_internal_url"` DockerP2PUrl string `toml:"p2p_docker_internal_url"` } @@ -121,7 +121,7 @@ func newNode(in *Input, pgOut *postgres.Output) (*NodeOut, error) { if err != nil { return nil, err } - cfgPath, err := writeDefaultConfig(in) + cfgPath, err := writeDefaultConfig() if err != nil { return nil, err } @@ -147,7 +147,6 @@ func newNode(in *Input, pgOut *postgres.Output) (*NodeOut, error) { } httpPort := fmt.Sprintf("%s/tcp", DefaultHTTPPort) - p2pPort := fmt.Sprintf("%s/udp", DefaultP2PPort) var containerName string if in.Node.Name != "" { containerName = in.Node.Name @@ -158,7 +157,7 @@ func newNode(in *Input, pgOut *postgres.Output) (*NodeOut, error) { for _, p := range in.Node.CustomPorts { customPorts = append(customPorts, fmt.Sprintf("%d/tcp", p)) } - exposedPorts := []string{httpPort, p2pPort} + exposedPorts := []string{httpPort} exposedPorts = append(exposedPorts, customPorts...) portBindings := nat.PortMap{ @@ -168,12 +167,6 @@ func newNode(in *Input, pgOut *postgres.Output) (*NodeOut, error) { HostPort: fmt.Sprintf("%d/tcp", in.Node.HTTPPort), }, }, - nat.Port(p2pPort): []nat.PortBinding{ - { - HostIP: "0.0.0.0", - HostPort: fmt.Sprintf("%d/udp", in.Node.P2PPort), - }, - }, } for _, p := range customPorts { portBindings[nat.Port(p)] = []nat.PortBinding{ @@ -283,13 +276,12 @@ func newNode(in *Input, pgOut *postgres.Output) (*NodeOut, error) { } mp := nat.Port(fmt.Sprintf("%d/tcp", in.Node.HTTPPort)) - mpP2P := nat.Port(fmt.Sprintf("%d/udp", in.Node.P2PPort)) return &NodeOut{ APIAuthUser: DefaultAPIUser, APIAuthPassword: DefaultAPIPassword, + ContainerName: containerName, HostURL: fmt.Sprintf("http://%s:%s", host, mp.Port()), - HostP2PURL: fmt.Sprintf("http://%s:%s", host, mpP2P.Port()), DockerURL: fmt.Sprintf("http://%s:%s", containerName, DefaultHTTPPort), DockerP2PUrl: fmt.Sprintf("http://%s:%s", containerName, DefaultP2PPort), }, nil @@ -300,7 +292,7 @@ type DefaultCLNodeConfig struct { SecureCookies bool } -func generateDefaultConfig(in *Input) (string, error) { +func generateDefaultConfig() (string, error) { config := DefaultCLNodeConfig{ HTTPPort: DefaultHTTPPort, SecureCookies: false, @@ -348,8 +340,8 @@ func writeDefaultSecrets(pgOut *postgres.Output) (*os.File, error) { return WriteTmpFile(secretsOverrides, "secrets.toml") } -func writeDefaultConfig(in *Input) (*os.File, error) { - cfg, err := generateDefaultConfig(in) +func writeDefaultConfig() (*os.File, error) { + cfg, err := generateDefaultConfig() if err != nil { return nil, err } diff --git a/framework/components/clnode/clnode_test.go b/framework/components/clnode/clnode_test.go index b723b8ae7..0c0d31c4a 100644 --- a/framework/components/clnode/clnode_test.go +++ b/framework/components/clnode/clnode_test.go @@ -23,7 +23,7 @@ func checkBasicOutputs(t *testing.T, output *clnode.Output) { require.Contains(t, output.Node.DockerP2PUrl, "cl-node") require.NotNil(t, output.PostgreSQL) require.Contains(t, output.PostgreSQL.Url, "postgresql://chainlink:thispasswordislongenough@127.0.0.1") - require.Contains(t, output.PostgreSQL.DockerInternalURL, "postgresql://chainlink:thispasswordislongenough@postgresql-") + require.Contains(t, output.PostgreSQL.DockerInternalURL, "postgresql://chainlink:thispasswordislongenough@ns-postgresql") } func TestComponentDockerNodeWithSharedDB(t *testing.T) { diff --git a/framework/components/postgres/postgres.go b/framework/components/postgres/postgres.go index 9b5fb957e..225849a0c 100644 --- a/framework/components/postgres/postgres.go +++ b/framework/components/postgres/postgres.go @@ -33,6 +33,7 @@ type Input struct { type Output struct { Url string `toml:"url"` + ContainerName string `toml:"container_name"` DockerInternalURL string `toml:"docker_internal_url"` } @@ -40,7 +41,7 @@ func NewPostgreSQL(in *Input) (*Output, error) { ctx := context.Background() bindPort := fmt.Sprintf("%s/tcp", Port) - containerName := framework.DefaultTCName("postgresql") + containerName := framework.DefaultTCName("ns-postgresql") var sqlCommands []string for i := 0; i <= in.Databases; i++ { @@ -126,6 +127,7 @@ func NewPostgreSQL(in *Input) (*Output, error) { return nil, err } return &Output{ + ContainerName: containerName, DockerInternalURL: fmt.Sprintf( "postgresql://%s:%s@%s:%s/%s?sslmode=disable", User, diff --git a/framework/components/simple_node_set/node_set.go b/framework/components/simple_node_set/node_set.go index 6b5de9aa8..5aa69e8f6 100644 --- a/framework/components/simple_node_set/node_set.go +++ b/framework/components/simple_node_set/node_set.go @@ -65,7 +65,6 @@ func printURLs(out *Output) { httpURLs, p2pURLs, pgURLs := make([]string, 0), make([]string, 0), make([]string, 0) for _, n := range out.CLNodes { httpURLs = append(httpURLs, n.Node.HostURL) - p2pURLs = append(p2pURLs, n.Node.HostP2PURL) pgURLs = append(pgURLs, n.PostgreSQL.Url) } framework.L.Info().Any("UI", httpURLs).Send() diff --git a/framework/components/simple_node_set/nodeset_test.go b/framework/components/simple_node_set/nodeset_test.go index bf00c09df..6add59537 100644 --- a/framework/components/simple_node_set/nodeset_test.go +++ b/framework/components/simple_node_set/nodeset_test.go @@ -13,7 +13,6 @@ import ( type testCase struct { name string - fakeURL string funding float64 bcInput *blockchain.Input nodeSetInput *ns.Input @@ -25,13 +24,13 @@ func checkBasicOutputs(t *testing.T, output *ns.Output) { require.NotNil(t, output.CLNodes) require.Len(t, output.CLNodes, 2) require.Contains(t, output.CLNodes[0].PostgreSQL.Url, "postgresql://chainlink:thispasswordislongenough@127.0.0.1") - require.Contains(t, output.CLNodes[0].PostgreSQL.DockerInternalURL, "postgresql://chainlink:thispasswordislongenough@postgresql-") + require.Contains(t, output.CLNodes[0].PostgreSQL.DockerInternalURL, "postgresql://chainlink:thispasswordislongenough@ns-postgresql-") require.Contains(t, output.CLNodes[0].Node.HostURL, "127.0.0.1") require.Contains(t, output.CLNodes[0].Node.DockerURL, "node") require.Contains(t, output.CLNodes[0].Node.DockerP2PUrl, "node") require.Contains(t, output.CLNodes[1].PostgreSQL.Url, "postgresql://chainlink:thispasswordislongenough@127.0.0.1") - require.Contains(t, output.CLNodes[1].PostgreSQL.DockerInternalURL, "postgresql://chainlink:thispasswordislongenough@postgresql-") + require.Contains(t, output.CLNodes[1].PostgreSQL.DockerInternalURL, "postgresql://chainlink:thispasswordislongenough@ns-postgresql-") require.Contains(t, output.CLNodes[1].Node.HostURL, "127.0.0.1") require.Contains(t, output.CLNodes[1].Node.DockerURL, "node") require.Contains(t, output.CLNodes[1].Node.DockerP2PUrl, "node") @@ -40,8 +39,7 @@ func checkBasicOutputs(t *testing.T, output *ns.Output) { func TestComponentDockerNodeSetSharedDB(t *testing.T) { testCases := []testCase{ { - name: "2 nodes cluster, override mode 'all'", - fakeURL: "http://example.com", + name: "2 nodes cluster, override mode 'all'", bcInput: &blockchain.Input{ Type: "anvil", Image: "f4hrenh9it/foundry", @@ -56,9 +54,6 @@ func TestComponentDockerNodeSetSharedDB(t *testing.T) { }, NodeSpecs: []*clnode.Input{ { - DbInput: &postgres.Input{ - Image: "postgres:15.6", - }, Node: &clnode.NodeInput{ Image: "public.ecr.aws/chainlink/chainlink:v2.17.0", Name: "cl-node", @@ -71,8 +66,7 @@ func TestComponentDockerNodeSetSharedDB(t *testing.T) { }, }, { - name: "2 nodes cluster, override mode 'each'", - fakeURL: "http://example.com", + name: "2 nodes cluster, override mode 'each'", bcInput: &blockchain.Input{ Type: "anvil", Image: "f4hrenh9it/foundry", @@ -90,10 +84,6 @@ func TestComponentDockerNodeSetSharedDB(t *testing.T) { }, NodeSpecs: []*clnode.Input{ { - DbInput: &postgres.Input{ - Image: "postgres:15.6", - Port: 14000, - }, Node: &clnode.NodeInput{ Image: "public.ecr.aws/chainlink/chainlink:v2.17.0", Name: "cl-node-1", @@ -104,9 +94,6 @@ level = 'info' }, }, { - DbInput: &postgres.Input{ - Image: "postgres:15.6", - }, Node: &clnode.NodeInput{ Image: "public.ecr.aws/chainlink/chainlink:v2.17.0", Name: "cl-node-2", diff --git a/framework/components/simple_node_set/reload.go b/framework/components/simple_node_set/reload.go index c965d4043..7ec5048ec 100644 --- a/framework/components/simple_node_set/reload.go +++ b/framework/components/simple_node_set/reload.go @@ -9,7 +9,7 @@ import ( // UpgradeNodeSet updates nodes configuration TOML files // this API is discouraged, however, you can use it if nodes require restart or configuration updates, temporarily! func UpgradeNodeSet(in *Input, bc *blockchain.Output, wait time.Duration) (*Output, error) { - _, err := chaos.ExecPumba("rm --volumes=false re2:node.*|postgresql.*", wait) + _, err := chaos.ExecPumba("rm --volumes=false re2:node.*|ns-postgresql.*", wait) if err != nil { return nil, err } diff --git a/framework/docker.go b/framework/docker.go index e2aecd743..3cc8344ca 100644 --- a/framework/docker.go +++ b/framework/docker.go @@ -1,13 +1,17 @@ package framework import ( + "archive/tar" + "bytes" "context" "errors" "fmt" + "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "github.com/docker/go-connections/nat" "github.com/google/uuid" tc "github.com/testcontainers/testcontainers-go" + "io" "os" "os/exec" "strings" @@ -132,3 +136,86 @@ func RebuildDockerImage(once *sync.Once, dockerfile string, buildContext string, } return fmt.Sprintf("localhost:5050/%s:latest", imageName), nil } + +// DockerClient wraps a Docker API client and provides convenience methods +type DockerClient struct { + cli *client.Client +} + +// NewDockerClient creates a new instance of DockerClient +func NewDockerClient() (*DockerClient, error) { + cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) + if err != nil { + return nil, fmt.Errorf("failed to create Docker client: %w", err) + } + return &DockerClient{cli: cli}, nil +} + +// CopyFile copies a file into a container by name +func (dc *DockerClient) CopyFile(containerName, sourceFile, targetPath string) error { + ctx := context.Background() + containerID, err := dc.findContainerIDByName(ctx, containerName) + if err != nil { + return fmt.Errorf("failed to find container ID by name: %s", containerName) + } + return dc.copyToContainer(containerID, sourceFile, targetPath) +} + +// findContainerIDByName finds a container ID by its name +func (dc *DockerClient) findContainerIDByName(ctx context.Context, containerName string) (string, error) { + containers, err := dc.cli.ContainerList(ctx, container.ListOptions{ + All: true, + }) + if err != nil { + return "", fmt.Errorf("failed to list containers: %w", err) + } + for _, c := range containers { + for _, name := range c.Names { + if name == "/"+containerName { + return c.ID, nil + } + } + } + return "", fmt.Errorf("container with name %s not found", containerName) +} + +// copyToContainer copies a file into a container +func (dc *DockerClient) copyToContainer(containerID, sourceFile, targetPath string) error { + ctx := context.Background() + src, err := os.Open(sourceFile) + if err != nil { + return fmt.Errorf("could not open source file: %w", err) + } + defer src.Close() + + // Create a tar archive containing the file + var buf bytes.Buffer + tw := tar.NewWriter(&buf) + info, err := src.Stat() + if err != nil { + return fmt.Errorf("could not stat source file: %w", err) + } + + // Add file to tar + header := &tar.Header{ + Name: info.Name(), + Size: info.Size(), + Mode: int64(info.Mode()), + } + if err := tw.WriteHeader(header); err != nil { + return fmt.Errorf("could not write tar header: %w", err) + } + if _, err := io.Copy(tw, src); err != nil { + return fmt.Errorf("could not write file to tar archive: %w", err) + } + tw.Close() + + // Copy the tar archive to the container + err = dc.cli.CopyToContainer(ctx, containerID, targetPath, &buf, container.CopyToContainerOptions{ + AllowOverwriteDirWithFile: true, + }) + if err != nil { + return fmt.Errorf("could not copy file to container: %w", err) + } + return nil +} diff --git a/framework/examples/myproject/.envrc b/framework/examples/myproject/.envrc index 07bb8e669..de663d205 100644 --- a/framework/examples/myproject/.envrc +++ b/framework/examples/myproject/.envrc @@ -1,3 +1,4 @@ export LOKI_TENANT_ID=promtail export LOKI_URL=http://localhost:3030/loki/api/v1/push export TESTCONTAINERS_RYUK_DISABLED=true +export CTF_LOG_LEVEL=info diff --git a/framework/examples/myproject/go.mod b/framework/examples/myproject/go.mod index 96ba5a153..43f1d9d83 100644 --- a/framework/examples/myproject/go.mod +++ b/framework/examples/myproject/go.mod @@ -8,6 +8,7 @@ replace ( ) require ( + github.com/go-resty/resty/v2 v2.15.3 github.com/smartcontractkit/chainlink-testing-framework/framework v0.2.5 github.com/smartcontractkit/chainlink-testing-framework/wasp v1.50.2 github.com/stretchr/testify v1.9.0 @@ -27,7 +28,6 @@ require ( github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go v1.45.25 // indirect github.com/aws/aws-sdk-go-v2 v1.31.0 // indirect github.com/aws/aws-sdk-go-v2/config v1.27.39 // indirect @@ -43,7 +43,6 @@ require ( github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.3 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 // indirect github.com/aws/smithy-go v1.21.0 // indirect - github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/buger/jsonparser v1.1.1 // indirect @@ -51,18 +50,9 @@ require ( github.com/bytedance/sonic/loader v0.2.0 // indirect github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b // indirect github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8 // indirect - github.com/catppuccin/go v0.2.0 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/charmbracelet/bubbles v0.20.0 // indirect - github.com/charmbracelet/bubbletea v1.1.1 // indirect - github.com/charmbracelet/huh v0.6.0 // indirect - github.com/charmbracelet/huh/spinner v0.0.0-20241028115900-20a4d21717a8 // indirect - github.com/charmbracelet/lipgloss v0.13.0 // indirect - github.com/charmbracelet/x/ansi v0.2.3 // indirect - github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 // indirect - github.com/charmbracelet/x/term v0.2.0 // indirect github.com/cloudwego/base64x v0.1.4 // indirect github.com/cloudwego/iasm v0.2.0 // indirect github.com/coder/websocket v1.8.12 // indirect @@ -72,7 +62,6 @@ require ( github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/cpuguy83/dockercfg v0.3.2 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.5 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -83,7 +72,6 @@ require ( github.com/dustin/go-humanize v1.0.1 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/ethereum/go-ethereum v1.14.11 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect github.com/fatih/color v1.16.0 // indirect @@ -111,7 +99,6 @@ require ( github.com/go-playground/universal-translator v0.18.1 // indirect github.com/go-playground/validator/v10 v10.22.1 // indirect github.com/go-redis/redis/v8 v8.11.5 // indirect - github.com/go-resty/resty/v2 v2.15.3 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -155,18 +142,14 @@ require ( github.com/klauspost/cpuid/v2 v2.2.8 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // 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/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.16 // indirect github.com/miekg/dns v1.1.56 // indirect github.com/mitchellh/copystructure v1.0.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.1 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect @@ -177,9 +160,6 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/morikuni/aec v1.0.0 // indirect - github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect - github.com/muesli/cancelreader v0.2.2 // indirect - github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/oklog/ulid v1.3.1 // indirect @@ -189,7 +169,6 @@ require ( github.com/opentracing-contrib/go-stdlib v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/pelletier/go-toml v1.9.5 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -203,9 +182,7 @@ require ( github.com/prometheus/exporter-toolkit v0.10.1-0.20230714054209-2f4150c63f97 // indirect github.com/prometheus/procfs v0.15.1 // indirect github.com/prometheus/prometheus v0.47.2-0.20231010075449-4b9c19fe5510 // indirect - github.com/rivo/uniseg v0.4.7 // indirect github.com/rs/zerolog v1.33.0 // indirect - github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 // indirect github.com/sercand/kuberesolver/v5 v5.1.1 // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect @@ -225,9 +202,7 @@ require ( github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect github.com/ugorji/go/codec v1.2.12 // indirect - github.com/urfave/cli/v2 v2.27.5 // indirect github.com/x448/float16 v0.8.4 // indirect - github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect github.com/yusufpapurcu/wmi v1.2.3 // indirect go.etcd.io/etcd/api/v3 v3.5.7 // indirect go.etcd.io/etcd/client/pkg/v3 v3.5.7 // indirect diff --git a/framework/examples/myproject/go.sum b/framework/examples/myproject/go.sum index a57b8ca37..d75673d19 100644 --- a/framework/examples/myproject/go.sum +++ b/framework/examples/myproject/go.sum @@ -105,8 +105,6 @@ github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgI github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= -github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go v1.45.25 h1:c4fLlh5sLdK2DCRTY1z0hyuJZU4ygxX8m1FswL6/nF4= github.com/aws/aws-sdk-go v1.45.25/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= @@ -138,8 +136,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.31.3 h1:VzudTFrDCIDakXtemR7l6Qzt2+JY github.com/aws/aws-sdk-go-v2/service/sts v1.31.3/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= -github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= -github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -158,8 +154,6 @@ github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b h1:6+ZFm0flnudZzdS github.com/c2h5oh/datasize v0.0.0-20220606134207-859f65c6625b/go.mod h1:S/7n9copUssQ56c7aAgHqftWO4LTf4xY6CGWt8Bc+3M= github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8 h1:SjZ2GvvOononHOpK84APFuMvxqsk3tEIaKH/z4Rpu3g= github.com/c9s/goprocinfo v0.0.0-20210130143923-c95fcf8c64a8/go.mod h1:uEyr4WpAH4hio6LFriaPkL938XnrvLpNPmQHBdrmbIE= -github.com/catppuccin/go v0.2.0 h1:ktBeIrIP42b/8FGiScP9sgrWOss3lw0Z5SktRoithGA= -github.com/catppuccin/go v0.2.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MOlZjpc= 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= @@ -168,22 +162,6 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE= -github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU= -github.com/charmbracelet/bubbletea v1.1.1 h1:KJ2/DnmpfqFtDNVTvYZ6zpPFL9iRCRr0qqKOCvppbPY= -github.com/charmbracelet/bubbletea v1.1.1/go.mod h1:9Ogk0HrdbHolIKHdjfFpyXJmiCzGwy+FesYkZr7hYU4= -github.com/charmbracelet/huh v0.6.0 h1:mZM8VvZGuE0hoDXq6XLxRtgfWyTI3b2jZNKh0xWmax8= -github.com/charmbracelet/huh v0.6.0/go.mod h1:GGNKeWCeNzKpEOh/OJD8WBwTQjV3prFAtQPpLv+AVwU= -github.com/charmbracelet/huh/spinner v0.0.0-20241028115900-20a4d21717a8 h1:g+Bz64hsMLTf3lAgUqI6Rj1YEAlm/HN39IuhyneCokc= -github.com/charmbracelet/huh/spinner v0.0.0-20241028115900-20a4d21717a8/go.mod h1:Cxhgl8N0sX9A+EQxedzzGZAalaF8fUVL+JP/pSOW8cI= -github.com/charmbracelet/lipgloss v0.13.0 h1:4X3PPeoWEDCMvzDvGmTajSyYPcZM4+y8sCA/SsA3cjw= -github.com/charmbracelet/lipgloss v0.13.0/go.mod h1:nw4zy0SBX/F/eAO1cWdcvy6qnkDUxr8Lw7dvFrAIbbY= -github.com/charmbracelet/x/ansi v0.2.3 h1:VfFN0NUpcjBRd4DnKfRaIRo53KRgey/nhOoEqosGDEY= -github.com/charmbracelet/x/ansi v0.2.3/go.mod h1:dk73KoMTT5AX5BsX0KrqhsTqAnhZZoCBjs7dGWp4Ktw= -github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0 h1:qko3AQ4gK1MTS/de7F5hPGx6/k1u0w4TeYmBFwzYVP4= -github.com/charmbracelet/x/exp/strings v0.0.0-20240722160745-212f7b056ed0/go.mod h1:pBhA0ybfXv6hDjQUZ7hk1lVxBiUbupdw5R31yPUViVQ= -github.com/charmbracelet/x/term v0.2.0 h1:cNB9Ot9q8I711MyZ7myUR5HFWL/lc3OpU8jZ4hwm0x0= -github.com/charmbracelet/x/term v0.2.0/go.mod h1:GVxgxAbjUrmpvIINHIQnJJKpMlHiZ4cktEQCN6GWyF0= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -211,8 +189,6 @@ github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8 github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -github.com/cpuguy83/go-md2man/v2 v2.0.5 h1:ZtcqGrnekaHpVLArFSe4HK5DoKx1T0rq2DwVB0alcyc= -github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0= github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= @@ -250,8 +226,6 @@ github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnv github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= -github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= -github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= github.com/ethereum/go-ethereum v1.14.11 h1:8nFDCUUE67rPc6AKxFj7JKaOa2W/W1Rse3oS6LvvxEY= github.com/ethereum/go-ethereum v1.14.11/go.mod h1:+l/fr42Mma+xBnhefL/+z11/hcmJ2egl+ScIVPjhc7E= github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM= @@ -598,8 +572,6 @@ github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= github.com/linode/linodego v1.19.0 h1:n4WJrcr9+30e9JGZ6DI0nZbm5SdAj1kSwvvt/998YUw= github.com/linode/linodego v1.19.0/go.mod h1:XZFR+yJ9mm2kwf6itZ6SCpu+6w3KnIevV0Uu5HNWJgQ= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= 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= @@ -627,10 +599,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/ github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= -github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= -github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= -github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= @@ -643,8 +611,6 @@ github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFW github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= -github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= 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= @@ -673,12 +639,6 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY 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/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= -github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= -github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= -github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= -github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a h1:2MaM6YC3mGu54x+RKAA6JiFFHlHDY1UbkxqppT7wYOg= -github.com/muesli/termenv v0.15.3-0.20240618155329-98d742f6907a/go.mod h1:hxSnBBYLK21Vtq/PHd0S2FYCxBXzBua8ov5s1RobyRQ= 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/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -714,8 +674,6 @@ github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144T github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= -github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= -github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= @@ -770,9 +728,6 @@ github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0leargg github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/prometheus/prometheus v0.47.2-0.20231010075449-4b9c19fe5510 h1:6ksZ7t1hNOzGPPs8DK7SvXQf6UfWzi+W5Z7PCBl8gx4= github.com/prometheus/prometheus v0.47.2-0.20231010075449-4b9c19fe5510/go.mod h1:UC0TwJiF90m2T3iYPQBKnGu8gv3s55dF/EgpTq8gyvo= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= -github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= 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= @@ -781,9 +736,6 @@ github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99 github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/scaleway/scaleway-sdk-go v1.0.0-beta.20 h1:a9hSJdJcd16e0HoMsnFvaHvxB3pxSD+SC7+CISp7xY0= @@ -857,9 +809,6 @@ github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVK github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/urfave/cli v1.22.12 h1:igJgVw1JdKH+trcLWLeLwZjU9fEfPesQ+9/e4MQ44S8= -github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= -github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= github.com/vultr/govultr/v2 v2.17.2 h1:gej/rwr91Puc/tgh+j33p/BLR16UrIPnSr+AIwYWZQs= github.com/vultr/govultr/v2 v2.17.2/go.mod h1:ZFOKGWmgjytfyjeyAdhQlSWwTjh2ig+X49cAp50dzXI= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -871,8 +820,6 @@ github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3k 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/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1102,7 +1049,6 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/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-20210809222454-d867a43fc93e/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-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/framework/examples/myproject/smoke_test.go b/framework/examples/myproject/smoke_test.go index d9ea85b77..c6355cf0f 100644 --- a/framework/examples/myproject/smoke_test.go +++ b/framework/examples/myproject/smoke_test.go @@ -29,7 +29,6 @@ func TestSmoke(t *testing.T) { t.Run("test something", func(t *testing.T) { for _, n := range out.CLNodes { require.NotEmpty(t, n.Node.HostURL) - require.NotEmpty(t, n.Node.HostP2PURL) } }) } diff --git a/framework/examples/myproject/upgrade_test.go b/framework/examples/myproject/upgrade_test.go index 55eb4bec3..7f8dab0cd 100644 --- a/framework/examples/myproject/upgrade_test.go +++ b/framework/examples/myproject/upgrade_test.go @@ -76,7 +76,6 @@ func TestUpgrade(t *testing.T) { t.Run("test something", func(t *testing.T) { for _, n := range out.CLNodes { require.NotEmpty(t, n.Node.HostURL) - require.NotEmpty(t, n.Node.HostP2PURL) } }) }