mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-17 20:00:23 +00:00
rbd: return error if fetching cluster id fails
if we are not able to fetch the cluster-ID from the createSnapshot request and also if we are not able to get the monitor information from the cluster-ID return error instead of using the parent image information. Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
parent
9ed0811422
commit
2458ec6573
@ -726,7 +726,10 @@ func (cs *ControllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS
|
|||||||
return nil, status.Errorf(codes.InvalidArgument, "volume(%s) has not snapshot feature(layering)", req.GetSourceVolumeId())
|
return nil, status.Errorf(codes.InvalidArgument, "volume(%s) has not snapshot feature(layering)", req.GetSourceVolumeId())
|
||||||
}
|
}
|
||||||
|
|
||||||
rbdSnap := genSnapFromOptions(ctx, rbdVol, req.GetParameters())
|
rbdSnap, err := genSnapFromOptions(ctx, rbdVol, req.GetParameters())
|
||||||
|
if err != nil {
|
||||||
|
return nil, status.Error(codes.Internal, err.Error())
|
||||||
|
}
|
||||||
rbdSnap.RbdImageName = rbdVol.RbdImageName
|
rbdSnap.RbdImageName = rbdVol.RbdImageName
|
||||||
rbdSnap.SizeBytes = rbdVol.VolSize
|
rbdSnap.SizeBytes = rbdVol.VolSize
|
||||||
rbdSnap.SourceVolumeID = req.GetSourceVolumeId()
|
rbdSnap.SourceVolumeID = req.GetSourceVolumeId()
|
||||||
|
@ -750,7 +750,7 @@ func genVolFromVolumeOptions(ctx context.Context, volOptions, credentials map[st
|
|||||||
return rbdVol, nil
|
return rbdVol, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func genSnapFromOptions(ctx context.Context, rbdVol *rbdVolume, snapOptions map[string]string) *rbdSnapshot {
|
func genSnapFromOptions(ctx context.Context, rbdVol *rbdVolume, snapOptions map[string]string) (*rbdSnapshot, error) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
rbdSnap := &rbdSnapshot{}
|
rbdSnap := &rbdSnapshot{}
|
||||||
@ -759,15 +759,14 @@ func genSnapFromOptions(ctx context.Context, rbdVol *rbdVolume, snapOptions map[
|
|||||||
|
|
||||||
rbdSnap.Monitors, rbdSnap.ClusterID, err = getMonsAndClusterID(ctx, snapOptions)
|
rbdSnap.Monitors, rbdSnap.ClusterID, err = getMonsAndClusterID(ctx, snapOptions)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
rbdSnap.Monitors = rbdVol.Monitors
|
return nil, err
|
||||||
rbdSnap.ClusterID = rbdVol.ClusterID
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if namePrefix, ok := snapOptions["snapshotNamePrefix"]; ok {
|
if namePrefix, ok := snapOptions["snapshotNamePrefix"]; ok {
|
||||||
rbdSnap.NamePrefix = namePrefix
|
rbdSnap.NamePrefix = namePrefix
|
||||||
}
|
}
|
||||||
|
|
||||||
return rbdSnap
|
return rbdSnap, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// hasSnapshotFeature checks if Layering is enabled for this image.
|
// hasSnapshotFeature checks if Layering is enabled for this image.
|
||||||
|
Loading…
Reference in New Issue
Block a user