package wicked import ( "bytes" "testing" "github.com/stretchr/testify/assert" "github.com/warewulf/warewulf/internal/app/wwctl/overlay/show" "github.com/warewulf/warewulf/internal/pkg/testenv" "github.com/warewulf/warewulf/internal/pkg/wwlog" ) func Test_wickedOverlay(t *testing.T) { env := testenv.New(t) defer env.RemoveAll() env.ImportFile("var/lib/warewulf/overlays/wicked/rootfs/etc/wicked/ifconfig/ifcfg.xml.ww", "../rootfs/etc/wicked/ifconfig/ifcfg.xml.ww") tests := []struct { name string nodes_conf string args []string log string }{ { name: "wicked", nodes_conf: "nodes.conf", args: []string{"--render", "node1", "wicked", "etc/wicked/ifconfig/ifcfg.xml.ww"}, log: wicked, }, { name: "wicked-vlans", nodes_conf: "nodes.conf-vlan", args: []string{"--render", "node1", "wicked", "etc/wicked/ifconfig/ifcfg.xml.ww"}, log: wicked_vlans, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { env.ImportFile("etc/warewulf/nodes.conf", tt.nodes_conf) cmd := show.GetCommand() cmd.SetArgs(tt.args) stdout := bytes.NewBufferString("") stderr := bytes.NewBufferString("") logbuf := bytes.NewBufferString("") cmd.SetOut(stdout) cmd.SetErr(stderr) wwlog.SetLogWriter(logbuf) err := cmd.Execute() assert.NoError(t, err) assert.Empty(t, stdout.String()) assert.Empty(t, stderr.String()) assert.Equal(t, tt.log, logbuf.String()) }) } } const wicked string = `backupFile: true writeFile: true Filename: ifcfg-default.xml wwnet0 ethernet manual true true
192.168.3.21/24
192.168.3.1
true prefer-public false
backupFile: true writeFile: true Filename: ifcfg-secondary.xml wwnet1 ethernet manual true true
192.168.3.22/24
192.168.3.1
true prefer-public false
` const wicked_vlans string = `backupFile: true writeFile: true Filename: ifcfg-tagged.xml eth0.902 vlan eth0 902 ieee802-1Q boot true true
192.168.1.0/24 192.168.2.254
true prefer-public false
backupFile: true writeFile: true Filename: ifcfg-untagged.xml eth0 ethernet boot true true
true prefer-public false
`