Blame internal/store/fixtures.go

Packit 63bb0d
package store
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"time"
Packit 63bb0d
Packit 63bb0d
	"github.com/google/uuid"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/blueprint"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/common"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/distro"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/distro/fedoratest"
Packit 63bb0d
	"github.com/osbuild/osbuild-composer/internal/target"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
func FixtureBase() *Store {
Packit 63bb0d
	var bName = "test"
Packit 63bb0d
	var b = blueprint.Blueprint{
Packit 63bb0d
		Name:           bName,
Packit 63bb0d
		Version:        "0.0.0",
Packit 63bb0d
		Packages:       []blueprint.Package{},
Packit 63bb0d
		Modules:        []blueprint.Package{},
Packit 63bb0d
		Groups:         []blueprint.Group{},
Packit 63bb0d
		Customizations: nil,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	var date = time.Date(2019, 11, 27, 13, 19, 0, 0, time.FixedZone("UTC+1", 60*60))
Packit 63bb0d
Packit 63bb0d
	var localTarget = &target.Target{
Packit 63bb0d
		Uuid:      uuid.MustParse("20000000-0000-0000-0000-000000000000"),
Packit 63bb0d
		Name:      "org.osbuild.local",
Packit 63bb0d
		ImageName: "localimage",
Packit 63bb0d
		Created:   date,
Packit 63bb0d
		Status:    common.IBWaiting,
Packit 63bb0d
		Options:   &target.LocalTargetOptions{},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	var awsTarget = &target.Target{
Packit 63bb0d
		Uuid:      uuid.MustParse("10000000-0000-0000-0000-000000000000"),
Packit 63bb0d
		Name:      "org.osbuild.aws",
Packit 63bb0d
		ImageName: "awsimage",
Packit 63bb0d
		Created:   date,
Packit 63bb0d
		Status:    common.IBWaiting,
Packit 63bb0d
		Options: &target.AWSTargetOptions{
Packit 63bb0d
			Region:          "frankfurt",
Packit 63bb0d
			AccessKeyID:     "accesskey",
Packit 63bb0d
			SecretAccessKey: "secretkey",
Packit 63bb0d
			Bucket:          "clay",
Packit 63bb0d
			Key:             "imagekey",
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	d := fedoratest.New()
Packit 63bb0d
	arch, err := d.GetArch("x86_64")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid architecture x86_64 for fedoratest")
Packit 63bb0d
	}
Packit 63bb0d
	imgType, err := arch.GetImageType("qcow2")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid image type qcow2 for x86_64 @ fedoratest")
Packit 63bb0d
	}
Packit Service 15f37d
	manifest, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, 0)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("could not create manifest")
Packit 63bb0d
	}
Packit 63bb0d
	s := New(nil, arch, nil)
Packit 63bb0d
Packit 63bb0d
	s.blueprints[bName] = b
Packit 63bb0d
	s.composes = map[uuid.UUID]Compose{
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000000"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBWaiting,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget, awsTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000001"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBRunning,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
				JobStarted:  date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000002"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBFinished,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget, awsTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
				JobStarted:  date,
Packit 63bb0d
				JobFinished: date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000003"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBFailed,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget, awsTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
				JobStarted:  date,
Packit 63bb0d
				JobFinished: date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	return s
Packit 63bb0d
}
Packit 63bb0d
func FixtureFinished() *Store {
Packit 63bb0d
	var bName = "test"
Packit 63bb0d
	var b = blueprint.Blueprint{
Packit 63bb0d
		Name:           bName,
Packit 63bb0d
		Version:        "0.0.0",
Packit 63bb0d
		Packages:       []blueprint.Package{},
Packit 63bb0d
		Modules:        []blueprint.Package{},
Packit 63bb0d
		Groups:         []blueprint.Group{},
Packit 63bb0d
		Customizations: nil,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	var date = time.Date(2019, 11, 27, 13, 19, 0, 0, time.FixedZone("UTC+1", 60*60))
Packit 63bb0d
Packit 63bb0d
	var localTarget = &target.Target{
Packit 63bb0d
		Uuid:      uuid.MustParse("20000000-0000-0000-0000-000000000000"),
Packit 63bb0d
		Name:      "org.osbuild.local",
Packit 63bb0d
		ImageName: "localimage",
Packit 63bb0d
		Created:   date,
Packit 63bb0d
		Status:    common.IBWaiting,
Packit 63bb0d
		Options:   &target.LocalTargetOptions{},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	var awsTarget = &target.Target{
Packit 63bb0d
		Uuid:      uuid.MustParse("10000000-0000-0000-0000-000000000000"),
Packit 63bb0d
		Name:      "org.osbuild.aws",
Packit 63bb0d
		ImageName: "awsimage",
Packit 63bb0d
		Created:   date,
Packit 63bb0d
		Status:    common.IBWaiting,
Packit 63bb0d
		Options: &target.AWSTargetOptions{
Packit 63bb0d
			Region:          "frankfurt",
Packit 63bb0d
			AccessKeyID:     "accesskey",
Packit 63bb0d
			SecretAccessKey: "secretkey",
Packit 63bb0d
			Bucket:          "clay",
Packit 63bb0d
			Key:             "imagekey",
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	d := fedoratest.New()
Packit 63bb0d
	arch, err := d.GetArch("x86_64")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid architecture x86_64 for fedoratest")
Packit 63bb0d
	}
Packit 63bb0d
	imgType, err := arch.GetImageType("qcow2")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid image type qcow2 for x86_64 @ fedoratest")
Packit 63bb0d
	}
Packit Service 15f37d
	manifest, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, 0)
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("could not create manifest")
Packit 63bb0d
	}
Packit 63bb0d
	s := New(nil, arch, nil)
Packit 63bb0d
Packit 63bb0d
	s.blueprints[bName] = b
Packit 63bb0d
	s.composes = map[uuid.UUID]Compose{
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000000"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBFinished,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget, awsTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000001"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBFinished,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
				JobStarted:  date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
		uuid.MustParse("30000000-0000-0000-0000-000000000003"): {
Packit 63bb0d
			Blueprint: &b,
Packit 63bb0d
			ImageBuild: ImageBuild{
Packit 63bb0d
				QueueStatus: common.IBFailed,
Packit 63bb0d
				ImageType:   imgType,
Packit 63bb0d
				Manifest:    manifest,
Packit 63bb0d
				Targets:     []*target.Target{localTarget, awsTarget},
Packit 63bb0d
				JobCreated:  date,
Packit 63bb0d
				JobStarted:  date,
Packit 63bb0d
				JobFinished: date,
Packit 63bb0d
			},
Packit 63bb0d
		},
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	return s
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func FixtureEmpty() *Store {
Packit 63bb0d
	var bName = "test"
Packit 63bb0d
	var b = blueprint.Blueprint{
Packit 63bb0d
		Name:           bName,
Packit 63bb0d
		Version:        "0.0.0",
Packit 63bb0d
		Packages:       []blueprint.Package{},
Packit 63bb0d
		Modules:        []blueprint.Package{},
Packit 63bb0d
		Groups:         []blueprint.Group{},
Packit 63bb0d
		Customizations: nil,
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	d := fedoratest.New()
Packit 63bb0d
	arch, err := d.GetArch("x86_64")
Packit 63bb0d
	if err != nil {
Packit 63bb0d
		panic("invalid architecture x86_64 for fedoratest")
Packit 63bb0d
	}
Packit 63bb0d
	s := New(nil, arch, nil)
Packit 63bb0d
Packit 63bb0d
	s.blueprints[bName] = b
Packit 63bb0d
Packit 63bb0d
	return s
Packit 63bb0d
}