[openstack-dev] [nova] Let's kill quota classes (again)

Matt Riedemann mriedem at linux.vnet.ibm.com
Wed Jul 13 19:47:53 UTC 2016


We got a bug that the os-quota-class-sets API isn't documented:

https://bugs.launchpad.net/nova/+bug/1602400

That's probably because we hate it and no one understands it.

See this previous thread about trying to sort this out from the long 
long ago:

https://lists.launchpad.net/openstack/msg12200.html

We tried killing it before, but it turns out, it's actually used by 
something!

http://lists.openstack.org/pipermail/openstack-dev/2014-May/036031.html

But we didn't have integration testing in Tempest for default quotas at 
that time (we added those tests in when we reverted the delete of the 
API back in Juno).

I got looking at this because of the quota_class attribute in the nova 
RequestContext:

https://github.com/openstack/nova/blob/93cc5e3ffd2867bdb39a707a230c1efc6ed2f5f4/nova/context.py#L138-L141

That led me to markmc's thread about that only being there for the 
turnstile project and some old API rate limiting stuff that Rackspace 
was doing out of tree (it appears to set a type of middleware for a 
quota class for rate limiting).

Anyway, super duper out of tree stuff that is probably not even used 
anymore (Vek - if you're reading, please speak up).

I'll also point out that API rate limiting as a paste config was only in 
the v2 API and that code was all dropped and the API rate limiting stuff 
wasn't carried over for the v2.1 API, for good reason, see:

http://lists.openstack.org/pipermail/openstack-operators/2016-June/010692.html

You can still create unique quota classes via the os-quota-class-sets 
API (it does a create if the update operation fails), but as far as I 
can tell you can't really use those in any meaningful way.

We really just have the 'default' quota class with a buttload of code 
and plumbing to use that, which sucks, because it's all very complicated.

So I think I'm going to start a pet project of rooting this stuff out 
again, starting with nova.context.RequestContext.quota_class, unless 
anyone has a good reason we should keep this in tree.

I think we should also add a microversion to the API in Ocata to disable 
the ability to create new quota classes, so that update is only update, 
and a 404 for anything else.

-- 

Thanks,

Matt Riedemann




More information about the OpenStack-dev mailing list