diff --git a/internal/app/wwctl/node/add/main.go b/internal/app/wwctl/node/add/main.go index c3f88fb0..807b33ac 100644 --- a/internal/app/wwctl/node/add/main.go +++ b/internal/app/wwctl/node/add/main.go @@ -103,6 +103,26 @@ func CobraRunE(cmd *cobra.Command, args []string) error { } } + if SetType != "" { + if SetNetDev == "" { + wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n") + os.Exit(1) + } + + if _, ok := n.NetDevs[SetNetDev]; !ok { + wwlog.Printf(wwlog.ERROR, "Network Device doesn't exist: %s\n", SetNetDev) + os.Exit(1) + } + wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Type to: %s\n", n.Id, SetNetDev, SetType) + + n.NetDevs[SetNetDev].Type.Set(SetType) + err := nodeDB.NodeUpdate(n) + if err != nil { + wwlog.Printf(wwlog.ERROR, "%s\n", err) + os.Exit(1) + } + } + if SetDiscoverable == true { wwlog.Printf(wwlog.VERBOSE, "Node: %s, Setting node to discoverable\n", n.Id.Get()) diff --git a/internal/app/wwctl/node/add/root.go b/internal/app/wwctl/node/add/root.go index fdc264d1..e7ba130a 100644 --- a/internal/app/wwctl/node/add/root.go +++ b/internal/app/wwctl/node/add/root.go @@ -17,6 +17,7 @@ var ( SetNetmask string SetGateway string SetHwaddr string + SetType string SetDiscoverable bool ) @@ -28,6 +29,7 @@ func init() { baseCmd.PersistentFlags().StringVarP(&SetNetmask, "netmask", "M", "", "Set the node's network device netmask") baseCmd.PersistentFlags().StringVarP(&SetGateway, "gateway", "G", "", "Set the node's network device gateway") baseCmd.PersistentFlags().StringVarP(&SetHwaddr, "hwaddr", "H", "", "Set the node's network device HW address") + baseCmd.PersistentFlags().StringVarP(&SetType, "type", "T", "", "Set the node's network device type") baseCmd.PersistentFlags().BoolVar(&SetDiscoverable, "discoverable", false, "Make this node discoverable") }