diff --git a/common/multistep_runner.go b/common/multistep_runner.go index a9b155086..512a3ecd4 100644 --- a/common/multistep_runner.go +++ b/common/multistep_runner.go @@ -61,6 +61,10 @@ type abortStep struct { ui packer.Ui } +func (s abortStep) InnerStepName() string { + return typeName(s.step) +} + func (s abortStep) Run(state multistep.StateBag) multistep.StepAction { return s.step.Run(state) } @@ -82,6 +86,10 @@ type askStep struct { ui packer.Ui } +func (s askStep) InnerStepName() string { + return typeName(s.step) +} + func (s askStep) Run(state multistep.StateBag) (action multistep.StepAction) { for { action = s.step.Run(state) diff --git a/vendor/github.com/mitchellh/multistep/debug_runner.go b/vendor/github.com/mitchellh/multistep/debug_runner.go index 42f68f242..882009494 100644 --- a/vendor/github.com/mitchellh/multistep/debug_runner.go +++ b/vendor/github.com/mitchellh/multistep/debug_runner.go @@ -17,6 +17,13 @@ const ( DebugLocationBeforeCleanup ) +// StepWrapper is an interface that wrapped steps can implement to expose their +// inner step names to the debug runner. +type StepWrapper interface { + // InnerStepName should return the human readable name of the wrapped step. + InnerStepName() string +} + // DebugPauseFn is the type signature for the function that is called // whenever the DebugRunner pauses. It allows the caller time to // inspect the state of the multi-step sequence at a given step. @@ -56,8 +63,14 @@ func (r *DebugRunner) Run(state StateBag) { steps := make([]Step, len(r.Steps)*2) for i, step := range r.Steps { steps[i*2] = step + name := "" + if wrapped, ok := step.(StepWrapper); ok { + name = wrapped.InnerStepName() + } else { + name = reflect.Indirect(reflect.ValueOf(step)).Type().Name() + } steps[(i*2)+1] = &debugStepPause{ - reflect.Indirect(reflect.ValueOf(step)).Type().Name(), + name, pauseFn, } } diff --git a/vendor/vendor.json b/vendor/vendor.json index fd9ddfa96..ffe54fc9f 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -633,9 +633,10 @@ "revision": "281073eb9eb092240d33ef253c404f1cca550309" }, { - "checksumSHA1": "9Vh2o3Vs6HzI8P04ks4kvIpegco=", + "checksumSHA1": "5x1RX5m8SCkCRLyLL8wBc0qJpV8=", "path": "github.com/mitchellh/multistep", - "revision": "162146fc57112954184d90266f4733e900ed05a5" + "revision": "391576a156a54cfbb4cf5d5eda40cf6ffa3e3a4d", + "revisionTime": "2017-03-16T18:53:39Z" }, { "checksumSHA1": "VBo7ciCNRr7wNVFmBTW8sm4PQ14=",