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".
* Allows `run_volume_tags` to be set without requiring a major rewrite
of the (common) amazon builder code used to start an instance.
The common start up code tags the instance and *all attached volumes
at creation*. If `run_volume_tags` are set this means that any volumes
specified in `ebs_volumes` will *initially* be tagged with the
`run_volume_tags` rather than the tags set in the `ebs_volumes`
section
* Once the instance is reported to be 'ready' the step to tag the EBS
volumes is run. Once complete all volumes should have the tags
requested by the user:
* Volumes associated with the source instance should be tagged with
the tags set in `run_volume_tags` (if any)
* Each EBS volumes specified in the `ebs_volumes` section of the
template should only be tagged with its associated tags (if any)
* Currently this results in *all* volumes attached to the instance
being tagged with the `run_volume_tags`. This includes any `ebs_volumes`
for which the user may have configured other tags.
* This issue will be addressed in a later commit
to accept a list of strings (for Amazon builders).
Per this change, `temporary_security_group_source_cidr` in the configuration:
1. Will be renamed to `temporary_security_group_source_cidrs`.
2. Will accept a list of CIDRs.
3. Will have its documentation updated to reflect this change.
4. Will have a fixer attached for newer templates to avail of.
* 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
This means it now has three states, `true`, `false`, & `nil`. The
default state is now `nil` which does nothing instead of `false` which
now will explicitly disable ENA support instead of just not enabling it.