From a3ede90093deec272304b7f3d1e43e7c7ef1e308 Mon Sep 17 00:00:00 2001 From: Jonathon Anderson Date: Wed, 6 Nov 2024 22:47:19 -0700 Subject: [PATCH] Use "default" netname during add, set - Closes #1499 Signed-off-by: Jonathon Anderson --- internal/app/wwctl/node/add/main.go | 20 ++++++++++---------- internal/app/wwctl/node/add/root.go | 10 ++-------- internal/app/wwctl/profile/add/main.go | 20 ++++++++++---------- internal/app/wwctl/profile/add/root.go | 10 ++-------- internal/pkg/node/flags.go | 2 +- 5 files changed, 25 insertions(+), 37 deletions(-) diff --git a/internal/app/wwctl/node/add/main.go b/internal/app/wwctl/node/add/main.go index f524b1cf..2c91e8b2 100644 --- a/internal/app/wwctl/node/add/main.go +++ b/internal/app/wwctl/node/add/main.go @@ -24,29 +24,29 @@ func CobraRunE(vars *variables) func(cmd *cobra.Command, args []string) error { // to this network if !node.ObjectIsEmpty(vars.nodeConf.NetDevs["UNDEF"]) { netDev := *vars.nodeConf.NetDevs["UNDEF"] - vars.nodeConf.NetDevs[vars.netName] = &netDev + vars.nodeConf.NetDevs[vars.nodeAdd.Net] = &netDev } delete(vars.nodeConf.NetDevs, "UNDEF") - if vars.fsName != "" { - if !strings.HasPrefix(vars.fsName, "/dev") { - if vars.fsName == vars.partName { - vars.fsName = "/dev/disk/by-partlabel/" + vars.partName + if vars.nodeAdd.FsName != "" { + if !strings.HasPrefix(vars.nodeAdd.FsName, "/dev") { + if vars.nodeAdd.FsName == vars.nodeAdd.PartName { + vars.nodeAdd.FsName = "/dev/disk/by-partlabel/" + vars.nodeAdd.PartName } else { return fmt.Errorf("filesystems need to have a underlying blockdev") } } fs := *vars.nodeConf.FileSystems["UNDEF"] - vars.nodeConf.FileSystems[vars.fsName] = &fs + vars.nodeConf.FileSystems[vars.nodeAdd.FsName] = &fs } delete(vars.nodeConf.FileSystems, "UNDEF") - if vars.diskName != "" && vars.partName != "" { + if vars.nodeAdd.DiskName != "" && vars.nodeAdd.PartName != "" { prt := *vars.nodeConf.Disks["UNDEF"].Partitions["UNDEF"] - vars.nodeConf.Disks["UNDEF"].Partitions[vars.partName] = &prt + vars.nodeConf.Disks["UNDEF"].Partitions[vars.nodeAdd.PartName] = &prt delete(vars.nodeConf.Disks["UNDEF"].Partitions, "UNDEF") dsk := *vars.nodeConf.Disks["UNDEF"] - vars.nodeConf.Disks[vars.diskName] = &dsk + vars.nodeConf.Disks[vars.nodeAdd.DiskName] = &dsk } - if (vars.diskName != "") != (vars.partName != "") { + if (vars.nodeAdd.DiskName != "") != (vars.nodeAdd.PartName != "") { return fmt.Errorf("partition and disk must be specified") } delete(vars.nodeConf.Disks, "UNDEF") diff --git a/internal/app/wwctl/node/add/root.go b/internal/app/wwctl/node/add/root.go index 5f462cf3..4fb7e5e8 100644 --- a/internal/app/wwctl/node/add/root.go +++ b/internal/app/wwctl/node/add/root.go @@ -12,11 +12,8 @@ import ( // Holds the variables which are needed in CobraRunE type variables struct { - netName string - fsName string - partName string - diskName string nodeConf node.NodeConf + nodeAdd node.NodeConfAdd } // Returns the newly created command @@ -33,10 +30,7 @@ func GetCommand() *cobra.Command { Args: cobra.MinimumNArgs(1), } vars.nodeConf.CreateFlags(baseCmd) - baseCmd.PersistentFlags().StringVar(&vars.netName, "netname", "default", "Set network name for network options") - baseCmd.PersistentFlags().StringVar(&vars.fsName, "fsname", "", "set the file system name which must match a partition name") - baseCmd.PersistentFlags().StringVar(&vars.partName, "partname", "", "set the partition name so it can be used by a file system") - baseCmd.PersistentFlags().StringVar(&vars.diskName, "diskname", "", "set disk device name for the partition") + vars.nodeAdd.CreateAddFlags(baseCmd) // register the command line completions if err := baseCmd.RegisterFlagCompletionFunc("container", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { list, _ := container.ListSources() diff --git a/internal/app/wwctl/profile/add/main.go b/internal/app/wwctl/profile/add/main.go index 06c9fc90..6b20fa15 100644 --- a/internal/app/wwctl/profile/add/main.go +++ b/internal/app/wwctl/profile/add/main.go @@ -18,29 +18,29 @@ func CobraRunE(vars *variables) func(cmd *cobra.Command, args []string) (err err // to this network if !node.ObjectIsEmpty(vars.profileConf.NetDevs["UNDEF"]) { netDev := *vars.profileConf.NetDevs["UNDEF"] - vars.profileConf.NetDevs[vars.netName] = &netDev + vars.profileConf.NetDevs[vars.nodeAdd.Net] = &netDev } delete(vars.profileConf.NetDevs, "UNDEF") - if vars.fsName != "" { - if !strings.HasPrefix(vars.fsName, "/dev") { - if vars.fsName == vars.partName { - vars.fsName = "/dev/disk/by-partlabel/" + vars.partName + if vars.nodeAdd.FsName != "" { + if !strings.HasPrefix(vars.nodeAdd.FsName, "/dev") { + if vars.nodeAdd.FsName == vars.nodeAdd.PartName { + vars.nodeAdd.FsName = "/dev/disk/by-partlabel/" + vars.nodeAdd.PartName } else { return fmt.Errorf("filesystems need to have a underlying blockdev") } } fs := *vars.profileConf.FileSystems["UNDEF"] - vars.profileConf.FileSystems[vars.fsName] = &fs + vars.profileConf.FileSystems[vars.nodeAdd.FsName] = &fs } delete(vars.profileConf.FileSystems, "UNDEF") - if vars.diskName != "" && vars.partName != "" { + if vars.nodeAdd.DiskName != "" && vars.nodeAdd.PartName != "" { prt := *vars.profileConf.Disks["UNDEF"].Partitions["UNDEF"] - vars.profileConf.Disks["UNDEF"].Partitions[vars.partName] = &prt + vars.profileConf.Disks["UNDEF"].Partitions[vars.nodeAdd.PartName] = &prt delete(vars.profileConf.Disks["UNDEF"].Partitions, "UNDEF") dsk := *vars.profileConf.Disks["UNDEF"] - vars.profileConf.Disks[vars.diskName] = &dsk + vars.profileConf.Disks[vars.nodeAdd.DiskName] = &dsk } - if (vars.diskName != "") != (vars.partName != "") { + if (vars.nodeAdd.DiskName != "") != (vars.nodeAdd.PartName != "") { return fmt.Errorf("partition and disk must be specified") } delete(vars.profileConf.Disks, "UNDEF") diff --git a/internal/app/wwctl/profile/add/root.go b/internal/app/wwctl/profile/add/root.go index b1faed36..f55eb7f8 100644 --- a/internal/app/wwctl/profile/add/root.go +++ b/internal/app/wwctl/profile/add/root.go @@ -11,15 +11,12 @@ import ( ) type variables struct { - netName string profileConf node.ProfileConf + nodeAdd node.NodeConfAdd SetNetDevDel string SetNodeAll bool SetYes bool SetForce bool - fsName string - partName string - diskName string } // GetRootCommand returns the root cobra.Command for the application. @@ -36,10 +33,7 @@ func GetCommand() *cobra.Command { Args: cobra.ExactArgs(1), } vars.profileConf.CreateFlags(baseCmd) - baseCmd.PersistentFlags().StringVar(&vars.netName, "netname", "", "Set network name for network options") - baseCmd.PersistentFlags().StringVar(&vars.fsName, "fsname", "", "set the file system name which must match a partition name") - baseCmd.PersistentFlags().StringVar(&vars.partName, "partname", "", "set the partition name so it can be used by a file system") - baseCmd.PersistentFlags().StringVar(&vars.diskName, "diskname", "", "set disk device name for the partition") + vars.nodeAdd.CreateAddFlags(baseCmd) // register the command line completions if err := baseCmd.RegisterFlagCompletionFunc("container", func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { list, _ := container.ListSources() diff --git a/internal/pkg/node/flags.go b/internal/pkg/node/flags.go index 4210f650..e87c750d 100644 --- a/internal/pkg/node/flags.go +++ b/internal/pkg/node/flags.go @@ -21,7 +21,7 @@ type NodeConfAdd struct { TagsAdd map[string]string `lopt:"tagadd" comment:"add tags"` IpmiTagsAdd map[string]string `lopt:"ipmitagadd" comment:"add ipmi tags"` NetTagsAdd map[string]string `lopt:"nettagadd" comment:"add network tags"` - Net string `lopt:"netname" comment:"network which is modified"` + Net string `lopt:"netname" comment:"network which is modified" default:"default"` DiskName string `lopt:"diskname" comment:"set diskdevice name"` PartName string `lopt:"partname" comment:"set the partition name so it can be used by a file system"` FsName string `lopt:"fsname" comment:"set the file system name which must match a partition name"`