cc2a34ce05
HTTP errors can be split into a few categories: client ephemeral, server ephemeral, server permanent, and globally permanent. You could argue there is even more permutations. However, for simplicity, these errors can be viewed as ephemeral and permanent. The Glance XenAPI plugin has been updated to raise a RetryableError for ephemeral and unexpected (i.e. errors that are categorized as neither permanent or ephemeral) errors. Additionally, an instance fault will be logged every time an error occurs. This will serve as transaction history where every attempt is a transaction on the state. If an ephemeral error occurs, there is a retry, then a permanent error, the history of each error will be in the instance_faults. Deployers should configure the num_retries relative to the number of api_servers. Right now, servers are put in random order and then cycled. Trying the same server multiple times could cause unnecessary load and delays. However, trying multiple servers, is ideal when a single server is behaving badly or cannot reach another server it needs to communicate with to fulfill a request. Closes-Bug: 1380776 Change-Id: I267a5b524c3ff8a28edf1a2285b77bb09049773c