provisioner/chef-solo: template process the configuration
This commit is contained in:
parent
c9ef66651b
commit
64fe98c465
|
@ -79,6 +79,48 @@ func (p *Provisioner) Prepare(raws ...interface{}) error {
|
||||||
// Accumulate any errors
|
// Accumulate any errors
|
||||||
errs := common.CheckUnusedConfig(md)
|
errs := common.CheckUnusedConfig(md)
|
||||||
|
|
||||||
|
templates := map[string]*string{
|
||||||
|
"staging_dir": &p.config.StagingDir,
|
||||||
|
}
|
||||||
|
|
||||||
|
for n, ptr := range templates {
|
||||||
|
var err error
|
||||||
|
*ptr, err = p.config.tpl.Process(*ptr, nil)
|
||||||
|
if err != nil {
|
||||||
|
errs = packer.MultiErrorAppend(
|
||||||
|
errs, fmt.Errorf("Error processing %s: %s", n, err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sliceTemplates := map[string][]string{
|
||||||
|
"cookbook_paths": p.config.CookbookPaths,
|
||||||
|
"remote_cookbook_paths": p.config.RemoteCookbookPaths,
|
||||||
|
"run_list": p.config.RunList,
|
||||||
|
}
|
||||||
|
|
||||||
|
for n, slice := range sliceTemplates {
|
||||||
|
for i, elem := range slice {
|
||||||
|
var err error
|
||||||
|
slice[i], err = p.config.tpl.Process(elem, nil)
|
||||||
|
if err != nil {
|
||||||
|
errs = packer.MultiErrorAppend(
|
||||||
|
errs, fmt.Errorf("Error processing %s[%d]: %s", n, i, err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
validates := map[string]*string{
|
||||||
|
"execute_command": &p.config.ExecuteCommand,
|
||||||
|
"install_command": &p.config.InstallCommand,
|
||||||
|
}
|
||||||
|
|
||||||
|
for n, ptr := range validates {
|
||||||
|
if err := p.config.tpl.Validate(*ptr); err != nil {
|
||||||
|
errs = packer.MultiErrorAppend(
|
||||||
|
errs, fmt.Errorf("Error parsing %s: %s", n, err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for _, path := range p.config.CookbookPaths {
|
for _, path := range p.config.CookbookPaths {
|
||||||
pFileInfo, err := os.Stat(path)
|
pFileInfo, err := os.Stat(path)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue