Files
warewulf/internal/pkg/node/node_test.go
Jonathon Anderson 9058682b18 Add tests for disk data and ignition json
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
2023-08-22 14:28:02 -06:00

82 lines
1.7 KiB
Go

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)
}
func TestNodeDisk(t *testing.T) {
node_config := `WW_INTERNAL: 43
nodes:
n1:
disks:
/dev/vda:
wipe_table: "true"
partitions:
scratch:
should_exist: "true"
filesystems:
/dev/disk/by-partlabel/scratch:
format: btrfs
path: /scratch
wipe_filesystem: "true"`
config, parse_error := Parse([]byte(node_config))
assert.Empty(t, parse_error)
nodeInfos, info_error := config.FindAllNodes()
assert.Empty(t, info_error)
assert.Len(t, nodeInfos, 1)
node := nodeInfos[0]
assert.Len(t, node.Disks, 1)
assert.Len(t, node.FileSystems, 1)
disk := node.Disks["/dev/vda"]
assert.True(t, disk.WipeTable.GetB())
assert.Len(t, disk.Partitions, 1)
partition := disk.Partitions["scratch"]
assert.True(t, partition.ShouldExist.GetB())
filesystem := node.FileSystems["/dev/disk/by-partlabel/scratch"]
assert.Equal(t, "btrfs", filesystem.Format.Get())
assert.Equal(t, "/scratch", filesystem.Path.Get())
assert.True(t, filesystem.WipeFileSystem.GetB())
}