Commit 1aa102dd authored by Nick Cronin's avatar Nick Cronin

addresses #1191 - Add VMWare virtualhw.version configuration option under 'version'

parent 2c0a7a50
...@@ -40,6 +40,7 @@ type config struct { ...@@ -40,6 +40,7 @@ type config struct {
ISOChecksum string `mapstructure:"iso_checksum"` ISOChecksum string `mapstructure:"iso_checksum"`
ISOChecksumType string `mapstructure:"iso_checksum_type"` ISOChecksumType string `mapstructure:"iso_checksum_type"`
ISOUrls []string `mapstructure:"iso_urls"` ISOUrls []string `mapstructure:"iso_urls"`
Version string `mapstructure:"version"`
VMName string `mapstructure:"vm_name"` VMName string `mapstructure:"vm_name"`
BootCommand []string `mapstructure:"boot_command"` BootCommand []string `mapstructure:"boot_command"`
SkipCompaction bool `mapstructure:"skip_compaction"` SkipCompaction bool `mapstructure:"skip_compaction"`
...@@ -110,6 +111,10 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { ...@@ -110,6 +111,10 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
b.config.VMName = fmt.Sprintf("packer-%s", b.config.PackerBuildName) b.config.VMName = fmt.Sprintf("packer-%s", b.config.PackerBuildName)
} }
if b.config.Version == "" {
b.config.Version = "9"
}
if b.config.RemoteUser == "" { if b.config.RemoteUser == "" {
b.config.RemoteUser = "root" b.config.RemoteUser = "root"
} }
......
...@@ -134,6 +134,10 @@ func TestBuilderPrepare_Defaults(t *testing.T) { ...@@ -134,6 +134,10 @@ func TestBuilderPrepare_Defaults(t *testing.T) {
t.Errorf("bad output dir: %s", b.config.OutputDir) t.Errorf("bad output dir: %s", b.config.OutputDir)
} }
if b.config.Version != "9" {
t.Errorf("bad Version: %s", b.config.Version)
}
if b.config.SSHWaitTimeout != (20 * time.Minute) { if b.config.SSHWaitTimeout != (20 * time.Minute) {
t.Errorf("bad wait timeout: %s", b.config.SSHWaitTimeout) t.Errorf("bad wait timeout: %s", b.config.SSHWaitTimeout)
} }
......
...@@ -15,6 +15,7 @@ type vmxTemplateData struct { ...@@ -15,6 +15,7 @@ type vmxTemplateData struct {
GuestOS string GuestOS string
DiskName string DiskName string
ISOPath string ISOPath string
Version string
} }
// This step creates the VMX file for the VM. // This step creates the VMX file for the VM.
...@@ -41,6 +42,7 @@ func (s *stepCreateVMX) Run(state multistep.StateBag) multistep.StepAction { ...@@ -41,6 +42,7 @@ func (s *stepCreateVMX) Run(state multistep.StateBag) multistep.StepAction {
Name: config.VMName, Name: config.VMName,
GuestOS: config.GuestOSType, GuestOS: config.GuestOSType,
DiskName: config.DiskName, DiskName: config.DiskName,
Version: config.Version,
ISOPath: isoPath, ISOPath: isoPath,
} }
...@@ -180,7 +182,7 @@ tools.upgrade.policy = "upgradeAtPowerCycle" ...@@ -180,7 +182,7 @@ tools.upgrade.policy = "upgradeAtPowerCycle"
usb.pciSlotNumber = "32" usb.pciSlotNumber = "32"
usb.present = "FALSE" usb.present = "FALSE"
virtualHW.productCompatibility = "hosted" virtualHW.productCompatibility = "hosted"
virtualHW.version = "9" virtualHW.version = "{{ .Version }}"
vmci0.id = "1861462627" vmci0.id = "1861462627"
vmci0.pciSlotNumber = "35" vmci0.pciSlotNumber = "35"
vmci0.present = "TRUE" vmci0.present = "TRUE"
......
...@@ -216,6 +216,8 @@ each category, the available options are alphabetized and described. ...@@ -216,6 +216,8 @@ each category, the available options are alphabetized and described.
`tools_upload_flavor`. By default the upload path is set to `tools_upload_flavor`. By default the upload path is set to
`{{.Flavor}}.iso`. `{{.Flavor}}.iso`.
* `version` (string) - This is the vmx hardware version for the new virtual machine, by default this is '9'. [reference document](http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003746)
* `vm_name` (string) - This is the name of the VMX file for the new virtual * `vm_name` (string) - This is the name of the VMX file for the new virtual
machine, without the file extension. By default this is "packer-BUILDNAME", machine, without the file extension. By default this is "packer-BUILDNAME",
where "BUILDNAME" is the name of the build. where "BUILDNAME" is the name of the build.
...@@ -320,6 +322,7 @@ these variables isn't required, however. ...@@ -320,6 +322,7 @@ these variables isn't required, however.
* `GuestOS` - The VMware-valid guest OS type. * `GuestOS` - The VMware-valid guest OS type.
* `DiskName` - The filename (without the suffix) of the main virtual disk. * `DiskName` - The filename (without the suffix) of the main virtual disk.
* `ISOPath` - The path to the ISO to use for the OS installation. * `ISOPath` - The path to the ISO to use for the OS installation.
* `Version` - The Hardware version VMWare will execute this vm under. Also known as the `virtualhw.version`.
## Building on a Remote vSphere Hypervisor ## Building on a Remote vSphere Hypervisor
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment