Some resources are not deleted, but the release is purged.

pull/3814/head
wanglei7217 8 years ago
parent 58e4b6ac61
commit d636d8ea9b

@ -18,7 +18,6 @@ package tiller
import (
"bytes"
"errors"
"fmt"
"log"
"strings"
@ -174,7 +173,8 @@ func DeleteRelease(rel *release.Release, vs chartutil.VersionSet, kubeClient env
log.Printf("uninstall: Failed deletion of %q: %s", rel.Name, err)
if err == kube.ErrNoObjectsVisited {
// Rewrite the message from "no objects visited"
err = errors.New("object not found, skipping delete")
log.Printf("object = %q not found, skipping delete.", rel.Name)
continue
}
errs = append(errs, err)
}

@ -96,9 +96,24 @@ func (s *ReleaseServer) UninstallRelease(c ctx.Context, req *services.UninstallR
}
}
// if some resources delete failed, set status to UNKNOWN and return.
if len(es) > 0 {
rel.Info.Status.Code = release.Status_UNKNOWN
rel.Info.Description = "Deletion some resources failed"
if err := s.env.Releases.Update(rel); err != nil {
s.Log("uninstall: Failed to store updated release: %s", err)
}
return res, fmt.Errorf("Deletion failed! Because of %d error(s): %s", len(es), strings.Join(es, "; "))
}
rel.Info.Status.Code = release.Status_DELETED
rel.Info.Description = "Deletion complete"
if err := s.env.Releases.Update(rel); err != nil {
s.Log("uninstall: Failed to store updated release: %s", err)
return res, err
}
if req.Purge {
s.Log("purge requested for %s", req.Name)
err := s.purgeReleases(rels...)
@ -108,13 +123,6 @@ func (s *ReleaseServer) UninstallRelease(c ctx.Context, req *services.UninstallR
return res, err
}
if err := s.env.Releases.Update(rel); err != nil {
s.Log("uninstall: Failed to store updated release: %s", err)
}
if len(es) > 0 {
return res, fmt.Errorf("deletion completed with %d error(s): %s", len(es), strings.Join(es, "; "))
}
return res, nil
}

Loading…
Cancel
Save