@@ -22,7 +22,6 @@ import (
2222 "strings"
2323 "time"
2424
25- "github.com/pkg/errors"
2625 "google.golang.org/grpc/codes"
2726 "google.golang.org/grpc/status"
2827 v1 "k8s.io/api/core/v1"
@@ -94,11 +93,11 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
9493
9594 bucketAccessClass , err := bal .bucketAccessClasses ().Get (ctx , bucketAccessClassName , metav1.GetOptions {})
9695 if kubeerrors .IsNotFound (err ) {
97- bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .FailedGrantAccess , "BucketAccessClass %v provided in the BucketAccess does not exist: %v" , bucketAccessClass . Name , err )
96+ bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .FailedGrantAccess , err . Error () )
9897 return err
9998 } else if err != nil {
10099 klog .ErrorS (err , "Failed to fetch bucketAccessClass" , "bucketAccessClass" , bucketAccessClassName )
101- return errors . Wrap ( err , "Failed to fetch BucketAccessClass" )
100+ return fmt . Errorf ( "failed to fetch BucketAccessClass: %w" , err )
102101 }
103102
104103 if ! strings .EqualFold (bucketAccessClass .DriverName , bal .driverName ) {
@@ -113,7 +112,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
113112 bucketClaim , err := bal .bucketClaims (namespace ).Get (ctx , bucketClaimName , metav1.GetOptions {})
114113 if err != nil {
115114 klog .V (3 ).ErrorS (err , "Failed to fetch bucketClaim" , "bucketClaim" , bucketClaimName )
116- return errors . Wrap ( err , "Failed to fetch bucketClaim" )
115+ return fmt . Errorf ( "failed to fetch bucketClaim: %w" , err )
117116 }
118117
119118 if bucketClaim .Status .BucketName == "" || bucketClaim .Status .BucketReady != true {
@@ -123,7 +122,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
123122 "bucketClaim" , bucketClaim .Name ,
124123 "bucketAccess" , bucketAccess .ObjectMeta .Name ,
125124 )
126- return errors . Wrap ( err , "Invalid arguments" )
125+ return fmt . Errorf ( "invalid bucket state: %w" , err )
127126 }
128127
129128 authType := cosi .AuthenticationType_UnknownAuthenticationType
@@ -134,8 +133,9 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
134133 }
135134
136135 if authType == cosi .AuthenticationType_IAM && bucketAccess .Spec .ServiceAccountName == "" {
137- bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .FailedGrantAccess , "Must define ServiceAccountName when AuthenticationType is IAM." )
138- return errors .New ("Must define ServiceAccountName when AuthenticationType is IAM" )
136+ err = consts .ErrUndefinedServiceAccountName
137+ bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .FailedGrantAccess , err .Error ())
138+ return err
139139 }
140140
141141 if bucketAccess .Status .AccessGranted == true {
@@ -149,12 +149,16 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
149149 bucket , err := bal .buckets ().Get (ctx , bucketClaim .Status .BucketName , metav1.GetOptions {})
150150 if err != nil {
151151 klog .V (3 ).ErrorS (err , "Failed to fetch bucket" , "bucket" , bucketClaim .Status .BucketName )
152- return errors . Wrap ( err , "Failed to fetch bucket" )
152+ return fmt . Errorf ( "failed to fetch bucket: %w" , err )
153153 }
154154
155155 if bucket .Status .BucketReady != true || bucket .Status .BucketID == "" {
156- bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .WaitingForBucket , "BucketAccess can't be granted to Bucket %v not in Ready state (isReady? %t) or without a bucketID (ID empty? %t)." , bucket .Name , bucket .Status .BucketReady , bucket .Status .BucketID == "" )
157- return consts .ErrInvalidBucketState
156+ err = fmt .Errorf ("%w: (isReady? %t), (ID empty? %t)" ,
157+ consts .ErrInvalidBucketState ,
158+ bucket .Status .BucketReady ,
159+ bucket .Status .BucketID == "" )
160+ bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .WaitingForBucket , err .Error ())
161+ return err
158162 }
159163
160164 accountName := consts .AccountNamePrefix + string (bucketAccess .UID )
@@ -170,23 +174,23 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
170174 rsp , err := bal .provisionerClient .DriverGrantBucketAccess (ctx , req )
171175 if err != nil {
172176 if status .Code (err ) != codes .AlreadyExists {
173- bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .FailedGrantAccess , "Failed to grant access." )
174- return errors . Wrap ( err , "failed to grant access" )
177+ bal .recordEvent (inputBucketAccess , v1 .EventTypeWarning , events .FailedGrantAccess , err . Error () )
178+ return fmt . Errorf ( "failed to grant access: %w" , err )
175179 }
176180
177181 }
178182
179183 if rsp .AccountId == "" {
180184 err = consts .ErrUndefinedAccountID
181185 klog .V (3 ).ErrorS (err , "BucketAccess" , bucketAccess .ObjectMeta .Name )
182- return errors . Wrap ( err , fmt .Sprintf ("BucketAccess %s" , bucketAccess .ObjectMeta .Name ) )
186+ return fmt .Errorf ("BucketAccess %s: %w " , bucketAccess .ObjectMeta .Name , err )
183187 }
184188
185189 credentials := rsp .Credentials
186190 if len (credentials ) != 1 {
187191 err = consts .ErrInvalidCredentials
188192 klog .V (3 ).ErrorS (err , "BucketAccess" , bucketAccess .ObjectMeta .Name )
189- return errors . Wrap ( err , fmt .Sprintf ("BucketAccess %s" , bucketAccess .ObjectMeta .Name ) )
193+ return fmt .Errorf ("BucketAccess %s: %w " , bucketAccess .ObjectMeta .Name , err )
190194 }
191195
192196 bucketInfoName := consts .BucketInfoPrefix + string (bucketAccess .ObjectMeta .UID )
@@ -237,7 +241,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
237241 "Failed to create secrets" ,
238242 "bucketAccess" , bucketAccess .ObjectMeta .Name ,
239243 "bucket" , bucket .ObjectMeta .Name )
240- return errors . Wrap ( err , "failed to fetch secrets" )
244+ return fmt . Errorf ( "failed to fetch secrets: %w" , err )
241245 }
242246
243247 if _ , err := bal .secrets (namespace ).Create (ctx , & v1.Secret {
@@ -256,7 +260,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
256260 "Failed to create minted secret" ,
257261 "bucketAccess" , bucketAccess .ObjectMeta .Name ,
258262 "bucket" , bucket .ObjectMeta .Name )
259- return errors . Wrap ( err , "Failed to create minted secret" )
263+ return fmt . Errorf ( "failed to create minted secret: %w" , err )
260264 }
261265 }
262266 }
@@ -274,7 +278,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
274278 klog .V (3 ).ErrorS (err , "Failed to update BucketAccess finalizer" ,
275279 "bucketAccess" , bucketAccess .ObjectMeta .Name ,
276280 "bucket" , bucket .ObjectMeta .Name )
277- return errors . Wrap ( err , fmt .Sprintf ( "Failed to update BucketAccess finalizer. BucketAccess: %s" , bucketAccess .ObjectMeta .Name ) )
281+ return fmt .Errorf ( "failed to update finalizer on BucketAccess %s: %w " , bucketAccess .ObjectMeta .Name , err )
278282 }
279283 }
280284
@@ -286,7 +290,7 @@ func (bal *BucketAccessListener) Add(ctx context.Context, inputBucketAccess *v1a
286290 klog .V (3 ).ErrorS (err , "Failed to update BucketAccess Status" ,
287291 "bucketAccess" , bucketAccess .ObjectMeta .Name ,
288292 "bucket" , bucket .ObjectMeta .Name )
289- return errors . Wrap ( err , fmt .Sprintf ( "Failed to update BucketAccess Status. BucketAccess: %s" , bucketAccess .ObjectMeta .Name ) )
293+ return fmt .Errorf ( "failed to update Status on BucketAccess %s: %w " , bucketAccess .ObjectMeta .Name , err )
290294 }
291295
292296 return nil
@@ -333,13 +337,13 @@ func (bal *BucketAccessListener) deleteBucketAccessOp(ctx context.Context, bucke
333337 bucketClaim , err := bal .bucketClaims (bucketAccess .ObjectMeta .Namespace ).Get (ctx , bucketClaimName , metav1.GetOptions {})
334338 if err != nil {
335339 klog .V (3 ).ErrorS (err , "Failed to fetch bucketClaim" , "bucketClaim" , bucketClaimName )
336- return errors . Wrap ( err , "Failed to fetch bucketClaim" )
340+ return fmt . Errorf ( "failed to fetch bucketClaim: %w" , err )
337341 }
338342
339343 bucket , err := bal .buckets ().Get (ctx , bucketClaim .Status .BucketName , metav1.GetOptions {})
340344 if err != nil {
341345 klog .V (3 ).ErrorS (err , "Failed to fetch bucket" , "bucket" , bucketClaim .Status .BucketName )
342- return errors . Wrap ( err , "Failed to fetch bucket" )
346+ return fmt . Errorf ( "failed to fetch bucket: %w" , err )
343347 }
344348
345349 req := & cosi.DriverRevokeBucketAccessRequest {
@@ -350,7 +354,7 @@ func (bal *BucketAccessListener) deleteBucketAccessOp(ctx context.Context, bucke
350354 // First we revoke the bucketAccess from the driver
351355 if _ , err := bal .provisionerClient .DriverRevokeBucketAccess (ctx , req ); err != nil {
352356 bal .recordEvent (bucketAccess , v1 .EventTypeWarning , events .FailedRevokeAccess , "Failed to revoke bucket access." )
353- return errors . Wrap ( err , "failed to revoke access" )
357+ return fmt . Errorf ( "failed to revoke access: %w" , err )
354358 }
355359
356360 credSecretName := bucketAccess .Spec .CredentialsSecretName
0 commit comments