[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