blueprint: move pipeline generation into its own package
Introduce the `distro` package, which contains an interface for OS implementations. Its main purpose is to convert a blueprint to a distro-specific pipeline. Also introduce the `distro/fedora30` package. It is the first implementation of the distro interface. Most of its code has been copied with minimal modifications from the blueprint package. The `blueprint` package is now back to serving a single purpose: representing a weldr blueprint. It does not depend on the `pipeline` package anymore. Change osbuild-composer and osbuild-pipeline to use the new API, hard-coding "fedora-30". This looks a bit weird now, but is the same behavior as before. All test cases now also take an "distro" key in the "compose" object.
This commit is contained in:
parent
3ae39e54c5
commit
b33ed9e5d2
28 changed files with 661 additions and 541 deletions
|
|
@ -16,6 +16,9 @@ import (
|
|||
"github.com/osbuild/osbuild-composer/internal/blueprint"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/store"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/distro"
|
||||
_ "github.com/osbuild/osbuild-composer/internal/distro/fedora30"
|
||||
)
|
||||
|
||||
type API struct {
|
||||
|
|
@ -847,7 +850,8 @@ func (api *API) composeTypesHandler(writer http.ResponseWriter, request *http.Re
|
|||
Types []composeType `json:"types"`
|
||||
}
|
||||
|
||||
for _, format := range blueprint.ListOutputFormats() {
|
||||
f30 := distro.New("fedora-30")
|
||||
for _, format := range f30.ListOutputFormats() {
|
||||
reply.Types = append(reply.Types, composeType{format, true})
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue