Commit Graph
2284 Commits
Author SHA1 Message Date
Mitchell Hashimoto 916df47ff9 communicator/ssh: fix build 2013-12-10 18:14:02 -08:00
Mitchell Hashimoto abe0d8b8a6 communicator/ssh: clearer logging [GH-699] 2013-12-10 18:10:15 -08:00
Mitchell Hashimoto aad214793a packer/rpc: update some comments 2013-12-10 17:31:54 -08:00
Mitchell Hashimoto 2a17190946 Update CHANGELOG 2013-12-10 17:20:49 -08:00
Mitchell Hashimoto d3f458116b Merge pull request #701 from mitchellh/rpc-refactor
RPC happens over single TCP connection per plugin now

Three benefits:
* Single file descriptor per plugin
* NAT-friendly since plugins don't have to dial back in to the host
* Opens the foundation that we can easily use Unix domain sockets and such

A handful of Packer users were having issues with highly parallel (many builder/provisioner) templates where their systems would quickly reach their default file descriptor limits. This was because the previous mechanism would use a single TCP connection per RPC server, and Packer needs many (one per interface, basically). 

This merges in a MuxConn that multiplexes many "streams" on top of a single io.ReadWriteCloser. The RPC system has been revamped to know about this and use unique stream IDs to send everything over a single connection per plugin.

Previously, the RPC mechanism would sometimes send an address to the remote end and expect the remote end to connect back to it. While Packer shouldn't run remotely, some firewalls were having issues. This should be gone.

Finally, it should be possible now to optimize and use Unix domain sockets on Unix systems, avoiding ports and firewalls altogether.
2013-12-10 17:19:25 -08:00
Mitchell Hashimoto d71f72a955 Test on Go 1.2 2013-12-10 17:10:41 -08:00
Mitchell Hashimoto dd50e9d535 packer/rpc: fix data race in MuxConn 2013-12-10 17:09:17 -08:00
Mitchell Hashimoto 10c90e6513 packer/rpc: edge-triggerd state changes for faster dial/accept 2013-12-10 17:01:02 -08:00
Mitchell Hashimoto 322343b631 packer/rpc: hard close all streams when underlying conn closes 2013-12-10 16:49:14 -08:00
Mitchell Hashimoto 1dd77ffe21 packer/rpc: need a real lock for closing 2013-12-10 16:23:47 -08:00
Mitchell Hashimoto 0a863c97a4 packer/rpc: implement proper close_wait state 2013-12-10 15:51:22 -08:00
Mitchell Hashimoto aa38e7e628 packer/rpc: rename uploadReader to uploadData because that makes sense 2013-12-10 15:30:58 -08:00
Mitchell Hashimoto f6bb61c490 packer/rpc: more robust communicator connection cleanup 2013-12-10 15:12:16 -08:00
Mitchell Hashimoto aae2177156 packer/plugin: catch interrupts for every server 2013-12-10 14:12:00 -08:00
Mitchell Hashimoto bf28b78d98 packer/rpc: improve logging for the MuxConn 2013-12-10 14:11:50 -08:00
Mitchell Hashimoto faf0c12c47 plugin/*: update to latest API 2013-12-10 13:59:38 -08:00
Mitchell Hashimoto c93daf6445 packer/plugin: use new RPC API 2013-12-10 13:47:18 -08:00
Mitchell Hashimoto 68b1a7b4c8 packer/rpc: remove unused methods 2013-12-10 13:26:07 -08:00
Mitchell Hashimoto 512e27bdf6 packer/rpc: complete command 2013-12-10 13:23:07 -08:00
Mitchell Hashimoto 27ff2dc7a9 packer/rpc: builds 2013-12-10 13:18:48 -08:00
Mitchell Hashimoto 9986ba64a0 packer/rpc: environment 2013-12-10 12:23:42 -08:00
Mitchell Hashimoto c51e069a91 packer/rpc: Builder 2013-12-10 12:14:08 -08:00
Mitchell Hashimoto 2dab0cab07 packer/rpc: start command 2013-12-10 12:02:01 -08:00
Mitchell Hashimoto 13b8bef58f packer/rpc: Provisioner 2013-12-10 11:56:15 -08:00
Mitchell Hashimoto 88830b21b9 packer/rpc: Hook 2013-12-10 11:50:30 -08:00
Mitchell Hashimoto 92ec548dce packer/rpc: implement Communicator 2013-12-10 11:43:02 -08:00
Mitchell Hashimoto bcebec8fc3 packer/rpc: better close states 2013-12-10 11:40:17 -08:00
Mitchell Hashimoto 0a6061fd0b packer/rpc: MuxConn writes don't block the whole loop 2013-12-10 10:44:57 -08:00
Mitchell Hashimoto 77638d0489 packer/rpc: MuxConn.NextId properly increments 2013-12-10 10:34:35 -08:00
Mitchell Hashimoto 02a497c61b packer/rpc: get PostProcessor working 2013-12-09 19:07:36 -08:00
Mitchell Hashimoto 770a54afe5 packer/rpc: MuxConn can return next available stream ID 2013-12-09 16:27:13 -08:00
Mitchell Hashimoto e63bdc29b0 packer/rpc: work-in-progress commit 2013-12-09 16:22:11 -08:00
Mitchell Hashimoto 0e7e945182 packer/rpc: post-processors work on a single connection 2013-12-09 15:44:00 -08:00
Mitchell Hashimoto 755f7c8562 packer/rpc: PostProcessor 2013-12-09 14:57:18 -08:00
Mitchell Hashimoto f54e23d17b packer/rpc: Cache 2013-12-09 14:51:13 -08:00
Mitchell Hashimoto 0db9b7ad67 packer/rpc: use packer.MockArtifact 2013-12-09 14:46:33 -08:00
Mitchell Hashimoto d88f8acf4e packer/rpc: tests passing 2013-12-09 14:44:26 -08:00
Mitchell Hashimoto 6f43f9bfd0 packer/rpc: update docs 2013-12-09 14:29:28 -08:00
Mitchell Hashimoto a9b0081828 packer/rpc: muxconn is a lot more sane, acts like bsd socket 2013-12-09 14:24:55 -08:00
Mitchell Hashimoto f082b1b34f packer/rpc: more fine grained lock access on MuxConn 2013-12-08 18:39:14 -08:00
Mitchell Hashimoto 1fa0bc9e88 packer/rpc: close the streams when the underlying rwc closes 2013-12-08 18:30:29 -08:00
Mitchell Hashimoto 115ad63a44 packer/rpc: a muxconn... 2013-12-08 18:20:27 -08:00
Mitchell Hashimoto 3e4ad85d46 packer/rpc: auto-incrementable ID for endpoints 2013-12-08 11:50:14 -08:00
Mitchell Hashimoto 5ddf55cddb up version for dev 2013-12-08 10:19:13 -08:00
Mitchell Hashimoto 12ba7ae443 v0.4.1 v0.4.1 2013-12-07 21:05:53 -08:00
Mitchell Hashimoto d125dc9244 builder/vmware: clarify guestiphack error message [GH-639] 2013-12-07 10:31:57 -08:00
Mitchell Hashimoto 013c1829e4 provisioner/puppet-masterless: check for hiera config path [GH-656] 2013-12-06 19:30:06 -08:00
Mitchell Hashimoto 3b2e3456f6 website: fix docs for vmware esxi discrep [GH-674] 2013-12-06 19:14:20 -08:00
Mitchell Hashimoto ea09c1105c builder/vmware: correct logic in cehcking if file is still there 2013-12-06 19:12:49 -08:00
Mitchell Hashimoto b12871dc28 builder/vmware: more resilient to racing deletes [GH-675] 2013-12-06 19:11:40 -08:00