Udated constructors/mods
Signed-off-by: jcsiadal <jeremy.c.siadal@intel.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
WW_INTERNAL: 43
|
||||
nodeprofiles:
|
||||
default:
|
||||
comment: This profile is automatically included for each node
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
WW_INTERNAL: 43
|
||||
ipaddr: 192.168.200.1
|
||||
netmask: 255.255.255.0
|
||||
warewulf:
|
||||
|
||||
@@ -2,6 +2,8 @@ package buildconfig
|
||||
|
||||
import "github.com/hpcng/warewulf/internal/pkg/wwlog"
|
||||
|
||||
const WWVer = 43
|
||||
|
||||
var (
|
||||
bindir string = "UNDEF"
|
||||
sysconfdir string = "UNDEF"
|
||||
|
||||
@@ -67,7 +67,7 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
n.Ipxe.SetDefault("default")
|
||||
n.Init.SetDefault("/sbin/init")
|
||||
n.Root.SetDefault("initramfs")
|
||||
n.KernelArgs.SetDefault("quiet crashkernel=no vga=791")
|
||||
n.Kernel.Args.SetDefault("quiet crashkernel=no vga=791")
|
||||
|
||||
fullname := strings.SplitN(nodename, ".", 2)
|
||||
if len(fullname) > 1 {
|
||||
@@ -83,28 +83,28 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
n.Id.Set(nodename)
|
||||
n.Comment.Set(node.Comment)
|
||||
n.ContainerName.Set(node.ContainerName)
|
||||
n.KernelArgs.Set(node.KernelArgs)
|
||||
n.Kernel.Args.Set(node.Kernel.Args)
|
||||
n.ClusterName.Set(node.ClusterName)
|
||||
n.Ipxe.Set(node.Ipxe)
|
||||
n.Init.Set(node.Init)
|
||||
n.IpmiIpaddr.Set(node.IpmiIpaddr)
|
||||
n.IpmiNetmask.Set(node.IpmiNetmask)
|
||||
n.IpmiPort.Set(node.IpmiPort)
|
||||
n.IpmiGateway.Set(node.IpmiGateway)
|
||||
n.IpmiUserName.Set(node.IpmiUserName)
|
||||
n.IpmiPassword.Set(node.IpmiPassword)
|
||||
n.IpmiInterface.Set(node.IpmiInterface)
|
||||
n.IpmiWrite.SetB(node.IpmiWrite)
|
||||
n.Ipmi.Ipaddr.Set(node.Ipmi.Ipaddr)
|
||||
n.Ipmi.Netmask.Set(node.Ipmi.Netmask)
|
||||
n.Ipmi.Port.Set(node.Ipmi.Port)
|
||||
n.Ipmi.Gateway.Set(node.Ipmi.Gateway)
|
||||
n.Ipmi.UserName.Set(node.Ipmi.UserName)
|
||||
n.Ipmi.Password.Set(node.Ipmi.Password)
|
||||
n.Ipmi.Interface.Set(node.Ipmi.Interface)
|
||||
n.Ipmi.Write.SetB(node.Ipmi.Write)
|
||||
n.SystemOverlay.SetSlice(node.SystemOverlay)
|
||||
n.RuntimeOverlay.SetSlice(node.RuntimeOverlay)
|
||||
n.Root.Set(node.Root)
|
||||
n.AssetKey.Set(node.AssetKey)
|
||||
n.Discoverable.Set(node.Discoverable)
|
||||
|
||||
if node.KernelOverride != "" {
|
||||
n.KernelOverride.Set(node.KernelOverride)
|
||||
} else if node.KernelVersion != "" {
|
||||
n.KernelOverride.Set(node.KernelVersion)
|
||||
if node.Kernel.Override != "" {
|
||||
n.Kernel.Override.Set(node.Kernel.Override)
|
||||
} else if node.Kernel.Version != "" {
|
||||
n.Kernel.Override.Set(node.Kernel.Version)
|
||||
}
|
||||
|
||||
for devname, netdev := range node.NetDevs {
|
||||
@@ -170,27 +170,27 @@ func (config *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
||||
n.Comment.SetAlt(config.NodeProfiles[p].Comment, p)
|
||||
n.ClusterName.SetAlt(config.NodeProfiles[p].ClusterName, p)
|
||||
n.ContainerName.SetAlt(config.NodeProfiles[p].ContainerName, p)
|
||||
n.KernelArgs.SetAlt(config.NodeProfiles[p].KernelArgs, p)
|
||||
n.Kernel.Args.SetAlt(config.NodeProfiles[p].Kernel.Args, p)
|
||||
n.Ipxe.SetAlt(config.NodeProfiles[p].Ipxe, p)
|
||||
n.Init.SetAlt(config.NodeProfiles[p].Init, p)
|
||||
n.IpmiIpaddr.SetAlt(config.NodeProfiles[p].IpmiIpaddr, p)
|
||||
n.IpmiNetmask.SetAlt(config.NodeProfiles[p].IpmiNetmask, p)
|
||||
n.IpmiPort.SetAlt(config.NodeProfiles[p].IpmiPort, p)
|
||||
n.IpmiGateway.SetAlt(config.NodeProfiles[p].IpmiGateway, p)
|
||||
n.IpmiUserName.SetAlt(config.NodeProfiles[p].IpmiUserName, p)
|
||||
n.IpmiPassword.SetAlt(config.NodeProfiles[p].IpmiPassword, p)
|
||||
n.IpmiInterface.SetAlt(config.NodeProfiles[p].IpmiInterface, p)
|
||||
n.IpmiWrite.SetB(config.NodeProfiles[p].IpmiWrite)
|
||||
n.Ipmi.Ipaddr.SetAlt(config.NodeProfiles[p].Ipmi.Ipaddr, p)
|
||||
n.Ipmi.Netmask.SetAlt(config.NodeProfiles[p].Ipmi.Netmask, p)
|
||||
n.Ipmi.Port.SetAlt(config.NodeProfiles[p].Ipmi.Port, p)
|
||||
n.Ipmi.Gateway.SetAlt(config.NodeProfiles[p].Ipmi.Gateway, p)
|
||||
n.Ipmi.UserName.SetAlt(config.NodeProfiles[p].Ipmi.UserName, p)
|
||||
n.Ipmi.Password.SetAlt(config.NodeProfiles[p].Ipmi.Password, p)
|
||||
n.Ipmi.Interface.SetAlt(config.NodeProfiles[p].Ipmi.Interface, p)
|
||||
n.Ipmi.Write.SetB(config.NodeProfiles[p].Ipmi.Write)
|
||||
n.SystemOverlay.SetAltSlice(config.NodeProfiles[p].SystemOverlay, p)
|
||||
n.RuntimeOverlay.SetAltSlice(config.NodeProfiles[p].RuntimeOverlay, p)
|
||||
n.Root.SetAlt(config.NodeProfiles[p].Root, p)
|
||||
n.AssetKey.SetAlt(config.NodeProfiles[p].AssetKey, p)
|
||||
n.Discoverable.SetAlt(config.NodeProfiles[p].Discoverable, p)
|
||||
|
||||
if config.NodeProfiles[p].KernelOverride != "" {
|
||||
n.KernelOverride.SetAlt(config.NodeProfiles[p].KernelOverride, p)
|
||||
} else if config.NodeProfiles[p].KernelVersion != "" {
|
||||
n.KernelOverride.SetAlt(config.NodeProfiles[p].KernelVersion, p)
|
||||
if config.NodeProfiles[p].Kernel.Override != "" {
|
||||
n.Kernel.Override.SetAlt(config.NodeProfiles[p].Kernel.Override, p)
|
||||
} else if config.NodeProfiles[p].Kernel.Version != "" {
|
||||
n.Kernel.Override.SetAlt(config.NodeProfiles[p].Kernel.Version, p)
|
||||
}
|
||||
|
||||
for devname, netdev := range config.NodeProfiles[p].NetDevs {
|
||||
@@ -260,24 +260,24 @@ func (config *nodeYaml) FindAllProfiles() ([]NodeInfo, error) {
|
||||
p.ContainerName.Set(profile.ContainerName)
|
||||
p.Ipxe.Set(profile.Ipxe)
|
||||
p.Init.Set(profile.Init)
|
||||
p.KernelArgs.Set(profile.KernelArgs)
|
||||
p.IpmiNetmask.Set(profile.IpmiNetmask)
|
||||
p.IpmiPort.Set(profile.IpmiPort)
|
||||
p.IpmiGateway.Set(profile.IpmiGateway)
|
||||
p.IpmiUserName.Set(profile.IpmiUserName)
|
||||
p.IpmiPassword.Set(profile.IpmiPassword)
|
||||
p.IpmiInterface.Set(profile.IpmiInterface)
|
||||
p.IpmiWrite.SetB(profile.IpmiWrite)
|
||||
p.Kernel.Args.Set(profile.Kernel.Args)
|
||||
p.Ipmi.Netmask.Set(profile.Ipmi.Netmask)
|
||||
p.Ipmi.Port.Set(profile.Ipmi.Port)
|
||||
p.Ipmi.Gateway.Set(profile.Ipmi.Gateway)
|
||||
p.Ipmi.UserName.Set(profile.Ipmi.UserName)
|
||||
p.Ipmi.Password.Set(profile.Ipmi.Password)
|
||||
p.Ipmi.Interface.Set(profile.Ipmi.Interface)
|
||||
p.Ipmi.Write.SetB(profile.Ipmi.Write)
|
||||
p.RuntimeOverlay.SetSlice(profile.RuntimeOverlay)
|
||||
p.SystemOverlay.SetSlice(profile.SystemOverlay)
|
||||
p.Root.Set(profile.Root)
|
||||
p.AssetKey.Set(profile.AssetKey)
|
||||
p.Discoverable.Set(profile.Discoverable)
|
||||
|
||||
if profile.KernelOverride != "" {
|
||||
p.KernelOverride.Set(profile.KernelOverride)
|
||||
} else if profile.KernelVersion != "" {
|
||||
p.KernelOverride.Set(profile.KernelVersion)
|
||||
if profile.Kernel.Override != "" {
|
||||
p.Kernel.Override.Set(profile.Kernel.Override)
|
||||
} else if profile.Kernel.Version != "" {
|
||||
p.Kernel.Override.Set(profile.Kernel.Version)
|
||||
}
|
||||
|
||||
for devname, netdev := range profile.NetDevs {
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
******/
|
||||
|
||||
type nodeYaml struct {
|
||||
WWInternal int `yaml:"WW_INTERNAL"`
|
||||
NodeProfiles map[string]*NodeConf
|
||||
Nodes map[string]*NodeConf
|
||||
}
|
||||
@@ -19,11 +20,9 @@ type NodeConf struct {
|
||||
ClusterName string `yaml:"cluster name,omitempty"`
|
||||
ContainerName string `yaml:"container name,omitempty"`
|
||||
Ipxe string `yaml:"ipxe template,omitempty"`
|
||||
KernelVersion string `yaml:"kernel version,omitempty"`
|
||||
KernelOverride string `yaml:"kernel override,omitempty"`
|
||||
KernelArgs string `yaml:"kernel args,omitempty"`
|
||||
RuntimeOverlay []string `yaml:"runtime overlay,omitempty"`
|
||||
SystemOverlay []string `yaml:"system overlay,omitempty"`
|
||||
Kernel *KernelConf `yaml:"kernel,omitempty"`
|
||||
Ipmi *IpmiConf `yaml:"ipmi,omitempty"`
|
||||
Init string `yaml:"init,omitempty"`
|
||||
Root string `yaml:"root,omitempty"`
|
||||
@@ -45,6 +44,11 @@ type IpmiConf struct {
|
||||
Interface string `yaml:"interface,omitempty"`
|
||||
Write bool `yaml:"write,omitempty"`
|
||||
}
|
||||
type KernelConf struct {
|
||||
Version string `yaml:"version,omitempty"`
|
||||
Override string `yaml:"override,omitempty"`
|
||||
Args string `yaml:"args,omitempty"`
|
||||
}
|
||||
|
||||
type NetDevs struct {
|
||||
Type string `yaml:"type,omitempty"`
|
||||
@@ -82,14 +86,13 @@ type NodeInfo struct {
|
||||
ClusterName Entry
|
||||
ContainerName Entry
|
||||
Ipxe Entry
|
||||
KernelOverride Entry
|
||||
KernelArgs Entry
|
||||
RuntimeOverlay Entry
|
||||
SystemOverlay Entry
|
||||
Root Entry
|
||||
Discoverable Entry
|
||||
Init Entry //TODO: Finish adding this...
|
||||
AssetKey Entry
|
||||
Kernel *KernelEntry
|
||||
Ipmi *IpmiEntry
|
||||
Profiles []string
|
||||
GroupProfiles []string
|
||||
@@ -108,6 +111,12 @@ type IpmiEntry struct {
|
||||
Write Entry
|
||||
}
|
||||
|
||||
type KernelEntry struct {
|
||||
Version Entry
|
||||
Override Entry
|
||||
Args Entry
|
||||
}
|
||||
|
||||
type NetDevEntry struct {
|
||||
Type Entry
|
||||
OnBoot Entry
|
||||
|
||||
@@ -60,16 +60,16 @@ func (config *nodeYaml) NodeUpdate(node NodeInfo) error {
|
||||
config.Nodes[nodeID].ClusterName = node.ClusterName.GetReal()
|
||||
config.Nodes[nodeID].Ipxe = node.Ipxe.GetReal()
|
||||
config.Nodes[nodeID].Init = node.Init.GetReal()
|
||||
config.Nodes[nodeID].KernelOverride = node.KernelOverride.GetReal()
|
||||
config.Nodes[nodeID].KernelArgs = node.KernelArgs.GetReal()
|
||||
config.Nodes[nodeID].IpmiIpaddr = node.IpmiIpaddr.GetReal()
|
||||
config.Nodes[nodeID].IpmiNetmask = node.IpmiNetmask.GetReal()
|
||||
config.Nodes[nodeID].IpmiPort = node.IpmiPort.GetReal()
|
||||
config.Nodes[nodeID].IpmiGateway = node.IpmiGateway.GetReal()
|
||||
config.Nodes[nodeID].IpmiUserName = node.IpmiUserName.GetReal()
|
||||
config.Nodes[nodeID].IpmiPassword = node.IpmiPassword.GetReal()
|
||||
config.Nodes[nodeID].IpmiInterface = node.IpmiInterface.GetReal()
|
||||
config.Nodes[nodeID].IpmiWrite = node.IpmiWrite.GetB()
|
||||
config.Nodes[nodeID].Kernel.Override = node.Kernel.Override.GetReal()
|
||||
config.Nodes[nodeID].Kernel.Args = node.Kernel.Args.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Ipaddr = node.Ipmi.Ipaddr.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Netmask = node.Ipmi.Netmask.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Port = node.Ipmi.Port.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Gateway = node.Ipmi.Gateway.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.UserName = node.Ipmi.UserName.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Password = node.Ipmi.Password.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Interface = node.Ipmi.Interface.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Write = node.Ipmi.Write.GetB()
|
||||
config.Nodes[nodeID].RuntimeOverlay = node.RuntimeOverlay.GetRealSlice()
|
||||
config.Nodes[nodeID].SystemOverlay = node.SystemOverlay.GetRealSlice()
|
||||
config.Nodes[nodeID].Root = node.Root.GetReal()
|
||||
@@ -149,16 +149,16 @@ func (config *nodeYaml) ProfileUpdate(profile NodeInfo) error {
|
||||
config.NodeProfiles[profileID].Ipxe = profile.Ipxe.GetReal()
|
||||
config.NodeProfiles[profileID].Init = profile.Init.GetReal()
|
||||
config.NodeProfiles[profileID].ClusterName = profile.ClusterName.GetReal()
|
||||
config.NodeProfiles[profileID].KernelOverride = profile.KernelOverride.GetReal()
|
||||
config.NodeProfiles[profileID].KernelArgs = profile.KernelArgs.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiIpaddr = profile.IpmiIpaddr.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiNetmask = profile.IpmiNetmask.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiPort = profile.IpmiPort.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiGateway = profile.IpmiGateway.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiUserName = profile.IpmiUserName.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiPassword = profile.IpmiPassword.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiInterface = profile.IpmiInterface.GetReal()
|
||||
config.NodeProfiles[profileID].IpmiWrite = profile.IpmiInterface.GetB()
|
||||
config.NodeProfiles[profileID].Kernel.Override = profile.Kernel.Override.GetReal()
|
||||
config.NodeProfiles[profileID].Kernel.Args = profile.Kernel.Args.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Ipaddr = profile.Ipmi.Ipaddr.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Netmask = profile.Ipmi.Netmask.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Port = profile.Ipmi.Port.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Gateway = profile.Ipmi.Gateway.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.UserName = profile.Ipmi.UserName.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Password = profile.Ipmi.Password.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Interface = profile.Ipmi.Interface.GetReal()
|
||||
config.NodeProfiles[profileID].Ipmi.Write = profile.Ipmi.Interface.GetB()
|
||||
config.NodeProfiles[profileID].RuntimeOverlay = profile.RuntimeOverlay.GetRealSlice()
|
||||
config.NodeProfiles[profileID].SystemOverlay = profile.SystemOverlay.GetRealSlice()
|
||||
config.NodeProfiles[profileID].Root = profile.Root.GetReal()
|
||||
|
||||
@@ -7,18 +7,19 @@ import (
|
||||
)
|
||||
|
||||
type ControllerConf struct {
|
||||
Comment string `yaml:"comment,omitempty"`
|
||||
Ipaddr string `yaml:"ipaddr"`
|
||||
Ipaddr6 string `yaml:"ipaddr6,omitempty"`
|
||||
Netmask string `yaml:"netmask"`
|
||||
Network string `yaml:"network,omitempty"`
|
||||
Ipv6net string `yaml:"ipv6net,omitempty"`
|
||||
Fqdn string `yaml:"fqdn,omitempty"`
|
||||
Warewulf *WarewulfConf `yaml:"warewulf"`
|
||||
Dhcp *DhcpConf `yaml:"dhcp"`
|
||||
Tftp *TftpConf `yaml:"tftp"`
|
||||
Nfs *NfsConf `yaml:"nfs"`
|
||||
current bool
|
||||
WWInternal int `yaml:"WW_INTERNAL"`
|
||||
Comment string `yaml:"comment,omitempty"`
|
||||
Ipaddr string `yaml:"ipaddr"`
|
||||
Ipaddr6 string `yaml:"ipaddr6,omitempty"`
|
||||
Netmask string `yaml:"netmask"`
|
||||
Network string `yaml:"network,omitempty"`
|
||||
Ipv6net string `yaml:"ipv6net,omitempty"`
|
||||
Fqdn string `yaml:"fqdn,omitempty"`
|
||||
Warewulf *WarewulfConf `yaml:"warewulf"`
|
||||
Dhcp *DhcpConf `yaml:"dhcp"`
|
||||
Tftp *TftpConf `yaml:"tftp"`
|
||||
Nfs *NfsConf `yaml:"nfs"`
|
||||
current bool
|
||||
}
|
||||
|
||||
type WarewulfConf struct {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package warewulfconf
|
||||
|
||||
const defaultPort int = 9983
|
||||
import "github.com/hpcng/warewulf/internal/pkg/buildconfig"
|
||||
|
||||
var defaultDataStore string = "/var/lib/warewulf"
|
||||
const defaultPort int = 9983
|
||||
|
||||
func defaultConfig() *ControllerConf {
|
||||
Warewulf := &WarewulfConf{
|
||||
@@ -12,7 +12,7 @@ func defaultConfig() *ControllerConf {
|
||||
AutobuildOverlays: true,
|
||||
EnableHostOverlay: true,
|
||||
Syslog: false,
|
||||
DataStore: defaultDataStore,
|
||||
DataStore: buildconfig.LOCALSTATEDIR(),
|
||||
}
|
||||
Dhcp := &DhcpConf{
|
||||
Enabled: true,
|
||||
@@ -23,14 +23,15 @@ func defaultConfig() *ControllerConf {
|
||||
}
|
||||
Tftp := &TftpConf{
|
||||
Enabled: true,
|
||||
TftpRoot: "/var/lib/tftpboot",
|
||||
TftpRoot: buildconfig.TFTPDIR(),
|
||||
SystemdName: "tftp",
|
||||
}
|
||||
|
||||
return &ControllerConf{
|
||||
Warewulf: Warewulf,
|
||||
Dhcp: Dhcp,
|
||||
Tftp: Tftp,
|
||||
current: false,
|
||||
WWInternal: buildconfig.WWVer,
|
||||
Warewulf: Warewulf,
|
||||
Dhcp: Dhcp,
|
||||
Tftp: Tftp,
|
||||
current: false,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user