Reorganize descriptionsOfPolicyRequirements a bit

Do the registries.d lookup once, separately from building
an entry, so that we can share it across entries.

Also prepare a separate res to allow adding multiple entries.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
Miloslav Trmač 2022-08-24 20:36:14 +02:00
parent 2f6c145e86
commit bba306788a
1 changed files with 16 additions and 9 deletions

View File

@ -84,6 +84,18 @@ func getPolicyShowOutput(policyContentStruct policyContent, systemRegistriesDirP
// descriptionsOfPolicyRequirements turns reqs into user-readable policy entries, with Transport/Name/Reponame coming from template, potentially looking up scope (which may be "") in registryConfigs. // descriptionsOfPolicyRequirements turns reqs into user-readable policy entries, with Transport/Name/Reponame coming from template, potentially looking up scope (which may be "") in registryConfigs.
func descriptionsOfPolicyRequirements(reqs []repoContent, template Policy, registryConfigs *registryConfiguration, scope string, idReader gpgIDReader) []*Policy { func descriptionsOfPolicyRequirements(reqs []repoContent, template Policy, registryConfigs *registryConfiguration, scope string, idReader gpgIDReader) []*Policy {
res := []*Policy{}
var lookasidePath string
registryNamespace := registriesDConfigurationForScope(registryConfigs, scope)
if registryNamespace != nil {
if registryNamespace.Lookaside != "" {
lookasidePath = registryNamespace.Lookaside
} else { // incl. registryNamespace.SigStore == ""
lookasidePath = registryNamespace.SigStore
}
}
entry := template entry := template
entry.Type = trustTypeDescription(reqs[0].Type) entry.Type = trustTypeDescription(reqs[0].Type)
uids := []string{} uids := []string{}
@ -96,14 +108,9 @@ func descriptionsOfPolicyRequirements(reqs []repoContent, template Policy, regis
} }
} }
entry.GPGId = strings.Join(uids, ", ") entry.GPGId = strings.Join(uids, ", ")
entry.SignatureStore = lookasidePath
registryNamespace := registriesDConfigurationForScope(registryConfigs, scope) res = append(res, &entry)
if registryNamespace != nil {
if registryNamespace.Lookaside != "" { return res
entry.SignatureStore = registryNamespace.Lookaside
} else { // incl. registryNamespace.SigStore == ""
entry.SignatureStore = registryNamespace.SigStore
}
}
return []*Policy{&entry}
} }