MCPcopy
hub / github.com/helm/helm / availableName

Method availableName

pkg/action/install.go:608–636  ·  view source on GitHub ↗

availableName tests whether a name is available Roughly, this will return an error if name is - empty - too long - already in use, and not deleted - used by a deleted release, and i.Replace is false

()

Source from the content-addressed store, hash-verified

606// - already in use, and not deleted
607// - used by a deleted release, and i.Replace is false
608func (i *Install) availableName() error {
609 start := i.ReleaseName
610
611 if err := chartutil.ValidateReleaseName(start); err != nil {
612 return fmt.Errorf("release name %q: %w", start, err)
613 }
614 // On dry run, bail here
615 if isDryRun(i.DryRunStrategy) {
616 return nil
617 }
618
619 h, err := i.cfg.Releases.History(start)
620 if err != nil || len(h) < 1 {
621 return nil
622 }
623
624 hl, err := releaseListToV1List(h)
625 if err != nil {
626 return err
627 }
628
629 releaseutil.Reverse(hl, releaseutil.SortByRevision)
630 rel := hl[0]
631
632 if st := rel.Info.Status; i.Replace && (st == rcommon.StatusUninstalled || st == rcommon.StatusFailed) {
633 return nil
634 }
635 return errors.New("cannot reuse a name that is still in use")
636}
637
638func releaseListToV1List(ls []ri.Releaser) ([]*release.Release, error) {
639 rls := make([]*release.Release, 0, len(ls))

Callers 1

RunWithContextMethod · 0.95

Calls 3

isDryRunFunction · 0.85
HistoryMethod · 0.80
releaseListToV1ListFunction · 0.70

Tested by

no test coverage detected