The current way never retries up- or downloading the rings from the
undercloud. This is risky, for example when there are temporary network
issues.
This patch adds retries to the curl commands. It does so in two ways:
1. curl retries up to 3 times if there is an HTTP error. This could
happen for example if the proxy is accessible, but the proxy itself
can't connect to a backend server. Note that curl returns an exit code
of 0 if there is an HTTP error, so curl itself needs to retry in this
case.
2. If curl fails hard (for example due to an network error, proxy being
down etc) the whole command will be re-executed up to 3 times by Puppet
itself. The default timeout has been set to 30 seconds instead of the
default timeout of 300 seconds.
Change-Id: I21f732c1afa9d472f4a2fb840b6ddad9b8d65d07