Move RepoRegistry setup into Composer
This is so that both the weldr and cloud api's can use it as the source of their repositories.
This commit is contained in:
parent
f660ed65b6
commit
b8967d53bc
3 changed files with 14 additions and 13 deletions
|
|
@ -23,6 +23,7 @@ import (
|
||||||
|
|
||||||
"github.com/osbuild/images/pkg/distrofactory"
|
"github.com/osbuild/images/pkg/distrofactory"
|
||||||
"github.com/osbuild/images/pkg/dnfjson"
|
"github.com/osbuild/images/pkg/dnfjson"
|
||||||
|
"github.com/osbuild/images/pkg/reporegistry"
|
||||||
"github.com/osbuild/osbuild-composer/internal/auth"
|
"github.com/osbuild/osbuild-composer/internal/auth"
|
||||||
"github.com/osbuild/osbuild-composer/internal/cloudapi"
|
"github.com/osbuild/osbuild-composer/internal/cloudapi"
|
||||||
v2 "github.com/osbuild/osbuild-composer/internal/cloudapi/v2"
|
v2 "github.com/osbuild/osbuild-composer/internal/cloudapi/v2"
|
||||||
|
|
@ -37,6 +38,7 @@ type Composer struct {
|
||||||
cacheDir string
|
cacheDir string
|
||||||
logger *log.Logger
|
logger *log.Logger
|
||||||
distros *distrofactory.Factory
|
distros *distrofactory.Factory
|
||||||
|
repos *reporegistry.RepoRegistry
|
||||||
|
|
||||||
solver *dnfjson.BaseSolver
|
solver *dnfjson.BaseSolver
|
||||||
|
|
||||||
|
|
@ -74,9 +76,17 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string) (*Compos
|
||||||
return nil, fmt.Errorf("failed to configure distro aliases: %v", err)
|
return nil, fmt.Errorf("failed to configure distro aliases: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.repos, err = reporegistry.New(repositoryConfigs)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error loading repository definitions: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
c.solver = dnfjson.NewBaseSolver(path.Join(c.cacheDir, "rpmmd"))
|
c.solver = dnfjson.NewBaseSolver(path.Join(c.cacheDir, "rpmmd"))
|
||||||
c.solver.SetDNFJSONPath(c.config.DNFJson)
|
c.solver.SetDNFJSONPath(c.config.DNFJson)
|
||||||
|
|
||||||
|
// Clean up the cache, removes unknown distros and files
|
||||||
|
c.solver.CleanupOldCacheDirs(c.repos.ListDistros())
|
||||||
|
|
||||||
var jobs jobqueue.JobQueue
|
var jobs jobqueue.JobQueue
|
||||||
if config.Worker.PGDatabase != "" {
|
if config.Worker.PGDatabase != "" {
|
||||||
dbURL := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s",
|
dbURL := fmt.Sprintf("postgres://%s:%s@%s:%s/%s?sslmode=%s",
|
||||||
|
|
@ -117,9 +127,8 @@ func NewComposer(config *ComposerConfigFile, stateDir, cacheDir string) (*Compos
|
||||||
return &c, nil
|
return &c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Composer) InitWeldr(repoPaths []string, weldrListener net.Listener,
|
func (c *Composer) InitWeldr(weldrListener net.Listener, distrosImageTypeDenylist map[string][]string) (err error) {
|
||||||
distrosImageTypeDenylist map[string][]string) (err error) {
|
c.weldr, err = weldr.New(c.repos, c.stateDir, c.solver, c.distros, c.logger, c.workers, distrosImageTypeDenylist)
|
||||||
c.weldr, err = weldr.New(repoPaths, c.stateDir, c.solver, c.distros, c.logger, c.workers, distrosImageTypeDenylist)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ func main() {
|
||||||
logrus.Fatal("The osbuild-composer.socket unit is misconfigured. It should contain two sockets.")
|
logrus.Fatal("The osbuild-composer.socket unit is misconfigured. It should contain two sockets.")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = composer.InitWeldr(repositoryConfigs, l[0], config.weldrDistrosImageTypeDenyList())
|
err = composer.InitWeldr(l[0], config.weldrDistrosImageTypeDenyList())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logrus.Fatalf("Error initializing weldr API: %v", err)
|
logrus.Fatalf("Error initializing weldr API: %v", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ func NewTestAPI(solver *dnfjson.BaseSolver, rr *reporegistry.RepoRegistry,
|
||||||
return setupRouter(api)
|
return setupRouter(api)
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(repoPaths []string, stateDir string, solver *dnfjson.BaseSolver, df *distrofactory.Factory,
|
func New(rr *reporegistry.RepoRegistry, stateDir string, solver *dnfjson.BaseSolver, df *distrofactory.Factory,
|
||||||
logger *log.Logger, workers *worker.Server, distrosImageTypeDenylist map[string][]string) (*API, error) {
|
logger *log.Logger, workers *worker.Server, distrosImageTypeDenylist map[string][]string) (*API, error) {
|
||||||
if logger == nil {
|
if logger == nil {
|
||||||
logger = log.New(os.Stdout, "", 0)
|
logger = log.New(os.Stdout, "", 0)
|
||||||
|
|
@ -168,14 +168,6 @@ func New(repoPaths []string, stateDir string, solver *dnfjson.BaseSolver, df *di
|
||||||
}
|
}
|
||||||
hostArch := arch.Current().String()
|
hostArch := arch.Current().String()
|
||||||
|
|
||||||
rr, err := reporegistry.New(repoPaths)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("error loading repository definitions: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clean up the cache, removes unknown distros and files
|
|
||||||
solver.CleanupOldCacheDirs(rr.ListDistros())
|
|
||||||
|
|
||||||
hostDistro := df.GetDistro(hostDistroName)
|
hostDistro := df.GetDistro(hostDistroName)
|
||||||
if hostDistro != nil {
|
if hostDistro != nil {
|
||||||
// get canonical distro name if the host distro is supported
|
// get canonical distro name if the host distro is supported
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue