feature(helm) delete command continues after failed release deletions

- Updates the error message returned from FakeClient DeleteRelease to be
  consistent with other FakeClient methods.
- Prevents Helm delete command from immediatley failing if any releases throw
  an error, instead trying to delete each release.

Closes #1665
pull/2871/head
John Bonham 8 years ago
parent a2323f8658
commit 5ea004a3ff

@ -64,15 +64,20 @@ func newDeleteCmd(c helm.Interface, out io.Writer) *cobra.Command {
} }
del.client = ensureHelmClient(del.client) del.client = ensureHelmClient(del.client)
var err error = nil
for i := 0; i < len(args); i++ { for i := 0; i < len(args); i++ {
del.name = args[i] del.name = args[i]
if err := del.run(); err != nil { if relErr := del.run(); relErr != nil {
return err if err != nil {
err = fmt.Errorf("%s, %s", err, relErr)
} else {
err = fmt.Errorf("%s", relErr)
}
} else {
fmt.Fprintf(out, "release \"%s\" deleted\n", del.name)
} }
fmt.Fprintf(out, "release \"%s\" deleted\n", del.name)
} }
return nil return err
}, },
} }

@ -61,6 +61,13 @@ func TestDelete(t *testing.T) {
args: []string{}, args: []string{},
err: true, err: true,
}, },
{
name: "delete after failure",
args: []string{"return-error", "aeneas"},
flags: []string{},
expected: "release \"aeneas\" deleted\n",
err: true,
},
} }
runReleaseCases(t, tests, func(c *helm.FakeClient, out io.Writer) *cobra.Command { runReleaseCases(t, tests, func(c *helm.FakeClient, out io.Writer) *cobra.Command {
return newDeleteCmd(c, out) return newDeleteCmd(c, out)

@ -61,6 +61,9 @@ func (c *FakeClient) InstallReleaseFromChart(chart *chart.Chart, ns string, opts
// DeleteRelease returns nil, nil // DeleteRelease returns nil, nil
func (c *FakeClient) DeleteRelease(rlsName string, opts ...DeleteOption) (*rls.UninstallReleaseResponse, error) { func (c *FakeClient) DeleteRelease(rlsName string, opts ...DeleteOption) (*rls.UninstallReleaseResponse, error) {
if rlsName == "return-error" {
return nil, fmt.Errorf("No such release: %s", rlsName)
}
return nil, nil return nil, nil
} }

Loading…
Cancel
Save