unit test + nil check pointers
This commit is contained in:
@@ -61,14 +61,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()
|
||||
if node.Kernel.Override.GotReal() || node.Kernel.Args.GotReal() {
|
||||
|
||||
if node.Kernel != nil && (node.Kernel.Override.GotReal() || node.Kernel.Args.GotReal()) {
|
||||
config.Nodes[nodeID].Kernel = new(KernelConf)
|
||||
config.Nodes[nodeID].Kernel.Override = node.Kernel.Override.GetReal()
|
||||
config.Nodes[nodeID].Kernel.Args = node.Kernel.Args.GetReal()
|
||||
}
|
||||
if node.Ipmi.Ipaddr.GotReal() || node.Ipmi.Netmask.GotReal() ||
|
||||
|
||||
if node.Ipmi != nil && (node.Ipmi.Ipaddr.GotReal() || node.Ipmi.Netmask.GotReal() ||
|
||||
node.Ipmi.Port.GotReal() || node.Ipmi.Gateway.GotReal() || node.Ipmi.UserName.GotReal() ||
|
||||
node.Ipmi.Password.GotReal() || node.Ipmi.Interface.GotReal() || node.Ipmi.Write.GotReal() {
|
||||
node.Ipmi.Password.GotReal() || node.Ipmi.Interface.GotReal() || node.Ipmi.Write.GotReal()) {
|
||||
config.Nodes[nodeID].Ipmi = new(IpmiConf)
|
||||
config.Nodes[nodeID].Ipmi.Ipaddr = node.Ipmi.Ipaddr.GetReal()
|
||||
config.Nodes[nodeID].Ipmi.Netmask = node.Ipmi.Netmask.GetReal()
|
||||
|
||||
40
internal/pkg/node/node_test.go
Normal file
40
internal/pkg/node/node_test.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package node
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"gopkg.in/yaml.v2"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestNodeUpdate(t *testing.T) {
|
||||
var nodeConfig = `
|
||||
WW_INTERNAL: 43
|
||||
nodeprofiles:
|
||||
default:
|
||||
comment: This profile is automatically included for each node
|
||||
nodes:
|
||||
n0000:
|
||||
discoverable: true
|
||||
profiles:
|
||||
- default
|
||||
network devices:
|
||||
default:
|
||||
onboot: true
|
||||
device: eth0
|
||||
hwaddr: 08:00:27:39:46:70
|
||||
ipaddr: 10.0.8.150
|
||||
`
|
||||
var nodeYaml nodeYaml
|
||||
err := yaml.Unmarshal([]byte(nodeConfig), &nodeYaml)
|
||||
assert.NoError(t, err)
|
||||
|
||||
err = nodeYaml.NodeUpdate(
|
||||
NodeInfo{
|
||||
Id: Entry {
|
||||
value: []string{"n0000"},
|
||||
},
|
||||
},
|
||||
)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
Reference in New Issue
Block a user