From f60a814e4d9da87ac0dd5835b9a790a0b63f54b3 Mon Sep 17 00:00:00 2001 From: Matthew Heon Date: Fri, 18 Oct 2019 13:40:21 -0400 Subject: Add parsing for UID, GID in volume "o" option Everything else is a flag to mount, but "uid" and "gid" are not. We need to parse them out of "o" and handle them separately. Signed-off-by: Matthew Heon --- libpod/options.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'libpod') diff --git a/libpod/options.go b/libpod/options.go index ddc5993af..17a075d2d 100644 --- a/libpod/options.go +++ b/libpod/options.go @@ -1487,6 +1487,8 @@ func WithVolumeLabels(labels map[string]string) VolumeCreateOption { } // WithVolumeOptions sets the options of the volume. +// If the "local" driver has been selected, options will be validated. There are +// currently 3 valid options for the "local" driver - o, type, and device. func WithVolumeOptions(options map[string]string) VolumeCreateOption { return func(volume *Volume) error { if volume.valid { @@ -1495,6 +1497,13 @@ func WithVolumeOptions(options map[string]string) VolumeCreateOption { volume.config.Options = make(map[string]string) for key, value := range options { + switch key { + case "type", "device", "o": + volume.config.Options[key] = value + default: + return errors.Wrapf(define.ErrInvalidArg, "unrecognized volume option %q is not supported with local driver", key) + } + volume.config.Options[key] = value } -- cgit v1.2.3-54-g00ecf