mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-17 20:00:23 +00:00
cleanup: use errors.As() for error type checks
Replaces some remaining old-style error type checks with errors.As() Signed-off-by: Sven Anderson <sven@redhat.com>
This commit is contained in:
parent
310c36e319
commit
13f291dfc6
@ -223,7 +223,8 @@ func (cs *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
|
|||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrFlattenInProgress); !ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if !errors.As(err, &efip) {
|
||||||
errDefer := undoVolReservation(ctx, rbdVol, cr)
|
errDefer := undoVolReservation(ctx, rbdVol, cr)
|
||||||
if errDefer != nil {
|
if errDefer != nil {
|
||||||
klog.Warningf(util.Log(ctx, "failed undoing reservation of volume: %s (%s)"), req.GetName(), errDefer)
|
klog.Warningf(util.Log(ctx, "failed undoing reservation of volume: %s (%s)"), req.GetName(), errDefer)
|
||||||
@ -234,7 +235,8 @@ func (cs *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
|
|||||||
|
|
||||||
err = cs.createBackingImage(ctx, cr, rbdVol, rbdSnap)
|
err = cs.createBackingImage(ctx, cr, rbdVol, rbdSnap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrFlattenInProgress); ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if errors.As(err, &efip) {
|
||||||
return nil, status.Error(codes.Aborted, err.Error())
|
return nil, status.Error(codes.Aborted, err.Error())
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -268,7 +270,8 @@ func (cs *ControllerServer) CreateVolume(ctx context.Context, req *csi.CreateVol
|
|||||||
func checkFlatten(ctx context.Context, rbdVol *rbdVolume, cr *util.Credentials) error {
|
func checkFlatten(ctx context.Context, rbdVol *rbdVolume, cr *util.Credentials) error {
|
||||||
err := rbdVol.flattenRbdImage(ctx, cr, false)
|
err := rbdVol.flattenRbdImage(ctx, cr, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrFlattenInProgress); ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if errors.As(err, &efip) {
|
||||||
return status.Error(codes.Aborted, err.Error())
|
return status.Error(codes.Aborted, err.Error())
|
||||||
}
|
}
|
||||||
if errDefer := deleteImage(ctx, rbdVol, cr); errDefer != nil {
|
if errDefer := deleteImage(ctx, rbdVol, cr); errDefer != nil {
|
||||||
@ -294,7 +297,8 @@ func (cs *ControllerServer) createVolumeFromSnapshot(ctx context.Context, cr *ut
|
|||||||
|
|
||||||
err := genSnapFromSnapID(ctx, rbdSnap, snapshotID, cr)
|
err := genSnapFromSnapID(ctx, rbdSnap, snapshotID, cr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(util.ErrPoolNotFound); ok {
|
var epnf util.ErrPoolNotFound
|
||||||
|
if errors.As(err, &epnf) {
|
||||||
klog.Errorf(util.Log(ctx, "failed to get backend snapshot for %s: %v"), snapshotID, err)
|
klog.Errorf(util.Log(ctx, "failed to get backend snapshot for %s: %v"), snapshotID, err)
|
||||||
return status.Error(codes.InvalidArgument, err.Error())
|
return status.Error(codes.InvalidArgument, err.Error())
|
||||||
}
|
}
|
||||||
@ -342,7 +346,8 @@ func (cs *ControllerServer) createBackingImage(ctx context.Context, cr *util.Cre
|
|||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrFlattenInProgress); !ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if !errors.As(err, &efip) {
|
||||||
if deleteErr := deleteImage(ctx, rbdVol, cr); deleteErr != nil {
|
if deleteErr := deleteImage(ctx, rbdVol, cr); deleteErr != nil {
|
||||||
klog.Errorf(util.Log(ctx, "failed to delete rbd image: %s with error: %v"), rbdVol, deleteErr)
|
klog.Errorf(util.Log(ctx, "failed to delete rbd image: %s with error: %v"), rbdVol, deleteErr)
|
||||||
}
|
}
|
||||||
@ -701,7 +706,8 @@ func (cs *ControllerServer) CreateSnapshot(ctx context.Context, req *csi.CreateS
|
|||||||
defer vol.Destroy()
|
defer vol.Destroy()
|
||||||
|
|
||||||
err = vol.flattenRbdImage(ctx, cr, false)
|
err = vol.flattenRbdImage(ctx, cr, false)
|
||||||
if _, ok := err.(ErrFlattenInProgress); ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if errors.As(err, &efip) {
|
||||||
return &csi.CreateSnapshotResponse{
|
return &csi.CreateSnapshotResponse{
|
||||||
Snapshot: &csi.Snapshot{
|
Snapshot: &csi.Snapshot{
|
||||||
SizeBytes: rbdSnap.SizeBytes,
|
SizeBytes: rbdSnap.SizeBytes,
|
||||||
@ -824,7 +830,8 @@ func (cs *ControllerServer) doSnapshotClone(ctx context.Context, parentVol *rbdV
|
|||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrFlattenInProgress); !ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if !errors.As(err, &efip) {
|
||||||
// cleanup clone and snapshot
|
// cleanup clone and snapshot
|
||||||
errCleanUp := cleanUpSnapshot(ctx, cloneRbd, rbdSnap, cloneRbd, cr)
|
errCleanUp := cleanUpSnapshot(ctx, cloneRbd, rbdSnap, cloneRbd, cr)
|
||||||
if errCleanUp != nil {
|
if errCleanUp != nil {
|
||||||
@ -864,7 +871,8 @@ func (cs *ControllerServer) doSnapshotClone(ctx context.Context, parentVol *rbdV
|
|||||||
|
|
||||||
err = cloneRbd.flattenRbdImage(ctx, cr, false)
|
err = cloneRbd.flattenRbdImage(ctx, cr, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrFlattenInProgress); ok {
|
var efip ErrFlattenInProgress
|
||||||
|
if errors.As(err, &efip) {
|
||||||
return ready, cloneRbd, nil
|
return ready, cloneRbd, nil
|
||||||
}
|
}
|
||||||
return ready, cloneRbd, err
|
return ready, cloneRbd, err
|
||||||
@ -940,7 +948,8 @@ func (cs *ControllerServer) DeleteSnapshot(ctx context.Context, req *csi.DeleteS
|
|||||||
|
|
||||||
err = rbdVol.getImageInfo()
|
err = rbdVol.getImageInfo()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrImageNotFound); !ok {
|
var einf ErrImageNotFound
|
||||||
|
if !errors.As(err, &einf) {
|
||||||
klog.Errorf(util.Log(ctx, "failed to delete rbd image: %s/%s with error: %v"), rbdVol.Pool, rbdVol.VolName, err)
|
klog.Errorf(util.Log(ctx, "failed to delete rbd image: %s/%s with error: %v"), rbdVol.Pool, rbdVol.VolName, err)
|
||||||
return nil, status.Error(codes.Internal, err.Error())
|
return nil, status.Error(codes.Internal, err.Error())
|
||||||
}
|
}
|
||||||
|
@ -155,7 +155,8 @@ func checkSnapCloneExists(ctx context.Context, parentVol *rbdVolume, rbdSnap *rb
|
|||||||
if errors.As(err, &einf) {
|
if errors.As(err, &einf) {
|
||||||
err = parentVol.deleteSnapshot(ctx, rbdSnap)
|
err = parentVol.deleteSnapshot(ctx, rbdSnap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrSnapNotFound); !ok {
|
var esnf ErrSnapNotFound
|
||||||
|
if !errors.As(err, &esnf) {
|
||||||
klog.Errorf(util.Log(ctx, "failed to delete snapshot %s: %v"), rbdSnap, err)
|
klog.Errorf(util.Log(ctx, "failed to delete snapshot %s: %v"), rbdSnap, err)
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
@ -181,7 +182,8 @@ func checkSnapCloneExists(ctx context.Context, parentVol *rbdVolume, rbdSnap *rb
|
|||||||
|
|
||||||
// check snapshot exists if not create it
|
// check snapshot exists if not create it
|
||||||
_, err = vol.getSnapInfo(rbdSnap)
|
_, err = vol.getSnapInfo(rbdSnap)
|
||||||
if _, ok := err.(ErrSnapNotFound); ok {
|
var esnf ErrSnapNotFound
|
||||||
|
if errors.As(err, &esnf) {
|
||||||
// create snapshot
|
// create snapshot
|
||||||
sErr := vol.createSnapshot(ctx, rbdSnap)
|
sErr := vol.createSnapshot(ctx, rbdSnap)
|
||||||
if sErr != nil {
|
if sErr != nil {
|
||||||
|
@ -17,10 +17,11 @@ package rbd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/ceph/ceph-csi/internal/util"
|
"github.com/ceph/ceph-csi/internal/util"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
"k8s.io/klog"
|
"k8s.io/klog"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -36,7 +37,7 @@ func createRBDClone(ctx context.Context, parentVol, cloneRbdVol *rbdVolume, snap
|
|||||||
err = cloneRbdVol.cloneRbdImageFromSnapshot(ctx, snap)
|
err = cloneRbdVol.cloneRbdImageFromSnapshot(ctx, snap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Errorf(util.Log(ctx, "failed to clone rbd image %s from snapshot %s: %v"), cloneRbdVol.RbdImageName, snap.RbdSnapName, err)
|
klog.Errorf(util.Log(ctx, "failed to clone rbd image %s from snapshot %s: %v"), cloneRbdVol.RbdImageName, snap.RbdSnapName, err)
|
||||||
err = errors.Errorf("failed to clone rbd image %s from snapshot %s: %v", cloneRbdVol.RbdImageName, snap.RbdSnapName, err)
|
err = fmt.Errorf("failed to clone rbd image %s from snapshot %s: %w", cloneRbdVol.RbdImageName, snap.RbdSnapName, err)
|
||||||
}
|
}
|
||||||
errSnap := parentVol.deleteSnapshot(ctx, snap)
|
errSnap := parentVol.deleteSnapshot(ctx, snap)
|
||||||
if errSnap != nil {
|
if errSnap != nil {
|
||||||
@ -64,14 +65,16 @@ func createRBDClone(ctx context.Context, parentVol, cloneRbdVol *rbdVolume, snap
|
|||||||
func cleanUpSnapshot(ctx context.Context, parentVol *rbdVolume, rbdSnap *rbdSnapshot, rbdVol *rbdVolume, cr *util.Credentials) error {
|
func cleanUpSnapshot(ctx context.Context, parentVol *rbdVolume, rbdSnap *rbdSnapshot, rbdVol *rbdVolume, cr *util.Credentials) error {
|
||||||
err := parentVol.deleteSnapshot(ctx, rbdSnap)
|
err := parentVol.deleteSnapshot(ctx, rbdSnap)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrSnapNotFound); !ok {
|
var esnf ErrSnapNotFound
|
||||||
|
if !errors.As(err, &esnf) {
|
||||||
klog.Errorf(util.Log(ctx, "failed to delete snapshot: %v"), err)
|
klog.Errorf(util.Log(ctx, "failed to delete snapshot: %v"), err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = deleteImage(ctx, rbdVol, cr)
|
err = deleteImage(ctx, rbdVol, cr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if _, ok := err.(ErrImageNotFound); !ok {
|
var einf ErrImageNotFound
|
||||||
|
if !errors.As(err, &einf) {
|
||||||
klog.Errorf(util.Log(ctx, "failed to delete rbd image: %s/%s with error: %v"), rbdVol.Pool, rbdVol.VolName, err)
|
klog.Errorf(util.Log(ctx, "failed to delete rbd image: %s/%s with error: %v"), rbdVol.Pool, rbdVol.VolName, err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user