Commit Graph

607 Commits

Author SHA1 Message Date
Adrien Delorme 9b75c0af3d WIP VB 2019-06-17 16:42:49 +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 4bf6a56d71 split communitacor.SSH & communitacor.WinRM to facilitate documentation
put doc for communicator into the struct
2019-06-06 16:55:24 +02:00
Adrien Delorme 4399684372 make fmt autogenerated docs 2019-06-06 16:29:25 +02:00
Adrien Delorme e6cbb013ba add // go:generate struct-markdown to all previously edited files 2019-06-05 16:42:18 +02:00
Adrien Delorme f1917edd34 generate the comments for config struct of builders scraping doc website 2019-06-05 16:42:17 +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
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 c4f3dccc14 rename interpolation context from ctx to ictx and contexts to ctx to avoid conflicts 2019-04-03 15:56:15 +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
Megan Marsh 9f1a4e0fed
Merge pull request #7423 from hashicorp/lock_ports
Lock packer ports using a lock file
2019-03-26 10:35:18 -06:00
Adrien Delorme 5a6dffde9a use port as ints 2019-03-19 15:01:12 +01:00
Adrien Delorme c214f6735b make everything a uint 2019-03-19 12:54:15 +01:00
Adrien Delorme f67b5ff59d virtualbox StepConfigureVRDP: use common/net pkg to find open port 2019-03-19 12:54:15 +01:00
Adrien Delorme 59370986fb virtualbox StepForwardSSH: use common/net pkg to find open port 2019-03-19 12:54:15 +01:00
Vadym Haidamaka 414d0750f0 Add tests to validate 'none' communicator in the virtualbox builder 2019-03-16 18:18:29 +02:00
Vadym Haidamaka 0263503c45 Validate virtualbox_version_file and guest_additions_mode when communicator is none 2019-03-16 18:15:27 +02: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 3dc1dafe58
Merge pull request #7287 from stephen-fox/ephemeral-ssh-key-pair-issue-7225
virtualbox: create ephemeral SSH key pair for build process
2019-03-04 14:25:04 -08:00
Stephen Fox 7e1cbc6d89 Rename references to key pair name to comment.
Per the OpenSSH manual, the field is for a comment.
2019-03-01 10:00:29 -05:00
Stephen Fox 61a8968b22 Use 'os.OpenFile' to atomically create debug key file.
Per code review feedback.
2019-02-28 17:23:33 -05:00
Stephen Fox 094c87e395 Remove 'SSHPublicKeyUrlEncoded', use 'urlquery' instead.
Per code review feedback, the Go template library supports
encoding variables in URL query format. Instead of exposing
two different public key formats (unmodified string and a
URL encoded string), just have the user apply the 'urlquery'
modifier to their template.
2019-02-28 17:06:51 -05:00
Stephen Fox 2ef6b9247d Initial take on code review feedback from @azr.
Do not use builder pattern or interfaces; stick to structs and
some basic functions.
2019-02-25 17:16:24 -05:00
Megan Marsh 3fd589fa72 typos 2019-02-08 09:31:30 -08:00
Megan Marsh e2d8c0bfd7 docs 2019-02-08 09:28:10 -08:00
Megan Marsh 07c0c599e0 attach guest additions via SATA when necessasry 2019-02-08 09:15:15 -08:00
chris marget 53c0376dfd don't print keypair to the user's screen 2019-02-06 13:54:05 -05:00
chris marget 13cc73d600 keypair parsing and testing 2019-02-06 13:46:55 -05:00
Stephen Fox f9d24ccda0 Allow user to get public key straight up, or URL encoded. 2019-02-05 11:59:13 -05:00
Stephen Fox f2c11b55be Renamed authorized_keys public key function. 2019-02-04 14:27:14 -05:00
Stephen Fox 01c98f3d82 Tweaked debug SSH private key file name for vbox. 2019-02-04 12:47:18 -05:00
Stephen Fox c6ae8654d9 Moved SSH key pair code into 'helper/ssh'. 2019-02-04 12:21:58 -05:00
Stephen Fox 25775886a8 Properly set SSH key pair name. 2019-02-04 12:12:18 -05:00
Stephen Fox be081944b1 Moved new key pair funcs closer to builder funcs. 2019-02-04 12:09:23 -05:00
Stephen Fox b1b67ecffa Added support for setting a name in SSH key pair.
Also refactored how new SSH key pairs are created, and how the
tests are structured.
2019-02-04 12:07:32 -05:00
Stephen Fox 5893134c61 Updated comment for 'PrivateKeyPemBlock()'. 2019-02-04 10:02:07 -05:00
Stephen Fox cd4ae03324 Create / use SSH key pairs in vbox builders.
This follows the business logic for creating / using SSH key pairs
in the cloud-type builders (e.g., Amazon EC2).
2019-02-03 12:20:52 -05:00
Stephen Fox 72d1501551 Made SSH public key available in vbox boot command.
The SSH public key (in authorized_keys format) can be retreived in
the build template by specifying '{{ .SSHPublicKey }}'. The key is
URL encoded to escape spaces.
2019-02-03 12:20:42 -05:00
Stephen Fox 459bd1ea7a Added vbox step for SSH key pair business logic. 2019-02-03 12:07:57 -05:00
Stephen Fox 6824806e6f Allow caller to specify new line for SSH public key.
The default behavior of the various builders that create SSH key
pairs appears to be to add a trailing new line. This will be the
default behavior, but at least it can be customized if desired.
2019-02-03 10:37:32 -05:00
Stephen Fox ad075ffac3 Added 'Description()' to 'sshKeyPair'.
Also cleaned up tests.
2019-02-03 09:17:18 -05:00
Stephen Fox f233e54992 Initial SSH key pair helper implementation. 2019-01-30 22:10:27 -05:00
Megan Marsh 97a791389a deduplicate step_output_dir and move to common folder 2019-01-11 15:06:36 -08:00
Adrien Delorme c8a39e939a
Merge pull request #7178 from edwardmlyte/simplify-version-check
Simplify version check for port count argument
2019-01-10 16:07:00 +01:00
Ed Maxwell-Lyte e8e92fe6c6 rename clashing import 2019-01-09 16:30:54 +00:00
Ed Maxwell-Lyte 4437f8d8ba Use go-version for comparison 2019-01-09 16:22:33 +00:00
Ed Maxwell-Lyte 346f5d9bba Simplify version check for port count argument
Might be personal preference, but I think this reads more clearly
2019-01-09 09:46:24 +00:00
Adrien Delorme 9f7b4ffc17
Merge branch 'master' into pr/6950 2019-01-09 10:11:18 +01:00
Ed Maxwell-Lyte 4fc02ea406 Assign to existing var 2019-01-08 16:19:11 +00:00
Adrien Delorme f91b668617
Create portCountArg in the if statement
You can't assign to something that doesn't exist

Co-Authored-By: edwardmlyte <edwardmlyte@gmail.com>
2019-01-08 16:15:24 +00:00
Ed Maxwell-Lyte a9eed311a6 Run gofmt on driver_4_2.go 2019-01-08 15:58:12 +00:00
Ed Maxwell-Lyte e5b1e0f4d9 Add version 0.x to the rule 2019-01-08 15:35:45 +00:00
Ed Maxwell-Lyte e40c90423f Reverse default port count virtualbox argument
As we know the exact versions that used the old `sataportcount` option, it's safe to assume we want to use the newer `portcount` option for everything else.

Reversed the option check and use the `portcount` option by default. Prevents needing to update this for future major versions of VirtualBox.
2019-01-08 14:14:26 +00:00
Adrien Delorme b7222d1f56 Add tmp package that offers Dir & File funcs
this regroups the calls of tmp func calls into one package.
the tmp pkg allows to store tmp files under a common directory for easier managment

Squashed commit of the following:
commit 74b674c01560c6b547e9cab5e8afb486f0fe7d6c
Merge: fc94b5714 66001525d
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Fri Nov 2 02:02:38 2018 -0400

    Merge branch 'remove_TMPDIR_docs' of github.com:tb3088/packer into remove_TMPDIR_docs

commit fc94b571428447aaf2e5171967c95cdf9e5c73ff
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Fri Nov 2 01:42:38 2018 -0400

    update tests to honor configured temporary directory

commit 5a562359f4937af506607dd96ed1c46426093f52
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 18:52:38 2018 -0400

    sync straggler to refactor. implement tests at packer/configfile instead of buried in docker.

commit 9d5a4a0935bfd049e2f8f50ad73e4455b42c9410
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 15:39:46 2018 -0400

    insert URL to GoLang API for os.TempDir()

commit fbae4c2e051898aecd8705e9d8a20353430ede23
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:41:29 2018 -0400

    revise documentation to match code

commit 3590fae8bd0afa92a161a49ed794ee32e357d583
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:21:59 2018 -0400

    refacter config_file. replace all hard-coded os.TempDir with wrapper

commit d5c5306a97b648ded06a8eb76ce728f07c9924f0
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 20:11:36 2018 -0400

    close massive file overwrite hole with TempDir

commit 0a72297da86089fbd07e4f7d9472a92fa4d1c733
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 01:06:00 2018 -0400

    adjust var declaration scope

commit 20f68228b6c372d984ea5b055cfc8bda9b110ac5
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 00:54:35 2018 -0400

    use mktemp() equivalent to create temporary directory

commit c73ebe3d8321664a2685a0baa8e441dd895b0db4
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 20:40:58 2018 -0400

    remove extraneous variable declaration, fix FOR loop

commit 63549b8bd745a0090b15ed0b0ebf644162db27db
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:30:44 2018 -0400

    match styistic convension with rest of docs

commit 976101074942db36f10d3a686d6d29ddb7c01926
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:08:39 2018 -0400

    revert dangling config file change

commit 95159afbc05eac96ed11c3183af5fb0abe2f2d5c
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Fri Dec 29 23:53:43 2017 -0500

    replace invalid TMPDIR variable wth PACKER_TMP_DIR.
    update ConfigTmpDir() to try common temporary paths first and
    only write to configDir() as a last resort.

commit 66001525d72de56a4cf9339b900c46f59bc6e91a
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Fri Nov 2 01:42:38 2018 -0400

    update tests to honor configured temporary directory

commit e9b6adefeae8c65eb8aa47fef38cbf0aa424338c
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 18:52:38 2018 -0400

    sync straggler to refactor. implement tests at packer/configfile instead of buried in docker.

commit 852113ed076e2d14e5dca6815ea680da1e2896bb
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 15:39:46 2018 -0400

    insert URL to GoLang API for os.TempDir()

commit 54add38d1d1c6e283cd444b367ed8bd49a5f3699
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:41:29 2018 -0400

    revise documentation to match code

commit 6b5b8f6d4edad0e187ca13d64ac4118f34eee643
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Thu Nov 1 07:21:59 2018 -0400

    refacter config_file. replace all hard-coded os.TempDir with wrapper

commit c22092c601c33484327674f322c7379fa41506d7
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 20:11:36 2018 -0400

    close massive file overwrite hole with TempDir

commit 7a730450916bf8e5dbc2a741ec233a49466ab7cc
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 01:06:00 2018 -0400

    adjust var declaration scope

commit 0f2933adb6f6922dfeab78a95371a444ec8918ab
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Wed Oct 31 00:54:35 2018 -0400

    use mktemp() equivalent to create temporary directory

commit d74839ede05dacf712b55a7bb48aec19fe6b007f
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 20:40:58 2018 -0400

    remove extraneous variable declaration, fix FOR loop

commit eb65416619437e4a3dec90277770803dd5b2281c
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:30:44 2018 -0400

    match styistic convension with rest of docs

commit acaa2b31ed463219c4ef099f351eec72406e2989
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 19:08:39 2018 -0400

    revert dangling config file change

commit e573fde668dcb418561e61535c1d68b2888f5b0f
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Fri Dec 29 23:53:43 2017 -0500

    replace invalid TMPDIR variable wth PACKER_TMP_DIR.
    update ConfigTmpDir() to try common temporary paths first and
    only write to configDir() as a last resort.

commit 39a9874afc9dea71b36753375fb7feb61ffecf69
Merge: 8a413cfe8 3315812c2
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Oct 30 18:19:26 2018 -0400

    Merge branch 'master' of https://github.com/hashicorp/packer into prestine

commit 8a413cfe83b0a70dbd99c32d936334ca5788ca9b
Merge: e07491de5 4e14710a6
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Mon Oct 1 20:18:10 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit e07491de59cead0b337a7f57f4a6c625e1f560ab
Merge: 42610a35d a1fa35dff
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Tue Aug 21 13:26:19 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 42610a35d5ef65af8844a58ad70e2ec75262da6a
Merge: 5298142da 0d63cf7bc
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Tue Jun 19 22:45:05 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 5298142da6da95354844f201deeeef3c599e48b2
Merge: 7bb110bc7 9d9736552
Author: Matthew Patton <mpatton@enquizit.com>
Date:   Mon Jun 11 15:10:09 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 7bb110bc744c9797fcaec25a265d9b85a22d6d6b
Merge: a61c869ca 6189d66e7
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Wed May 9 23:41:22 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit a61c869ca7268acf0e3b1e1fa7a8ee7feea65984
Merge: 098101dd9 4be5f072c
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Fri May 4 10:13:04 2018 -0400

    Merge remote-tracking branch 'upstream/master' into prestine

commit 098101dd99f08b0ca110d33eff6904537c6d21de
Merge: fefaf0fa6 554b2b4a5
Author: Matthew Patton <matthew.patton@itgfirm.com>
Date:   Tue May 1 20:52:30 2018 -0400

    Merge branch 'EOL-handling' into prestine

Co-Authored-By: Matthew Patton <pattonme@yahoo.com>
2018-12-12 16:35:57 +01:00
Megan Marsh a819217c93 fix virtualbox 6.0 beta command options 2018-12-10 15:18:21 -08:00
Megan Marsh 6728244480 simplify for loop logic 2018-11-27 09:33:29 -08:00
Andrew Pennebaker c05ac784d3 fix tests 2018-11-27 09:31:01 -08:00
Andrew Pennebaker 5ada3376b8 fix test 2018-11-27 09:31:01 -08:00
Andrew Pennebaker 2c989157e4 gofmt 2018-11-27 09:31:01 -08:00
Andrew Pennebaker 5b6cbeed1d expose `--iso` option down in `VBoxManage export --iso` up to virtualbox-iso configuration as "bundle_iso"; ensure ISOs are not removed when this is enabled. 2018-11-27 09:31:01 -08:00
Ali Rizvi-Santiago 0f019407d6 Updated things related to the general hw config in the virtualbox builders to correspond to @azr's suggestions. 2018-11-22 20:48:00 -06:00
Ali Rizvi-Santiago eca26f43f2 Renamed both `cpu_count` and `memory_size` to `cpus` and `memory` (respective). 2018-11-17 06:34:22 -06:00
Ali Rizvi-Santiago 51948daf92 Added options for the cpu count, memory, audio, and usb to the virtualbox builder. 2018-11-17 06:19:54 -06:00
Adrien Delorme 410bee0666 make TestStepShutdown_shutdownDelay less strict on schedule 2018-10-17 12:49:38 +02:00
Adrien Delorme 0237956e66 builder/virtualbox/common/step_shutdown_test.go: compare durations instead of floats & ouput duration 2018-10-17 11:19:57 +02:00
Megan Marsh 38cc525ec7 new option allowing user to clean up the ephemeral ssh key from the authorized_keys file 2018-09-14 11:06:38 -07:00
Adrien Delorme 51d2aac9f6 SSHPrivateKey => SSHPrivateKeyFile 2018-08-29 14:40:32 +02:00
Megan Marsh 340363a649
Merge pull request #6613 from hashicorp/merge_ssh_config_funcs
Merge ssh config funcs from builders
2018-08-23 16:03:36 -07:00
Megan Marsh 31d4f8af45 use a time.Duration instead of a hardcoded ms 2018-08-23 13:16:01 -07:00
Megan Marsh 918db58604 added new template variables to replace PACKER_KEY_INTERVAL with tunable key and keygroup intervals depending on driver used 2018-08-22 11:37:56 -07:00
Adrien Delorme 41f6e0334d refactor all copy pasted sshConfig with into communicator.Config.SSHConfigFunc
* still need to append the auth methods into an array for gracefullness
2018-08-22 17:02:23 +02:00
Adrien Delorme 6b3844a64f
Revert "allow to use ISO images in-place v.s. copying them" 2018-08-20 10:48:06 +02:00
Adrien Delorme 17f2949e36 remove stuttering; ISOConfig.InplaceISO -> Inplace 2018-08-15 15:51:25 +02:00
Adrien Delorme 82e480a285 allow to use ISO images inplace v.s. copying them 2018-08-15 14:37:38 +02:00
M. Marsh c67d59515c
Merge pull request #6370 from arizvisa/patch-1
Allow StepAttachIso in the VirtualBox builder to resolve symbolic links when processing the IsoPath.
2018-06-27 10:30:30 -07:00
Alexander Georgievskiy ec8747a042 They finally added https on download.virtualbox.org
Because downloading SHA256SUMS via http is a fun joke
2018-06-22 00:45:20 +03:00
Ali Rizvi-Santiago 47a3315fde
Added a missing reference to the "path/filepath" module.
Lol. Dammit.
2018-06-11 18:07:43 -05:00
Ali Rizvi-Santiago 963932699e
Remove a stray tab that resulted from poor usage of Github's file editor.
That's what I get for not making a proper branch...
2018-06-11 18:02:52 -05:00
Ali Rizvi-Santiago 9b30c9aed0
Allow StepAttachIso in the VirtualBox builder to resolve symbolic links when processing the IsoPath.
This just closes out a really old issue (#3437) by using `filepath.EvalSymLinks` to resolve the symbolic link that the user specifies for the IsoPath.
2018-06-11 17:53:54 -05:00
DanHam 13b7078cb0
Remove tmp directories created by builder/virtualbox/common tests 2018-04-30 20:38:03 +01:00
Matthew Hooker a0c9ddb9ae
implement boot config struct for virtualbox 2018-04-19 14:26:31 -07:00
Matthew Hooker c6299972b9
s/boot_command/bootcommand/ 2018-04-19 14:26:31 -07:00
Matthew Hooker 94129b7fe3
we're using PC-XT (set1) not PC-AT 2018-04-19 14:26:30 -07:00
Matthew Hooker a46a7afa20
Remove old tests. 2018-04-19 14:26:29 -07:00
Matthew Hooker 81d127768c
Add key press interval to virtualbox. 2018-04-19 14:26:29 -07:00
Matthew Hooker 59376294ef
Maximize scancode throughput.
Let's cache the scancodes and flush them at the end. Also make sure to
send only as many as the driver can send correctly. It's important here
to chunk the scancodes correctly, so that we don't accidentally split them
over successive calls to the driver
2018-04-19 14:26:29 -07:00
Matthew Hooker 9b7704c714
Implement new parser for Parallels boot command 2018-04-19 14:26:29 -07:00
Matthew Hooker 99d61920d0
Abstract vbox driver into PC-AT driver. 2018-04-19 14:26:29 -07:00
Matthew Hooker e4af71858f
Implement new parser for Virtualbox boot command
Remove boot wait for virtualbox run step
2018-04-19 14:26:29 -07:00
Matthew Hooker 673245afcf
Replace boot command parser with PEG parser. 2018-04-19 14:26:28 -07:00
Andrew Pennebaker fdc6ac631a fix vbox scancodes and support critical key combinations during boot-time operations 2018-03-26 18:35:45 -05:00
Matthew Hooker 49958391b3
better error when source_path doesn't exist. 2018-03-19 09:58:39 -07:00
Megan Marsh 414dd80e61
Merge pull request #6013 from jsoref/spelling
Spelling
2018-03-14 09:50:27 -07:00
Josh Soref 964d5dd55e spelling: mapstructure 2018-03-13 08:09:41 +00:00
Josh Soref 57c0e9e4a7 spelling: illegal 2018-03-13 08:02:43 +00:00
Josh Soref 041a115f65 spelling: existent 2018-03-13 08:15:56 +00:00
Megan Marsh 5055fa66aa
Merge pull request #5987 from mcandre/multibyte-scancodes
send multibyte scancodes accurately to virtualbox
2018-03-12 16:23:41 -07:00
Megan Marsh 2a88672cd9 add test for modifyer keypress commands 2018-03-12 15:08:30 -07:00
Andrew Pennebaker 1d48812b34 fix later commands overwriting earlier commands 2018-03-09 20:17:43 -06:00
Andrew Pennebaker f305a2f4c2 send multibyte scancodes accurately to virtualbox 2018-03-07 10:59:02 -06:00
SwampDragons 7d5d62d748
Merge pull request #2906 from arizvisa/GH-2377
Improved support for downloading and validating a uri containing a Windows UNC path or a relative file:// scheme
2018-02-05 09:53:47 -08:00
Matthew Hooker 8cd403425e
test fixes WIP 2018-01-24 17:09:17 -08:00
Matthew Hooker 5d48d658b4
Wire context through misc steps
Some steps actually need to pass the context around, so let's create
a ctx variable and pass it.
2018-01-24 17:09:17 -08:00
Matthew Hooker 7a189a83a1
fix imports
`find . -type f -name '*.go' -not -path "./vendor/*" -exec goimports -w {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker a831d522be
change run signatures
Run now takes a context as well as a statebag. We'll assign the context
to the blank identifier to prevent namespace collisions. We'll let the
step authors opt-in to using the context.

`find . -iname "step_*.go" -exec gsed -i'' 's/func \(.*\)Run(/func \1Run(_ context.Context, /' {} \;`
2018-01-24 17:09:17 -08:00
Matthew Hooker 366dc3da0a
move multistep imports to helper.
gomvpkg -from "github.com/mitchellh/multistep" -to "github.com/hashicorp/packer/helper/multistep"
2018-01-24 17:09:15 -08:00
Matthew Hooker ebe995c0ff
run goimports 2018-01-22 17:21:10 -08:00
Ali Rizvi-Santiago c17f827e1d Split up DownloadableURL() into it's individual components: SupportedURL(), DownloadableURL(), and ValidatedURL(). Updated all instances of DownloadableURL() to point to ValidatedURL(). Reverted the tests that are based on un-supported protocols. 2018-01-16 13:37:32 -06:00
Ali Rizvi-Santiago 3cf448f6ec Reverted previously removed additions of tests that check for ftp:// or nonexistent-protocol:// using DownloadableURL. DownloadableURL's responsibility is not to have inherent knowledge of protocols that are available, but to format an invalid url/path to a valid url/path. 2018-01-16 13:37:32 -06:00
Ali Rizvi-Santiago 5d97b105a8 Removed implementation of the ftp protocol and the usage of cheggaaa's progress-bar as suggested by @SwampDragons. Replaced some of the old smoke-tests that were based on the ftp-protocol non-existing with a "non-existent://" protocol that's guaranteed to not exist. 2018-01-16 13:37:31 -06:00
Ali Rizvi-Santiago e940dc7e42 Fixed a config_test that should've failed but didn't because ftp:// uris work now. HeH! 2018-01-16 13:37:31 -06:00
SwampDragons fb730cf521
Merge pull request #5761 from hashicorp/fix_5713
fix nasty edge case where we can't find guest additions on windows if they are on a different drive
2018-01-11 11:48:26 -08:00
Megan Marsh 3ace5bb91b simplify FileExistsLocally 2018-01-10 16:11:17 -08:00
Megan Marsh 216c44b153 fix FileExistsLocally 2018-01-09 15:47:07 -08:00
Megan Marsh e164621bfe log line to help prevent confusion when guest_additions_url is set from env variable that is empty 2018-01-05 09:19:38 -08:00
Megan Marsh 4f3b470804 add helper function to manage validation of filepaths created using DownloadableURL 2018-01-03 16:53:47 -08:00
Ali Rizvi-Santiago 4fcd542d0c Fixed an issue where the VirtualBox builder was checking for whether guest_additions_url was empty or not before it actually interpolated any variables. 2018-01-02 21:09:41 -06:00
Megan Marsh 6756df9510 use url library instead of parsing string naiively 2017-11-13 12:57:53 -08:00
Megan Marsh 771349e58c fix error message 2017-11-13 12:52:47 -08:00
Megan Marsh 764be03876 didn't mean for this error message to get changed 2017-11-13 12:42:57 -08:00
Megan Marsh 0d18de2942 do validation in vmx config stage 2017-11-13 12:42:57 -08:00
Matthew Hooker fb098d045d
builder/virtualbox-ovf retry removing VM.
moves behavior from builder/virtualbox-iso into the driver
so it is automatically available to callers.
2017-10-25 10:27:33 -07:00
SLAZ666 f6bb79784f Add option keep_registered to virtualbox-ovf builder 2017-09-13 15:37:26 +02:00
Matthew Hooker 94d7a4ce8d
post-processor/vagrant-cloud: try upload once
* fixes multiple uploads mentioned in #4973
* removed unused token code
2017-06-12 17:34:32 -07:00
Matthew Hooker ab81b3ef7d Merge pull request #4699 from BenPhegan/virtualbox_sata_port_count
Add configuration to virtualbox-iso to allow sata port count configuration
2017-06-05 15:21:12 -07:00
Matthew Hooker 0c116981ab Merge pull request #4960 from rickard-von-essen/issue-4959
virtualbox: Don't add portforwarding if comm = none
2017-06-02 13:15:43 -07:00
Rickard von Essen 31b93a3026 virtualbox: Don't add portforwarding if comm = none
Closes: #4959
2017-06-02 21:58:34 +02:00
JD Friedrikson a0052fdb68
Specify InsecureIgnoreHostKey for HostKeyCallback
[A recent breaking change upstream in Golang's crypto
library](e4e2799dd7)
has broken SSH connectivity for a few builders:

```
==> qemu: Waiting for SSH to become available...
2017/05/20 16:23:58 ui: ==> qemu: Waiting for SSH to become available...
2017/05/20 16:23:58 packer: 2017/05/20 16:23:58 [INFO] Attempting SSH connection...
2017/05/20 16:23:58 packer: 2017/05/20 16:23:58 reconnecting to TCP connection for SSH
2017/05/20 16:23:58 packer: 2017/05/20 16:23:58 handshaking with SSH
2017/05/20 16:23:58 packer: 2017/05/20 16:23:58 handshake error: ssh: must specify HostKeyCallback
2017/05/20 16:23:58 packer: 2017/05/20 16:23:58 [DEBUG] SSH handshake err: ssh: must specify HostKeyCallback
2017/05/20 16:24:05 packer: 2017/05/20 16:24:05 [INFO] Attempting SSH connection...
2017/05/20 16:24:05 packer: 2017/05/20 16:24:05 reconnecting to TCP connection for SSH
2017/05/20 16:24:05 packer: 2017/05/20 16:24:05 handshaking with SSH
2017/05/20 16:24:05 packer: 2017/05/20 16:24:05 handshake error: ssh: must specify HostKeyCallback
2017/05/20 16:24:05 packer: 2017/05/20 16:24:05 [DEBUG] SSH handshake err: ssh: must specify HostKeyCallback
```

Specifying HostKeyCallback as insecure should make things work again
and would make sense for packer's use case.
2017-05-20 16:17:04 -04:00
Ben Phegan c4b8e8e5df Merge branch 'master' into virtualbox_sata_port_count 2017-05-01 09:23:05 +10:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker 4fcbf75da9
s/non existent/nonexistent/ 2017-03-29 12:38:33 -07:00
Matthew Hooker 35578d9ed1
remove unnecessary type conversions 2017-03-28 20:36:21 -07:00
Matthew Hooker 79287d7e47
simplify some code 2017-03-28 20:36:20 -07:00
Matthew Hooker 230079f73a
spell fixes 2017-03-28 20:36:19 -07:00
Matthew Hooker 35480e21b2
fix typo 2017-03-24 11:56:49 -07:00
Matthew Hooker 0ad6b169bc
builder/virtualbox: retry removing floppy controller 2017-03-23 23:58:23 -07:00
Ben Phegan 0c777a1d63 Fix for DriverMock not implementing Driver 2017-03-23 12:11:19 +11:00
Ben Phegan 67eb600c08 Add sata_port_count so that a SATA controller can be created with more than 1 port. The default of prevents additional drives being added. Default preserved if not overridden. 2017-03-22 23:09:25 +11:00
Matthew Hooker 68e2b150cd
builder/virtualbox: allow skipping upload of version file 2017-03-16 18:14:11 -07:00
Matthew Hooker 84fc62f6b2 Merge pull request #4496 from mitchellh/vmrmguest2
builder/virtualbox: remove guest additions
2017-02-03 23:14:35 -08:00
Matthew Hooker 70af3d8148 Merge pull request #4497 from mitchellh/f-clickable-links
Make rdp and vnc links clickable by adding the protocol
2017-02-02 12:41:59 -08:00
Chris Bednarski facf27ceeb Make rdp and vnc links clickable by adding the protocol 2017-02-02 01:55:28 -08:00
Matthew Hooker e9e3215c38
builder/virtualbox: remove guest additions 2017-02-02 00:47:56 -08:00
Matthew Hooker 228bc9cfd3
use driver delete method 2017-02-01 23:57:45 -08:00
Matthew Hooker 22d1322bd9
always check for an error first when walking a path 2017-01-26 16:32:21 -08:00
Matthew Hooker d2e59e4e92
set PACKER_HTTP_ADDR env var when available.
If using a builder that has an http server set up for file transfer,
expose the connection info to the shell provisioner through the environment
variable PACKER_HTTP_ADDR.

Closes #2869
2017-01-16 23:19:52 -08:00
Matthew Hooker a3da92dc97 Merge pull request #4339 from DanHam/gh-4131
Add option to skip export of installed VM for vbox ISO & OVF builders
2017-01-10 15:08:15 -08:00
Rickard von Essen 85cf00069f Merge pull request #4294 from legal90/iso-target-extension
Add "iso_target_extension" option for all local *-iso builders
2017-01-04 13:48:28 +01:00
DanHam ac769be49a
Pause between each boot command element rather than each char with -debug
Fixes #4332
2016-12-31 11:57:11 +00:00
DanHam 0ac071b6e7
Add option to skip export of installed VM for Virtualbox ISO & OVF builders
Closes #4131
2016-12-29 13:19:59 +00:00
DanHam 686ec1866e
vbox builders now need to explicitly set WinRMPort for StepConnect
Aligns vbox builders with changes to helper/communicator/step_connect.go
introduced by PR #2576

Fixes #4310
2016-12-23 15:55:10 +00:00
Matthew Hooker 2e358ae4a1 Revert "builder/virtualbox: group keyboard codes" 2016-12-21 15:12:17 -08:00
Matthew Hooker ee86dc87fd
fix broken test 2016-12-20 18:10:58 -08:00
Matthew Hooker aa177de54b
add test for #4247 2016-12-20 17:51:47 -08:00
Mikhail Zholobov 57d07f227a
Add "iso_target_extension" option for all local *-iso builders
This option allows to set the extension of the ISO file after download.
Defaults to "iso". It makes sense for building Mac OS X guests, where the
bootable image is actually a DMG, not an ISO.
In particular, it is important for "parallels-iso" builder to set the right extension.
2016-12-17 12:50:30 +02:00
Brian Ruff 038787ed48 Refactored to gather scan codes into groups to be sent to VirtualBox's console. 2016-12-04 11:28:18 -07:00
Arthur Burkart 337856811e Implements OVA downloads w/local checksum support
Presumably, it is convention to store a manifest file with checksums
inside the OVA, so remote checksum support was not implemented.
2016-11-28 15:01:37 -05:00
Rickard von Essen 96e9a8e6e9 Removed default value for ssh_username 2016-11-17 22:30:34 +01:00
Matthew Hooker d920b3fbf4 run gofmt 2016-11-01 14:08:04 -07:00
Arthur Burkart 4a00ffeea2 Closes #3999 - Support VirtualBox Trim/Discard
Adds a couple options to enable/disable the `--nonrotational` and
`--discard` flags during `VBoxManage storageattach` command execution
2016-10-17 08:52:28 -04:00
Rickard von Essen 3c8dabba9e Fixed formatting 2016-10-11 23:43:50 +02:00
Rickard von Essen 5e96709ee9 Merge pull request #2919 from arizvisa/floppy-recurse
Added an option for copying entire subdirectories via floppy_dirs (supplants floppy_files)
2016-10-08 16:51:16 +02:00
Matthew Hooker b7e14c4354 Merge pull request #3952 from MikeStankavich/f-virtualbox-post-shutdown-delay
Add VirtualBox post shutdown delay to address floppy controller delet…
2016-10-03 16:23:02 -07:00
Matthew Hooker 127142215a Merge pull request #3954 from emo3/f-keepreq-vb
added functionality like vm
2016-10-03 12:55:34 -07:00
Ed Overton 1adb0a5fc3 added functionality like vm 2016-10-03 15:11:21 -04:00
Mike Stankavich a187b1cf92 Add VirtualBox post shutdown delay to address floppy controller delete error per issue #2401 2016-10-02 13:12:40 -05:00
Rickard von Essen 3ad7f067ab Merge pull request #2784 from orivej/fix-ssh-port-max
Make ssh_host_port_max an inclusive bound to agree with documentation
2016-10-02 00:12:37 +02:00
Rickard von Essen 29ae078326 Added missing virtualbox floppy_dirs 2016-10-01 09:05:10 +02:00
Rickard von Essen 06e3539ffa Merge pull request #3767 from taliesins/ExtendScanCodes
Add support for ctrl, shift and alt keys and using them as key modifier.
2016-09-20 21:36:46 +02: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
Rickard von Essen 5cbc36103e Merge pull request #3756 from ricardclau/floppy_check
Test floppy disks actually exist
2016-09-12 08:05:16 +02:00
Lamoni Finlayson d02b106a16 Fix for issue #2972 - Implemented ssh_host for virtualbox builders (#3617) 2016-08-24 18:30:26 +02:00
Taliesin Sisson a87ad05866 Add support for ctrl, shift and alt keys.
Add support for using ctrl, shift and alt as key modifiers. So you can now achieve ctrl+c by using "<leftCtrlOn>c<leftCtrlOff>".

Updated documentation for new key stroke tokens.
2016-07-31 19:05:10 +01:00
Ricard Clau acededfc6e tests actually test the floppies 2016-07-27 21:59:21 +01:00
Ian Duffy 9ec319e296 Allow configurable VNC bind IP for VirtualBox builders
Signed-off-by: Ian Duffy <ian@ianduffy.ie>
2016-05-23 14:24:16 +01:00
Sean Chittenden 3ca4782b56
Pause between boot_commands when debugging a Virtualbox build
When debugging a build (or maintaining an existing packer file), teach `packer build -debug` how to step through individual `boot_command`s in order to triage the packer file.
2016-05-17 04:03:45 -04:00
James Bishopp bd8fb014c4 Removed ssh_key_path
- removed backwards compatibility code
- ensured key usage came from SSHPrivateKey configuration
- changed tests to use private_key
2016-02-12 17:24:42 -08:00
Chris Bednarski 4458de4ea0 Reformat 2016-02-11 23:53:40 -08:00
Ian Duffy c4b64eb2c7 Closes #2637 - VRDP support for the virtualbox plugin
Signed-off-by: Ian Duffy <ian@ianduffy.ie>
2016-02-11 14:38:24 -08:00
Chris Bednarski 24dc798cfb Revert "Prevalidate Hardware Specs on Linux"
This reverts commit eda84cb2d3.
2016-02-02 12:41:43 -08:00
Chris Bednarski ffb85f6ea5 Merge pull request #3096 from grubernaut/f-resource-limits
Prevalidate Hardware Specs on Linux
2016-01-25 21:06:14 -08:00
Jake Champlin eda84cb2d3 Prevalidate Hardware Specs on Linux
Prevalidates hardware resources on Linux platforms for Virtualbox and
VMware builders. This is currently only available on Linux, as enabling
for both Darwin and Windows platforms, relies on cgo bindings that would
prevent effective cross-compilation.

Packer will now fail to build and validate templates if the template is
requesting that the VM to be created would allocate more system
resources than the host system has available.

This _however_ doesn't catch parallel builds that overflow the hosts
resources, will probably still need a better error message for VM's
failing to boot in that case.

Example Outputs:

```
$ $GOPATH/bin/packer build -debug ./vmware-iso.json
Debug mode enabled. Builds will not be parallelized.
vmware-iso output will be in this color.

2 error(s) occurred:

* Unavailable Resources: RAM - Requested - 204800000MB - Available 21721MB
* Unavailable Resources: Disk - Requested - 4000000000MB - Available 76701MB
```

```
$ $GOPATH/bin/packer build -debug ./vbox-iso.json
Debug mode enabled. Builds will not be parallelized.
virtualbox-iso output will be in this color.

2 error(s) occurred:

* Unavailable Resources: RAM - Requested - 10240000MB - Available 21721MB
* Unavailable Resources: Disk - Requested - 1000000000MB - Available 76701MB
```
2016-01-21 18:19:11 -05:00
Chris Bednarski db0e098800 Merge pull request #2750 from rickard-von-essen/issue-2743
Fixes #2743: Change log messages for step_forward_ssh
2016-01-21 13:28:44 -08:00
Mark Peek 7f149e595d Refactor http server config into common 2015-11-01 14:45:47 -08:00
Mark Peek cdcffecc2d Refactor builder ISO options
The ISO builders (parallels, qemu, virtualbox, and vmware) had too
much common code which needed to be maintained separately. This change
moves that code to a common ISO configuration.
2015-10-20 16:27:47 -07:00
Mark Peek e9657e6a9f Merge pull request #2642 from oliviertremblay/master
Make TargetPath customizable
2015-10-20 12:11:13 -07:00
Mark Peek e5a713ff01 Alternative fix for #2641: make random script name actually random 2015-10-11 13:31:09 -07:00
Orivej Desh 46d687d5ad Make ssh_host_port_max an inclusive bound to agree with documentation 2015-09-29 03:09:38 +00:00
Rickard von Essen e4dc543cae Fixes #2743: Change log messages for step_forward_ssh
Changed the log messages and changed the m name of the
VirtualBox builder NAT rule name from packerssh to
packercomm.
2015-09-17 13:43:08 +02:00
Olivier Tremblay f301a6454d Added documentation, renamed config param to iso_target_path 2015-08-20 07:37:24 -04:00
Olivier Tremblay 223e35fc65 Makes StepDownload's TargetPath customizable.
I exposed TargetPath as a config file option "target_path". I don't like
the name, but it follows the naming convention. The purpose of TargetPath
stands unmodified, and it enables a fair amount of customization.
2015-07-28 07:45:02 -04:00
Lorenzo Villani 7e64e90670 Use --portcount on VirtualBox 5.x 2015-07-13 20:32:45 +02:00
Mitchell Hashimoto 93bb0d86af builder/virtualbox: fix default names 2015-06-22 09:25:15 -07:00
Mitchell Hashimoto 84189f7a28 builder/*: properly save interpolation context 2015-06-22 09:22:42 -07:00
Mitchell Hashimoto d600456487 builder/virtualbox: fix interpolation weirdness 2015-06-22 09:17:09 -07:00
Mitchell Hashimoto 54e081d5af builder/virtualbox: only remove output dir after check 2015-06-22 09:09:12 -07:00
Mitchell Hashimoto 9c6d0dfc8b builder/virtualbox: fix type casting
/cc @pearkes - This fixes that crash
2015-06-21 19:56:55 -07:00
Mitchell Hashimoto d9fceaf39d update CHANGELOG 2015-06-18 10:19:46 +02:00
Mitchell Hashimoto ba2cf18460 Merge branch 'master' of https://github.com/ldx/packer into ldx-master 2015-06-18 10:18:17 +02:00
Mitchell Hashimoto 70af21615e Merge pull request #2233 from mitchellh/b-output-dir
builder/virtualbox,vmware: validate output dir in step
2015-06-15 09:40:36 -07:00