Improve empty index support

This commit is contained in:
Daniel 2021-06-07 16:36:47 +02:00
parent 0d5dc62b9c
commit e02f084c8a
2 changed files with 23 additions and 23 deletions

View file

@ -132,7 +132,7 @@ func (reg *ResourceRegistry) loadIndexFile(idx Index) error {
} }
if len(releases) == 0 { if len(releases) == 0 {
log.Warningf("%s: index %s is empty", reg.Name, idx.Path) log.Debugf("%s: index %s is empty", reg.Name, idx.Path)
return nil return nil
} }

View file

@ -59,30 +59,30 @@ func (reg *ResourceRegistry) downloadIndex(ctx context.Context, client *http.Cli
return fmt.Errorf("failed to parse index %s: %w", idx.Path, err) return fmt.Errorf("failed to parse index %s: %w", idx.Path, err)
} }
// check for content // Add index data to registry.
if len(newIndexData) == 0 { if len(newIndexData) > 0 {
return fmt.Errorf("index %s is empty", idx.Path) // Check if all resources are within the indexes' authority.
} authoritativePath := path.Dir(idx.Path) + "/"
if authoritativePath == "./" {
// Check if all resources are within the indexes' authority. // Fix path for indexes at the storage root.
authoritativePath := path.Dir(idx.Path) + "/" authoritativePath = ""
if authoritativePath == "./" { }
// Fix path for indexes at the storage root. cleanedData := make(map[string]string, len(newIndexData))
authoritativePath = "" for key, version := range newIndexData {
} if strings.HasPrefix(key, authoritativePath) {
cleanedData := make(map[string]string, len(newIndexData)) cleanedData[key] = version
for key, version := range newIndexData { } else {
if strings.HasPrefix(key, authoritativePath) { log.Warningf("%s: index %s oversteps it's authority by defining version for %s", reg.Name, idx.Path, key)
cleanedData[key] = version }
} else {
log.Warningf("%s: index %s oversteps it's authority by defining version for %s", reg.Name, idx.Path, key)
} }
}
// add resources to registry // add resources to registry
err = reg.AddResources(cleanedData, false, true, idx.PreRelease) err = reg.AddResources(cleanedData, false, true, idx.PreRelease)
if err != nil { if err != nil {
log.Warningf("%s: failed to add resources: %s", reg.Name, err) log.Warningf("%s: failed to add resources: %s", reg.Name, err)
}
} else {
log.Debugf("%s: index %s is empty", reg.Name, idx.Path)
} }
// check if dest dir exists // check if dest dir exists