Commit Graph

487 Commits

Author SHA1 Message Date
DanHam 674bad0ab4
Break very long lines for readability 2018-07-20 02:12:47 +01:00
DanHam d2390f464d
Actually implement the function for the driver 2018-07-20 02:12:45 +01:00
DanHam c2437ba592
Remove the option to place the VHD files in a separate directory
The export process now exports the VM directly from the build directory
into the output directory. There are no intermediate steps or copying of
files involved. This means that there is no longer any benefit in having
a separate directory to house the VHD files - see #5206 for the
reasoning behind the introduction of this feature.

If a user wishes to house the build files on a separate disk from the
output directory (perhaps for performance reasons or due to disk space
limitations) they can still do so through the use of `temp_path`.
2018-07-20 02:12:43 +01:00
DanHam c6b9d9ce90
Add checks/error reporting to compaction process
* Report compaction results
* Failure to find any disks under the supplied path is treated as a
  'soft' error and a warning message will be printed in place of the
  compaction result. Any other failure will cause the build to fail.
2018-07-20 02:12:42 +01:00
DanHam 534fc4a473
Ensure the export directory structure matches that of previous versions
Commit 3fc2defb6 altered the directory structure associated with an
exported VM. The changes mean that the export process now stores the
exported machine files and folders under a folder with name 'vm_name' in
the output directory.
This commit restores the previous behaviour whereby the exported machine
files and folders were stored directly in the output directory. This
allows us to keep the efficiency improvements introduced with 3fc2defb6
while maintaining backward compatibility.

By default the Export-VM command creates three folders in the specified
export directory - 'Virtual Hard Disks', 'Virtual Machines' and
'Snapshots'. When a machine with no associated snapshots is exported the
'Snapshots' directory is empty.
Prior to 3fc2defb6 the Snapshots folder was not copied/incorporated into
the output directory at all. This was a bug.
This commit preserves the legacy behaviour by not including an empty
Snapshots directory in the export. However, if there *are* Snapshots
associated with the VM, they are now moved into the output directory
along with the usual directories containing disks and VM metadata. This
prevents warnings/errors on import due to missing snapshots.
2018-07-20 02:09:57 +01:00
DanHam dc46848f89
Remove now redundant function to copy exported VM files 2018-07-20 02:09:57 +01:00
DanHam 3fc2defb6d
Refactor the export step for Hyper-V ISO and VMCX builders
* Fixes a bug that caused the build to error if users did not
  explicitly set `skip_compaction:true` when setting `skip_export:
  true`. See #6392.
* Improves the efficiency of the compaction and export process by
  reordering the compaction and export steps.
* Further improves the efficiency of the compacting step through
  compacting the vmd* file directly rather than creating and then
  operating on a copy.
* The changes mean the export process now stores the exported machine
  files and folders under a folder with name 'vm_name' in the output
  directory. Previously the exported machine files and folders were
  stored directly in the output directory.
2018-07-20 02:09:54 +01:00
Mathieu Tarral edcc0b3853 shell-local: expose PACKER_HTTP_ADDR env var 2018-07-17 18:49:36 +03:00
Megan Marsh 0df33cd032 fix relative pathing versus iso checksum dir to work even if user has provided a relative path for the iso_url which is relative to the directory where Packer is run. 2018-07-13 09:21:04 -07:00
Megan Marsh d0f0da6626 allow absolute paths to isos in checksum files 2018-07-13 09:14:59 -07:00
M. Marsh e5a63a674e
Merge pull request #6422 from DanHam/fix-gh-vmsecureboot
Hyper-V: Use Get-Command over Get-Help to check for SecureBootTemplate parameter
2018-06-25 16:48:16 -07:00
M. Marsh baaca808e8
Merge pull request #6412 from hashicorp/fix_config_validation_bug_windows_shell_local
found a config validation bug where packer crashes instead of throwin…
2018-06-25 16:47:23 -07:00
DanHam 297f6b85ec
Use Get-Command over Get-Help to check for SecureBootTemplate parameter 2018-06-25 23:52:01 +01:00
Simon Hulme 475e79a251 Fixed SecureBootTemplate not being passed through to PS cmdlet
Added check for SecureBootTemplate parameter for Server 2012 and below
Corrected enableSecureBootString usage
2018-06-25 14:13:43 +01:00
Megan Marsh 4a7953f93a found a config validation bug where packer crashes instead of throwing a validation error if a windows-style path is provided to a provisioner on linux 2018-06-22 13:49:39 -07:00
Jordan Borean efa9021974
Check if hyper-v addresses is an array before slicing it 2018-06-18 14:45:33 +10:00
Giovanni Tirloni 28095cf027 Do not return error on initial HEAD request 2018-06-13 20:30:19 -03:00
Giovanni Tirloni b7ea0b44fc HTTPDownloader - Fix invalid error handling 2018-06-13 17:42:27 -03:00
M. Marsh a012f70e71
Merge pull request #6251 from hashicorp/do_winrm_shell_local
access automatically generated winrm password from shell-local
2018-05-29 12:09:40 -07:00
Megan Marsh 3afca6905b remove duplicate assignmnet 2018-05-29 11:47:27 -07:00
Matthew Hooker 6a769f08d8
regenerate boot command code 2018-05-29 11:17:51 -07:00
Matthew Hooker 788418cff2
Add unit test to show that we handle tars safely 2018-05-25 12:13:59 -07:00
Megan Marsh 846f94c964 implement template variable for accessing WinRM password in either environemnt variables or directly in execute_command or inline commands. 2018-05-23 16:00:43 -07:00
M. Marsh 62e1323577
Merge pull request #5956 from hashicorp/dedupe_shell_local
Deduplicate the code for the shell-local post-processor and shell-local provisioner
2018-05-23 15:54:27 -07:00
Megan Marsh d1e31c0f23 use if/else to clarify code 2018-05-21 15:19:27 -07:00
Megan Marsh 969201a2d4 handle minor shell-local PR suggestions and corrections 2018-05-21 14:56:44 -07:00
Megan Marsh 1fdf763d0f fancier logging 2018-05-21 11:25:51 -07:00
M. Marsh edb5c1f50d
Merge pull request #6243 from camjjack/hyper-v-gui
Using vmconnect to display gui for hyper-v
2018-05-18 11:24:24 -07:00
WaaZaa666 b747877222
Fixing #6267, multiple hyper-v disks 2018-05-17 14:50:18 +02:00
Unknown 29c4b4436d Changes requested in PR #6243
- Logging error if vmconnect.exe fails.
- Using StepRun struct rather than StateBag for command Cancel function
- Better handling in Disconnect when headless is true or vmconnect failed in Start
2018-05-14 20:52:10 +10:00
Unknown fc734b6bd9 Using vmconnect to display gui for hyper-v
vmconnect.exe comes as part of Hyper-V and is the tool used by Hyper-V Manager to connect with a virtual machine. This commits sets behaviour the same as virtualbox and vmware to display the virtual machine connection unless headless is set in the template.
2018-05-14 20:52:10 +10:00
M. Marsh 5871b8242b
Merge pull request #6101 from adarobin/azurecompatible
Add use_fixed_vhd_format Hyper-V ISO option
2018-05-10 17:02:44 -07:00
Stefan Henseler 6f00596053 Adds config option to specify hyper-v secure boot template 2018-05-10 19:00:35 +02:00
DanHam d9d8b93c14
Remove tmp file created by common/ test. Avoid possible race condition. 2018-05-09 22:09:05 +01:00
M. Marsh 7c46e3d89c
Merge pull request #6207 from gtirloni/issue-6203
[WIP] Handle HTTP download errors
2018-05-08 15:56:06 -07:00
Matthew Hooker 5e6e12cacd
Use fmt to convert whatever's in error to a string.
This way we don't crash if someone sticks something else in the error
key in the state bag (which a quick glance at the code tells me we're
already doing.

Perhaps in the future we can add an error attribute to the state bag
but for now this will have to suffice.
2018-05-08 15:22:02 -07:00
Matthew Hooker 0a1842140b
Display build error when on-error=ask|abort 2018-05-08 04:06:03 -07:00
Megan Marsh 1bea658e16 fix command and inline calls on windows 2018-05-07 15:10:10 -07:00
Megan Marsh fabd1a6517 windows cmd env vars 2018-05-07 15:10:10 -07:00
Megan Marsh 9651432378 preserver BC for people using 'command' option 2018-05-07 15:10:10 -07:00
Megan Marsh dd183f22d9 update docs and add warnings around WSL limitations 2018-05-07 15:10:10 -07:00
Megan Marsh 51bcc7aa13 add new feature for telling shell-local whether to use linux pathing on windows; update docs with some examples. 2018-05-07 15:10:10 -07:00
Megan Marsh e983a94a88 fix default windows bash call for shell-local provisioner and move chmod command from the execute_command array into the portion of code where we actually generate inline scripts, sparing users the need to think about this modification which Packer should really handle on its own
make bash call work on windows
2018-05-07 15:10:10 -07:00
Megan Marsh 5da4377f21 first pass at docs update 2018-05-07 15:10:10 -07:00
Megan Marsh 854d6fb141 add tests making sure post-processor has backwards compatability 2018-05-07 15:10:10 -07:00
Megan Marsh f799003b66 tighten up shell-local config validation 2018-05-07 15:10:10 -07:00
Megan Marsh 479d36734d consolidate shell-local defaulting of InlineShebang and ExecuteCommand to the config validation 2018-05-07 15:10:10 -07:00
Megan Marsh d304234725 fix tests 2018-05-07 15:10:10 -07:00
Megan Marsh 67739270bb pull temp file writing into its own function for easier testing 2018-05-07 15:10:10 -07:00
Megan Marsh 6dc4b1cbdc move all of the run commands for shell-local provisioner and postprocessor into common library too 2018-05-07 15:10:09 -07:00
Megan Marsh c7c66bedcb set inline to an empty array, rather than nil 2018-05-07 15:10:09 -07:00
Megan Marsh 926327beba deduplicate all validation and interpolation of the shell-local config, sharing options between shell-local provisioner and post-processor. Maintain backwards compatibility with shell-local provisioner. 2018-05-07 15:10:09 -07:00
Megan Marsh 616b41e58f deduplicate the nearly identical communicators for the shell-local provisioner and post-processor, moving single communicator into a new common/shell-local module 2018-05-07 15:10:09 -07:00
M. Marsh bf6dc932d5
Merge pull request #6219 from jborean93/hyper-v-ip
Hyper-V: Add support retrieving IP for Server 2008 R2
2018-05-04 12:56:17 -07:00
DanHam 7e478f650e
Remove tmp files created by common/ tests 2018-04-30 18:16:46 +01:00
Jordan Borean 14e41fad7e
Hyper-V: Add support retrieving IP for Server 2008 2018-04-30 15:18:28 +10:00
Giovanni Tirloni 413d13c411
Handle HTTP download errors 2018-04-26 18:59:30 -03:00
Adam Robinson 3aebd5f462 Add use_fixed_vhd_format Hyper-V ISO option 2018-04-26 13:35:19 -04:00
Matthew Hooker a3bf2c786a
Use expression sequence generator in tests. 2018-04-23 16:32:18 -07:00
M. Marsh 69c7e2d51d
Merge pull request #6144 from hashicorp/winrm_password_fix
use build name to ensure that winrm password and other shared state i…
2018-04-23 09:12:52 -07:00
Matthew Hooker e4bd30e53d
fix bug with empty boot command. 2018-04-21 11:40:47 -07:00
Matthew Hooker b5a97e468f
fix test 2018-04-19 17:07:58 -07:00
Matthew Hooker 7e9af8247a
fix 2 byte scancodes for pc-xt VMs. 2018-04-19 17:02:39 -07:00
Matthew Hooker 675eae1e92
flush scancodes when we wait 2018-04-19 16:44:50 -07:00
Matthew Hooker 374d8f089f
better log message 2018-04-19 16:09:38 -07:00
Matthew Hooker 31d04f1945
remove outdated comment 2018-04-19 14:26:31 -07:00
Matthew Hooker df6224d04e
fix vnc config 2018-04-19 14:26:31 -07:00
Matthew Hooker aa69bdf74e
Perform validation of boot command. 2018-04-19 14:26:31 -07:00
Matthew Hooker 7d43324359
add menu key.
Replaces #5989
2018-04-19 14:26:31 -07:00
Matthew Hooker e9e27941cc
sort keycode lists 2018-04-19 14:26:31 -07:00
Matthew Hooker c6299972b9
s/boot_command/bootcommand/ 2018-04-19 14:26:31 -07:00
Matthew Hooker 7990966a09
fix boot command config struct name 2018-04-19 14:26:31 -07:00
Matthew Hooker 408eba88ad
flatten boot command config and implement for vmware 2018-04-19 14:26:30 -07:00
Matthew Hooker 9a8acbbcab
negative wait WIP 2018-04-19 14:26:30 -07:00
Matthew Hooker add7e8acb9
Stop sending boot commands when context canceled. 2018-04-19 14:26:30 -07:00
Matthew Hooker 94129b7fe3
we're using PC-XT (set1) not PC-AT 2018-04-19 14:26:30 -07:00
Matthew Hooker a46a7afa20
Remove old tests. 2018-04-19 14:26:29 -07:00
Matthew Hooker e2e7bc65fd
Make special keys case insensitive.
add tests
2018-04-19 14:26:29 -07:00
Matthew Hooker cba4d3235f
cleanup 2018-04-19 14:26:29 -07:00
Matthew Hooker bdb1eee7d8
Implement new parser for HyperV boot command 2018-04-19 14:26:29 -07:00
Matthew Hooker f9ad264f4d
Comments 2018-04-19 14:26:29 -07:00
Matthew Hooker 81d127768c
Add key press interval to virtualbox. 2018-04-19 14:26:29 -07:00
Matthew Hooker 59376294ef
Maximize scancode throughput.
Let's cache the scancodes and flush them at the end. Also make sure to
send only as many as the driver can send correctly. It's important here
to chunk the scancodes correctly, so that we don't accidentally split them
over successive calls to the driver
2018-04-19 14:26:29 -07:00
Matthew Hooker 9b7704c714
Implement new parser for Parallels boot command 2018-04-19 14:26:29 -07:00
Matthew Hooker 99d61920d0
Abstract vbox driver into PC-AT driver. 2018-04-19 14:26:29 -07:00
Matthew Hooker e4af71858f
Implement new parser for Virtualbox boot command
Remove boot wait for virtualbox run step
2018-04-19 14:26:29 -07:00
Matthew Hooker 1c0af28662
Some cleanup and comments. 2018-04-19 14:26:29 -07:00
Matthew Hooker 673245afcf
Replace boot command parser with PEG parser. 2018-04-19 14:26:28 -07:00
M. Marsh f5c031baf9
Merge pull request #5941 from synax/hyper-v-disk-block-size
Adds Support to configure hyper-v disk block size
2018-04-19 11:27:52 -07:00
Stefan Henseler b8bf421dc2 Fixes missing diskblocksize parameter for gen1 vms 2018-04-18 22:14:44 +02:00
Megan Marsh 3afb243f11 use build name to ensure that winrm password and other shared state is not overwritten if two builders need the password in the same packer run. 2018-04-16 13:41:17 -07:00
Seth Vargo b17b333e29
Add a common package for specifying useragent and adopt that everywhere
There were 5 different formats for the Packer useragent string. This
fixes that and unifies it into a helper package.

I did not touch oracle's user-agent, because it looked kinda special.
2018-04-05 14:28:50 -04:00
Hannu Piki 3ffaf551c0 Fixing Hyper-V ISO builder CopyExportedVirtualMachine PowerShell
Script wasn't able to handle path that Packer used to create VM in the first place:
"==> hyperv-iso: Copying to output dir...
==> hyperv-iso: Error exporting vm: PowerShell error: Move-Item : An object at the specified path C:\Users\HANNU~1.PIK does not exist.
==> hyperv-iso: At C:\Users\hannu.piki\AppData\Local\Temp\ps520830935.ps1:13 char:1
==> hyperv-iso: + Move-Item -Path "$srcPath/$vhdDirName" -Destination $dstPath -Verbose
==> hyperv-iso: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
==> hyperv-iso:     + CategoryInfo          : InvalidArgument: (:) [Move-Item], PSArgumentException
==> hyperv-iso:     + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.MoveItemCommand"

Used path was: C:\Users\HANNU~1.PIK\AppData\Local\Temp\packerhv616791918\export253729206\2016min
Real path was: C:\Users\hannu.piki\AppData\Local\Temp\packerhv616791918\export253729206\2016min
2018-03-29 18:34:14 +03:00
Stefan Henseler 03f0b4aa11 Fixes minor typo 2018-03-25 16:30:03 +02:00
Stefan Henseler d31e35075e Removes obsolete code 2018-03-25 16:27:57 +02:00
Megan Marsh d689e6b4d3 allow users of AWS to use the dynamically-generated admin password which we use as the winRM password as an elevated password in the Powershell provisioner, as well as an environment variable in same provisoner. 2018-03-14 15:58:12 -07:00
Josh Soref 5178dd36e8 spelling: regular 2018-03-14 02:19:10 +00:00
Stefan Henseler a6b0bd2927
Merge branch 'master' into hyper-v-disk-block-size 2018-02-23 20:21:22 +01:00
Stefan Henseler 103186af86 Adds Support to configure hyper-v disk block size 2018-02-23 20:19:26 +01:00
Anthony Allen f3c361de6b Fully qualify hyper-v powershell commands 2018-02-07 08:01:05 +01:00
SwampDragons 7d5d62d748
Merge pull request #2906 from arizvisa/GH-2377
Improved support for downloading and validating a uri containing a Windows UNC path or a relative file:// scheme
2018-02-05 09:53:47 -08:00
Ali Rizvi-Santiago 9eb2f37429 Ack! Forgot to include the test-fixtures/SomeDir/myfile.txt file... 2018-02-02 20:44:22 -06:00
Ali Rizvi-Santiago d4b00b722a Removed an extra '/' from the TestFileExistsLocally test in common/config_test.go 2018-02-02 20:36:08 -06:00
Ali Rizvi-Santiago efc97dbda2 Fixed TestFileExistsLocally tests in common/config_test.go so that they're actually being run. Added a non-existent-protocol:// test. 2018-02-02 20:29:10 -06:00
Ali Rizvi-Santiago c366a1e160 Inverted the logic of FileExistsLocally as suggested by @SwampDragons as remote URLs are assumed to exist locally. 2018-02-02 20:17:24 -06:00
Ali Rizvi-Santiago c98a074f0d Renamed common/config.go's SupportedURL to SupportedProtocol as suggested by @SwampDragons. 2018-02-02 18:58:42 -06:00
Ben Phegan 3c88e787df
Merge branch 'master' into hyperv_mac_address 2018-02-02 09:26:52 +11:00
Matthew Hooker 8cd403425e
test fixes WIP 2018-01-24 17:09:17 -08:00
Matthew Hooker 5d48d658b4
Wire context through misc steps
Some steps actually need to pass the context around, so let's create
a ctx variable and pass it.
2018-01-24 17:09:17 -08:00
Matthew Hooker 7a189a83a1
fix imports
`find . -type f -name '*.go' -not -path "./vendor/*" -exec goimports -w {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker a831d522be
change run signatures
Run now takes a context as well as a statebag. We'll assign the context
to the blank identifier to prevent namespace collisions. We'll let the
step authors opt-in to using the context.

`find . -iname "step_*.go" -exec gsed -i'' 's/func \(.*\)Run(/func \1Run(_ context.Context, /' {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker 366dc3da0a
move multistep imports to helper.
gomvpkg -from "github.com/mitchellh/multistep" -to "github.com/hashicorp/packer/helper/multistep"
2018-01-24 17:09:15 -08:00
Matthew Hooker ebe995c0ff
run goimports 2018-01-22 17:21:10 -08:00
Ali Rizvi-Santiago 0e0b467da7 Forgot to check some errors during the adding of files to the floppy disk. This gives users some better information in case packer is unable to add a file...like if there's not enough disk space available. 2018-01-19 13:34:01 -06:00
Ali Rizvi-Santiago 97fc9c02a5 Grr...missed the case that actually mattered on linux. 2018-01-18 23:58:24 -06:00
Ali Rizvi-Santiago f9572cb244 Fixed a bug on linux related to forgetting to check the platform for the forward-slash prefix. 2018-01-18 23:48:20 -06:00
Ali Rizvi-Santiago 41f4dc3f3d umm...gofmt -w on common/config{,_test}.go from linux instead of windows(?) 2018-01-18 23:33:44 -06:00
Ali Rizvi-Santiago 7cd5d576d9 Updated common/config.go's FileExistsLocally implementation to use the LocalDownloader interface for determining the real file path. 2018-01-18 23:18:55 -06:00
Ali Rizvi-Santiago 8a102a42a0 gofmt -w on common/config{,_test}.go 2018-01-18 23:09:53 -06:00
Ali Rizvi-Santiago 15079a99dc Fixed common/config_test.go tests for DownloadableURL to avoid writing to disk on the windows platform. Also added tests for relative paths/uris.
common/config_test.go:
    Replaced instances of os.Mkdir and os.Create with tests that use
        the existing "common/test-fixtures" mechanism.
    Removed the runtime.GOOS test for the "FileExistsLocally" test,
        as the functionality should work regardless of the platform.
    Added some more comprehensive tests for the relative uri/pathing.
    Replaced the Windows Object Manager name test as the Object
        Manager's naming scheme is different from a UNC path.
    Modified the FilePaths tests to support the policy of windows absolute
        paths being prefixed with the `/` introduced with PR #5761.
2018-01-18 23:08:22 -06:00
Ali Rizvi-Santiago 95f60f6153 Modified common/config.go to accommodate some of the new DownloadableURL policies made by the PR #5761 merge.
common/config.go:
    Added the ability for DownloadableURL to promote UNC paths to the SMB uri.
    Modified DownloadableURL to include the "./" prefix when a relative path is passed to it.
    Fix-up the DownloadableURL argument if on windows and incorrectly prefixed with "/".
2018-01-18 22:43:08 -06:00
Ali Rizvi-Santiago 50e9cd2ca7 Initial fixes of common/config.go after rebase before refactoring of test-cases so that they don't require root to run. 2018-01-16 13:46:27 -06:00
Ali Rizvi-Santiago c17f827e1d Split up DownloadableURL() into it's individual components: SupportedURL(), DownloadableURL(), and ValidatedURL(). Updated all instances of DownloadableURL() to point to ValidatedURL(). Reverted the tests that are based on un-supported protocols. 2018-01-16 13:37:32 -06:00
Ali Rizvi-Santiago 3cf448f6ec Reverted previously removed additions of tests that check for ftp:// or nonexistent-protocol:// using DownloadableURL. DownloadableURL's responsibility is not to have inherent knowledge of protocols that are available, but to format an invalid url/path to a valid url/path. 2018-01-16 13:37:32 -06:00
Ali Rizvi-Santiago 4a1fb0d262 Grrr...gofmt -w common/*.go 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 5d97b105a8 Removed implementation of the ftp protocol and the usage of cheggaaa's progress-bar as suggested by @SwampDragons. Replaced some of the old smoke-tests that were based on the ftp-protocol non-existing with a "non-existent://" protocol that's guaranteed to not exist. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 5a3e98b529 Updated the testcases in common/download_test.go to pass a non-nil progress-bar due to the removal of a pointer type in commit ed2e341b7d7f49a063dd5018701b4ae548b8ec14 from yesterday. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago ab4490b967 Consolidated progress bar's appearance into the GetDefaultProgressBar() function. Updated dependency for cheggaaa's progress-bar from the gopkg.in location to the better maintained one on github.com. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 8c6efe336c Added second argument for custom-formatted progress-bar to NewDownloadClient in common/download_test.go. This second parameter was added as a result of commit f0bd9018f3e318caafb1fe7d46e04c470e07c092 which lets you customize the progress-bar format. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 69e5eec1ce Consolidated the progress-bar's format into common/step_download.go. Removed DownloadClient's PercentProgress callback since cheggaaa's progress-bar already does that. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago d85883582f Changed a critical error to a non-critical one when dealing with the strange .CopyFile flag in common/download.go. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago c978e27f0f grr. removed an assignment that was dead in common/download.go. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 5a4ce2165c Modified common/download_test.go to not test the smb:// uri on platforms other than windows. Added an immediate platform error to SMBDownloader.Download as opposed to letting .toPath return it (which would have left the structure partially initialized). 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 4783b6508e Fix common/download_test.go to avoid formatting the volume name to a hidden windows share when not on windows. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago b1ff14714b go fmt 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 11ff4439a6 Moved the setting of HTTPDownloader's current progress to after the object actually gets instantiated. ;) 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 0fa6c3782e Added a progressbar using gopkg.in/cheggaaa/pb.v1 as per #3578 for all the DownloadClients in common/download.go. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago 2f1104625d Fixed some of the unit-tests in common/ due to the changes made in {config,download}.go
config.go:
Fixed some issues related to the url scheme not being lowercased which broke some of the tests.

config_test.go:
Removed the UNC share test for \\host\share\file since SMB support has been moved to a different uri scheme.

download_test.go:
Explicitly set the CopyFile configuration option for all the unit-tests that test file copying capability.
Removed the UNC share testcase since it's under a different uri scheme now.
Modified the file:// UNC share testcase to explicitly test the smb:// uri.
Changed the incorrect t.Errorf calls to t.Logf so that the tests can pass.
2018-01-16 13:37:30 -06:00
Ali Rizvi-Santiago 6170e24ecb Refactored the code a bit to move the CopyFile hack out of DownloadClient and instead into each protocol.
config.go:
Removed all of the windows-specific net/url hackery since it's now handled mostly by download.go
Removed the replacement of '\' with '/' since url.Parse does it now.
Added knowledge of the other protocols implemented in download.go (ftp, smb)
Removed some modules that were unused in this commit.

download.go:
Moved the file-path conversions for the different protocols into their own internally callable functions.
Shuffled some of the functions around in case someone wants to implement the ability to resume.
Modified DownloadClient.Get to remove the CopyFile special case and trust the protocol implementations if a user doesn't want to copy the file.
Since all the protocols except for HTTPDownloader implement Cancel, added a Resume method as a placeholder for another developer to implement.
Added a few missing names from their function definitions.
Fixed the syntax in a few lines due to my suckage at go.
Adjusted the types for progress and total so that they support 64-bit sizes.
Removed the usage of the bufio library since it wasn't really being used.
2018-01-16 13:37:30 -06:00
Ali Rizvi-Santiago 60831801a7 Added the file, ftp, and smb downloaders to common/download.go 2018-01-16 13:36:18 -06:00
Ali Rizvi-Santiago da9c94b345 Added some testcases for the various file uri transforms to download_test.go
Moved some of the code for normalizing a Windows file uri to a regular path into it's own function NormalizeWindowsURL
2018-01-16 13:36:18 -06:00
Ali Rizvi-Santiago 281dd1258a Added proper support for downloading via a Windows UNC path or a relative uri.
Added proper support for validating a downloadableURL containing a UNC or relative uri.
Removed the workaround for an earlier Go issue that had remained dormant in common/download.go (issue #5927).
When building a .vmx file via the vmware-iso builder, transform the path to the correct os-formatted one (using filepath.FromSlash).
2018-01-16 13:36:17 -06:00
SwampDragons fb730cf521
Merge pull request #5761 from hashicorp/fix_5713
fix nasty edge case where we can't find guest additions on windows if they are on a different drive
2018-01-11 11:48:26 -08:00
Megan Marsh bdd186fa2b add tests for fileexistslocally helper function 2018-01-10 16:44:27 -08:00
Megan Marsh 3ace5bb91b simplify FileExistsLocally 2018-01-10 16:11:17 -08:00
Megan Marsh 55ddbf4765 sloppy copypasta 2018-01-10 10:08:23 -08:00
Megan Marsh 898dadd53c re-add this block. I still don't think we need it but I don't want to risk breaking things with this bugfix. 2018-01-10 10:03:36 -08:00
Megan Marsh a04a921c2d add UNC path to test cases, so I can try to enable it in future 2018-01-09 17:14:32 -08:00
Megan Marsh 154973241f add a bunch of windows filepath tests 2018-01-09 16:57:52 -08:00
Megan Marsh 40f0cc6dfe I don't think this is needed anymore 2018-01-09 15:53:54 -08:00
Megan Marsh 2838a2371d disambiguate url variable from url library 2018-01-09 15:47:18 -08:00
Megan Marsh 216c44b153 fix FileExistsLocally 2018-01-09 15:47:07 -08:00
Megan Marsh a3d5d40f78 reformat TestDownloadableURL into a table test to allow adding more URLS 2018-01-05 11:06:26 -08:00
Megan Marsh 4f3b470804 add helper function to manage validation of filepaths created using DownloadableURL 2018-01-03 16:53:47 -08:00
Megan Marsh 54bd057bb9 fix nasty edge case where we can't find guest additions on windows if they are on a different drive 2018-01-03 14:34:11 -08:00
Ben Phegan c338cb79d0 Initial commit of feature to allow MAC address specification for HyperV builders 2017-12-15 13:24:15 +11:00
SwampDragons 72afc2eab3
Merge pull request #5632 from VladRassokhin/do-not-donwload-twice
Do not re-download iso multiple times from different urls
2017-11-29 11:58:14 -08:00
Vladislav Rassokhin af8a0c46c5 Do not re-download iso multiple times from different urls
In case of two or more iso_urls checks for downloaded files prior to downloading them.
Speedups case when some iso already downloaded and another url prepended to iso_urls list.
2017-11-26 00:10:34 +03:00
Vijaya Bhaskar Reddy Kondreddi b7e3f37b44 Add support for differential disk 2017-11-24 12:44:53 +05:30
Megan Marsh 3c20176dbb runtime imported but not used 2017-11-16 11:12:23 -08:00
Megan Marsh 4fb8a27879 remove the actual offending code 2017-11-16 11:03:10 -08:00
Megan Marsh 74a4cc04fe fix regression :( 2017-11-16 10:22:12 -08:00
SwampDragons 2f9a6a99bd
Merge pull request #5578 from paboldin/do-5577
iso_config: allow for subdirs in hash sum files
2017-11-15 13:33:13 -08:00
Megan Marsh 0efcb1bba2 dont error in the downloadableURL function; save validation for preflight steps 2017-11-13 12:42:57 -08:00
Megan Marsh 3a9dfb5b18 better 2017-11-13 12:42:57 -08:00
Megan Marsh e45a006d61 clearly state that url is wrong at validation stage of build 2017-11-13 12:42:57 -08:00
Pavel Boldin 853b04420c iso_config: allow for subdirs in hash sum files
Allow hash sum files and ISOs to be in different directories as
Ubuntu does.

Signed-off-by: Pavel Boldin <boldin.pavel@gmail.com>
2017-11-13 09:28:43 +02:00
Matthew Hooker 68fa09c308
Merge pull request #5512 from hashicorp/fix5501
builder/virtualbox-ovf retry removing VM.
2017-11-06 15:56:08 -08:00
Matthew Hooker f64fa7b5ba
Merge pull request #5491 from BenPhegan/hyperv-disk_additional_size
Hyper-V disk_additional_size capability
2017-10-31 08:42:07 -07:00
Matthew Hooker a66f51f025
Merge pull request #5517 from PatrickLang/hyperv-gen2-autocheckpoint
Fixing auto checkpoints for generation 2 VMs.
2017-10-30 09:33:16 -07:00
Patrick Lang 6d5f75e118 run gofmt 2017-10-25 21:47:14 -07:00
Patrick Lang 95d82b4637 Fixing auto checkpoints for generation 2 VMs. Resolves #5506
Also cleaning up ifs
2017-10-25 21:21:32 -07:00
Matthew Hooker 812fd12a0b
move trimspace to powershell exit check 2017-10-25 13:28:59 -07:00
Matthew Hooker fb098d045d
builder/virtualbox-ovf retry removing VM.
moves behavior from builder/virtualbox-iso into the driver
so it is automatically available to callers.
2017-10-25 10:27:33 -07:00
Matthew Hooker 0be02ab217
hyper-v: Don't error while checking for admin permissions. 2017-10-25 09:18:40 -07:00
Ben Phegan 12fc928e1d Initial commit of Hyper-V disk_additional_size capability. Support a
maximum of 64 disks added to the SCSI controller.  Implement #4823.
2017-10-23 08:26:35 +11:00
Vijaya Bhaskar Reddy Kondreddi 4f6a207441 go fmt 2017-10-11 22:10:39 +05:30
Taliesin Sisson efa62e1550 Can specify an iso, vhd or vhdx for download. If it is a vhd or vhdx it is used as the hard drive for spinning up a new machine, importing an exported virtual machine or cloning a virtual machine.
Can import a virtual machine from a folder
Can clone an existing virtual machine
2017-10-11 22:05:45 +05:30
Taliesin Sisson 452fcbd9a1 Only attach dvd drive if there is one
Fix debug messages for cloning

Add hyperv-vmcx as a builder from command line
2017-10-11 21:42:32 +05:30
Taliesin Sisson 429e1bc3ad Adding an ISO is now optional for hyperv vmcx
Add documentation for hyperv vmcx
2017-10-11 21:42:32 +05:30
Taliesin Sisson 6fd7f0877d Initial check in to add a builder that can clone existing hyper v machines 2017-10-11 21:42:32 +05:30
Matthew Hooker 150b1522f4 Merge pull request #5374 from PatrickLang/hyperv-checkpoint
Disabling automatic checkpoints in hyperv-iso builder
2017-10-09 14:05:16 -07:00
Patrick Lang 6acdb9d148 Disabling automatic checkpoints
Signed-off-by: Patrick Lang <plang@microsoft.com>
2017-09-21 14:51:38 -07:00
Sander Saares 028c941b77 Enable use of separate temp path for Hyper-V VHD 2017-09-02 14:55:00 +03:00
Rickard von Essen 97498f80be
core: iso_checksum_url should strip query param
When iso_urls contains query parameters these should be stripped when
searching the content of iso_checksum_url for a maching checksum.

Closes #5176
2017-07-27 07:21:39 +02:00
Matthew Hooker 94d7a4ce8d
post-processor/vagrant-cloud: try upload once
* fixes multiple uploads mentioned in #4973
* removed unused token code
2017-06-12 17:34:32 -07:00
Petrik van der Velde aa33740ffb Removing the check for administrator rights from the script that sends keystrokes to Hyper-V.
Because Packer has already verified that we are running with at least Hyper-V administrator rights this should
be safe. Having the requirement for administrator rights in the script means that you still need to be an
administrator if you want to use packer to build Hyper-V images with a configuration that requires you to
send keystrokes to the MV, say when building a Linux box.
2017-04-15 11:04:15 +12:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker 35578d9ed1
remove unnecessary type conversions 2017-03-28 20:36:21 -07:00
Matthew Hooker 79287d7e47
simplify some code 2017-03-28 20:36:20 -07:00
Matthew Hooker 230079f73a
spell fixes 2017-03-28 20:36:19 -07:00
Matthew Hooker 0ad6b169bc
builder/virtualbox: retry removing floppy controller 2017-03-23 23:58:23 -07:00
Matthew Hooker 262c8dc24a
WIP fix #4670 2017-03-16 14:18:41 -07:00
Matthew Hooker 22d1322bd9
always check for an error first when walking a path 2017-01-26 16:32:21 -08:00
Matthew Hooker 56115ee270 Merge pull request #4398 from mitchellh/portinclusive
step_http_server: make port range inclusive
2017-01-19 13:38:27 -08:00
Matthew Hooker d2e59e4e92
set PACKER_HTTP_ADDR env var when available.
If using a builder that has an http server set up for file transfer,
expose the connection info to the shell provisioner through the environment
variable PACKER_HTTP_ADDR.

Closes #2869
2017-01-16 23:19:52 -08:00
Chris Bednarski ee2d636840 Improve delay between key events
- Can now tune delay using PACKER_KEY_INTERVAL
- Added implementation to all of VMware and QEMU
- Removed double delay for QEMU
- Default key delay of 100ms (as before)
- Added docs to QEMU and VMware pages
2017-01-14 17:56:04 -08:00
Matthew Hooker 36b436b2b7
make port range inclusive 2017-01-13 14:22:25 -08:00
Taliesin Sisson 3824ea157d Merge pull request #4317 from Tadas/fix-ps-noprofile
Add -NoProfile switch for PowerShell execution
2017-01-12 22:47:49 +00:00
Tadas Medisauskas 088d3d1ac8 Add -NoProfile switch 2016-12-22 14:50:17 +00:00