github.phpd.cn/hashicorp/packer@v1.3.2/builder/parallels/common/shutdown_config.go (about) 1 package common 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/hashicorp/packer/template/interpolate" 8 ) 9 10 // ShutdownConfig contains the configuration for VM shutdown. 11 type ShutdownConfig struct { 12 ShutdownCommand string `mapstructure:"shutdown_command"` 13 RawShutdownTimeout string `mapstructure:"shutdown_timeout"` 14 15 ShutdownTimeout time.Duration `` 16 } 17 18 // Prepare sets default values to the VM shutdown configuration. 19 func (c *ShutdownConfig) Prepare(ctx *interpolate.Context) []error { 20 if c.RawShutdownTimeout == "" { 21 c.RawShutdownTimeout = "5m" 22 } 23 24 var errs []error 25 var err error 26 c.ShutdownTimeout, err = time.ParseDuration(c.RawShutdownTimeout) 27 if err != nil { 28 errs = append(errs, fmt.Errorf("Failed parsing shutdown_timeout: %s", err)) 29 } 30 31 return errs 32 }