diff --git a/CHANGELOG.md b/CHANGELOG.md index 63650bc2..9ce56f03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Handle missing ipmi fields during bmc commands. #1768 - Properly configure a default IPMI template during `wwctl upgrade nodes --add-defaults`. - Fixed display of dotted field names. #1825 +- Add single quote around escapechar in ipmitool template #1830 ### Changed diff --git a/internal/pkg/bmc/bmc_test.go b/internal/pkg/bmc/bmc_test.go index fd6ae9e6..bff2d657 100644 --- a/internal/pkg/bmc/bmc_test.go +++ b/internal/pkg/bmc/bmc_test.go @@ -41,7 +41,7 @@ func Test_Ipmitool(t *testing.T) { Password: "calvin", }, }, - cmdStr: `ipmitool -I lanplus -e ~ -p 687 -H 192.168.1.100 -U "root" -P "calvin" chassis power status`, + cmdStr: `ipmitool -I lanplus -e "~" -p 687 -H 192.168.1.100 -U "root" -P "calvin" chassis power status`, }, "nobmc PowerStatus full": { bmc: TemplateStruct{ diff --git a/lib/warewulf/bmc/ipmitool.tmpl b/lib/warewulf/bmc/ipmitool.tmpl index 33412df9..85dce638 100644 --- a/lib/warewulf/bmc/ipmitool.tmpl +++ b/lib/warewulf/bmc/ipmitool.tmpl @@ -1,6 +1,6 @@ {{ $cmd := "ipmitool" }} {{ if .Interface }}{{ $cmd = cat $cmd "-I" .Interface }}{{ end }} -{{ if .EscapeChar }}{{ $cmd = cat $cmd "-e" .EscapeChar }}{{ end }} +{{ if .EscapeChar }}{{ $cmd = cat $cmd "-e" (printf "\"%s\"" .EscapeChar) }}{{ end }} {{ if .Port }}{{ $cmd = cat $cmd "-p" .Port }}{{ end }} {{ if .Ipaddr }}{{ $cmd = cat $cmd "-H" .Ipaddr }}{{ end }} {{ if .UserName }}{{ $cmd = cat $cmd "-U" (printf "\"%s\"" .UserName) }}{{ end }}