fix: ValidateVolumeCapabilities

This commit is contained in:
andyzhangx 2022-01-07 03:57:31 +00:00
parent f9faadf9c2
commit 9b3e1cd174
3 changed files with 28 additions and 32 deletions

View File

@ -12,7 +12,7 @@ jobs:
- name: Run linter - name: Run linter
uses: golangci/golangci-lint-action@v2 uses: golangci/golangci-lint-action@v2
with: with:
version: v1.29 version: v1.31
args: -E=gofmt,deadcode,unused,varcheck,ineffassign,golint,misspell --timeout=30m0s args: -E=gofmt,deadcode,unused,varcheck,ineffassign,golint,misspell --timeout=30m0s
verify-helm: verify-helm:
name: Verify Helm name: Verify Helm

View File

@ -178,8 +178,12 @@ func (cs *ControllerServer) ValidateVolumeCapabilities(ctx context.Context, req
return nil, status.Error(codes.InvalidArgument, "Volume capabilities missing in request") return nil, status.Error(codes.InvalidArgument, "Volume capabilities missing in request")
} }
// supports all AccessModes, no need to check capabilities here return &csi.ValidateVolumeCapabilitiesResponse{
return &csi.ValidateVolumeCapabilitiesResponse{Message: ""}, nil Confirmed: &csi.ValidateVolumeCapabilitiesResponse_Confirmed{
VolumeCapabilities: req.GetVolumeCapabilities(),
},
Message: "",
}, nil
} }
func (cs *ControllerServer) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error) { func (cs *ControllerServer) ListVolumes(ctx context.Context, req *csi.ListVolumesRequest) (*csi.ListVolumesResponse, error) {

View File

@ -294,6 +294,17 @@ func TestDeleteVolume(t *testing.T) {
} }
func TestValidateVolumeCapabilities(t *testing.T) { func TestValidateVolumeCapabilities(t *testing.T) {
capabilities := []*csi.VolumeCapability{
{
AccessType: &csi.VolumeCapability_Mount{
Mount: &csi.VolumeCapability_MountVolume{},
},
AccessMode: &csi.VolumeCapability_AccessMode{
Mode: csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER,
},
},
}
cases := []struct { cases := []struct {
desc string desc string
req *csi.ValidateVolumeCapabilitiesRequest req *csi.ValidateVolumeCapabilitiesRequest
@ -315,37 +326,23 @@ func TestValidateVolumeCapabilities(t *testing.T) {
{ {
desc: "valid request", desc: "valid request",
req: &csi.ValidateVolumeCapabilitiesRequest{ req: &csi.ValidateVolumeCapabilitiesRequest{
VolumeId: testVolumeID, VolumeId: testVolumeID,
VolumeCapabilities: []*csi.VolumeCapability{ VolumeCapabilities: capabilities,
{ },
AccessType: &csi.VolumeCapability_Mount{ resp: &csi.ValidateVolumeCapabilitiesResponse{
Mount: &csi.VolumeCapability_MountVolume{}, Confirmed: &csi.ValidateVolumeCapabilitiesResponse_Confirmed{VolumeCapabilities: capabilities},
},
AccessMode: &csi.VolumeCapability_AccessMode{
Mode: csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER,
},
},
},
}, },
resp: &csi.ValidateVolumeCapabilitiesResponse{Message: ""},
expectedErr: nil, expectedErr: nil,
}, },
{ {
desc: "valid request with newTestVolumeID", desc: "valid request with newTestVolumeID",
req: &csi.ValidateVolumeCapabilitiesRequest{ req: &csi.ValidateVolumeCapabilitiesRequest{
VolumeId: newTestVolumeID, VolumeId: newTestVolumeID,
VolumeCapabilities: []*csi.VolumeCapability{ VolumeCapabilities: capabilities,
{ },
AccessType: &csi.VolumeCapability_Mount{ resp: &csi.ValidateVolumeCapabilitiesResponse{
Mount: &csi.VolumeCapability_MountVolume{}, Confirmed: &csi.ValidateVolumeCapabilitiesResponse_Confirmed{VolumeCapabilities: capabilities},
},
AccessMode: &csi.VolumeCapability_AccessMode{
Mode: csi.VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER,
},
},
},
}, },
resp: &csi.ValidateVolumeCapabilitiesResponse{Message: ""},
expectedErr: nil, expectedErr: nil,
}, },
} }
@ -353,13 +350,8 @@ func TestValidateVolumeCapabilities(t *testing.T) {
for _, test := range cases { for _, test := range cases {
test := test //pin test := test //pin
t.Run(test.desc, func(t *testing.T) { t.Run(test.desc, func(t *testing.T) {
// Setup
cs := initTestController(t) cs := initTestController(t)
// Run
resp, err := cs.ValidateVolumeCapabilities(context.TODO(), test.req) resp, err := cs.ValidateVolumeCapabilities(context.TODO(), test.req)
// Verify
if test.expectedErr == nil && err != nil { if test.expectedErr == nil && err != nil {
t.Errorf("test %q failed: %v", test.desc, err) t.Errorf("test %q failed: %v", test.desc, err)
} }