manifest: container specs added during serialization
Add a second argument, map[string][]container.Spec, during serialization, which serves the same purpose as the depsolved package sets.
This commit is contained in:
parent
b1f185959b
commit
267a27a1a8
21 changed files with 41 additions and 34 deletions
|
|
@ -180,7 +180,7 @@ func makeManifestJob(name string, imgType distro.ImageType, cr composeRequest, d
|
|||
if cr.Blueprint != nil {
|
||||
bp = blueprint.Blueprint(*cr.Blueprint)
|
||||
}
|
||||
mf, err := manifest.Serialize(packageSpecs)
|
||||
mf, err := manifest.Serialize(packageSpecs, nil)
|
||||
|
||||
request := composeRequest{
|
||||
Distro: distribution.Name(),
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ func main() {
|
|||
composeRequest.OSTree.Ref = imageType.OSTreeRef()
|
||||
}
|
||||
|
||||
ms, err := manifest.Serialize(depsolvedSets)
|
||||
ms, err := manifest.Serialize(depsolvedSets, nil)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ func RunPlayground(img image.ImageKind, d distro.Distro, arch distro.Arch, repos
|
|||
fmt.Fprintf(os.Stderr, "could not clean dnf cache: %s", err.Error())
|
||||
}
|
||||
|
||||
bytes, err := manifest.Serialize(packageSpecs)
|
||||
bytes, err := manifest.Serialize(packageSpecs, nil)
|
||||
if err != nil {
|
||||
panic("failed to serialize manifest: " + err.Error())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func getManifest(bp blueprint.Blueprint, t distro.ImageType, a distro.Arch, d di
|
|||
pkgSpecSets[name] = res
|
||||
}
|
||||
|
||||
mf, err := manifest.Serialize(pkgSpecSets)
|
||||
mf, err := manifest.Serialize(pkgSpecSets, nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -468,7 +468,7 @@ func generateManifest(ctx context.Context, workers *worker.Server, depsolveJobID
|
|||
jobResult.JobError = clienterrors.WorkerClientError(clienterrors.ErrorManifestGeneration, reason, nil)
|
||||
return
|
||||
}
|
||||
ms, err := manifest.Serialize(depsolveResults.PackageSpecs)
|
||||
ms, err := manifest.Serialize(depsolveResults.PackageSpecs, nil)
|
||||
|
||||
jobResult.Manifest = ms
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ func TestImageTypePipelineNames(t *testing.T) {
|
|||
|
||||
m, _, err := imageType.Manifest(&bp, options, repos, nil, containers, seed)
|
||||
assert.NoError(err)
|
||||
mf, err := m.Serialize(packageSets)
|
||||
mf, err := m.Serialize(packageSets, nil)
|
||||
assert.NoError(err)
|
||||
pm := new(manifest)
|
||||
err = json.Unmarshal(mf, pm)
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ func TestDistro_Manifest(t *testing.T, pipelinePath string, prefix string, regis
|
|||
t.Errorf("distro.Manifest() error = %v", err)
|
||||
return
|
||||
}
|
||||
got, err := manifest.Serialize(imgPackageSpecSets)
|
||||
got, err := manifest.Serialize(imgPackageSpecSets, nil)
|
||||
|
||||
if (err == nil && tt.Manifest == nil) || (err != nil && tt.Manifest != nil) {
|
||||
t.Errorf("distro.Manifest() error = %v", err)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package manifest
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/container"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/platform"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
|
|
@ -140,7 +141,7 @@ func (p *Anaconda) getPackageSpecs() []rpmmd.PackageSpec {
|
|||
return p.packageSpecs
|
||||
}
|
||||
|
||||
func (p *Anaconda) serializeStart(packages []rpmmd.PackageSpec) {
|
||||
func (p *Anaconda) serializeStart(packages []rpmmd.PackageSpec, _ []container.Spec) {
|
||||
if len(p.packageSpecs) > 0 {
|
||||
panic("double call to serializeStart()")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package manifest
|
||||
|
||||
import (
|
||||
"github.com/osbuild/osbuild-composer/internal/container"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
"github.com/osbuild/osbuild-composer/internal/runner"
|
||||
|
|
@ -67,7 +68,7 @@ func (p *Build) getPackageSpecs() []rpmmd.PackageSpec {
|
|||
return p.packageSpecs
|
||||
}
|
||||
|
||||
func (p *Build) serializeStart(packages []rpmmd.PackageSpec) {
|
||||
func (p *Build) serializeStart(packages []rpmmd.PackageSpec, _ []container.Spec) {
|
||||
if len(p.packageSpecs) > 0 {
|
||||
panic("double call to serializeStart()")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import (
|
|||
"path/filepath"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/common"
|
||||
"github.com/osbuild/osbuild-composer/internal/container"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
"github.com/osbuild/osbuild-composer/internal/platform"
|
||||
"github.com/osbuild/osbuild-composer/internal/rpmmd"
|
||||
|
|
@ -82,7 +83,7 @@ func (p *OSTreeCommitServer) getPackageSpecs() []rpmmd.PackageSpec {
|
|||
return p.packageSpecs
|
||||
}
|
||||
|
||||
func (p *OSTreeCommitServer) serializeStart(packages []rpmmd.PackageSpec) {
|
||||
func (p *OSTreeCommitServer) serializeStart(packages []rpmmd.PackageSpec, _ []container.Spec) {
|
||||
if len(p.packageSpecs) > 0 {
|
||||
panic("double call to serializeStart()")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package manifest
|
|||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/osbuild/osbuild-composer/internal/container"
|
||||
"github.com/osbuild/osbuild-composer/internal/fdo"
|
||||
"github.com/osbuild/osbuild-composer/internal/ignition"
|
||||
"github.com/osbuild/osbuild-composer/internal/osbuild"
|
||||
|
|
@ -121,7 +122,7 @@ func (p *CoreOSInstaller) getPackageSpecs() []rpmmd.PackageSpec {
|
|||
return p.packageSpecs
|
||||
}
|
||||
|
||||
func (p *CoreOSInstaller) serializeStart(packages []rpmmd.PackageSpec) {
|
||||
func (p *CoreOSInstaller) serializeStart(packages []rpmmd.PackageSpec, _ []container.Spec) {
|
||||
if len(p.packageSpecs) > 0 {
|
||||
panic("double call to serializeStart()")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,14 +131,14 @@ func (m Manifest) GetOSTreeSourceSpecs() map[string][]ostree.SourceSpec {
|
|||
return ostreeSpecs
|
||||
}
|
||||
|
||||
func (m Manifest) Serialize(packageSets map[string][]rpmmd.PackageSpec) (OSBuildManifest, error) {
|
||||
func (m Manifest) Serialize(packageSets map[string][]rpmmd.PackageSpec, containerSpecs map[string][]container.Spec) (OSBuildManifest, error) {
|
||||
pipelines := make([]osbuild.Pipeline, 0)
|
||||
packages := make([]rpmmd.PackageSpec, 0)
|
||||
commits := make([]ostree.CommitSpec, 0)
|
||||
inline := make([]string, 0)
|
||||
containers := make([]container.Spec, 0)
|
||||
for _, pipeline := range m.pipelines {
|
||||
pipeline.serializeStart(packageSets[pipeline.Name()])
|
||||
pipeline.serializeStart(packageSets[pipeline.Name()], containerSpecs[pipeline.Name()])
|
||||
}
|
||||
for _, pipeline := range m.pipelines {
|
||||
commits = append(commits, pipeline.getOSTreeCommits()...)
|
||||
|
|
|
|||
|
|
@ -291,11 +291,14 @@ func (p *OS) getContainerSpecs() []container.Spec {
|
|||
return p.containerSpecs
|
||||
}
|
||||
|
||||
func (p *OS) serializeStart(packages []rpmmd.PackageSpec) {
|
||||
func (p *OS) serializeStart(packages []rpmmd.PackageSpec, containers []container.Spec) {
|
||||
if len(p.packageSpecs) > 0 {
|
||||
panic("double call to serializeStart()")
|
||||
}
|
||||
|
||||
p.packageSpecs = packages
|
||||
p.containerSpecs = containers
|
||||
|
||||
if p.KernelName != "" {
|
||||
p.kernelVer = rpmmd.GetVerStrFromPackageSpecListPanic(p.packageSpecs, p.KernelName)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ func NewTestOS() *OS {
|
|||
packages := []rpmmd.PackageSpec{
|
||||
rpmmd.PackageSpec{Name: "pkg1"},
|
||||
}
|
||||
os.serializeStart(packages)
|
||||
os.serializeStart(packages, nil)
|
||||
|
||||
return os
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ type Pipeline interface {
|
|||
// its full Spec. See the ostree package for more details.
|
||||
getOSTreeCommitSources() []ostree.SourceSpec
|
||||
|
||||
serializeStart([]rpmmd.PackageSpec)
|
||||
serializeStart([]rpmmd.PackageSpec, []container.Spec)
|
||||
serializeEnd()
|
||||
serialize() osbuild.Pipeline
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ func NewBase(m *Manifest, name string, build *Build) Base {
|
|||
|
||||
// serializeStart must be called exactly once before each call
|
||||
// to serialize().
|
||||
func (p Base) serializeStart([]rpmmd.PackageSpec) {
|
||||
func (p Base) serializeStart([]rpmmd.PackageSpec, []container.Spec) {
|
||||
}
|
||||
|
||||
// serializeEnd must be called exactly once after each call to
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ func FixtureBase() *Store {
|
|||
panic(fmt.Sprintf("failed to create a manifest: %v", err))
|
||||
}
|
||||
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("failed to create a manifest: %v", err))
|
||||
}
|
||||
|
|
@ -198,7 +198,7 @@ func FixtureFinished() *Store {
|
|||
panic(fmt.Sprintf("failed to create a manifest: %v", err))
|
||||
}
|
||||
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("failed to create a manifest: %v", err))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ func (suite *storeTest) SetupSuite() {
|
|||
suite.myArch, _ = suite.myDistro.GetArch(test_distro.TestArchName)
|
||||
suite.myImageType, _ = suite.myArch.GetImageType(test_distro.TestImageTypeName)
|
||||
manifest, _, _ := suite.myImageType.Manifest(&suite.myBP, suite.myImageOptions, suite.myRepoConfig, nil, nil, 0)
|
||||
suite.myManifest, _ = manifest.Serialize(nil)
|
||||
suite.myManifest, _ = manifest.Serialize(nil, nil)
|
||||
suite.mySourceConfig = SourceConfig{
|
||||
Name: "testSourceConfig",
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2532,7 +2532,7 @@ func (api *API) composeHandler(writer http.ResponseWriter, request *http.Request
|
|||
return
|
||||
}
|
||||
|
||||
mf, err := manifest.Serialize(packageSets)
|
||||
mf, err := manifest.Serialize(packageSets, nil)
|
||||
if err != nil {
|
||||
errors := responseError{
|
||||
ID: "ManifestCreationFailed",
|
||||
|
|
|
|||
|
|
@ -886,7 +886,7 @@ func TestCompose(t *testing.T) {
|
|||
manifest, _, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, nil, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
ostreeImgType, err := arch.GetImageType(test_distro.TestImageTypeOSTree)
|
||||
|
|
@ -894,7 +894,7 @@ func TestCompose(t *testing.T) {
|
|||
ostreeManifest, _, err := ostreeImgType.Manifest(nil, distro.ImageOptions{}, nil, nil, nil, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
omf, err := ostreeManifest.Serialize(nil)
|
||||
omf, err := ostreeManifest.Serialize(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedComposeLocal := &store.Compose{
|
||||
|
|
@ -1004,7 +1004,7 @@ func TestCompose(t *testing.T) {
|
|||
manifest2, _, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, nil, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
mf2, err := manifest2.Serialize(nil)
|
||||
mf2, err := manifest2.Serialize(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedComposeGoodDistro := &store.Compose{
|
||||
|
|
@ -1998,7 +1998,7 @@ func TestComposePOST_ImageTypeDenylist(t *testing.T) {
|
|||
manifest, _, err := imgType.Manifest(nil, distro.ImageOptions{}, nil, nil, nil, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedComposeLocal := &store.Compose{
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func TestComposeStatusFromLegacyError(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error serializing osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
@ -89,7 +89,7 @@ func TestComposeStatusFromJobError(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error serializing osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ func TestCreate(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
@ -165,7 +165,7 @@ func TestCancel(t *testing.T) {
|
|||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1", false)
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
@ -206,7 +206,7 @@ func TestUpdate(t *testing.T) {
|
|||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1", false)
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
@ -238,7 +238,7 @@ func TestArgs(t *testing.T) {
|
|||
manifest, _, err := imageType.Manifest(nil, distro.ImageOptions{Size: imageType.Size(0)}, nil, nil, nil, 0)
|
||||
require.NoError(t, err)
|
||||
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
job := worker.OSBuildJob{
|
||||
|
|
@ -289,7 +289,7 @@ func TestUpload(t *testing.T) {
|
|||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1", true)
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
@ -324,7 +324,7 @@ func TestUploadNotAcceptingArtifacts(t *testing.T) {
|
|||
}
|
||||
server := newTestServer(t, t.TempDir(), time.Duration(0), "/api/worker/v1", false)
|
||||
handler := server.Handler()
|
||||
mf, _ := manifest.Serialize(nil)
|
||||
mf, _ := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
@ -356,7 +356,7 @@ func TestUploadAlteredBasePath(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
mf, err := manifest.Serialize(nil)
|
||||
mf, err := manifest.Serialize(nil, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("error creating osbuild manifest: %v", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue