[openstack-dev] [nova] Fine-grained error reporting via the external API
Sean Dague
sean at dague.net
Fri Sep 11 11:19:57 UTC 2015
On 09/11/2015 05:41 AM, Matthew Booth wrote:
> I've recently been writing a tool which uses Nova's external API. This
> is my first time consuming this API, so it has involved a certain amount
> of discovery. The tool is here for the curious:
>
> https://gist.github.com/mdbooth/163f5fdf47ab45d7addd
>
> I have felt hamstrung by the general inability to distinguish between
> different types of error. For example, if a live migration failed is it
> because:
>
> 1. The compute driver doesn't support support it.
>
> 2. This instance requires block storage migration.
>
> 3. Something ephemeral.
>
> These 3 errors all require different responses:
>
> 1. Quit and don't try again.
>
> 2. Try again immediately with the block migration argument.[1]
>
> 3. Try again in a bit.
>
> However, all I have is that I made a BadRequest. I could potentially
> grep the human readable error message, but the text of that message
> doesn't form part of the API, and it may be translated in any case. As
> an API consumer, it seems I can't really tell anything other than 'it
> didn't work'. More than that requires guesswork, heuristics and inference.
>
> I don't think I've missed some source of additional wisdom, but it would
> obviously be great if I have. Has there ever been any effort to define
> some contract around more fine-grained error reporting?
>
> Thanks,
>
> Matt
>
> [1] Incidentally, this suggests to me that live migrate should just do
> this anyway.
This is an API working group recommendation evolving here. The crux of
which is going to be a structured json error return document that will
contain more info. https://review.openstack.org/#/c/167793/
-Sean
--
Sean Dague
http://dague.net
More information about the OpenStack-dev
mailing list