summaryrefslogtreecommitdiff
path: root/cmd/podman/mount.go
diff options
context:
space:
mode:
authorTomSweeneyRedHat <tsweeney@redhat.com>2018-06-29 16:35:22 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-07-03 18:02:45 +0000
commit6d8fac87ed20c7bb3214e28e2ef74d3d8831eadd (patch)
tree5bf4066cb6005fa54119cd16bb02bfa1b21144bd /cmd/podman/mount.go
parent7a5c376e63085d60a5d9c00d8f176b4a945f1ad0 (diff)
downloadpodman-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.go47
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()