make sure delete waiting doesn't re-evaluate the resource lists

pull/8/head
David Eads 2018-06-22 08:54:00 -04:00
parent 23b4690d00
commit 0e3f921457
1 changed files with 4 additions and 1 deletions

View File

@ -234,10 +234,12 @@ func (o *DeleteOptions) DeleteResult(r *resource.Result) error {
if o.IgnoreNotFound { if o.IgnoreNotFound {
r = r.IgnoreErrors(errors.IsNotFound) r = r.IgnoreErrors(errors.IsNotFound)
} }
deletedInfos := []*resource.Info{}
err := r.Visit(func(info *resource.Info, err error) error { err := r.Visit(func(info *resource.Info, err error) error {
if err != nil { if err != nil {
return err return err
} }
deletedInfos = append(deletedInfos, info)
found++ found++
options := &metav1.DeleteOptions{} options := &metav1.DeleteOptions{}
@ -249,6 +251,7 @@ func (o *DeleteOptions) DeleteResult(r *resource.Result) error {
policy = metav1.DeletePropagationOrphan policy = metav1.DeletePropagationOrphan
} }
options.PropagationPolicy = &policy options.PropagationPolicy = &policy
return o.deleteResource(info, options) return o.deleteResource(info, options)
}) })
if err != nil { if err != nil {
@ -273,7 +276,7 @@ func (o *DeleteOptions) DeleteResult(r *resource.Result) error {
effectiveTimeout = 168 * time.Hour effectiveTimeout = 168 * time.Hour
} }
waitOptions := kubectlwait.WaitOptions{ waitOptions := kubectlwait.WaitOptions{
ResourceFinder: genericclioptions.ResourceFinderForResult(r), ResourceFinder: genericclioptions.ResourceFinderForResult(resource.InfoListVisitor(deletedInfos)),
DynamicClient: o.DynamicClient, DynamicClient: o.DynamicClient,
Timeout: effectiveTimeout, Timeout: effectiveTimeout,