diff --git a/internal/pkg/node/constructors.go b/internal/pkg/node/constructors.go index a0416b86..9b143f94 100644 --- a/internal/pkg/node/constructors.go +++ b/internal/pkg/node/constructors.go @@ -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 diff --git a/internal/pkg/node/datastructure.go b/internal/pkg/node/datastructure.go index cf9d5a04..7e23a72e 100644 --- a/internal/pkg/node/datastructure.go +++ b/internal/pkg/node/datastructure.go @@ -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 } diff --git a/internal/pkg/node/methods.go b/internal/pkg/node/methods.go index 39b8d8d5..7cbce368 100644 --- a/internal/pkg/node/methods.go +++ b/internal/pkg/node/methods.go @@ -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 { diff --git a/internal/pkg/node/modifiers.go b/internal/pkg/node/modifiers.go index 3a07df51..870e69a1 100644 --- a/internal/pkg/node/modifiers.go +++ b/internal/pkg/node/modifiers.go @@ -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 }