@@ -296,28 +296,9 @@ func (r *OnboardingController) smokeTest(ctx context.Context, node *corev1.Node,
296296func (r * OnboardingController ) completeOnboarding (ctx context.Context , host string , node * corev1.Node , hv * kvmv1.Hypervisor ) (ctrl.Result , error ) {
297297 log := logger .FromContext (ctx )
298298
299- serverPrefix := fmt .Sprintf ("%v-%v" , testPrefixName , host )
300-
301- serverPages , err := servers .ListSimple (r .testComputeClient , servers.ListOpts {
302- Name : serverPrefix ,
303- }).AllPages (ctx )
304-
305- if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
306- return ctrl.Result {}, err
307- }
308-
309- serverList , err := servers .ExtractServers (serverPages )
299+ err := r .deleteTestServers (ctx , host )
310300 if err != nil {
311- return ctrl.Result {}, err
312- }
313-
314- for _ , server := range serverList {
315- log .Info ("deleting server" , "name" , server .Name )
316- err = servers .Delete (ctx , r .testComputeClient , server .ID ).ExtractErr ()
317- if gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
318- continue
319- }
320- return ctrl.Result {}, err
301+ return ctrl.Result {}, fmt .Errorf ("failed to delete test servers due to %w" , err )
321302 }
322303
323304 aggs , err := aggregatesByName (ctx , r .computeClient )
@@ -355,6 +336,35 @@ func (r *OnboardingController) completeOnboarding(ctx context.Context, host stri
355336 return ctrl.Result {}, r .Status ().Update (ctx , hv )
356337}
357338
339+ func (r * OnboardingController ) deleteTestServers (ctx context.Context , host string ) error {
340+ log := logger .FromContext (ctx )
341+ serverPrefix := fmt .Sprintf ("%v-%v" , testPrefixName , host )
342+
343+ serverPages , err := servers .ListSimple (r .testComputeClient , servers.ListOpts {
344+ Name : serverPrefix ,
345+ }).AllPages (ctx )
346+
347+ if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
348+ return err
349+ }
350+
351+ serverList , err := servers .ExtractServers (serverPages )
352+ if err != nil {
353+ return err
354+ }
355+
356+ errs := make ([]error , 0 )
357+ for _ , server := range serverList {
358+ log .Info ("deleting server" , "name" , server .Name )
359+ err = servers .Delete (ctx , r .testComputeClient , server .ID ).ExtractErr ()
360+ if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
361+ errs = append (errs , err )
362+ }
363+ }
364+
365+ return errors .Join (errs ... )
366+ }
367+
358368func (r * OnboardingController ) ensureNovaProperties (ctx context.Context , hv * kvmv1.Hypervisor ) error {
359369 node := & corev1.Node {}
360370 if err := r .Get (ctx , types.NamespacedName {Name : hv .Name }, node ); err != nil {
0 commit comments