revert changes to DownloadTo function and implement using the ChartDownloader object instead

Signed-off-by: Luke Reed <luke@lreed.net>
pull/10369/head
Luke Reed 4 years ago
parent 2be3ebf3e5
commit e3d3a1864a
No known key found for this signature in database
GPG Key ID: 96AC6BBD6D32F691

@ -152,7 +152,7 @@ func newUpgradeCmd(cfg *action.Configuration, out io.Writer) *cobra.Command {
if err != nil { if err != nil {
return err return err
} }
if client.ChartPathOptions.RepoURL != "" && ch.Metadata.RepoURL == "" { if client.ChartPathOptions.RepoURL != "" {
ch.Metadata.RepoURL = client.ChartPathOptions.RepoURL ch.Metadata.RepoURL = client.ChartPathOptions.RepoURL
} }
if req := ch.Metadata.Dependencies; req != nil { if req := ch.Metadata.Dependencies; req != nil {

@ -750,8 +750,8 @@ func (c *ChartPathOptions) LocateChart(name string, settings *cli.EnvSettings) (
return "", err return "", err
} }
filename, rURL, _, err := dl.DownloadTo(name, version, settings.RepositoryCache) filename, _, err := dl.DownloadTo(name, version, settings.RepositoryCache)
c.RepoURL = rURL c.RepoURL = dl.RepositoryURL
if err == nil { if err == nil {
lname, err := filepath.Abs(filename) lname, err := filepath.Abs(filename)
if err != nil { if err != nil {

@ -127,7 +127,7 @@ func (p *Pull) Run(chartRef string) (string, error) {
chartRef = chartURL chartRef = chartURL
} }
saved, _, v, err := c.DownloadTo(chartRef, p.Version, dest) saved, v, err := c.DownloadTo(chartRef, p.Version, dest)
if err != nil { if err != nil {
return out.String(), err return out.String(), err
} }

@ -84,22 +84,22 @@ type ChartDownloader struct {
// //
// For VerifyNever and VerifyIfPossible, the Verification may be empty. // For VerifyNever and VerifyIfPossible, the Verification may be empty.
// //
// Returns two strings, the first of which is a path to the location where the file was downloaded, the second being the repository URL. // Returns a string path to the location where the file was downloaded and a verification
// Also returned is a verification (if provenance was verified), or an error if something bad happened. // (if provenance was verified), or an error if something bad happened.
func (c *ChartDownloader) DownloadTo(ref, version, dest string) (string, string, *provenance.Verification, error) { func (c *ChartDownloader) DownloadTo(ref, version, dest string) (string, *provenance.Verification, error) {
u, err := c.ResolveChartVersion(ref, version) u, err := c.ResolveChartVersion(ref, version)
if err != nil { if err != nil {
return "", "", nil, err return "", nil, err
} }
g, err := c.Getters.ByScheme(u.Scheme) g, err := c.Getters.ByScheme(u.Scheme)
if err != nil { if err != nil {
return "", "", nil, err return "", nil, err
} }
data, err := g.Get(u.String(), c.Options...) data, err := g.Get(u.String(), c.Options...)
if err != nil { if err != nil {
return "", "", nil, err return "", nil, err
} }
name := filepath.Base(u.Path) name := filepath.Base(u.Path)
@ -109,7 +109,7 @@ func (c *ChartDownloader) DownloadTo(ref, version, dest string) (string, string,
destfile := filepath.Join(dest, name) destfile := filepath.Join(dest, name)
if err := fileutil.AtomicWriteFile(destfile, data, 0644); err != nil { if err := fileutil.AtomicWriteFile(destfile, data, 0644); err != nil {
return destfile, c.RepositoryURL, nil, err return destfile, nil, err
} }
// If provenance is requested, verify it. // If provenance is requested, verify it.
@ -118,14 +118,14 @@ func (c *ChartDownloader) DownloadTo(ref, version, dest string) (string, string,
body, err := g.Get(u.String() + ".prov") body, err := g.Get(u.String() + ".prov")
if err != nil { if err != nil {
if c.Verify == VerifyAlways { if c.Verify == VerifyAlways {
return destfile, c.RepositoryURL, ver, errors.Errorf("failed to fetch provenance %q", u.String()+".prov") return destfile, ver, errors.Errorf("failed to fetch provenance %q", u.String()+".prov")
} }
fmt.Fprintf(c.Out, "WARNING: Verification not found for %s: %s\n", ref, err) fmt.Fprintf(c.Out, "WARNING: Verification not found for %s: %s\n", ref, err)
return destfile, c.RepositoryURL, ver, nil return destfile, ver, nil
} }
provfile := destfile + ".prov" provfile := destfile + ".prov"
if err := fileutil.AtomicWriteFile(provfile, body, 0644); err != nil { if err := fileutil.AtomicWriteFile(provfile, body, 0644); err != nil {
return destfile, c.RepositoryURL, nil, err return destfile, nil, err
} }
if c.Verify != VerifyLater { if c.Verify != VerifyLater {
@ -133,11 +133,11 @@ func (c *ChartDownloader) DownloadTo(ref, version, dest string) (string, string,
if err != nil { if err != nil {
// Fail always in this case, since it means the verification step // Fail always in this case, since it means the verification step
// failed. // failed.
return destfile, c.RepositoryURL, ver, err return destfile, ver, err
} }
} }
} }
return destfile, c.RepositoryURL, ver, nil return destfile, ver, nil
} }
// ResolveChartVersion resolves a chart reference to a URL. // ResolveChartVersion resolves a chart reference to a URL.

@ -197,7 +197,7 @@ func TestDownloadTo(t *testing.T) {
} }
cname := "/signtest-0.1.0.tgz" cname := "/signtest-0.1.0.tgz"
dest := srv.Root() dest := srv.Root()
where, _, v, err := c.DownloadTo(srv.URL()+cname, "", dest) where, v, err := c.DownloadTo(srv.URL()+cname, "", dest)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -248,7 +248,7 @@ func TestDownloadTo_TLS(t *testing.T) {
} }
cname := "test/signtest" cname := "test/signtest"
dest := srv.Root() dest := srv.Root()
where, _, v, err := c.DownloadTo(cname, "", dest) where, v, err := c.DownloadTo(cname, "", dest)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -294,7 +294,7 @@ func TestDownloadTo_VerifyLater(t *testing.T) {
}), }),
} }
cname := "/signtest-0.1.0.tgz" cname := "/signtest-0.1.0.tgz"
where, _, _, err := c.DownloadTo(srv.URL()+cname, "", dest) where, _, err := c.DownloadTo(srv.URL()+cname, "", dest)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }

@ -357,7 +357,7 @@ func (m *Manager) downloadAll(deps []*chart.Dependency) error {
getter.WithTagName(version)) getter.WithTagName(version))
} }
if _, _, _, err = dl.DownloadTo(churl, version, tmpPath); err != nil { if _, _, err = dl.DownloadTo(churl, version, tmpPath); err != nil {
saveError = errors.Wrapf(err, "could not download %s", churl) saveError = errors.Wrapf(err, "could not download %s", churl)
break break
} }

Loading…
Cancel
Save