Comment 3 for bug 1161188

Revision history for this message
Michael Still (mikal) wrote :

Josh -- the problem is that the compute API code doesn't handle the reservation -- the networking API does. The descriptive exception isn't being bubbled back. So, the quota code is correct, just poorly placed to be informative to the user.

Fixed IPs are allocated in nova/network/manager.py allocate_fixed_ip()
Which is called by nova/network/manager.py allocate_fixed_ips()
Which is called by nova/network/manager.py allocate_for_instance() via the network RPC API
Which is called by nova/compute/manager.py _allocate_network()
Which is called by nova/compute/manager.py _run_instance()
Which is called by nova/compute/manager.py run_instance()

Which is the call that the user made (via the scheduler).

There are two possible fixes here that I can see -- either do a quick and dirty check in the compute manager to see if its even vaguely possible for request to succeed (i.e. the quota isn't currently all allocated), or to correctly bubble the exception back. There are limits on how much non-security code is likely to land in folsom, which makes this complicated as well.