diff options
author | TomSweeneyRedHat <tsweeney@redhat.com> | 2018-06-29 16:35:22 -0400 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-07-03 18:02:45 +0000 |
commit | 6d8fac87ed20c7bb3214e28e2ef74d3d8831eadd (patch) | |
tree | 5bf4066cb6005fa54119cd16bb02bfa1b21144bd /cmd/podman/mount.go | |
parent | 7a5c376e63085d60a5d9c00d8f176b4a945f1ad0 (diff) | |
download | podman-6d8fac87ed20c7bb3214e28e2ef74d3d8831eadd.tar.gz podman-6d8fac87ed20c7bb3214e28e2ef74d3d8831eadd.tar.bz2 podman-6d8fac87ed20c7bb3214e28e2ef74d3d8831eadd.zip |
Allow multiple mounts
Signed-off-by: TomSweeneyRedHat <tsweeney@redhat.com>
Closes: #1030
Approved by: rhatdan
Diffstat (limited to 'cmd/podman/mount.go')
-rw-r--r-- | cmd/podman/mount.go | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/cmd/podman/mount.go b/cmd/podman/mount.go index e913afb75..b053ef1e8 100644 --- a/cmd/podman/mount.go +++ b/cmd/podman/mount.go @@ -7,6 +7,7 @@ import ( "github.com/pkg/errors" of "github.com/projectatomic/libpod/cmd/podman/formats" "github.com/projectatomic/libpod/cmd/podman/libpodruntime" + "github.com/sirupsen/logrus" "github.com/urfave/cli" ) @@ -34,7 +35,7 @@ var ( Usage: "Mount a working container's root filesystem", Description: mountDescription, Action: mountCmd, - ArgsUsage: "[CONTAINER-NAME-OR-ID]", + ArgsUsage: "[CONTAINER-NAME-OR-ID [...]]", Flags: mountFlags, } ) @@ -68,23 +69,35 @@ func mountCmd(c *cli.Context) error { return errors.Errorf("%q is not a supported format", c.String("format")) } - if len(args) > 1 { - return errors.Errorf("too many arguments specified") - } - - if len(args) == 1 { - if json { - return errors.Wrapf(err, "json option can not be used with a container id") - } - ctr, err := runtime.LookupContainer(args[0]) - if err != nil { - return errors.Wrapf(err, "error looking up container %q", args[0]) - } - mountPoint, err := ctr.Mount() - if err != nil { - return errors.Wrapf(err, "error mounting container %q", ctr.ID()) + var lastError error + if len(args) > 0 { + for _, name := range args { + if json { + if lastError != nil { + logrus.Error(lastError) + } + lastError = errors.Wrapf(err, "json option cannot be used with a container id") + continue + } + ctr, err := runtime.LookupContainer(name) + if err != nil { + if lastError != nil { + logrus.Error(lastError) + } + lastError = errors.Wrapf(err, "error looking up container %q", name) + continue + } + mountPoint, err := ctr.Mount() + if err != nil { + if lastError != nil { + logrus.Error(lastError) + } + lastError = errors.Wrapf(err, "error mounting container %q", ctr.ID()) + continue + } + fmt.Printf("%s\n", mountPoint) } - fmt.Printf("%s\n", mountPoint) + return lastError } else { jsonMountPoints := []jsonMountPoint{} containers, err2 := runtime.GetContainers() |