Benchmarking for wwctl overlay build
- Benchmarks overlay build in an environment with 1000 nodes - Updates testenv to support both benchmarks and tests To execute: ``` go test github.com/warewulf/warewulf/internal/app/wwctl/overlay/build -bench Benchmark_Overlay_Build ``` Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
@@ -9,14 +9,14 @@ import (
|
|||||||
|
|
||||||
func Test_Clean(t *testing.T) {
|
func Test_Clean(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf",
|
env.WriteFile("etc/warewulf/nodes.conf",
|
||||||
`nodeprofiles: {}
|
`nodeprofiles: {}
|
||||||
nodes:
|
nodes:
|
||||||
node1: {}
|
node1: {}
|
||||||
`)
|
`)
|
||||||
env.WriteFile(t, "srv/warewulf/overlays/node1/__SYSTEM__.img", "Fake System")
|
env.WriteFile("srv/warewulf/overlays/node1/__SYSTEM__.img", "Fake System")
|
||||||
env.WriteFile(t, "srv/warewulf/overlays/node2/__SYSTEM__.img", "Fake System")
|
env.WriteFile("srv/warewulf/overlays/node2/__SYSTEM__.img", "Fake System")
|
||||||
env.WriteFile(t, "var/cache/warewulf/test", "Nothing to see here")
|
env.WriteFile("var/cache/warewulf/test", "Nothing to see here")
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
err := baseCmd.Execute()
|
err := baseCmd.Execute()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import (
|
|||||||
|
|
||||||
func Test_Copy(t *testing.T) {
|
func Test_Copy(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, path.Join(testenv.WWChrootdir, "test-container/rootfs/bin/sh"), `test`)
|
env.WriteFile(path.Join(testenv.WWChrootdir, "test-container/rootfs/bin/sh"), `test`)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
|
|
||||||
t.Run("container copy without build", func(t *testing.T) {
|
t.Run("container copy without build", func(t *testing.T) {
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ func mockChildCmd(cmd *cobra.Command, args []string) error {
|
|||||||
|
|
||||||
func Test_Exec(t *testing.T) {
|
func Test_Exec(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.MkdirAll(t, "/var/lib/warewulf/chroots/test/rootfs")
|
env.MkdirAll("/var/lib/warewulf/chroots/test/rootfs")
|
||||||
childCommandFunc = mockChildCmd
|
childCommandFunc = mockChildCmd
|
||||||
defer func() {
|
defer func() {
|
||||||
childCommandFunc = runChildCmd
|
childCommandFunc = runChildCmd
|
||||||
|
|||||||
@@ -85,11 +85,11 @@ container2 /boot/vmlinuz-5.14.0-427.31.1.el9_4.aarch64+debug 5.14.0-427.
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
for container, files := range tt.files {
|
for container, files := range tt.files {
|
||||||
rootfs := filepath.Join(filepath.Join("/var/lib/warewulf/chroots", container), "rootfs")
|
rootfs := filepath.Join(filepath.Join("/var/lib/warewulf/chroots", container), "rootfs")
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
env.CreateFile(t, filepath.Join(rootfs, file))
|
env.CreateFile(filepath.Join(rootfs, file))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
|
|||||||
@@ -56,8 +56,8 @@ nodes:
|
|||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb)
|
env.WriteFile("etc/warewulf/nodes.conf", tt.inDb)
|
||||||
|
|
||||||
t.Logf("Running test: %s\n", tt.name)
|
t.Logf("Running test: %s\n", tt.name)
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ import (
|
|||||||
|
|
||||||
func Test_Rename(t *testing.T) {
|
func Test_Rename(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, path.Join(testenv.WWChrootdir, "test-container/rootfs/file"), `test`)
|
env.WriteFile(path.Join(testenv.WWChrootdir, "test-container/rootfs/file"), `test`)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
|
|
||||||
// first we will verify that there is an existing container
|
// first we will verify that there is an existing container
|
||||||
|
|||||||
@@ -281,7 +281,7 @@ nodes:
|
|||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", ``)
|
env.WriteFile("etc/warewulf/nodes.conf", ``)
|
||||||
var err error
|
var err error
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
|
|||||||
@@ -395,11 +395,11 @@ NODE FIELD PROFILE VALUE
|
|||||||
|
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb)
|
env.WriteFile("etc/warewulf/nodes.conf", tt.inDb)
|
||||||
|
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
baseCmd.SetArgs(tt.args)
|
baseCmd.SetArgs(tt.args)
|
||||||
@@ -632,7 +632,7 @@ nodes:
|
|||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb)
|
env.WriteFile("etc/warewulf/nodes.conf", tt.inDb)
|
||||||
var err error
|
var err error
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_Sensors(t *testing.T) {
|
func Test_Sensors(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ type test_description struct {
|
|||||||
|
|
||||||
func run_test(t *testing.T, test test_description) {
|
func run_test(t *testing.T, test test_description) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", test.inDB)
|
env.WriteFile("etc/warewulf/nodes.conf", test.inDB)
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
name := test.name
|
name := test.name
|
||||||
if name == "" {
|
if name == "" {
|
||||||
@@ -40,7 +40,7 @@ func run_test(t *testing.T, test test_description) {
|
|||||||
} else {
|
} else {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, buf.String(), test.stdout)
|
assert.Equal(t, buf.String(), test.stdout)
|
||||||
content := env.ReadFile(t, "etc/warewulf/nodes.conf")
|
content := env.ReadFile("etc/warewulf/nodes.conf")
|
||||||
assert.YAMLEq(t, test.outDb, content)
|
assert.YAMLEq(t, test.outDb, content)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
3066
internal/app/wwctl/overlay/build/main_test.go
Normal file
3066
internal/app/wwctl/overlay/build/main_test.go
Normal file
File diff suppressed because it is too large
Load Diff
@@ -13,10 +13,10 @@ import (
|
|||||||
|
|
||||||
func Test_Overlay_List(t *testing.T) {
|
func Test_Overlay_List(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "var/lib/warewulf/overlays/testoverlay/email.ww", `
|
env.WriteFile("var/lib/warewulf/overlays/testoverlay/email.ww", `
|
||||||
{{ if .Tags.email }}eMail: {{ .Tags.email }}{{else}} noMail{{- end }}
|
{{ if .Tags.email }}eMail: {{ .Tags.email }}{{else}} noMail{{- end }}
|
||||||
`)
|
`)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
t.Run("overlay list", func(t *testing.T) {
|
t.Run("overlay list", func(t *testing.T) {
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
|
|||||||
@@ -23,7 +23,9 @@ overlay name {{ .Overlay }}
|
|||||||
|
|
||||||
func Test_Overlay_List(t *testing.T) {
|
func Test_Overlay_List(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/warewulf.conf", `ipaddr: 192.168.0.1/24
|
defer env.RemoveAll()
|
||||||
|
|
||||||
|
env.WriteFile("etc/warewulf/warewulf.conf", `ipaddr: 192.168.0.1/24
|
||||||
netmask: 255.255.255.0
|
netmask: 255.255.255.0
|
||||||
network: 192.168.0.0
|
network: 192.168.0.0
|
||||||
warewulf:
|
warewulf:
|
||||||
@@ -51,7 +53,7 @@ nfs:
|
|||||||
mount options: defaults
|
mount options: defaults
|
||||||
mount: false`)
|
mount: false`)
|
||||||
|
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf",
|
env.WriteFile("etc/warewulf/nodes.conf",
|
||||||
`nodeprofiles:
|
`nodeprofiles:
|
||||||
default:
|
default:
|
||||||
tags:
|
tags:
|
||||||
@@ -69,11 +71,11 @@ nodes:
|
|||||||
- empty
|
- empty
|
||||||
`)
|
`)
|
||||||
|
|
||||||
env.WriteFile(t, "usr/share/warewulf/overlays/testoverlay/email.ww", overlayEmail)
|
env.WriteFile("usr/share/warewulf/overlays/testoverlay/email.ww", overlayEmail)
|
||||||
env.WriteFile(t, "usr/share/warewulf/overlays/testoverlay/overlay.ww", overlayOverlay)
|
env.WriteFile("usr/share/warewulf/overlays/testoverlay/overlay.ww", overlayOverlay)
|
||||||
env.WriteFile(t, "usr/share/warewulf/overlays/dist/foo.ww", "foo")
|
env.WriteFile("usr/share/warewulf/overlays/dist/foo.ww", "foo")
|
||||||
env.WriteFile(t, "var/lib/warewulf/overlays/dist/foo.ww", "foobaar")
|
env.WriteFile("var/lib/warewulf/overlays/dist/foo.ww", "foobaar")
|
||||||
defer env.RemoveAll(t)
|
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
t.Run("overlay show raw", func(t *testing.T) {
|
t.Run("overlay show raw", func(t *testing.T) {
|
||||||
baseCmd.SetArgs([]string{"testoverlay", "email.ww"})
|
baseCmd.SetArgs([]string{"testoverlay", "email.ww"})
|
||||||
@@ -151,7 +153,7 @@ func TestShowServerTemplate(t *testing.T) {
|
|||||||
`
|
`
|
||||||
|
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf",
|
env.WriteFile("etc/warewulf/nodes.conf",
|
||||||
`nodeprofiles:
|
`nodeprofiles:
|
||||||
default:
|
default:
|
||||||
tags:
|
tags:
|
||||||
@@ -167,8 +169,8 @@ nodes:
|
|||||||
- empty
|
- empty
|
||||||
`)
|
`)
|
||||||
|
|
||||||
env.WriteFile(t, path.Join(testenv.WWOverlaydir, "testoverlay/template.ww"), template)
|
env.WriteFile(path.Join(testenv.WWOverlaydir, "testoverlay/template.ww"), template)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
|
|
||||||
host, err := os.Hostname()
|
host, err := os.Hostname()
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_PowerCycle(t *testing.T) {
|
func Test_PowerCycle(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_Power_Status(t *testing.T) {
|
func Test_Power_Status(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_Power_Status(t *testing.T) {
|
func Test_Power_Status(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_Power_Status(t *testing.T) {
|
func Test_Power_Status(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_Power_Status(t *testing.T) {
|
func Test_Power_Status(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import (
|
|||||||
func Test_Power_Status(t *testing.T) {
|
func Test_Power_Status(t *testing.T) {
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodeprofiles:
|
nodeprofiles:
|
||||||
default:
|
default:
|
||||||
ipmi:
|
ipmi:
|
||||||
@@ -28,7 +28,7 @@ nodes:
|
|||||||
- default
|
- default
|
||||||
ipmi:
|
ipmi:
|
||||||
ipaddr: 10.10.10.10`)
|
ipaddr: 10.10.10.10`)
|
||||||
env.ImportFile(t, "usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
env.ImportFile("usr/share/warewulf/bmc/ipmitool.tmpl", "../../../../../lib/warewulf/bmc/ipmitool.tmpl")
|
||||||
|
|
||||||
tests := map[string]struct {
|
tests := map[string]struct {
|
||||||
args []string
|
args []string
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ nodes: {}
|
|||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", ``)
|
env.WriteFile("etc/warewulf/nodes.conf", ``)
|
||||||
var err error
|
var err error
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
|
|||||||
@@ -97,11 +97,11 @@ nodes:
|
|||||||
|
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb)
|
env.WriteFile("etc/warewulf/nodes.conf", tt.inDb)
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
baseCmd.SetArgs(tt.args)
|
baseCmd.SetArgs(tt.args)
|
||||||
stdoutR, stdoutW, _ := os.Pipe()
|
stdoutR, stdoutW, _ := os.Pipe()
|
||||||
@@ -256,10 +256,10 @@ nodes:
|
|||||||
|
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", tt.inDb)
|
env.WriteFile("etc/warewulf/nodes.conf", tt.inDb)
|
||||||
|
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
baseCmd := GetCommand()
|
baseCmd := GetCommand()
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ type test_description struct {
|
|||||||
|
|
||||||
func run_test(t *testing.T, test test_description) {
|
func run_test(t *testing.T, test test_description) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", test.inDB)
|
env.WriteFile("etc/warewulf/nodes.conf", test.inDB)
|
||||||
warewulfd.SetNoDaemon()
|
warewulfd.SetNoDaemon()
|
||||||
name := test.name
|
name := test.name
|
||||||
if name == "" {
|
if name == "" {
|
||||||
@@ -41,7 +41,7 @@ func run_test(t *testing.T, test test_description) {
|
|||||||
} else {
|
} else {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, buf.String(), test.stdout)
|
assert.Equal(t, buf.String(), test.stdout)
|
||||||
content := env.ReadFile(t, "etc/warewulf/nodes.conf")
|
content := env.ReadFile("etc/warewulf/nodes.conf")
|
||||||
assert.YAMLEq(t, test.outDb, content)
|
assert.YAMLEq(t, test.outDb, content)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -32,14 +32,14 @@ func Test_ImportContainerDir(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
src := "/tmp/testcontainer"
|
src := "/tmp/testcontainer"
|
||||||
env.CreateFile(t, filepath.Join(src, "/bin/sh"))
|
env.CreateFile(filepath.Join(src, "/bin/sh"))
|
||||||
for _, file := range tt.files {
|
for _, file := range tt.files {
|
||||||
env.CreateFile(t, filepath.Join(src, file))
|
env.CreateFile(filepath.Join(src, file))
|
||||||
}
|
}
|
||||||
for _, socket := range tt.sockets {
|
for _, socket := range tt.sockets {
|
||||||
env.MkdirAll(t, filepath.Dir(filepath.Join(src, socket)))
|
env.MkdirAll(filepath.Dir(filepath.Join(src, socket)))
|
||||||
assert.NoError(t, unix.Mknod(env.GetPath(filepath.Join(src, socket)), unix.S_IFSOCK|0777, 0))
|
assert.NoError(t, unix.Mknod(env.GetPath(filepath.Join(src, socket)), unix.S_IFSOCK|0777, 0))
|
||||||
}
|
}
|
||||||
assert.NoError(t, ImportDirectory(env.GetPath(src), "testcontainer"))
|
assert.NoError(t, ImportDirectory(env.GetPath(src), "testcontainer"))
|
||||||
|
|||||||
@@ -65,9 +65,9 @@ func TestFindInitramfs(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
for _, init := range tt.initramfs {
|
for _, init := range tt.initramfs {
|
||||||
env.CreateFile(t, filepath.Join("/var/lib/warewulf/chroots/image/rootfs", init))
|
env.CreateFile(filepath.Join("/var/lib/warewulf/chroots/image/rootfs", init))
|
||||||
}
|
}
|
||||||
|
|
||||||
initramfs := FindInitramfs("image", tt.ver)
|
initramfs := FindInitramfs("image", tt.ver)
|
||||||
|
|||||||
@@ -88,10 +88,10 @@ func Test_FindKernel(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
rootfs := "/var/lib/warewulf/chroots/testcontainer/rootfs"
|
rootfs := "/var/lib/warewulf/chroots/testcontainer/rootfs"
|
||||||
for _, file := range tt.files {
|
for _, file := range tt.files {
|
||||||
env.CreateFile(t, filepath.Join(rootfs, file))
|
env.CreateFile(filepath.Join(rootfs, file))
|
||||||
}
|
}
|
||||||
|
|
||||||
kernels := FindKernels("testcontainer")
|
kernels := FindKernels("testcontainer")
|
||||||
@@ -151,10 +151,10 @@ func Test_FromNode(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
rootfs := "/var/lib/warewulf/chroots/testcontainer/rootfs"
|
rootfs := "/var/lib/warewulf/chroots/testcontainer/rootfs"
|
||||||
for _, file := range tt.files {
|
for _, file := range tt.files {
|
||||||
env.CreateFile(t, filepath.Join(rootfs, file))
|
env.CreateFile(filepath.Join(rootfs, file))
|
||||||
}
|
}
|
||||||
node := node.EmptyNode()
|
node := node.EmptyNode()
|
||||||
node.ContainerName = "testcontainer"
|
node.ContainerName = "testcontainer"
|
||||||
@@ -200,11 +200,11 @@ func Test_FindAllKernels(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
for container, files := range tt.files {
|
for container, files := range tt.files {
|
||||||
rootfs := filepath.Join(filepath.Join("/var/lib/warewulf/chroots", container), "rootfs")
|
rootfs := filepath.Join(filepath.Join("/var/lib/warewulf/chroots", container), "rootfs")
|
||||||
for _, file := range files {
|
for _, file := range files {
|
||||||
env.CreateFile(t, filepath.Join(rootfs, file))
|
env.CreateFile(filepath.Join(rootfs, file))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
kernels := FindAllKernels()
|
kernels := FindAllKernels()
|
||||||
|
|||||||
@@ -72,8 +72,8 @@ nodes:
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "/etc/warewulf/nodes.conf", tt.nodesConf)
|
env.WriteFile("/etc/warewulf/nodes.conf", tt.nodesConf)
|
||||||
|
|
||||||
registry, regErr := New()
|
registry, regErr := New()
|
||||||
assert.NoError(t, regErr)
|
assert.NoError(t, regErr)
|
||||||
|
|||||||
@@ -180,8 +180,8 @@ nodeprofiles:
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "/etc/warewulf/nodes.conf", tt.nodesConf)
|
env.WriteFile("/etc/warewulf/nodes.conf", tt.nodesConf)
|
||||||
|
|
||||||
registry, regErr := New()
|
registry, regErr := New()
|
||||||
assert.NoError(t, regErr)
|
assert.NoError(t, regErr)
|
||||||
@@ -763,8 +763,8 @@ nodeprofiles:
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.WriteFile(t, "/etc/warewulf/nodes.conf", tt.nodesConf)
|
env.WriteFile("/etc/warewulf/nodes.conf", tt.nodesConf)
|
||||||
|
|
||||||
registry, regErr := New()
|
registry, regErr := New()
|
||||||
assert.NoError(t, regErr)
|
assert.NoError(t, regErr)
|
||||||
|
|||||||
@@ -20,17 +20,17 @@ import (
|
|||||||
|
|
||||||
func Test_OverlayMethods(t *testing.T) {
|
func Test_OverlayMethods(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
// Setup test data
|
// Setup test data
|
||||||
sitedir := "/var/lib/warewulf/overlays/"
|
sitedir := "/var/lib/warewulf/overlays/"
|
||||||
distdir := "/usr/share/warewulf/overlays/"
|
distdir := "/usr/share/warewulf/overlays/"
|
||||||
|
|
||||||
env.WriteFile(t, path.Join(sitedir, "siteonly/rootfs/testfile"), "a site overlay")
|
env.WriteFile(path.Join(sitedir, "siteonly/rootfs/testfile"), "a site overlay")
|
||||||
env.WriteFile(t, path.Join(distdir, "distonly/rootfs/testfile"), "a distribution overlay")
|
env.WriteFile(path.Join(distdir, "distonly/rootfs/testfile"), "a distribution overlay")
|
||||||
env.WriteFile(t, path.Join(sitedir, "legacy/testfile"), "a legacy overlay")
|
env.WriteFile(path.Join(sitedir, "legacy/testfile"), "a legacy overlay")
|
||||||
env.WriteFile(t, path.Join(sitedir, "both/rootfs/testfile"), "the site version")
|
env.WriteFile(path.Join(sitedir, "both/rootfs/testfile"), "the site version")
|
||||||
env.WriteFile(t, path.Join(distdir, "both/rootfs/testfile"), "the distribution version")
|
env.WriteFile(path.Join(distdir, "both/rootfs/testfile"), "the distribution version")
|
||||||
|
|
||||||
var tests = map[string]struct {
|
var tests = map[string]struct {
|
||||||
name string
|
name string
|
||||||
@@ -215,19 +215,19 @@ T3
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
for fileName, content := range tt.overlayFiles {
|
for fileName, content := range tt.overlayFiles {
|
||||||
env.WriteFile(t, fileName, content)
|
env.WriteFile(fileName, content)
|
||||||
}
|
}
|
||||||
for _, dirName := range tt.overlayDirs {
|
for _, dirName := range tt.overlayDirs {
|
||||||
env.MkdirAll(t, dirName)
|
env.MkdirAll(dirName)
|
||||||
}
|
}
|
||||||
for linkName, target := range tt.overlaySymlinks {
|
for linkName, target := range tt.overlaySymlinks {
|
||||||
env.Symlink(t, target, linkName)
|
env.Symlink(target, linkName)
|
||||||
}
|
}
|
||||||
|
|
||||||
env.MkdirAll(t, tt.outputDir)
|
env.MkdirAll(tt.outputDir)
|
||||||
|
|
||||||
assert.NoError(t, BuildOverlayIndir(tt.node, []node.Node{tt.node}, tt.overlays, env.GetPath(tt.outputDir)))
|
assert.NoError(t, BuildOverlayIndir(tt.node, []node.Node{tt.node}, tt.overlays, env.GetPath(tt.outputDir)))
|
||||||
dirFiles := tt.outputDirs
|
dirFiles := tt.outputDirs
|
||||||
@@ -238,9 +238,9 @@ T3
|
|||||||
dirFiles = append(dirFiles, outputFile)
|
dirFiles = append(dirFiles, outputFile)
|
||||||
}
|
}
|
||||||
sort.Strings(dirFiles)
|
sort.Strings(dirFiles)
|
||||||
assert.Equal(t, dirFiles, env.ReadDir(t, tt.outputDir))
|
assert.Equal(t, dirFiles, env.ReadDir(tt.outputDir))
|
||||||
for fileName, content := range tt.outputFiles {
|
for fileName, content := range tt.outputFiles {
|
||||||
assert.Equal(t, content, env.ReadFile(t, path.Join(tt.outputDir, fileName)))
|
assert.Equal(t, content, env.ReadFile(path.Join(tt.outputDir, fileName)))
|
||||||
}
|
}
|
||||||
for _, dirName := range tt.outputDirs {
|
for _, dirName := range tt.outputDirs {
|
||||||
assert.True(t, util.IsDir(env.GetPath(path.Join(tt.outputDir, dirName))), fmt.Sprintf("%s is not a directory", dirName))
|
assert.True(t, util.IsDir(env.GetPath(path.Join(tt.outputDir, dirName))), fmt.Sprintf("%s is not a directory", dirName))
|
||||||
@@ -389,13 +389,13 @@ func Test_BuildOverlay(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
env.CreateFile(t, "var/lib/warewulf/overlays/o1/rootfs/o1.txt")
|
env.CreateFile("var/lib/warewulf/overlays/o1/rootfs/o1.txt")
|
||||||
env.CreateFile(t, "var/lib/warewulf/overlays/o2/rootfs/o2.txt")
|
env.CreateFile("var/lib/warewulf/overlays/o2/rootfs/o2.txt")
|
||||||
env.CreateFile(t, "var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww")
|
env.CreateFile("var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww")
|
||||||
env.Chmod(t, "var/lib/warewulf/overlays/o3/rootfs/subdir", 0700)
|
env.Chmod("var/lib/warewulf/overlays/o3/rootfs/subdir", 0700)
|
||||||
env.Chmod(t, "var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww", 0600)
|
env.Chmod("var/lib/warewulf/overlays/o3/rootfs/subdir/o3.txt.ww", 0600)
|
||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
nodeInfo := node.NewNode(tt.nodeName)
|
nodeInfo := node.NewNode(tt.nodeName)
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ package testenv
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
@@ -25,6 +26,8 @@ nodes:
|
|||||||
`
|
`
|
||||||
|
|
||||||
type TestEnv struct {
|
type TestEnv struct {
|
||||||
|
t *testing.T
|
||||||
|
b *testing.B
|
||||||
BaseDir string
|
BaseDir string
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,18 +54,42 @@ const Cachedir = "var/cache"
|
|||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func New(t *testing.T) (env *TestEnv) {
|
func New(t *testing.T) (env *TestEnv) {
|
||||||
env = new(TestEnv)
|
env = new(TestEnv)
|
||||||
|
env.t = t
|
||||||
|
env.init()
|
||||||
|
return env
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewBenchmark creates a benchmark environment in a temporary directory and configures
|
||||||
|
// Warewulf to use it.
|
||||||
|
//
|
||||||
|
// Caller is responsible to delete env.BaseDir by calling
|
||||||
|
// env.RemoveAll. Note that this does not restore Warewulf to its
|
||||||
|
// previous state.
|
||||||
|
//
|
||||||
|
// Asserts no errors occur.
|
||||||
|
func NewBenchmark(b *testing.B) (env *TestEnv) {
|
||||||
|
env = new(TestEnv)
|
||||||
|
env.b = b
|
||||||
|
env.init()
|
||||||
|
return env
|
||||||
|
}
|
||||||
|
|
||||||
|
// init creates a temporary directory and configured Warewulf to use it on behalf of
|
||||||
|
// New() or NewBenchmark().
|
||||||
|
//
|
||||||
|
// Asserts no errors occur.
|
||||||
|
func (env *TestEnv) init() {
|
||||||
tmpDir, err := os.MkdirTemp(os.TempDir(), "ww4test-*")
|
tmpDir, err := os.MkdirTemp(os.TempDir(), "ww4test-*")
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
env.BaseDir = tmpDir
|
env.BaseDir = tmpDir
|
||||||
|
|
||||||
env.WriteFile(t, path.Join(Sysconfdir, "warewulf/nodes.conf"), initNodesConf)
|
env.WriteFile(path.Join(Sysconfdir, "warewulf/nodes.conf"), initNodesConf)
|
||||||
env.WriteFile(t, path.Join(Sysconfdir, "warewulf/warewulf.conf"), initWarewulfConf)
|
env.WriteFile(path.Join(Sysconfdir, "warewulf/warewulf.conf"), initWarewulfConf)
|
||||||
|
|
||||||
// re-read warewulf.conf
|
// re-read warewulf.conf
|
||||||
conf := config.New()
|
conf := config.New()
|
||||||
err = conf.Read(env.GetPath(path.Join(Sysconfdir, "warewulf/warewulf.conf")))
|
err = conf.Read(env.GetPath(path.Join(Sysconfdir, "warewulf/warewulf.conf")))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
|
|
||||||
conf.Paths.Sysconfdir = env.GetPath(Sysconfdir)
|
conf.Paths.Sysconfdir = env.GetPath(Sysconfdir)
|
||||||
conf.Paths.Bindir = env.GetPath(Bindir)
|
conf.Paths.Bindir = env.GetPath(Bindir)
|
||||||
@@ -91,10 +118,24 @@ func New(t *testing.T) (env *TestEnv) {
|
|||||||
conf.Paths.WWChrootdir,
|
conf.Paths.WWChrootdir,
|
||||||
conf.Paths.WWProvisiondir,
|
conf.Paths.WWProvisiondir,
|
||||||
} {
|
} {
|
||||||
env.MkdirAll(t, confPath)
|
env.MkdirAll(confPath)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
// assertNoError handles error conditions generated by env,
|
||||||
|
// using the semantics of either a testing or a benchmark environment.
|
||||||
|
func (env *TestEnv) assertNoError(err error, msgAndArgs ...interface{}) {
|
||||||
|
if env.t != nil {
|
||||||
|
assert.NoError(env.t, err, msgAndArgs...)
|
||||||
|
}
|
||||||
|
|
||||||
|
if env.b != nil && err != nil {
|
||||||
|
if len(msgAndArgs) == 0 {
|
||||||
|
env.b.Errorf("%s", err)
|
||||||
|
} else {
|
||||||
|
env.b.Errorf(msgAndArgs[0].(string), (msgAndArgs[1:])...)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPath returns the absolute path name for fileName specified
|
// GetPath returns the absolute path name for fileName specified
|
||||||
@@ -107,70 +148,77 @@ func (env *TestEnv) GetPath(fileName string) string {
|
|||||||
// to the test environment.
|
// to the test environment.
|
||||||
//
|
//
|
||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func (env *TestEnv) MkdirAll(t *testing.T, dirName string) {
|
func (env *TestEnv) MkdirAll(dirName string) {
|
||||||
err := os.MkdirAll(env.GetPath(dirName), 0755)
|
err := os.MkdirAll(env.GetPath(dirName), 0755)
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Chmod changes the mode of fileName in the test environment, which must already exist.
|
// Chmod changes the mode of fileName in the test environment, which must already exist.
|
||||||
//
|
//
|
||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func (env *TestEnv) Chmod(t *testing.T, fileName string, mode int) {
|
func (env *TestEnv) Chmod(fileName string, mode int) {
|
||||||
err := os.Chmod(env.GetPath(fileName), os.FileMode(mode))
|
err := os.Chmod(env.GetPath(fileName), os.FileMode(mode))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// WriteFile writes content to fileName, creating any necessary
|
// WriteFile writes content to fileName, creating any necessary
|
||||||
// intermediate directories relative to the test environment.
|
// intermediate directories relative to the test environment.
|
||||||
//
|
//
|
||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func (env *TestEnv) WriteFile(t *testing.T, fileName string, content string) {
|
func (env *TestEnv) WriteFile(fileName string, content string) {
|
||||||
dirName := filepath.Dir(fileName)
|
dirName := filepath.Dir(fileName)
|
||||||
env.MkdirAll(t, dirName)
|
env.MkdirAll(dirName)
|
||||||
|
|
||||||
f, err := os.Create(env.GetPath(fileName))
|
f, err := os.Create(env.GetPath(fileName))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
_, err = f.WriteString(content)
|
_, err = f.WriteString(content)
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
err = os.Chtimes(env.GetPath(fileName),
|
err = os.Chtimes(env.GetPath(fileName),
|
||||||
time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC),
|
time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC),
|
||||||
time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC))
|
time.Date(2006, time.February, 1, 3, 4, 5, 0, time.UTC))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ImportFile writes the contents of inputFileName to fileName,
|
// ImportFile writes the contents of inputFileName to fileName,
|
||||||
// creating any necessary intermediate directories relative to the
|
// creating any necessary intermediate directories relative to the
|
||||||
// test environment.
|
// test environment.
|
||||||
func (env *TestEnv) ImportFile(t *testing.T, fileName string, inputFileName string) {
|
func (env *TestEnv) ImportFile(fileName string, inputFileName string) {
|
||||||
buffer, err := os.ReadFile(inputFileName)
|
buffer, err := os.ReadFile(inputFileName)
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
env.WriteFile(t, fileName, string(buffer))
|
env.WriteFile(fileName, string(buffer))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (env *TestEnv) ImportDir(dirName string, inputDirName string) {
|
||||||
|
env.MkdirAll(path.Dir(dirName))
|
||||||
|
cmd := exec.Command("cp", "--recursive", inputDirName, env.GetPath(dirName))
|
||||||
|
output, err := cmd.CombinedOutput()
|
||||||
|
env.assertNoError(err, string(output))
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateFile creates an empty file at fileName, creating any necessary intermediate directories
|
// CreateFile creates an empty file at fileName, creating any necessary intermediate directories
|
||||||
// relative to the test environment.
|
// relative to the test environment.
|
||||||
func (env *TestEnv) CreateFile(t *testing.T, fileName string) {
|
func (env *TestEnv) CreateFile(fileName string) {
|
||||||
env.WriteFile(t, fileName, "")
|
env.WriteFile(fileName, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Symlink creates a symlink at fileName to target, creating any necessary intermediate directories
|
// Symlink creates a symlink at fileName to target, creating any necessary intermediate directories
|
||||||
// relative to the test environment.
|
// relative to the test environment.
|
||||||
func (env *TestEnv) Symlink(t *testing.T, target string, fileName string) {
|
func (env *TestEnv) Symlink(target string, fileName string) {
|
||||||
dirName := filepath.Dir(fileName)
|
dirName := filepath.Dir(fileName)
|
||||||
env.MkdirAll(t, dirName)
|
env.MkdirAll(dirName)
|
||||||
|
|
||||||
err := os.Symlink(target, env.GetPath(fileName))
|
err := os.Symlink(target, env.GetPath(fileName))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadFile returns the content of fileName as converted to a
|
// ReadFile returns the content of fileName as converted to a
|
||||||
// string.
|
// string.
|
||||||
//
|
//
|
||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func (env *TestEnv) ReadFile(t *testing.T, fileName string) string {
|
func (env *TestEnv) ReadFile(fileName string) string {
|
||||||
buffer, err := os.ReadFile(env.GetPath(fileName))
|
buffer, err := os.ReadFile(env.GetPath(fileName))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
return string(buffer)
|
return string(buffer)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,9 +226,9 @@ func (env *TestEnv) ReadFile(t *testing.T, fileName string) string {
|
|||||||
// slice of strings.
|
// slice of strings.
|
||||||
//
|
//
|
||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func (env *TestEnv) ReadDir(t *testing.T, dirName string) []string {
|
func (env *TestEnv) ReadDir(dirName string) []string {
|
||||||
entries, err := os.ReadDir(env.GetPath(dirName))
|
entries, err := os.ReadDir(env.GetPath(dirName))
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
var entryStrs []string
|
var entryStrs []string
|
||||||
for _, entry := range entries {
|
for _, entry := range entries {
|
||||||
entryStrs = append(entryStrs, entry.Name())
|
entryStrs = append(entryStrs, entry.Name())
|
||||||
@@ -192,7 +240,7 @@ func (env *TestEnv) ReadDir(t *testing.T, dirName string) []string {
|
|||||||
// for the test environment.
|
// for the test environment.
|
||||||
//
|
//
|
||||||
// Asserts no errors occur.
|
// Asserts no errors occur.
|
||||||
func (env *TestEnv) RemoveAll(t *testing.T) {
|
func (env *TestEnv) RemoveAll() {
|
||||||
err := os.RemoveAll(env.BaseDir)
|
err := os.RemoveAll(env.BaseDir)
|
||||||
assert.NoError(t, err)
|
env.assertNoError(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import (
|
|||||||
|
|
||||||
func Test_Basic(t *testing.T) {
|
func Test_Basic(t *testing.T) {
|
||||||
env := New(t)
|
env := New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
nodedb, err := node.New()
|
nodedb, err := node.New()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
nodes, err := nodedb.FindAllNodes()
|
nodes, err := nodedb.FindAllNodes()
|
||||||
@@ -19,13 +19,13 @@ func Test_Basic(t *testing.T) {
|
|||||||
|
|
||||||
func Test_two_nodes(t *testing.T) {
|
func Test_two_nodes(t *testing.T) {
|
||||||
env := New(t)
|
env := New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `nodeprofiles:
|
env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles:
|
||||||
default: {}
|
default: {}
|
||||||
nodes:
|
nodes:
|
||||||
node1: {}
|
node1: {}
|
||||||
node2: {}
|
node2: {}
|
||||||
`)
|
`)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
nodedb, err := node.New()
|
nodedb, err := node.New()
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
nodes, err := nodedb.FindAllNodes()
|
nodes, err := nodedb.FindAllNodes()
|
||||||
|
|||||||
@@ -775,10 +775,10 @@ func Test_UpgradeNodesYaml(t *testing.T) {
|
|||||||
for _, tt := range nodesYamlUpgradeTests {
|
for _, tt := range nodesYamlUpgradeTests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
if tt.files != nil {
|
if tt.files != nil {
|
||||||
for fileName, content := range tt.files {
|
for fileName, content := range tt.files {
|
||||||
env.WriteFile(t, fileName, content)
|
env.WriteFile(fileName, content)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
legacy, err := ParseNodes([]byte(tt.legacyYaml))
|
legacy, err := ParseNodes([]byte(tt.legacyYaml))
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ func Test_FindFiles(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.MkdirAll(t, "/test")
|
env.MkdirAll("/test")
|
||||||
for _, file_ := range tt.createFiles {
|
for _, file_ := range tt.createFiles {
|
||||||
env.CreateFile(t, filepath.Join("/test", file_))
|
env.CreateFile(filepath.Join("/test", file_))
|
||||||
}
|
}
|
||||||
|
|
||||||
files := FindFiles(env.GetPath("/test"))
|
files := FindFiles(env.GetPath("/test"))
|
||||||
@@ -80,10 +80,10 @@ func Test_FindFilterFiles(t *testing.T) {
|
|||||||
for name, tt := range tests {
|
for name, tt := range tests {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.MkdirAll(t, "/test")
|
env.MkdirAll("/test")
|
||||||
for _, file_ := range tt.createFiles {
|
for _, file_ := range tt.createFiles {
|
||||||
env.CreateFile(t, filepath.Join("/test", file_))
|
env.CreateFile(filepath.Join("/test", file_))
|
||||||
}
|
}
|
||||||
|
|
||||||
files, err := FindFilterFiles(env.GetPath("/test"), tt.include, tt.exclude, true)
|
files, err := FindFilterFiles(env.GetPath("/test"), tt.include, tt.exclude, true)
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ var provisionSendTests = []struct {
|
|||||||
|
|
||||||
func Test_ProvisionSend(t *testing.T) {
|
func Test_ProvisionSend(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
|
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `nodeprofiles:
|
env.WriteFile("etc/warewulf/nodes.conf", `nodeprofiles:
|
||||||
default:
|
default:
|
||||||
container name: suse
|
container name: suse
|
||||||
nodes:
|
nodes:
|
||||||
@@ -65,7 +65,7 @@ nodes:
|
|||||||
version: 1.1.1`)
|
version: 1.1.1`)
|
||||||
|
|
||||||
// create a arp file as for grub we look up the ip address through the arp cache
|
// create a arp file as for grub we look up the ip address through the arp cache
|
||||||
env.WriteFile(t, "/var/tmp/arpcache", `IP address HW type Flags HW address Mask Device
|
env.WriteFile("/var/tmp/arpcache", `IP address HW type Flags HW address Mask Device
|
||||||
10.10.10.10 0x1 0x2 00:00:00:ff:ff:ff * dummy
|
10.10.10.10 0x1 0x2 00:00:00:ff:ff:ff * dummy
|
||||||
10.10.10.11 0x1 0x2 00:00:00:00:ff:ff * dummy
|
10.10.10.11 0x1 0x2 00:00:00:00:ff:ff * dummy
|
||||||
10.10.10.12 0x1 0x2 00:00:00:00:00:ff * dummy`)
|
10.10.10.12 0x1 0x2 00:00:00:00:00:ff * dummy`)
|
||||||
@@ -74,12 +74,12 @@ nodes:
|
|||||||
defer func() {
|
defer func() {
|
||||||
arpFile = prevArpFile
|
arpFile = prevArpFile
|
||||||
}()
|
}()
|
||||||
env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/boot/vmlinuz-1.1.0")
|
env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/boot/vmlinuz-1.1.0")
|
||||||
env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/usr/lib64/efi/shim.efi")
|
env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/usr/lib64/efi/shim.efi")
|
||||||
env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/usr/share/efi/x86_64/grub.efi")
|
env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/usr/share/efi/x86_64/grub.efi")
|
||||||
env.CreateFile(t, "/var/lib/warewulf/chroots/suse/rootfs/boot/initramfs-1.1.0.img")
|
env.CreateFile("/var/lib/warewulf/chroots/suse/rootfs/boot/initramfs-1.1.0.img")
|
||||||
env.WriteFile(t, "/etc/warewulf/ipxe/test.ipxe", "{{.KernelVersion}}{{range $devname, $netdev := .NetDevs}}{{if and $netdev.Hwaddr $netdev.Device}} ifname={{$netdev.Device}}:{{$netdev.Hwaddr}} {{end}}{{end}}")
|
env.WriteFile("/etc/warewulf/ipxe/test.ipxe", "{{.KernelVersion}}{{range $devname, $netdev := .NetDevs}}{{if and $netdev.Hwaddr $netdev.Device}} ifname={{$netdev.Device}}:{{$netdev.Hwaddr}} {{end}}{{end}}")
|
||||||
env.WriteFile(t, "/etc/warewulf/grub/grub.cfg.ww", "{{ .Tags.GrubMenuEntry }}")
|
env.WriteFile("/etc/warewulf/grub/grub.cfg.ww", "{{ .Tags.GrubMenuEntry }}")
|
||||||
|
|
||||||
dbErr := LoadNodeDB()
|
dbErr := LoadNodeDB()
|
||||||
assert.NoError(t, dbErr)
|
assert.NoError(t, dbErr)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ var getOverlayFileTests = []struct {
|
|||||||
|
|
||||||
func Test_getOverlayFile(t *testing.T) {
|
func Test_getOverlayFile(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
env.WriteFile(t, "etc/warewulf/nodes.conf", `
|
env.WriteFile("etc/warewulf/nodes.conf", `
|
||||||
nodes:
|
nodes:
|
||||||
node1: {} `)
|
node1: {} `)
|
||||||
conf := warewulfconf.Get()
|
conf := warewulfconf.Get()
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_networkmanagerOverlay(t *testing.T) {
|
func Test_networkmanagerOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww", "../rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww")
|
env.ImportFile("var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww", "../rootfs/etc/NetworkManager/conf.d/ww4-unmanaged.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww", "../rootfs/etc/NetworkManager/system-connections/ww4-managed.ww")
|
env.ImportFile("var/lib/warewulf/overlays/NetworkManager/rootfs/etc/NetworkManager/system-connections/ww4-managed.ww", "../rootfs/etc/NetworkManager/system-connections/ww4-managed.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -50,7 +50,7 @@ func Test_networkmanagerOverlay(t *testing.T) {
|
|||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf)
|
env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf)
|
||||||
cmd := show.GetCommand()
|
cmd := show.GetCommand()
|
||||||
cmd.SetArgs(tt.args)
|
cmd.SetArgs(tt.args)
|
||||||
stdout := bytes.NewBufferString("")
|
stdout := bytes.NewBufferString("")
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import (
|
|||||||
|
|
||||||
func Test_wickedOverlay(t *testing.T) {
|
func Test_wickedOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/debian.interfaces/rootfs/etc/network/interfaces.d/default.ww", "../rootfs/etc/network/interfaces.d/default.ww")
|
env.ImportFile("var/lib/warewulf/overlays/debian.interfaces/rootfs/etc/network/interfaces.d/default.ww", "../rootfs/etc/network/interfaces.d/default.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -31,7 +31,7 @@ func Test_wickedOverlay(t *testing.T) {
|
|||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf)
|
env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf)
|
||||||
cmd := show.GetCommand()
|
cmd := show.GetCommand()
|
||||||
cmd.SetArgs(tt.args)
|
cmd.SetArgs(tt.args)
|
||||||
stdout := bytes.NewBufferString("")
|
stdout := bytes.NewBufferString("")
|
||||||
|
|||||||
@@ -18,9 +18,9 @@ func Test_debugOverlay(t *testing.T) {
|
|||||||
hostname, _ := os.Hostname()
|
hostname, _ := os.Hostname()
|
||||||
|
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/debug/rootfs/warewulf/template-variables.md.ww", "../rootfs/warewulf/template-variables.md.ww")
|
env.ImportFile("var/lib/warewulf/overlays/debug/rootfs/warewulf/template-variables.md.ww", "../rootfs/warewulf/template-variables.md.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -13,11 +13,11 @@ import (
|
|||||||
|
|
||||||
func Test_fstabOverlay(t *testing.T) {
|
func Test_fstabOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "etc/warewulf/warewulf.conf", "warewulf.conf")
|
env.ImportFile("etc/warewulf/warewulf.conf", "warewulf.conf")
|
||||||
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/fstab/rootfs/etc/fstab.ww", "../rootfs/etc/fstab.ww")
|
env.ImportFile("var/lib/warewulf/overlays/fstab/rootfs/etc/fstab.ww", "../rootfs/etc/fstab.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -16,14 +16,14 @@ import (
|
|||||||
func Test_hostOverlay(t *testing.T) {
|
func Test_hostOverlay(t *testing.T) {
|
||||||
hostname, _ := os.Hostname()
|
hostname, _ := os.Hostname()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/dhcp/dhcpd.conf.ww", "../rootfs/etc/dhcp/dhcpd.conf.ww")
|
env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/dhcp/dhcpd.conf.ww", "../rootfs/etc/dhcp/dhcpd.conf.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww", "../rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww")
|
env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww", "../rootfs/etc/dnsmasq.d/ww4-hosts.conf.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/exports.ww", "../rootfs/etc/exports.ww")
|
env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/exports.ww", "../rootfs/etc/exports.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww")
|
env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.csh.ww", "../rootfs/etc/profile.d/ssh_setup.csh.ww")
|
env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.csh.ww", "../rootfs/etc/profile.d/ssh_setup.csh.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.sh.ww", "../rootfs/etc/profile.d/ssh_setup.sh.ww")
|
env.ImportFile("var/lib/warewulf/overlays/host/rootfs/etc/profile.d/ssh_setup.sh.ww", "../rootfs/etc/profile.d/ssh_setup.sh.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -85,7 +85,7 @@ func Test_hostOverlay(t *testing.T) {
|
|||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
if tt.conf != "" {
|
if tt.conf != "" {
|
||||||
env.ImportFile(t, "etc/warewulf/warewulf.conf", tt.conf)
|
env.ImportFile("etc/warewulf/warewulf.conf", tt.conf)
|
||||||
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
||||||
}
|
}
|
||||||
cmd := show.GetCommand()
|
cmd := show.GetCommand()
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_hostnameOverlay(t *testing.T) {
|
func Test_hostnameOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/hostname/rootfs/etc/hostname.ww", "../rootfs/etc/hostname.ww")
|
env.ImportFile("var/lib/warewulf/overlays/hostname/rootfs/etc/hostname.ww", "../rootfs/etc/hostname.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -17,11 +17,11 @@ import (
|
|||||||
func Test_hostsOverlay(t *testing.T) {
|
func Test_hostsOverlay(t *testing.T) {
|
||||||
hostname, _ := os.Hostname()
|
hostname, _ := os.Hostname()
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/warewulf.conf", "warewulf.conf")
|
env.ImportFile("etc/warewulf/warewulf.conf", "warewulf.conf")
|
||||||
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/hosts/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww")
|
env.ImportFile("var/lib/warewulf/overlays/hosts/rootfs/etc/hosts.ww", "../rootfs/etc/hosts.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,10 +12,10 @@ import (
|
|||||||
|
|
||||||
func Test_ifcfgOverlay(t *testing.T) {
|
func Test_ifcfgOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww", "../rootfs/etc/sysconfig/network-scripts/ifcfg.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/ifcfg.ww", "../rootfs/etc/sysconfig/network-scripts/ifcfg.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/route.ww", "../rootfs/etc/sysconfig/network-scripts/route.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network-scripts/route.ww", "../rootfs/etc/sysconfig/network-scripts/route.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network.ww", "../rootfs/etc/sysconfig/network.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ifcfg/rootfs/etc/sysconfig/network.ww", "../rootfs/etc/sysconfig/network.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -51,7 +51,7 @@ func Test_ifcfgOverlay(t *testing.T) {
|
|||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf)
|
env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf)
|
||||||
cmd := show.GetCommand()
|
cmd := show.GetCommand()
|
||||||
cmd.SetArgs(tt.args)
|
cmd.SetArgs(tt.args)
|
||||||
stdout := bytes.NewBufferString("")
|
stdout := bytes.NewBufferString("")
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import (
|
|||||||
|
|
||||||
func Test_ignitionOverlay(t *testing.T) {
|
func Test_ignitionOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-disks.target.ww", "../rootfs/etc/systemd/system/ww4-disks.target.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-disks.target.ww", "../rootfs/etc/systemd/system/ww4-disks.target.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-mounts.ww", "../rootfs/etc/systemd/system/ww4-mounts.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ignition/rootfs/etc/systemd/system/ww4-mounts.ww", "../rootfs/etc/systemd/system/ww4-mounts.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ignition/rootfs/warewulf/ignition.json.ww", "../rootfs/warewulf/ignition.json.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ignition/rootfs/warewulf/ignition.json.ww", "../rootfs/warewulf/ignition.json.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_issueOverlay(t *testing.T) {
|
func Test_issueOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/issue/rootfs/etc/issue.ww", "../rootfs/etc/issue.ww")
|
env.ImportFile("var/lib/warewulf/overlays/issue/rootfs/etc/issue.ww", "../rootfs/etc/issue.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ import (
|
|||||||
|
|
||||||
func Test_localtimeOverlay(t *testing.T) {
|
func Test_localtimeOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
assert.NoError(t, config.Get().Read(env.GetPath("etc/warewulf/warewulf.conf")))
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/localtime/rootfs/etc/localtime.ww", "../rootfs/etc/localtime.ww")
|
env.ImportFile("var/lib/warewulf/overlays/localtime/rootfs/etc/localtime.ww", "../rootfs/etc/localtime.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_netplanOverlay(t *testing.T) {
|
func Test_netplanOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/netplan/rootfs/etc/netplan/01-netcfg.yaml.ww", "../rootfs/etc/netplan/01-netcfg.yaml.ww")
|
env.ImportFile("var/lib/warewulf/overlays/netplan/rootfs/etc/netplan/01-netcfg.yaml.ww", "../rootfs/etc/netplan/01-netcfg.yaml.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_resolvOverlay(t *testing.T) {
|
func Test_resolvOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/resolv/rootfs/etc/resolv.conf.ww", "../rootfs/etc/resolv.conf.ww")
|
env.ImportFile("var/lib/warewulf/overlays/resolv/rootfs/etc/resolv.conf.ww", "../rootfs/etc/resolv.conf.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ func Test_ssh_authorized_keysOverlay(t *testing.T) {
|
|||||||
t.Skip("ssh.authorized_keys is not yet isolated from the host")
|
t.Skip("ssh.authorized_keys is not yet isolated from the host")
|
||||||
|
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.authorized_keys/rootfs/root/.ssh/authorized_keys.ww", "../rootfs/root/.ssh/authorized_keys.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.authorized_keys/rootfs/root/.ssh/authorized_keys.ww", "../rootfs/root/.ssh/authorized_keys.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,24 +12,24 @@ import (
|
|||||||
|
|
||||||
func Test_ssh_host_keysOverlay(t *testing.T) {
|
func Test_ssh_host_keysOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.pub.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.pub.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_dsa_key.ww", "../rootfs/etc/ssh/ssh_host_dsa_key.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.pub.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ecdsa_key.ww", "../rootfs/etc/ssh/ssh_host_ecdsa_key.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.pub.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_ed25519_key.ww", "../rootfs/etc/ssh/ssh_host_ed25519_key.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.pub.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.pub.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.pub.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.ww")
|
env.ImportFile("var/lib/warewulf/overlays/ssh.host_keys/rootfs/etc/ssh/ssh_host_rsa_key.ww", "../rootfs/etc/ssh/ssh_host_rsa_key.ww")
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_dsa_key.pub", `dsa pubkey sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_dsa_key.pub", `dsa pubkey sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_dsa_key", `dsa key sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_dsa_key", `dsa key sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_ecdsa_key.pub", `ecdsa pubkey sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_ecdsa_key.pub", `ecdsa pubkey sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_ecdsa_key", `ecdsa key sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_ecdsa_key", `ecdsa key sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_ed25519_key.pub", `ed25519 pubkey sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_ed25519_key.pub", `ed25519 pubkey sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_ed25519_key", `ed25519 key sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_ed25519_key", `ed25519 key sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_rsa_key.pub", `rsa pubkey sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_rsa_key.pub", `rsa pubkey sentinel`)
|
||||||
env.WriteFile(t, "etc/warewulf/keys/ssh_host_rsa_key", `rsa key sentinel`)
|
env.WriteFile("etc/warewulf/keys/ssh_host_rsa_key", `rsa key sentinel`)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ func Test_syncuserOverlay(t *testing.T) {
|
|||||||
t.Skip("syncuser is not yet isolated from the host")
|
t.Skip("syncuser is not yet isolated from the host")
|
||||||
|
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/syncuser/rootfs/etc/passwd.ww", "../../../../../overlays/syncuser/rootfs/etc/passwd.ww")
|
env.ImportFile("var/lib/warewulf/overlays/syncuser/rootfs/etc/passwd.ww", "../../../../../overlays/syncuser/rootfs/etc/passwd.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/syncuser/rootfs/etc/group.ww", "../../../../../overlays/syncuser/rootfs/etc/group.ww")
|
env.ImportFile("var/lib/warewulf/overlays/syncuser/rootfs/etc/group.ww", "../../../../../overlays/syncuser/rootfs/etc/group.ww")
|
||||||
env.WriteFile(t, "var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/passwd", `root:x:0:0:root:/root:/bin/bash`)
|
env.WriteFile("var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/passwd", `root:x:0:0:root:/root:/bin/bash`)
|
||||||
env.WriteFile(t, "var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/group", `root:x:0:`)
|
env.WriteFile("var/lib/warewulf/chroots/rockylinux-9/rootfs/etc/group", `root:x:0:`)
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_udev_netnameOverlay(t *testing.T) {
|
func Test_udev_netnameOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/systemd.netname/rootfs/etc/systemd/network/10-ww4-netname.link.ww", "../rootfs/etc/systemd/network/10-ww4-netname.link.ww")
|
env.ImportFile("var/lib/warewulf/overlays/systemd.netname/rootfs/etc/systemd/network/10-ww4-netname.link.ww", "../rootfs/etc/systemd/network/10-ww4-netname.link.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_udev_netnameOverlay(t *testing.T) {
|
func Test_udev_netnameOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/udev.netname/rootfs/etc/udev/rules.d/70-persistent-net.rules.ww", "../rootfs/etc/udev/rules.d/70-persistent-net.rules.ww")
|
env.ImportFile("var/lib/warewulf/overlays/udev.netname/rootfs/etc/udev/rules.d/70-persistent-net.rules.ww", "../rootfs/etc/udev/rules.d/70-persistent-net.rules.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import (
|
|||||||
|
|
||||||
func Test_wickedOverlay(t *testing.T) {
|
func Test_wickedOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/wicked/rootfs/etc/wicked/ifconfig/ifcfg.xml.ww", "../rootfs/etc/wicked/ifconfig/ifcfg.xml.ww")
|
env.ImportFile("var/lib/warewulf/overlays/wicked/rootfs/etc/wicked/ifconfig/ifcfg.xml.ww", "../rootfs/etc/wicked/ifconfig/ifcfg.xml.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
@@ -37,7 +37,7 @@ func Test_wickedOverlay(t *testing.T) {
|
|||||||
|
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", tt.nodes_conf)
|
env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf)
|
||||||
cmd := show.GetCommand()
|
cmd := show.GetCommand()
|
||||||
cmd.SetArgs(tt.args)
|
cmd.SetArgs(tt.args)
|
||||||
stdout := bytes.NewBufferString("")
|
stdout := bytes.NewBufferString("")
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ import (
|
|||||||
|
|
||||||
func Test_wwclientOverlay(t *testing.T) {
|
func Test_wwclientOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/wwclient/rootfs/warewulf/init.d/80-wwclient.ww", "../rootfs/warewulf/init.d/80-wwclient.ww")
|
env.ImportFile("var/lib/warewulf/overlays/wwclient/rootfs/warewulf/init.d/80-wwclient.ww", "../rootfs/warewulf/init.d/80-wwclient.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import (
|
|||||||
|
|
||||||
func Test_wwinitOverlay(t *testing.T) {
|
func Test_wwinitOverlay(t *testing.T) {
|
||||||
env := testenv.New(t)
|
env := testenv.New(t)
|
||||||
defer env.RemoveAll(t)
|
defer env.RemoveAll()
|
||||||
env.ImportFile(t, "etc/warewulf/warewulf.conf", "warewulf.conf")
|
env.ImportFile("etc/warewulf/warewulf.conf", "warewulf.conf")
|
||||||
env.ImportFile(t, "etc/warewulf/nodes.conf", "nodes.conf")
|
env.ImportFile("etc/warewulf/nodes.conf", "nodes.conf")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/wwinit/rootfs/etc/warewulf/warewulf.conf.ww", "../rootfs/etc/warewulf/warewulf.conf.ww")
|
env.ImportFile("var/lib/warewulf/overlays/wwinit/rootfs/etc/warewulf/warewulf.conf.ww", "../rootfs/etc/warewulf/warewulf.conf.ww")
|
||||||
env.ImportFile(t, "var/lib/warewulf/overlays/wwinit/rootfs/warewulf/config.ww", "../rootfs/warewulf/config.ww")
|
env.ImportFile("var/lib/warewulf/overlays/wwinit/rootfs/warewulf/config.ww", "../rootfs/warewulf/config.ww")
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
|
|||||||
Reference in New Issue
Block a user