(ctx context.Context, waitForDelete bool, objs ...client.Object)
| 205 | } |
| 206 | |
| 207 | func (u *Uninstall) deleteObjects(ctx context.Context, waitForDelete bool, objs ...client.Object) error { |
| 208 | for _, obj := range objs { |
| 209 | if obj == nil { |
| 210 | continue |
| 211 | } |
| 212 | gvks, _, err := u.config.Scheme.ObjectKinds(obj) |
| 213 | if err != nil { |
| 214 | return err |
| 215 | } |
| 216 | lowerKind := strings.ToLower(gvks[0].Kind) |
| 217 | if err := u.config.Client.Delete(ctx, obj); err != nil && !apierrors.IsNotFound(err) { |
| 218 | return fmt.Errorf("delete %s %q: %v", lowerKind, obj.GetName(), err) |
| 219 | } else if err == nil { |
| 220 | u.Logf("%s %q deleted", lowerKind, obj.GetName()) |
| 221 | } |
| 222 | if waitForDelete { |
| 223 | key := client.ObjectKeyFromObject(obj) |
| 224 | if err := wait.PollUntilContextCancel(ctx, 250*time.Millisecond, false, func(pctx context.Context) (bool, error) { |
| 225 | if err := u.config.Client.Get(pctx, key, obj); apierrors.IsNotFound(err) { |
| 226 | return true, nil |
| 227 | } else if err != nil { |
| 228 | return false, err |
| 229 | } |
| 230 | return false, nil |
| 231 | }); err != nil { |
| 232 | return fmt.Errorf("wait for %s deleted: %v", lowerKind, err) |
| 233 | } |
| 234 | } |
| 235 | } |
| 236 | return nil |
| 237 | } |
| 238 | |
| 239 | // getCRDs returns the list of CRDs required by a CSV. |
| 240 | func getCRDs(csv *v1alpha1.ClusterServiceVersion) (crds []client.Object) { |
no test coverage detected