manifest: remove Content field from manifest
Do not expose the content of the manifest statically and instead rely on the public methods to retrieve source specifications dynamically. Since the methods require iterating through the pipelines to collect source specifications, we should avoid calling the function multiple times when we can reuse the returned values.
This commit is contained in:
parent
cecbc97e06
commit
5dba246813
20 changed files with 45 additions and 82 deletions
|
|
@ -158,7 +158,7 @@ func makeManifestJob(name string, imgType distro.ImageType, cr composeRequest, d
|
|||
return
|
||||
}
|
||||
|
||||
packageSpecs, err := depsolve(cacheDir, manifest.Content.PackageSets, distribution, archName)
|
||||
packageSpecs, err := depsolve(cacheDir, manifest.GetPackageSetChains(), distribution, archName)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("[%s] depsolve failed: %s", filename, err.Error())
|
||||
return
|
||||
|
|
@ -172,12 +172,12 @@ func makeManifestJob(name string, imgType distro.ImageType, cr composeRequest, d
|
|||
bp = blueprint.Blueprint(*cr.Blueprint)
|
||||
}
|
||||
|
||||
containerSpecs, err := resolvePipelineContainers(manifest.Content.Containers, archName)
|
||||
containerSpecs, err := resolvePipelineContainers(manifest.GetContainerSourceSpecs(), archName)
|
||||
if err != nil {
|
||||
return fmt.Errorf("[%s] container resolution failed: %s", filename, err.Error())
|
||||
}
|
||||
|
||||
commitSpecs := resolvePipelineCommits(manifest.Content.OSTreeCommits)
|
||||
commitSpecs := resolvePipelineCommits(manifest.GetOSTreeSourceSpecs())
|
||||
|
||||
mf, err := manifest.Serialize(packageSpecs, containerSpecs, commitSpecs)
|
||||
if err != nil {
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ func TestCrossArchDepsolve(t *testing.T) {
|
|||
repos[archStr], 0)
|
||||
assert.NoError(t, err)
|
||||
|
||||
for _, set := range manifest.Content.PackageSets {
|
||||
for _, set := range manifest.GetPackageSetChains() {
|
||||
_, err = solver.Depsolve(set)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
|
@ -101,7 +101,7 @@ func TestDepsolvePackageSets(t *testing.T) {
|
|||
|
||||
manifestSource, _, err := qcow2Image.Manifest(&blueprint.Blueprint{Packages: []blueprint.Package{{Name: "bind"}}}, distro.ImageOptions{}, x86Repos, 0)
|
||||
require.Nilf(t, err, "failed to initialise manifest for %q image type of %q/%q distro/arch", qcow2ImageTypeName, cs9.Name(), platform.ARCH_X86_64.String())
|
||||
imagePkgSets := manifestSource.Content.PackageSets
|
||||
imagePkgSets := manifestSource.GetPackageSetChains()
|
||||
|
||||
gotPackageSpecsSets := make(map[string][]rpmmd.PackageSpec, len(imagePkgSets))
|
||||
for name, pkgSet := range imagePkgSets {
|
||||
|
|
|
|||
|
|
@ -57,5 +57,5 @@ func main() {
|
|||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
_ = encoder.Encode(manifest.Content.PackageSets)
|
||||
_ = encoder.Encode(manifest.GetPackageSetChains())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ func main() {
|
|||
}
|
||||
|
||||
depsolvedSets := make(map[string][]rpmmd.PackageSpec)
|
||||
for name, pkgSet := range manifest.Content.PackageSets {
|
||||
for name, pkgSet := range manifest.GetPackageSetChains() {
|
||||
res, err := solver.Depsolve(pkgSet)
|
||||
if err != nil {
|
||||
panic("Could not depsolve: " + err.Error())
|
||||
|
|
@ -209,8 +209,9 @@ func main() {
|
|||
depsolvedSets[name] = res
|
||||
}
|
||||
|
||||
containers := make(map[string][]container.Spec, len(manifest.Content.Containers))
|
||||
for name, sourceSpecs := range manifest.Content.Containers {
|
||||
containerSources := manifest.GetContainerSourceSpecs()
|
||||
containers := make(map[string][]container.Spec, len(containerSources))
|
||||
for name, sourceSpecs := range containerSources {
|
||||
containerSpecs, err := resolveContainers(sourceSpecs, arch.Name())
|
||||
if err != nil {
|
||||
panic("Could not resolve containers: " + err.Error())
|
||||
|
|
@ -219,8 +220,9 @@ func main() {
|
|||
}
|
||||
|
||||
// "resolve" ostree commits by copying the source specs into commit specs
|
||||
commits := make(map[string][]ostree.CommitSpec, len(manifest.Content.OSTreeCommits))
|
||||
for name, commitSources := range manifest.Content.OSTreeCommits {
|
||||
commitSources := manifest.GetOSTreeSourceSpecs()
|
||||
commits := make(map[string][]ostree.CommitSpec, len(commitSources))
|
||||
for name, commitSources := range commitSources {
|
||||
commitSpecs := make([]ostree.CommitSpec, len(commitSources))
|
||||
for idx, commitSource := range commitSources {
|
||||
commitSpecs[idx] = ostree.CommitSpec{
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ func getManifest(bp blueprint.Blueprint, t distro.ImageType, a distro.Arch, d di
|
|||
}
|
||||
pkgSpecSets := make(map[string][]rpmmd.PackageSpec)
|
||||
solver := dnfjson.NewSolver(d.ModulePlatformID(), d.Releasever(), a.Name(), d.Name(), cacheDir)
|
||||
for name, packages := range manifest.Content.PackageSets {
|
||||
for name, packages := range manifest.GetPackageSetChains() {
|
||||
res, err := solver.Depsolve(packages)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue