Merge pull request #1055 from mslacken/OverlyName

added {{ .Overlay }} to templates
This commit is contained in:
Jonathon Anderson
2024-04-17 21:43:59 -06:00
committed by GitHub
5 changed files with 33 additions and 3 deletions

View File

@@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Added
- Document warewulf.conf:paths. #635
- New "Overlay" template variable contains the name of the overlay being built. #1052
### Changed

View File

@@ -14,8 +14,11 @@ import (
)
var (
overlayCont = `
overlayEmail = `
{{ if .Tags.email }}eMail: {{ .Tags.email }}{{else}} noMail{{- end }}
`
overlayOverlay = `
overlay name {{ .Overlay }}
`
)
@@ -38,7 +41,8 @@ nodes:
- empty
`)
env.WriteFile(t, path.Join(testenv.WWOverlaydir, "testoverlay/email.ww"), overlayCont)
env.WriteFile(t, path.Join(testenv.WWOverlaydir, "testoverlay/email.ww"), overlayEmail)
env.WriteFile(t, path.Join(testenv.WWOverlaydir, "testoverlay/overlay.ww"), overlayOverlay)
defer env.RemoveAll(t)
warewulfd.SetNoDaemon()
t.Run("overlay show raw", func(t *testing.T) {
@@ -50,7 +54,7 @@ nodes:
wwlog.SetLogWriter(buf)
err := baseCmd.Execute()
assert.NoError(t, err)
assert.Contains(t, buf.String(), overlayCont)
assert.Contains(t, buf.String(), overlayEmail)
})
t.Run("overlay show rendered node tag", func(t *testing.T) {
baseCmd.SetArgs([]string{"-r", "node1", "testoverlay", "email.ww"})
@@ -85,6 +89,17 @@ nodes:
assert.NoError(t, err)
assert.Contains(t, buf.String(), "noMail")
})
t.Run("overlay shows overlay", func(t *testing.T) {
baseCmd.SetArgs([]string{"-r", "node1", "testoverlay", "overlay.ww"})
baseCmd := GetCommand()
buf := new(bytes.Buffer)
baseCmd.SetOut(buf)
baseCmd.SetErr(buf)
wwlog.SetLogWriter(buf)
err := baseCmd.Execute()
assert.NoError(t, err)
assert.Contains(t, buf.String(), "testoverlay")
})
}
func TestShowServerTemplate(t *testing.T) {

View File

@@ -27,6 +27,7 @@ type TemplateStruct struct {
Netmask string
Network string
NetworkCIDR string
Overlay string
Ipv6 bool
Dhcp warewulfconf.DHCPConf
Nfs warewulfconf.NFSConf

View File

@@ -352,6 +352,18 @@ func RenderTemplateFile(fileName string, data TemplateStruct) (
err error) {
backupFile = true
writeFile = true
// parse the overlay name out of the absolute path
overlayPath, _ := filepath.Rel(OverlaySourceTopDir(), fileName)
withoutRootfs, err := filepath.Rel("rootfs", overlayPath)
if err != nil {
overlayPath = withoutRootfs
}
overlayPathElem := strings.Split(overlayPath, "/")
if len(overlayPathElem) > 1 {
data.Overlay = overlayPathElem[0]
} else {
data.Overlay = ""
}
// Build our FuncMap
funcMap := template.FuncMap{

View File

@@ -72,6 +72,7 @@ data from other structures.
- BuildTime: {{ .BuildTime }}
- BuildTimeUnix: {{ .BuildTimeUnix }}
- BuildSource: {{ .BuildSource }}
- Overlay: {{ .Overlay }}
## Network