Commit Graph

555 Commits

Author SHA1 Message Date
Sylvia Moss 2f63c581a0
Remove unnecessary 1 sec sleep (#8453) 2019-12-06 11:43:28 +01:00
Sylvia Moss 5ff5623433
Add disable_shutdown option to VirtualBox builder (#8449) 2019-12-05 14:34:56 +01:00
Adrien Delorme a36b94320a virtualbox: simplify ParseSnapshotData 2019-11-06 10:24:20 +01:00
Adrien Delorme 116a038de9 Update snapshot.go
avoid a panic on a too short slice.
2019-11-05 15:48:32 +01:00
Adrien Delorme 14243ce56a
Merge pull request #8305 from hashicorp/fix_8301
allow nvme, since virtualbox 6.0 allows it
2019-11-04 17:58:18 +01:00
Adrien Delorme a23801d4a9 builder.virtualbox.iso: document that EFI mode needs to be enabled for pcie/nvme to work too 2019-11-04 14:30:59 +01:00
Megan Marsh 974eba443a update docs to include warning about extension pack 2019-11-01 09:48:35 -07:00
Adrien Delorme b790776096 vbox iso: use NVMe Controller when the hard drive interface if pcie 2019-11-01 14:43:59 +01:00
Megan Marsh 6f54468dd5 fix mocks 2019-10-31 15:36:22 -07:00
Megan Marsh 65ad3105b3 udpdate generated code 2019-10-31 15:28:36 -07:00
Megan Marsh 9343a23021 add driver calls to enable nvme controller 2019-10-31 15:21:52 -07:00
Megan Marsh d2867c47f0 allow nvme, since virtualbox 6.0 allows it 2019-10-31 14:43:46 -07: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 078ba7c8c3 commit old code generation tool
for history
2019-10-15 12:56:42 +02:00
Lars Lehtonen 4a3a011310
builder/virtualbox/vm: fix dropped error 2019-10-01 15:54:28 -07:00
Adrien Delorme 3fe9d52e3f Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-20 11:15:44 +02:00
allinwait 171c2a9a07 add the floppy label option 2019-09-12 12:25:22 +00:00
Brian Fox 5b6dcb0c94 fix(virtualbox) LoadSnapshots should succeed even if VM has no snapshots 2019-09-12 10:51:12 +02:00
Adrien Delorme 597a3e323b Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-09-10 13:20:07 +02:00
Adrien Delorme 350aa54274 Update step_shutdown_test.go
bump test duration
2019-09-10 13:07:30 +02:00
Adrien Delorme 4cb7c30987 Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config 2019-08-21 16:44:23 +02:00
Thomas Meckel 01edafb49f Cleaned up golint warnings 2019-08-19 21:36:43 +02:00
Thomas Meckel 92501cd344 target_snapshot is not optional as described in the documentation 2019-08-19 21:36:43 +02:00
Megan Marsh 06bef2844b
Merge pull request #7996 from hashicorp/fix_7925
dont bother with a targetpath for the vbox additions; use a hash like…
2019-08-19 09:45:38 -07:00
Brian Fox 47c027e5c8 Remove check/requirement for target_snapshot 2019-08-19 11:25:17 +02:00
Megan Marsh 02399f32f6 dont bother with a targetpath for the vbox additions; use a hash like everything else 2019-08-15 15:10:25 -07:00
Thomas Meckel 822b72bd14 Added force_delete_snapshot configuration item and the corresponding checks 2019-07-26 12:34:28 +02:00
Thomas Meckel e7583de847 StepCreateSnapshot.Run() will stop and create an error if the virtual machine is still running
Removed left over code from StepCreateSnapshot.Cleanup()
2019-07-26 12:34:27 +02:00
Thomas Meckel d9b8623f64 StepShutdown now always waits for the shutdown of the virtual machine to complete, not only if a shutdown command is specified 2019-07-26 12:34:27 +02:00
Thomas Meckel b873876670 Added test TestSnapshot_EnsureParents
No using asserts NotNil and Nil
2019-07-26 12:34:27 +02:00
Thomas Meckel 6fd0b3e83e Fixed a bug in ParseSnapshotData
Added fuction GetSnapshots
2019-07-26 12:34:26 +02:00
Thomas Meckel 225a140055 Applied correct source format (got fmt) to builder\virtualbox\common\driver_mock.go 2019-07-26 12:34:26 +02:00
Thomas Meckel 51e5ae69db Corrected method signatures in builder\virtualbox\common\driver_mock.go 2019-07-26 12:34:26 +02:00
Thomas Meckel ab6a163ff2 Added missing newline at end of builder\virtualbox\common\driver_mock.go 2019-07-26 12:34:25 +02:00
Thomas Meckel e9b5332e99 Added missing functions to builder\virtualbox\common\driver_mock.go 2019-07-26 12:34:25 +02:00
Thomas Meckel fd5a2db58f Removed commented (obsolete) code from builder\virtualbox\common\driver_4_2.go 2019-07-26 12:34:25 +02:00
Thomas Meckel 7d3c84e5f9 Changed VirtualBox VM builder according to current builder interface 2019-07-26 12:29:48 +02:00
Thomas Meckel 2ef911f6f0 Fixed bugs in snapshot and builder code 2019-07-26 12:29:47 +02:00
Thomas Meckel ebd2780e5d implemented first unit tests for snapshot.go 2019-07-26 12:29:46 +02:00
Thomas Meckel f1f7c4e10c * added function ParseSnapshotData to parse a string representation of a VBox snapshot tree
* fixed bugs
2019-07-26 12:29:46 +02:00
Thomas Meckel 45e2095ae3 Moved parsing of tree string representation to new function in snapshot.go 2019-07-26 12:29:45 +02:00
Thomas Meckel 092e32fe9e First version of reworked snapshot implementation 2019-07-26 12:29:45 +02:00
Thomas Meckel a6074894f1 Defined struct and first function for enhanced snapshot handling 2019-07-26 12:29:45 +02:00
Thomas Meckel d3202497ae First working version of virtualbox/vm builder 2019-07-26 12:29:44 +02:00
Thomas Meckel 2a531f8ad6 Merged changes from local branch 2019-07-26 12:29:44 +02:00
Adrien Delorme 74f0d56cfc virtualbox merge vbpx manage configs 2019-06-19 17:07:23 +02:00
Adrien Delorme 01eff9472a virtualbox: merge ExportOpts and ExportConfig structs 2019-06-19 16:35:15 +02:00
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