Skip to content

Commit 014c111

Browse files
committed
chore: refine VolumeCapabilities check
1 parent b643a0e commit 014c111

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

pkg/blob/controllerserver.go

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,8 @@ func (d *Driver) CreateVolume(ctx context.Context, req *csi.CreateVolumeRequest)
5151
return nil, status.Error(codes.InvalidArgument, "CreateVolume Name must be provided")
5252
}
5353

54-
volumeCapabilities := req.GetVolumeCapabilities()
55-
if len(volumeCapabilities) == 0 {
56-
return nil, status.Error(codes.InvalidArgument, "CreateVolume Volume capabilities must be provided")
57-
}
58-
for _, c := range volumeCapabilities {
59-
if c.GetBlock() != nil {
60-
return nil, status.Error(codes.InvalidArgument, "Block volume capability not supported")
61-
}
54+
if err := isValidVolumeCapabilities(req.GetVolumeCapabilities()); err != nil {
55+
return nil, status.Error(codes.InvalidArgument, err.Error())
6256
}
6357

6458
if acquired := d.volumeLocks.TryAcquire(volName); !acquired {
@@ -408,14 +402,8 @@ func (d *Driver) ValidateVolumeCapabilities(ctx context.Context, req *csi.Valida
408402
if len(volumeID) == 0 {
409403
return nil, status.Error(codes.InvalidArgument, "Volume ID missing in request")
410404
}
411-
volumeCapabilities := req.GetVolumeCapabilities()
412-
if len(volumeCapabilities) == 0 {
413-
return nil, status.Error(codes.InvalidArgument, "Volume capabilities missing in request")
414-
}
415-
for _, c := range volumeCapabilities {
416-
if c.GetBlock() != nil {
417-
return nil, status.Error(codes.InvalidArgument, "Block volume capability not supported")
418-
}
405+
if err := isValidVolumeCapabilities(req.GetVolumeCapabilities()); err != nil {
406+
return nil, status.Error(codes.InvalidArgument, err.Error())
419407
}
420408

421409
resourceGroupName, accountName, containerName, err := GetContainerInfo(volumeID)
@@ -535,3 +523,16 @@ func (d *Driver) ControllerExpandVolume(ctx context.Context, req *csi.Controller
535523

536524
return &csi.ControllerExpandVolumeResponse{CapacityBytes: req.GetCapacityRange().GetRequiredBytes()}, nil
537525
}
526+
527+
// isValidVolumeCapabilities validates the given VolumeCapability array is valid
528+
func isValidVolumeCapabilities(volCaps []*csi.VolumeCapability) error {
529+
if len(volCaps) == 0 {
530+
return fmt.Errorf("volume capabilities missing in request")
531+
}
532+
for _, c := range volCaps {
533+
if c.GetBlock() != nil {
534+
return fmt.Errorf("block volume capability not supported")
535+
}
536+
}
537+
return nil
538+
}

pkg/blob/controllerserver_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ func TestCreateVolume(t *testing.T) {
118118
controllerServiceCapability,
119119
}
120120
_, err := d.CreateVolume(context.Background(), req)
121-
expectedErr := status.Error(codes.InvalidArgument, "CreateVolume Volume capabilities must be provided")
121+
expectedErr := status.Error(codes.InvalidArgument, "volume capabilities missing in request")
122122
if !reflect.DeepEqual(err, expectedErr) {
123123
t.Errorf("actualErr: (%v), expectedErr: (%v)", err, expectedErr)
124124
}
@@ -136,7 +136,7 @@ func TestCreateVolume(t *testing.T) {
136136
controllerServiceCapability,
137137
}
138138
_, err := d.CreateVolume(context.Background(), req)
139-
expectedErr := status.Error(codes.InvalidArgument, "Block volume capability not supported")
139+
expectedErr := status.Error(codes.InvalidArgument, "block volume capability not supported")
140140
if !reflect.DeepEqual(err, expectedErr) {
141141
t.Errorf("actualErr: (%v), expectedErr: (%v)", err, expectedErr)
142142
}
@@ -459,7 +459,7 @@ func TestValidateVolumeCapabilities(t *testing.T) {
459459
VolumeId: "unit-test",
460460
}
461461
_, err := d.ValidateVolumeCapabilities(context.Background(), req)
462-
expectedErr := status.Error(codes.InvalidArgument, "Volume capabilities missing in request")
462+
expectedErr := status.Error(codes.InvalidArgument, "volume capabilities missing in request")
463463
if !reflect.DeepEqual(err, expectedErr) {
464464
t.Errorf("actualErr: (%v), expectedErr: (%v)", err, expectedErr)
465465
}
@@ -474,7 +474,7 @@ func TestValidateVolumeCapabilities(t *testing.T) {
474474
VolumeCapabilities: blockVolumeCapabilities,
475475
}
476476
_, err := d.ValidateVolumeCapabilities(context.Background(), req)
477-
expectedErr := status.Error(codes.InvalidArgument, "Block volume capability not supported")
477+
expectedErr := status.Error(codes.InvalidArgument, "block volume capability not supported")
478478
if !reflect.DeepEqual(err, expectedErr) {
479479
t.Errorf("actualErr: (%v), expectedErr: (%v)", err, expectedErr)
480480
}

0 commit comments

Comments
 (0)