@@ -87,10 +87,12 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
8787return nil
8888}
8989
90- if bucket .Spec .ExistingBucketID != "" {
91- bucket .Status .BucketReady = true
92- bucket .Status .BucketID = bucket .Spec .ExistingBucketID
90+ bucketReady := false
91+ var bucketID string
9392
93+ if bucket .Spec .ExistingBucketID != "" {
94+ bucketReady = true
95+ bucketID = bucket .Spec .ExistingBucketID
9496} else {
9597req := & cosi.DriverCreateBucketRequest {
9698Parameters : bucket .Spec .Parameters ,
@@ -114,8 +116,8 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
114116}
115117
116118if rsp .BucketId != "" {
117- bucket . Status . BucketID = rsp .BucketId
118- bucket . Status . BucketReady = true
119+ bucketID = rsp .BucketId
120+ bucketReady = true
119121} else {
120122err = errors .New ("DriverCreateBucket returned an empty bucketID" )
121123return err
@@ -126,22 +128,32 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
126128ref := bucket .Spec .BucketClaim
127129bucketClaim , err := b .bucketClaims (ref .Namespace ).Get (ctx , ref .Name , metav1.GetOptions {})
128130if err != nil {
131+ klog .ErrorS (err , "Failed to get bucketClaim" ,
132+ "bucketClaim" , ref .Name ,
133+ "bucket" , bucket .ObjectMeta .Name )
129134return err
130135}
131136
132137bucketClaim .Status .BucketReady = true
133138if _ , err = b .bucketClaims (bucketClaim .Namespace ).Update (ctx , bucketClaim , metav1.UpdateOptions {}); err != nil {
139+ klog .ErrorS (err , "Failed to update bucketClaim" ,
140+ "bucketClaim" , ref .Name ,
141+ "bucket" , bucket .ObjectMeta .Name )
134142return err
135143}
136144}
137145}
138146
139147controllerutil .AddFinalizer (bucket , consts .BucketFinalizer )
140- if _ , err = b .buckets ().Update (ctx , bucket , metav1.UpdateOptions {}); err != nil {
148+ if bucket , err = b .buckets ().Update (ctx , bucket , metav1.UpdateOptions {}); err != nil {
141149klog .ErrorS (err , "Failed to update bucket finalizers" , "bucket" , bucket .ObjectMeta .Name )
142150return errors .Wrap (err , "Failed to update bucket finalizers" )
143151}
144152
153+ // Setting the status here so that the updated object is used
154+ bucket .Status .BucketReady = bucketReady
155+ bucket .Status .BucketID = bucketID
156+
145157// if this step fails, then controller will retry with backoff
146158if _ , err = b .buckets ().UpdateStatus (ctx , bucket , metav1.UpdateOptions {}); err != nil {
147159klog .ErrorS (err , "Failed to update bucket status" ,
0 commit comments