()
| 699 | } |
| 700 | |
| 701 | func (r *Runner) Wait() error { |
| 702 | r.mux.Lock() |
| 703 | defer r.mux.Unlock() |
| 704 | |
| 705 | var wg sync.WaitGroup |
| 706 | |
| 707 | repos, err := r.poolManagerCtrl.GetRepoPoolManagers() |
| 708 | if err != nil { |
| 709 | return fmt.Errorf("error fetching repo pool managers: %w", err) |
| 710 | } |
| 711 | |
| 712 | orgs, err := r.poolManagerCtrl.GetOrgPoolManagers() |
| 713 | if err != nil { |
| 714 | return fmt.Errorf("error fetching org pool managers: %w", err) |
| 715 | } |
| 716 | |
| 717 | enterprises, err := r.poolManagerCtrl.GetEnterprisePoolManagers() |
| 718 | if err != nil { |
| 719 | return fmt.Errorf("error fetching enterprise pool managers: %w", err) |
| 720 | } |
| 721 | |
| 722 | for poolID, repo := range repos { |
| 723 | wg.Add(1) |
| 724 | go func(id string, poolMgr common.PoolManager) { |
| 725 | defer wg.Done() |
| 726 | if err := poolMgr.Wait(); err != nil { |
| 727 | slog.With(slog.Any("error", err)).ErrorContext(r.ctx, "timed out waiting for pool manager to exit", "pool_id", id, "pool_mgr_id", poolMgr.ID()) |
| 728 | } |
| 729 | }(poolID, repo) |
| 730 | } |
| 731 | |
| 732 | for poolID, org := range orgs { |
| 733 | wg.Add(1) |
| 734 | go func(id string, poolMgr common.PoolManager) { |
| 735 | defer wg.Done() |
| 736 | if err := poolMgr.Wait(); err != nil { |
| 737 | slog.With(slog.Any("error", err)).ErrorContext(r.ctx, "timed out waiting for pool manager to exit", "pool_id", id) |
| 738 | } |
| 739 | }(poolID, org) |
| 740 | } |
| 741 | |
| 742 | for poolID, enterprise := range enterprises { |
| 743 | wg.Add(1) |
| 744 | go func(id string, poolMgr common.PoolManager) { |
| 745 | defer wg.Done() |
| 746 | if err := poolMgr.Wait(); err != nil { |
| 747 | slog.With(slog.Any("error", err)).ErrorContext(r.ctx, "timed out waiting for pool manager to exit", "pool_id", id) |
| 748 | } |
| 749 | }(poolID, enterprise) |
| 750 | } |
| 751 | |
| 752 | wg.Wait() |
| 753 | return nil |
| 754 | } |
| 755 | |
| 756 | func (r *Runner) validateHookBody(signature, secret string, body []byte) error { |
| 757 | if secret == "" { |
no test coverage detected