mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-13 18:43:34 +00:00
cleanup: move internal/rbd/errors.go to internal/rbd/errors pacakge
Signed-off-by: Praveen M <m.praveen@ibm.com>
This commit is contained in:
@ -21,6 +21,7 @@ import (
|
||||
"errors"
|
||||
|
||||
"github.com/ceph/ceph-csi/internal/rbd"
|
||||
rbderrors "github.com/ceph/ceph-csi/internal/rbd/errors"
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
"github.com/ceph/ceph-csi/internal/util/log"
|
||||
|
||||
@ -68,7 +69,7 @@ func (ekrs *EncryptionKeyRotationServer) EncryptionKeyRotate(
|
||||
rbdVol, err := mgr.GetVolumeByID(ctx, volID)
|
||||
if err != nil {
|
||||
switch {
|
||||
case errors.Is(err, util.ErrImageNotFound):
|
||||
case errors.Is(err, rbderrors.ErrImageNotFound):
|
||||
err = status.Errorf(codes.NotFound, "volume ID %s not found", volID)
|
||||
case errors.Is(err, util.ErrPoolNotFound):
|
||||
log.ErrorLog(ctx, "failed to get backend volume for %s: %v", volID, err)
|
||||
|
@ -23,6 +23,7 @@ import (
|
||||
|
||||
csicommon "github.com/ceph/ceph-csi/internal/csi-common"
|
||||
rbdutil "github.com/ceph/ceph-csi/internal/rbd"
|
||||
rbderrors "github.com/ceph/ceph-csi/internal/rbd/errors"
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
"github.com/ceph/ceph-csi/internal/util/log"
|
||||
|
||||
@ -84,7 +85,7 @@ func (rscs *ReclaimSpaceControllerServer) ControllerReclaimSpace(
|
||||
defer rbdVol.Destroy(ctx)
|
||||
|
||||
err = rbdVol.Sparsify(ctx)
|
||||
if errors.Is(err, rbdutil.ErrImageInUse) {
|
||||
if errors.Is(err, rbderrors.ErrImageInUse) {
|
||||
// FIXME: https://github.com/csi-addons/kubernetes-csi-addons/issues/406.
|
||||
// treat sparsify call as no-op if volume is in use.
|
||||
log.DebugLog(ctx, fmt.Sprintf("volume with ID %q is in use, skipping sparsify operation", volumeID))
|
||||
|
@ -29,6 +29,7 @@ import (
|
||||
csicommon "github.com/ceph/ceph-csi/internal/csi-common"
|
||||
"github.com/ceph/ceph-csi/internal/rbd"
|
||||
corerbd "github.com/ceph/ceph-csi/internal/rbd"
|
||||
rbderrors "github.com/ceph/ceph-csi/internal/rbd/errors"
|
||||
"github.com/ceph/ceph-csi/internal/rbd/types"
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
"github.com/ceph/ceph-csi/internal/util/log"
|
||||
@ -651,7 +652,7 @@ func (rs *ReplicationServer) ResyncVolume(ctx context.Context,
|
||||
sts, err := mirror.GetGlobalMirroringStatus(ctx)
|
||||
if err != nil {
|
||||
// the image gets recreated after issuing resync
|
||||
if errors.Is(err, util.ErrImageNotFound) {
|
||||
if errors.Is(err, rbderrors.ErrImageNotFound) {
|
||||
// caller retries till RBD syncs an initial version of the image to
|
||||
// report its status in the resync call. Ideally, this line will not
|
||||
// be executed as the error would get returned due to getMirroringInfo
|
||||
@ -785,13 +786,13 @@ func getGRPCError(err error) error {
|
||||
}
|
||||
|
||||
errorStatusMap := map[error]codes.Code{
|
||||
util.ErrImageNotFound: codes.NotFound,
|
||||
util.ErrPoolNotFound: codes.NotFound,
|
||||
corerbd.ErrInvalidArgument: codes.InvalidArgument,
|
||||
corerbd.ErrFlattenInProgress: codes.Aborted,
|
||||
corerbd.ErrAborted: codes.Aborted,
|
||||
corerbd.ErrFailedPrecondition: codes.FailedPrecondition,
|
||||
corerbd.ErrUnavailable: codes.Unavailable,
|
||||
rbderrors.ErrImageNotFound: codes.NotFound,
|
||||
util.ErrPoolNotFound: codes.NotFound,
|
||||
rbderrors.ErrInvalidArgument: codes.InvalidArgument,
|
||||
rbderrors.ErrFlattenInProgress: codes.Aborted,
|
||||
rbderrors.ErrAborted: codes.Aborted,
|
||||
rbderrors.ErrFailedPrecondition: codes.FailedPrecondition,
|
||||
rbderrors.ErrUnavailable: codes.Unavailable,
|
||||
}
|
||||
|
||||
for e, code := range errorStatusMap {
|
||||
@ -835,7 +836,7 @@ func (rs *ReplicationServer) GetVolumeReplicationInfo(ctx context.Context,
|
||||
log.ErrorLog(ctx, "failed to get volume with id %q: %v", volumeID, err)
|
||||
|
||||
switch {
|
||||
case errors.Is(err, util.ErrImageNotFound):
|
||||
case errors.Is(err, rbderrors.ErrImageNotFound):
|
||||
err = status.Error(codes.NotFound, err.Error())
|
||||
case errors.Is(err, util.ErrPoolNotFound):
|
||||
err = status.Error(codes.NotFound, err.Error())
|
||||
@ -872,7 +873,7 @@ func (rs *ReplicationServer) GetVolumeReplicationInfo(ctx context.Context,
|
||||
if err != nil {
|
||||
log.ErrorLog(ctx, "failed to get status for mirror %q: %v", mirror, err)
|
||||
|
||||
if errors.Is(err, util.ErrImageNotFound) {
|
||||
if errors.Is(err, rbderrors.ErrImageNotFound) {
|
||||
return nil, status.Error(codes.Aborted, err.Error())
|
||||
}
|
||||
|
||||
@ -895,7 +896,7 @@ func (rs *ReplicationServer) GetVolumeReplicationInfo(ctx context.Context,
|
||||
if err != nil {
|
||||
log.ErrorLog(ctx, "failed to parse last sync info from %q: %v", description, err)
|
||||
|
||||
if errors.Is(err, corerbd.ErrLastSyncTimeNotFound) {
|
||||
if errors.Is(err, rbderrors.ErrLastSyncTimeNotFound) {
|
||||
return nil, status.Errorf(codes.NotFound, "failed to get last sync info: %v", err)
|
||||
}
|
||||
|
||||
@ -924,12 +925,12 @@ func getLastSyncInfo(ctx context.Context, description string) (*replication.GetV
|
||||
var response replication.GetVolumeReplicationInfoResponse
|
||||
|
||||
if description == "" {
|
||||
return nil, fmt.Errorf("empty description: %w", corerbd.ErrLastSyncTimeNotFound)
|
||||
return nil, fmt.Errorf("empty description: %w", rbderrors.ErrLastSyncTimeNotFound)
|
||||
}
|
||||
log.DebugLog(ctx, "description: %s", description)
|
||||
splittedString := strings.SplitN(description, ",", 2)
|
||||
if len(splittedString) == 1 {
|
||||
return nil, fmt.Errorf("no snapshot details: %w", corerbd.ErrLastSyncTimeNotFound)
|
||||
return nil, fmt.Errorf("no snapshot details: %w", rbderrors.ErrLastSyncTimeNotFound)
|
||||
}
|
||||
type localStatus struct {
|
||||
LocalSnapshotTime int64 `json:"local_snapshot_timestamp"`
|
||||
@ -946,7 +947,7 @@ func getLastSyncInfo(ctx context.Context, description string) (*replication.GetV
|
||||
// If the json unmarsal is successful but the local snapshot time is 0, we
|
||||
// need to consider it as an error as the LastSyncTime is required.
|
||||
if localSnapInfo.LocalSnapshotTime == 0 {
|
||||
return nil, fmt.Errorf("empty local snapshot timestamp: %w", corerbd.ErrLastSyncTimeNotFound)
|
||||
return nil, fmt.Errorf("empty local snapshot timestamp: %w", rbderrors.ErrLastSyncTimeNotFound)
|
||||
}
|
||||
if localSnapInfo.LastSnapshotDuration != nil {
|
||||
// converts localSnapshotDuration of type int64 to string format with
|
||||
|
@ -26,6 +26,7 @@ import (
|
||||
"time"
|
||||
|
||||
corerbd "github.com/ceph/ceph-csi/internal/rbd"
|
||||
rbderrors "github.com/ceph/ceph-csi/internal/rbd/errors"
|
||||
"github.com/ceph/ceph-csi/internal/rbd/types"
|
||||
"github.com/ceph/ceph-csi/internal/util"
|
||||
|
||||
@ -450,7 +451,7 @@ func TestValidateLastSyncInfo(t *testing.T) {
|
||||
LastSyncDuration: nil,
|
||||
LastSyncBytes: 0,
|
||||
},
|
||||
expectedErr: corerbd.ErrLastSyncTimeNotFound.Error(),
|
||||
expectedErr: rbderrors.ErrLastSyncTimeNotFound.Error(),
|
||||
},
|
||||
{
|
||||
name: "description without last_snapshot_bytes",
|
||||
@ -472,7 +473,7 @@ func TestValidateLastSyncInfo(t *testing.T) {
|
||||
LastSyncTime: nil,
|
||||
LastSyncBytes: 0,
|
||||
},
|
||||
expectedErr: corerbd.ErrLastSyncTimeNotFound.Error(),
|
||||
expectedErr: rbderrors.ErrLastSyncTimeNotFound.Error(),
|
||||
},
|
||||
{
|
||||
name: "description without last_snapshot_sync_seconds",
|
||||
@ -516,7 +517,7 @@ func TestValidateLastSyncInfo(t *testing.T) {
|
||||
LastSyncTime: nil,
|
||||
LastSyncBytes: 0,
|
||||
},
|
||||
expectedErr: corerbd.ErrLastSyncTimeNotFound.Error(),
|
||||
expectedErr: rbderrors.ErrLastSyncTimeNotFound.Error(),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
@ -567,23 +568,23 @@ func TestGetGRPCError(t *testing.T) {
|
||||
}{
|
||||
{
|
||||
name: "InvalidArgument",
|
||||
err: corerbd.ErrInvalidArgument,
|
||||
expectedErr: status.Error(codes.InvalidArgument, corerbd.ErrInvalidArgument.Error()),
|
||||
err: rbderrors.ErrInvalidArgument,
|
||||
expectedErr: status.Error(codes.InvalidArgument, rbderrors.ErrInvalidArgument.Error()),
|
||||
},
|
||||
{
|
||||
name: "Aborted",
|
||||
err: corerbd.ErrAborted,
|
||||
expectedErr: status.Error(codes.Aborted, corerbd.ErrAborted.Error()),
|
||||
err: rbderrors.ErrAborted,
|
||||
expectedErr: status.Error(codes.Aborted, rbderrors.ErrAborted.Error()),
|
||||
},
|
||||
{
|
||||
name: "FailedPrecondition",
|
||||
err: corerbd.ErrFailedPrecondition,
|
||||
expectedErr: status.Error(codes.FailedPrecondition, corerbd.ErrFailedPrecondition.Error()),
|
||||
err: rbderrors.ErrFailedPrecondition,
|
||||
expectedErr: status.Error(codes.FailedPrecondition, rbderrors.ErrFailedPrecondition.Error()),
|
||||
},
|
||||
{
|
||||
name: "Unavailable",
|
||||
err: corerbd.ErrUnavailable,
|
||||
expectedErr: status.Error(codes.Unavailable, corerbd.ErrUnavailable.Error()),
|
||||
err: rbderrors.ErrUnavailable,
|
||||
expectedErr: status.Error(codes.Unavailable, rbderrors.ErrUnavailable.Error()),
|
||||
},
|
||||
{
|
||||
name: "InvalidError",
|
||||
@ -597,8 +598,8 @@ func TestGetGRPCError(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "ErrImageNotFound",
|
||||
err: util.ErrImageNotFound,
|
||||
expectedErr: status.Error(codes.NotFound, util.ErrImageNotFound.Error()),
|
||||
err: rbderrors.ErrImageNotFound,
|
||||
expectedErr: status.Error(codes.NotFound, rbderrors.ErrImageNotFound.Error()),
|
||||
},
|
||||
{
|
||||
name: "ErrPoolNotFound",
|
||||
|
@ -23,7 +23,7 @@ import (
|
||||
"slices"
|
||||
|
||||
"github.com/ceph/ceph-csi/internal/rbd"
|
||||
"github.com/ceph/ceph-csi/internal/rbd/group"
|
||||
rbderrors "github.com/ceph/ceph-csi/internal/rbd/errors"
|
||||
"github.com/ceph/ceph-csi/internal/rbd/types"
|
||||
"github.com/ceph/ceph-csi/internal/util/log"
|
||||
|
||||
@ -194,7 +194,7 @@ func (vs *VolumeGroupServer) DeleteVolumeGroup(
|
||||
// resolve the volume group
|
||||
vg, err := mgr.GetVolumeGroupByID(ctx, req.GetVolumeGroupId())
|
||||
if err != nil {
|
||||
if errors.Is(err, group.ErrRBDGroupNotFound) {
|
||||
if errors.Is(err, rbderrors.ErrGroupNotFound) {
|
||||
log.ErrorLog(ctx, "VolumeGroup %q doesn't exists", req.GetVolumeGroupId())
|
||||
|
||||
return &volumegroup.DeleteVolumeGroupResponse{}, nil
|
||||
@ -433,7 +433,7 @@ func (vs *VolumeGroupServer) ControllerGetVolumeGroup(
|
||||
// resolve the volume group
|
||||
vg, err := mgr.GetVolumeGroupByID(ctx, req.GetVolumeGroupId())
|
||||
if err != nil {
|
||||
if errors.Is(err, group.ErrRBDGroupNotFound) {
|
||||
if errors.Is(err, rbderrors.ErrGroupNotFound) {
|
||||
log.ErrorLog(ctx, "VolumeGroup %q doesn't exists", req.GetVolumeGroupId())
|
||||
|
||||
return nil, status.Errorf(
|
||||
|
Reference in New Issue
Block a user