aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-01-10 11:58:08 -0800
committerGitHub <noreply@github.com>2019-01-10 11:58:08 -0800
commit7d2632872a875ad0baca0f812e0f8d9d97617977 (patch)
tree8e277ff486162ec0c1d0b24e224e3ffee48fdcb3
parent4fb60450878127f0d8e5c240075d25bd49b91433 (diff)
parentf2ff550967660a611f8f28e9bd79d39bc007c104 (diff)
downloadpodman-7d2632872a875ad0baca0f812e0f8d9d97617977.tar.gz
podman-7d2632872a875ad0baca0f812e0f8d9d97617977.tar.bz2
podman-7d2632872a875ad0baca0f812e0f8d9d97617977.zip
Merge pull request #2120 from rhatdan/volume
Fix handling of nil volumes
-rw-r--r--cmd/podman/create_cli.go6
-rw-r--r--test/e2e/run_test.go15
2 files changed, 21 insertions, 0 deletions
diff --git a/cmd/podman/create_cli.go b/cmd/podman/create_cli.go
index 1a0830f2e..95b9321fd 100644
--- a/cmd/podman/create_cli.go
+++ b/cmd/podman/create_cli.go
@@ -201,6 +201,9 @@ func parseVolumesFrom(volumesFrom []string) error {
}
func validateVolumeHostDir(hostDir string) error {
+ if len(hostDir) == 0 {
+ return errors.Errorf("host directory cannot be empty")
+ }
if filepath.IsAbs(hostDir) {
if _, err := os.Stat(hostDir); err != nil {
return errors.Wrapf(err, "error checking path %q", hostDir)
@@ -212,6 +215,9 @@ func validateVolumeHostDir(hostDir string) error {
}
func validateVolumeCtrDir(ctrDir string) error {
+ if len(ctrDir) == 0 {
+ return errors.Errorf("container directory cannot be empty")
+ }
if !filepath.IsAbs(ctrDir) {
return errors.Errorf("invalid container path, must be an absolute path %q", ctrDir)
}
diff --git a/test/e2e/run_test.go b/test/e2e/run_test.go
index a0b16a254..1e7f4f0f4 100644
--- a/test/e2e/run_test.go
+++ b/test/e2e/run_test.go
@@ -596,6 +596,21 @@ USER mail`
Expect(session.ExitCode()).To(Equal(0))
})
+ It("podman run --volumes flag with empty host dir", func() {
+ vol1 := filepath.Join(podmanTest.TempDir, "vol-test1")
+ err := os.MkdirAll(vol1, 0755)
+ Expect(err).To(BeNil())
+
+ session := podmanTest.Podman([]string{"run", "--volume", ":/myvol1:z", ALPINE, "touch", "/myvol2/foo.txt"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).ToNot(Equal(0))
+ Expect(session.ErrorToString()).To(ContainSubstring("directory cannot be empty"))
+ session = podmanTest.Podman([]string{"run", "--volume", vol1 + ":", ALPINE, "touch", "/myvol2/foo.txt"})
+ session.WaitWithDefaultTimeout()
+ Expect(session.ExitCode()).ToNot(Equal(0))
+ Expect(session.ErrorToString()).To(ContainSubstring("directory cannot be empty"))
+ })
+
It("podman run --mount flag with multiple mounts", func() {
vol1 := filepath.Join(podmanTest.TempDir, "vol-test1")
err := os.MkdirAll(vol1, 0755)