feat: add policy.downloadLocation

This commit is contained in:
mrjoelkamp
2024-08-14 12:32:51 -05:00
parent 6de792c1b5
commit 2bf7dec72e
7 changed files with 14 additions and 18 deletions

View File

@@ -81,7 +81,7 @@ func NewRegistryFetcher(metadataRepo, metadataTag, targetsRepo string) *Registry
func (d *RegistryFetcher) DownloadFile(urlPath string, maxLength int64, timeout time.Duration) ([]byte, error) {
d.timeout = timeout
imgRef, fileName, err := d.ParseImgRef(urlPath)
imgRef, fileName, err := d.parseImgRef(urlPath)
if err != nil {
return nil, err
}
@@ -186,7 +186,7 @@ func getDataFromLayer(fileLayer v1.Layer, maxLength int64) ([]byte, error) {
}
// parseImgRef maintains the Fetcher interface by parsing a URL path to an image reference and file name.
func (d *RegistryFetcher) ParseImgRef(urlPath string) (imgRef, fileName string, err error) {
func (d *RegistryFetcher) parseImgRef(urlPath string) (imgRef, fileName string, err error) {
// Check if repo is target or metadata
if strings.Contains(urlPath, d.targetsRepo) {
// determine if the target path contains subdirectories and set image name accordingly

View File

@@ -206,7 +206,7 @@ func TestParseImgRef(t *testing.T) {
metadataTag: LatestTag,
targetsRepo: targetsRepo,
}
imgRef, file, err := d.ParseImgRef(tc.ref)
imgRef, file, err := d.parseImgRef(tc.ref)
assert.NoError(t, err)
assert.Equal(t, tc.expectedRef, imgRef)
assert.Equal(t, tc.expectedFile, file)

View File

@@ -144,11 +144,7 @@ func (t *Client) generateTargetURI(target *metadata.TargetFiles, digest string)
switch fetcher := t.cfg.Fetcher.(type) {
case *RegistryFetcher:
ref, _, err := fetcher.ParseImgRef(fullURL)
if err != nil {
return "", fmt.Errorf("failed to parse image reference: %w", err)
}
return ref, nil
return fmt.Sprintf("%s@sha256:%s", t.cfg.RemoteTargetsURL, digest), nil
case *fetcher.DefaultFetcher:
return fullURL, nil
default: