@@ -218,27 +218,33 @@ func WaitForSQLDatabaseResourceToGoAway(ctx context.Context, appName string, mgr
218
218
return err
219
219
}
220
220
221
- func WaitForCnrmResourcesToGoAway (ctx context.Context , name string , mgr * common_main.Manager ) error {
222
- logger := mgr .Logger .With ("instance_name" , name )
221
+ func WaitForCnrmResourcesToGoAway (ctx context.Context , instanceName , applicationName string , mgr * common_main.Manager ) error {
222
+ logger := mgr .Logger .With ("instance_name" , instanceName )
223
223
logger .Info ("waiting for relevant CNRM resources to go away..." )
224
224
225
- type resource struct {
225
+ type resource [ struct {
226
226
kind string
227
- getter func () error
227
+ getter func () (metav1. Object , error )
228
228
}
229
229
resources := []resource {
230
230
{
231
231
"SQLInstance ",
232
- func () error {
233
- _ , err := mgr .SqlInstanceClient .Get (ctx , name )
234
- return err
232
+ func () (metav1.Object , error ) {
233
+ instance , err := mgr.SqlInstanceClient .Get (ctx , instanceName )
234
+ if err != nil {
235
+ return nil , err
236
+ }
237
+ return instance .GetObjectMeta (), nil
235
238
},
236
239
},
237
240
{
238
241
"SQLUser ",
239
- func () error {
240
- _ , err := mgr .SqlUserClient .Get (ctx , name )
241
- return err
242
+ func () (metav1 .Object , error ){
243
+ user , err := mgr .SqlUserClient .Get (ctx , instanceName )
244
+ if err != nil {
245
+ return nil , err
246
+ }
247
+ return user .GetObjectMeta (), nil
242
248
},
243
249
},
244
250
}
@@ -251,8 +257,15 @@ func WaitForCnrmResourcesToGoAway(ctx context.Context, name string, mgr *common_
251
257
b = retry .WithMaxDuration (5 * time .Minute , b )
252
258
253
259
err := retry .Do (ctx , b , func (ctx context.Context ) error {
254
- err := r .getter ()
260
+ obj , err := r .getter ()
255
261
if err == nil {
262
+ for _ , ref := range obj .GetOwnerReferences () {
263
+ if ref .Name == applicationName {
264
+ logger .Info ("resource already transferred to target application" , "kind" , r .kind )
265
+ return nil
266
+ }
267
+ }
268
+
256
269
logger .Info ("waiting for resource to go away..." , "kind" , r .kind )
257
270
return retry .RetryableError (errors .New ("resource still exists" ))
258
271
}
0 commit comments