diff --git a/post-processor/vsphere/post-processor.go b/post-processor/vsphere/post-processor.go index 2689ffffc..19f489928 100644 --- a/post-processor/vsphere/post-processor.go +++ b/post-processor/vsphere/post-processor.go @@ -22,18 +22,20 @@ var builtins = map[string]string{ type Config struct { common.PackerConfig `mapstructure:",squash"` - Insecure bool `mapstructure:"insecure"` - Cluster string `mapstructure:"cluster"` - Datacenter string `mapstructure:"datacenter"` - Datastore string `mapstructure:"datastore"` - DiskMode string `mapstructure:"disk_mode"` - Host string `mapstructure:"host"` - Password string `mapstructure:"password"` - ResourcePool string `mapstructure:"resource_pool"` - Username string `mapstructure:"username"` - VMFolder string `mapstructure:"vm_folder"` - VMName string `mapstructure:"vm_name"` - VMNetwork string `mapstructure:"vm_network"` + Cluster string `mapstructure:"cluster"` + Datacenter string `mapstructure:"datacenter"` + Datastore string `mapstructure:"datastore"` + DiskMode string `mapstructure:"disk_mode"` + Host string `mapstructure:"host"` + Insecure bool `mapstructure:"insecure"` + Options []string `mapstructure:"options"` + Overwrite bool `mapstructure:"overwrite"` + Password string `mapstructure:"password"` + ResourcePool string `mapstructure:"resource_pool"` + Username string `mapstructure:"username"` + VMFolder string `mapstructure:"vm_folder"` + VMName string `mapstructure:"vm_name"` + VMNetwork string `mapstructure:"vm_network"` ctx interpolate.Context } @@ -131,6 +133,16 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifact) (pac fmt.Sprintf("\"%s\"", ovftool_uri), } + ui.Message(fmt.Sprintf("Uploading %s to vSphere", source)) + + if p.config.Overwrite == true { + args = append(args, "--overwrite") + } + + if len(p.config.Options) > 0 { + args = append(args, p.config.Options...) + } + ui.Message(fmt.Sprintf("Uploading %s to vSphere", source)) var out bytes.Buffer log.Printf("Starting ovftool with parameters: %s", strings.Join(args, " ")) diff --git a/website/source/docs/post-processors/vsphere.html.markdown b/website/source/docs/post-processors/vsphere.html.markdown index 300155773..90bf6f40b 100644 --- a/website/source/docs/post-processors/vsphere.html.markdown +++ b/website/source/docs/post-processors/vsphere.html.markdown @@ -53,4 +53,11 @@ Optional: - `vm_folder` (string) - The folder within the datastore to store the VM. -- `vm_network` (string) - The name of the VM network this VM will be added to. +- `vm_network` (string) - The name of the VM network this VM will be + added to. + +- `overwrite` (boolean) - If it's true force the system to overwrite the + existing files instead create new ones. Default is false + +- `options` (array of strings) - Custom options to add in ovftool. See `ovftool + --help` to list all the options