From 62499f4a2555031fccc0cc82feda15293759d058 Mon Sep 17 00:00:00 2001
From: Miloslav Trmač <mitr@redhat.com>
Date: Wed, 24 Aug 2022 20:36:14 +0200
Subject: Reorganize descriptionsOfPolicyRequirements a bit
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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>
---
 pkg/trust/trust.go | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

(limited to 'pkg')

diff --git a/pkg/trust/trust.go b/pkg/trust/trust.go
index 7412fab20..7b1b798ca 100644
--- a/pkg/trust/trust.go
+++ b/pkg/trust/trust.go
@@ -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.
 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.Type = trustTypeDescription(reqs[0].Type)
 	uids := []string{}
@@ -96,14 +108,9 @@ func descriptionsOfPolicyRequirements(reqs []repoContent, template Policy, regis
 		}
 	}
 	entry.GPGId = strings.Join(uids, ", ")
+	entry.SignatureStore = lookasidePath
 
-	registryNamespace := registriesDConfigurationForScope(registryConfigs, scope)
-	if registryNamespace != nil {
-		if registryNamespace.Lookaside != "" {
-			entry.SignatureStore = registryNamespace.Lookaside
-		} else { // incl. registryNamespace.SigStore == ""
-			entry.SignatureStore = registryNamespace.SigStore
-		}
-	}
-	return []*Policy{&entry}
+	res = append(res, &entry)
+
+	return res
 }
-- 
cgit v1.2.3-54-g00ecf