Skip to content

Commit b4821d8

Browse files
Syspretor玖宇
andauthored
Optimize helm install/uninstall to avoid releases listing (#3)
Signed-off-by: 玖宇 <[email protected]> Co-authored-by: 玖宇 <[email protected]>
1 parent d80839c commit b4821d8

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

pkg/action/install.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -538,12 +538,13 @@ func (i *Install) availableName() error {
538538
return nil
539539
}
540540

541-
h, err := i.cfg.Releases.History(start)
542-
if err != nil || len(h) < 1 {
543-
return nil
541+
rel, err := i.cfg.Releases.Get(start, 1)
542+
if err != nil {
543+
if errors.Is(err, driver.ErrReleaseNotFound) {
544+
return nil
545+
}
546+
return fmt.Errorf("fail to get release \"%s\": %v", start, err)
544547
}
545-
releaseutil.Reverse(h, releaseutil.SortByRevision)
546-
rel := h[0]
547548

548549
if st := rel.Info.Status; i.Replace && (st == release.StatusUninstalled || st == release.StatusFailed) {
549550
return nil

pkg/action/uninstall.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,17 @@ func (u *Uninstall) Run(name string) (*release.UninstallReleaseResponse, error)
7373
return nil, errors.Errorf("uninstall: Release name is invalid: %s", name)
7474
}
7575

76-
rels, err := u.cfg.Releases.History(name)
76+
rel, err := u.cfg.Releases.Get(name, 1)
7777
if err != nil {
7878
if u.IgnoreNotFound {
7979
return nil, nil
8080
}
8181
return nil, errors.Wrapf(err, "uninstall: Release not loaded: %s", name)
8282
}
83-
if len(rels) < 1 {
83+
if rel == nil {
8484
return nil, errMissingRelease
8585
}
86-
87-
releaseutil.SortByRevision(rels)
88-
rel := rels[len(rels)-1]
86+
rels := []*release.Release{rel}
8987

9088
// TODO: Are there any cases where we want to force a delete even if it's
9189
// already marked deleted?

0 commit comments

Comments
 (0)