From da53f64d5e842560ca4067b494174a4cf6c04800 Mon Sep 17 00:00:00 2001 From: Tim Gross Date: Wed, 20 May 2020 14:33:16 -0400 Subject: [PATCH] expose driver capabilities to volume_hook --- client/allocrunner/taskrunner/volume_hook.go | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/client/allocrunner/taskrunner/volume_hook.go b/client/allocrunner/taskrunner/volume_hook.go index 5447c50290f3..93268624c9cf 100644 --- a/client/allocrunner/taskrunner/volume_hook.go +++ b/client/allocrunner/taskrunner/volume_hook.go @@ -121,6 +121,18 @@ func (h *volumeHook) prepareHostVolumes(req *interfaces.TaskPrestartRequest, vol return nil, err } + if len(hostVolumeMounts) > 0 { + caps, err := h.runner.DriverCapabilities() + if err != nil { + return nil, fmt.Errorf("could not validate task driver capabilities: %v", err) + } + switch caps.Volumes { + case drivers.VolumeSupportNone, drivers.VolumeSupportCSIOnly: + return nil, fmt.Errorf("task driver does not support host volumes") + default: + } + } + return hostVolumeMounts, nil } @@ -167,6 +179,18 @@ func (h *volumeHook) prepareCSIVolumes(req *interfaces.TaskPrestartRequest, volu } } + if len(mounts) > 0 { + caps, err := h.runner.DriverCapabilities() + if err != nil { + return nil, fmt.Errorf("could not validate task driver capabilities: %v", err) + } + switch caps.Volumes { + case drivers.VolumeSupportNone, drivers.VolumeSupportHostOnly: + return nil, fmt.Errorf("task driver does not support CSI") + default: + } + } + return mounts, nil }