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>
This commit is contained in:
Daniel J Walsh 2021-04-27 09:22:32 -04:00
parent 3148e01651
commit 825c84efe1
No known key found for this signature in database
GPG key ID: A2DF901DABE2C028
2 changed files with 18 additions and 5 deletions

View file

@ -96,12 +96,18 @@ func CreateVolume(w http.ResponseWriter, r *http.Request) {
return
}
var (
existingVolume *libpod.Volume
err error
)
if len(input.Name) != 0 {
// See if the volume exists already
existingVolume, err := runtime.GetVolume(input.Name)
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
// must return a 201 with the same information as create

View file

@ -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 \