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
This adds two config options that we need in order to successfully build
our Rackspace images.
First, a boolean `rackconnect_wait` option which waits for the
RackConnect metadata to appear.
Second, an `ssh_interface` option, for rackconnect users who have more
prohibitive firewalls on the 'public' interface and want to ensure all
traffic to the server goes over the 'private' one.
Finishes #952.
In order that something consuming an artifact can have access to extra
builder specific data add the State method which allows the caller to
ask for arbitary values by name.
Perhaps "region" is required when using a public provider like
Rackspace? It's not required for my private cloud from Metacloud. I
suspect a lot of private clouds have only a single region and thus don't
need "region" to be specified.
[gophercloud#168](https://github.com/rackspace/gophercloud/issues/168) has been
patched to not panic on non-existing server id's. If an error is returned,
check if the error is a 404 first before bailing.
gophercloud.ServerById is broken in v0.1.0 - it will crash if you feed it a
non-existing server ID (see [rackspace/gophercloud #168](https://github.com/rackspace/gophercloud/issues/168))
Instead, list all servers and iterate over them. If the server id isn't found,
return "DELETED" as a state. Not perfect but it works until next version of
gophercloud is released.
Add configuration option `networks`, a list of network UUIDs, to attach to the
source instance.
In some openstack installs, no default network will be attached or the network
with the ability to attach a public floating IP will need to be specified.
Rackspace defaults to a public IPv4 and IPv6 address. These are returned in
random order, with the sprintf further on generating an incorrect connection
string if on IPv6. Force IPv4 until support for correct connection strings and
a configuration flag for logging in over IPv6 is added.