pull/3814/merge
AlawnWong 8 years ago committed by GitHub
commit 663c108bdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -18,7 +18,6 @@ package tiller
import ( import (
"bytes" "bytes"
"errors"
"fmt" "fmt"
"log" "log"
"strings" "strings"
@ -173,8 +172,9 @@ func DeleteRelease(rel *release.Release, vs chartutil.VersionSet, kubeClient env
if err := kubeClient.Delete(rel.Namespace, b); err != nil { if err := kubeClient.Delete(rel.Namespace, b); err != nil {
log.Printf("uninstall: Failed deletion of %q: %s", rel.Name, err) log.Printf("uninstall: Failed deletion of %q: %s", rel.Name, err)
if err == kube.ErrNoObjectsVisited { if err == kube.ErrNoObjectsVisited {
// Rewrite the message from "no objects visited" // 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) 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.Status.Code = release.Status_DELETED
rel.Info.Description = "Deletion complete" 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 { if req.Purge {
s.Log("purge requested for %s", req.Name) s.Log("purge requested for %s", req.Name)
err := s.purgeReleases(rels...) err := s.purgeReleases(rels...)
@ -108,13 +123,6 @@ func (s *ReleaseServer) UninstallRelease(c ctx.Context, req *services.UninstallR
return res, err 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 return res, nil
} }

Loading…
Cancel
Save