worker: Add a depsolve job type
Allow depsolving to be done in a worker through the job queue rather than synchronously in composer. The benefit this might unlock include: - no more blocking calls in the cloud/koji APIs - only workers accessing repositoires - no VPN access from composer - composer not needing to be subscribed to CDN, etc - no dnf cache managment in composer Potential problems: - the version of composer (so the distro definitions) that triggered a depsolve, may not be the same that uses the result to generate a manfiset Signed-off-by: Tom Gundersen <teg@jklm.no> Signed-off-by: Ondřej Budai <ondrej@budai.cz>
This commit is contained in:
parent
e2f6dd7965
commit
0f90aa9c78
3 changed files with 64 additions and 0 deletions
|
|
@ -3,6 +3,7 @@ package worker
|
|||
import (
|
||||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
osbuild "github.com/osbuild/osbuild-composer/internal/osbuild1"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/target"
|
||||
)
|
||||
|
||||
|
|
@ -72,6 +73,19 @@ type KojiFinalizeJobResult struct {
|
|||
KojiError string `json:"koji_error"`
|
||||
}
|
||||
|
||||
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"`
|
||||
}
|
||||
|
||||
type DepsolveJobResult struct {
|
||||
PackageSpecs map[string][]rpmmd.PackageSpec `json:"package_specs"`
|
||||
Error string `json:"error"`
|
||||
}
|
||||
|
||||
//
|
||||
// JSON-serializable types for the client
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue