diff --git a/internal/pkg/node/datastructure.go b/internal/pkg/node/datastructure.go index 070dc0bd..768f5c82 100644 --- a/internal/pkg/node/datastructure.go +++ b/internal/pkg/node/datastructure.go @@ -22,16 +22,9 @@ type NodeConf struct { KernelVersion string `yaml:"kernel version,omitempty"` KernelOverride string `yaml:"kernel override,omitempty"` KernelArgs string `yaml:"kernel args,omitempty"` - IpmiUserName string `yaml:"ipmi username,omitempty"` - IpmiPassword string `yaml:"ipmi password,omitempty"` - IpmiIpaddr string `yaml:"ipmi ipaddr,omitempty"` - IpmiNetmask string `yaml:"ipmi netmask,omitempty"` - IpmiPort string `yaml:"ipmi port,omitempty"` - IpmiGateway string `yaml:"ipmi gateway,omitempty"` - IpmiInterface string `yaml:"ipmi interface,omitempty"` - IpmiWrite bool `yaml:"ipmi write,omitempty"` RuntimeOverlay []string `yaml:"runtime overlay,omitempty"` SystemOverlay []string `yaml:"system overlay,omitempty"` + Ipmi *IpmiConf `yaml:"ipmi,omitempty"` Init string `yaml:"init,omitempty"` Root string `yaml:"root,omitempty"` AssetKey string `yaml:"asset key,omitempty"` @@ -42,6 +35,17 @@ type NodeConf struct { Keys map[string]string `yaml:"keys,omitempty"` // Reverse compatibility } +type IpmiConf struct { + UserName string `yaml:"username,omitempty"` + Password string `yaml:"password,omitempty"` + Ipaddr string `yaml:"ipaddr,omitempty"` + Netmask string `yaml:"netmask,omitempty"` + Port string `yaml:"port,omitempty"` + Gateway string `yaml:"gateway,omitempty"` + Interface string `yaml:"interface,omitempty"` + Write bool `yaml:"write,omitempty"` +} + type NetDevs struct { Type string `yaml:"type,omitempty"` OnBoot string `yaml:"onboot,omitempty"` @@ -80,26 +84,30 @@ type NodeInfo struct { Ipxe Entry KernelOverride Entry KernelArgs Entry - IpmiIpaddr Entry - IpmiNetmask Entry - IpmiPort Entry - IpmiGateway Entry - IpmiUserName Entry - IpmiPassword Entry - IpmiInterface Entry - IpmiWrite Entry RuntimeOverlay Entry SystemOverlay Entry Root Entry Discoverable Entry Init Entry //TODO: Finish adding this... AssetKey Entry + Ipmi *IpmiEntry Profiles []string GroupProfiles []string NetDevs map[string]*NetDevEntry Tags map[string]*Entry } +type IpmiEntry struct { + Ipaddr Entry + Netmask Entry + Port Entry + Gateway Entry + UserName Entry + Password Entry + Interface Entry + Write Entry +} + type NetDevEntry struct { Type Entry OnBoot Entry