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  }