From e0759e01af7209848122431ea45c88c8193572cc Mon Sep 17 00:00:00 2001 From: Sanne Raymaekers Date: Mon, 15 Apr 2024 10:56:36 +0200 Subject: [PATCH] worker: save repoconfigs in depsolve result --- cmd/osbuild-worker/jobimpl-depsolve.go | 12 +++++++----- internal/worker/json.go | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cmd/osbuild-worker/jobimpl-depsolve.go b/cmd/osbuild-worker/jobimpl-depsolve.go index e81710364..d85bd2433 100644 --- a/cmd/osbuild-worker/jobimpl-depsolve.go +++ b/cmd/osbuild-worker/jobimpl-depsolve.go @@ -49,19 +49,21 @@ type DepsolveJobImpl struct { // in repos are used for all package sets, whereas the repositories in // packageSetsRepos are only used for the package set with the same name // (matching map keys). -func (impl *DepsolveJobImpl) depsolve(packageSets map[string][]rpmmd.PackageSet, modulePlatformID, arch, releasever string) (map[string][]rpmmd.PackageSpec, error) { +func (impl *DepsolveJobImpl) depsolve(packageSets map[string][]rpmmd.PackageSet, modulePlatformID, arch, releasever string) (map[string][]rpmmd.PackageSpec, map[string][]rpmmd.RepoConfig, error) { solver := impl.Solver.NewWithConfig(modulePlatformID, releasever, arch, "") depsolvedSets := make(map[string][]rpmmd.PackageSpec) + 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 } - return depsolvedSets, nil + return depsolvedSets, repoConfigs, nil } func (impl *DepsolveJobImpl) Run(job worker.Job) error { @@ -95,7 +97,7 @@ func (impl *DepsolveJobImpl) Run(job worker.Job) error { } } - result.PackageSpecs, err = impl.depsolve(args.PackageSets, args.ModulePlatformID, args.Arch, args.Releasever) + result.PackageSpecs, result.RepoConfigs, err = impl.depsolve(args.PackageSets, args.ModulePlatformID, args.Arch, args.Releasever) if err != nil { switch e := err.(type) { case dnfjson.Error: diff --git a/internal/worker/json.go b/internal/worker/json.go index fa50ef546..c240f6561 100644 --- a/internal/worker/json.go +++ b/internal/worker/json.go @@ -192,6 +192,7 @@ const ( type DepsolveJobResult struct { PackageSpecs map[string][]rpmmd.PackageSpec `json:"package_specs"` + RepoConfigs map[string][]rpmmd.RepoConfig `json:"repo_configs"` Error string `json:"error"` ErrorType ErrorType `json:"error_type"` JobResult