Add stub unified limits driver

The unified limits driver is starting with the noop driver. This gives us
the closest API behaviour to what we describe in the spec.

The Unified Limits quota driver will has several purposes:

* stop all existing quota enforcement, so we can replace it
* stop checking the database for quota info
* make the API do what it does today with the noop driver enabled

The next few patches will assert the existing API behaviour with the
unified limits quota driver. This is the exact same thing that happens
today when you enable the noop driver.

As we add back limits, using the new unified limits approach, we will
update the API so users are informed about what limits are actually
being enforced.

blueprint unified-limits-nova

Change-Id: Iab152a6b2bb58454c32889390ec9add43771fa62
This commit is contained in:
John Garbutt
2020-03-10 09:34:09 +00:00
committed by melanie witt
parent 78f02e96ed
commit 4fbe94a98c
2 changed files with 19 additions and 0 deletions
+13
View File
@@ -768,6 +768,19 @@ class NoopQuotaDriver(object):
pass
class UnifiedLimitsDriver(NoopQuotaDriver):
"""Ease migration to new unified limits code.
Help ease migration to unified limits by ensuring the old code
paths still work with unified limits. Eventually the expectation is
all this legacy quota code will go away, leaving the new simpler code
"""
def __init__(self):
LOG.warning("The Unified Limits Quota Driver is experimental and "
"is under active development. Do not use this driver.")
class BaseResource(object):
"""Describe a single resource for quota checking."""
+6
View File
@@ -1871,6 +1871,12 @@ class NoopQuotaDriverTestCase(test.TestCase):
self.assertEqual(self.expected_settable_quotas, result)
class UnifiedLimitsDriverTestCase(NoopQuotaDriverTestCase):
def setUp(self):
super(UnifiedLimitsDriverTestCase, self).setUp()
self.driver = quota.UnifiedLimitsDriver()
@ddt.ddt
class QuotaCountTestCase(test.NoDBTestCase):
@mock.patch('nova.scheduler.client.report.SchedulerReportClient.'