distro: drop NewDefaultRegistry()

Require the caller to pass in the required distros explicitly. This
would allow us to easily add distros in osbuild-pipeline and tests
before exposing them in composer itself, for instance.

This means there is no longer a dependency from the distro package
to each of the individual distros, so the distros are now able
to depend on the distro packag for types and interfaces.

Signed-off-by: Tom Gundersen <teg@jklm.no>
This commit is contained in:
Tom Gundersen 2020-03-22 13:02:29 +01:00 committed by msehnout
parent 08ff8ab81b
commit ff0ec01eb6
4 changed files with 21 additions and 16 deletions

View file

@ -4,12 +4,18 @@ import (
"crypto/tls" "crypto/tls"
"crypto/x509" "crypto/x509"
"flag" "flag"
"github.com/osbuild/osbuild-composer/internal/rcm"
"io/ioutil" "io/ioutil"
"log" "log"
"os" "os"
"path" "path"
"github.com/osbuild/osbuild-composer/internal/distro/fedora30"
"github.com/osbuild/osbuild-composer/internal/distro/fedora31"
"github.com/osbuild/osbuild-composer/internal/distro/fedora32"
"github.com/osbuild/osbuild-composer/internal/distro/rhel81"
"github.com/osbuild/osbuild-composer/internal/distro/rhel82"
"github.com/osbuild/osbuild-composer/internal/rcm"
"github.com/osbuild/osbuild-composer/internal/common" "github.com/osbuild/osbuild-composer/internal/common"
"github.com/osbuild/osbuild-composer/internal/distro" "github.com/osbuild/osbuild-composer/internal/distro"
"github.com/osbuild/osbuild-composer/internal/jobqueue" "github.com/osbuild/osbuild-composer/internal/jobqueue"
@ -84,7 +90,7 @@ func main() {
rpm := rpmmd.NewRPMMD(path.Join(cacheDirectory, "rpmmd")) rpm := rpmmd.NewRPMMD(path.Join(cacheDirectory, "rpmmd"))
distros, err := distro.NewDefaultRegistry() distros, err := distro.NewRegistry(fedora30.New(), fedora31.New(), fedora32.New(), rhel81.New(), rhel82.New())
if err != nil { if err != nil {
log.Fatalf("Error loading distros: %v", err) log.Fatalf("Error loading distros: %v", err)
} }

View file

@ -10,6 +10,11 @@ import (
"path" "path"
"github.com/osbuild/osbuild-composer/internal/common" "github.com/osbuild/osbuild-composer/internal/common"
"github.com/osbuild/osbuild-composer/internal/distro/fedora30"
"github.com/osbuild/osbuild-composer/internal/distro/fedora31"
"github.com/osbuild/osbuild-composer/internal/distro/fedora32"
"github.com/osbuild/osbuild-composer/internal/distro/rhel81"
"github.com/osbuild/osbuild-composer/internal/distro/rhel82"
"github.com/osbuild/osbuild-composer/internal/blueprint" "github.com/osbuild/osbuild-composer/internal/blueprint"
"github.com/osbuild/osbuild-composer/internal/distro" "github.com/osbuild/osbuild-composer/internal/distro"
@ -74,7 +79,7 @@ func main() {
} }
} }
distros, err := distro.NewDefaultRegistry() distros, err := distro.NewRegistry(fedora30.New(), fedora31.New(), fedora32.New(), rhel81.New(), rhel82.New())
if err != nil { if err != nil {
panic(err) panic(err)
} }

View file

@ -14,12 +14,6 @@ import (
"github.com/osbuild/osbuild-composer/internal/blueprint" "github.com/osbuild/osbuild-composer/internal/blueprint"
"github.com/osbuild/osbuild-composer/internal/rpmmd" "github.com/osbuild/osbuild-composer/internal/rpmmd"
"github.com/osbuild/osbuild-composer/internal/distro/fedora30"
"github.com/osbuild/osbuild-composer/internal/distro/fedora31"
"github.com/osbuild/osbuild-composer/internal/distro/fedora32"
"github.com/osbuild/osbuild-composer/internal/distro/rhel81"
"github.com/osbuild/osbuild-composer/internal/distro/rhel82"
) )
type Distro interface { type Distro interface {
@ -78,11 +72,6 @@ func NewRegistry(distros ...Distro) (*Registry, error) {
return reg, nil return reg, nil
} }
// NewDefaultRegistry creates a new Registry containing all known distros.
func NewDefaultRegistry() (*Registry, error) {
return NewRegistry(fedora30.New(), fedora31.New(), fedora32.New(), rhel81.New(), rhel82.New())
}
func (r *Registry) GetDistro(name string) Distro { func (r *Registry) GetDistro(name string) Distro {
distroTag, exists := common.DistributionFromString(name) distroTag, exists := common.DistributionFromString(name)
if !exists { if !exists {

View file

@ -9,6 +9,11 @@ import (
"github.com/osbuild/osbuild-composer/internal/blueprint" "github.com/osbuild/osbuild-composer/internal/blueprint"
"github.com/osbuild/osbuild-composer/internal/distro" "github.com/osbuild/osbuild-composer/internal/distro"
"github.com/osbuild/osbuild-composer/internal/distro/fedora30"
"github.com/osbuild/osbuild-composer/internal/distro/fedora31"
"github.com/osbuild/osbuild-composer/internal/distro/fedora32"
"github.com/osbuild/osbuild-composer/internal/distro/rhel81"
"github.com/osbuild/osbuild-composer/internal/distro/rhel82"
"github.com/osbuild/osbuild-composer/internal/osbuild" "github.com/osbuild/osbuild-composer/internal/osbuild"
"github.com/osbuild/osbuild-composer/internal/rpmmd" "github.com/osbuild/osbuild-composer/internal/rpmmd"
) )
@ -52,7 +57,7 @@ func TestDistro_Manifest(t *testing.T) {
t.Fatalf("rpmmd.LoadRepositories: %v", err) t.Fatalf("rpmmd.LoadRepositories: %v", err)
} }
t.Run(tt.ComposeRequest.OutputFormat, func(t *testing.T) { t.Run(tt.ComposeRequest.OutputFormat, func(t *testing.T) {
distros, err := distro.NewDefaultRegistry() distros, err := distro.NewRegistry(fedora30.New(), fedora31.New(), fedora32.New(), rhel81.New(), rhel82.New())
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
@ -92,7 +97,7 @@ func TestDistro_RegistryList(t *testing.T) {
"rhel-8.2", "rhel-8.2",
} }
distros, err := distro.NewDefaultRegistry() distros, err := distro.NewRegistry(fedora30.New(), fedora31.New(), fedora32.New(), rhel81.New(), rhel82.New())
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }