Commit Graph

606 Commits

Author SHA1 Message Date
Megan Marsh 3389d843f0 update all provisioners that used the winrmpassword tooling to use the new generateddata option 2019-12-12 16:42:53 -08:00
Megan Marsh 39fd462b56 change all provision func signatures to use map[string]interface{} 2019-12-12 15:38:32 -08:00
Megan Marsh 5d266b20d0 generated func now validates based on data provided in context, which needs to include the future values if it is to be interpolated properly. 2019-12-11 15:43:38 -08:00
Megan Marsh 528b853178 stub out generated func for validation 2019-12-11 15:43:38 -08:00
Megan Marsh 7616fbcf3f skip shell local for now 2019-12-11 15:43:38 -08:00
Megan Marsh 6f418d0e54 get data sharing to a working state with the powershell provisioner 2019-12-11 15:43:38 -08:00
Megan Marsh f4c3501af5 pass struct of generated data into provision() call 2019-12-11 15:43:38 -08:00
Sylvia Moss 096cab9b48 Fix floppy doc markdown typo (#8458) 2019-12-06 14:12:11 +01:00
Megan Marsh 76bfaf9da8
Merge pull request #8394 from hashicorp/fix_iso_target_path
Don't cache when TargetPath is non-nil
2019-12-02 16:24:56 -08:00
Megan Marsh a8ffa60b46 remove the already-included packer config from top level struct 2019-11-25 11:24:00 -08:00
Megan Marsh 7d4353864f use shell struct in shell-local provisioner and post-processor. 2019-11-21 16:47:29 -08:00
Megan Marsh cf0130b9ed pick up dropped error 2019-11-20 16:16:33 -08:00
Megan Marsh 9fc8ed02ae Don't cache when TargetPath is non-nil; this messes up use of the iso_target_path iso template option. 2019-11-20 16:05:24 -08:00
Megan Marsh ae184fe31d ask for VM by name to reduce looping. 2019-11-08 16:20:03 -08:00
nywilken 3522e13b1e provisioner/shell: Add `env_var_format` support to shell provisioner
* Move setting of default EnvVarFormat to the Prepare function
* Add generated hcl2 structure for the updated Shell provisioner config
* Move `EnvVarFormat` field to shared common shell type
* Add description for the `env_var_format` parameter
* Update `env_var_format` when used with `use_env_var_file`
2019-11-06 16:28:56 -05:00
Adrien Delorme c0db000dc3
Merge pull request #8310 from alrs/resuscitate-common-floppy-tests
common: Resuscitate Floppy Tests
2019-11-04 15:50:46 +01:00
Lars Lehtonen 5926997a31
common: remove unused test function getDirectory() 2019-11-02 11:37:41 -07:00
Lars Lehtonen 9a90aa67e6
common: resuscitate TestStepCreateFloppy_missing() 2019-11-02 10:12:31 -07:00
Lars Lehtonen 8e2885e626
common: resuscitate TestStepCreateFloppy_notfound() 2019-11-02 10:10:36 -07:00
Adrien Delorme 819329228a Change back to make sure all durations are a time.Duration
It is simply the best/simplest solution and trying to prevent users from passing and integer here would be like opening a can of worms. Because:

* we cannot make mapstructure validate our duration string ( with an UnmarshalJSON func etc.)
* we cannot make mapstructure spit a string instead of a duration and packer will decode-encode-decode config.
* the hcl2 generated code asks for a string, so this will be enforced by default.
2019-10-31 16:12:07 +01:00
Adrien Delorme bf3d9841c6 Force durations to be passed a strings
Before this commit it was possible to set a duration using an integer or a float. Go's time.Duration is an int64 internally an mapstructure will take advantage of this and load the number as a int64 but `1` means one ns which is unexpected/confusing. To avoid confusion and enforce readability this forces users to pass a string with a unit for a duration; ex "56s".
2019-10-31 11:47:19 +01:00
Megan Marsh a783a09ea3
Merge pull request #8269 from paulmey/paulmey/generalize-chroot
[amazon/chroot] Move common/generic chroot builder steps to common directory
2019-10-24 14:32:01 -07:00
Paul Meyer 3be7d81ce2 Move common steps together 2019-10-24 04:21:46 +00:00
Paul Meyer e6dfe301ac Move CommandWrapper & ShellCommand to common 2019-10-24 04:06:29 +00:00
Lars Lehtonen 731e0332cf common: collect dropped error 2019-10-23 13:02:08 -07:00
Megan Marsh d15f43e4eb
Merge pull request #8232 from hashicorp/artifact-tree
HCL2 configs - part one
2019-10-22 11:54:34 -07:00
Megan Marsh e5becfc854
Merge pull request #8248 from marcinbojko/master
hyper-v fix for compacting only .vhd|.vhdx files
2019-10-21 11:47:15 -07:00
Marcin Bojko 1b4ffe546f
hyper-v fix for compacting vhdx/vhd only 2019-10-19 12:46:34 +02:00
Adrien Delorme cf1555bf17 Merge remote-tracking branch 'origin/master' into artifact-tree 2019-10-16 10:22:56 +02:00
Vladimír d6994df188
Select first adapter attached to host OS's switch
If more than one vNic is attached to vmSwitch, use the first one only.
2019-10-15 15:14:22 +02:00
Adrien Delorme 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Adrien Delorme 7be94f41a6 common.shell-local: unexport Ctx field
so that it doesn't temper with hcl2 generation
2019-10-15 12:56:42 +02:00
Davor Kapsa 49e4a2d9ef
Add error check 2019-10-09 15:55:07 +02:00
Megan Marsh 843986c2d4 missing bracket 2019-10-04 10:41:12 -07:00
Megan Marsh 59efa0faee rename option to error-cleanup-privisoner, which I think is clearer 2019-09-25 13:43:29 -07:00
Megan Marsh 5bd8fee708 Creates a final "cleanup" provisioner to run if an error occurs during a provisioning step, allowing users to perform any custom cleanup tasks that must happen on the VM before the VM is shut down and destroyed. 2019-09-24 16:08:15 -07:00
Adrien Delorme 299544a4c7 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-20 14:47:02 +02:00
Lars Lehtonen a98f2d2170
common: fix dropped errors and warnings in test 2019-09-20 05:06:25 -07:00
Adrien Delorme 3fe9d52e3f Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-20 11:15:44 +02:00
allinwait 34ba03d3cb use printf for logging 2019-09-13 01:53:42 +03:00
allinwait 171c2a9a07 add the floppy label option 2019-09-12 12:25:22 +00:00
Adrien Delorme 597a3e323b Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-10 13:20:07 +02:00
Adrien Delorme aa9cc919ab Merge branch 'master' into circle_ci_windows 2019-09-10 12:54:35 +02:00
Adrien Delorme 146b88ba1e Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-10 12:44:46 +02:00
DanHam 2b6286c31c
Fix powershell formatting. Match style for conditionals 2019-09-09 23:05:40 +01:00
Adrien Delorme 7ba91b7d25 configure_port_test.go: don't panic when error is not what we expected 2019-09-05 17:03:54 +02:00
Marcin Bojko d4ff29f6c5 hyper-v fix when management interface is not part of virtual switch
2


formatting fix
2019-08-22 07:54:50 +02:00
Adrien Delorme 4cb7c30987 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-08-21 16:44:23 +02:00
Megan Marsh cd3b39ad17 commit generated code 2019-08-12 15:55:43 -07:00
Stephen Fox a6830f8348 Move 'ui' variable closer to invocation. 2019-07-31 14:08:40 -04:00
Stephen Fox e362d2f3ee Use 'log.Printf()' for StepDownload debug instead of 'ui.Say()'. 2019-07-31 14:02:57 -04:00
Megan Marsh 90c5da40f2 implement abort logic and printing for the askstep implementation as well 2019-07-26 12:24:03 -07:00
Megan Marsh 54034689ef On abort, return gracefully rather than exiting so that the subprocess doesn't unexpectedly disconnect from the parent and cause a confusing EOF error in the logs 2019-07-25 16:32:16 -07:00
Christian Muehlhaeuser 216afbaa8b
Fixed various typos
Just a bunch of nit-picky typo fixes.
2019-07-25 06:49:51 +02:00
Megan Marsh e9549d2688 add test for local fs download 2019-07-22 09:17:48 -07:00
Megan Marsh 197a283b5e actually check for filepath being present 2019-07-19 10:35:50 -07:00
Megan Marsh 64f16474f8 fix double slash conundrum 2019-07-19 10:16:40 -07:00
WilliamB aef77771c0 Correct HTTPIP == FALSE on HyperV builder 2019-07-17 03:41:41 -05:00
Megan Marsh d6d4eb2087 fix some tests and some config behavior to prevent null dereference errors and incorrect precedence between iso checksum and iso checksum url 2019-06-28 15:29:39 -07:00
Megan Marsh 998ef4053f parse checksum file so that we can use the checksums inside in the vmware-esxi builder stepuploadiso 2019-06-28 14:35:43 -07:00
Megan Marsh 88d589cc88 enable smb share double backslash pathing too 2019-06-26 13:43:05 -07:00
Megan Marsh 12471a8b06 use file getter for smb shares 2019-06-26 13:21:49 -07:00
Adrien Delorme 735b34e01f Document the virtualbox-iso builder using partials 2019-06-19 17:37:22 +02:00
Adrien Delorme 4c1abf828c
Merge branch 'master' into scrape_doc_to_builder_struct_config 2019-06-19 11:21:06 +02:00
Megan Marsh 8d25cc578f
Merge pull request #7746 from hashicorp/fix_7671
Abort hyperv build if there's a name collision
2019-06-14 10:58:22 -07:00
Adrien Delorme daa9f9d34e Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-06-14 15:17:56 +02:00
Adrien Delorme 425ad1c67e generate Shutdown command docs from strutc & use in hyperv 2019-06-14 12:43:31 +02:00
Adrien Delorme c11ef90cb6 use interpolate.NewContext() instead of testConfigTemplate(t)
because it's what's happenning there
2019-06-14 12:17:28 +02:00
Adrien Delorme 926c8bbaa6 refactor ShutdownConfig into a single struct 2019-06-14 12:17:28 +02:00
Adrien Delorme 24fad50b00 hyperv-iso: document boot config, http & floppy from partials 2019-06-14 12:17:27 +02:00
Adrien Delorme 3bb8c92902 qemu: document boot command from struct 2019-06-14 12:17:27 +02:00
Adrien Delorme b48d22b43b qemu: document FloppyConfig from struct 2019-06-14 11:52:38 +02:00
Adrien Delorme 3b66cac617 document HTTPConfig from struct 2019-06-14 11:52:38 +02:00
Megan Marsh 2e821da84b check to make sure a vm-name isn't already in use before trying to launch a vm with said name. 2019-06-13 14:09:45 -07:00
Adrien Delorme dbfadc0eea generate struct markdown from common/iso_config.go 2019-06-12 16:02:49 +02:00
Adrien Delorme 20a152d4aa add comments to common/iso_config.go from docs 2019-06-12 16:02:02 +02:00
Adrien Delorme ca33f8bc5c Revert "Backoff.Linear: panic when InitialBackoff > MaxBackoff"
This reverts commit 39cfacd5fa.
2019-06-11 12:53:06 +02:00
Adrien Delorme 39cfacd5fa Backoff.Linear: panic when InitialBackoff > MaxBackoff
this probably means there's a configuration issue.

Since this struct is mainly set manually from code, I think it is okay to panic here.
2019-06-11 12:41:21 +02:00
Adrien Delorme 36e4eaff99 document retry.Backoff better 2019-06-11 12:20:00 +02:00
Radek Simko 8519da6ce9
common/net: Cleanup cache of used port after closing 2019-05-06 22:11:52 +01:00
Adrien Delorme b329073e54 remove trying port log as retry code will show errors
less logs !
2019-05-01 13:04:51 +02:00
Adrien Delorme 38f789eedc add error types to test for 2019-05-01 13:01:25 +02:00
Adrien Delorme 14f2d1c132 ListenRangeConfig:Listen: use the retry pkg to wait a bit in between opens 2019-05-01 12:27:32 +02:00
Adrien Delorme e14d1b8b0b add a timeout trying to open a random port 2019-05-01 12:01:34 +02:00
Adrien Delorme 2fd7adffc4 add tests for ListenRangeConfig.Listen 2019-05-01 11:46:48 +02:00
Adrien Delorme d9e5145de9 Shadow the flock pkg & add a noop filelock so that at least the solaris binary can be built
Without this the following error occurs:

$ GOOS=solaris go build .
# github.com/hashicorp/packer/vendor/github.com/gofrs/flock
vendor/github.com/gofrs/flock/flock_unix.go:28:22: undefined: syscall.LOCK_EX
vendor/github.com/gofrs/flock/flock_unix.go:39:22: undefined: syscall.LOCK_SH
vendor/github.com/gofrs/flock/flock_unix.go:56:12: undefined: syscall.Flock
vendor/github.com/gofrs/flock/flock_unix.go:66:12: undefined: syscall.Flock
vendor/github.com/gofrs/flock/flock_unix.go:96:12: undefined: syscall.Flock
vendor/github.com/gofrs/flock/flock_unix.go:96:42: undefined: syscall.LOCK_UN
vendor/github.com/gofrs/flock/flock_unix.go:118:21: undefined: syscall.LOCK_EX
vendor/github.com/gofrs/flock/flock_unix.go:130:21: undefined: syscall.LOCK_SH
vendor/github.com/gofrs/flock/flock_unix.go:149:9: undefined: syscall.Flock
vendor/github.com/gofrs/flock/flock_unix.go:149:44: undefined: syscall.LOCK_NB
vendor/github.com/gofrs/flock/flock_unix.go:149:44: too many errors
2019-04-30 16:01:23 +02:00
Adrien Delorme 5d9d43c01d add tests for ListenRangeConfig.Listen 2019-04-30 15:42:59 +02:00
Adrien Delorme fd63ec9a6c ListenRangeConfig.Listen: move trying port log after fslock trylock for less logs 2019-04-30 15:35:22 +02:00
Adrien Delorme 79ae62801f ListenRangeConfig: default network ( protocol ) to tcp 2019-04-30 14:55:38 +02:00
Adrien Delorme 65be2be38b step_download: force copy of local files only on windows 2019-04-29 09:39:21 +02:00
Adrien Delorme 200e26ea85 Step download: always copy local files
instead of symlinking to fix #7534. The longer term fix for this would be to change the go-getter so that it can leave the source file where it is & tell us where it is.

We will do this when the right time comes.
2019-04-26 10:35:18 +02:00
Adrien Delorme 9f1136db77 retry: encapsulate & return the last seen error in a RetryExhaustedError 2019-04-24 14:19:23 +02:00
Megan Marsh e69d95eb37 when retries were exhausted in the retry Run, we were returning nil instead of an error. 2019-04-23 13:48:30 -07:00
Adrien Delorme 5f0259fe89 step download: don't fail when checksum_type is not set 2019-04-16 18:09:54 +02:00
Adrien Delorme 4dc12701d3 step_download: display clearer error messages, also when the checksum is not set
Usually the builder validation should error when the checksum is empty, but for the virtualbox-ovf builder this is not validated. Which is something I didn't see when refactoring for go-getter incorporation/refactor.
2019-04-15 14:34:09 +02:00
Megan Marsh 78cf1405ab
Merge pull request #7480 from BobSilent/fix-hyperv-multiple-hostadapter-same-switch
Fixes "Host IP for the HyperV machine: False" if more than one VMNetworkAdapter is found
2019-04-12 14:06:46 -07:00
Adrien Delorme 9ac8d8aed8 step download: ovf files usually point to a file in the same directory, using them in place is the only way 2019-04-12 16:51:57 +02:00
Adrien Delorme 63f5bbbc73 use our own copy of iochan.LineReader 2019-04-11 14:25:24 +02:00
Adrien Delorme d72040f4fa move retry code into the common/retry pkg and make retry context aware 2019-04-09 17:46:38 +02:00
BobSilent 5b289f67fe Update hyperv.go
maybe also a fix for issue #5023
at least I got same error like there, incl. VM response
==> hyperv-iso: Host IP for the HyperV machine: False

although #4947 is marked as duplicate but shows different error output
==> hyperv-iso: Error getting host adapter ip address: PowerShell error: Get-VMNetworkAdapter : No network adapter is found with the given input.
2019-04-09 07:36:52 +02:00