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.
In my particular case I need to use a separate HTTP proxy to access my
OpenStack API than what is set in the environment. This commit adds an
optional parameter to the builder configuration and overrides the
net/http client that is used by the gophercloud library.
Many cloud providers have a minimum charge of 1 hour, and if there are DNS problems we can hit the 1 minute timeout easily.
Waiting five minutes gives more of a margin of error.
This change adds base support for an openstack builder.
Thank you to Rackspace for providing cloud assets to complete this work
and @sam-falvo for working with us on the perigee/gophercloud changes.