summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel J Walsh <dwalsh@redhat.com>2021-04-27 09:22:32 -0400
committerDaniel J Walsh <dwalsh@redhat.com>2021-04-27 10:32:06 -0400
commit825c84efe1feaf95e63476db6b9c69510e1b87de (patch)
tree5c1dcd1bc18718a3d423a2b4523b4d8180ec2b88
parent3148e01651e939f345242d582d82a068d1c6dd7e (diff)
downloadpodman-825c84efe1feaf95e63476db6b9c69510e1b87de.tar.gz
podman-825c84efe1feaf95e63476db6b9c69510e1b87de.tar.bz2
podman-825c84efe1feaf95e63476db6b9c69510e1b87de.zip
Allow docker volume create API to pass without name
The Docker API does not require Volume name to be specified when creating a volume. Fixes: https://github.com/containers/podman/issues/9803 Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
-rw-r--r--pkg/api/handlers/compat/volumes.go16
-rw-r--r--test/apiv2/30-volumes.at7
2 files changed, 18 insertions, 5 deletions
diff --git a/pkg/api/handlers/compat/volumes.go b/pkg/api/handlers/compat/volumes.go
index d86fc1e19..1ff1468e7 100644
--- a/pkg/api/handlers/compat/volumes.go
+++ b/pkg/api/handlers/compat/volumes.go
@@ -96,11 +96,17 @@ func CreateVolume(w http.ResponseWriter, r *http.Request) {
return
}
- // See if the volume exists already
- existingVolume, err := runtime.GetVolume(input.Name)
- if err != nil && errors.Cause(err) != define.ErrNoSuchVolume {
- utils.InternalServerError(w, err)
- return
+ var (
+ existingVolume *libpod.Volume
+ err error
+ )
+ if len(input.Name) != 0 {
+ // See if the volume exists already
+ existingVolume, err = runtime.GetVolume(input.Name)
+ if err != nil && errors.Cause(err) != define.ErrNoSuchVolume {
+ utils.InternalServerError(w, err)
+ return
+ }
}
// if using the compat layer and the volume already exists, we
diff --git a/test/apiv2/30-volumes.at b/test/apiv2/30-volumes.at
index 623e691e3..ed606134a 100644
--- a/test/apiv2/30-volumes.at
+++ b/test/apiv2/30-volumes.at
@@ -13,6 +13,13 @@ t POST libpod/volumes/create name=foo1 201 \
.CreatedAt~[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}.* \
.Labels={} \
.Options={}
+t POST volumes/create 201 \
+ .Name~[0-9a-f]\\{64\\}
+ .Driver=local \
+ .Mountpoint=$volumepath/~[0-9a-f]\\{64\\}/_data \
+ .CreatedAt~[0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}.* \
+ .Labels={} \
+ .Options={}
t POST libpod/volumes/create 201
t POST libpod/volumes/create \
Name=foo2 \