Various nodeDB updates

This commit is contained in:
Gregory Kurtzer
2020-11-27 16:39:27 -08:00
parent e3dd3253d1
commit f74826bc87
4 changed files with 72 additions and 29 deletions

View File

@@ -45,9 +45,33 @@ func (self *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
n.GroupName.Set(groupname)
n.HostName.Set(node.Hostname)
n.IpmiIpaddr.Set(node.IpmiIpaddr)
n.DomainName.Set(node.DomainName)
n.Vnfs.Set(node.Vnfs)
n.KernelVersion.Set(node.KernelVersion)
n.KernelArgs.Set(node.KernelArgs)
n.Ipxe.Set(node.Ipxe)
n.IpmiUserName.Set(node.IpmiUserName)
n.IpmiPassword.Set(node.IpmiPassword)
n.SystemOverlay.Set(node.SystemOverlay)
n.RuntimeOverlay.Set(node.RuntimeOverlay)
n.DomainName.SetGroup(group.DomainName)
n.Vnfs.SetGroup(group.Vnfs)
n.KernelVersion.SetGroup(group.KernelVersion)
n.KernelArgs.SetGroup(group.KernelArgs)
n.Ipxe.SetGroup(group.Ipxe)
n.IpmiUserName.SetGroup(group.IpmiUserName)
n.IpmiPassword.SetGroup(group.IpmiPassword)
n.SystemOverlay.SetGroup(group.SystemOverlay)
n.RuntimeOverlay.SetGroup(group.RuntimeOverlay)
n.RuntimeOverlay.SetDefault("default")
n.SystemOverlay.SetDefault("default")
n.Ipxe.SetDefault("default")
n.KernelArgs.SetDefault("crashkernel=no quiet")
n.Profiles = node.Profiles
n.GroupProfiles = group.Profiles
n.Profiles = node.Profiles
allProfiles = append(allProfiles, group.Profiles...)
allProfiles = append(allProfiles, node.Profiles...)
@@ -58,34 +82,17 @@ func (self *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
continue
}
n.DomainName.SetProfile(self.NodeProfiles[p].DomainName)
n.Vnfs.SetProfile(self.NodeProfiles[p].Vnfs)
n.KernelVersion.SetProfile(self.NodeProfiles[p].KernelVersion)
n.KernelArgs.SetProfile(self.NodeProfiles[p].KernelArgs)
n.Ipxe.SetProfile(self.NodeProfiles[p].Ipxe)
n.IpmiUserName.SetProfile(self.NodeProfiles[p].IpmiUserName)
n.IpmiPassword.SetProfile(self.NodeProfiles[p].IpmiPassword)
n.DomainName.SetProfile(self.NodeProfiles[p].DomainName)
n.SystemOverlay.SetProfile(self.NodeProfiles[p].SystemOverlay)
n.RuntimeOverlay.SetProfile(self.NodeProfiles[p].RuntimeOverlay)
}
n.DomainName.Set(node.DomainName)
n.DomainName.SetGroup(group.DomainName)
n.Vnfs.Set(node.Vnfs)
n.KernelVersion.Set(node.KernelVersion)
n.KernelArgs.Set(node.KernelArgs)
n.Ipxe.Set(node.Ipxe)
n.IpmiUserName.Set(node.IpmiUserName)
n.IpmiPassword.Set(node.IpmiPassword)
n.RuntimeOverlay.SetDefault("default")
n.SystemOverlay.SetDefault("default")
n.Ipxe.SetDefault("default")
n.KernelArgs.SetDefault("crashkernel=no quiet")
// config := config.New()
// n.VnfsRoot = config.VnfsChroot(vnfs.CleanName(n.Vnfs))
if n.DomainName.Defined() == true {
n.Fqdn.Set(node.Hostname +"."+ n.DomainName.Get())
} else {
@@ -109,8 +116,14 @@ func (self *nodeYaml) FindAllGroups() ([]GroupInfo, error) {
g.Id = groupname
g.DomainName = group.DomainName
g.Disabled = group.Disabled
g.Comment = group.Comment
g.Vnfs = group.Vnfs
g.KernelVersion = group.KernelVersion
g.KernelArgs = group.KernelArgs
g.IpmiPassword = group.IpmiPassword
g.IpmiUserName = group.IpmiUserName
g.SystemOverlay = group.SystemOverlay
g.RuntimeOverlay = group.RuntimeOverlay
g.Profiles = group.Profiles

View File

@@ -28,6 +28,14 @@ type GroupConf struct {
Comment string `yaml:"comment"`
Disabled bool `yaml:"disabled,omitempty"`
DomainName string `yaml:"domain name"`
Vnfs string `yaml:"vnfs,omitempty"`
Ipxe string `yaml:"ipxe template,omitempty"`
KernelVersion string `yaml:"kernel version,omitempty"`
KernelArgs string `yaml:"kernel args,omitempty"`
IpmiUserName string `yaml:"ipmi username,omitempty"`
IpmiPassword string `yaml:"ipmi password,omitempty"`
RuntimeOverlay string `yaml:"runtime overlay files,omitempty"`
SystemOverlay string `yaml:"system overlay files,omitempty"`
Profiles []string `yaml:"profiles,omitempty"`
Nodes map[string]*NodeConf
}
@@ -36,13 +44,13 @@ type NodeConf struct {
Comment string `yaml:"comment,omitempty"`
Disabled bool `yaml:"disabled,omitempty"`
Hostname string `yaml:"hostname,omitempty"`
DomainName string `yaml:"domain name,omitempty"`
Vnfs string `yaml:"vnfs,omitempty"`
Ipxe string `yaml:"ipxe template,omitempty"`
KernelVersion string `yaml:"kernel version,omitempty"`
KernelArgs string `yaml:"kernel args,omitempty"`
IpmiUserName string `yaml:"ipmi username,omitempty"`
IpmiPassword string `yaml:"ipmi password,omitempty"`
DomainName string `yaml:"domain name,omitempty"`
IpmiIpaddr string `yaml:"ipmi ipaddr,omitempty"`
RuntimeOverlay string `yaml:"runtime overlay files,omitempty"`
SystemOverlay string `yaml:"system overlay files,omitempty"`
@@ -75,7 +83,6 @@ type NodeInfo struct {
Fqdn NodeInfoEntry
DomainName NodeInfoEntry
Vnfs NodeInfoEntry
VnfsRoot NodeInfoEntry
Ipxe NodeInfoEntry
KernelVersion NodeInfoEntry
KernelArgs NodeInfoEntry
@@ -92,8 +99,15 @@ type NodeInfo struct {
type GroupInfo struct {
Id string
Comment string
Disabled bool
Vnfs string
Ipxe string
KernelVersion string
KernelArgs string
IpmiUserName string
IpmiPassword string
DomainName string
RuntimeOverlay string
SystemOverlay string
Profiles []string
}

View File

@@ -1,21 +1,27 @@
package node
import "strings"
import (
"strings"
)
func (self *NodeInfoEntry) String() string {
return self.Get()
}
func (self *NodeInfoEntry) Source() string {
if self.value != "" {
return "node=" + self.value
return "node"
}
if self.group != "" {
return "group=" + self.group
return "group"
}
if self.profile != "" {
return "profile=" + self.profile
return "profile"
}
if self.def != "" {
return "default=" + self.def
return "default"
}
return "--"
return ""
}
func (self *NodeInfoEntry) Get() string {

View File

@@ -95,6 +95,7 @@ func (self *nodeYaml) AddGroup(groupID string) error {
self.NodeGroups[groupID] = &group
self.NodeGroups[groupID].DomainName = groupID
self.NodeGroups[groupID].Profiles = []string{"default"}
return nil
}
@@ -119,6 +120,15 @@ func(self *nodeYaml) GroupUpdate(group GroupInfo) error {
}
self.NodeGroups[groupID].DomainName = group.DomainName
self.NodeGroups[groupID].Vnfs = group.Vnfs
self.NodeGroups[groupID].KernelVersion = group.KernelVersion
self.NodeGroups[groupID].KernelArgs = group.KernelArgs
self.NodeGroups[groupID].Ipxe = group.Ipxe
self.NodeGroups[groupID].IpmiUserName = group.IpmiUserName
self.NodeGroups[groupID].IpmiPassword = group.IpmiPassword
self.NodeGroups[groupID].RuntimeOverlay = group.RuntimeOverlay
self.NodeGroups[groupID].SystemOverlay = group.SystemOverlay
self.NodeGroups[groupID].Profiles = group.Profiles
return nil
}