@@ -261,27 +261,9 @@ func (r *OnboardingController) smokeTest(ctx context.Context, hv *kvmv1.Hypervis
261261func (r * OnboardingController ) completeOnboarding (ctx context.Context , host string , hv * kvmv1.Hypervisor ) (ctrl.Result , error ) {
262262 log := logger .FromContext (ctx )
263263
264- serverPrefix := fmt .Sprintf ("%v-%v" , testPrefixName , host )
265-
266- serverPages , err := servers .ListSimple (r .testComputeClient , servers.ListOpts {
267- Name : serverPrefix ,
268- }).AllPages (ctx )
269-
270- if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
271- return ctrl.Result {}, err
272- }
273-
274- serverList , err := servers .ExtractServers (serverPages )
264+ err := r .deleteTestServers (ctx , host )
275265 if err != nil {
276- return ctrl.Result {}, err
277- }
278-
279- for _ , server := range serverList {
280- log .Info ("deleting server" , "name" , server .Name )
281- err = servers .Delete (ctx , r .testComputeClient , server .ID ).ExtractErr ()
282- if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
283- return ctrl.Result {}, err
284- }
266+ return ctrl.Result {}, fmt .Errorf ("failed to delete test servers due to %w" , err )
285267 }
286268
287269 aggs , err := aggregatesByName (ctx , r .computeClient )
@@ -319,6 +301,35 @@ func (r *OnboardingController) completeOnboarding(ctx context.Context, host stri
319301 return ctrl.Result {}, r .Status ().Update (ctx , hv )
320302}
321303
304+ func (r * OnboardingController ) deleteTestServers (ctx context.Context , host string ) error {
305+ log := logger .FromContext (ctx )
306+ serverPrefix := fmt .Sprintf ("%v-%v" , testPrefixName , host )
307+
308+ serverPages , err := servers .ListSimple (r .testComputeClient , servers.ListOpts {
309+ Name : serverPrefix ,
310+ }).AllPages (ctx )
311+
312+ if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
313+ return err
314+ }
315+
316+ serverList , err := servers .ExtractServers (serverPages )
317+ if err != nil {
318+ return err
319+ }
320+
321+ errs := make ([]error , 0 )
322+ for _ , server := range serverList {
323+ log .Info ("deleting server" , "name" , server .Name )
324+ err = servers .Delete (ctx , r .testComputeClient , server .ID ).ExtractErr ()
325+ if err != nil && ! gophercloud .ResponseCodeIs (err , http .StatusNotFound ) {
326+ errs = append (errs , err )
327+ }
328+ }
329+
330+ return errors .Join (errs ... )
331+ }
332+
322333func (r * OnboardingController ) ensureNovaProperties (ctx context.Context , hv * kvmv1.Hypervisor ) error {
323334 hypervisorAddress := hv .Labels [corev1 .LabelHostname ]
324335 if hypervisorAddress == "" {
0 commit comments