manifest: use call-by-reference in pipeline interface

This allows interface methods to modify the state of the pipeline
objects. We will use this in subsequent patches.
This commit is contained in:
Tom Gundersen 2022-06-28 23:32:17 +01:00
parent d0fa58bb2d
commit 0743eb2f81
14 changed files with 73 additions and 73 deletions

View file

@ -16,16 +16,16 @@ func qcow2Pipelines(t *imageType, customizations *blueprint.Customizations, opti
buildPipeline := manifest.NewBuildPipeline(t.arch.distro.runner, repos, packageSetSpecs[buildPkgsKey])
pipelines = append(pipelines, buildPipeline)
treePipeline, err := osPipeline(&buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
treePipeline, err := osPipeline(buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
if err != nil {
return nil, err
}
pipelines = append(pipelines, treePipeline)
imagePipeline := manifest.NewLiveImgPipeline(&buildPipeline, &treePipeline, "disk.img")
imagePipeline := manifest.NewLiveImgPipeline(buildPipeline, treePipeline, "disk.img")
pipelines = append(pipelines, imagePipeline)
qcow2Pipeline := manifest.NewQCOW2Pipeline(&buildPipeline, &imagePipeline, t.filename)
qcow2Pipeline := manifest.NewQCOW2Pipeline(buildPipeline, imagePipeline, t.filename)
qcow2Pipeline.Compat = "1.1"
pipelines = append(pipelines, qcow2Pipeline)
@ -38,16 +38,16 @@ func vhdPipelines(t *imageType, customizations *blueprint.Customizations, option
buildPipeline := manifest.NewBuildPipeline(t.arch.distro.runner, repos, packageSetSpecs[buildPkgsKey])
pipelines = append(pipelines, buildPipeline)
treePipeline, err := osPipeline(&buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
treePipeline, err := osPipeline(buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
if err != nil {
return nil, err
}
pipelines = append(pipelines, treePipeline)
imagePipeline := manifest.NewLiveImgPipeline(&buildPipeline, &treePipeline, "disk.img")
imagePipeline := manifest.NewLiveImgPipeline(buildPipeline, treePipeline, "disk.img")
pipelines = append(pipelines, imagePipeline)
vpcPipeline := manifest.NewVPCPipeline(&buildPipeline, &imagePipeline, t.filename)
vpcPipeline := manifest.NewVPCPipeline(buildPipeline, imagePipeline, t.filename)
pipelines = append(pipelines, vpcPipeline)
return pipelines, nil
}
@ -58,16 +58,16 @@ func vmdkPipelines(t *imageType, customizations *blueprint.Customizations, optio
buildPipeline := manifest.NewBuildPipeline(t.arch.distro.runner, repos, packageSetSpecs[buildPkgsKey])
pipelines = append(pipelines, buildPipeline)
treePipeline, err := osPipeline(&buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
treePipeline, err := osPipeline(buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
if err != nil {
return nil, err
}
pipelines = append(pipelines, treePipeline)
imagePipeline := manifest.NewLiveImgPipeline(&buildPipeline, &treePipeline, "disk.img")
imagePipeline := manifest.NewLiveImgPipeline(buildPipeline, treePipeline, "disk.img")
pipelines = append(pipelines, imagePipeline)
vmdkPipeline := manifest.NewVMDKPipeline(&buildPipeline, &imagePipeline, t.filename)
vmdkPipeline := manifest.NewVMDKPipeline(buildPipeline, imagePipeline, t.filename)
pipelines = append(pipelines, vmdkPipeline)
return pipelines, nil
}
@ -78,16 +78,16 @@ func openstackPipelines(t *imageType, customizations *blueprint.Customizations,
buildPipeline := manifest.NewBuildPipeline(t.arch.distro.runner, repos, packageSetSpecs[buildPkgsKey])
pipelines = append(pipelines, buildPipeline)
treePipeline, err := osPipeline(&buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
treePipeline, err := osPipeline(buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
if err != nil {
return nil, err
}
pipelines = append(pipelines, treePipeline)
imagePipeline := manifest.NewLiveImgPipeline(&buildPipeline, &treePipeline, "disk.img")
imagePipeline := manifest.NewLiveImgPipeline(buildPipeline, treePipeline, "disk.img")
pipelines = append(pipelines, imagePipeline)
qcow2Pipeline := manifest.NewQCOW2Pipeline(&buildPipeline, &imagePipeline, t.filename)
qcow2Pipeline := manifest.NewQCOW2Pipeline(buildPipeline, imagePipeline, t.filename)
pipelines = append(pipelines, qcow2Pipeline)
return pipelines, nil
}
@ -100,13 +100,13 @@ func ec2CommonPipelines(t *imageType, customizations *blueprint.Customizations,
buildPipeline := manifest.NewBuildPipeline(t.arch.distro.runner, repos, packageSetSpecs[buildPkgsKey])
pipelines = append(pipelines, buildPipeline)
treePipeline, err := osPipeline(&buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
treePipeline, err := osPipeline(buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, rng)
if err != nil {
return nil, err
}
pipelines = append(pipelines, treePipeline)
imagePipeline := manifest.NewLiveImgPipeline(&buildPipeline, &treePipeline, diskfile)
imagePipeline := manifest.NewLiveImgPipeline(buildPipeline, treePipeline, diskfile)
pipelines = append(pipelines, imagePipeline)
return pipelines, nil
}
@ -126,22 +126,22 @@ func iotInstallerPipelines(t *imageType, customizations *blueprint.Customization
d := t.arch.distro
ksUsers := len(customizations.GetUsers())+len(customizations.GetGroups()) > 0
anacondaTreePipeline := anacondaTreePipeline(&buildPipeline, repos, installerPackages, t.Arch().Name(), d.product, d.osVersion, "IoT", ksUsers)
isoTreePipeline := bootISOTreePipeline(&buildPipeline, &anacondaTreePipeline, options, d.vendor, d.isolabelTmpl, customizations.GetUsers(), customizations.GetGroups())
isoPipeline := bootISOPipeline(&buildPipeline, &isoTreePipeline, t.Filename(), false)
anacondaTreePipeline := anacondaTreePipeline(buildPipeline, repos, installerPackages, t.Arch().Name(), d.product, d.osVersion, "IoT", ksUsers)
isoTreePipeline := bootISOTreePipeline(buildPipeline, anacondaTreePipeline, options, d.vendor, d.isolabelTmpl, customizations.GetUsers(), customizations.GetGroups())
isoPipeline := bootISOPipeline(buildPipeline, isoTreePipeline, t.Filename(), false)
return append(pipelines, anacondaTreePipeline, isoTreePipeline, isoPipeline), nil
}
func iotCorePipelines(t *imageType, customizations *blueprint.Customizations, options distro.ImageOptions, repos []rpmmd.RepoConfig, packageSetSpecs map[string][]rpmmd.PackageSpec) (*manifest.BuildPipeline, *manifest.OSPipeline, *manifest.OSTreeCommitPipeline, error) {
buildPipeline := manifest.NewBuildPipeline(t.arch.distro.runner, repos, packageSetSpecs[buildPkgsKey])
treePipeline, err := osPipeline(&buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, nil)
treePipeline, err := osPipeline(buildPipeline, t, repos, packageSetSpecs[osPkgsKey], customizations, options, nil)
if err != nil {
return nil, nil, nil, err
}
commitPipeline := ostreeCommitPipeline(&buildPipeline, &treePipeline, options, t.arch.distro.osVersion)
commitPipeline := ostreeCommitPipeline(buildPipeline, treePipeline, options, t.arch.distro.osVersion)
return &buildPipeline, &treePipeline, &commitPipeline, nil
return buildPipeline, treePipeline, commitPipeline, nil
}
func iotCommitPipelines(t *imageType, customizations *blueprint.Customizations, options distro.ImageOptions, repos []rpmmd.RepoConfig, packageSetSpecs map[string][]rpmmd.PackageSpec, rng *rand.Rand) ([]manifest.Pipeline, error) {
@ -179,7 +179,7 @@ func osPipeline(buildPipeline *manifest.BuildPipeline,
packages []rpmmd.PackageSpec,
c *blueprint.Customizations,
options distro.ImageOptions,
rng *rand.Rand) (manifest.OSPipeline, error) {
rng *rand.Rand) (*manifest.OSPipeline, error) {
imageConfig := t.getDefaultImageConfig()
@ -189,7 +189,7 @@ func osPipeline(buildPipeline *manifest.BuildPipeline,
var err error
pt, err = t.getPartitionTable(c.GetFilesystems(), options, rng)
if err != nil {
return manifest.OSPipeline{}, err
return nil, err
}
}
@ -299,13 +299,13 @@ func osPipeline(buildPipeline *manifest.BuildPipeline,
return pl, nil
}
func ostreeCommitPipeline(buildPipeline *manifest.BuildPipeline, treePipeline *manifest.OSPipeline, options distro.ImageOptions, osVersion string) manifest.OSTreeCommitPipeline {
func ostreeCommitPipeline(buildPipeline *manifest.BuildPipeline, treePipeline *manifest.OSPipeline, options distro.ImageOptions, osVersion string) *manifest.OSTreeCommitPipeline {
p := manifest.NewOSTreeCommitPipeline(buildPipeline, treePipeline, options.OSTree.Ref)
p.OSVersion = osVersion
return p
}
func containerTreePipeline(buildPipeline *manifest.BuildPipeline, commitPipeline *manifest.OSTreeCommitPipeline, repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, options distro.ImageOptions, c *blueprint.Customizations, nginxConfigPath, listenPort string) manifest.OSTreeCommitServerTreePipeline {
func containerTreePipeline(buildPipeline *manifest.BuildPipeline, commitPipeline *manifest.OSTreeCommitPipeline, repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, options distro.ImageOptions, c *blueprint.Customizations, nginxConfigPath, listenPort string) *manifest.OSTreeCommitServerTreePipeline {
p := manifest.NewOSTreeCommitServerTreePipeline(buildPipeline, repos, packages, commitPipeline, nginxConfigPath, listenPort)
language, _ := c.GetPrimaryLocale()
if language != nil {
@ -314,14 +314,14 @@ func containerTreePipeline(buildPipeline *manifest.BuildPipeline, commitPipeline
return p
}
func containerPipeline(buildPipeline *manifest.BuildPipeline, treePipeline *manifest.BasePipeline, t *imageType, nginxConfigPath, listenPort string) manifest.OCIContainerPipeline {
func containerPipeline(buildPipeline *manifest.BuildPipeline, treePipeline *manifest.BasePipeline, t *imageType, nginxConfigPath, listenPort string) *manifest.OCIContainerPipeline {
p := manifest.NewOCIContainerPipeline(buildPipeline, treePipeline, t.Arch().Name(), t.Filename())
p.Cmd = []string{"nginx", "-c", nginxConfigPath}
p.ExposedPorts = []string{listenPort}
return p
}
func anacondaTreePipeline(buildPipeline *manifest.BuildPipeline, repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, arch, product, osVersion, variant string, users bool) manifest.AnacondaPipeline {
func anacondaTreePipeline(buildPipeline *manifest.BuildPipeline, repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, arch, product, osVersion, variant string, users bool) *manifest.AnacondaPipeline {
p := manifest.NewAnacondaPipeline(buildPipeline, repos, packages, "kernel", arch, product, osVersion)
p.Users = users
p.Variant = variant
@ -329,7 +329,7 @@ func anacondaTreePipeline(buildPipeline *manifest.BuildPipeline, repos []rpmmd.R
return p
}
func bootISOTreePipeline(buildPipeline *manifest.BuildPipeline, anacondaPipeline *manifest.AnacondaPipeline, options distro.ImageOptions, vendor, isoLabelTempl string, users []blueprint.UserCustomization, groups []blueprint.GroupCustomization) manifest.ISOTreePipeline {
func bootISOTreePipeline(buildPipeline *manifest.BuildPipeline, anacondaPipeline *manifest.AnacondaPipeline, options distro.ImageOptions, vendor, isoLabelTempl string, users []blueprint.UserCustomization, groups []blueprint.GroupCustomization) *manifest.ISOTreePipeline {
p := manifest.NewISOTreePipeline(buildPipeline, anacondaPipeline, options.OSTree.Parent, options.OSTree.URL, options.OSTree.Ref, isoLabelTempl)
p.Release = "202010217.n.0"
p.OSName = "fedora"
@ -340,7 +340,7 @@ func bootISOTreePipeline(buildPipeline *manifest.BuildPipeline, anacondaPipeline
return p
}
func bootISOPipeline(buildPipeline *manifest.BuildPipeline, treePipeline *manifest.ISOTreePipeline, filename string, isolinux bool) manifest.ISOPipeline {
func bootISOPipeline(buildPipeline *manifest.BuildPipeline, treePipeline *manifest.ISOTreePipeline, filename string, isolinux bool) *manifest.ISOPipeline {
p := manifest.NewISOPipeline(buildPipeline, treePipeline, filename)
p.ISOLinux = isolinux
return p

View file

@ -42,9 +42,9 @@ func NewAnacondaPipeline(buildPipeline *BuildPipeline,
kernelName,
arch,
product,
version string) AnacondaPipeline {
version string) *AnacondaPipeline {
kernelVer := rpmmd.GetVerStrFromPackageSpecListPanic(packages, kernelName)
return AnacondaPipeline{
return &AnacondaPipeline{
BasePipeline: NewBasePipeline("anaconda-tree", buildPipeline, nil),
repos: repos,
packageSpecs: packages,
@ -55,11 +55,11 @@ func NewAnacondaPipeline(buildPipeline *BuildPipeline,
}
}
func (p AnacondaPipeline) getPackageSpecs() []rpmmd.PackageSpec {
func (p *AnacondaPipeline) getPackageSpecs() []rpmmd.PackageSpec {
return p.packageSpecs
}
func (p AnacondaPipeline) serialize() osbuild2.Pipeline {
func (p *AnacondaPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewRPMStage(osbuild2.NewRPMStageOptions(p.repos), osbuild2.NewRpmStageSourceFilesInputs(p.packageSpecs)))

View file

@ -21,8 +21,8 @@ type BuildPipeline struct {
// NewBuildPipeline creates a new build pipeline from the repositories in repos
// and the specified packages.
func NewBuildPipeline(runner string, repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec) BuildPipeline {
pipeline := BuildPipeline{
func NewBuildPipeline(runner string, repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec) *BuildPipeline {
pipeline := &BuildPipeline{
BasePipeline: NewBasePipeline("build", nil, &runner),
repos: repos,
packageSpecs: packages,
@ -30,11 +30,11 @@ func NewBuildPipeline(runner string, repos []rpmmd.RepoConfig, packages []rpmmd.
return pipeline
}
func (p BuildPipeline) getPackageSpecs() []rpmmd.PackageSpec {
func (p *BuildPipeline) getPackageSpecs() []rpmmd.PackageSpec {
return p.packageSpecs
}
func (p BuildPipeline) serialize() osbuild2.Pipeline {
func (p *BuildPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewRPMStage(osbuild2.NewRPMStageOptions(p.repos), osbuild2.NewRpmStageSourceFilesInputs(p.packageSpecs)))

View file

@ -16,15 +16,15 @@ type OSTreeCommitPipeline struct {
// NewOSTreeCommitPipeline creates a new OSTree commit pipeline. The
// treePipeline is the tree representing the content of the commit.
// ref is the ref to create the commit under.
func NewOSTreeCommitPipeline(buildPipeline *BuildPipeline, treePipeline *OSPipeline, ref string) OSTreeCommitPipeline {
return OSTreeCommitPipeline{
func NewOSTreeCommitPipeline(buildPipeline *BuildPipeline, treePipeline *OSPipeline, ref string) *OSTreeCommitPipeline {
return &OSTreeCommitPipeline{
BasePipeline: NewBasePipeline("ostree-commit", buildPipeline, nil),
treePipeline: treePipeline,
ref: ref,
}
}
func (p OSTreeCommitPipeline) serialize() osbuild2.Pipeline {
func (p *OSTreeCommitPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewOSTreeInitStage(&osbuild2.OSTreeInitStageOptions{Path: "/repo"}))

View file

@ -32,8 +32,8 @@ func NewOSTreeCommitServerTreePipeline(buildPipeline *BuildPipeline,
packageSpecs []rpmmd.PackageSpec,
commitPipeline *OSTreeCommitPipeline,
nginxConfigPath,
listenPort string) OSTreeCommitServerTreePipeline {
return OSTreeCommitServerTreePipeline{
listenPort string) *OSTreeCommitServerTreePipeline {
return &OSTreeCommitServerTreePipeline{
BasePipeline: NewBasePipeline("container-tree", buildPipeline, nil),
repos: repos,
packageSpecs: packageSpecs,
@ -44,11 +44,11 @@ func NewOSTreeCommitServerTreePipeline(buildPipeline *BuildPipeline,
}
}
func (p OSTreeCommitServerTreePipeline) getPackageSpecs() []rpmmd.PackageSpec {
func (p *OSTreeCommitServerTreePipeline) getPackageSpecs() []rpmmd.PackageSpec {
return p.packageSpecs
}
func (p OSTreeCommitServerTreePipeline) serialize() osbuild2.Pipeline {
func (p *OSTreeCommitServerTreePipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewRPMStage(osbuild2.NewRPMStageOptions(p.repos), osbuild2.NewRpmStageSourceFilesInputs(p.packageSpecs)))

View file

@ -14,15 +14,15 @@ type ISOPipeline struct {
filename string
}
func NewISOPipeline(buildPipeline *BuildPipeline, treePipeline *ISOTreePipeline, filename string) ISOPipeline {
return ISOPipeline{
func NewISOPipeline(buildPipeline *BuildPipeline, treePipeline *ISOTreePipeline, filename string) *ISOPipeline {
return &ISOPipeline{
BasePipeline: NewBasePipeline("bootiso", buildPipeline, nil),
treePipeline: treePipeline,
filename: filename,
}
}
func (p ISOPipeline) serialize() osbuild2.Pipeline {
func (p *ISOPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewXorrisofsStage(xorrisofsStageOptions(p.filename, p.treePipeline.isoLabel, p.ISOLinux), osbuild2.NewXorrisofsStagePipelineTreeInputs(p.treePipeline.Name())))

View file

@ -28,11 +28,11 @@ type ISOTreePipeline struct {
osTreeRef string
}
func NewISOTreePipeline(buildPipeline *BuildPipeline, anacondaPipeline *AnacondaPipeline, osTreeCommit, osTreeURL, osTreeRef, isoLabelTmpl string) ISOTreePipeline {
func NewISOTreePipeline(buildPipeline *BuildPipeline, anacondaPipeline *AnacondaPipeline, osTreeCommit, osTreeURL, osTreeRef, isoLabelTmpl string) *ISOTreePipeline {
// TODO: replace isoLabelTmpl with more high-level properties
isoLabel := fmt.Sprintf(isoLabelTmpl, anacondaPipeline.arch)
return ISOTreePipeline{
return &ISOTreePipeline{
BasePipeline: NewBasePipeline("bootiso-tree", buildPipeline, nil),
anacondaPipeline: anacondaPipeline,
isoLabel: isoLabel,
@ -42,7 +42,7 @@ func NewISOTreePipeline(buildPipeline *BuildPipeline, anacondaPipeline *Anaconda
}
}
func (p ISOTreePipeline) getOSTreeCommits() []osTreeCommit {
func (p *ISOTreePipeline) getOSTreeCommits() []osTreeCommit {
return []osTreeCommit{
{
checksum: p.osTreeCommit,
@ -51,7 +51,7 @@ func (p ISOTreePipeline) getOSTreeCommits() []osTreeCommit {
}
}
func (p ISOTreePipeline) serialize() osbuild2.Pipeline {
func (p *ISOTreePipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
kspath := "/osbuild.ks"

View file

@ -13,15 +13,15 @@ type LiveImgPipeline struct {
filename string
}
func NewLiveImgPipeline(buildPipeline *BuildPipeline, treePipeline *OSPipeline, filename string) LiveImgPipeline {
return LiveImgPipeline{
func NewLiveImgPipeline(buildPipeline *BuildPipeline, treePipeline *OSPipeline, filename string) *LiveImgPipeline {
return &LiveImgPipeline{
BasePipeline: NewBasePipeline("image", buildPipeline, nil),
treePipeline: treePipeline,
filename: filename,
}
}
func (p LiveImgPipeline) serialize() osbuild2.Pipeline {
func (p *LiveImgPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pt := p.treePipeline.partitionTable

View file

@ -16,8 +16,8 @@ type OCIContainerPipeline struct {
filename string
}
func NewOCIContainerPipeline(buildPipeline *BuildPipeline, treePipeline *BasePipeline, architecture, filename string) OCIContainerPipeline {
return OCIContainerPipeline{
func NewOCIContainerPipeline(buildPipeline *BuildPipeline, treePipeline *BasePipeline, architecture, filename string) *OCIContainerPipeline {
return &OCIContainerPipeline{
BasePipeline: NewBasePipeline("container", buildPipeline, nil),
treePipeline: treePipeline,
architecture: architecture,
@ -25,7 +25,7 @@ func NewOCIContainerPipeline(buildPipeline *BuildPipeline, treePipeline *BasePip
}
}
func (p OCIContainerPipeline) serialize() osbuild2.Pipeline {
func (p *OCIContainerPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
options := &osbuild2.OCIArchiveStageOptions{

View file

@ -97,7 +97,7 @@ func NewOSPipeline(buildPipeline *BuildPipeline,
partitionTable *disk.PartitionTable,
bootLoader BootLoader,
grubLegacy string,
kernelName string) OSPipeline {
kernelName string) *OSPipeline {
name := "os"
if osTree {
name = "ostree-tree"
@ -106,7 +106,7 @@ func NewOSPipeline(buildPipeline *BuildPipeline,
if kernelName != "" {
kernelVer = rpmmd.GetVerStrFromPackageSpecListPanic(packages, kernelName)
}
return OSPipeline{
return &OSPipeline{
BasePipeline: NewBasePipeline(name, buildPipeline, nil),
osTree: osTree,
osTreeParent: osTreeParent,
@ -124,7 +124,7 @@ func NewOSPipeline(buildPipeline *BuildPipeline,
}
}
func (p OSPipeline) getOSTreeCommits() []osTreeCommit {
func (p *OSPipeline) getOSTreeCommits() []osTreeCommit {
commits := []osTreeCommit{}
if p.osTreeParent != "" && p.osTreeURL != "" {
commits = append(commits, osTreeCommit{
@ -135,11 +135,11 @@ func (p OSPipeline) getOSTreeCommits() []osTreeCommit {
return commits
}
func (p OSPipeline) getPackageSpecs() []rpmmd.PackageSpec {
func (p *OSPipeline) getPackageSpecs() []rpmmd.PackageSpec {
return p.packageSpecs
}
func (p OSPipeline) serialize() osbuild2.Pipeline {
func (p *OSPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
if p.osTree && p.osTreeParent != "" {

View file

@ -16,15 +16,15 @@ type QCOW2Pipeline struct {
// NewQCOW2Pipeline createsa new QCOW2 pipeline. imgPipeline is the pipeline producing the
// raw image. The pipeline name is the name of the new pipeline. Filename is the name
// of the produced qcow2 image.
func NewQCOW2Pipeline(buildPipeline *BuildPipeline, imgPipeline *LiveImgPipeline, filename string) QCOW2Pipeline {
return QCOW2Pipeline{
func NewQCOW2Pipeline(buildPipeline *BuildPipeline, imgPipeline *LiveImgPipeline, filename string) *QCOW2Pipeline {
return &QCOW2Pipeline{
BasePipeline: NewBasePipeline("qcow2", buildPipeline, nil),
imgPipeline: imgPipeline,
filename: filename,
}
}
func (p QCOW2Pipeline) serialize() osbuild2.Pipeline {
func (p *QCOW2Pipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewQEMUStage(

View file

@ -14,15 +14,15 @@ type TarPipeline struct {
// NewTarPipeline creates a new TarPipeline. The inputPipeline represents the
// filesystem tree which will be the contents of the tar file. The pipelinename
// is the name of the pipeline. The filename is the name of the output tar file.
func NewTarPipeline(buildPipeline *BuildPipeline, inputPipeline *BasePipeline, pipelinename, filename string) TarPipeline {
return TarPipeline{
func NewTarPipeline(buildPipeline *BuildPipeline, inputPipeline *BasePipeline, pipelinename, filename string) *TarPipeline {
return &TarPipeline{
BasePipeline: NewBasePipeline(pipelinename, buildPipeline, nil),
inputPipeline: inputPipeline,
filename: filename,
}
}
func (p TarPipeline) serialize() osbuild2.Pipeline {
func (p *TarPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
tree := new(osbuild2.TarStageInput)

View file

@ -14,15 +14,15 @@ type VMDKPipeline struct {
// NewVMDKPipeline creates a new VMDK pipeline. imgPipeline is the pipeline producing the
// raw image. Filename is the name of the produced image.
func NewVMDKPipeline(buildPipeline *BuildPipeline, imgPipeline *LiveImgPipeline, filename string) VMDKPipeline {
return VMDKPipeline{
func NewVMDKPipeline(buildPipeline *BuildPipeline, imgPipeline *LiveImgPipeline, filename string) *VMDKPipeline {
return &VMDKPipeline{
BasePipeline: NewBasePipeline("vmdk", buildPipeline, nil),
imgPipeline: imgPipeline,
filename: filename,
}
}
func (p VMDKPipeline) serialize() osbuild2.Pipeline {
func (p *VMDKPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewQEMUStage(

View file

@ -15,15 +15,15 @@ type VPCPipeline struct {
// NewVPCPipeline createsa new Qemu pipeline. imgPipeline is the pipeline producing the
// raw image. The pipeline name is the name of the new pipeline. Filename is the name
// of the produced image.
func NewVPCPipeline(buildPipeline *BuildPipeline, imgPipeline *LiveImgPipeline, filename string) VPCPipeline {
return VPCPipeline{
func NewVPCPipeline(buildPipeline *BuildPipeline, imgPipeline *LiveImgPipeline, filename string) *VPCPipeline {
return &VPCPipeline{
BasePipeline: NewBasePipeline("vpc", buildPipeline, nil),
imgPipeline: imgPipeline,
filename: filename,
}
}
func (p VPCPipeline) serialize() osbuild2.Pipeline {
func (p *VPCPipeline) serialize() osbuild2.Pipeline {
pipeline := p.BasePipeline.serialize()
pipeline.AddStage(osbuild2.NewQEMUStage(