@@ -581,25 +581,30 @@ func checkAndDeleteMigrationPlans(ctx context.Context, restConfig *rest.Config)
581581 if err != nil {
582582 return false , "Failed to create dynamic client"
583583 }
584+
584585 list , err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
585586 if err != nil {
586587 return false , "Failed to list MigrationPlans"
587588 }
589+
588590 for _ , item := range list .Items {
589- err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).Delete (ctx , item .GetName (), metav1.DeleteOptions {})
591+ _ = dynamicClient .Resource (gvr ).Namespace ("migration-system" ).Delete (ctx , item .GetName (), metav1.DeleteOptions {})
592+ }
593+
594+ timeout := 5 * time .Minute
595+ interval := 5 * time .Second
596+ for start := time .Now (); time .Since (start ) < timeout ; {
597+ list , err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
590598 if err != nil {
591- return false , "Failed to delete MigrationPlan: " + item . GetName ()
599+ return false , "Failed to re-list MigrationPlans during polling"
592600 }
601+ if len (list .Items ) == 0 {
602+ return true , "No MigrationPlans remaining"
603+ }
604+ time .Sleep (interval )
593605 }
594- time .Sleep (2 * time .Second )
595- list , err = dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
596- if err != nil {
597- return false , "Failed to re-list MigrationPlans"
598- }
599- if len (list .Items ) == 0 {
600- return true , "No MigrationPlans remaining"
601- }
602- return false , "MigrationPlans still exist"
606+
607+ return false , "MigrationPlans still exist after 5 minute timeout"
603608}
604609
605610func checkAndDeleteRollingMigrationPlans (ctx context.Context , restConfig * rest.Config ) (bool , string ) {
@@ -608,33 +613,34 @@ func checkAndDeleteRollingMigrationPlans(ctx context.Context, restConfig *rest.C
608613 if err != nil {
609614 return false , "Failed to create dynamic client"
610615 }
616+
611617 list , err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
612618 if err != nil {
613619 return false , "Failed to list RollingMigrationPlans"
614620 }
621+
615622 for _ , item := range list .Items {
616- err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).Delete (ctx , item .GetName (), metav1.DeleteOptions {})
623+ _ = dynamicClient .Resource (gvr ).Namespace ("migration-system" ).Delete (ctx , item .GetName (), metav1.DeleteOptions {})
624+ }
625+
626+ timeout := 5 * time .Minute
627+ interval := 5 * time .Second
628+ for start := time .Now (); time .Since (start ) < timeout ; {
629+ list , err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
617630 if err != nil {
618- return false , "Failed to delete RollingMigrationPlan: " + item . GetName ()
631+ return false , "Failed to re-list RollingMigrationPlans during polling"
619632 }
633+ if len (list .Items ) == 0 {
634+ return true , "No RollingMigrationPlans remaining"
635+ }
636+ time .Sleep (interval )
620637 }
621- time .Sleep (2 * time .Second )
622- list , err = dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
623- if err != nil {
624- return false , "Failed to re-list RollingMigrationPlans"
625- }
626- if len (list .Items ) == 0 {
627- return true , "No RollingMigrationPlans remaining"
628- }
629- return false , "RollingMigrationPlans still exist"
638+
639+ return false , "RollingMigrationPlans still exist after 5 minute timeout"
630640}
631641
632642func checkAndScaleDownAgent (ctx context.Context , restConfig * rest.Config ) (bool , string ) {
633- gvr := schema.GroupVersionResource {
634- Group : "vjailbreak.k8s.pf9.io" ,
635- Version : "v1alpha1" ,
636- Resource : "vjailbreaknodes" ,
637- }
643+ gvr := schema.GroupVersionResource {Group : "vjailbreak.k8s.pf9.io" , Version : "v1alpha1" , Resource : "vjailbreaknodes" }
638644 dynamicClient , err := dynamic .NewForConfig (restConfig )
639645 if err != nil {
640646 return false , "Failed to create dynamic client"
@@ -646,22 +652,27 @@ func checkAndScaleDownAgent(ctx context.Context, restConfig *rest.Config) (bool,
646652 }
647653
648654 for _ , item := range list .Items {
649- err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).Delete (ctx , item .GetName (), metav1.DeleteOptions {})
650- if err != nil {
651- return false , "Failed to delete VjailbreakNode: " + item .GetName ()
655+ if item .GetName () == "vjailbreak-master" {
656+ continue
652657 }
658+ _ = dynamicClient .Resource (gvr ).Namespace ("migration-system" ).Delete (ctx , item .GetName (), metav1.DeleteOptions {})
653659 }
654660
655- time .Sleep (2 * time .Second )
656- list , err = dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
657- if err != nil {
658- return false , "Failed to re-list VjailbreakNodes"
659- }
660- if len (list .Items ) == 0 || (len (list .Items ) == 1 && list .Items [0 ].GetName () == "vjailbreak-master" ) {
661- return true , "Agents scaled down"
661+ timeout := 5 * time .Minute
662+ interval := 5 * time .Second
663+ for start := time .Now (); time .Since (start ) < timeout ; {
664+ list , err := dynamicClient .Resource (gvr ).Namespace ("migration-system" ).List (ctx , metav1.ListOptions {})
665+ if err != nil {
666+ return false , "Failed to re-list VjailbreakNodes"
667+ }
668+
669+ if len (list .Items ) == 0 || (len (list .Items ) == 1 && list .Items [0 ].GetName () == "vjailbreak-master" ) {
670+ return true , "Agents scaled down"
671+ }
672+ time .Sleep (interval )
662673 }
663674
664- return false , "Non-master agents still exist"
675+ return false , "Non-master agents still exist after 5 minute timeout "
665676}
666677
667678func checkAndDeleteSecret (ctx context.Context , kubeClient client.Client , restConfig * rest.Config , credType string ) (bool , string ) {
0 commit comments