composer+worker: make dnf-json path externally configurable
The default value is the installation path.
This commit is contained in:
parent
8070321169
commit
6fbddeea35
4 changed files with 12 additions and 3 deletions
|
|
@ -74,6 +74,7 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string) (*Compos
|
|||
logrus.Infof("Loaded %d distros", len(c.distros.List()))
|
||||
|
||||
c.solver = dnfjson.NewBaseSolver(path.Join(c.cacheDir, "rpmmd"))
|
||||
c.solver.SetDNFJSONPath(c.config.DNFJson)
|
||||
|
||||
var jobs jobqueue.JobQueue
|
||||
if config.Worker.PGDatabase != "" {
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ type ComposerConfigFile struct {
|
|||
SyslogServer string `toml:"syslog_server" env:"SYSLOG_SERVER"`
|
||||
LogLevel string `toml:"log_level"`
|
||||
LogFormat string `toml:"log_format"`
|
||||
DNFJson string `toml:"dnf-json"`
|
||||
}
|
||||
|
||||
type KojiAPIConfig struct {
|
||||
|
|
@ -108,6 +109,7 @@ func GetDefaultConfig() *ComposerConfigFile {
|
|||
},
|
||||
LogLevel: "info",
|
||||
LogFormat: "text",
|
||||
DNFJson: "/usr/libexec/osbuild-composer/dnf-json",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import (
|
|||
)
|
||||
|
||||
type DepsolveJobImpl struct {
|
||||
RPMMDCache string
|
||||
Solver *dnfjson.BaseSolver
|
||||
}
|
||||
|
||||
// depsolve each package set in the pacakgeSets map. The repositories defined
|
||||
|
|
@ -20,7 +20,7 @@ type DepsolveJobImpl struct {
|
|||
// packageSetsRepos are only used for the package set with the same name
|
||||
// (matching map keys).
|
||||
func (impl *DepsolveJobImpl) depsolve(packageSetsChains map[string][]string, packageSets map[string]rpmmd.PackageSet, repos []rpmmd.RepoConfig, packageSetsRepos map[string][]rpmmd.RepoConfig, modulePlatformID, arch, releasever string) (map[string][]rpmmd.PackageSpec, error) {
|
||||
solver := dnfjson.NewSolver(modulePlatformID, releasever, arch, impl.RPMMDCache)
|
||||
solver := impl.Solver.NewWithConfig(modulePlatformID, releasever, arch)
|
||||
|
||||
depsolvedSets := make(map[string][]rpmmd.PackageSpec)
|
||||
// first depsolve package sets that are part of a chain
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import (
|
|||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/common"
|
||||
"github.com/osbuild/osbuild-composer/internal/dnfjson"
|
||||
"github.com/osbuild/osbuild-composer/internal/upload/azure"
|
||||
"github.com/osbuild/osbuild-composer/internal/upload/koji"
|
||||
"github.com/osbuild/osbuild-composer/internal/worker"
|
||||
|
|
@ -223,6 +224,7 @@ func main() {
|
|||
} `toml:"authentication"`
|
||||
RelaxTimeoutFactor uint `toml:"RelaxTimeoutFactor"`
|
||||
BasePath string `toml:"base_path"`
|
||||
DNFJson string `toml:"dnf-json"`
|
||||
}
|
||||
var unix bool
|
||||
flag.BoolVar(&unix, "unix", false, "Interpret 'address' as a path to a unix domain socket instead of a network address")
|
||||
|
|
@ -396,11 +398,15 @@ func main() {
|
|||
|
||||
// depsolve jobs can be done during other jobs
|
||||
depsolveCtx, depsolveCtxCancel := context.WithCancel(context.Background())
|
||||
solver := dnfjson.NewBaseSolver(rpmmd_cache)
|
||||
if config.DNFJson != "" {
|
||||
solver.SetDNFJSONPath(config.DNFJson)
|
||||
}
|
||||
defer depsolveCtxCancel()
|
||||
go func() {
|
||||
jobImpls := map[string]JobImplementation{
|
||||
"depsolve": &DepsolveJobImpl{
|
||||
RPMMDCache: rpmmd_cache,
|
||||
Solver: solver,
|
||||
},
|
||||
}
|
||||
acceptedJobTypes := []string{}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue