From 173f37feb8e040d60139cb6e0eb1d02390d76f1d Mon Sep 17 00:00:00 2001 From: Sanne Raymaekers Date: Mon, 15 Apr 2024 11:03:31 +0200 Subject: [PATCH] weldr: pass repoconfigs when serializing manifests --- internal/weldr/api.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/weldr/api.go b/internal/weldr/api.go index b233e8dcc..6cb190049 100644 --- a/internal/weldr/api.go +++ b/internal/weldr/api.go @@ -2283,7 +2283,7 @@ func (api *API) blueprintsTagHandler(writer http.ResponseWriter, request *http.R // repositories for the depsolving. The actual distro object name may not correspond to the alias. // Since the solver uses the distro name to namespace cache, it is important to use the same distro // name as the one used to get the repositories. -func (api *API) depsolve(packageSets map[string][]rpmmd.PackageSet, distroName string, arch distro.Arch) (map[string][]rpmmd.PackageSpec, error) { +func (api *API) depsolve(packageSets map[string][]rpmmd.PackageSet, distroName string, arch distro.Arch) (map[string][]rpmmd.PackageSpec, map[string][]rpmmd.RepoConfig, error) { distro := arch.Distro() platformID := distro.ModulePlatformID() @@ -2291,19 +2291,21 @@ func (api *API) depsolve(packageSets map[string][]rpmmd.PackageSet, distroName s solver := api.solver.NewWithConfig(platformID, releasever, arch.Name(), distroName) depsolvedSets := make(map[string][]rpmmd.PackageSpec, len(packageSets)) + repoConfigs := make(map[string][]rpmmd.RepoConfig) for name, pkgSet := range packageSets { - res, err := solver.Depsolve(pkgSet) + res, repos, err := solver.Depsolve(pkgSet) if err != nil { - return nil, err + return nil, nil, err } depsolvedSets[name] = res + repoConfigs[name] = repos } if err := solver.CleanCache(); err != nil { // log and ignore log.Printf("Error during rpm repo cache cleanup: %s", err.Error()) } - return depsolvedSets, nil + return depsolvedSets, repoConfigs, nil } func (api *API) resolveContainers(sourceSpecs map[string][]container.SourceSpec, archName string) (map[string][]container.Spec, error) { @@ -2572,7 +2574,7 @@ func (api *API) composeHandler(writer http.ResponseWriter, request *http.Request return } - packageSets, err := api.depsolve(manifest.GetPackageSetChains(), distroName, imageType.Arch()) + packageSets, repoConfigs, err := api.depsolve(manifest.GetPackageSetChains(), distroName, imageType.Arch()) if err != nil { errors := responseError{ ID: "DepsolveError", @@ -2604,7 +2606,7 @@ func (api *API) composeHandler(writer http.ResponseWriter, request *http.Request return } - mf, err := manifest.Serialize(packageSets, containerSpecs, ostreeCommitSpecs) + mf, err := manifest.Serialize(packageSets, containerSpecs, ostreeCommitSpecs, repoConfigs) if err != nil { errors := responseError{ ID: "ManifestCreationFailed",