refactor: use resource.Info metadata for delete pre-check

Signed-off-by: raphael <rdgabmomoh@gmail.com>
pull/32373/head
raphael 3 months ago
parent 538480c31c
commit 998ecee347

@ -145,30 +145,23 @@ func (w *statusWaiter) waitForDelete(ctx context.Context, resourceList ResourceL
defer cancel() defer cancel()
resources := []object.ObjMetadata{} resources := []object.ObjMetadata{}
for _, resource := range resourceList { for _, resource := range resourceList {
mapping := resource.Mapping
if mapping == nil {
gvk := resource.Object.GetObjectKind().GroupVersionKind() gvk := resource.Object.GetObjectKind().GroupVersionKind()
mapping, err := w.restMapper.RESTMapping(gvk.GroupKind(), gvk.Version) var err error
mapping, err = w.restMapper.RESTMapping(gvk.GroupKind(), gvk.Version)
if err != nil { if err != nil {
return err return err
} }
var name, namespace string
if u, ok := resource.Object.(*unstructured.Unstructured); ok {
name = u.GetName()
namespace = u.GetNamespace()
} else {
accessor, err := meta.Accessor(resource.Object)
if err != nil {
return err
}
name = accessor.GetName()
namespace = accessor.GetNamespace()
} }
var resourceClient dynamic.ResourceInterface var resourceClient dynamic.ResourceInterface
if namespace != "" { if resource.Namespace != "" {
resourceClient = w.client.Resource(mapping.Resource).Namespace(namespace) resourceClient = w.client.Resource(mapping.Resource).Namespace(resource.Namespace)
} else { } else {
resourceClient = w.client.Resource(mapping.Resource) resourceClient = w.client.Resource(mapping.Resource)
} }
_, err = resourceClient.Get(ctx, name, metav1.GetOptions{}) _, err := resourceClient.Get(ctx, resource.Name, metav1.GetOptions{})
if err != nil { if err != nil {
if apierrors.IsNotFound(err) { if apierrors.IsNotFound(err) {
continue continue

Loading…
Cancel
Save