custom paramters
This commit is contained in:
@@ -43,7 +43,7 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
|
||||
wwlog.Printf(wwlog.DEBUG, "In node loop: %s\n", nodename)
|
||||
n.NetDevs = make(map[string]*NetDevEntry)
|
||||
n.Params = make(map[string]*ParamEntry)
|
||||
n.Params = make(map[string]*Entry)
|
||||
n.SystemOverlay.SetDefault("default")
|
||||
n.RuntimeOverlay.SetDefault("default")
|
||||
n.Ipxe.SetDefault("default")
|
||||
@@ -97,10 +97,10 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
|
||||
for paramname, param := range node.Params {
|
||||
if _, ok := n.Params[paramname]; !ok {
|
||||
var param ParamEntry
|
||||
var param Entry
|
||||
n.Params[paramname] = ¶m
|
||||
}
|
||||
n.Params[paramname].Value.Set(param.Value)
|
||||
n.Params[paramname].Set(param)
|
||||
}
|
||||
|
||||
for _, p := range n.Profiles {
|
||||
@@ -143,6 +143,14 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
n.NetDevs[devname].Type.SetAlt(netdev.Type, p)
|
||||
n.NetDevs[devname].Default.SetAltB(netdev.Default, p)
|
||||
}
|
||||
|
||||
for paramname, param := range config.NodeProfiles[p].Params {
|
||||
if _, ok := n.Params[paramname]; !ok {
|
||||
var param Entry
|
||||
n.Params[paramname] = ¶m
|
||||
}
|
||||
n.Params[paramname].SetAlt(param, p)
|
||||
}
|
||||
}
|
||||
|
||||
ret = append(ret, n)
|
||||
@@ -169,6 +177,7 @@ func (config *nodeYaml) FindAllProfiles() ([]NodeInfo, error) {
|
||||
for name, profile := range config.NodeProfiles {
|
||||
var p NodeInfo
|
||||
p.NetDevs = make(map[string]*NetDevEntry)
|
||||
p.Params = make(map[string]*Entry)
|
||||
|
||||
p.Id.Set(name)
|
||||
p.Comment.Set(profile.Comment)
|
||||
@@ -203,6 +212,14 @@ func (config *nodeYaml) FindAllProfiles() ([]NodeInfo, error) {
|
||||
p.NetDevs[devname].Default.SetB(netdev.Default)
|
||||
}
|
||||
|
||||
for paramname, param := range profile.Params {
|
||||
if _, ok := p.Params[paramname]; !ok {
|
||||
var param Entry
|
||||
p.Params[paramname] = ¶m
|
||||
}
|
||||
p.Params[paramname].Set(param)
|
||||
}
|
||||
|
||||
// TODO: Validate or die on all inputs
|
||||
|
||||
ret = append(ret, p)
|
||||
|
||||
@@ -36,7 +36,7 @@ type NodeConf struct {
|
||||
Discoverable bool `yaml:"discoverable,omitempty"`
|
||||
Profiles []string `yaml:"profiles,omitempty"`
|
||||
NetDevs map[string]*NetDevs `yaml:"network devices,omitempty"`
|
||||
Params map[string]*Params `yaml:"parameters,omitempty"`
|
||||
Params map[string]string `yaml:"parameters,omitempty"`
|
||||
}
|
||||
|
||||
type NetDevs struct {
|
||||
@@ -48,10 +48,6 @@ type NetDevs struct {
|
||||
Gateway string `yaml:"gateway,omitempty"`
|
||||
}
|
||||
|
||||
type Params struct {
|
||||
Value string `yaml:"value,omitempty"`
|
||||
}
|
||||
|
||||
/******
|
||||
* Internal code data representations
|
||||
******/
|
||||
@@ -87,7 +83,7 @@ type NodeInfo struct {
|
||||
Profiles []string
|
||||
GroupProfiles []string
|
||||
NetDevs map[string]*NetDevEntry
|
||||
Params map[string]*ParamEntry
|
||||
Params map[string]*Entry
|
||||
}
|
||||
|
||||
type NetDevEntry struct {
|
||||
@@ -99,10 +95,6 @@ type NetDevEntry struct {
|
||||
Gateway Entry `yaml:"gateway,omitempty"`
|
||||
}
|
||||
|
||||
type ParamEntry struct {
|
||||
Value Entry `yaml:"value,omitempty"`
|
||||
}
|
||||
|
||||
func init() {
|
||||
//TODO: Check to make sure nodes.conf is found
|
||||
if !util.IsFile(ConfigFile) {
|
||||
|
||||
@@ -27,7 +27,6 @@ func (config *nodeYaml) AddNode(nodeID string) (NodeInfo, error) {
|
||||
config.Nodes[nodeID] = &node
|
||||
config.Nodes[nodeID].Profiles = []string{"default"}
|
||||
config.Nodes[nodeID].NetDevs = make(map[string]*NetDevs)
|
||||
// config.Nodes[nodeID].Params = make(map[string]*Params)
|
||||
|
||||
n.Id.Set(nodeID)
|
||||
n.Profiles = []string{"default"}
|
||||
@@ -76,7 +75,7 @@ func (config *nodeYaml) NodeUpdate(node NodeInfo) error {
|
||||
config.Nodes[nodeID].Profiles = node.Profiles
|
||||
config.Nodes[nodeID].NetDevs = make(map[string]*NetDevs)
|
||||
|
||||
config.Nodes[nodeID].Params = make(map[string]*Params)
|
||||
config.Nodes[nodeID].Params = make(map[string]string)
|
||||
|
||||
for devname, netdev := range node.NetDevs {
|
||||
var newdev NetDevs
|
||||
@@ -91,9 +90,7 @@ func (config *nodeYaml) NodeUpdate(node NodeInfo) error {
|
||||
}
|
||||
|
||||
for paramname, param := range node.Params {
|
||||
var newparam Params
|
||||
config.Nodes[nodeID].Params[paramname] = &newparam
|
||||
config.Nodes[nodeID].Params[paramname].Value = param.Value.GetReal()
|
||||
config.Nodes[nodeID].Params[paramname] = param.GetReal()
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -160,6 +157,8 @@ func (config *nodeYaml) ProfileUpdate(profile NodeInfo) error {
|
||||
|
||||
config.NodeProfiles[profileID].Profiles = profile.Profiles
|
||||
config.NodeProfiles[profileID].NetDevs = make(map[string]*NetDevs)
|
||||
|
||||
config.NodeProfiles[profileID].Params = make(map[string]string)
|
||||
|
||||
for devname, netdev := range profile.NetDevs {
|
||||
var newdev NetDevs
|
||||
@@ -173,6 +172,10 @@ func (config *nodeYaml) ProfileUpdate(profile NodeInfo) error {
|
||||
config.NodeProfiles[profileID].NetDevs[devname].Default = netdev.Default.GetRealB()
|
||||
}
|
||||
|
||||
for paramname, param := range profile.Params {
|
||||
config.NodeProfiles[profileID].Params[paramname] = param.GetReal()
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user