This adds retry logic to the amazon/chroot builder. The builder
intermittently fails when ec2conn shows the volume in the attached
state but calling Volumes[0].Attachments return an empty array. The
fix adds a retry logic for when Volumes[0].Attachments has len 0 sleep
for 2 seconds and retry up to 30 times.
When the Volumes[0].Attachments is empty I find within 5 seconds the
Volumes[0].Attachments contains the correct value.
The issue is reported in:
https://github.com/mitchellh/packer/issues/1854
This patch will allow to fix the following bug much faster:
```
1 error(s) occurred:
* Unknown configuration key: output_directory
```
Related configuration:
```
"output_directory ": "build/sl_base/",
```
After the patch, the error reporting will be:
```
1 error(s) occurred:
* Unknown configuration key: "output_directory¤"
```
Fixes the following vet reports:
provisioner/salt-masterless/provisioner.go:119: arg cmd for printf verb %s of wrong type: *github.com/mitchellh/packer/packer.RemoteCmd
provisioner/salt-masterless/provisioner.go:121: arg err for printf verb %d of wrong type: error
provisioner/salt-masterless/provisioner.go:142: arg err for printf verb %d of wrong type: error
provisioner/salt-masterless/provisioner.go:157: arg err for printf verb %d of wrong type: error
provisioner/salt-masterless/provisioner.go:172: arg err for printf verb %d of wrong type: error
provisioner/salt-masterless/provisioner.go:216: arg err for printf verb %d of wrong type: error
Fixes the following vet report:
provisioner/puppet-masterless/provisioner.go:196: missing argument for Errorf(%d): format reads arg 1, have only 0 args
Fixes the following vet reports:
post-processor/vagrant-cloud/client.go:81: arg resp for printf verb %s of wrong type: *net/http.Response
post-processor/vagrant-cloud/client.go:99: arg resp for printf verb %s of wrong type: *net/http.Response
post-processor/vagrant-cloud/client.go:131: arg resp for printf verb %s of wrong type: *net/http.Response
post-processor/vagrant-cloud/client.go:156: arg resp for printf verb %s of wrong type: *net/http.Response
post-processor/vagrant-cloud/client.go:175: arg resp for printf verb %s of wrong type: *net/http.Response
Fixes the following vet reports:
packer/template_test.go:496: possible formatting directive in Fatal call
packer/template_test.go:528: possible formatting directive in Fatal call
Fixes the following vet reports:
common/step_create_floppy_test.go:79: possible formatting directive in Fatal call
common/step_create_floppy_test.go:89: possible formatting directive in Fatal call
common/step_create_floppy_test.go:180: possible formatting directive in Fatal call
common/step_create_floppy_test.go:190: possible formatting directive in Fatal call
Fixes the following vet report:
builder/vmware/common/step_shutdown_test.go:130: missing argument for Fatalf("%s"): format reads arg 1, have only 0 args
Fixes the following vet reports:
builder/openstack/artifact.go:44: arg a.ImageId for printf verb %d of wrong type: string
builder/openstack/step_wait_for_rackconnect.go:24: arg server for printf verb %s of wrong type: *github.com/mitchellh/gophercloud-fork-40444fb.Server
Fixes the following vet reports:
builder/googlecompute/step_create_instance_test.go:42: possible formatting directive in Fatal call
builder/googlecompute/step_teardown_instance_test.go:29: possible formatting directive in Fatal call
builder/googlecompute/step_teardown_instance_test.go:39: possible formatting directive in Fatal call
Fixes the following vet reports:
builder/digitalocean/builder_test.go:267: arg b.config.SSHUsername for printf verb %d of wrong type: string
builder/digitalocean/builder_test.go:300: arg b.config.RawSSHTimeout for printf verb %d of wrong type: string
builder/digitalocean/builder_test.go:341: arg b.config.RawStateTimeout for printf verb %d of wrong type: string
builder/digitalocean/builder_test.go:382: arg b.config.PrivateNetworking for printf verb %s of wrong type: bool
builder/digitalocean/builder_test.go:397: arg b.config.PrivateNetworking for printf verb %s of wrong type: bool