Use "default" netname during add, set

- Closes #1499

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2024-11-06 22:47:19 -07:00
parent 0e0b49a13b
commit a3ede90093
5 changed files with 25 additions and 37 deletions

View File

@@ -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")

View File

@@ -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()