From 0743eb2f810b7ae236c1347e4e394f8e6811a34e Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Tue, 28 Jun 2022 23:32:17 +0100 Subject: [PATCH] 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. --- internal/distro/fedora/pipelines.go | 56 ++++++++++++------------- internal/manifest/anaconda.go | 8 ++-- internal/manifest/build.go | 8 ++-- internal/manifest/commit.go | 6 +-- internal/manifest/commit_server_tree.go | 8 ++-- internal/manifest/iso.go | 6 +-- internal/manifest/iso_tree.go | 8 ++-- internal/manifest/live.go | 6 +-- internal/manifest/oci_container.go | 6 +-- internal/manifest/os.go | 10 ++--- internal/manifest/qcow2.go | 6 +-- internal/manifest/tar.go | 6 +-- internal/manifest/vmdk.go | 6 +-- internal/manifest/vpc.go | 6 +-- 14 files changed, 73 insertions(+), 73 deletions(-) diff --git a/internal/distro/fedora/pipelines.go b/internal/distro/fedora/pipelines.go index 0eb6b23eb..e186bdef0 100644 --- a/internal/distro/fedora/pipelines.go +++ b/internal/distro/fedora/pipelines.go @@ -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 diff --git a/internal/manifest/anaconda.go b/internal/manifest/anaconda.go index a337a3cab..e464b8451 100644 --- a/internal/manifest/anaconda.go +++ b/internal/manifest/anaconda.go @@ -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))) diff --git a/internal/manifest/build.go b/internal/manifest/build.go index 48dafbf4a..76b4e7691 100644 --- a/internal/manifest/build.go +++ b/internal/manifest/build.go @@ -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))) diff --git a/internal/manifest/commit.go b/internal/manifest/commit.go index 2b9aa4d74..715872659 100644 --- a/internal/manifest/commit.go +++ b/internal/manifest/commit.go @@ -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"})) diff --git a/internal/manifest/commit_server_tree.go b/internal/manifest/commit_server_tree.go index 6b116dbee..82cc1ef91 100644 --- a/internal/manifest/commit_server_tree.go +++ b/internal/manifest/commit_server_tree.go @@ -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))) diff --git a/internal/manifest/iso.go b/internal/manifest/iso.go index d33a2ccad..cedc58a02 100644 --- a/internal/manifest/iso.go +++ b/internal/manifest/iso.go @@ -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()))) diff --git a/internal/manifest/iso_tree.go b/internal/manifest/iso_tree.go index 6368a2cc0..439ec7fb9 100644 --- a/internal/manifest/iso_tree.go +++ b/internal/manifest/iso_tree.go @@ -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" diff --git a/internal/manifest/live.go b/internal/manifest/live.go index 3e9f3e152..e64ae182f 100644 --- a/internal/manifest/live.go +++ b/internal/manifest/live.go @@ -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 diff --git a/internal/manifest/oci_container.go b/internal/manifest/oci_container.go index b2e5c38e7..2bac6678c 100644 --- a/internal/manifest/oci_container.go +++ b/internal/manifest/oci_container.go @@ -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{ diff --git a/internal/manifest/os.go b/internal/manifest/os.go index cb3bbb34a..13335a58f 100644 --- a/internal/manifest/os.go +++ b/internal/manifest/os.go @@ -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 != "" { diff --git a/internal/manifest/qcow2.go b/internal/manifest/qcow2.go index e928d3c72..d69b0c921 100644 --- a/internal/manifest/qcow2.go +++ b/internal/manifest/qcow2.go @@ -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( diff --git a/internal/manifest/tar.go b/internal/manifest/tar.go index f919eb055..96b88d091 100644 --- a/internal/manifest/tar.go +++ b/internal/manifest/tar.go @@ -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) diff --git a/internal/manifest/vmdk.go b/internal/manifest/vmdk.go index 855b87461..493d34fd7 100644 --- a/internal/manifest/vmdk.go +++ b/internal/manifest/vmdk.go @@ -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( diff --git a/internal/manifest/vpc.go b/internal/manifest/vpc.go index 62f041a72..29adee4af 100644 --- a/internal/manifest/vpc.go +++ b/internal/manifest/vpc.go @@ -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(