Commit Graph

888 Commits

Author SHA1 Message Date
Mitchell Hashimoto 4531922ec3 packer: Return the provisioner prepare errors if they occurred 2013-06-06 17:09:51 -07:00
Mitchell Hashimoto 0a6d8ed75a packer: Add errors to Prepare 2013-06-06 17:07:42 -07:00
Mitchell Hashimoto 09f5cd5090 packer: Update doc on Provisioner 2013-06-06 17:02:02 -07:00
Mitchell Hashimoto 6b87c42ee6 packer: Change provisioner interface to take array of configs 2013-06-06 17:01:12 -07:00
Mitchell Hashimoto 34f4086963 packer/plugin: Preserve parent ENV when executing client 2013-06-05 20:39:39 -07:00
Mitchell Hashimoto dd4fb1d62a packer/plugin: Explicitly set GOMAXPROCS to # of cpus 2013-06-05 17:39:27 -07:00
Mitchell Hashimoto 9bb24e6d90 packer/rpc: Return proper nil artifact if nil is returned 2013-06-05 15:36:26 -07:00
Mitchell Hashimoto 334fd4e154 packer/rpc: Register []interface{} so arrays can be sent over wire 2013-06-05 15:16:41 -07:00
Mitchell Hashimoto 5c39a2f7ca fmt 2013-06-03 22:32:04 -07:00
Mitchell Hashimoto 12a9362f0a packer/plugin: Swallow interrupts in plugins 2013-06-03 22:31:54 -07:00
Mitchell Hashimoto 94cfe39a76 packer: coreBuild.Cancel calls the builder Cancel method 2013-06-03 16:06:04 -07:00
Mitchell Hashimoto 30a061a855 packer: Build.Cancel 2013-06-03 16:03:08 -07:00
Mitchell Hashimoto 0ba80c88e8 packer/plugin: Implement Builder.Cancel 2013-06-03 15:31:28 -07:00
Mitchell Hashimoto e06c26c55c packer/rpc: Implement Builder.Cancel 2013-06-03 15:30:09 -07:00
Mitchell Hashimoto 1b557d7710 packer/rpc: Builder.Run() no longer blocks RPC connection 2013-06-03 15:00:35 -07:00
Mitchell Hashimoto 079d6f4d43 packer: Introduce Cancel() method to Builder 2013-06-03 14:44:34 -07:00
Mitchell Hashimoto e21d389fd2 packer: Fixin bugs in PrefixUi calling the wrong method 2013-06-03 13:54:28 -07:00
Mitchell Hashimoto 3e1b10c09e packer: ColoredUi bolds, but doesn't bold messages 2013-06-03 13:49:59 -07:00
Mitchell Hashimoto f041ebb2fd packer: ColoredUi 2013-06-03 13:35:43 -07:00
Mitchell Hashimoto edab952a68 packer: Add Message method to Ui 2013-06-03 11:30:38 -07:00
Mitchell Hashimoto bbc5f305e2 packer: RemoteCmd.Wait 2013-06-03 10:49:23 -07:00
Mitchell Hashimoto 75074ca92d go fmt 2013-06-02 23:27:18 -07:00
Mitchell Hashimoto a21fe8c484 packer/rpc: Exited fields now work over RPC 2013-06-02 23:21:55 -07:00
Mitchell Hashimoto ea4171f163 packer/rpc: Hook up the new communicator interface 2013-06-02 23:08:40 -07:00
Mitchell Hashimoto 532faec457 packer: New Communicator interface is much simplified 2013-06-02 21:20:27 -07:00
Mitchell Hashimoto 74d812a766 packer: Much smarter CLI 2013-06-02 15:03:02 -07:00
Mitchell Hashimoto fcd866731b packer: Remove extra newline on version 2013-06-02 11:52:49 -07:00
Mitchell Hashimoto aa1304f860 packer: Print command help if "--help" is given 2013-06-02 11:49:01 -07:00
Mitchell Hashimoto bbafcfa938 packer, etc: added Help method to Command interface
This will be used for long-form help when "packer help foo"
or "packer foo --help" is called.
2013-06-02 11:41:12 -07:00
Mitchell Hashimoto e629eef97a packer/plugin: Start testing the client 2013-06-01 19:35:19 -07:00
Mitchell Hashimoto 45c590f413 packer: Fix help output for packer, excessive newlines 2013-06-01 19:15:32 -07:00
Mitchell Hashimoto ade3795123 packer: RemoteCommand.StderrChan 2013-06-01 18:49:49 -07:00
Mitchell Hashimoto e753ffe5d9 packer: Refactor on StdoutChan so it'll work for stderr easily 2013-06-01 18:31:22 -07:00
Mitchell Hashimoto 810d17c0ef packer: RemoteCommand.StdoutChan works + tests 2013-06-01 18:21:27 -07:00
Mitchell Hashimoto ace53450b9 packer: More efficient RemoteCommand.ExitChan 2013-06-01 17:57:26 -07:00
Mitchell Hashimoto c6dd54760c Get everything compiling again 2013-06-01 17:48:19 -07:00
Mitchell Hashimoto 8034e91ca3 packer: Lock in RemoteCommand.ExitChan 2013-06-01 17:45:57 -07:00
Mitchell Hashimoto 24237da32c packer: RemoteCommand.ExitChan() and tests 2013-05-28 18:12:15 -07:00
Mitchell Hashimoto 97ba152771 packer: tests for RemoteCommand.Wait 2013-05-28 18:02:14 -07:00
Mitchell Hashimoto 7154b5c0f1 packer/rpc: Close the net conn after done sending data for Comm 2013-05-27 23:36:34 -07:00
Mitchell Hashimoto 78ab1709cd packer/rpc: Better logging in communicator 2013-05-27 22:10:44 -07:00
Mitchell Hashimoto 2788d29bd1 packer, packer/rpc: Update Ui to just take a message 2013-05-27 15:12:48 -07:00
Mitchell Hashimoto 84891701bd go fmt 2013-05-23 21:59:03 -07:00
Mitchell Hashimoto 37372bac93 packer/plugin: Support provisioners 2013-05-23 21:37:16 -07:00
Mitchell Hashimoto 1b78fc88a9 packer: coreBuild runs provisioners as part of Run 2013-05-23 21:26:24 -07:00
Mitchell Hashimoto 83eab87c26 packer: TODO item 2013-05-23 21:13:40 -07:00
Mitchell Hashimoto 812722c20d packer: ProvisionHook 2013-05-23 21:13:18 -07:00
Mitchell Hashimoto 73b7d94933 packer: better commenting 2013-05-22 17:06:06 -07:00
Mitchell Hashimoto e69e74b2dc packer: Panic if provisioners and no provisioner function 2013-05-22 17:05:36 -07:00
Mitchell Hashimoto 3d0dde03e6 packer: Panic on template if no builder function 2013-05-22 17:02:34 -07:00
Mitchell Hashimoto 534f32067a packer: Test that hooks are callable from builds 2013-05-22 16:46:23 -07:00
Mitchell Hashimoto 0f57370dec packer: Prepare provisioners as part of Build prepare 2013-05-22 16:29:07 -07:00
Mitchell Hashimoto cb91ca72ac packer: Build.Prepare takes a UI 2013-05-22 16:20:40 -07:00
Mitchell Hashimoto fbcc6cb2b2 packer: Build now has provisioners, template parses and builds 2013-05-22 16:15:57 -07:00
Mitchell Hashimoto 11d46a3a2c packer: ProvisionerFunc 2013-05-22 15:39:30 -07:00
Mitchell Hashimoto 92a4f27868 packer/rpc: Support provisioners 2013-05-22 15:35:52 -07:00
Mitchell Hashimoto 638e191186 packer: Parse provisioners out of template 2013-05-22 15:12:43 -07:00
Mitchell Hashimoto 06b0cebd1e packer: Template properly calls builder type builderType 2013-05-22 14:39:32 -07:00
Mitchell Hashimoto 4bd7db0759 go fmt 2013-05-22 14:36:33 -07:00
Mitchell Hashimoto 8273565255 better comments for TODO 2013-05-22 14:36:21 -07:00
Mitchell Hashimoto c51223bab7 packer: Template parsing error if name/type is not string 2013-05-22 14:14:40 -07:00
Mitchell Hashimoto f9c59c714f packer: Better error handling for template parsing 2013-05-22 14:11:34 -07:00
Mitchell Hashimoto 615f993de2 packer: MultiError to represent multiple errors 2013-05-22 13:36:09 -07:00
Mitchell Hashimoto c4522a6265 packer: Provisioner interface 2013-05-22 13:25:03 -07:00
Mitchell Hashimoto 41a7fd45b9 packer: Return artifact from build 2013-05-21 22:38:41 -07:00
Mitchell Hashimoto e9618b0d07 packer/plugin: Properly supports Artifacts 2013-05-21 22:16:26 -07:00
Mitchell Hashimoto caa2b7711b packer/rpc: Builders return valid artifacts 2013-05-21 22:14:58 -07:00
Mitchell Hashimoto 53c3d330e4 packer/rpc: Support Artifacts 2013-05-21 22:10:21 -07:00
Mitchell Hashimoto 55d9cd2124 packer: First pass at Artifact interface 2013-05-21 21:53:16 -07:00
Mitchell Hashimoto 2c4a873a5f packer: Add PrefixedUi 2013-05-21 13:20:51 -07:00
Mitchell Hashimoto cc4970d424 packer/rpc: Allow "error" interfaces to be sent over RPC 2013-05-21 11:58:14 -07:00
Mitchell Hashimoto 8dfe78dd19 packer: Log UI output 2013-05-21 11:40:07 -07:00
Mitchell Hashimoto 4453fda2e8 go fmt 2013-05-21 00:56:27 -07:00
Mitchell Hashimoto 559777e5b7 packer: Ui automatically appends newline 2013-05-20 23:43:37 -07:00
Mitchell Hashimoto 15f215d04f go fmt 2013-05-20 16:50:35 -07:00
Mitchell Hashimoto 7475ee8377 packer: Add Communicator to Hook arguments 2013-05-12 17:30:30 -07:00
Mitchell Hashimoto 7fdb53f5d1 packer: Test to make sure DispatchHook implements Hook 2013-05-12 17:15:03 -07:00
Mitchell Hashimoto f74341a7b9 packer/rpc: Complete Upload/Download implementation 2013-05-12 17:09:14 -07:00
Mitchell Hashimoto 9262a85e6c packer/rpc: Communicator.Upload 2013-05-12 16:48:46 -07:00
Mitchell Hashimoto daa431af63 packer: Communicator Upload/Download return an error 2013-05-12 16:25:40 -07:00
Mitchell Hashimoto 496a320a82 packer/rpc: Implement full communicator interface 2013-05-12 16:19:34 -07:00
Mitchell Hashimoto 2799cccf4b packer: Waiting for a remote command and setting the exit status 2013-05-12 16:18:17 -07:00
Mitchell Hashimoto 88a018bf5d packer: Work on communicators... WIP 2013-05-12 14:47:55 -07:00
Mitchell Hashimoto a2bf964f30 packer/rpc: Properly support hooks 2013-05-11 11:11:40 -07:00
Mitchell Hashimoto cb1e0cbabf packer/plugin: Support hooks 2013-05-11 10:46:17 -07:00
Mitchell Hashimoto d926b98708 Update all packer/rpc, packer/plugin, builders for new builder API 2013-05-11 10:31:30 -07:00
Mitchell Hashimoto 441edd25d2 packer: Changes to build parameters and DispatchHook 2013-05-11 10:27:07 -07:00
Mitchell Hashimoto 25fd2fe877 packer: Template looks up hooks and adds them to the build 2013-05-11 10:00:37 -07:00
Mitchell Hashimoto 779f489894 packer: Template takes a component finder 2013-05-11 09:56:42 -07:00
Mitchell Hashimoto 30ab944437 packer/rpc: Support Hooks 2013-05-11 09:51:49 -07:00
Mitchell Hashimoto 8ed313e7b5 packer: Add concept of hooks to Environment 2013-05-10 23:15:13 -07:00
Mitchell Hashimoto 5ac06e116e packer: Parse "hooks" configuration into the Template 2013-05-10 22:47:20 -07:00
Mitchell Hashimoto 44bd56c3a8 go fmt 2013-05-10 17:01:24 -07:00
Mitchell Hashimoto 368ccab8e8 packer: Put Builder definition into its own file 2013-05-10 16:59:28 -07:00
Mitchell Hashimoto 208daf7d03 packer: Hook interface, not hooked up yet 2013-05-10 16:58:50 -07:00
Mitchell Hashimoto de03e97643 packer: More comments/docs 2013-05-10 16:41:35 -07:00
Mitchell Hashimoto 077f15bdfb packer/plugin: Docs 2013-05-09 14:27:20 -07:00
Mitchell Hashimoto c580faa1a5 packer/rpc: error interface wrapper to RPC errors around 2013-05-09 13:59:33 -07:00
Mitchell Hashimoto 6d4136c5ab packer/plugin: Add plugin path to the log messages 2013-05-09 13:29:14 -07:00
Mitchell Hashimoto 44c61e537d Some additional logging 2013-05-09 13:26:40 -07:00
Mitchell Hashimoto 9600bf5b4b packer: Build.Name 2013-05-09 11:32:03 -07:00
Mitchell Hashimoto 587d359887 packer: Builder.Prepare can return an error 2013-05-09 10:54:42 -07:00
Mitchell Hashimoto c164b4c23c packer/plugin: Actually try more ports for plugins 2013-05-08 22:25:47 -07:00
Mitchell Hashimoto cce59af2e8 Support builders in config, packer/rpc, packer/plugin 2013-05-08 21:05:35 -07:00
Mitchell Hashimoto 8ffbc2efe7 packer: Start pulling out the global config stuff 2013-05-08 17:28:05 -07:00
Mitchell Hashimoto 8a78de02c7 packer: Cleaner way to build up a list of names 2013-05-08 17:11:02 -07:00
Mitchell Hashimoto 198f984b92 packer: error if UI fails 2013-05-08 17:09:10 -07:00
Mitchell Hashimoto fd2d8480e1 Lots more logging everywhere 2013-05-08 16:59:36 -07:00
Mitchell Hashimoto 95153413a6 packer: Ui has Error method 2013-05-08 15:12:48 -07:00
Mitchell Hashimoto a803af7016 Move the build command into the actual build command 2013-05-08 14:58:06 -07:00
Mitchell Hashimoto c5e83a4b15 packer/plugin: Client.Kill should only kill process if it is running 2013-05-08 14:51:56 -07:00
Mitchell Hashimoto 947209a028 packer: PACKER_LOG to toggle logging from an env var [GH-3] 2013-05-08 14:45:17 -07:00
Mitchell Hashimoto 7dfeda350a packer/plugin: Properly log the max port 2013-05-08 13:45:57 -07:00
Mitchell Hashimoto 88f7b33082 packer/rpc: Rename Command to follow RPC style 2013-05-08 13:42:25 -07:00
Mitchell Hashimoto ac83cf652a packer/rpc: Setup the Environment properly for Command 2013-05-08 13:11:47 -07:00
Mitchell Hashimoto abb51ebb35 packer/plugin: Don't wrap bytesBuffer in bufio, fixes GH-10 2013-05-08 13:02:21 -07:00
Mitchell Hashimoto 286f0aa91c More logging, some tweaks to the format 2013-05-08 12:43:41 -07:00
Mitchell Hashimoto 26a998f721 packer/plugin: Managed clients for automatic cleanup 2013-05-08 11:54:59 -07:00
Mitchell Hashimoto c8079a4290 packer/plugin: client kill waits for logging to complete 2013-05-08 11:23:24 -07:00
Mitchell Hashimoto e1785e424e packer/plugin: client to encapsulate logic for starting plugins 2013-05-08 11:14:21 -07:00
Mitchell Hashimoto 4d9b5fa86d packer/plugin: Better command logging, but not good enough yet 2013-05-08 10:52:23 -07:00
Mitchell Hashimoto 8a32494e3f Start working on logging across the board 2013-05-08 09:46:37 -07:00
Mitchell Hashimoto cbab761ab1 packer: Environment.Cli error tests 2013-05-07 20:50:22 -07:00
Mitchell Hashimoto de444867d3 packer: Tests for the Builder error cases 2013-05-07 20:47:56 -07:00
Mitchell Hashimoto 869732826b packer, packer/rpc: Make command/builderFunc support errors 2013-05-07 20:42:49 -07:00
Mitchell Hashimoto fbc2013b8c packer/plugin: Documentation 2013-05-07 19:50:34 -07:00
Mitchell Hashimoto 70d378b936 packer/plugin: Better command cleanup 2013-05-07 19:48:14 -07:00
Mitchell Hashimoto 68a024b59a packer/plugin: Make sure subprocess properly dies if error 2013-05-07 19:47:32 -07:00
Mitchell Hashimoto 2ff1fabbf9 packer/plugin: timeout when starting a plugin 2013-05-07 19:39:20 -07:00
Mitchell Hashimoto c9c294f136 packer/plugin: More robust command exit detection + tests 2013-05-07 17:10:45 -07:00
Mitchell Hashimoto 9219a19f61 packer/plugin: Better error handling around command exit cases 2013-05-07 17:02:55 -07:00
Mitchell Hashimoto ff23b67929 packer/plugin: error if command can't start 2013-05-07 14:05:51 -07:00
Mitchell Hashimoto 04563764a0 `packer build` now communicates through RPC! 2013-05-07 11:50:42 -07:00
Mitchell Hashimoto e9278cc0bd packer/plugin: Randomly generate port to run on 2013-05-06 15:27:44 -07:00
Mitchell Hashimoto b9e3eb1ff7 packer/rpc: Get rid of the heavy server stuff 2013-05-05 17:38:50 -07:00
Mitchell Hashimoto 0cc3a5f918 packer/plugin: Much more robust subprocess starting 2013-05-05 16:25:32 -07:00
Mitchell Hashimoto 86f1fbe925 packer/rpc: Support the new Builder func on Environment 2013-05-05 15:12:55 -07:00
Mitchell Hashimoto a6aafde00e packer/rpc: tests green from new BuilderFactory changes 2013-05-05 14:50:27 -07:00
Mitchell Hashimoto 14c568a9d2 Get rid of BuilderFactory 2013-05-05 14:47:17 -07:00
Mitchell Hashimoto 3370c55e2c Start packer/plugin. Big WiP 2013-05-04 21:26:30 -07:00
Mitchell Hashimoto 01405c864b packer/rpc: Use the proper Server for tests 2013-05-04 19:59:42 -07:00
Mitchell Hashimoto 5aec3f6745 packer/rpc: Remote environments 2013-05-04 15:58:42 -07:00
Mitchell Hashimoto 255b94761c packer/rpc: Test BuilderFactory result works. Close back RPC after one
conn
2013-05-04 15:33:36 -07:00
Mitchell Hashimoto 5aebe7b149 packer/rpc: BuilderFactory remote 2013-05-04 15:29:00 -07:00
Mitchell Hashimoto 8a78d4d8a5 packer/rpc: Test Builder.Run 2013-05-04 13:50:02 -07:00
Mitchell Hashimoto c537c304cb Remote builders 2013-05-04 13:47:11 -07:00
Mitchell Hashimoto 68341e6e8a Test regisering a UI with the server 2013-05-04 13:36:56 -07:00
Mitchell Hashimoto 720bb0c297 Better comments 2013-05-04 13:32:02 -07:00
Mitchell Hashimoto 03ff35d6a0 Server tests 2013-05-04 13:31:07 -07:00
Mitchell Hashimoto 22549b0388 Fix race condition issue where listner could become nil 2013-05-04 13:29:45 -07:00
Mitchell Hashimoto 5007b240dc Server opens a port in the given range 2013-05-04 13:23:28 -07:00
Mitchell Hashimoto dbe5360262 Ability to get a net listener in a given port range 2013-05-04 13:17:22 -07:00
Mitchell Hashimoto f0a09ffa6b Crazy things with RPC servers and stuff 2013-05-03 23:55:08 -07:00
Mitchell Hashimoto 0985d26167 Make Build an interface 2013-05-03 20:45:38 -07:00
Mitchell Hashimoto 8dea720627 rpc.Ui 2013-05-03 15:49:15 -07:00
Mitchell Hashimoto 94cdedf40f Move RPC stuff into a new "packer/rpc" package 2013-05-03 14:26:21 -07:00
Mitchell Hashimoto b1993dc24d Test that coreEnvironment can't encode/decode 2013-05-02 15:36:30 -07:00
Mitchell Hashimoto 575489fa78 RPC commands and some basic tests for this [GH-1] 2013-05-02 15:20:12 -07:00
Mitchell Hashimoto 520503e10c Turn Environment into an interface 2013-05-02 14:03:55 -07:00
Mitchell Hashimoto fefd2ae208 Separate commands into other directories 2013-04-21 19:04:35 -07:00
Mitchell Hashimoto f49c0cb313 Pull out Command interface out into separate file 2013-04-21 18:45:44 -07:00
Mitchell Hashimoto 262d8aa9a8 Template can create Builds 2013-04-21 12:36:55 -07:00
Mitchell Hashimoto 8f08c5d8a2 Require Prepare to be called on Build 2013-04-20 20:03:53 -06:00
Mitchell Hashimoto f579ff05f2 Initial work on Build 2013-04-20 19:55:02 -06:00
Mitchell Hashimoto 05e254a2ff BuilderFactory getter on Environment 2013-04-20 19:31:42 -06:00
Mitchell Hashimoto f4ea172178 NilBuilderFactory 2013-04-20 19:08:10 -06:00
Mitchell Hashimoto 116442510b Require configuration to create Environment 2013-04-20 19:00:03 -06:00
Mitchell Hashimoto 12049e3d87 Some documentation 2013-04-20 18:33:27 -06:00
Mitchell Hashimoto f21db281c2 better testing of the help printing on CLIs 2013-04-20 18:30:09 -06:00
Mitchell Hashimoto 109be6b5e3 Better testing of CLI 2013-04-20 18:22:27 -06:00
Mitchell Hashimoto a8853da063 Test the CLI that Run is called on custom commands 2013-04-20 18:17:53 -06:00
Mitchell Hashimoto 216d5cb0d1 Fix tests 2013-04-20 18:09:54 -06:00
Mitchell Hashimoto 0de922d14a Make environment config export variables 2013-04-20 18:08:43 -06:00
Mitchell Hashimoto 2e1b50769f Just some types and their documentation 2013-04-20 18:05:27 -06:00
Mitchell Hashimoto 37bd1cd308 Test setting the UI for tests 2013-04-15 20:26:38 -07:00
Mitchell Hashimoto 4eb8ac80c2 Ability to get a builder from the env 2013-04-15 19:53:29 -07:00
Mitchell Hashimoto 6bed06e01c Lots of template parsing stuff 2013-04-15 17:04:19 -07:00
Mitchell Hashimoto 298a7cdbe4 Basic template parsing, tests, build command progress 2013-04-15 15:48:42 -07:00
Mitchell Hashimoto 49256895cc CLI calls should slice the first arg out before running 2013-04-15 15:03:41 -07:00
Mitchell Hashimoto 8c5b695de7 Initial build command 2013-04-15 14:36:23 -07:00
Mitchell Hashimoto 759261dcf1 Bad commit message 2013-03-25 16:29:26 -07:00
Mitchell Hashimoto bde32e964f Alphabetize 2013-03-24 16:41:58 -07:00
Mitchell Hashimoto b25bf0c0c9 Format 2013-03-24 16:36:02 -07:00
Mitchell Hashimoto f6919cf18b Short-circuit -h and --help to printing help for the top-level cmd 2013-03-24 16:35:33 -07:00
Mitchell Hashimoto 4d10489f51 Implement the help method 2013-03-24 16:28:35 -07:00
Mitchell Hashimoto 91c524c7ec More environment testing 2013-03-24 14:47:59 -07:00
Mitchell Hashimoto ca93f645be packer.Ui tests 2013-03-24 14:31:18 -07:00
Mitchell Hashimoto db1c11fff5 Lots of stuff, too early for meaningful commit messages
UI, command dispatch
2013-03-24 14:03:53 -07:00