Commit Graph

263 Commits

Author SHA1 Message Date
Lars Lehtonen f62bc25f18 packer/rpc: Fix tests that swallowed errors in goroutines 2019-09-11 05:22:01 -07:00
Megan Marsh 70c223045e fix race condition in hooks 2019-05-10 10:25:54 -07: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 a81abd297b Merge remote-tracking branch 'origin/master' into context_provisioner 2019-04-08 20:09:01 +02:00
Megan Marsh 056fcb7cea fix tests and add a few new ones 2019-04-03 11:32:49 -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
Megan Marsh 12fc1fa751 default_keep_input_artifact 2019-04-02 16:51:58 -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 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 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 f6070de070 fix test 2018-12-14 13:59:26 -08:00
Megan Marsh 52176ecf2d try to remove race condition in mux test 2018-12-14 13:53:39 -08:00
Rémi Jouannet 118a9cb8c6 more explicit message 2018-11-09 14:44:34 +01:00
Megan Marsh 3f8407d95f Revert "Merge pull request #6700 from hashicorp/multi_progressbar"
This reverts commit 5470c08345, reversing
changes made to c427486bca.
2018-09-20 13:14:17 -07:00
Adrien Delorme dfeca9f0df split progressbars per object 2018-09-12 16:21:58 -07:00
Adrien Delorme bb59a70e8f progressbar: use int64 instead of uint64
* it's what's used for file sizes and used lib
2018-09-06 16:49:15 +02:00
Adrien Delorme f3c923c47d add tests for progress bar rpc calls 2018-09-06 16:15:09 +02:00
Adrien Delorme 6d3e36e6ea simplify remote progress bar as we are using a single instance 2018-09-06 16:14:59 +02:00
Adrien Delorme d89e1133c3 use freshly merged random.AlphaNum instead of our own random 2018-09-06 15:55:19 +02:00
Adrien Delorme 42561cf777 packer/rpc/ui_test.go: test progress bar too 2018-09-06 15:53:59 +02:00
Adrien Delorme 7efe3cac3d todos 2018-09-06 15:53:59 +02:00
Adrien Delorme fd7cb47adc use proxy reader for download progress & stop storing total/current in downloaders 2018-09-06 15:53:59 +02:00
Adrien Delorme ddd96c513b first draft at self refreshing loading bar centralized/controlled by Ui 2018-09-06 15:53:59 +02:00
Matthew Hooker ebe995c0ff
run goimports 2018-01-22 17:21:10 -08:00
Matthew Hooker 2d3b639c7b
don't need a waitgroup for uploading files 2017-08-10 17:02:23 -07:00
Megan Marsh 07decf99ad quick patch to make ansible work again 2017-07-19 10:28:13 -07:00
Megan Marsh b2d5fcd48a move wait earlier 2017-07-05 12:27:59 -07:00
Megan Marsh 9ee97aaa2a while I'm at it, kill this race condition in uploads, too 2017-07-03 13:30:11 -07:00
Megan Marsh d8637751a3 rpc/communicator fix race condition that causes stdout from ssh provisioner to be truncated 2017-07-03 12:19:13 -07:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker 79287d7e47
simplify some code 2017-03-28 20:36:20 -07:00
Matthew Hooker d1b20b3d9c
remove a bunch of dead code.
https://github.com/dominikh/go-tools/tree/master/cmd/unused
2017-03-28 20:36:20 -07:00
Billie H. Cleek b4f6d40001 allow ssh communicator's Upload fastpath to execute
Add os.FileInfo implementation to packer/rpc, and use it to pass
Upload's *os.FileInfo argument through the RPC boundary.
2016-09-28 23:22:04 -07:00
Orivej Desh 6762965696 Add -on-error command line argument to allow preserving artifacts on builder errors
Resolves #409
2016-09-16 12:15:00 +00:00
Vasiliy Tolstov feee19e4ed file provisioner improvements
* allow specify source/destination as dir
* allow specify many files as source

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
2016-02-12 11:48:28 -08:00
Chris Bednarski a4eba1102b Switch bool chan to struct chan for less memory usage 2015-10-12 22:04:13 -07:00
Chris Bednarski 4856544027 Add a comment to indicate why we're waiting on the channel 2015-10-12 18:42:17 -07:00
Chris Bednarski b51cd5406a Add explicit wait after Communicator.Download to make sure serveSingleCopy completes 2015-10-12 18:12:22 -07:00
Chris Bednarski 74d604e5a8 Switch from hashicorp/go-msgpack to the original upstream ugorgi/go to fix a slew of race conditions 2015-10-12 13:50:24 -07:00
Chris Bednarski abb67fdd79 Fix govet issues 2015-08-05 19:41:29 -07:00
Mitchell Hashimoto dc74ec5612 packer: remove Environment 2015-05-25 17:29:10 -07:00