Megan Marsh
f4c3501af5
pass struct of generated data into provision() call
2019-12-11 15:43:38 -08:00
Megan Marsh
2447c9b280
typo
2019-12-09 12:30:14 -08:00
Megan Marsh
8b50f03056
Only log min and max port when connecting via TCP; move port determination inside of the TCP function
2019-12-09 12:21:45 -08:00
Megan Marsh
a02a95e992
Move port logging to inside of appropriate functions; log the actual plugin being called if it is part of the main packer binary, rather than the meaningless information 'packer'.
2019-12-09 12:17:23 -08:00
Lars Lehtonen
a3ca0bc2aa
packer/rpc: remove unused cancelCalled field from testBuild{}
2019-11-04 12:59:55 -08:00
Lars Lehtonen
699614b500
packer/rpc: fix dropped error
2019-11-04 12:58:16 -08:00
Lars Lehtonen
67afbe6fb7
packer: remove bool constant comparisons
2019-11-04 12:54:52 -08:00
Lars Lehtonen
703f071b4a
packer: remove unused test variable
2019-11-04 12:53:16 -08:00
Lars Lehtonen
a709867dee
packer: remove unused testComponentFinder()
2019-11-04 12:50:58 -08: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
Adrien Delorme
a8b2918d0e
remote duplicate gob.Register(new(map[string]interface{}))
...
otherwise this panics
2019-10-15 12:56:42 +02:00
Megan Marsh
0683bc409b
add test for error-cleanup provisioner, and fix tests by fixing null builder to use an actual none communicator instead of skipping communicator generation altogether
2019-09-25 13:39:09 -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
3b8f3c5a8b
remove any reference to Push
2019-09-16 16:38:17 +02:00
Lars Lehtonen
f62bc25f18
packer/rpc: Fix tests that swallowed errors in goroutines
2019-09-11 05:22:01 -07:00
Megan Marsh
a82a3ccaa6
need to scrub sensitive variables first, to make sure we don't fail for comma-containing sensitive info
2019-08-15 16:16:11 -07:00
Megan Marsh
ce0f11a651
Merge pull request #7912 from hashicorp/set_config_dir
...
Set config dir
2019-08-13 16:33:00 -07:00
Megan Marsh
5d4d5a21bf
check env for a PACKER_CONFIG_DIR before defaulting to homedir for config
2019-07-25 13:06:41 -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
e54b1cedd9
text/template turns out to swallow custom error types.
2019-07-08 15:39:46 -07:00
Megan Marsh
2bbc3d50d7
better error handling when using interpolate funcs; don't swallow func errors
2019-07-08 13:49:14 -07:00
Adrien Delorme
c9a22b6380
Merge pull request #7745 from hashicorp/investigate_crash
...
small cleanups
2019-06-14 10:09:32 +02:00
Megan Marsh
88e5a21170
make sure machine readable logs print what's come through the UI into the logs
2019-06-13 10:51:44 -07:00
Megan Marsh
a907adb4ab
Merge pull request #7743 from hashicorp/fix_7728
...
filter machine readable UI
2019-06-12 13:00:26 -07:00
Megan Marsh
df977926ba
filter machine readable UI
2019-06-12 09:50:27 -07:00
Adrien Delorme
f097deab3b
Merge pull request #7739 from hashicorp/fix_7728
...
apply logSecretFilter to output from ui.Say
2019-06-12 11:01:25 +02:00
Adrien Delorme
2eef6a1492
Merge pull request #7726 from hashicorp/packer-interpolate
...
Packer console
2019-06-12 11:00:11 +02:00
Megan Marsh
1e5866bd2a
apply logSecretFilter to output from ui.Say
2019-06-11 14:04:36 -07:00
Adrien Delorme
ddb4d77dc8
Update packer/core.go
...
remove commented log line
2019-06-11 11:09:22 +02:00
Megan Marsh
ca99cbd2d2
remove loglines
2019-06-10 11:34:57 -07:00
Megan Marsh
1a9adc29b3
fixing interpolation
...
fix sensitive_vars test which never worked but somehow was passing before this change.
2019-06-10 11:30:52 -07:00
Megan Marsh
b8ac1a800d
implement a packer console analogous to the terraform console
2019-06-05 16:35:22 -07:00
Adrien Delorme
ce15617d05
TestPausedProvisionerProvision_waits: don't fail when we spend too much time.
2019-05-24 18:21:53 +02:00
Adrien Delorme
dc631530d2
stop using goroutines in TestPausedProvisionerProvision_waits
...
to render the test less flaky.
this should fix #7684
2019-05-24 17:56:27 +02:00
Paul Meyer
ec14ab4875
Add unit test to find issue #7655
2019-05-17 22:27:19 +00:00
Megan Marsh
70c223045e
fix race condition in hooks
2019-05-10 10:25:54 -07:00
Adrien Delorme
5f076d4328
allow building packer on solaris by removing progress bar and tty imports
...
fix #7586
2019-05-07 15:58:49 +02:00
Adrien Delorme
051f39e21d
Merge pull request #7583 from hashicorp/update_custom_plugin_docs
...
update docs defining Builders and PostProcessors
2019-04-30 11:58:53 +02:00
Megan Marsh
2e0f9223c8
remove all the extra debug lines
2019-04-29 10:33:41 -07:00
Adrien Delorme
1be337b383
update docs for definig Builders and PostProcessors
2019-04-29 13:16:46 +02:00
Megan Marsh
b84b665ba3
fix race
2019-04-26 16:05:14 -07:00
Adrien Delorme
63f5bbbc73
use our own copy of iochan.LineReader
2019-04-11 14:25:24 +02:00
Adrien Delorme
8565a30c69
TimeoutProvisioner: also display an error log when the context times out
2019-04-09 17:46:38 +02:00
Adrien Delorme
eadb40da91
Update communicator_test.go
...
fix tess
2019-04-08 20:09:21 +02:00
Adrien Delorme
2a90ce6178
packer communicator: use iochan.LineReader instead of iochan.LineReader(in)
...
* as it's the recommended way
2019-04-08 20:09:21 +02:00
Adrien Delorme
d8d5631dc2
allow to set provisioner timeout from buildfile
2019-04-08 20:09:21 +02:00
Adrien Delorme
f555e7a9f2
allow a provisioner to timeout
...
* I had to contextualise Communicator.Start and RemoteCmd.StartWithUi
NOTE: Communicator.Start starts a RemoteCmd but RemoteCmd.StartWithUi will run the cmd and wait for a return, so I renamed StartWithUi to RunWithUi so that the intent is clearer.
Ideally in the future RunWithUi will be named back to StartWithUi and the exit status or wait funcs of the command will allow to wait for a return. If you do so please read carrefully https://golang.org/pkg/os/exec/#Cmd.Stdout to avoid a deadlock
* cmd.ExitStatus to cmd.ExitStatus() is now blocking to avoid race conditions
* also had to simplify StartWithUi
2019-04-08 20:09:21 +02:00
Adrien Delorme
f7cd2b9334
add a 5 seconds timeout to provisioner hook
2019-04-08 20:09:21 +02:00
Adrien Delorme
a81abd297b
Merge remote-tracking branch 'origin/master' into context_provisioner
2019-04-08 20:09:01 +02:00
Megan Marsh
1f7150e2ee
Merge pull request #7463 from hashicorp/default_keep_input_artifact
...
Default keep input artifact
2019-04-05 08:10:40 -07:00
Megan Marsh
96c94d2fa0
clean up code comments
2019-04-03 14:04:03 -07:00
Megan Marsh
10f47b5158
document clearly what keep_input_artifact does for each post-processor
2019-04-03 13:57:22 -07:00
Megan Marsh
056fcb7cea
fix tests and add a few new ones
2019-04-03 11:32:49 -07:00
Megan Marsh
c1960840e3
fix tests
2019-04-03 11:01:52 -07:00
Megan Marsh
a358b174a4
make sure we filter the ui as well as the logs
2019-04-03 10:43:41 -07:00
Megan Marsh
365b32eb9c
goofing
2019-04-03 09:43:39 -07:00
Adrien Delorme
82c4b76639
[Builder|Build|PostProcessor|Provisioner|Hook]Server: context cancel using a RPC cancel method
2019-04-03 15:55:55 +02:00
Adrien Delorme
14048b1e11
Revert "WIP: go towards context cancelled rpc pkg"
...
This reverts commit e4609b4a6a4ba2ec76a45ad67d50d180f1a914f9.
2019-04-03 15:55:55 +02:00
Adrien Delorme
9e3a179c0d
WIP: go towards context cancelled rpc pkg
2019-04-03 15:55:55 +02:00
Adrien Delorme
39a5e4e612
rpc server register funcs: return errors
2019-04-03 15:55:55 +02:00
Adrien Delorme
e65115a7a0
contextualize post-processor
2019-04-03 15:55:55 +02:00
Adrien Delorme
a4bf94dd3c
change Builder to be passed a context for cancellation
...
we have to to give it to our hook
2019-04-03 15:55:55 +02:00
Adrien Delorme
829851fc8a
change hooks to be passed a context for cancellation
...
we have to as it is what calls our provisioners
2019-04-03 15:55:54 +02:00
Adrien Delorme
c7ce4d598e
change Provisioner to be passed a context for cancellation
2019-04-03 15:55:54 +02:00
Adrien Delorme
dae02c0877
add context to Provisioner.Provision interface signature
2019-04-03 15:55:54 +02:00
Megan Marsh
12fc1fa751
default_keep_input_artifact
2019-04-02 16:51:58 -07:00
Megan Marsh
3aa0e51104
I use Dir instead of Base for mkdirall call
2019-03-28 13:17:15 -07:00
Adrien Delorme
42107c2b8b
CachePath: only create base path
2019-03-19 15:30:01 +01:00
Adrien Delorme
5a6dffde9a
use port as ints
2019-03-19 15:01:12 +01:00
Adrien Delorme
4cb58446f7
packer.CachePath: try to create dir if it doesn't exist
2019-03-19 12:54:15 +01:00
Adrien Delorme
513999b8e7
Close tty on exit ( #7411 )
2019-03-15 11:10:30 +01:00
Megan Marsh
4e76f51462
Merge pull request #7390 from hashicorp/do_4837
...
Allow user variables to be interpreted within the variables section o…
2019-03-14 11:22:23 -07:00
Megan Marsh
b52ee14776
remove unreachable code
2019-03-14 10:05:10 -07:00
Megan Marsh
86c3c44afe
switch on err type not string
2019-03-13 14:59:05 -07:00
Megan Marsh
a62db1a0c6
add tests fixtures
2019-03-13 10:49:13 -07:00
Megan Marsh
bf0d7b3620
make it work and add tests
2019-03-13 10:49:13 -07:00
Megan Marsh
7cb31714ad
Allow user variables to be interpreted within the variables section of the template.
2019-03-13 10:49:13 -07:00
Adrien Delorme
9f82b75e57
Use the hashicorp/go-getter to download files
...
* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same.
* removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context.
* on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors.
* added unit tests for step_download that are now CI tested on windows, mac & linux.
* files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension`
* since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted.
* a download file is protected and locked by a file lock,
* updated docs
* updated go modules and vendors
2019-03-13 12:11:58 +01:00
Megan Marsh
6e442e616c
Merge pull request #7352 from hashicorp/research_7299
...
use a tty to ui.Ask
2019-03-07 09:47:01 -08:00
Adrien Delorme
55261f1bf3
Update ui_test.go
...
fix typo and tty usage
2019-03-06 16:09:08 +01:00
Adrien Delorme
94d6fc10f5
init tty in main
2019-03-06 15:52:59 +01:00
Adrien Delorme
22df491c67
mock tty using interfaces to test more easily
2019-02-28 14:40:55 +01:00
Adrien Delorme
239a0c633f
use go-tty in ui.Ask to fix #7299
2019-02-27 16:59:59 +01:00
Adrien Delorme
0f7065f6b1
post-processor except: don't match empty names
2019-02-20 12:38:03 +01:00
xinau
b449af84ee
moved concurrency-safe ui code to packer/ui.go
2019-02-13 21:01:50 +00:00
Adrien Delorme
dd3e2c255c
respect a 'only' defined in a post-processor
2019-02-01 15:50:06 +01:00
Adrien Delorme
074a74ec38
make sure 'only' completely ignores post-processor
...
before this commit, if one would put a 'only' inside the post-processor definition, the post process could be skipped
2019-02-01 15:21:41 +01:00
Adrien Delorme
58245f2557
break a chain of post-processors when one is skipped & make `-only`
...
"blind" to post-processors
* to avoid trouble
* other arrays of post processors might still be there !
* add docs
* update tests
2019-01-11 14:08:30 +01:00
Adrien Delorme
61ade0e127
allow to use --only with post-processors
2019-01-10 15:44:34 +01:00
Adrien Delorme
4bf3cd44fc
allow to skip a post processor
2019-01-10 15:44:34 +01:00
Adrien Delorme
848d4e981b
clarify comments
2019-01-09 16:30:43 +01:00
Adrien Delorme
9f7b4ffc17
Merge branch 'master' into pr/6950
2019-01-09 10:11:18 +01:00
Adrien Delorme
7384b86e95
windows plugin: prioritize AppData over default user directory ( UserProfile )
...
It was the default behaviour before.
It is also standard for a binary to use files from the AppData directory. ex: c453e0c757/google/default.go (L104)
More on home: https://en.wikipedia.org/wiki/Home_directory
2019-01-04 14:14:38 +01:00
Megan Marsh
a734aa2255
Revert "mux_broker_test.go: make non blocking errChan"
...
This reverts commit d9e32d437c
. It turns out that it was already non-blocking with a length of one.
2018-12-17 13:49:47 -08:00
Adrien Delorme
895d49ca10
Merge pull request #7119 from hashicorp/fix_race
...
try to remove race condition in mux test
2018-12-17 11:42:55 +01:00
Adrien Delorme
d9e32d437c
mux_broker_test.go: make non blocking errChan
...
* in case of Dial errors to avoid a deadlocks
2018-12-17 11:09:56 +01:00
Adrien Delorme
2944030daf
mux_broker_test.go: range over chan for simplicity
2018-12-17 11:01:46 +01:00
Adrien Delorme
9a31d0de58
mux_broker_test.go: defer close chan
2018-12-17 10:58:32 +01:00
Megan Marsh
70c6fcb824
Merge pull request #7078 from aspectcapital/issue-5478
...
Elevated support for puppet-* & chef-client provisioners
2018-12-14 19:06:46 -08:00