@@ -87,10 +87,12 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
87
87
return nil
88
88
}
89
89
90
- if bucket .Spec .ExistingBucketID != "" {
91
- bucket .Status .BucketReady = true
92
- bucket .Status .BucketID = bucket .Spec .ExistingBucketID
90
+ bucketReady := false
91
+ var bucketID string
93
92
93
+ if bucket .Spec .ExistingBucketID != "" {
94
+ bucketReady = true
95
+ bucketID = bucket .Spec .ExistingBucketID
94
96
} else {
95
97
req := & cosi.DriverCreateBucketRequest {
96
98
Parameters : bucket .Spec .Parameters ,
@@ -114,8 +116,8 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
114
116
}
115
117
116
118
if rsp .BucketId != "" {
117
- bucket . Status . BucketID = rsp .BucketId
118
- bucket . Status . BucketReady = true
119
+ bucketID = rsp .BucketId
120
+ bucketReady = true
119
121
} else {
120
122
err = errors .New ("DriverCreateBucket returned an empty bucketID" )
121
123
return err
@@ -126,22 +128,32 @@ func (b *BucketListener) Add(ctx context.Context, inputBucket *v1alpha1.Bucket)
126
128
ref := bucket .Spec .BucketClaim
127
129
bucketClaim , err := b .bucketClaims (ref .Namespace ).Get (ctx , ref .Name , metav1.GetOptions {})
128
130
if err != nil {
131
+ klog .ErrorS (err , "Failed to get bucketClaim" ,
132
+ "bucketClaim" , ref .Name ,
133
+ "bucket" , bucket .ObjectMeta .Name )
129
134
return err
130
135
}
131
136
132
137
bucketClaim .Status .BucketReady = true
133
138
if _ , 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 )
134
142
return err
135
143
}
136
144
}
137
145
}
138
146
139
147
controllerutil .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 {
141
149
klog .ErrorS (err , "Failed to update bucket finalizers" , "bucket" , bucket .ObjectMeta .Name )
142
150
return errors .Wrap (err , "Failed to update bucket finalizers" )
143
151
}
144
152
153
+ // Setting the status here so that the updated object is used
154
+ bucket .Status .BucketReady = bucketReady
155
+ bucket .Status .BucketID = bucketID
156
+
145
157
// if this step fails, then controller will retry with backoff
146
158
if _ , err = b .buckets ().UpdateStatus (ctx , bucket , metav1.UpdateOptions {}); err != nil {
147
159
klog .ErrorS (err , "Failed to update bucket status" ,
0 commit comments