Fix handling of devices

Devices are supposed to be able to be passed in via the form of

--device /dev/foo
--device /dev/foo:/dev/bar
--device /dev/foo:rwm
--device /dev/foo:/dev/bar:rwm

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1299
Approved by: umohnani8
This commit is contained in:
Daniel J Walsh
2018-08-17 18:17:44 -04:00
committed by Atomic Bot
parent e40c99a19e
commit 462c503a47
4 changed files with 89 additions and 85 deletions

View File

@ -28,10 +28,15 @@ func Device(d *configs.Device) spec.LinuxDevice {
}
func addDevice(g *generate.Generator, device string) error {
dev, err := devices.DeviceFromPath(device, "rwm")
src, dst, permissions, err := parseDevice(device)
if err != nil {
return errors.Wrapf(err, "%s is not a valid device", device)
return err
}
dev, err := devices.DeviceFromPath(src, permissions)
if err != nil {
return errors.Wrapf(err, "%s is not a valid device", src)
}
dev.Path = dst
linuxdev := spec.LinuxDevice{
Path: dev.Path,
Type: string(dev.Type),