distro: deduplicate groupStageOptions() in RHEL pipelines

Use single NewGroupsStageOptions() from osbuild1 and osbuild2 instead of
implementing in each distro.
- Followup from 2eef6e6e2d, copied to the
  rest of the RHEL distro definitions.
- Added NewGroupsStageOptions() to osbuild1 for rhel8 and rhel84.

NB: The change was not made in the Fedora distro definitions as they are
    currently being rewritten.
This commit is contained in:
Achilleas Koutsou 2022-03-30 18:56:18 +02:00 committed by Christian Kellner
parent 333bec57ef
commit 42364f2cc6
26 changed files with 26 additions and 132 deletions

View file

@ -383,7 +383,7 @@ func (t *imageType) pipeline(c *blueprint.Customizations, options distro.ImageOp
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(t.groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers()); err != nil {
@ -480,23 +480,6 @@ func (t *imageType) rpmStageOptions(arch architecture, repos []rpmmd.RepoConfig,
}
}
func (t *imageType) groupStageOptions(groups []blueprint.GroupCustomization) *osbuild.GroupsStageOptions {
options := osbuild.GroupsStageOptions{
Groups: map[string]osbuild.GroupsStageOptionsGroup{},
}
for _, group := range groups {
groupData := osbuild.GroupsStageOptionsGroup{
Name: group.Name,
}
groupData.GID = group.GID
options.Groups[group.Name] = groupData
}
return &options
}
func (t *imageType) firewallStageOptions(firewall *blueprint.FirewallCustomization) *osbuild.FirewallStageOptions {
options := osbuild.FirewallStageOptions{
Ports: firewall.Ports,

View file

@ -455,7 +455,7 @@ func (t *imageType) pipeline(c *blueprint.Customizations, options distro.ImageOp
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(t.groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers()); err != nil {
@ -564,23 +564,6 @@ func (t *imageType) rpmStageOptions(arch architecture, repos []rpmmd.RepoConfig,
}
}
func (t *imageType) groupStageOptions(groups []blueprint.GroupCustomization) *osbuild.GroupsStageOptions {
options := osbuild.GroupsStageOptions{
Groups: map[string]osbuild.GroupsStageOptionsGroup{},
}
for _, group := range groups {
groupData := osbuild.GroupsStageOptionsGroup{
Name: group.Name,
}
groupData.GID = group.GID
options.Groups[group.Name] = groupData
}
return &options
}
func (t *imageType) firewallStageOptions(firewall *blueprint.FirewallCustomization) *osbuild.FirewallStageOptions {
options := osbuild.FirewallStageOptions{
Ports: firewall.Ports,

View file

@ -317,7 +317,7 @@ func (t *imageTypeS2) ostreeTreePipeline(repos []rpmmd.RepoConfig, packages []rp
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(t.groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {
@ -553,23 +553,6 @@ func (t *imageTypeS2) usersFirstBootOptions(usersStageOptions *osbuild.UsersStag
return options
}
func (t *imageTypeS2) groupStageOptions(groups []blueprint.GroupCustomization) *osbuild.GroupsStageOptions {
options := osbuild.GroupsStageOptions{
Groups: map[string]osbuild.GroupsStageOptionsGroup{},
}
for _, group := range groups {
groupData := osbuild.GroupsStageOptionsGroup{
Name: group.Name,
}
groupData.GID = group.GID
options.Groups[group.Name] = groupData
}
return &options
}
func (t *imageTypeS2) firewallStageOptions(firewall *blueprint.FirewallCustomization) *osbuild.FirewallStageOptions {
options := osbuild.FirewallStageOptions{
Ports: firewall.Ports,

View file

@ -239,7 +239,7 @@ func ec2BaseTreePipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec,
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {
@ -660,7 +660,7 @@ func osPipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, bpPackag
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {
@ -744,7 +744,7 @@ func ostreeTreePipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec,
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {

View file

@ -52,23 +52,6 @@ func usersFirstBootOptions(usersStageOptions *osbuild.UsersStageOptions) *osbuil
return options
}
func groupStageOptions(groups []blueprint.GroupCustomization) *osbuild.GroupsStageOptions {
options := osbuild.GroupsStageOptions{
Groups: map[string]osbuild.GroupsStageOptionsGroup{},
}
for _, group := range groups {
groupData := osbuild.GroupsStageOptionsGroup{
Name: group.Name,
}
groupData.GID = group.GID
options.Groups[group.Name] = groupData
}
return &options
}
func firewallStageOptions(firewall *blueprint.FirewallCustomization) *osbuild.FirewallStageOptions {
options := osbuild.FirewallStageOptions{
Ports: firewall.Ports,
@ -205,7 +188,6 @@ func ostreeKickstartStageOptions(ostreeURL, ostreeRef string) *osbuild.Kickstart
},
}
}
func bootISOMonoStageOptions(kernelVer string, arch string) *osbuild.BootISOMonoStageOptions {
comprOptions := new(osbuild.FSCompressionOptions)
if bcj := osbuild.BCJOption(arch); bcj != "" {

View file

@ -227,7 +227,7 @@ func ec2BaseTreePipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec,
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {
@ -744,7 +744,7 @@ func osPipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec, bpPackag
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {
@ -823,7 +823,7 @@ func ostreeTreePipeline(repos []rpmmd.RepoConfig, packages []rpmmd.PackageSpec,
}
if groups := c.GetGroups(); len(groups) > 0 {
p.AddStage(osbuild.NewGroupsStage(groupStageOptions(groups)))
p.AddStage(osbuild.NewGroupsStage(osbuild.NewGroupsStageOptions(groups)))
}
if userOptions, err := osbuild.NewUsersStageOptions(c.GetUsers(), false); err != nil {

View file

@ -49,23 +49,6 @@ func usersFirstBootOptions(usersStageOptions *osbuild.UsersStageOptions) *osbuil
return options
}
func groupStageOptions(groups []blueprint.GroupCustomization) *osbuild.GroupsStageOptions {
options := osbuild.GroupsStageOptions{
Groups: map[string]osbuild.GroupsStageOptionsGroup{},
}
for _, group := range groups {
groupData := osbuild.GroupsStageOptionsGroup{
Name: group.Name,
}
groupData.GID = group.GID
options.Groups[group.Name] = groupData
}
return &options
}
func firewallStageOptions(firewall *blueprint.FirewallCustomization) *osbuild.FirewallStageOptions {
options := osbuild.FirewallStageOptions{
Ports: firewall.Ports,

View file

@ -1,5 +1,7 @@
package osbuild1
import "github.com/osbuild/osbuild-composer/internal/blueprint"
type GroupsStageOptions struct {
Groups map[string]GroupsStageOptionsGroup `json:"groups"`
}
@ -7,7 +9,7 @@ type GroupsStageOptions struct {
func (GroupsStageOptions) isStageOptions() {}
type GroupsStageOptionsGroup struct {
Name string `json:"name"`
Name string `json:"name,omitempty"`
GID *int `json:"gid,omitempty"`
}
@ -17,3 +19,17 @@ func NewGroupsStage(options *GroupsStageOptions) *Stage {
Options: options,
}
}
func NewGroupsStageOptions(groups []blueprint.GroupCustomization) *GroupsStageOptions {
options := GroupsStageOptions{
Groups: map[string]GroupsStageOptionsGroup{},
}
for _, group := range groups {
options.Groups[group.Name] = GroupsStageOptionsGroup{
GID: group.GID,
}
}
return &options
}

View file

@ -3560,11 +3560,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3839,11 +3839,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3760,11 +3760,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3542,11 +3542,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3569,11 +3569,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3848,11 +3848,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3786,11 +3786,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -3609,11 +3609,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -917,11 +917,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -970,11 +970,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -1010,11 +1010,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -920,11 +920,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -930,11 +930,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -843,11 +843,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -906,11 +906,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -993,11 +993,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -880,11 +880,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}

View file

@ -874,11 +874,9 @@
"options": {
"groups": {
"group1": {
"name": "group1",
"gid": 1030
},
"group2": {
"name": "group2",
"gid": 1050
}
}