From ca2932855488b9773403d6ad22c1f581c8c8c295 Mon Sep 17 00:00:00 2001 From: Madhu Rajanna Date: Wed, 15 Dec 2021 10:59:41 +0530 Subject: [PATCH] csi: remove size check when creating volume remove the bigger size validation when creating a volume from a snapshot or when creation a clone from a volume as we resized the volume after cloning. Signed-off-by: Madhu Rajanna --- internal/rbd/controllerserver.go | 46 +++----------------------------- 1 file changed, 3 insertions(+), 43 deletions(-) diff --git a/internal/rbd/controllerserver.go b/internal/rbd/controllerserver.go index 87819ab79..7e14b27e1 100644 --- a/internal/rbd/controllerserver.go +++ b/internal/rbd/controllerserver.go @@ -192,48 +192,8 @@ func getGRPCErrorForCreateVolume(err error) error { return status.Error(codes.Internal, err.Error()) } -// validateRequestedVolumeSize validates the request volume size with the -// source snapshot or volume size, if there is a size mismatches it returns an error. -func validateRequestedVolumeSize(rbdVol, parentVol *rbdVolume, rbdSnap *rbdSnapshot, cr *util.Credentials) error { - if rbdSnap != nil { - vol := generateVolFromSnap(rbdSnap) - err := vol.Connect(cr) - if err != nil { - return status.Error(codes.Internal, err.Error()) - } - defer vol.Destroy() - - err = vol.getImageInfo() - if err != nil { - return status.Error(codes.Internal, err.Error()) - } - if rbdVol.VolSize != vol.VolSize { - return status.Errorf( - codes.InvalidArgument, - "size mismatches, requested volume size %d and source snapshot size %d", - rbdVol.VolSize, - vol.VolSize) - } - } - if parentVol != nil { - if rbdVol.VolSize != parentVol.VolSize { - return status.Errorf( - codes.InvalidArgument, - "size mismatches, requested volume size %d and source volume size %d", - rbdVol.VolSize, - parentVol.VolSize) - } - } - - return nil -} - -func checkValidCreateVolumeRequest(rbdVol, parentVol *rbdVolume, rbdSnap *rbdSnapshot, cr *util.Credentials) error { - err := validateRequestedVolumeSize(rbdVol, parentVol, rbdSnap, cr) - if err != nil { - return err - } - +func checkValidCreateVolumeRequest(rbdVol, parentVol *rbdVolume, rbdSnap *rbdSnapshot) error { + var err error switch { case rbdSnap != nil: err = rbdSnap.isCompatibleEncryption(&rbdVol.rbdImage) @@ -309,7 +269,7 @@ func (cs *ControllerServer) CreateVolume( return cs.repairExistingVolume(ctx, req, cr, rbdVol, parentVol, rbdSnap) } - err = checkValidCreateVolumeRequest(rbdVol, parentVol, rbdSnap, cr) + err = checkValidCreateVolumeRequest(rbdVol, parentVol, rbdSnap) if err != nil { return nil, err }