Introduction of netname functionality for network devices
This commit is contained in:
@@ -34,102 +34,110 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if SetNetDev != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
return errors.New("you must include the '--netname' option")
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
|
var netdev node.NetDevEntry
|
||||||
|
n.NetDevs[SetNetName] = &netdev
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Device to: %s\n", n.Id.Get(), SetNetName, SetNetDev)
|
||||||
|
|
||||||
|
n.NetDevs[SetNetName].Device.Set(SetNetDev)
|
||||||
|
n.NetDevs[SetNetName].OnBoot.SetB(true)
|
||||||
|
|
||||||
|
// err := nodeDB.NodeUpdate(n)
|
||||||
|
// if err != nil {
|
||||||
|
// return errors.Wrap(err, "failed to update nodedb")
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
if SetIpaddr != "" {
|
if SetIpaddr != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
return errors.New("you must include the '--netdev' option")
|
return errors.New("you must include the '--netname' option")
|
||||||
}
|
}
|
||||||
|
|
||||||
NewIpaddr := util.IncrementIPv4(SetIpaddr, count)
|
NewIpaddr := util.IncrementIPv4(SetIpaddr, count)
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var netdev node.NetDevEntry
|
var netdev node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &netdev
|
n.NetDevs[SetNetName] = &netdev
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Ipaddr to: %s\n", n.Id.Get(), SetNetDev, NewIpaddr)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Ipaddr to: %s\n", n.Id.Get(), SetNetName, NewIpaddr)
|
||||||
|
|
||||||
|
n.NetDevs[SetNetName].Ipaddr.Set(NewIpaddr)
|
||||||
|
n.NetDevs[SetNetName].OnBoot.SetB(true)
|
||||||
|
|
||||||
n.NetDevs[SetNetDev].Ipaddr.Set(NewIpaddr)
|
|
||||||
n.NetDevs[SetNetDev].Default.SetB(true)
|
|
||||||
err := nodeDB.NodeUpdate(n)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to update nodedb")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetNetmask != "" {
|
if SetNetmask != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
return errors.New("you must include the '--netdev' option")
|
return errors.New("you must include the '--netname' option")
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
return errors.New("network device does not exist: " + SetNetDev)
|
return errors.New("network device does not exist: " + SetNetName)
|
||||||
}
|
}
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting netmask to: %s\n", n.Id.Get(), SetNetDev, SetNetmask)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting netmask to: %s\n", n.Id.Get(), SetNetName, SetNetmask)
|
||||||
|
|
||||||
n.NetDevs[SetNetDev].Netmask.Set(SetNetmask)
|
n.NetDevs[SetNetName].Netmask.Set(SetNetmask)
|
||||||
err := nodeDB.NodeUpdate(n)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to update nodedb")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetGateway != "" {
|
if SetGateway != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
return errors.New("you must include the '--netdev' option")
|
return errors.New("you must include the '--netname' option")
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
return errors.New("network device does not exist: " + SetNetDev)
|
return errors.New("network device does not exist: " + SetNetName)
|
||||||
}
|
}
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting gateway to: %s\n", n.Id.Get(), SetNetDev, SetGateway)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting gateway to: %s\n", n.Id.Get(), SetNetName, SetGateway)
|
||||||
|
|
||||||
n.NetDevs[SetNetDev].Gateway.Set(SetGateway)
|
n.NetDevs[SetNetName].Gateway.Set(SetGateway)
|
||||||
err := nodeDB.NodeUpdate(n)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to update nodedb")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetHwaddr != "" {
|
if SetHwaddr != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
return errors.New("you must include the '--netdev' option")
|
return errors.New("you must include the '--netname' option")
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
return errors.New("network device does not exist: " + SetNetDev)
|
return errors.New("network device does not exist: " + SetNetName)
|
||||||
}
|
}
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting HW address to: %s\n", n.Id.Get(), SetNetDev, SetHwaddr)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting HW address to: %s\n", n.Id.Get(), SetNetName, SetHwaddr)
|
||||||
|
|
||||||
n.NetDevs[SetNetDev].Hwaddr.Set(SetHwaddr)
|
n.NetDevs[SetNetName].Hwaddr.Set(SetHwaddr)
|
||||||
err := nodeDB.NodeUpdate(n)
|
n.NetDevs[SetNetName].OnBoot.SetB(true)
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to update nodedb")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetType != "" {
|
if SetType != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
return errors.New("you must include the '--netdev' option")
|
return errors.New("you must include the '--netname' option")
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
return errors.New("network device does not exist: " + SetNetDev)
|
return errors.New("network device does not exist: " + SetNetName)
|
||||||
}
|
}
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Type to: %s\n", n.Id.Get(), SetNetDev, SetType)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Type to: %s\n", n.Id.Get(), SetNetName, SetType)
|
||||||
|
|
||||||
n.NetDevs[SetNetDev].Type.Set(SetType)
|
n.NetDevs[SetNetName].Type.Set(SetType)
|
||||||
err := nodeDB.NodeUpdate(n)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to update nodedb")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetDiscoverable {
|
if SetDiscoverable {
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s, Setting node to discoverable\n", n.Id.Get())
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s, Setting node to discoverable\n", n.Id.Get())
|
||||||
|
|
||||||
n.Discoverable.SetB(true)
|
n.Discoverable.SetB(true)
|
||||||
err := nodeDB.NodeUpdate(n)
|
|
||||||
if err != nil {
|
|
||||||
return errors.Wrap(err, "failed to update nodedb")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = nodeDB.NodeUpdate(n)
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrap(err, "failed to update nodedb")
|
||||||
|
}
|
||||||
|
|
||||||
count++
|
count++
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ var (
|
|||||||
Args: cobra.MinimumNArgs(1),
|
Args: cobra.MinimumNArgs(1),
|
||||||
}
|
}
|
||||||
SetClusterName string
|
SetClusterName string
|
||||||
|
SetNetName string
|
||||||
SetNetDev string
|
SetNetDev string
|
||||||
SetIpaddr string
|
SetIpaddr string
|
||||||
SetNetmask string
|
SetNetmask string
|
||||||
@@ -22,6 +23,7 @@ var (
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetClusterName, "cluster", "c", "", "Set the node's cluster name")
|
baseCmd.PersistentFlags().StringVarP(&SetClusterName, "cluster", "c", "", "Set the node's cluster name")
|
||||||
|
baseCmd.PersistentFlags().StringVarP(&SetNetName, "netname", "n", "default", "Define the network name to configure")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetNetDev, "netdev", "N", "eth0", "Define the network device to configure")
|
baseCmd.PersistentFlags().StringVarP(&SetNetDev, "netdev", "N", "eth0", "Define the network device to configure")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetIpaddr, "ipaddr", "I", "", "Set the node's network device IP address")
|
baseCmd.PersistentFlags().StringVarP(&SetIpaddr, "ipaddr", "I", "", "Set the node's network device IP address")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetNetmask, "netmask", "M", "", "Set the node's network device netmask")
|
baseCmd.PersistentFlags().StringVarP(&SetNetmask, "netmask", "M", "", "Set the node's network device netmask")
|
||||||
@@ -29,7 +31,6 @@ func init() {
|
|||||||
baseCmd.PersistentFlags().StringVarP(&SetHwaddr, "hwaddr", "H", "", "Set the node's network device HW address")
|
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().StringVarP(&SetType, "type", "T", "", "Set the node's network device type")
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetDiscoverable, "discoverable", false, "Make this node discoverable")
|
baseCmd.PersistentFlags().BoolVar(&SetDiscoverable, "discoverable", false, "Make this node discoverable")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRootCommand returns the root cobra.Command for the application.
|
// GetRootCommand returns the root cobra.Command for the application.
|
||||||
|
|||||||
@@ -56,12 +56,13 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), "IpmiInterface", node.IpmiInterface.Source(), node.IpmiInterface.Print())
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), "IpmiInterface", node.IpmiInterface.Source(), node.IpmiInterface.Print())
|
||||||
|
|
||||||
for name, netdev := range node.NetDevs {
|
for name, netdev := range node.NetDevs {
|
||||||
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":DEVICE", netdev.Device.Source(), netdev.Device.Print())
|
||||||
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":HWADDR", netdev.Hwaddr.Source(), netdev.Hwaddr.Print())
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":HWADDR", netdev.Hwaddr.Source(), netdev.Hwaddr.Print())
|
||||||
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":IPADDR", netdev.Ipaddr.Source(), netdev.Ipaddr.Print())
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":IPADDR", netdev.Ipaddr.Source(), netdev.Ipaddr.Print())
|
||||||
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":NETMASK", netdev.Netmask.Source(), netdev.Netmask.Print())
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":NETMASK", netdev.Netmask.Source(), netdev.Netmask.Print())
|
||||||
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":GATEWAY", netdev.Gateway.Source(), netdev.Gateway.Print())
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":GATEWAY", netdev.Gateway.Source(), netdev.Gateway.Print())
|
||||||
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":TYPE", netdev.Type.Source(), netdev.Type.Print())
|
fmt.Printf("%-20s %-18s %-12s %s\n", node.Id.Get(), name+":TYPE", netdev.Type.Source(), netdev.Type.Print())
|
||||||
fmt.Printf("%-20s %-18s %-12s %t\n", node.Id.Get(), name+":DEFAULT", netdev.Default.Source(), netdev.Default.PrintB())
|
fmt.Printf("%-20s %-18s %-12s %t\n", node.Id.Get(), name+":ONBOOT", netdev.OnBoot.Source(), netdev.OnBoot.PrintB())
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range node.Keys {
|
for keyname, key := range node.Keys {
|
||||||
|
|||||||
@@ -163,110 +163,129 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetNetDevDel {
|
if SetNetDev != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
wwlog.Printf(wwlog.ERROR, "Network Device doesn't exist: %s\n", SetNetDev)
|
var nd node.NetDevEntry
|
||||||
os.Exit(1)
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s, Deleting network device: %s\n", n.Id.Get(), SetNetDev)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting net Device to: %s\n", n.Id.Get(), SetNetName, SetNetDev)
|
||||||
delete(n.NetDevs, SetNetDev)
|
n.NetDevs[SetNetName].Device.Set(SetNetDev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetIpaddr != "" {
|
if SetIpaddr != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var nd node.NetDevEntry
|
var nd node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &nd
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
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(), SetNetName, SetIpaddr)
|
||||||
n.NetDevs[SetNetDev].Ipaddr.Set(SetIpaddr)
|
n.NetDevs[SetNetName].Ipaddr.Set(SetIpaddr)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetNetmask != "" {
|
if SetNetmask != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var nd node.NetDevEntry
|
var nd node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &nd
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting netmask to: %s\n", n.Id.Get(), SetNetDev, SetNetmask)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting netmask to: %s\n", n.Id.Get(), SetNetName, SetNetmask)
|
||||||
n.NetDevs[SetNetDev].Netmask.Set(SetNetmask)
|
n.NetDevs[SetNetName].Netmask.Set(SetNetmask)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetGateway != "" {
|
if SetGateway != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var nd node.NetDevEntry
|
var nd node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &nd
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting gateway to: %s\n", n.Id.Get(), SetNetDev, SetGateway)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting gateway to: %s\n", n.Id.Get(), SetNetName, SetGateway)
|
||||||
n.NetDevs[SetNetDev].Gateway.Set(SetGateway)
|
n.NetDevs[SetNetName].Gateway.Set(SetGateway)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetHwaddr != "" {
|
if SetHwaddr != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var nd node.NetDevEntry
|
var nd node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &nd
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting HW address to: %s\n", n.Id.Get(), SetNetDev, SetHwaddr)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting HW address to: %s\n", n.Id.Get(), SetNetName, SetHwaddr)
|
||||||
n.NetDevs[SetNetDev].Hwaddr.Set(SetHwaddr)
|
n.NetDevs[SetNetName].Hwaddr.Set(SetHwaddr)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetType != "" {
|
if SetType != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var nd node.NetDevEntry
|
var nd node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &nd
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Type %s\n", n.Id.Get(), SetNetDev, SetType)
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting Type %s\n", n.Id.Get(), SetNetName, SetType)
|
||||||
n.NetDevs[SetNetDev].Type.Set(SetType)
|
n.NetDevs[SetNetName].Type.Set(SetType)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetNetDevDefault {
|
if SetNetOnBoot != "" {
|
||||||
if SetNetDev == "" {
|
if SetNetName == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ok := n.NetDevs[SetNetDev]; !ok {
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
var nd node.NetDevEntry
|
var nd node.NetDevEntry
|
||||||
n.NetDevs[SetNetDev] = &nd
|
n.NetDevs[SetNetName] = &nd
|
||||||
}
|
}
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting device as default\n", n.Id.Get(), SetNetDev)
|
if SetNetOnBoot == "yes" || SetNetOnBoot == "y" || SetNetOnBoot == "1" || SetNetOnBoot == "true" {
|
||||||
for _, dev := range n.NetDevs {
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting ONBOOT\n", n.Id.Get(), SetNetName)
|
||||||
// First clear all other devices that might be configured as default
|
n.NetDevs[SetNetName].OnBoot.SetB(true)
|
||||||
dev.Default.SetB(false)
|
} else {
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Unsetting ONBOOT\n", n.Id.Get(), SetNetName)
|
||||||
|
n.NetDevs[SetNetName].OnBoot.SetB(false)
|
||||||
}
|
}
|
||||||
n.NetDevs[SetNetDev].Default.SetB(true)
|
}
|
||||||
|
|
||||||
|
if SetNetDevDel {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := n.NetDevs[SetNetName]; !ok {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "Network device name doesn't exist: %s\n", SetNetName)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s, Deleting network device: %s\n", n.Id.Get(), SetNetName)
|
||||||
|
delete(n.NetDevs, SetNetName)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetValue != "" {
|
if SetValue != "" {
|
||||||
|
|||||||
@@ -36,14 +36,15 @@ var (
|
|||||||
SetContainer string
|
SetContainer string
|
||||||
SetKernel string
|
SetKernel string
|
||||||
SetKernelArgs string
|
SetKernelArgs string
|
||||||
|
SetNetName string
|
||||||
SetNetDev string
|
SetNetDev string
|
||||||
SetIpaddr string
|
SetIpaddr string
|
||||||
SetNetmask string
|
SetNetmask string
|
||||||
SetGateway string
|
SetGateway string
|
||||||
SetHwaddr string
|
SetHwaddr string
|
||||||
SetType string
|
SetType string
|
||||||
|
SetNetOnBoot string
|
||||||
SetNetDevDel bool
|
SetNetDevDel bool
|
||||||
SetNetDevDefault bool
|
|
||||||
SetClusterName string
|
SetClusterName string
|
||||||
SetIpxe string
|
SetIpxe string
|
||||||
SetRuntimeOverlay string
|
SetRuntimeOverlay string
|
||||||
@@ -126,14 +127,16 @@ func init() {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetNetDev, "netdev", "N", "", "Define the network device to configure")
|
baseCmd.PersistentFlags().StringVarP(&SetNetName, "netname", "n", "default", "Define the network name to configure")
|
||||||
|
baseCmd.PersistentFlags().StringVarP(&SetNetDev, "netdev", "N", "", "Define the network device")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetIpaddr, "ipaddr", "I", "", "Set the node's network device IP address")
|
baseCmd.PersistentFlags().StringVarP(&SetIpaddr, "ipaddr", "I", "", "Set the node's network device IP address")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetNetmask, "netmask", "M", "", "Set the node's network device netmask")
|
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(&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(&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().StringVarP(&SetType, "type", "T", "", "Set the node's network device type")
|
||||||
|
baseCmd.PersistentFlags().StringVar(&SetNetOnBoot, "onboot", "yes", "Enable/disable device (yes/no)")
|
||||||
|
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetNetDevDel, "netdel", false, "Delete the node's network device")
|
baseCmd.PersistentFlags().BoolVar(&SetNetDevDel, "netdel", false, "Delete the node's network device")
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetNetDevDefault, "netdefault", false, "Set this network to be default")
|
|
||||||
|
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetKey, "key", "k", "", "Define custom key")
|
baseCmd.PersistentFlags().StringVarP(&SetKey, "key", "k", "", "Define custom key")
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetKeyDel, "keydel", false, "Delete custom key")
|
baseCmd.PersistentFlags().BoolVar(&SetKeyDel, "keydel", false, "Delete custom key")
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":GATEWAY", netdev.Gateway.Print())
|
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":GATEWAY", netdev.Gateway.Print())
|
||||||
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":HWADDR", netdev.Hwaddr.Print())
|
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":HWADDR", netdev.Hwaddr.Print())
|
||||||
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":TYPE", netdev.Hwaddr.Print())
|
fmt.Printf("%-20s %-18s %s\n", profile.Id.Get(), name+":TYPE", netdev.Hwaddr.Print())
|
||||||
fmt.Printf("%-20s %-18s %t\n", profile.Id.Get(), name+":DEFAULT", netdev.Default.PrintB())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range profile.Keys {
|
for keyname, key := range profile.Keys {
|
||||||
|
|||||||
@@ -130,9 +130,119 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
p.Discoverable.SetB(false)
|
p.Discoverable.SetB(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if SetNetDev != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting net Device to: %s\n", p.Id.Get(), SetNetName, SetNetDev)
|
||||||
|
p.NetDevs[SetNetName].Device.Set(SetNetDev)
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetIpaddr != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting IP address to: %s:%s\n", p.Id.Get(), SetNetName, SetHwaddr)
|
||||||
|
p.NetDevs[SetNetName].Ipaddr.Set(SetIpaddr)
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetNetmask != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting netmask to: %s:%s\n", p.Id.Get(), SetNetName, SetHwaddr)
|
||||||
|
p.NetDevs[SetNetName].Netmask.Set(SetNetmask)
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetGateway != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting gateway to: %s:%s\n", p.Id.Get(), SetNetName, SetHwaddr)
|
||||||
|
p.NetDevs[SetNetName].Gateway.Set(SetGateway)
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetHwaddr != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting HW address to: %s:%s\n", p.Id.Get(), SetNetName, SetHwaddr)
|
||||||
|
p.NetDevs[SetNetName].Hwaddr.Set(SetHwaddr)
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetType != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting HW address to: %s:%s\n", p.Id.Get(), SetNetName, SetType)
|
||||||
|
p.NetDevs[SetNetName].Type.Set(SetType)
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetNetOnBoot != "" {
|
||||||
|
if SetNetName == "" {
|
||||||
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, ok := p.NetDevs[SetNetName]; !ok {
|
||||||
|
var nd node.NetDevEntry
|
||||||
|
p.NetDevs[SetNetName] = &nd
|
||||||
|
}
|
||||||
|
|
||||||
|
if SetNetOnBoot == "yes" || SetNetOnBoot == "y" || SetNetOnBoot == "1" || SetNetOnBoot == "true" {
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Setting ONBOOT\n", p.Id.Get(), SetNetName)
|
||||||
|
p.NetDevs[SetNetName].OnBoot.SetB(true)
|
||||||
|
} else {
|
||||||
|
wwlog.Printf(wwlog.VERBOSE, "Node: %s:%s, Unsetting ONBOOT\n", p.Id.Get(), SetNetName)
|
||||||
|
p.NetDevs[SetNetName].OnBoot.SetB(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if SetNetDevDel {
|
if SetNetDevDel {
|
||||||
if SetNetDev == "" {
|
if SetNetDev == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--netname' option\n")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,100 +255,6 @@ func CobraRunE(cmd *cobra.Command, args []string) error {
|
|||||||
delete(p.NetDevs, SetNetDev)
|
delete(p.NetDevs, SetNetDev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if SetIpaddr != "" {
|
|
||||||
if SetNetDev == "" {
|
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := p.NetDevs[SetNetDev]; !ok {
|
|
||||||
var nd node.NetDevEntry
|
|
||||||
p.NetDevs[SetNetDev] = &nd
|
|
||||||
}
|
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting IP address to: %s:%s\n", p.Id.Get(), SetNetDev, SetHwaddr)
|
|
||||||
p.NetDevs[SetNetDev].Ipaddr.Set(SetIpaddr)
|
|
||||||
}
|
|
||||||
|
|
||||||
if SetNetmask != "" {
|
|
||||||
if SetNetDev == "" {
|
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := p.NetDevs[SetNetDev]; !ok {
|
|
||||||
var nd node.NetDevEntry
|
|
||||||
p.NetDevs[SetNetDev] = &nd
|
|
||||||
}
|
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting netmask to: %s:%s\n", p.Id.Get(), SetNetDev, SetHwaddr)
|
|
||||||
p.NetDevs[SetNetDev].Netmask.Set(SetNetmask)
|
|
||||||
}
|
|
||||||
|
|
||||||
if SetGateway != "" {
|
|
||||||
if SetNetDev == "" {
|
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := p.NetDevs[SetNetDev]; !ok {
|
|
||||||
var nd node.NetDevEntry
|
|
||||||
p.NetDevs[SetNetDev] = &nd
|
|
||||||
}
|
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting gateway to: %s:%s\n", p.Id.Get(), SetNetDev, SetHwaddr)
|
|
||||||
p.NetDevs[SetNetDev].Gateway.Set(SetGateway)
|
|
||||||
}
|
|
||||||
|
|
||||||
if SetHwaddr != "" {
|
|
||||||
if SetNetDev == "" {
|
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := p.NetDevs[SetNetDev]; !ok {
|
|
||||||
var nd node.NetDevEntry
|
|
||||||
p.NetDevs[SetNetDev] = &nd
|
|
||||||
}
|
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting HW address to: %s:%s\n", p.Id.Get(), SetNetDev, SetHwaddr)
|
|
||||||
p.NetDevs[SetNetDev].Hwaddr.Set(SetHwaddr)
|
|
||||||
}
|
|
||||||
|
|
||||||
if SetType != "" {
|
|
||||||
if SetNetDev == "" {
|
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := p.NetDevs[SetNetDev]; !ok {
|
|
||||||
var nd node.NetDevEntry
|
|
||||||
p.NetDevs[SetNetDev] = &nd
|
|
||||||
}
|
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Profile '%s': Setting HW address to: %s:%s\n", p.Id.Get(), SetNetDev, SetType)
|
|
||||||
p.NetDevs[SetNetDev].Type.Set(SetType)
|
|
||||||
}
|
|
||||||
|
|
||||||
if SetNetDevDefault {
|
|
||||||
if SetNetDev == "" {
|
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--netdev' option\n")
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, ok := p.NetDevs[SetNetDev]; !ok {
|
|
||||||
var nd node.NetDevEntry
|
|
||||||
p.NetDevs[SetNetDev] = &nd
|
|
||||||
}
|
|
||||||
|
|
||||||
wwlog.Printf(wwlog.VERBOSE, "Profile: %s:%s, Setting device as default\n", p.Id.Get(), SetNetDev)
|
|
||||||
for _, dev := range p.NetDevs {
|
|
||||||
// First clear all other devices that might be configured as default
|
|
||||||
dev.Default.SetB(false)
|
|
||||||
}
|
|
||||||
p.NetDevs[SetNetDev].Default.SetB(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
if SetValue != "" {
|
if SetValue != "" {
|
||||||
if SetKey == "" {
|
if SetKey == "" {
|
||||||
wwlog.Printf(wwlog.ERROR, "You must include the '--key/-k' option\n")
|
wwlog.Printf(wwlog.ERROR, "You must include the '--key/-k' option\n")
|
||||||
|
|||||||
@@ -48,14 +48,15 @@ var (
|
|||||||
SetIpmiUsername string
|
SetIpmiUsername string
|
||||||
SetIpmiPassword string
|
SetIpmiPassword string
|
||||||
SetIpmiInterface string
|
SetIpmiInterface string
|
||||||
|
SetNetName string
|
||||||
SetNetDev string
|
SetNetDev string
|
||||||
SetIpaddr string
|
SetIpaddr string
|
||||||
SetNetmask string
|
SetNetmask string
|
||||||
SetGateway string
|
SetGateway string
|
||||||
SetHwaddr string
|
SetHwaddr string
|
||||||
SetType string
|
SetType string
|
||||||
|
SetNetOnBoot string
|
||||||
SetNetDevDel bool
|
SetNetDevDel bool
|
||||||
SetNetDevDefault bool
|
|
||||||
SetDiscoverable bool
|
SetDiscoverable bool
|
||||||
SetUndiscoverable bool
|
SetUndiscoverable bool
|
||||||
SetInit string
|
SetInit string
|
||||||
@@ -108,14 +109,16 @@ func init() {
|
|||||||
baseCmd.PersistentFlags().StringVar(&SetIpmiPassword, "ipmipass", "", "Set the node's IPMI password")
|
baseCmd.PersistentFlags().StringVar(&SetIpmiPassword, "ipmipass", "", "Set the node's IPMI password")
|
||||||
baseCmd.PersistentFlags().StringVar(&SetIpmiInterface, "ipmiinterface", "", "Set the node's IPMI interface (defaults to 'lan' if empty)")
|
baseCmd.PersistentFlags().StringVar(&SetIpmiInterface, "ipmiinterface", "", "Set the node's IPMI interface (defaults to 'lan' if empty)")
|
||||||
|
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetNetDev, "netdev", "N", "", "Define the network device to configure")
|
baseCmd.PersistentFlags().StringVarP(&SetNetName, "netname", "n", "default", "Define the network name to configure")
|
||||||
|
baseCmd.PersistentFlags().StringVarP(&SetNetDev, "netdev", "N", "", "Define the network device")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetIpaddr, "ipaddr", "I", "", "Set the node's network device IP address")
|
baseCmd.PersistentFlags().StringVarP(&SetIpaddr, "ipaddr", "I", "", "Set the node's network device IP address")
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetNetmask, "netmask", "M", "", "Set the node's network device netmask")
|
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(&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(&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().StringVarP(&SetType, "type", "T", "", "Set the node's network device type")
|
||||||
|
baseCmd.PersistentFlags().StringVar(&SetNetOnBoot, "onboot", "yes", "Enable/disable device (yes/no)")
|
||||||
|
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetNetDevDel, "netdel", false, "Delete the node's network device")
|
baseCmd.PersistentFlags().BoolVar(&SetNetDevDel, "netdel", false, "Delete the node's network device")
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetNetDevDefault, "netdefault", false, "Set this network to be default")
|
|
||||||
|
|
||||||
baseCmd.PersistentFlags().StringVarP(&SetKey, "key", "k", "", "Define custom key")
|
baseCmd.PersistentFlags().StringVarP(&SetKey, "key", "k", "", "Define custom key")
|
||||||
baseCmd.PersistentFlags().BoolVar(&SetKeyDel, "keydel", false, "Delete custom key")
|
baseCmd.PersistentFlags().BoolVar(&SetKeyDel, "keydel", false, "Delete custom key")
|
||||||
|
|||||||
@@ -90,12 +90,14 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
|||||||
n.NetDevs[devname] = &netdev
|
n.NetDevs[devname] = &netdev
|
||||||
}
|
}
|
||||||
|
|
||||||
|
n.NetDevs[devname].Name.Set(devname)
|
||||||
|
n.NetDevs[devname].Device.Set(netdev.Device)
|
||||||
n.NetDevs[devname].Ipaddr.Set(netdev.Ipaddr)
|
n.NetDevs[devname].Ipaddr.Set(netdev.Ipaddr)
|
||||||
n.NetDevs[devname].Netmask.Set(netdev.Netmask)
|
n.NetDevs[devname].Netmask.Set(netdev.Netmask)
|
||||||
n.NetDevs[devname].Hwaddr.Set(netdev.Hwaddr)
|
n.NetDevs[devname].Hwaddr.Set(netdev.Hwaddr)
|
||||||
n.NetDevs[devname].Gateway.Set(netdev.Gateway)
|
n.NetDevs[devname].Gateway.Set(netdev.Gateway)
|
||||||
n.NetDevs[devname].Type.Set(netdev.Type)
|
n.NetDevs[devname].Type.Set(netdev.Type)
|
||||||
n.NetDevs[devname].Default.SetB(netdev.Default)
|
n.NetDevs[devname].OnBoot.SetB(netdev.OnBoot)
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range node.Keys {
|
for keyname, key := range node.Keys {
|
||||||
@@ -142,12 +144,13 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
|||||||
}
|
}
|
||||||
wwlog.Printf(wwlog.DEBUG, "Updating profile (%s) netdev: %s\n", p, devname)
|
wwlog.Printf(wwlog.DEBUG, "Updating profile (%s) netdev: %s\n", p, devname)
|
||||||
|
|
||||||
|
n.NetDevs[devname].Device.SetAlt(netdev.Device, p)
|
||||||
n.NetDevs[devname].Ipaddr.SetAlt(netdev.Ipaddr, p)
|
n.NetDevs[devname].Ipaddr.SetAlt(netdev.Ipaddr, p)
|
||||||
n.NetDevs[devname].Netmask.SetAlt(netdev.Netmask, p)
|
n.NetDevs[devname].Netmask.SetAlt(netdev.Netmask, p)
|
||||||
n.NetDevs[devname].Hwaddr.SetAlt(netdev.Hwaddr, p)
|
n.NetDevs[devname].Hwaddr.SetAlt(netdev.Hwaddr, p)
|
||||||
n.NetDevs[devname].Gateway.SetAlt(netdev.Gateway, p)
|
n.NetDevs[devname].Gateway.SetAlt(netdev.Gateway, p)
|
||||||
n.NetDevs[devname].Type.SetAlt(netdev.Type, p)
|
n.NetDevs[devname].Type.SetAlt(netdev.Type, p)
|
||||||
n.NetDevs[devname].Default.SetAltB(netdev.Default, p)
|
n.NetDevs[devname].OnBoot.SetAltB(netdev.OnBoot, p)
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range config.NodeProfiles[p].Keys {
|
for keyname, key := range config.NodeProfiles[p].Keys {
|
||||||
@@ -213,12 +216,14 @@ func (config *nodeYaml) FindAllProfiles() ([]NodeInfo, error) {
|
|||||||
|
|
||||||
wwlog.Printf(wwlog.DEBUG, "Updating profile netdev: %s\n", devname)
|
wwlog.Printf(wwlog.DEBUG, "Updating profile netdev: %s\n", devname)
|
||||||
|
|
||||||
|
p.NetDevs[devname].Name.Set(devname)
|
||||||
|
p.NetDevs[devname].Device.Set(netdev.Device)
|
||||||
p.NetDevs[devname].Ipaddr.Set(netdev.Ipaddr)
|
p.NetDevs[devname].Ipaddr.Set(netdev.Ipaddr)
|
||||||
p.NetDevs[devname].Netmask.Set(netdev.Netmask)
|
p.NetDevs[devname].Netmask.Set(netdev.Netmask)
|
||||||
p.NetDevs[devname].Hwaddr.Set(netdev.Hwaddr)
|
p.NetDevs[devname].Hwaddr.Set(netdev.Hwaddr)
|
||||||
p.NetDevs[devname].Gateway.Set(netdev.Gateway)
|
p.NetDevs[devname].Gateway.Set(netdev.Gateway)
|
||||||
p.NetDevs[devname].Type.Set(netdev.Type)
|
p.NetDevs[devname].Type.Set(netdev.Type)
|
||||||
p.NetDevs[devname].Default.SetB(netdev.Default)
|
p.NetDevs[devname].OnBoot.SetB(netdev.OnBoot)
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range profile.Keys {
|
for keyname, key := range profile.Keys {
|
||||||
|
|||||||
@@ -42,8 +42,10 @@ type NodeConf struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type NetDevs struct {
|
type NetDevs struct {
|
||||||
|
Name string
|
||||||
Type string `yaml:"type,omitempty"`
|
Type string `yaml:"type,omitempty"`
|
||||||
Default bool `yaml:"default"`
|
OnBoot bool `yaml:"onboot"`
|
||||||
|
Device string `yaml:"device"`
|
||||||
Hwaddr string
|
Hwaddr string
|
||||||
Ipaddr string
|
Ipaddr string
|
||||||
IpCIDR string
|
IpCIDR string
|
||||||
@@ -93,8 +95,10 @@ type NodeInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type NetDevEntry struct {
|
type NetDevEntry struct {
|
||||||
|
Name Entry
|
||||||
Type Entry `yaml:"type,omitempty"`
|
Type Entry `yaml:"type,omitempty"`
|
||||||
Default Entry `yaml:"default"`
|
OnBoot Entry `yaml:"onboot"`
|
||||||
|
Device Entry `yaml:"device"`
|
||||||
Hwaddr Entry
|
Hwaddr Entry
|
||||||
Ipaddr Entry
|
Ipaddr Entry
|
||||||
IpCIDR Entry
|
IpCIDR Entry
|
||||||
|
|||||||
@@ -84,12 +84,13 @@ func (config *nodeYaml) NodeUpdate(node NodeInfo) error {
|
|||||||
var newdev NetDevs
|
var newdev NetDevs
|
||||||
config.Nodes[nodeID].NetDevs[devname] = &newdev
|
config.Nodes[nodeID].NetDevs[devname] = &newdev
|
||||||
|
|
||||||
|
config.Nodes[nodeID].NetDevs[devname].Device = netdev.Device.GetReal()
|
||||||
config.Nodes[nodeID].NetDevs[devname].Ipaddr = netdev.Ipaddr.GetReal()
|
config.Nodes[nodeID].NetDevs[devname].Ipaddr = netdev.Ipaddr.GetReal()
|
||||||
config.Nodes[nodeID].NetDevs[devname].Netmask = netdev.Netmask.GetReal()
|
config.Nodes[nodeID].NetDevs[devname].Netmask = netdev.Netmask.GetReal()
|
||||||
config.Nodes[nodeID].NetDevs[devname].Hwaddr = netdev.Hwaddr.GetReal()
|
config.Nodes[nodeID].NetDevs[devname].Hwaddr = netdev.Hwaddr.GetReal()
|
||||||
config.Nodes[nodeID].NetDevs[devname].Gateway = netdev.Gateway.GetReal()
|
config.Nodes[nodeID].NetDevs[devname].Gateway = netdev.Gateway.GetReal()
|
||||||
config.Nodes[nodeID].NetDevs[devname].Type = netdev.Type.GetReal()
|
config.Nodes[nodeID].NetDevs[devname].Type = netdev.Type.GetReal()
|
||||||
config.Nodes[nodeID].NetDevs[devname].Default = netdev.Default.GetRealB()
|
config.Nodes[nodeID].NetDevs[devname].OnBoot = netdev.OnBoot.GetRealB()
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range node.Keys {
|
for keyname, key := range node.Keys {
|
||||||
@@ -169,12 +170,13 @@ func (config *nodeYaml) ProfileUpdate(profile NodeInfo) error {
|
|||||||
var newdev NetDevs
|
var newdev NetDevs
|
||||||
config.NodeProfiles[profileID].NetDevs[devname] = &newdev
|
config.NodeProfiles[profileID].NetDevs[devname] = &newdev
|
||||||
|
|
||||||
|
config.NodeProfiles[profileID].NetDevs[devname].Device = netdev.Device.GetReal()
|
||||||
config.NodeProfiles[profileID].NetDevs[devname].Ipaddr = netdev.Ipaddr.GetReal()
|
config.NodeProfiles[profileID].NetDevs[devname].Ipaddr = netdev.Ipaddr.GetReal()
|
||||||
config.NodeProfiles[profileID].NetDevs[devname].Netmask = netdev.Netmask.GetReal()
|
config.NodeProfiles[profileID].NetDevs[devname].Netmask = netdev.Netmask.GetReal()
|
||||||
config.NodeProfiles[profileID].NetDevs[devname].Hwaddr = netdev.Hwaddr.GetReal()
|
config.NodeProfiles[profileID].NetDevs[devname].Hwaddr = netdev.Hwaddr.GetReal()
|
||||||
config.NodeProfiles[profileID].NetDevs[devname].Gateway = netdev.Gateway.GetReal()
|
config.NodeProfiles[profileID].NetDevs[devname].Gateway = netdev.Gateway.GetReal()
|
||||||
config.NodeProfiles[profileID].NetDevs[devname].Type = netdev.Type.GetReal()
|
config.NodeProfiles[profileID].NetDevs[devname].Type = netdev.Type.GetReal()
|
||||||
config.NodeProfiles[profileID].NetDevs[devname].Default = netdev.Default.GetRealB()
|
config.NodeProfiles[profileID].NetDevs[devname].OnBoot = netdev.OnBoot.GetRealB()
|
||||||
}
|
}
|
||||||
|
|
||||||
for keyname, key := range profile.Keys {
|
for keyname, key := range profile.Keys {
|
||||||
|
|||||||
@@ -160,12 +160,12 @@ func buildOverlay(nodeList []node.NodeInfo, overlayType string) error {
|
|||||||
for devname, netdev := range n.NetDevs {
|
for devname, netdev := range n.NetDevs {
|
||||||
var nd node.NetDevs
|
var nd node.NetDevs
|
||||||
t.NetDevs[devname] = &nd
|
t.NetDevs[devname] = &nd
|
||||||
|
t.NetDevs[devname].Name = devname
|
||||||
t.NetDevs[devname].Hwaddr = netdev.Hwaddr.Get()
|
t.NetDevs[devname].Hwaddr = netdev.Hwaddr.Get()
|
||||||
t.NetDevs[devname].Ipaddr = netdev.Ipaddr.Get()
|
t.NetDevs[devname].Ipaddr = netdev.Ipaddr.Get()
|
||||||
t.NetDevs[devname].Netmask = netdev.Netmask.Get()
|
t.NetDevs[devname].Netmask = netdev.Netmask.Get()
|
||||||
t.NetDevs[devname].Gateway = netdev.Gateway.Get()
|
t.NetDevs[devname].Gateway = netdev.Gateway.Get()
|
||||||
t.NetDevs[devname].Type = netdev.Type.Get()
|
t.NetDevs[devname].Type = netdev.Type.Get()
|
||||||
t.NetDevs[devname].Default = netdev.Default.GetB()
|
|
||||||
mask := net.IPMask(net.ParseIP(netdev.Netmask.Get()).To4())
|
mask := net.IPMask(net.ParseIP(netdev.Netmask.Get()).To4())
|
||||||
ipaddr := net.ParseIP(netdev.Ipaddr.Get()).To4()
|
ipaddr := net.ParseIP(netdev.Ipaddr.Get()).To4()
|
||||||
netaddr := net.IPNet{IP: ipaddr, Mask: mask}
|
netaddr := net.IPNet{IP: ipaddr, Mask: mask}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
{{range $node := $.AllNodes}}
|
{{range $node := $.AllNodes}}
|
||||||
# Entry for {{$node.Id.Get}}
|
# Entry for {{$node.Id.Get}}
|
||||||
{{- range $devname, $netdev := $node.NetDevs}}
|
{{- range $devname, $netdev := $node.NetDevs}}
|
||||||
{{- if $netdev.Default}}
|
{{- if eq $netdev.Name.Get "default"}}
|
||||||
{{$netdev.Ipaddr.Get}} {{$node.Id.Get}}
|
{{$netdev.Ipaddr.Get}} {{$node.Id.Get}}
|
||||||
{{- else}}
|
{{- else}}
|
||||||
{{$netdev.Ipaddr.Get}} {{$node.Id.Get}}-{{$devname}}
|
{{$netdev.Ipaddr.Get}} {{$node.Id.Get}}-{{$devname}}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
auto {{.NetDevs.default.Device}}
|
||||||
|
allow-hotplug {{.NetDevs.default.Device}}
|
||||||
|
iface {{.NetDevs.default.Device}} inet static
|
||||||
|
address {{.NetDevs.default.Ipaddr}}
|
||||||
|
netmask {{.NetDevs.default.Netmask}}
|
||||||
|
gateway {{.NetDevs.default.Gateway}}
|
||||||
|
up ifmetric {{.NetDevs.default.Device}} 30
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
auto eth0
|
|
||||||
allow-hotplug eth0
|
|
||||||
iface eth0 inet static
|
|
||||||
address {{.NetDevs.eth0.Ipaddr}}
|
|
||||||
netmask {{.NetDevs.eth0.Netmask}}
|
|
||||||
gateway {{.NetDevs.eth0.Gateway}}
|
|
||||||
up ifmetric eth0 30
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
DEVICE={{.NetDevs.default.Device}}
|
||||||
|
NAME=default
|
||||||
|
BOOTPROTO=static
|
||||||
|
DEVTIMEOUT=10
|
||||||
|
IPADDR={{$.NetDevs.default.Ipaddr}}
|
||||||
|
NETMASK={{$.NetDevs.default.Netmask}}
|
||||||
|
GATEWAY={{$.NetDevs.default.Gateway}}
|
||||||
|
HWADDR={{$.NetDevs.default.Hwaddr}}
|
||||||
|
{{if eq $.NetDevs.default.OnBoot "true"}}
|
||||||
|
ONBOOT=yes
|
||||||
|
{{else}}
|
||||||
|
ONBOOT=no
|
||||||
|
{{end}}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
DEVICE=eth0
|
|
||||||
NAME=eth0
|
|
||||||
IPADDR={{$.NetDevs.eth0.Ipaddr}}
|
|
||||||
NETMASK={{$.NetDevs.eth0.Netmask}}
|
|
||||||
GATEWAY={{$.NetDevs.eth0.Gateway}}
|
|
||||||
HWADDR={{$.NetDevs.eth0.Hwaddr}}
|
|
||||||
BOOTPROTO=static
|
|
||||||
ONBOOT=yes
|
|
||||||
DEVTIMEOUT=10
|
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# /etc/systemd/network/10-persistent-net.link
|
# /etc/systemd/network/10-persistent-net.link
|
||||||
|
|
||||||
{{range $devname, $netdev := .NetDevs}}
|
{{range $devname, $netdev := .NetDevs}}
|
||||||
{{- if $netdev.Default}}
|
{{- if eq $netdev.Name "default"}}
|
||||||
[Match]
|
[Match]
|
||||||
MACAddress={{$netdev.Hwaddr}}
|
MACAddress={{$netdev.Hwaddr}}
|
||||||
[Link]
|
[Link]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<interface origin="static generated warewulf config">
|
<interface origin="static generated warewulf config">
|
||||||
<name>eth0</name>
|
<name>{{.NetDevs.default.Device}}</name>
|
||||||
<control>
|
<control>
|
||||||
<mode>boot</mode>
|
<mode>boot</mode>
|
||||||
</control>
|
</control>
|
||||||
@@ -11,11 +11,11 @@
|
|||||||
</ipv4>
|
</ipv4>
|
||||||
<ipv4:static>
|
<ipv4:static>
|
||||||
<address>
|
<address>
|
||||||
<local>{{$.NetDevs.eth0.IpCIDR}}</local>
|
<local>{{$.NetDevs.default.IpCIDR}}</local>
|
||||||
</address>
|
</address>
|
||||||
<route>
|
<route>
|
||||||
<nexthop>
|
<nexthop>
|
||||||
<gateway>{{$.NetDevs.eth0.Gateway}}</gateway>
|
<gateway>{{$.NetDevs.default.Gateway}}</gateway>
|
||||||
</nexthop>
|
</nexthop>
|
||||||
</route>
|
</route>
|
||||||
</ipv4:static>
|
</ipv4:static>
|
||||||
Reference in New Issue
Block a user