in pkg/dubboctl/internal/kube/client.go [180:218]
func (cli *CtlClient) RemoveObject(obj *unstructured.Unstructured) error {
if obj.GetKind() == "List" {
objList, err := obj.ToList()
if err != nil {
return err
}
for _, item := range objList.Items {
if err := cli.RemoveObject(&item); err != nil {
return err
}
}
return nil
}
key := client.ObjectKeyFromObject(obj)
receiver := &unstructured.Unstructured{}
receiver.SetGroupVersionKind(obj.GroupVersionKind())
if err := retry.RetryOnConflict(wait.Backoff{
Duration: time.Millisecond * 10,
Factor: 2,
Steps: 3,
}, func() error {
if err := cli.Get(context.Background(), key, receiver); err != nil {
if !errors.IsNotFound(err) {
// log
return err
}
return nil
}
if err := cli.Delete(context.Background(), receiver, client.PropagationPolicy(metav1.DeletePropagationBackground)); err != nil {
return err
}
return nil
}); err != nil {
return err
}
return nil
}