diff --git a/cmd/osbuild-composer/composer.go b/cmd/osbuild-composer/composer.go index e4fd0d495..efd4d2d6c 100644 --- a/cmd/osbuild-composer/composer.go +++ b/cmd/osbuild-composer/composer.go @@ -149,7 +149,7 @@ func (c *Composer) InitAPI(cert, key string, enableTLS bool, enableMTLS bool, en TenantProviderFields: c.config.Koji.JWTTenantProviderFields, } - c.api = cloudapi.NewServer(c.workers, c.distros, config) + c.api = cloudapi.NewServer(c.workers, c.distros, c.repos, config) if !enableTLS { c.apiListener = l diff --git a/internal/cloudapi/server.go b/internal/cloudapi/server.go index 1fcda0b39..43e11c847 100644 --- a/internal/cloudapi/server.go +++ b/internal/cloudapi/server.go @@ -4,18 +4,19 @@ import ( "net/http" "github.com/osbuild/images/pkg/distrofactory" - "github.com/osbuild/osbuild-composer/internal/worker" + "github.com/osbuild/images/pkg/reporegistry" v2 "github.com/osbuild/osbuild-composer/internal/cloudapi/v2" + "github.com/osbuild/osbuild-composer/internal/worker" ) type Server struct { v2 *v2.Server } -func NewServer(workers *worker.Server, distros *distrofactory.Factory, config v2.ServerConfig) *Server { +func NewServer(workers *worker.Server, distros *distrofactory.Factory, repos *reporegistry.RepoRegistry, config v2.ServerConfig) *Server { server := &Server{ - v2: v2.NewServer(workers, distros, config), + v2: v2.NewServer(workers, distros, repos, config), } return server } diff --git a/internal/cloudapi/v2/server.go b/internal/cloudapi/v2/server.go index 2d5197345..2a5c7b830 100644 --- a/internal/cloudapi/v2/server.go +++ b/internal/cloudapi/v2/server.go @@ -25,6 +25,7 @@ import ( "github.com/osbuild/images/pkg/distrofactory" "github.com/osbuild/images/pkg/manifest" "github.com/osbuild/images/pkg/ostree" + "github.com/osbuild/images/pkg/reporegistry" "github.com/osbuild/osbuild-composer/internal/auth" "github.com/osbuild/osbuild-composer/internal/blueprint" "github.com/osbuild/osbuild-composer/internal/common" @@ -38,6 +39,7 @@ import ( type Server struct { workers *worker.Server distros *distrofactory.Factory + repos *reporegistry.RepoRegistry config ServerConfig router routers.Router @@ -51,7 +53,7 @@ type ServerConfig struct { JWTEnabled bool } -func NewServer(workers *worker.Server, distros *distrofactory.Factory, config ServerConfig) *Server { +func NewServer(workers *worker.Server, distros *distrofactory.Factory, repos *reporegistry.RepoRegistry, config ServerConfig) *Server { ctx, cancel := context.WithCancel(context.Background()) spec, err := GetSwagger() if err != nil { @@ -71,6 +73,7 @@ func NewServer(workers *worker.Server, distros *distrofactory.Factory, config Se server := &Server{ workers: workers, distros: distros, + repos: repos, config: config, router: router, diff --git a/internal/cloudapi/v2/v2_test.go b/internal/cloudapi/v2/v2_test.go index 63ff6274d..939287392 100644 --- a/internal/cloudapi/v2/v2_test.go +++ b/internal/cloudapi/v2/v2_test.go @@ -17,6 +17,7 @@ import ( "github.com/osbuild/images/pkg/distrofactory" "github.com/osbuild/images/pkg/osbuild" "github.com/osbuild/images/pkg/ostree/mock_ostree_repo" + "github.com/osbuild/images/pkg/reporegistry" "github.com/osbuild/images/pkg/rpmmd" v2 "github.com/osbuild/osbuild-composer/internal/cloudapi/v2" "github.com/osbuild/osbuild-composer/internal/jobqueue/fsjobqueue" @@ -34,11 +35,16 @@ func newV2Server(t *testing.T, dir string, depsolveChannels []string, enableJWT distros := distrofactory.NewTestDefault() require.NotNil(t, distros) + // TODO pass it a real path? + repos, err := reporegistry.NewTestedDefault() + require.Nil(t, err) + require.NotNil(t, repos) + config := v2.ServerConfig{ JWTEnabled: enableJWT, TenantProviderFields: []string{"rh-org-id", "account_id"}, } - v2Server := v2.NewServer(workerServer, distros, config) + v2Server := v2.NewServer(workerServer, distros, repos, config) require.NotNil(t, v2Server) t.Cleanup(v2Server.Shutdown)