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

Commit d9811a8

Browse files
authored
Merge pull request #68 from mukhoakash/bug-fix
Fix: Bucketclaim object updation facing stale object and improved logging
2 parents 0e0ba7c + 6fd93c5 commit d9811a8

File tree

1 file changed

+29
-9
lines changed

1 file changed

+29
-9
lines changed

pkg/bucketclaim/bucketclaim.go

+29-9
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func (b *bucketClaimListener) Add(ctx context.Context, bucketClaim *v1alpha1.Buc
3939
if err != nil {
4040
switch err {
4141
case util.ErrInvalidBucketClass:
42-
klog.ErrorS(util.ErrInvalidBucketClass,
42+
klog.V(3).ErrorS(util.ErrInvalidBucketClass,
4343
"bucketClaim", bucketClaim.ObjectMeta.Name,
4444
"ns", bucketClaim.ObjectMeta.Namespace,
4545
"bucketClassName", bucketClaim.Spec.BucketClassName)
@@ -50,7 +50,7 @@ func (b *bucketClaimListener) Add(ctx context.Context, bucketClaim *v1alpha1.Buc
5050
)
5151
return nil
5252
default:
53-
klog.ErrorS(err,
53+
klog.V(3).ErrorS(err,
5454
"name", bucketClaim.ObjectMeta.Name,
5555
"ns", bucketClaim.ObjectMeta.Namespace,
5656
"err", err)
@@ -77,16 +77,25 @@ func (b *bucketClaimListener) Update(ctx context.Context, old, new *v1alpha1.Buc
7777
bucketName := bucketClaim.Status.BucketName
7878
err := b.buckets().Delete(ctx, bucketName, metav1.DeleteOptions{})
7979
if err != nil {
80+
klog.V(3).ErrorS(err, "Error deleting bucket",
81+
"bucket", bucketName,
82+
"bucketClaim", bucketClaim.ObjectMeta.Name)
8083
return err
8184
}
85+
86+
klog.V(5).Infof("Successfully deleted bucket: %s from bucketClaim: %s", bucketName, bucketClaim.ObjectMeta.Name)
8287
}
8388
}
89+
90+
klog.V(3).InfoS("Update BucketClaim success",
91+
"name", bucketClaim.ObjectMeta.Name,
92+
"ns", bucketClaim.ObjectMeta.Namespace)
8493
return nil
8594
}
8695

8796
// Delete processes a bucket for which bucket request is deleted
8897
func (b *bucketClaimListener) Delete(ctx context.Context, bucketClaim *v1alpha1.BucketClaim) error {
89-
klog.V(3).Infof("Delete BucketClaim %v",
98+
klog.V(3).Infof("Delete BucketClaim",
9099
"name", bucketClaim.ObjectMeta.Name,
91100
"ns", bucketClaim.ObjectMeta.Namespace)
92101

@@ -99,7 +108,8 @@ func (b *bucketClaimListener) Delete(ctx context.Context, bucketClaim *v1alpha1.
99108
// ErrInvalidBucketClass - BucketClass does not exist [requeue'd with exponential backoff]
100109
// ErrBucketAlreadyExists - BucketClaim already processed
101110
// non-nil err - Internal error [requeue'd with exponential backoff]
102-
func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context, bucketClaim *v1alpha1.BucketClaim) error {
111+
func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context, inputBucketClaim *v1alpha1.BucketClaim) error {
112+
bucketClaim := inputBucketClaim.DeepCopy()
103113
if bucketClaim.Status.BucketReady {
104114
return util.ErrBucketAlreadyExists
105115
}
@@ -111,7 +121,7 @@ func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context,
111121
bucketName = bucketClaim.Spec.ExistingBucketName
112122
bucket, err := b.buckets().Get(ctx, bucketName, metav1.GetOptions{})
113123
if err != nil {
114-
klog.ErrorS(err, "Get Bucket with ExistingBucketName error", "name", bucketClaim.Spec.ExistingBucketName)
124+
klog.V(3).ErrorS(err, "Get Bucket with ExistingBucketName error", "name", bucketClaim.Spec.ExistingBucketName)
115125
return err
116126
}
117127

@@ -123,6 +133,9 @@ func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context,
123133

124134
_, err = b.buckets().Update(ctx, bucket, metav1.UpdateOptions{})
125135
if err != nil {
136+
klog.V(3).ErrorS(err, "Error updating existing bucket",
137+
"bucket", bucket.ObjectMeta.Name,
138+
"bucketClaim", bucketClaim.ObjectMeta.Name)
126139
return err
127140
}
128141

@@ -136,7 +149,7 @@ func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context,
136149

137150
bucketClass, err := b.bucketClasses().Get(ctx, bucketClassName, metav1.GetOptions{})
138151
if err != nil {
139-
klog.ErrorS(err, "Get Bucketclass Error", "name", bucketClassName)
152+
klog.V(3).ErrorS(err, "Get Bucketclass Error", "name", bucketClassName)
140153
return util.ErrInvalidBucketClass
141154
}
142155

@@ -163,16 +176,21 @@ func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context,
163176
bucket.Spec.Protocols = protocolCopy
164177
bucket, err = b.buckets().Create(ctx, bucket, metav1.CreateOptions{})
165178
if err != nil && !errors.IsAlreadyExists(err) {
166-
klog.ErrorS(err, "name", bucketName)
179+
klog.V(3).ErrorS(err, "Error creationg bucket",
180+
"bucket", bucketName,
181+
"bucketClaim", bucketClaim.ObjectMeta.Name)
167182
return err
168183
}
169184

170185
bucketClaim.Status.BucketName = bucketName
171186
bucketClaim.Status.BucketReady = false
172187
}
173188

174-
_, err = b.bucketClaims(bucketClaim.ObjectMeta.Namespace).UpdateStatus(ctx, bucketClaim, metav1.UpdateOptions{})
189+
// Fetching the updated bucketClaim again, so that the update
190+
// operation doesn't happen on an outdated version of the bucketClaim.
191+
bucketClaim, err = b.bucketClaims(bucketClaim.ObjectMeta.Namespace).UpdateStatus(ctx, bucketClaim, metav1.UpdateOptions{})
175192
if err != nil {
193+
klog.V(3).ErrorS(err, "Failed to update status of BucketClaim", "name", bucketClaim.ObjectMeta.Name)
176194
return err
177195
}
178196

@@ -181,9 +199,11 @@ func (b *bucketClaimListener) provisionBucketClaimOperation(ctx context.Context,
181199
controllerutil.AddFinalizer(bucketClaim, util.BucketClaimFinalizer)
182200
_, err = b.bucketClaims(bucketClaim.ObjectMeta.Namespace).Update(ctx, bucketClaim, metav1.UpdateOptions{})
183201
if err != nil {
202+
klog.V(3).ErrorS(err, "Failed to add finalizer BucketClaim", "name", bucketClaim.ObjectMeta.Name)
184203
return err
185204
}
186-
klog.Infof("Finished creating Bucket %v", bucketName)
205+
206+
klog.V(3).Infof("Finished creating Bucket %v", bucketName)
187207
return nil
188208
}
189209

0 commit comments

Comments
 (0)