<tt><font size=2>Steve Baker <sbaker@redhat.com> wrote on 06/02/2014
05:37:25 PM:<br>
<br>
> > BTW You missed off another strategy that we have discussed in
the<br>
> > past, and which I think Steve Baker might(?) be working on: retrying<br>
> > failed calls at the client level.<br>
> ><br>
> As part of the client-plugins blueprint I'm planning on implementing<br>
> retry policies on API calls. So when currently we call:<br>
> self.nova().servers.create(**kwargs)<br>
> <br>
> This will soon be:<br>
> self.client().servers.create(**kwargs)<br>
> <br>
> And with a retry policy (assuming the default unique-ish server name
is<br>
> used):<br>
> self.client_plugin().call_with_retry_policy('cleanup_yr_mess_and_try_again',<br>
> self.client().servers.create, **kwargs)<br>
> <br>
> This should be suitable for handling transient errors on API calls
such<br>
> as 500s, response timeouts or token expiration. It shouldn't be used
for<br>
> resources which later come up in an ERROR state; convergence or<br>
> update-failure-recovery would be better for that.<br>
</font></tt>
<br><tt><font size=2>Response timeouts can be problematic here for non-idempotent
operations, right?</font></tt>
<br>
<br><tt><font size=2>Thanks,</font></tt>
<br><tt><font size=2>Mike</font></tt>
<br>
<br>