From 82eedf5b8249fb6c01efedffab5686bde237237a Mon Sep 17 00:00:00 2001 From: Achilleas Koutsou Date: Mon, 31 Jan 2022 20:06:48 +0100 Subject: [PATCH] DepsolveJob: rename struct field for consistency We have two fields, `Repos` and `PackageSets`. Renaming `PackageSetsRepositories` to `PackageSetsRepos` for consistency. The struct is for internal use only so the rename has no impact as long as the serialised name is the same (json tag). Also it's shorter. Added docstring to the struct that explains the arguments in the same way as they are described for the `depsolve()` function. Changing the name of the argument in the internal `depsolve()` function for the same reasons. --- cmd/osbuild-worker/jobimpl-depsolve.go | 8 ++++---- internal/cloudapi/v2/v2.go | 24 ++++++++++++------------ internal/worker/json.go | 17 +++++++++++------ 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/cmd/osbuild-worker/jobimpl-depsolve.go b/cmd/osbuild-worker/jobimpl-depsolve.go index b4c7be8e1..e81c00116 100644 --- a/cmd/osbuild-worker/jobimpl-depsolve.go +++ b/cmd/osbuild-worker/jobimpl-depsolve.go @@ -14,16 +14,16 @@ type DepsolveJobImpl struct { // depsolve each package set in the pacakgeSets map. The repositories defined // in repos are used for all package sets, whereas the repositories in -// packageSetsRepositories are only used for the package set with the same name +// packageSetsRepos are only used for the package set with the same name // (matching map keys). -func (impl *DepsolveJobImpl) depsolve(packageSets map[string]rpmmd.PackageSet, repos []rpmmd.RepoConfig, packageSetsRepositories map[string][]rpmmd.RepoConfig, modulePlatformID, arch, releasever string) (map[string][]rpmmd.PackageSpec, error) { +func (impl *DepsolveJobImpl) depsolve(packageSets map[string]rpmmd.PackageSet, repos []rpmmd.RepoConfig, packageSetsRepos map[string][]rpmmd.RepoConfig, modulePlatformID, arch, releasever string) (map[string][]rpmmd.PackageSpec, error) { rpmMD := rpmmd.NewRPMMD(impl.RPMMDCache) packageSpecs := make(map[string][]rpmmd.PackageSpec) for name, packageSet := range packageSets { repositories := make([]rpmmd.RepoConfig, len(repos)) copy(repositories, repos) - if packageSetRepositories, ok := packageSetsRepositories[name]; ok { + if packageSetRepositories, ok := packageSetsRepos[name]; ok { repositories = append(repositories, packageSetRepositories...) } packageSpec, _, err := rpmMD.Depsolve(packageSet, repositories, modulePlatformID, arch, releasever) @@ -43,7 +43,7 @@ func (impl *DepsolveJobImpl) Run(job worker.Job) error { } var result worker.DepsolveJobResult - result.PackageSpecs, err = impl.depsolve(args.PackageSets, args.Repos, args.PackageSetsRepositories, args.ModulePlatformID, args.Arch, args.Releasever) + result.PackageSpecs, err = impl.depsolve(args.PackageSets, args.Repos, args.PackageSetsRepos, args.ModulePlatformID, args.Arch, args.Releasever) if err != nil { switch e := err.(type) { case *rpmmd.DNFError: diff --git a/internal/cloudapi/v2/v2.go b/internal/cloudapi/v2/v2.go index daba9f9f6..e2deeea71 100644 --- a/internal/cloudapi/v2/v2.go +++ b/internal/cloudapi/v2/v2.go @@ -498,12 +498,12 @@ func enqueueCompose(workers *worker.Server, distribution distro.Distro, bp bluep ir := irs[0] depsolveJobID, err := workers.EnqueueDepsolve(&worker.DepsolveJob{ - PackageSets: ir.imageType.PackageSets(bp), - Repos: ir.repositories, - ModulePlatformID: distribution.ModulePlatformID(), - Arch: ir.arch.Name(), - Releasever: distribution.Releasever(), - PackageSetsRepositories: ir.packageSetsRepositories, + PackageSets: ir.imageType.PackageSets(bp), + Repos: ir.repositories, + ModulePlatformID: distribution.ModulePlatformID(), + Arch: ir.arch.Name(), + Releasever: distribution.Releasever(), + PackageSetsRepos: ir.packageSetsRepositories, }) if err != nil { return id, HTTPErrorWithInternal(ErrorEnqueueingJob, err) @@ -550,12 +550,12 @@ func enqueueKojiCompose(workers *worker.Server, taskID uint64, server, name, ver var buildIDs []uuid.UUID for _, ir := range irs { depsolveJobID, err := workers.EnqueueDepsolve(&worker.DepsolveJob{ - PackageSets: ir.imageType.PackageSets(bp), - Repos: ir.repositories, - ModulePlatformID: distribution.ModulePlatformID(), - Arch: ir.arch.Name(), - Releasever: distribution.Releasever(), - PackageSetsRepositories: ir.packageSetsRepositories, + PackageSets: ir.imageType.PackageSets(bp), + Repos: ir.repositories, + ModulePlatformID: distribution.ModulePlatformID(), + Arch: ir.arch.Name(), + Releasever: distribution.Releasever(), + PackageSetsRepos: ir.packageSetsRepositories, }) if err != nil { return id, HTTPErrorWithInternal(ErrorEnqueueingJob, err) diff --git a/internal/worker/json.go b/internal/worker/json.go index cdeb34d50..f8eb55674 100644 --- a/internal/worker/json.go +++ b/internal/worker/json.go @@ -102,13 +102,18 @@ func (pn *PipelineNames) All() []string { return append(pn.Build, pn.Payload...) } +// DepsolveJob defines the parameters of one or more depsolve jobs. Each +// package set is meant to be depsolved separately. The repositories defined +// in Repos are used for all package sets, whereas the repositories defined in +// PackageSetsRepos are only used by the package sets that share the same name +// (map key). type DepsolveJob struct { - PackageSets map[string]rpmmd.PackageSet `json:"package_sets"` - Repos []rpmmd.RepoConfig `json:"repos"` - ModulePlatformID string `json:"module_platform_id"` - Arch string `json:"arch"` - Releasever string `json:"releasever"` - PackageSetsRepositories map[string][]rpmmd.RepoConfig `json:"package_sets_repositories,omitempty"` + PackageSets map[string]rpmmd.PackageSet `json:"package_sets"` + Repos []rpmmd.RepoConfig `json:"repos"` + ModulePlatformID string `json:"module_platform_id"` + Arch string `json:"arch"` + Releasever string `json:"releasever"` + PackageSetsRepos map[string][]rpmmd.RepoConfig `json:"package_sets_repositories,omitempty"` } type ErrorType string