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