Data format changes and updated API for NodesDB
This commit is contained in:
@@ -6,7 +6,7 @@ nodeprofiles:
|
|||||||
kernel args: crashkernel=no quiet
|
kernel args: crashkernel=no quiet
|
||||||
|
|
||||||
control:
|
control:
|
||||||
headnode01:
|
localhost:
|
||||||
comment: This is the first control system
|
comment: This is the first control system
|
||||||
ipaddr: 192.168.1.1
|
ipaddr: 192.168.1.1
|
||||||
services:
|
services:
|
||||||
|
|||||||
@@ -41,21 +41,21 @@ func (self *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
n.Id.Set(nodename)
|
n.Id.SetNode(nodename)
|
||||||
n.Gid.Set(groupname)
|
n.Gid.SetNode(groupname)
|
||||||
n.Cid.Set(controllername)
|
n.Cid.SetNode(controllername)
|
||||||
n.HostName.Set(node.Hostname)
|
n.HostName.SetNode(node.Hostname)
|
||||||
n.IpmiIpaddr.Set(node.IpmiIpaddr)
|
n.IpmiIpaddr.SetNode(node.IpmiIpaddr)
|
||||||
n.IpmiNetmask.Set(node.IpmiNetmask)
|
n.IpmiNetmask.SetNode(node.IpmiNetmask)
|
||||||
n.DomainName.Set(node.DomainName)
|
n.DomainName.SetNode(node.DomainName)
|
||||||
n.Vnfs.Set(node.Vnfs)
|
n.Vnfs.SetNode(node.Vnfs)
|
||||||
n.KernelVersion.Set(node.KernelVersion)
|
n.KernelVersion.SetNode(node.KernelVersion)
|
||||||
n.KernelArgs.Set(node.KernelArgs)
|
n.KernelArgs.SetNode(node.KernelArgs)
|
||||||
n.Ipxe.Set(node.Ipxe)
|
n.Ipxe.SetNode(node.Ipxe)
|
||||||
n.IpmiUserName.Set(node.IpmiUserName)
|
n.IpmiUserName.SetNode(node.IpmiUserName)
|
||||||
n.IpmiPassword.Set(node.IpmiPassword)
|
n.IpmiPassword.SetNode(node.IpmiPassword)
|
||||||
n.SystemOverlay.Set(node.SystemOverlay)
|
n.SystemOverlay.SetNode(node.SystemOverlay)
|
||||||
n.RuntimeOverlay.Set(node.RuntimeOverlay)
|
n.RuntimeOverlay.SetNode(node.RuntimeOverlay)
|
||||||
|
|
||||||
n.DomainName.SetGroup(group.DomainName)
|
n.DomainName.SetGroup(group.DomainName)
|
||||||
n.Vnfs.SetGroup(group.Vnfs)
|
n.Vnfs.SetGroup(group.Vnfs)
|
||||||
@@ -98,9 +98,9 @@ func (self *nodeYaml) FindAllNodes() ([]NodeInfo, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if n.DomainName.Defined() == true {
|
if n.DomainName.Defined() == true {
|
||||||
n.Fqdn.Set(node.Hostname + "." + n.DomainName.Get())
|
n.Fqdn.SetNode(node.Hostname + "." + n.DomainName.Get())
|
||||||
} else {
|
} else {
|
||||||
n.Fqdn.Set(node.Hostname)
|
n.Fqdn.SetNode(node.Hostname)
|
||||||
}
|
}
|
||||||
|
|
||||||
n.NetDevs = node.NetDevs
|
n.NetDevs = node.NetDevs
|
||||||
@@ -120,21 +120,39 @@ func (self *nodeYaml) FindAllGroups() ([]GroupInfo, error) {
|
|||||||
for groupname, group := range controller.NodeGroups {
|
for groupname, group := range controller.NodeGroups {
|
||||||
var g GroupInfo
|
var g GroupInfo
|
||||||
|
|
||||||
g.Id = groupname
|
g.Id.SetGroup(groupname)
|
||||||
g.Cid = controllername
|
g.Cid.SetGroup(controllername)
|
||||||
g.DomainName = group.DomainName
|
g.DomainName.SetGroup(group.DomainName)
|
||||||
g.Comment = group.Comment
|
g.Comment.SetGroup(group.Comment)
|
||||||
g.Vnfs = group.Vnfs
|
g.Vnfs.SetGroup(group.Vnfs)
|
||||||
g.KernelVersion = group.KernelVersion
|
g.KernelVersion.SetGroup(group.KernelVersion)
|
||||||
g.KernelArgs = group.KernelArgs
|
g.KernelArgs.SetGroup(group.KernelArgs)
|
||||||
g.IpmiNetmask = group.IpmiNetmask
|
g.IpmiNetmask.SetGroup(group.IpmiNetmask)
|
||||||
g.IpmiPassword = group.IpmiPassword
|
g.IpmiPassword.SetGroup(group.IpmiPassword)
|
||||||
g.IpmiUserName = group.IpmiUserName
|
g.IpmiUserName.SetGroup(group.IpmiUserName)
|
||||||
g.SystemOverlay = group.SystemOverlay
|
g.SystemOverlay.SetGroup(group.SystemOverlay)
|
||||||
g.RuntimeOverlay = group.RuntimeOverlay
|
g.RuntimeOverlay.SetGroup(group.RuntimeOverlay)
|
||||||
|
|
||||||
g.Profiles = group.Profiles
|
g.Profiles = group.Profiles
|
||||||
|
|
||||||
|
for _, p := range group.Profiles {
|
||||||
|
if _, ok := self.NodeProfiles[p]; !ok {
|
||||||
|
wwlog.Printf(wwlog.WARN, "Profile not found for group '%s': %s\n", groupname, p)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
g.DomainName.SetProfile(self.NodeProfiles[p].DomainName)
|
||||||
|
g.Vnfs.SetProfile(self.NodeProfiles[p].Vnfs)
|
||||||
|
g.KernelVersion.SetProfile(self.NodeProfiles[p].KernelVersion)
|
||||||
|
g.KernelArgs.SetProfile(self.NodeProfiles[p].KernelArgs)
|
||||||
|
g.Ipxe.SetProfile(self.NodeProfiles[p].Ipxe)
|
||||||
|
g.IpmiNetmask.SetProfile(self.NodeProfiles[p].IpmiNetmask)
|
||||||
|
g.IpmiUserName.SetProfile(self.NodeProfiles[p].IpmiUserName)
|
||||||
|
g.IpmiPassword.SetProfile(self.NodeProfiles[p].IpmiPassword)
|
||||||
|
g.SystemOverlay.SetProfile(self.NodeProfiles[p].SystemOverlay)
|
||||||
|
g.RuntimeOverlay.SetProfile(self.NodeProfiles[p].RuntimeOverlay)
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Validate or die on all inputs
|
// TODO: Validate or die on all inputs
|
||||||
|
|
||||||
ret = append(ret, g)
|
ret = append(ret, g)
|
||||||
|
|||||||
@@ -118,32 +118,32 @@ type NetDevs struct {
|
|||||||
* Code internal data representations
|
* Code internal data representations
|
||||||
******/
|
******/
|
||||||
|
|
||||||
type NodeInfoEntry struct {
|
type Entry struct {
|
||||||
value string
|
Node string
|
||||||
profile string
|
Profile string
|
||||||
group string
|
Group string
|
||||||
controller string
|
Controller string
|
||||||
def string
|
Default string
|
||||||
}
|
}
|
||||||
|
|
||||||
type NodeInfo struct {
|
type NodeInfo struct {
|
||||||
Id NodeInfoEntry
|
Id Entry
|
||||||
Gid NodeInfoEntry
|
Gid Entry
|
||||||
Cid NodeInfoEntry
|
Cid Entry
|
||||||
Comment NodeInfoEntry
|
Comment Entry
|
||||||
HostName NodeInfoEntry
|
HostName Entry
|
||||||
Fqdn NodeInfoEntry
|
Fqdn Entry
|
||||||
DomainName NodeInfoEntry
|
DomainName Entry
|
||||||
Vnfs NodeInfoEntry
|
Vnfs Entry
|
||||||
Ipxe NodeInfoEntry
|
Ipxe Entry
|
||||||
KernelVersion NodeInfoEntry
|
KernelVersion Entry
|
||||||
KernelArgs NodeInfoEntry
|
KernelArgs Entry
|
||||||
IpmiIpaddr NodeInfoEntry
|
IpmiIpaddr Entry
|
||||||
IpmiNetmask NodeInfoEntry
|
IpmiNetmask Entry
|
||||||
IpmiUserName NodeInfoEntry
|
IpmiUserName Entry
|
||||||
IpmiPassword NodeInfoEntry
|
IpmiPassword Entry
|
||||||
RuntimeOverlay NodeInfoEntry
|
RuntimeOverlay Entry
|
||||||
SystemOverlay NodeInfoEntry
|
SystemOverlay Entry
|
||||||
Profiles []string
|
Profiles []string
|
||||||
GroupProfiles []string
|
GroupProfiles []string
|
||||||
NetDevs map[string]*NetDevs
|
NetDevs map[string]*NetDevs
|
||||||
@@ -191,19 +191,19 @@ type ControllerInfo struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type GroupInfo struct {
|
type GroupInfo struct {
|
||||||
Id string
|
Id Entry
|
||||||
Cid string
|
Cid Entry
|
||||||
Comment string
|
Comment Entry
|
||||||
Vnfs string
|
Vnfs Entry
|
||||||
Ipxe string
|
Ipxe Entry
|
||||||
KernelVersion string
|
KernelVersion Entry
|
||||||
KernelArgs string
|
KernelArgs Entry
|
||||||
IpmiNetmask string
|
IpmiNetmask Entry
|
||||||
IpmiUserName string
|
IpmiUserName Entry
|
||||||
IpmiPassword string
|
IpmiPassword Entry
|
||||||
DomainName string
|
DomainName Entry
|
||||||
RuntimeOverlay string
|
RuntimeOverlay Entry
|
||||||
SystemOverlay string
|
SystemOverlay Entry
|
||||||
Profiles []string
|
Profiles []string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,64 +4,64 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (self *NodeInfoEntry) String() string {
|
func (self *Entry) Print() string {
|
||||||
if self.value != "" {
|
if self.Node != "" {
|
||||||
return self.value
|
return self.Node
|
||||||
}
|
}
|
||||||
if self.group != "" {
|
if self.Group != "" {
|
||||||
return self.group
|
return self.Group
|
||||||
}
|
}
|
||||||
if self.profile != "" {
|
if self.Profile != "" {
|
||||||
return self.profile
|
return self.Profile
|
||||||
}
|
}
|
||||||
if self.controller != "" {
|
if self.Controller != "" {
|
||||||
return self.controller
|
return self.Controller
|
||||||
}
|
}
|
||||||
if self.def != "" {
|
if self.Default != "" {
|
||||||
return self.def
|
return self.Default
|
||||||
}
|
}
|
||||||
return "--"
|
return "--"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *NodeInfoEntry) Source() string {
|
func (self *Entry) Source() string {
|
||||||
if self.value != "" {
|
if self.Node != "" {
|
||||||
return "node"
|
return "node"
|
||||||
}
|
}
|
||||||
if self.group != "" {
|
if self.Group != "" {
|
||||||
return "group"
|
return "group"
|
||||||
}
|
}
|
||||||
if self.profile != "" {
|
if self.Profile != "" {
|
||||||
return "profile"
|
return "profile"
|
||||||
}
|
}
|
||||||
if self.controller != "" {
|
if self.Controller != "" {
|
||||||
return "controller"
|
return "controller"
|
||||||
}
|
}
|
||||||
if self.def != "" {
|
if self.Default != "" {
|
||||||
return "default"
|
return "default"
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *NodeInfoEntry) Get() string {
|
func (self *Entry) Get() string {
|
||||||
if self.value != "" {
|
if self.Node != "" {
|
||||||
return self.value
|
return self.Node
|
||||||
}
|
}
|
||||||
if self.group != "" {
|
if self.Group != "" {
|
||||||
return self.group
|
return self.Group
|
||||||
}
|
}
|
||||||
if self.profile != "" {
|
if self.Profile != "" {
|
||||||
return self.profile
|
return self.Profile
|
||||||
}
|
}
|
||||||
if self.controller != "" {
|
if self.Controller != "" {
|
||||||
return self.controller
|
return self.Controller
|
||||||
}
|
}
|
||||||
if self.def != "" {
|
if self.Default != "" {
|
||||||
return self.def
|
return self.Default
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *NodeInfoEntry) Defined() bool {
|
func (self *Entry) Defined() bool {
|
||||||
if self.Get() == "" {
|
if self.Get() == "" {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@@ -69,47 +69,67 @@ func (self *NodeInfoEntry) Defined() bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *NodeInfoEntry) SetDefault(value string) {
|
func (self *Entry) SetDefault(value string) {
|
||||||
if value == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
self.def = value
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *NodeInfoEntry) SetGroup(value string) {
|
|
||||||
if value == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
self.group = value
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *NodeInfoEntry) SetProfile(value string) {
|
|
||||||
if value == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
self.profile = value
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *NodeInfoEntry) SetController(value string) {
|
|
||||||
if value == "" {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
self.controller = value
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *NodeInfoEntry) Set(value string) {
|
|
||||||
if value == "" {
|
if value == "" {
|
||||||
return
|
return
|
||||||
} else if strings.ToUpper(value) == "UNDEF" {
|
} else if strings.ToUpper(value) == "UNDEF" {
|
||||||
value = ""
|
value = ""
|
||||||
}
|
}
|
||||||
self.value = value
|
self.Default = value
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *NodeInfoEntry) Unset() {
|
func (self *Entry) SetGroup(value string) {
|
||||||
self.value = ""
|
if value == "" {
|
||||||
|
return
|
||||||
|
} else if strings.ToUpper(value) == "UNDEF" {
|
||||||
|
value = ""
|
||||||
|
}
|
||||||
|
self.Group = value
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *NodeInfoEntry) GetReal() string {
|
func (self *Entry) SetProfile(value string) {
|
||||||
return self.value
|
if value == "" {
|
||||||
}
|
return
|
||||||
|
} else if strings.ToUpper(value) == "UNDEF" {
|
||||||
|
value = ""
|
||||||
|
}
|
||||||
|
self.Profile = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) SetController(value string) {
|
||||||
|
if value == "" {
|
||||||
|
return
|
||||||
|
} else if strings.ToUpper(value) == "UNDEF" {
|
||||||
|
value = ""
|
||||||
|
}
|
||||||
|
self.Controller = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) SetNode(value string) {
|
||||||
|
if value == "" {
|
||||||
|
return
|
||||||
|
} else if strings.ToUpper(value) == "UNDEF" {
|
||||||
|
value = ""
|
||||||
|
}
|
||||||
|
self.Node = value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) GetNode() string {
|
||||||
|
return self.Node
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) GetGroup() string {
|
||||||
|
return self.Group
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) GetController() string {
|
||||||
|
return self.Controller
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) GetProfile() string {
|
||||||
|
return self.Profile
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *Entry) GetDefault() string {
|
||||||
|
return self.Default
|
||||||
|
}
|
||||||
|
|||||||
@@ -3,11 +3,19 @@ package node
|
|||||||
import (
|
import (
|
||||||
"github.com/hpcng/warewulf/internal/pkg/errors"
|
"github.com/hpcng/warewulf/internal/pkg/errors"
|
||||||
"github.com/hpcng/warewulf/internal/pkg/wwlog"
|
"github.com/hpcng/warewulf/internal/pkg/wwlog"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func get2Set(input string) string {
|
||||||
|
if strings.ToUpper(input) == "UNDEF" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return input
|
||||||
|
}
|
||||||
|
|
||||||
/****
|
/****
|
||||||
*
|
*
|
||||||
* NODE MODIFIERS
|
* NODE MODIFIERS
|
||||||
@@ -74,18 +82,18 @@ func (self *nodeYaml) NodeUpdate(node NodeInfo) error {
|
|||||||
return errors.New("Nodename does not exist in group: " + nodeID)
|
return errors.New("Nodename does not exist in group: " + nodeID)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Hostname = node.HostName.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Hostname = get2Set(node.HostName.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Vnfs = node.Vnfs.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Vnfs = get2Set(node.Vnfs.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].DomainName = node.DomainName.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].DomainName = get2Set(node.DomainName.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Ipxe = node.Ipxe.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Ipxe = get2Set(node.Ipxe.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].KernelVersion = node.KernelVersion.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].KernelVersion = get2Set(node.KernelVersion.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].KernelArgs = node.KernelArgs.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].KernelArgs = get2Set(node.KernelArgs.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiIpaddr = node.IpmiIpaddr.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiIpaddr = get2Set(node.IpmiIpaddr.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiNetmask = node.IpmiNetmask.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiNetmask = get2Set(node.IpmiNetmask.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiUserName = node.IpmiUserName.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiUserName = get2Set(node.IpmiUserName.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiPassword = node.IpmiPassword.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].IpmiPassword = get2Set(node.IpmiPassword.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].RuntimeOverlay = node.RuntimeOverlay.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].RuntimeOverlay = get2Set(node.RuntimeOverlay.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].SystemOverlay = node.SystemOverlay.GetReal()
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].SystemOverlay = get2Set(node.SystemOverlay.GetNode())
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Profiles = node.Profiles
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].Profiles = node.Profiles
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].NetDevs = node.NetDevs
|
self.Controllers[controllerID].NodeGroups[groupID].Nodes[nodeID].NetDevs = node.NetDevs
|
||||||
|
|
||||||
@@ -135,8 +143,8 @@ func (self *nodeYaml) DelGroup(controllerID string, groupID string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *nodeYaml) GroupUpdate(group GroupInfo) error {
|
func (self *nodeYaml) GroupUpdate(group GroupInfo) error {
|
||||||
controllerID := group.Cid
|
controllerID := group.Cid.Get()
|
||||||
groupID := group.Id
|
groupID := group.Id.Get()
|
||||||
|
|
||||||
if _, ok := self.Controllers[controllerID]; !ok {
|
if _, ok := self.Controllers[controllerID]; !ok {
|
||||||
return errors.New("Controller does not exist: " + controllerID)
|
return errors.New("Controller does not exist: " + controllerID)
|
||||||
@@ -146,16 +154,16 @@ func (self *nodeYaml) GroupUpdate(group GroupInfo) error {
|
|||||||
return errors.New("Group does not exist: " + groupID)
|
return errors.New("Group does not exist: " + groupID)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].DomainName = group.DomainName
|
self.Controllers[controllerID].NodeGroups[groupID].DomainName = group.DomainName.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Vnfs = group.Vnfs
|
self.Controllers[controllerID].NodeGroups[groupID].Vnfs = group.Vnfs.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].KernelVersion = group.KernelVersion
|
self.Controllers[controllerID].NodeGroups[groupID].KernelVersion = group.KernelVersion.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].KernelArgs = group.KernelArgs
|
self.Controllers[controllerID].NodeGroups[groupID].KernelArgs = group.KernelArgs.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Ipxe = group.Ipxe
|
self.Controllers[controllerID].NodeGroups[groupID].Ipxe = group.Ipxe.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].IpmiNetmask = group.IpmiNetmask
|
self.Controllers[controllerID].NodeGroups[groupID].IpmiNetmask = group.IpmiNetmask.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].IpmiUserName = group.IpmiUserName
|
self.Controllers[controllerID].NodeGroups[groupID].IpmiUserName = group.IpmiUserName.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].IpmiPassword = group.IpmiPassword
|
self.Controllers[controllerID].NodeGroups[groupID].IpmiPassword = group.IpmiPassword.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].RuntimeOverlay = group.RuntimeOverlay
|
self.Controllers[controllerID].NodeGroups[groupID].RuntimeOverlay = group.RuntimeOverlay.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].SystemOverlay = group.SystemOverlay
|
self.Controllers[controllerID].NodeGroups[groupID].SystemOverlay = group.SystemOverlay.Get()
|
||||||
self.Controllers[controllerID].NodeGroups[groupID].Profiles = group.Profiles
|
self.Controllers[controllerID].NodeGroups[groupID].Profiles = group.Profiles
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -207,31 +215,31 @@ func (self *nodeYaml) ControllerUpdate(controller ControllerInfo) error {
|
|||||||
self.Controllers[controllerID].Comment = controller.Comment
|
self.Controllers[controllerID].Comment = controller.Comment
|
||||||
self.Controllers[controllerID].Fqdn = controller.Fqdn
|
self.Controllers[controllerID].Fqdn = controller.Fqdn
|
||||||
|
|
||||||
self.Controllers[controllerID].Services.Warewulfd.Port = controller.Services.Warewulfd.Port
|
self.Controllers[controllerID].Services.Warewulfd.Port = get2Set(controller.Services.Warewulfd.Port)
|
||||||
self.Controllers[controllerID].Services.Warewulfd.Secure = controller.Services.Warewulfd.Secure
|
self.Controllers[controllerID].Services.Warewulfd.Secure = controller.Services.Warewulfd.Secure
|
||||||
self.Controllers[controllerID].Services.Warewulfd.StartCmd = controller.Services.Warewulfd.StartCmd
|
self.Controllers[controllerID].Services.Warewulfd.StartCmd = get2Set(controller.Services.Warewulfd.StartCmd)
|
||||||
self.Controllers[controllerID].Services.Warewulfd.RestartCmd = controller.Services.Warewulfd.RestartCmd
|
self.Controllers[controllerID].Services.Warewulfd.RestartCmd = get2Set(controller.Services.Warewulfd.RestartCmd)
|
||||||
self.Controllers[controllerID].Services.Warewulfd.EnableCmd = controller.Services.Warewulfd.EnableCmd
|
self.Controllers[controllerID].Services.Warewulfd.EnableCmd = get2Set(controller.Services.Warewulfd.EnableCmd)
|
||||||
|
|
||||||
self.Controllers[controllerID].Services.Dhcp.Enabled = controller.Services.Dhcp.Enabled
|
self.Controllers[controllerID].Services.Dhcp.Enabled = controller.Services.Dhcp.Enabled
|
||||||
self.Controllers[controllerID].Services.Dhcp.ConfigFile = controller.Services.Dhcp.ConfigFile
|
self.Controllers[controllerID].Services.Dhcp.ConfigFile = get2Set(controller.Services.Dhcp.ConfigFile)
|
||||||
self.Controllers[controllerID].Services.Dhcp.RangeStart = controller.Services.Dhcp.RangeStart
|
self.Controllers[controllerID].Services.Dhcp.RangeStart = get2Set(controller.Services.Dhcp.RangeStart)
|
||||||
self.Controllers[controllerID].Services.Dhcp.RangeEnd = controller.Services.Dhcp.RangeEnd
|
self.Controllers[controllerID].Services.Dhcp.RangeEnd = get2Set(controller.Services.Dhcp.RangeEnd)
|
||||||
self.Controllers[controllerID].Services.Dhcp.StartCmd = controller.Services.Dhcp.StartCmd
|
self.Controllers[controllerID].Services.Dhcp.StartCmd = get2Set(controller.Services.Dhcp.StartCmd)
|
||||||
self.Controllers[controllerID].Services.Dhcp.RestartCmd = controller.Services.Dhcp.RestartCmd
|
self.Controllers[controllerID].Services.Dhcp.RestartCmd = get2Set(controller.Services.Dhcp.RestartCmd)
|
||||||
self.Controllers[controllerID].Services.Dhcp.EnableCmd = controller.Services.Dhcp.EnableCmd
|
self.Controllers[controllerID].Services.Dhcp.EnableCmd = get2Set(controller.Services.Dhcp.EnableCmd)
|
||||||
|
|
||||||
self.Controllers[controllerID].Services.Nfs.Enabled = controller.Services.Nfs.Enabled
|
self.Controllers[controllerID].Services.Nfs.Enabled = controller.Services.Nfs.Enabled
|
||||||
self.Controllers[controllerID].Services.Nfs.Exports = controller.Services.Nfs.Exports
|
self.Controllers[controllerID].Services.Nfs.Exports = controller.Services.Nfs.Exports
|
||||||
self.Controllers[controllerID].Services.Nfs.StartCmd = controller.Services.Nfs.StartCmd
|
self.Controllers[controllerID].Services.Nfs.StartCmd = get2Set(controller.Services.Nfs.StartCmd)
|
||||||
self.Controllers[controllerID].Services.Nfs.RestartCmd = controller.Services.Nfs.RestartCmd
|
self.Controllers[controllerID].Services.Nfs.RestartCmd = get2Set(controller.Services.Nfs.RestartCmd)
|
||||||
self.Controllers[controllerID].Services.Nfs.EnableCmd = controller.Services.Nfs.EnableCmd
|
self.Controllers[controllerID].Services.Nfs.EnableCmd = get2Set(controller.Services.Nfs.EnableCmd)
|
||||||
|
|
||||||
self.Controllers[controllerID].Services.Tftp.Enabled = controller.Services.Tftp.Enabled
|
self.Controllers[controllerID].Services.Tftp.Enabled = controller.Services.Tftp.Enabled
|
||||||
self.Controllers[controllerID].Services.Tftp.TftpRoot = controller.Services.Tftp.TftpRoot
|
self.Controllers[controllerID].Services.Tftp.TftpRoot = get2Set(controller.Services.Tftp.TftpRoot)
|
||||||
self.Controllers[controllerID].Services.Tftp.StartCmd = controller.Services.Tftp.StartCmd
|
self.Controllers[controllerID].Services.Tftp.StartCmd = get2Set(controller.Services.Tftp.StartCmd)
|
||||||
self.Controllers[controllerID].Services.Tftp.RestartCmd = controller.Services.Tftp.RestartCmd
|
self.Controllers[controllerID].Services.Tftp.RestartCmd = get2Set(controller.Services.Tftp.RestartCmd)
|
||||||
self.Controllers[controllerID].Services.Tftp.EnableCmd = controller.Services.Tftp.EnableCmd
|
self.Controllers[controllerID].Services.Tftp.EnableCmd = get2Set(controller.Services.Tftp.EnableCmd)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -274,15 +282,15 @@ func (self *nodeYaml) ProfileUpdate(profile ProfileInfo) error {
|
|||||||
return errors.New("Group '" + profileID + "' was not found")
|
return errors.New("Group '" + profileID + "' was not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
self.NodeProfiles[profileID].DomainName = profile.DomainName
|
self.NodeProfiles[profileID].DomainName = get2Set(profile.DomainName)
|
||||||
self.NodeProfiles[profileID].Vnfs = profile.Vnfs
|
self.NodeProfiles[profileID].Vnfs = get2Set(profile.Vnfs)
|
||||||
self.NodeProfiles[profileID].Ipxe = profile.Ipxe
|
self.NodeProfiles[profileID].Ipxe = get2Set(profile.Ipxe)
|
||||||
self.NodeProfiles[profileID].KernelVersion = profile.KernelVersion
|
self.NodeProfiles[profileID].KernelVersion = get2Set(profile.KernelVersion)
|
||||||
self.NodeProfiles[profileID].IpmiNetmask = profile.IpmiNetmask
|
self.NodeProfiles[profileID].IpmiNetmask = get2Set(profile.IpmiNetmask)
|
||||||
self.NodeProfiles[profileID].IpmiUserName = profile.IpmiUserName
|
self.NodeProfiles[profileID].IpmiUserName = get2Set(profile.IpmiUserName)
|
||||||
self.NodeProfiles[profileID].IpmiPassword = profile.IpmiPassword
|
self.NodeProfiles[profileID].IpmiPassword = get2Set(profile.IpmiPassword)
|
||||||
self.NodeProfiles[profileID].RuntimeOverlay = profile.RuntimeOverlay
|
self.NodeProfiles[profileID].RuntimeOverlay = get2Set(profile.RuntimeOverlay)
|
||||||
self.NodeProfiles[profileID].SystemOverlay = profile.SystemOverlay
|
self.NodeProfiles[profileID].SystemOverlay = get2Set(profile.SystemOverlay)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user