provisioner/chef-solo: code re-org
This commit is contained in:
parent
893c9e02c0
commit
55b0b586d3
|
@ -145,46 +145,6 @@ func (p *Provisioner) Prepare(raws ...interface{}) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (p *Provisioner) processJsonUserVars() (map[string]interface{}, error) {
|
||||
jsonBytes, err := json.Marshal(p.config.Json)
|
||||
if err != nil {
|
||||
// This really shouldn't happen since we literally just unmarshalled
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Copy the user variables so that we can restore them later, and
|
||||
// make sure we make the quotes JSON-friendly in the user variables.
|
||||
originalUserVars := make(map[string]string)
|
||||
for k, v := range p.config.tpl.UserVars {
|
||||
originalUserVars[k] = v
|
||||
}
|
||||
|
||||
// Make sure we reset them no matter what
|
||||
defer func() {
|
||||
p.config.tpl.UserVars = originalUserVars
|
||||
}()
|
||||
|
||||
// Make the current user variables JSON string safe.
|
||||
for k, v := range p.config.tpl.UserVars {
|
||||
v = strings.Replace(v, `\`, `\\`, -1)
|
||||
v = strings.Replace(v, `"`, `\"`, -1)
|
||||
p.config.tpl.UserVars[k] = v
|
||||
}
|
||||
|
||||
// Process the bytes with the template processor
|
||||
jsonBytesProcessed, err := p.config.tpl.Process(string(jsonBytes), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var result map[string]interface{}
|
||||
if err := json.Unmarshal([]byte(jsonBytesProcessed), &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error {
|
||||
if !p.config.SkipInstall {
|
||||
if err := p.installChef(ui, comm); err != nil {
|
||||
|
@ -361,6 +321,46 @@ func (p *Provisioner) installChef(ui packer.Ui, comm packer.Communicator) error
|
|||
return nil
|
||||
}
|
||||
|
||||
func (p *Provisioner) processJsonUserVars() (map[string]interface{}, error) {
|
||||
jsonBytes, err := json.Marshal(p.config.Json)
|
||||
if err != nil {
|
||||
// This really shouldn't happen since we literally just unmarshalled
|
||||
panic(err)
|
||||
}
|
||||
|
||||
// Copy the user variables so that we can restore them later, and
|
||||
// make sure we make the quotes JSON-friendly in the user variables.
|
||||
originalUserVars := make(map[string]string)
|
||||
for k, v := range p.config.tpl.UserVars {
|
||||
originalUserVars[k] = v
|
||||
}
|
||||
|
||||
// Make sure we reset them no matter what
|
||||
defer func() {
|
||||
p.config.tpl.UserVars = originalUserVars
|
||||
}()
|
||||
|
||||
// Make the current user variables JSON string safe.
|
||||
for k, v := range p.config.tpl.UserVars {
|
||||
v = strings.Replace(v, `\`, `\\`, -1)
|
||||
v = strings.Replace(v, `"`, `\"`, -1)
|
||||
p.config.tpl.UserVars[k] = v
|
||||
}
|
||||
|
||||
// Process the bytes with the template processor
|
||||
jsonBytesProcessed, err := p.config.tpl.Process(string(jsonBytes), nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var result map[string]interface{}
|
||||
if err := json.Unmarshal([]byte(jsonBytesProcessed), &result); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
|
||||
var DefaultConfigTemplate = `
|
||||
cookbook_path [{{.CookbookPaths}}]
|
||||
`
|
||||
|
|
Loading…
Reference in New Issue