From 51c15f3c39a414739ccbbf1491010f7139f7e4c8 Mon Sep 17 00:00:00 2001 From: Gregory Kurtzer Date: Fri, 15 Oct 2021 21:37:47 -0700 Subject: [PATCH] Update CLI to all use the new expand bracket capability --- internal/app/wwctl/node/add/main.go | 15 +++++++++++---- internal/app/wwctl/node/console/power.go | 3 +++ internal/app/wwctl/node/delete/main.go | 3 +++ internal/app/wwctl/node/list/main.go | 3 +++ internal/app/wwctl/node/root.go | 4 +++- internal/app/wwctl/node/sensors/power.go | 3 +++ internal/app/wwctl/node/set/main.go | 3 ++- internal/app/wwctl/power/cycle/power.go | 3 ++- internal/app/wwctl/power/off/power.go | 3 ++- internal/app/wwctl/power/on/power.go | 3 ++- internal/app/wwctl/power/reset/power.go | 3 ++- internal/app/wwctl/power/soft/power.go | 3 ++- internal/app/wwctl/power/status/power.go | 3 ++- 13 files changed, 40 insertions(+), 12 deletions(-) diff --git a/internal/app/wwctl/node/add/main.go b/internal/app/wwctl/node/add/main.go index 917d5f42..0902be93 100644 --- a/internal/app/wwctl/node/add/main.go +++ b/internal/app/wwctl/node/add/main.go @@ -2,18 +2,23 @@ package add import ( "github.com/hpcng/warewulf/internal/pkg/node" + "github.com/hpcng/warewulf/internal/pkg/util" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/pkg/errors" "github.com/spf13/cobra" ) func CobraRunE(cmd *cobra.Command, args []string) error { + var count uint nodeDB, err := node.New() if err != nil { return errors.Wrap(err, "failed to open node database") } - for _, a := range args { + node_args := hostlist.Expand(args) + + for _, a := range node_args { n, err := nodeDB.AddNode(a) if err != nil { return errors.Wrap(err, "failed to add node") @@ -34,14 +39,16 @@ func CobraRunE(cmd *cobra.Command, args []string) error { return errors.New("you must include the '--netdev' option") } + NewIpaddr := util.IncrementIPv4(SetIpaddr, count) + if _, ok := n.NetDevs[SetNetDev]; !ok { var netdev node.NetDevEntry n.NetDevs[SetNetDev] = &netdev } - wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Ipaddr to: %s\n", n.Id.Get(), SetNetDev, SetIpaddr) + wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Ipaddr to: %s\n", n.Id.Get(), SetNetDev, NewIpaddr) - n.NetDevs[SetNetDev].Ipaddr.Set(SetIpaddr) + n.NetDevs[SetNetDev].Ipaddr.Set(NewIpaddr) n.NetDevs[SetNetDev].Default.SetB(true) err := nodeDB.NodeUpdate(n) if err != nil { @@ -123,7 +130,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { return errors.Wrap(err, "failed to update nodedb") } } - + count++ } return errors.Wrap(nodeDB.Persist(), "failed to persist nodedb") diff --git a/internal/app/wwctl/node/console/power.go b/internal/app/wwctl/node/console/power.go index 2c2bf26f..9332edb7 100644 --- a/internal/app/wwctl/node/console/power.go +++ b/internal/app/wwctl/node/console/power.go @@ -7,6 +7,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -25,6 +26,8 @@ func CobraRunE(cmd *cobra.Command, args []string) error { os.Exit(1) } + args = hostlist.Expand(args) + if len(args) > 0 { nodes = node.FilterByName(nodes, args) } else { diff --git a/internal/app/wwctl/node/delete/main.go b/internal/app/wwctl/node/delete/main.go index 9f70e819..ed184291 100644 --- a/internal/app/wwctl/node/delete/main.go +++ b/internal/app/wwctl/node/delete/main.go @@ -6,6 +6,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/manifoldco/promptui" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -27,6 +28,8 @@ func CobraRunE(cmd *cobra.Command, args []string) error { os.Exit(1) } + args = hostlist.Expand(args) + for _, r := range args { var match bool for _, n := range nodes { diff --git a/internal/app/wwctl/node/list/main.go b/internal/app/wwctl/node/list/main.go index 074c0501..31b81eba 100644 --- a/internal/app/wwctl/node/list/main.go +++ b/internal/app/wwctl/node/list/main.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -26,6 +27,8 @@ func CobraRunE(cmd *cobra.Command, args []string) error { os.Exit(1) } + args = hostlist.Expand(args) + if ShowAll { for _, node := range node.FilterByName(nodes, args) { fmt.Printf("################################################################################\n") diff --git a/internal/app/wwctl/node/root.go b/internal/app/wwctl/node/root.go index c5c92ca4..7a37b726 100644 --- a/internal/app/wwctl/node/root.go +++ b/internal/app/wwctl/node/root.go @@ -15,7 +15,9 @@ var ( baseCmd = &cobra.Command{ Use: "node", Short: "Node management", - Long: "Management of node settings", + Long: "Management of node settings. All node ranges can use brackets to identify\n" + + "node ranges. For example: n00[00-4].cluster[0-1] will identify the first 5 nodes\n" + + "in cluster0 and cluster1.", } ) diff --git a/internal/app/wwctl/node/sensors/power.go b/internal/app/wwctl/node/sensors/power.go index dc86dc0c..a2c0766e 100644 --- a/internal/app/wwctl/node/sensors/power.go +++ b/internal/app/wwctl/node/sensors/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -26,6 +27,8 @@ func CobraRunE(cmd *cobra.Command, args []string) error { os.Exit(1) } + args = hostlist.Expand(args) + if len(args) > 0 { nodes = node.FilterByName(nodes, args) } else { diff --git a/internal/app/wwctl/node/set/main.go b/internal/app/wwctl/node/set/main.go index 1e87ce3d..7f066163 100644 --- a/internal/app/wwctl/node/set/main.go +++ b/internal/app/wwctl/node/set/main.go @@ -9,6 +9,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/util" "github.com/hpcng/warewulf/internal/pkg/warewulfd" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/manifoldco/promptui" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -32,7 +33,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { if !SetNodeAll { if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage() diff --git a/internal/app/wwctl/power/cycle/power.go b/internal/app/wwctl/power/cycle/power.go index a846ad7e..728548f8 100644 --- a/internal/app/wwctl/power/cycle/power.go +++ b/internal/app/wwctl/power/cycle/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -27,7 +28,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage() diff --git a/internal/app/wwctl/power/off/power.go b/internal/app/wwctl/power/off/power.go index 7f9dc603..2afe8276 100644 --- a/internal/app/wwctl/power/off/power.go +++ b/internal/app/wwctl/power/off/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -27,7 +28,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage() diff --git a/internal/app/wwctl/power/on/power.go b/internal/app/wwctl/power/on/power.go index 7f5624a8..a92bf50b 100644 --- a/internal/app/wwctl/power/on/power.go +++ b/internal/app/wwctl/power/on/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -27,7 +28,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage() diff --git a/internal/app/wwctl/power/reset/power.go b/internal/app/wwctl/power/reset/power.go index 3996648e..3126a301 100644 --- a/internal/app/wwctl/power/reset/power.go +++ b/internal/app/wwctl/power/reset/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -27,7 +28,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage() diff --git a/internal/app/wwctl/power/soft/power.go b/internal/app/wwctl/power/soft/power.go index cdbf8462..7771cbab 100644 --- a/internal/app/wwctl/power/soft/power.go +++ b/internal/app/wwctl/power/soft/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -27,7 +28,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage() diff --git a/internal/app/wwctl/power/status/power.go b/internal/app/wwctl/power/status/power.go index b1f15dd6..9d67cd17 100644 --- a/internal/app/wwctl/power/status/power.go +++ b/internal/app/wwctl/power/status/power.go @@ -8,6 +8,7 @@ import ( "github.com/hpcng/warewulf/internal/pkg/node" "github.com/hpcng/warewulf/internal/pkg/power" "github.com/hpcng/warewulf/internal/pkg/wwlog" + "github.com/hpcng/warewulf/pkg/hostlist" "github.com/spf13/cobra" ) @@ -27,7 +28,7 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } if len(args) > 0 { - nodes = node.FilterByName(nodes, args) + nodes = node.FilterByName(nodes, hostlist.Expand(args)) } else { //nolint:errcheck cmd.Usage()