From 241c96a96e4616be9a370c786efde9dd6a04ada7 Mon Sep 17 00:00:00 2001 From: William Banfield Date: Tue, 29 Nov 2022 13:42:15 -0500 Subject: [PATCH] switch exec compose to docker pkg --- test/e2e/pkg/infra/docker/docker.go | 20 ++++++++++++++++++++ test/e2e/runner/main.go | 2 +- test/e2e/runner/perturb.go | 11 ++++++----- test/e2e/runner/start.go | 5 +++-- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/test/e2e/pkg/infra/docker/docker.go b/test/e2e/pkg/infra/docker/docker.go index 7ba8ca3cd..f9d239274 100644 --- a/test/e2e/pkg/infra/docker/docker.go +++ b/test/e2e/pkg/infra/docker/docker.go @@ -8,6 +8,7 @@ import ( "text/template" e2e "github.com/tendermint/tendermint/test/e2e/pkg" + "github.com/tendermint/tendermint/test/e2e/pkg/exec" "github.com/tendermint/tendermint/test/e2e/pkg/infra" ) @@ -93,3 +94,22 @@ services: } return buf.Bytes(), nil } + +// ExecCompose runs a Docker Compose command for a testnet. +func ExecCompose(dir string, args ...string) error { + return exec.Command(context.Background(), append( + []string{"docker-compose", "-f", filepath.Join(dir, "docker-compose.yml")}, + args...)...) +} + +// ExecComposeVerbose runs a Docker Compose command for a testnet and displays its output. +func ExecComposeVerbose(dir string, args ...string) error { + return exec.CommandVerbose(context.Background(), append( + []string{"docker-compose", "-f", filepath.Join(dir, "docker-compose.yml")}, + args...)...) +} + +// ExecDocker runs a Docker command. +func ExecDocker(args ...string) error { + return exec.Command(context.Background(), append([]string{"docker"}, args...)...) +} diff --git a/test/e2e/runner/main.go b/test/e2e/runner/main.go index 33edf64be..20315f4aa 100644 --- a/test/e2e/runner/main.go +++ b/test/e2e/runner/main.go @@ -211,7 +211,7 @@ func NewCLI() *CLI { Short: "Stops the Docker testnet", RunE: func(cmd *cobra.Command, args []string) error { logger.Info("Stopping testnet") - return execCompose(cli.testnet.Dir, "down") + return docker.ExecCompose(cli.testnet.Dir, "down") }, }) diff --git a/test/e2e/runner/perturb.go b/test/e2e/runner/perturb.go index f47aa72bf..5180774d9 100644 --- a/test/e2e/runner/perturb.go +++ b/test/e2e/runner/perturb.go @@ -7,6 +7,7 @@ import ( "github.com/tendermint/tendermint/libs/log" rpctypes "github.com/tendermint/tendermint/rpc/core/types" e2e "github.com/tendermint/tendermint/test/e2e/pkg" + "github.com/tendermint/tendermint/test/e2e/pkg/infra/docker" ) // Perturbs a running testnet. @@ -40,26 +41,26 @@ func PerturbNode(node *e2e.Node, perturbation e2e.Perturbation) (*rpctypes.Resul case e2e.PerturbationKill: logger.Info("perturb node", "msg", log.NewLazySprintf("Killing node %v...", node.Name)) - if err := execCompose(testnet.Dir, "kill", "-s", "SIGKILL", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "kill", "-s", "SIGKILL", node.Name); err != nil { return nil, err } - if err := execCompose(testnet.Dir, "start", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "start", node.Name); err != nil { return nil, err } case e2e.PerturbationPause: logger.Info("perturb node", "msg", log.NewLazySprintf("Pausing node %v...", node.Name)) - if err := execCompose(testnet.Dir, "pause", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "pause", node.Name); err != nil { return nil, err } time.Sleep(10 * time.Second) - if err := execCompose(testnet.Dir, "unpause", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "unpause", node.Name); err != nil { return nil, err } case e2e.PerturbationRestart: logger.Info("perturb node", "msg", log.NewLazySprintf("Restarting node %v...", node.Name)) - if err := execCompose(testnet.Dir, "restart", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "restart", node.Name); err != nil { return nil, err } diff --git a/test/e2e/runner/start.go b/test/e2e/runner/start.go index 0dab98f22..a3082e17d 100644 --- a/test/e2e/runner/start.go +++ b/test/e2e/runner/start.go @@ -7,6 +7,7 @@ import ( "github.com/tendermint/tendermint/libs/log" e2e "github.com/tendermint/tendermint/test/e2e/pkg" + "github.com/tendermint/tendermint/test/e2e/pkg/infra/docker" ) func Start(testnet *e2e.Testnet) error { @@ -43,7 +44,7 @@ func Start(testnet *e2e.Testnet) error { for len(nodeQueue) > 0 && nodeQueue[0].StartAt == 0 { node := nodeQueue[0] nodeQueue = nodeQueue[1:] - if err := execCompose(testnet.Dir, "up", "-d", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "up", "-d", node.Name); err != nil { return err } if _, err := waitForNode(node, 0, 15*time.Second); err != nil { @@ -97,7 +98,7 @@ func Start(testnet *e2e.Testnet) error { logger.Info("Starting catch up node", "node", node.Name, "height", node.StartAt) - if err := execCompose(testnet.Dir, "up", "-d", node.Name); err != nil { + if err := docker.ExecCompose(testnet.Dir, "up", "-d", node.Name); err != nil { return err } status, err := waitForNode(node, node.StartAt, 3*time.Minute)