clarify pathing requirements for hyperv-vmcx

This commit is contained in:
Megan Marsh 2019-06-24 10:56:32 -07:00
parent 757bd4bed9
commit 29bff0975f
2 changed files with 20 additions and 1 deletions

View File

@ -221,6 +221,21 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
errs, fmt.Errorf("CloneFromVMCXPath does not exist: %s", err)) errs, fmt.Errorf("CloneFromVMCXPath does not exist: %s", err))
} }
} }
if strings.HasSuffix(strings.ToLower(b.config.CloneFromVMCXPath), ".vmcx") {
// User has provided the vmcx file itself rather than the containing
// folder.
if strings.Contains(b.config.CloneFromVMCXPath, "Virtual Machines") {
keep := strings.Split(b.config.CloneFromVMCXPath, "Virtual Machines")
b.config.CloneFromVMCXPath = keep[0]
} else {
errs = packer.MultiErrorAppend(errs, fmt.Errorf("Unable to "+
"parse the clone_from_vmcx_path to find the vm directory. "+
"Please provide the path to the folder containing the "+
"vmcx file, not the file itself. Example: instead of "+
"C:\\path\\to\\output-hyperv-iso\\Virtual Machines\\filename.vmcx"+
", provide C:\\path\\to\\output-hyperv-iso\\."))
}
}
} }
if b.config.Generation < 1 || b.config.Generation > 2 { if b.config.Generation < 1 || b.config.Generation > 2 {

View File

@ -33,7 +33,7 @@ Import from folder:
``` json ``` json
{ {
"type": "hyperv-vmcx", "type": "hyperv-vmcx",
"clone_from_vmcx_path": "c:/virtual machines/ubuntu-12.04.5-server-amd64", "clone_from_vmcx_path": "c:/path/to/ubuntu-12.04.5-server-amd64",
"ssh_username": "packer", "ssh_username": "packer",
"ssh_password": "packer", "ssh_password": "packer",
"shutdown_command": "echo 'packer' | sudo -S shutdown -P now" "shutdown_command": "echo 'packer' | sudo -S shutdown -P now"
@ -77,6 +77,10 @@ builder.
previously exported virtual machine. The exported machine will be used previously exported virtual machine. The exported machine will be used
as the source for new VM. as the source for new VM.
note: You should provide the named directory that contains the
"Virtual Machines", "Snapshots", and/or "Virtual Hard Disks" subdirectories,
not the .vmcx file itself.
### Required for virtual machine clone: ### Required for virtual machine clone: