set the primary network in NodeInfo not in NetDev
Prior the primary was a boolean attribute of NetDev, so several NetDevs could have been primay. Setting is as a sting in NodeConf assures that only one network could be primary. If no primary network is set, a valid altvalue will be set.
This commit is contained in:
@@ -134,13 +134,6 @@ func (config *NodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
for _, netdev := range n.NetDevs {
|
||||
netdev.SetDefFrom(defConfNet)
|
||||
}
|
||||
// set default/primary network is just one network exist
|
||||
if len(n.NetDevs) == 1 {
|
||||
// only way to get the key
|
||||
for key := range node.NetDevs {
|
||||
n.NetDevs[key].Primary.SetDefaultB(true)
|
||||
}
|
||||
}
|
||||
// backward compatibility
|
||||
n.Ipmi.Ipaddr.Set(node.IpmiIpaddr)
|
||||
n.Ipmi.Netmask.Set(node.IpmiNetmask)
|
||||
@@ -178,6 +171,20 @@ func (config *NodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
wwlog.Verbose("Merging profile into node: %s <- %s", nodename, profileName)
|
||||
n.SetAltFrom(config.NodeProfiles[profileName], profileName)
|
||||
}
|
||||
// set default/primary network is just one network exist
|
||||
if len(n.NetDevs) >= 1 {
|
||||
tmpNets := make([]string, 0, len(n.NetDevs))
|
||||
for key := range node.NetDevs {
|
||||
tmpNets = append(tmpNets, key)
|
||||
}
|
||||
sort.Strings(tmpNets)
|
||||
// if a value is present in profile or node, default is not visible
|
||||
wwlog.Debug("%s setting primary network device: %s", n.Id.Get(), tmpNets[0])
|
||||
n.PrimaryNetDev.SetDefault(tmpNets[0])
|
||||
}
|
||||
if dev, ok := n.NetDevs[n.PrimaryNetDev.Get()]; ok {
|
||||
dev.Primary.SetDefaultB(true)
|
||||
}
|
||||
ret = append(ret, n)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user