diff --git a/pkg/action/uninstall.go b/pkg/action/uninstall.go index 6de570753..163af290e 100644 --- a/pkg/action/uninstall.go +++ b/pkg/action/uninstall.go @@ -17,6 +17,7 @@ limitations under the License. package action import ( + "errors" "fmt" "log/slog" "strings" @@ -28,6 +29,7 @@ import ( "helm.sh/helm/v4/pkg/kube" releaseutil "helm.sh/helm/v4/pkg/release/util" release "helm.sh/helm/v4/pkg/release/v1" + "helm.sh/helm/v4/pkg/storage/driver" helmtime "helm.sh/helm/v4/pkg/time" ) @@ -67,14 +69,13 @@ func (u *Uninstall) Run(name string) (*release.UninstallReleaseResponse, error) if u.DryRun { r, err := u.cfg.releaseContent(name, 0) - switch { - case err == nil: - fallthrough - case u.IgnoreNotFound && errors.As(err, &driver.ErrReleaseNotFound): - return &release.UninstallReleaseResponse{Release: r}, nil - default: + if err != nil { + if u.IgnoreNotFound && errors.Is(err, driver.ErrReleaseNotFound) { + return nil, nil + } return &release.UninstallReleaseResponse{}, err } + return &release.UninstallReleaseResponse{Release: r}, nil } if err := chartutil.ValidateReleaseName(name); err != nil { diff --git a/pkg/action/uninstall_test.go b/pkg/action/uninstall_test.go index 8e8af7493..44bd66d96 100644 --- a/pkg/action/uninstall_test.go +++ b/pkg/action/uninstall_test.go @@ -41,7 +41,7 @@ func TestUninstallRelease_dryRun_ignoreNotFound(t *testing.T) { is := assert.New(t) res, err := unAction.Run("release-non-exist") - is.NotNil(res) + is.Nil(res) is.NoError(err) }