profile and node commands and DB all working as expected now

This commit is contained in:
Gregory Kurtzer
2020-12-03 13:49:49 -08:00
parent eaf6bb1196
commit 84bf9fbb43
14 changed files with 223 additions and 59 deletions

View File

@@ -10,6 +10,8 @@ import (
"strings"
)
const ConfigFile = "/etc/warewulf/nodes.conf"
func New() (nodeYaml, error) {
var ret nodeYaml
@@ -20,28 +22,33 @@ func New() (nodeYaml, error) {
return ret, err
}
wwlog.Printf(wwlog.DEBUG, "Unmarshaling the node configuration\n")
err = yaml.Unmarshal(data, &ret)
if err != nil {
return ret, err
}
wwlog.Printf(wwlog.DEBUG, "Returning node object\n")
return ret, nil
}
func (self *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
var ret []NodeInfo
wwlog.Printf(wwlog.DEBUG, "Finding all nodes...\n")
for nodename, node := range self.Nodes {
var n NodeInfo
wwlog.Printf(wwlog.DEBUG, "In node loop: %s\n", nodename)
n.NetDevs = make(map[string]*NetDevEntry)
n.SystemOverlay.Set("default")
n.RuntimeOverlay.Set("default")
n.Ipxe.Set("default")
n.SystemOverlay.SetDefault("default")
n.RuntimeOverlay.SetDefault("default")
n.Ipxe.SetDefault("default")
fullname := strings.SplitN(nodename, ".", 2)
if len(fullname) > 1 {
n.DomainName.Set(fullname[1])
n.DomainName.SetDefault(fullname[1])
}
if len(node.Profiles) == 0 {
@@ -106,6 +113,7 @@ func (self *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
var netdev NetDevEntry
n.NetDevs[devname] = &netdev
}
wwlog.Printf(wwlog.DEBUG, "Updating profile (%s) netdev: %s\n", p, devname)
n.NetDevs[devname].Ipaddr.SetAlt(netdev.Ipaddr, pstring)
n.NetDevs[devname].Netmask.SetAlt(netdev.Netmask, pstring)
@@ -193,6 +201,7 @@ func (self *nodeYaml) FindAllProfiles() ([]NodeInfo, error) {
for name, profile := range self.NodeProfiles {
var p NodeInfo
p.NetDevs = make(map[string]*NetDevEntry)
p.Id.Set(name)
p.Comment.Set(profile.Comment)
@@ -212,6 +221,8 @@ func (self *nodeYaml) FindAllProfiles() ([]NodeInfo, error) {
p.NetDevs[devname] = &netdev
}
wwlog.Printf(wwlog.DEBUG, "Updating profile netdev: %s\n", devname)
p.NetDevs[devname].Ipaddr.Set(netdev.Ipaddr)
p.NetDevs[devname].Netmask.Set(netdev.Netmask)
p.NetDevs[devname].Hwaddr.Set(netdev.Hwaddr)