diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-04-18 14:17:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-18 14:17:41 -0700 |
commit | e4947e5fd699f584cb815a4f4fd92f22b62f2c8a (patch) | |
tree | 525468fc942fcf473ad1df3722bbf05ea03f3c7b /cmd/podman/pause.go | |
parent | 4d45f5180f778bf3a298bf061ca2c0dba0d4bfad (diff) | |
parent | 55e630e7876557ebd2a44e81fa357aab9efbb793 (diff) | |
download | podman-e4947e5fd699f584cb815a4f4fd92f22b62f2c8a.tar.gz podman-e4947e5fd699f584cb815a4f4fd92f22b62f2c8a.tar.bz2 podman-e4947e5fd699f584cb815a4f4fd92f22b62f2c8a.zip |
Merge pull request #2948 from baude/remotepause
podman-remote pause|unpause
Diffstat (limited to 'cmd/podman/pause.go')
-rw-r--r-- | cmd/podman/pause.go | 54 |
1 files changed, 13 insertions, 41 deletions
diff --git a/cmd/podman/pause.go b/cmd/podman/pause.go index 3e6d36571..ca137150a 100644 --- a/cmd/podman/pause.go +++ b/cmd/podman/pause.go @@ -4,11 +4,9 @@ import ( "os" "github.com/containers/libpod/cmd/podman/cliconfig" - "github.com/containers/libpod/cmd/podman/libpodruntime" - "github.com/containers/libpod/cmd/podman/shared" "github.com/containers/libpod/libpod" + "github.com/containers/libpod/pkg/adapter" "github.com/pkg/errors" - "github.com/sirupsen/logrus" "github.com/spf13/cobra" ) @@ -41,15 +39,11 @@ func init() { } func pauseCmd(c *cliconfig.PauseValues) error { - var ( - pauseContainers []*libpod.Container - pauseFuncs []shared.ParallelWorkerInput - ) if os.Geteuid() != 0 { return errors.New("pause is not supported for rootless containers") } - runtime, err := libpodruntime.GetRuntime(&c.PodmanCommand) + runtime, err := adapter.GetRuntime(&c.PodmanCommand) if err != nil { return errors.Wrapf(err, "could not get runtime") } @@ -59,41 +53,19 @@ func pauseCmd(c *cliconfig.PauseValues) error { if len(args) < 1 && !c.All { return errors.Errorf("you must provide at least one container name or id") } - if c.All { - containers, err := getAllOrLatestContainers(&c.PodmanCommand, runtime, libpod.ContainerStateRunning, "running") - if err != nil { - return err - } - pauseContainers = append(pauseContainers, containers...) - } else { - for _, arg := range args { - ctr, err := runtime.LookupContainer(arg) - if err != nil { - return err + ok, failures, err := runtime.PauseContainers(getContext(), c) + if err != nil { + if errors.Cause(err) == libpod.ErrNoSuchCtr { + if len(c.InputArgs) > 1 { + exitCode = 125 + } else { + exitCode = 1 } - pauseContainers = append(pauseContainers, ctr) - } - } - - // Now assemble the slice of pauseFuncs - for _, ctr := range pauseContainers { - con := ctr - - f := func() error { - return con.Pause() } - pauseFuncs = append(pauseFuncs, shared.ParallelWorkerInput{ - ContainerID: con.ID(), - ParallelFunc: f, - }) + return err } - - maxWorkers := shared.Parallelize("pause") - if c.GlobalIsSet("max-workers") { - maxWorkers = c.GlobalFlags.MaxWorks + if len(failures) > 0 { + exitCode = 125 } - logrus.Debugf("Setting maximum workers to %d", maxWorkers) - - pauseErrors, errCount := shared.ParallelExecuteWorkerPool(maxWorkers, pauseFuncs) - return printParallelOutput(pauseErrors, errCount) + return printCmdResults(ok, failures) } |