MCPcopy Create free account
hub / github.com/cloudbase/garm / Stop

Method Stop

runner/runner.go:635–699  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

633}
634
635func (r *Runner) Stop() error {
636 r.mux.Lock()
637 defer r.mux.Unlock()
638
639 r.running = false
640 if r.quit != nil {
641 close(r.quit)
642 r.quit = nil
643 }
644
645 repos, err := r.poolManagerCtrl.GetRepoPoolManagers()
646 if err != nil {
647 return fmt.Errorf("error fetching repo pool managers: %w", err)
648 }
649
650 orgs, err := r.poolManagerCtrl.GetOrgPoolManagers()
651 if err != nil {
652 return fmt.Errorf("error fetching org pool managers: %w", err)
653 }
654
655 enterprises, err := r.poolManagerCtrl.GetEnterprisePoolManagers()
656 if err != nil {
657 return fmt.Errorf("error fetching enterprise pool managers: %w", err)
658 }
659
660 g, _ := errgroup.WithContext(r.ctx)
661
662 for _, repo := range repos {
663 poolMgr := repo
664 g.Go(func() error {
665 err := poolMgr.Stop()
666 if err != nil {
667 return fmt.Errorf("failed to stop repo pool manager: %w", err)
668 }
669 return poolMgr.Wait()
670 })
671 }
672
673 for _, org := range orgs {
674 poolMgr := org
675 g.Go(func() error {
676 err := poolMgr.Stop()
677 if err != nil {
678 return fmt.Errorf("failed to stop org pool manager: %w", err)
679 }
680 return poolMgr.Wait()
681 })
682 }
683
684 for _, enterprise := range enterprises {
685 poolMgr := enterprise
686 g.Go(func() error {
687 err := poolMgr.Stop()
688 if err != nil {
689 return fmt.Errorf("failed to stop enterprise pool manager: %w", err)
690 }
691 return poolMgr.Wait()
692 })

Callers

nothing calls this directly

Calls 9

LockMethod · 0.65
UnlockMethod · 0.65
GetRepoPoolManagersMethod · 0.65
GetOrgPoolManagersMethod · 0.65
StopMethod · 0.65
WaitMethod · 0.65
WithContextMethod · 0.45

Tested by

no test coverage detected