feat: improve summary for releases failed to delete (#1735)
Signed-off-by: Felipe Santos <felipecassiors@gmail.com>
This commit is contained in:
parent
c3913fb9ca
commit
fbf40b600f
|
|
@ -447,6 +447,7 @@ type AffectedReleases struct {
|
||||||
Upgraded []*ReleaseSpec
|
Upgraded []*ReleaseSpec
|
||||||
Deleted []*ReleaseSpec
|
Deleted []*ReleaseSpec
|
||||||
Failed []*ReleaseSpec
|
Failed []*ReleaseSpec
|
||||||
|
DeleteFailed []*ReleaseSpec
|
||||||
}
|
}
|
||||||
|
|
||||||
// DefaultEnv is the default environment to use for helm commands
|
// DefaultEnv is the default environment to use for helm commands
|
||||||
|
|
@ -878,13 +879,13 @@ func (st *HelmState) DeleteReleasesForSync(affectedReleases *AffectedReleases, h
|
||||||
m.Lock()
|
m.Lock()
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
if _, err := st.triggerReleaseEvent("preuninstall", nil, release, "sync"); err != nil {
|
if _, err := st.triggerReleaseEvent("preuninstall", nil, release, "sync"); err != nil {
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, release)
|
affectedReleases.DeleteFailed = append(affectedReleases.Failed, release)
|
||||||
relErr = newReleaseFailedError(release, err)
|
relErr = newReleaseFailedError(release, err)
|
||||||
} else if err := helm.DeleteRelease(context, release.Name, deletionFlags...); err != nil {
|
} else if err := helm.DeleteRelease(context, release.Name, deletionFlags...); err != nil {
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, release)
|
affectedReleases.DeleteFailed = append(affectedReleases.Failed, release)
|
||||||
relErr = newReleaseFailedError(release, err)
|
relErr = newReleaseFailedError(release, err)
|
||||||
} else if _, err := st.triggerReleaseEvent("postuninstall", nil, release, "sync"); err != nil {
|
} else if _, err := st.triggerReleaseEvent("postuninstall", nil, release, "sync"); err != nil {
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, release)
|
affectedReleases.DeleteFailed = append(affectedReleases.Failed, release)
|
||||||
relErr = newReleaseFailedError(release, err)
|
relErr = newReleaseFailedError(release, err)
|
||||||
} else {
|
} else {
|
||||||
affectedReleases.Deleted = append(affectedReleases.Deleted, release)
|
affectedReleases.Deleted = append(affectedReleases.Deleted, release)
|
||||||
|
|
@ -2146,7 +2147,7 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel
|
||||||
if _, err := st.triggerReleaseEvent("preuninstall", nil, &release, "delete"); err != nil {
|
if _, err := st.triggerReleaseEvent("preuninstall", nil, &release, "delete"); err != nil {
|
||||||
release.duration = time.Since(start)
|
release.duration = time.Since(start)
|
||||||
|
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
affectedReleases.DeleteFailed = append(affectedReleases.Failed, &release)
|
||||||
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
@ -2154,14 +2155,14 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel
|
||||||
if err := helm.DeleteRelease(context, release.Name, flags...); err != nil {
|
if err := helm.DeleteRelease(context, release.Name, flags...); err != nil {
|
||||||
release.duration = time.Since(start)
|
release.duration = time.Since(start)
|
||||||
|
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
affectedReleases.DeleteFailed = append(affectedReleases.Failed, &release)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := st.triggerReleaseEvent("postuninstall", nil, &release, "delete"); err != nil {
|
if _, err := st.triggerReleaseEvent("postuninstall", nil, &release, "delete"); err != nil {
|
||||||
release.duration = time.Since(start)
|
release.duration = time.Since(start)
|
||||||
|
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
affectedReleases.DeleteFailed = append(affectedReleases.Failed, &release)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
release.duration = time.Since(start)
|
release.duration = time.Since(start)
|
||||||
|
|
@ -3452,6 +3453,21 @@ func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) {
|
||||||
}
|
}
|
||||||
logger.Info(tbl.String())
|
logger.Info(tbl.String())
|
||||||
}
|
}
|
||||||
|
if len(ar.DeleteFailed) > 0 {
|
||||||
|
logger.Info("\nFAILED TO DELETE RELEASES:")
|
||||||
|
tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"},
|
||||||
|
prettytable.Column{Header: "NAMESPACE", MinWidth: 6},
|
||||||
|
prettytable.Column{Header: "DURATION", AlignRight: true},
|
||||||
|
)
|
||||||
|
tbl.Separator = " "
|
||||||
|
for _, release := range ar.DeleteFailed {
|
||||||
|
err := tbl.AddRow(release.Name, release.Namespace, release.duration.Round(time.Second))
|
||||||
|
if err != nil {
|
||||||
|
logger.Warn("Could not add row, %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
logger.Info(tbl.String())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func escape(value string) string {
|
func escape(value string) string {
|
||||||
|
|
|
||||||
|
|
@ -2808,7 +2808,7 @@ func TestHelmState_Delete(t *testing.T) {
|
||||||
affectedReleases := AffectedReleases{}
|
affectedReleases := AffectedReleases{}
|
||||||
errs := state.DeleteReleases(&affectedReleases, helm, 1, tt.purge, "")
|
errs := state.DeleteReleases(&affectedReleases, helm, 1, tt.purge, "")
|
||||||
if errs != nil {
|
if errs != nil {
|
||||||
if !tt.wantErr || len(affectedReleases.Failed) != 1 || affectedReleases.Failed[0].Name != release.Name {
|
if !tt.wantErr || len(affectedReleases.DeleteFailed) != 1 || affectedReleases.DeleteFailed[0].Name != release.Name {
|
||||||
t.Errorf("DeleteReleases() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr)
|
t.Errorf("DeleteReleases() for %s error = %v, wantErr %v", tt.name, errs, tt.wantErr)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue