mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-18 11:00:25 +00:00
cephfs: address golangci-lint issues
address golangci-lint issues in cephfs related code. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
parent
6961b103b8
commit
a362ef6bd4
@ -183,13 +183,13 @@ func (cs *ControllerServer) checkContentSource(
|
|||||||
req *csi.CreateVolumeRequest,
|
req *csi.CreateVolumeRequest,
|
||||||
cr *util.Credentials,
|
cr *util.Credentials,
|
||||||
) (*store.VolumeOptions, *store.VolumeIdentifier, *store.SnapshotIdentifier, error) {
|
) (*store.VolumeOptions, *store.VolumeIdentifier, *store.SnapshotIdentifier, error) {
|
||||||
if req.VolumeContentSource == nil {
|
if req.GetVolumeContentSource() == nil {
|
||||||
return nil, nil, nil, nil
|
return nil, nil, nil, nil
|
||||||
}
|
}
|
||||||
volumeSource := req.VolumeContentSource
|
volumeSource := req.GetVolumeContentSource()
|
||||||
switch volumeSource.Type.(type) {
|
switch volumeSource.GetType().(type) {
|
||||||
case *csi.VolumeContentSource_Snapshot:
|
case *csi.VolumeContentSource_Snapshot:
|
||||||
snapshotID := req.VolumeContentSource.GetSnapshot().GetSnapshotId()
|
snapshotID := req.GetVolumeContentSource().GetSnapshot().GetSnapshotId()
|
||||||
volOpt, _, sid, err := store.NewSnapshotOptionsFromID(ctx, snapshotID, cr,
|
volOpt, _, sid, err := store.NewSnapshotOptionsFromID(ctx, snapshotID, cr,
|
||||||
req.GetSecrets(), cs.ClusterName, cs.SetMetadata)
|
req.GetSecrets(), cs.ClusterName, cs.SetMetadata)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -203,9 +203,9 @@ func (cs *ControllerServer) checkContentSource(
|
|||||||
return volOpt, nil, sid, nil
|
return volOpt, nil, sid, nil
|
||||||
case *csi.VolumeContentSource_Volume:
|
case *csi.VolumeContentSource_Volume:
|
||||||
// Find the volume using the provided VolumeID
|
// Find the volume using the provided VolumeID
|
||||||
volID := req.VolumeContentSource.GetVolume().GetVolumeId()
|
volID := req.GetVolumeContentSource().GetVolume().GetVolumeId()
|
||||||
parentVol, pvID, err := store.NewVolumeOptionsFromVolID(ctx,
|
parentVol, pvID, err := store.NewVolumeOptionsFromVolID(ctx,
|
||||||
volID, nil, req.Secrets, cs.ClusterName, cs.SetMetadata)
|
volID, nil, req.GetSecrets(), cs.ClusterName, cs.SetMetadata)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !errors.Is(err, cerrors.ErrVolumeNotFound) {
|
if !errors.Is(err, cerrors.ErrVolumeNotFound) {
|
||||||
return nil, nil, nil, status.Error(codes.NotFound, err.Error())
|
return nil, nil, nil, status.Error(codes.NotFound, err.Error())
|
||||||
@ -342,7 +342,7 @@ func (cs *ControllerServer) CreateVolume(
|
|||||||
// As we are trying to create RWX volume from backing snapshot, we need to
|
// As we are trying to create RWX volume from backing snapshot, we need to
|
||||||
// retrieve the snapshot details from the backing snapshot and create a
|
// retrieve the snapshot details from the backing snapshot and create a
|
||||||
// subvolume clone from the snapshot.
|
// subvolume clone from the snapshot.
|
||||||
if parentVol != nil && parentVol.BackingSnapshot && !store.IsVolumeCreateRO(req.VolumeCapabilities) {
|
if parentVol != nil && parentVol.BackingSnapshot && !store.IsVolumeCreateRO(req.GetVolumeCapabilities()) {
|
||||||
// unset pvID as we dont have real subvolume for the parent volumeID as its a backing snapshot
|
// unset pvID as we dont have real subvolume for the parent volumeID as its a backing snapshot
|
||||||
pvID = nil
|
pvID = nil
|
||||||
parentVol, _, sID, err = store.NewSnapshotOptionsFromID(ctx, parentVol.BackingSnapshotID, cr,
|
parentVol, _, sID, err = store.NewSnapshotOptionsFromID(ctx, parentVol.BackingSnapshotID, cr,
|
||||||
@ -674,7 +674,7 @@ func (cs *ControllerServer) ValidateVolumeCapabilities(
|
|||||||
req *csi.ValidateVolumeCapabilitiesRequest,
|
req *csi.ValidateVolumeCapabilitiesRequest,
|
||||||
) (*csi.ValidateVolumeCapabilitiesResponse, error) {
|
) (*csi.ValidateVolumeCapabilitiesResponse, error) {
|
||||||
// Cephfs doesn't support Block volume
|
// Cephfs doesn't support Block volume
|
||||||
for _, capability := range req.VolumeCapabilities {
|
for _, capability := range req.GetVolumeCapabilities() {
|
||||||
if capability.GetBlock() != nil {
|
if capability.GetBlock() != nil {
|
||||||
return &csi.ValidateVolumeCapabilitiesResponse{Message: ""}, nil
|
return &csi.ValidateVolumeCapabilitiesResponse{Message: ""}, nil
|
||||||
}
|
}
|
||||||
@ -682,7 +682,7 @@ func (cs *ControllerServer) ValidateVolumeCapabilities(
|
|||||||
|
|
||||||
return &csi.ValidateVolumeCapabilitiesResponse{
|
return &csi.ValidateVolumeCapabilitiesResponse{
|
||||||
Confirmed: &csi.ValidateVolumeCapabilitiesResponse_Confirmed{
|
Confirmed: &csi.ValidateVolumeCapabilitiesResponse_Confirmed{
|
||||||
VolumeCapabilities: req.VolumeCapabilities,
|
VolumeCapabilities: req.GetVolumeCapabilities(),
|
||||||
},
|
},
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
@ -970,10 +970,10 @@ func (cs *ControllerServer) validateSnapshotReq(ctx context.Context, req *csi.Cr
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check sanity of request Snapshot Name, Source Volume Id
|
// Check sanity of request Snapshot Name, Source Volume Id
|
||||||
if req.Name == "" {
|
if req.GetName() == "" {
|
||||||
return status.Error(codes.NotFound, "snapshot Name cannot be empty")
|
return status.Error(codes.NotFound, "snapshot Name cannot be empty")
|
||||||
}
|
}
|
||||||
if req.SourceVolumeId == "" {
|
if req.GetSourceVolumeId() == "" {
|
||||||
return status.Error(codes.NotFound, "source Volume ID cannot be empty")
|
return status.Error(codes.NotFound, "source Volume ID cannot be empty")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,13 +17,12 @@ limitations under the License.
|
|||||||
package core
|
package core
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
cerrors "github.com/ceph/ceph-csi/internal/cephfs/errors"
|
cerrors "github.com/ceph/ceph-csi/internal/cephfs/errors"
|
||||||
|
|
||||||
fsa "github.com/ceph/go-ceph/cephfs/admin"
|
fsa "github.com/ceph/go-ceph/cephfs/admin"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestCloneStateToError(t *testing.T) {
|
func TestCloneStateToError(t *testing.T) {
|
||||||
@ -36,6 +35,6 @@ func TestCloneStateToError(t *testing.T) {
|
|||||||
errorState[cephFSCloneState{fsa.CloneFailed, "", ""}] = cerrors.ErrCloneFailed
|
errorState[cephFSCloneState{fsa.CloneFailed, "", ""}] = cerrors.ErrCloneFailed
|
||||||
|
|
||||||
for state, err := range errorState {
|
for state, err := range errorState {
|
||||||
assert.True(t, errors.Is(state.ToError(), err))
|
require.ErrorIs(t, state.ToError(), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,11 +29,11 @@ import (
|
|||||||
// that interacts with CephFS filesystem API's.
|
// that interacts with CephFS filesystem API's.
|
||||||
type FileSystem interface {
|
type FileSystem interface {
|
||||||
// GetFscID returns the ID of the filesystem with the given name.
|
// GetFscID returns the ID of the filesystem with the given name.
|
||||||
GetFscID(context.Context, string) (int64, error)
|
GetFscID(ctx context.Context, fsName string) (int64, error)
|
||||||
// GetMetadataPool returns the metadata pool name of the filesystem with the given name.
|
// GetMetadataPool returns the metadata pool name of the filesystem with the given name.
|
||||||
GetMetadataPool(context.Context, string) (string, error)
|
GetMetadataPool(ctx context.Context, fsName string) (string, error)
|
||||||
// GetFsName returns the name of the filesystem with the given ID.
|
// GetFsName returns the name of the filesystem with the given ID.
|
||||||
GetFsName(context.Context, int64) (string, error)
|
GetFsName(ctx context.Context, fsID int64) (string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// fileSystem is the implementation of FileSystem interface.
|
// fileSystem is the implementation of FileSystem interface.
|
||||||
|
@ -20,7 +20,6 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"github.com/ceph/ceph-csi/internal/util"
|
"github.com/ceph/ceph-csi/internal/util"
|
||||||
@ -44,7 +43,7 @@ func TestSetupCSIAddonsServer(t *testing.T) {
|
|||||||
|
|
||||||
// verify the socket file has been created
|
// verify the socket file has been created
|
||||||
_, err = os.Stat(tmpDir + "/csi-addons.sock")
|
_, err = os.Stat(tmpDir + "/csi-addons.sock")
|
||||||
assert.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// stop the gRPC server
|
// stop the gRPC server
|
||||||
drv.cas.Stop()
|
drv.cas.Stop()
|
||||||
|
@ -180,7 +180,7 @@ func (cs *ControllerServer) CreateVolumeGroupSnapshot(
|
|||||||
|
|
||||||
for _, r := range *resp {
|
for _, r := range *resp {
|
||||||
r.Snapshot.GroupSnapshotId = vgs.VolumeGroupSnapshotID
|
r.Snapshot.GroupSnapshotId = vgs.VolumeGroupSnapshotID
|
||||||
response.GroupSnapshot.Snapshots = append(response.GroupSnapshot.Snapshots, r.Snapshot)
|
response.GroupSnapshot.Snapshots = append(response.GroupSnapshot.Snapshots, r.GetSnapshot())
|
||||||
}
|
}
|
||||||
|
|
||||||
return response, nil
|
return response, nil
|
||||||
@ -293,7 +293,7 @@ func (cs *ControllerServer) releaseQuiesceAndGetVolumeGroupSnapshotResponse(
|
|||||||
|
|
||||||
for _, r := range snapshotResponses {
|
for _, r := range snapshotResponses {
|
||||||
r.Snapshot.GroupSnapshotId = vgs.VolumeGroupSnapshotID
|
r.Snapshot.GroupSnapshotId = vgs.VolumeGroupSnapshotID
|
||||||
response.GroupSnapshot.Snapshots = append(response.GroupSnapshot.Snapshots, r.Snapshot)
|
response.GroupSnapshot.Snapshots = append(response.GroupSnapshot.Snapshots, r.GetSnapshot())
|
||||||
}
|
}
|
||||||
|
|
||||||
return response, nil
|
return response, nil
|
||||||
@ -703,7 +703,7 @@ func (cs *ControllerServer) DeleteVolumeGroupSnapshot(ctx context.Context,
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
groupSnapshotID := req.GroupSnapshotId
|
groupSnapshotID := req.GetGroupSnapshotId()
|
||||||
// Existence and conflict checks
|
// Existence and conflict checks
|
||||||
if acquired := cs.VolumeGroupLocks.TryAcquire(groupSnapshotID); !acquired {
|
if acquired := cs.VolumeGroupLocks.TryAcquire(groupSnapshotID); !acquired {
|
||||||
log.ErrorLog(ctx, util.VolumeOperationAlreadyExistsFmt, groupSnapshotID)
|
log.ErrorLog(ctx, util.VolumeOperationAlreadyExistsFmt, groupSnapshotID)
|
||||||
@ -718,7 +718,7 @@ func (cs *ControllerServer) DeleteVolumeGroupSnapshot(ctx context.Context,
|
|||||||
}
|
}
|
||||||
defer cr.DeleteCredentials()
|
defer cr.DeleteCredentials()
|
||||||
|
|
||||||
vgo, vgsi, err := store.NewVolumeGroupOptionsFromID(ctx, req.GroupSnapshotId, cr)
|
vgo, vgsi, err := store.NewVolumeGroupOptionsFromID(ctx, req.GetGroupSnapshotId(), cr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.ErrorLog(ctx, "failed to get volume group options: %v", err)
|
log.ErrorLog(ctx, "failed to get volume group options: %v", err)
|
||||||
err = extractDeleteVolumeGroupError(err)
|
err = extractDeleteVolumeGroupError(err)
|
||||||
|
@ -81,7 +81,7 @@ func (m *kernelMounter) mountKernel(
|
|||||||
optionsStr := fmt.Sprintf("name=%s,secretfile=%s", cr.ID, cr.KeyFile)
|
optionsStr := fmt.Sprintf("name=%s,secretfile=%s", cr.ID, cr.KeyFile)
|
||||||
mdsNamespace := ""
|
mdsNamespace := ""
|
||||||
if volOptions.FsName != "" {
|
if volOptions.FsName != "" {
|
||||||
mdsNamespace = fmt.Sprintf("mds_namespace=%s", volOptions.FsName)
|
mdsNamespace = "mds_namespace=" + volOptions.FsName
|
||||||
}
|
}
|
||||||
optionsStr = util.MountOptionsAdd(optionsStr, mdsNamespace, volOptions.KernelMountOptions, netDev)
|
optionsStr = util.MountOptionsAdd(optionsStr, mdsNamespace, volOptions.KernelMountOptions, netDev)
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ package mounter
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/require"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestFilesystemSupported(t *testing.T) {
|
func TestFilesystemSupported(t *testing.T) {
|
||||||
@ -31,8 +31,8 @@ func TestFilesystemSupported(t *testing.T) {
|
|||||||
|
|
||||||
// "proc" is always a supported filesystem, we detect supported
|
// "proc" is always a supported filesystem, we detect supported
|
||||||
// filesystems by reading from it
|
// filesystems by reading from it
|
||||||
assert.True(t, filesystemSupported("proc"))
|
require.True(t, filesystemSupported("proc"))
|
||||||
|
|
||||||
// "nonefs" is a made-up name, and does not exist
|
// "nonefs" is a made-up name, and does not exist
|
||||||
assert.False(t, filesystemSupported("nonefs"))
|
require.False(t, filesystemSupported("nonefs"))
|
||||||
}
|
}
|
||||||
|
@ -110,8 +110,7 @@ func (ns *NodeServer) getVolumeOptions(
|
|||||||
func validateSnapshotBackedVolCapability(volCap *csi.VolumeCapability) error {
|
func validateSnapshotBackedVolCapability(volCap *csi.VolumeCapability) error {
|
||||||
// Snapshot-backed volumes may be used with read-only volume access modes only.
|
// Snapshot-backed volumes may be used with read-only volume access modes only.
|
||||||
|
|
||||||
mode := volCap.AccessMode.Mode
|
mode := volCap.GetAccessMode().GetMode()
|
||||||
|
|
||||||
if mode != csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY &&
|
if mode != csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY &&
|
||||||
mode != csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY {
|
mode != csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY {
|
||||||
return status.Error(codes.InvalidArgument,
|
return status.Error(codes.InvalidArgument,
|
||||||
@ -352,7 +351,6 @@ func (ns *NodeServer) mount(
|
|||||||
true,
|
true,
|
||||||
[]string{"bind", "_netdev"},
|
[]string{"bind", "_netdev"},
|
||||||
)
|
)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.ErrorLog(ctx,
|
log.ErrorLog(ctx,
|
||||||
"failed to bind mount snapshot root %s: %v", absoluteSnapshotRoot, err)
|
"failed to bind mount snapshot root %s: %v", absoluteSnapshotRoot, err)
|
||||||
@ -813,9 +811,9 @@ func (ns *NodeServer) setMountOptions(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const readOnly = "ro"
|
const readOnly = "ro"
|
||||||
|
mode := volCap.GetAccessMode().GetMode()
|
||||||
if volCap.AccessMode.Mode == csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY ||
|
if mode == csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY ||
|
||||||
volCap.AccessMode.Mode == csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY {
|
mode == csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY {
|
||||||
switch mnt.(type) {
|
switch mnt.(type) {
|
||||||
case *mounter.FuseMounter:
|
case *mounter.FuseMounter:
|
||||||
if !csicommon.MountOptionContains(strings.Split(volOptions.FuseMountOptions, ","), readOnly) {
|
if !csicommon.MountOptionContains(strings.Split(volOptions.FuseMountOptions, ","), readOnly) {
|
||||||
|
@ -18,7 +18,6 @@ package store
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
|
|
||||||
fsutil "github.com/ceph/ceph-csi/internal/cephfs/util"
|
fsutil "github.com/ceph/ceph-csi/internal/cephfs/util"
|
||||||
"github.com/ceph/ceph-csi/internal/util/log"
|
"github.com/ceph/ceph-csi/internal/util/log"
|
||||||
@ -28,7 +27,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func fmtBackingSnapshotReftrackerName(backingSnapID string) string {
|
func fmtBackingSnapshotReftrackerName(backingSnapID string) string {
|
||||||
return fmt.Sprintf("rt-backingsnapshot-%s", backingSnapID)
|
return "rt-backingsnapshot-" + backingSnapID
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddSnapshotBackedVolumeRef(
|
func AddSnapshotBackedVolumeRef(
|
||||||
|
@ -168,7 +168,7 @@ func extractMounter(dest *string, options map[string]string) error {
|
|||||||
func GetClusterInformation(options map[string]string) (*cephcsi.ClusterInfo, error) {
|
func GetClusterInformation(options map[string]string) (*cephcsi.ClusterInfo, error) {
|
||||||
clusterID, ok := options["clusterID"]
|
clusterID, ok := options["clusterID"]
|
||||||
if !ok {
|
if !ok {
|
||||||
err := fmt.Errorf("clusterID must be set")
|
err := errors.New("clusterID must be set")
|
||||||
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -344,15 +344,15 @@ func NewVolumeOptions(
|
|||||||
// IsShallowVolumeSupported returns true only for ReadOnly volume requests
|
// IsShallowVolumeSupported returns true only for ReadOnly volume requests
|
||||||
// with datasource as snapshot.
|
// with datasource as snapshot.
|
||||||
func IsShallowVolumeSupported(req *csi.CreateVolumeRequest) bool {
|
func IsShallowVolumeSupported(req *csi.CreateVolumeRequest) bool {
|
||||||
isRO := IsVolumeCreateRO(req.VolumeCapabilities)
|
isRO := IsVolumeCreateRO(req.GetVolumeCapabilities())
|
||||||
|
|
||||||
return isRO && (req.GetVolumeContentSource() != nil && req.GetVolumeContentSource().GetSnapshot() != nil)
|
return isRO && (req.GetVolumeContentSource() != nil && req.GetVolumeContentSource().GetSnapshot() != nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsVolumeCreateRO(caps []*csi.VolumeCapability) bool {
|
func IsVolumeCreateRO(caps []*csi.VolumeCapability) bool {
|
||||||
for _, cap := range caps {
|
for _, cap := range caps {
|
||||||
if cap.AccessMode != nil {
|
if cap.GetAccessMode() != nil {
|
||||||
switch cap.AccessMode.Mode { //nolint:exhaustive // only check what we want
|
switch cap.GetAccessMode().GetMode() { //nolint:exhaustive // only check what we want
|
||||||
case csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY,
|
case csi.VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY,
|
||||||
csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY:
|
csi.VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY:
|
||||||
return true
|
return true
|
||||||
@ -612,7 +612,7 @@ func NewVolumeOptionsFromMonitorList(
|
|||||||
// check if there are mon values in secret and if so override option retrieved monitors from
|
// check if there are mon values in secret and if so override option retrieved monitors from
|
||||||
// monitors in the secret
|
// monitors in the secret
|
||||||
mon, err := util.GetMonValFromSecret(secrets)
|
mon, err := util.GetMonValFromSecret(secrets)
|
||||||
if err == nil && len(mon) > 0 {
|
if err == nil && mon != "" {
|
||||||
opts.Monitors = mon
|
opts.Monitors = mon
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,11 +54,11 @@ func (cs *ControllerServer) validateCreateVolumeRequest(req *csi.CreateVolumeReq
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if req.VolumeContentSource != nil {
|
if req.GetVolumeContentSource() != nil {
|
||||||
volumeSource := req.VolumeContentSource
|
volumeSource := req.GetVolumeContentSource()
|
||||||
switch volumeSource.Type.(type) {
|
switch volumeSource.GetType().(type) {
|
||||||
case *csi.VolumeContentSource_Snapshot:
|
case *csi.VolumeContentSource_Snapshot:
|
||||||
snapshot := req.VolumeContentSource.GetSnapshot()
|
snapshot := req.GetVolumeContentSource().GetSnapshot()
|
||||||
// CSI spec requires returning NOT_FOUND when the volumeSource is missing/incorrect.
|
// CSI spec requires returning NOT_FOUND when the volumeSource is missing/incorrect.
|
||||||
if snapshot == nil {
|
if snapshot == nil {
|
||||||
return status.Error(codes.NotFound, "volume Snapshot cannot be empty")
|
return status.Error(codes.NotFound, "volume Snapshot cannot be empty")
|
||||||
@ -68,7 +68,7 @@ func (cs *ControllerServer) validateCreateVolumeRequest(req *csi.CreateVolumeReq
|
|||||||
}
|
}
|
||||||
case *csi.VolumeContentSource_Volume:
|
case *csi.VolumeContentSource_Volume:
|
||||||
// CSI spec requires returning NOT_FOUND when the volumeSource is missing/incorrect.
|
// CSI spec requires returning NOT_FOUND when the volumeSource is missing/incorrect.
|
||||||
vol := req.VolumeContentSource.GetVolume()
|
vol := req.GetVolumeContentSource().GetVolume()
|
||||||
if vol == nil {
|
if vol == nil {
|
||||||
return status.Error(codes.NotFound, "volume cannot be empty")
|
return status.Error(codes.NotFound, "volume cannot be empty")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user