82 lines
1.7 KiB
Go
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())
|
|
}
|