Skip to content
This repository was archived by the owner on Dec 6, 2024. It is now read-only.

Commit 0092bea

Browse files
committed
chore: errors cleanup
1 parent 41812bd commit 0092bea

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

Diff for: pkg/bucket/bucket_controller.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,8 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
7676
"name", bucket.ObjectMeta.Name)
7777

7878
if bucket.Spec.BucketClassName == "" {
79-
err = errors.New(fmt.Sprintf("BucketClassName not defined for bucket %s", bucket.ObjectMeta.Name))
80-
b.recordEvent(inputBucket, v1.EventTypeWarning, events.FailedCreateBucket, "BucketClassName was not defined in the Bucket.")
81-
return err
79+
b.recordEvent(inputBucket, v1.EventTypeWarning, events.FailedCreateBucket, "BucketClassName was not defined in the Bucket %q.", bucket.Name)
80+
return errors.Wrapf(consts.ErrUndefinedBucketClassName, "Bucket %q", bucket.Name)
8281
}
8382

8483
if !strings.EqualFold(bucket.Spec.DriverName, b.driverName) {
@@ -134,16 +133,17 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
134133
rsp, err := b.provisionerClient.DriverCreateBucket(ctx, req)
135134
if err != nil {
136135
if status.Code(err) != codes.AlreadyExists {
137-
b.recordEvent(inputBucket, v1.EventTypeWarning, events.FailedCreateBucket, "Failed to create bucket.")
138-
return errors.Wrap(err, "Failed to create bucket")
136+
err = errors.Wrapf(err, "Failed to create Bucket %q", bucket.Name)
137+
b.recordEvent(inputBucket, v1.EventTypeWarning, events.FailedCreateBucket, err.Error())
138+
return err
139139
}
140140
}
141141

142142
if rsp == nil {
143-
err = errors.New(fmt.Sprintf("DriverCreateBucket returned a nil response for bucket: %s", bucket.ObjectMeta.Name))
143+
err = consts.ErrInternal
144144
klog.V(3).ErrorS(err, "Internal Error from driver",
145145
"bucket", bucket.ObjectMeta.Name)
146-
return err
146+
return errors.Wrapf(err, "Bucket %q", bucket.Name)
147147
}
148148

149149
if rsp.BucketId != "" {
@@ -152,8 +152,7 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
152152
} else {
153153
klog.V(3).ErrorS(err, "DriverCreateBucket returned an empty bucketID",
154154
"bucket", bucket.ObjectMeta.Name)
155-
err = errors.New(fmt.Sprintf("DriverCreateBucket returned an empty bucketID for bucket: %s", bucket.ObjectMeta.Name))
156-
return err
155+
return errors.Wrapf(consts.ErrEmptyBucketID, "Bucket %q", bucket.Name)
157156
}
158157

159158
// Now we update the BucketReady status of BucketClaim

Diff for: pkg/bucketaccess/bucketaccess_controller.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
9191

9292
secretCredName := bucketAccess.Spec.CredentialsSecretName
9393
if secretCredName == "" {
94-
return errors.New("CredentialsSecretName not defined in the BucketAccess")
94+
return consts.ErrUndefinedSecretName
9595
}
9696

9797
bucketAccessClass, err := bal.bucketAccessClasses().Get(ctx, bucketAccessClassName, metav1.GetOptions{})
@@ -119,7 +119,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
119119
}
120120

121121
if bucketClaim.Status.BucketName == "" || bucketClaim.Status.BucketReady != true {
122-
err := errors.New("BucketName cannot be empty or BucketNotReady in bucketClaim")
122+
err := consts.ErrInvalidBucketState
123123
klog.V(3).ErrorS(err,
124124
"Invalid arguments",
125125
"bucketClaim", bucketClaim.Name,
@@ -156,7 +156,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
156156

157157
if bucket.Status.BucketReady != true || bucket.Status.BucketID == "" {
158158
bal.recordEvent(inputBucketAccess, v1.EventTypeWarning, events.WaitingForBucket, "BucketAccess can't be granted to Bucket %q not in Ready state (isReady? %t) or without a bucketID (ID empty? %t).", bucket.Name, bucket.Status.BucketReady, bucket.Status.BucketID == "")
159-
return errors.New("BucketAccess can't be granted to bucket not in Ready state and without a bucketID")
159+
return consts.ErrInvalidBucketState
160160
}
161161

162162
accountName := consts.AccountNamePrefix + string(bucketAccess.UID)
@@ -179,14 +179,14 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
179179
}
180180

181181
if rsp.AccountId == "" {
182-
err = errors.New("AccountId not defined in DriverGrantBucketAccess")
182+
err = consts.ErrUndefinedAccountID
183183
klog.V(3).ErrorS(err, "BucketAccess", bucketAccess.ObjectMeta.Name)
184184
return errors.Wrap(err, fmt.Sprintf("BucketAccess %s", bucketAccess.ObjectMeta.Name))
185185
}
186186

187187
credentials := rsp.Credentials
188188
if len(credentials) != 1 {
189-
err = errors.New("Credentials returned in DriverGrantBucketAccessResponse should be of length 1")
189+
err = consts.ErrInvalidCredentials
190190
klog.V(3).ErrorS(err, "BucketAccess", bucketAccess.ObjectMeta.Name)
191191
return errors.Wrap(err, fmt.Sprintf("BucketAccess %s", bucketAccess.ObjectMeta.Name))
192192
}
@@ -230,7 +230,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
230230

231231
stringData, err := json.Marshal(bucketInfo)
232232
if err != nil {
233-
return errors.New("Error converting bucketinfo into secret")
233+
return consts.ErrBucketInfoConversionFailed
234234
}
235235

236236
if _, err := bal.secrets(namespace).Get(ctx, secretCredName, metav1.GetOptions{}); err != nil {

Diff for: pkg/consts/consts.go

+13
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
package consts
1717

18+
import "errors"
19+
1820
const (
1921
AccountNamePrefix = "ba-"
2022
BucketInfoPrefix = "bc-"
@@ -35,3 +37,14 @@ const (
3537
AzureSecretExpiryTimeStamp = "expiryTs"
3638
DefaultTimeFormat = "2006-01-02 15:04:05.999999999 -0700 MST"
3739
)
40+
41+
var (
42+
ErrInternal = errors.New("driverCreateBucket returned a nil response")
43+
ErrBucketInfoConversionFailed = errors.New("error converting bucketInfo into Secret")
44+
ErrEmptyBucketID = errors.New("driverCreateBucket returned an empty bucketID")
45+
ErrUndefinedBucketClassName = errors.New("BucketClassName not defined")
46+
ErrUndefinedAccountID = errors.New("AccountId not defined in DriverGrantBucketAccess")
47+
ErrUndefinedSecretName = errors.New("CredentialsSecretName not defined in the BucketAccess")
48+
ErrInvalidBucketState = errors.New("BucketName cannot be empty or BucketNotReady in bucketClaim")
49+
ErrInvalidCredentials = errors.New("Credentials returned in DriverGrantBucketAccessResponse should be of length 1")
50+
)

0 commit comments

Comments
 (0)