Merge pull request #6913 from ofosos/pause-after-provisioner
Add PauseAfter option to shell provisioner
This commit is contained in:
commit
5e79936b9a
|
@ -45,6 +45,11 @@ type Config struct {
|
|||
// your command(s) are executed.
|
||||
Vars []string `mapstructure:"environment_vars"`
|
||||
|
||||
// A duration of how long to pause after the provisioner
|
||||
RawPauseAfter string `mapstructure:"pause_after"`
|
||||
|
||||
PauseAfter time.Duration
|
||||
|
||||
// Write the Vars to a file and source them from there rather than declaring
|
||||
// inline
|
||||
UseEnvVarFile bool `mapstructure:"use_env_var_file"`
|
||||
|
@ -189,6 +194,14 @@ func (p *Provisioner) Prepare(raws ...interface{}) error {
|
|||
}
|
||||
}
|
||||
|
||||
if p.config.RawPauseAfter != "" {
|
||||
p.config.PauseAfter, err = time.ParseDuration(p.config.RawPauseAfter)
|
||||
if err != nil {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, fmt.Errorf("Failed parsing pause_after: %s", err))
|
||||
}
|
||||
}
|
||||
|
||||
if errs != nil && len(errs.Errors) > 0 {
|
||||
return errs
|
||||
}
|
||||
|
@ -371,6 +384,14 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error {
|
|||
}
|
||||
}
|
||||
|
||||
if p.config.RawPauseAfter != "" {
|
||||
ui.Say(fmt.Sprintf("Pausing %s after this provisioner...", p.config.PauseAfter))
|
||||
select {
|
||||
case <-time.After(p.config.PauseAfter):
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -117,6 +117,9 @@ Optional parameters:
|
|||
exists in order to deal with times when SSH may restart, such as a system
|
||||
reboot. Set this to a higher value if reboots take a longer amount of time.
|
||||
|
||||
- `pause_after` (string) - Wait the amount of time after provisioning a shell
|
||||
script, this pause be taken if all previous steps were successful.
|
||||
|
||||
## Execute Command Example
|
||||
|
||||
To many new users, the `execute_command` is puzzling. However, it provides an
|
||||
|
|
Loading…
Reference in New Issue