diff --git a/provisioner/powershell/provisioner.go b/provisioner/powershell/provisioner.go index 1b0dbe226..b3d44ffa3 100644 --- a/provisioner/powershell/provisioner.go +++ b/provisioner/powershell/provisioner.go @@ -354,11 +354,9 @@ func (p *Provisioner) Provision(ctx context.Context, ui packersdk.Ui, comm packe log.Printf("remote cleanup script failed to upload; skipping the removal of temporary files: %s; ", strings.Join(uploadedScripts, ",")) } - if p.config.PauseAfter != 0 { ui.Say(fmt.Sprintf("Pausing %s after this provisioner...", p.config.PauseAfter)) - select { - case <-time.After(p.config.PauseAfter): - return nil - } + if p.config.PauseAfter != 0 { + ui.Say(fmt.Sprintf("Pausing %s after this provisioner...", p.config.PauseAfter)) + time.Sleep(p.config.PauseAfter) } return nil diff --git a/provisioner/powershell/provisioner_test.go b/provisioner/powershell/provisioner_test.go index 3e95e22a1..515c85ff8 100644 --- a/provisioner/powershell/provisioner_test.go +++ b/provisioner/powershell/provisioner_test.go @@ -395,14 +395,17 @@ func TestProvisionerProvision_PauseAfter(t *testing.T) { p.config.PackerBuildName = "vmware" p.config.PackerBuilderType = "iso" p.config.ValidExitCodes = []int{0, 200} - pause_amount := time.Duration(1 * time.Second) + pause_amount := time.Second p.config.PauseAfter = pause_amount comm := new(packersdk.MockCommunicator) comm.StartExitStatus = 200 - p.Prepare(config) + err := p.Prepare(config) + if err != nil { + t.Fatalf("Prepar failed: %s", err) + } start_time := time.Now() - err := p.Provision(context.Background(), ui, comm, generatedData()) + err = p.Provision(context.Background(), ui, comm, generatedData()) end_time := time.Now() if err != nil {