From 75a1369794499daa7223271996781cadaf2c1adf Mon Sep 17 00:00:00 2001 From: CI Date: Fri, 22 Jul 2022 12:58:54 -0400 Subject: [PATCH] avoid adding new public function Signed-off-by: CI (cherry picked from commit cd76fcd80557490d2f2ee1204b1bdbf78c738ec9) --- cmd/helm/repo_add.go | 2 +- cmd/helm/repo_update.go | 2 +- pkg/downloader/manager.go | 2 +- pkg/repo/chartrepo.go | 19 ++++++++++--------- pkg/repo/chartrepo_test.go | 2 +- pkg/repo/index_test.go | 4 ++-- 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/cmd/helm/repo_add.go b/cmd/helm/repo_add.go index a4743d605c3..e13df7ad826 100644 --- a/cmd/helm/repo_add.go +++ b/cmd/helm/repo_add.go @@ -207,7 +207,7 @@ func (o *repoAddOptions) run(out io.Writer) error { if o.repoCache != "" { r.CachePath = o.repoCache } - if _, _, err := r.DownloadIndexFile(); err != nil { + if _, err := r.DownloadIndexFile(); err != nil { return errors.Wrapf(err, "looks like %q is not a valid chart repository or cannot be reached", o.url) } diff --git a/cmd/helm/repo_update.go b/cmd/helm/repo_update.go index 122293253a4..27661674cb7 100644 --- a/cmd/helm/repo_update.go +++ b/cmd/helm/repo_update.go @@ -122,7 +122,7 @@ func updateCharts(repos []*repo.ChartRepository, out io.Writer, failOnRepoUpdate wg.Add(1) go func(re *repo.ChartRepository) { defer wg.Done() - if _, _, err := re.DownloadIndexFile(); err != nil { + if _, err := re.DownloadIndexFile(); err != nil { fmt.Fprintf(out, "...Unable to get an update from the %q chart repository (%s):\n\t%s\n", re.Config.Name, re.Config.URL, err) repoFailList = append(repoFailList, re.Config.URL) } else { diff --git a/pkg/downloader/manager.go b/pkg/downloader/manager.go index 226aa186780..18b28dde194 100644 --- a/pkg/downloader/manager.go +++ b/pkg/downloader/manager.go @@ -670,7 +670,7 @@ func (m *Manager) parallelRepoUpdate(repos []*repo.Entry) error { } wg.Add(1) go func(r *repo.ChartRepository) { - if _, _, err := r.DownloadIndexFile(); err != nil { + if _, err := r.DownloadIndexFile(); err != nil { // For those dependencies that are not known to helm and using a // generated key name we display the repo url. if strings.HasPrefix(r.Config.Name, managerKeyPrefix) { diff --git a/pkg/repo/chartrepo.go b/pkg/repo/chartrepo.go index 3a5f34eeb62..414e0a71437 100644 --- a/pkg/repo/chartrepo.go +++ b/pkg/repo/chartrepo.go @@ -115,10 +115,10 @@ func (r *ChartRepository) Load() error { } // DownloadIndexFile fetches the index from a repository. -func (r *ChartRepository) DownloadIndexFile() (string, string, error) { +func (r *ChartRepository) DownloadIndexFile() (string, error) { parsedURL, err := url.Parse(r.Config.URL) if err != nil { - return "", "", err + return "", err } parsedURL.RawPath = path.Join(parsedURL.RawPath, "index.yaml") parsedURL.Path = path.Join(parsedURL.Path, "index.yaml") @@ -133,17 +133,17 @@ func (r *ChartRepository) DownloadIndexFile() (string, string, error) { getter.WithPassCredentialsAll(r.Config.PassCredentialsAll), ) if err != nil { - return "", "", err + return "", err } index, err := ioutil.ReadAll(resp) if err != nil { - return "", "", err + return "", err } indexFile, err := loadIndex(index, r.Config.URL) if err != nil { - return "", "", err + return "", err } // Create the chart list file in the cache directory @@ -158,7 +158,7 @@ func (r *ChartRepository) DownloadIndexFile() (string, string, error) { // Create the index file in the cache directory fname := filepath.Join(r.CachePath, helmpath.CacheIndexFile(r.Config.Name)) os.MkdirAll(filepath.Dir(fname), 0755) - return fname, chartsFile, ioutil.WriteFile(fname, index, 0644) + return fname, ioutil.WriteFile(fname, index, 0644) } // Index generates an index for the chart repository and writes an index.yaml file. @@ -249,13 +249,14 @@ func FindChartInAuthAndTLSAndPassRepoURL(repoURL, username, password, chartName, if err != nil { return "", err } - idx, chart, err := r.DownloadIndexFile() + // Use a random path name so it can be deleted for cleanup. + r.CachePath = helmpath.CachePath(name) + idx, err := r.DownloadIndexFile() if err != nil { return "", errors.Wrapf(err, "looks like %q is not a valid chart repository or cannot be reached", repoURL) } // Clean up temp files. - defer os.RemoveAll(idx) - defer os.RemoveAll(chart) + defer os.RemoveAll(r.CachePath) // Read the index file for the repository to get chart information and return chart URL repoIndex, err := LoadIndexFile(idx) diff --git a/pkg/repo/chartrepo_test.go b/pkg/repo/chartrepo_test.go index a2942ebae28..3dae90391f7 100644 --- a/pkg/repo/chartrepo_test.go +++ b/pkg/repo/chartrepo_test.go @@ -157,7 +157,7 @@ func TestIndexCustomSchemeDownload(t *testing.T) { } defer os.Remove(tempIndexFile.Name()) - idx, _, err := repo.DownloadIndexFile() + idx, err := repo.DownloadIndexFile() if err != nil { t.Fatalf("Failed to download index file to %s: %v", idx, err) } diff --git a/pkg/repo/index_test.go b/pkg/repo/index_test.go index 99508ca8198..a75a4177aef 100644 --- a/pkg/repo/index_test.go +++ b/pkg/repo/index_test.go @@ -237,7 +237,7 @@ func TestDownloadIndexFile(t *testing.T) { t.Errorf("Problem creating chart repository from %s: %v", testRepo, err) } - idx, _, err := r.DownloadIndexFile() + idx, err := r.DownloadIndexFile() if err != nil { t.Fatalf("Failed to download index file to %s: %#v", idx, err) } @@ -290,7 +290,7 @@ func TestDownloadIndexFile(t *testing.T) { t.Errorf("Problem creating chart repository from %s: %v", testRepo, err) } - idx, _, err := r.DownloadIndexFile() + idx, err := r.DownloadIndexFile() if err != nil { t.Fatalf("Failed to download index file to %s: %#v", idx, err) }