func deleteOSPolicies()

in cleanerupper/cleanerupper.go [1119:1149]


func deleteOSPolicies(ctx context.Context, clients Clients, ospolicies []*osconfigv1alphapb.OSPolicyAssignment, delete PolicyFunc, dryRun bool) ([]string, []error) {
	var wg sync.WaitGroup
	var deletedMu sync.Mutex
	var deleted []string
	var errsMu sync.Mutex
	var errs []error
	for _, osp := range ospolicies {
		if !delete(osp) {
			continue
		}
		wg.Add(1)
		go func(osp *osconfigv1alphapb.OSPolicyAssignment) {
			defer wg.Done()
			if !dryRun {
				op, err := clients.OSConfigZonal.DeleteOSPolicyAssignment(ctx, &osconfigv1alphapb.DeleteOSPolicyAssignmentRequest{Name: osp.GetName()})
				if err != nil {
					errsMu.Lock()
					defer errsMu.Unlock()
					errs = append(errs, fmt.Errorf("Failed to delete OSPolicy assignment %s: %v", osp.GetName(), err))
					return
				}
				op.Wait(ctx)
			}
			deletedMu.Lock()
			defer deletedMu.Unlock()
			deleted = append(deleted, osp.Name)
		}(osp)
	}
	wg.Wait()
	return deleted, errs
}