[openstack-dev] [nova] How to debug no valid host failures with placement

Eric Fried openstack at fried.cc
Fri Aug 3 15:12:16 UTC 2018


> I'm of two minds here.
> 
> On the one hand, you have the case where the end user has accidentally
> requested some combination of things that isn't normally available, and
> they need to be able to ask the provider what they did wrong.  I agree
> that this case is not really an exception, those resources were never
> available in the first place.
> 
> On the other hand, suppose the customer issues a valid request and it
> works, and then issues the same request again and it fails, leading to a
> violation of that customers SLA.  In this case I would suggest that it
> could be considered an exception since the system is not delivering the
> service that it was intended to deliver.

While the case can be made for this being an exception from *nova* (I'm
not getting into that), it is not an exception from the point of view of
*placement*. You asked a service "list the ways I can do X". The first
time, there were three ways. The second time, zero.

It would be like saying:

 # This is the "placement" part
 results = [x for x in l if <condition>]

 # It is up to the placement *consumer* (e.g. nova) to do this, or not
 if len(results) == 0:
     raise Something()

The hard point, which I'm not disputing, is that the end user needs a
way to understand *why* len(results) == 0.

efried
.



More information about the OpenStack-dev mailing list