From ba8bed01cb54553ca2a5b878efb9330ee3f49714 Mon Sep 17 00:00:00 2001 From: Paul Laffitte Date: Wed, 23 Sep 2020 14:54:26 +0200 Subject: [PATCH] fix(controller): fail on validate volume caps when volume doesn't exists --- pkg/controller/controller.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/controller/controller.go b/pkg/controller/controller.go index 8fcf176a..8e6c2820 100644 --- a/pkg/controller/controller.go +++ b/pkg/controller/controller.go @@ -70,14 +70,19 @@ func (driver *Driver) ControllerGetCapabilities(ctx context.Context, req *csi.Co // ValidateVolumeCapabilities checks whether the volume capabilities requested // are supported. func (driver *Driver) ValidateVolumeCapabilities(ctx context.Context, req *csi.ValidateVolumeCapabilitiesRequest) (*csi.ValidateVolumeCapabilitiesResponse, error) { - if len(req.GetVolumeId()) == 0 { + volumeID := req.GetVolumeId() + if len(volumeID) == 0 { return nil, status.Error(codes.InvalidArgument, "cannot validate volume with empty ID") } if len(req.GetVolumeCapabilities()) == 0 { return nil, status.Error(codes.InvalidArgument, "cannot validate volume without capabilities") } + _, _, err := driver.dothillClient.ShowVolumes(volumeID) + if err != nil { + return nil, status.Error(codes.NotFound, "cannot validate volume not found") + } - err := driver.beginRoutine(&common.DriverCtx{ + err = driver.beginRoutine(&common.DriverCtx{ Req: req, }) defer driver.endRoutine()