Merge "Cleanup duplicate DB sessions for quotas"

This commit is contained in:
Zuul 2023-11-30 00:05:21 +00:00 committed by Gerrit Code Review
commit 31ff8f8ff6
12 changed files with 65 additions and 174 deletions

View File

@ -238,7 +238,6 @@ class HealthMonitorController(base.BaseController):
context.session.begin()
try:
if self.repositories.check_quota_met(
context.session,
context.session,
data_models.HealthMonitor,
health_monitor.project_id):

View File

@ -151,7 +151,6 @@ class L7PolicyController(base.BaseController):
lock_session.begin()
try:
if self.repositories.check_quota_met(
context.session,
lock_session,
data_models.L7Policy,
l7policy.project_id):

View File

@ -154,7 +154,6 @@ class L7RuleController(base.BaseController):
context.session.begin()
try:
if self.repositories.check_quota_met(
context.session,
context.session,
data_models.L7Rule,
l7rule.project_id):

View File

@ -372,7 +372,6 @@ class ListenersController(base.BaseController):
context.session.begin()
try:
if self.repositories.check_quota_met(
context.session,
context.session,
data_models.Listener,
listener.project_id):

View File

@ -465,7 +465,6 @@ class LoadBalancersController(base.BaseController):
lock_session.begin()
try:
if self.repositories.check_quota_met(
context.session,
lock_session,
data_models.LoadBalancer,
load_balancer.project_id):
@ -553,7 +552,7 @@ class LoadBalancersController(base.BaseController):
if listeners or pools:
db_pools, db_lists = self._graph_create(
context.session, lock_session, db_lb, listeners, pools)
lock_session, db_lb, listeners, pools)
# Prepare the data for the driver data model
driver_lb_dict = driver_utils.lb_dict_to_provider_dict(
@ -583,7 +582,7 @@ class LoadBalancersController(base.BaseController):
db_lb, lb_types.LoadBalancerFullResponse)
return lb_types.LoadBalancerFullRootResponse(loadbalancer=result)
def _graph_create(self, session, lock_session, db_lb, listeners, pools):
def _graph_create(self, session, db_lb, listeners, pools):
# Track which pools must have a full specification
pools_required = set()
# Look through listeners and find any extra pools, and move them to the
@ -642,7 +641,7 @@ class LoadBalancersController(base.BaseController):
# Check quotas for pools.
if pools and self.repositories.check_quota_met(
session, lock_session, data_models.Pool, db_lb.project_id,
session, data_models.Pool, db_lb.project_id,
count=len(pools)):
raise exceptions.QuotaException(resource=data_models.Pool._name())
@ -661,13 +660,13 @@ class LoadBalancersController(base.BaseController):
p['load_balancer_id'] = db_lb.id
p['project_id'] = db_lb.project_id
new_pool = (pool.PoolsController()._graph_create(
session, lock_session, p))
session, p))
new_pools.append(new_pool)
pool_name_ids[new_pool.name] = new_pool.id
# Now check quotas for listeners
if listeners and self.repositories.check_quota_met(
session, lock_session, data_models.Listener, db_lb.project_id,
session, data_models.Listener, db_lb.project_id,
count=len(listeners)):
raise exceptions.QuotaException(
resource=data_models.Listener._name())
@ -687,7 +686,7 @@ class LoadBalancersController(base.BaseController):
li['load_balancer_id'] = db_lb.id
li['project_id'] = db_lb.project_id
new_lists.append(listener.ListenersController()._graph_create(
lock_session, li, pool_name_ids=pool_name_ids))
session, li, pool_name_ids=pool_name_ids))
return new_pools, new_lists

View File

@ -165,7 +165,6 @@ class MemberController(base.BaseController):
context.session.begin()
try:
if self.repositories.check_quota_met(
context.session,
context.session,
data_models.Member,
member.project_id):
@ -391,7 +390,7 @@ class MembersController(MemberController):
else:
member_count_diff = len(new_members) - len(deleted_members)
if member_count_diff > 0 and self.repositories.check_quota_met(
context.session, context.session, data_models.Member,
context.session, data_models.Member,
db_pool.project_id, count=member_count_diff):
raise exceptions.QuotaException(
resource=data_models.Member._name())

View File

@ -260,7 +260,6 @@ class PoolsController(base.BaseController):
context.session.begin()
try:
if self.repositories.check_quota_met(
context.session,
context.session,
data_models.Pool,
pool.project_id):
@ -304,18 +303,18 @@ class PoolsController(base.BaseController):
result = self._convert_db_to_type(db_pool, pool_types.PoolResponse)
return pool_types.PoolRootResponse(pool=result)
def _graph_create(self, session, lock_session, pool_dict):
def _graph_create(self, session, pool_dict):
load_balancer_id = pool_dict['load_balancer_id']
pool_dict = db_prepare.create_pool(
pool_dict, load_balancer_id)
members = pool_dict.pop('members', []) or []
hm = pool_dict.pop('health_monitor', None)
db_pool = self._validate_create_pool(
lock_session, pool_dict)
session, pool_dict)
# Check quotas for healthmonitors
if hm and self.repositories.check_quota_met(
session, lock_session, data_models.HealthMonitor,
session, data_models.HealthMonitor,
db_pool.project_id):
raise exceptions.QuotaException(
resource=data_models.HealthMonitor._name())
@ -325,7 +324,7 @@ class PoolsController(base.BaseController):
hm[constants.POOL_ID] = db_pool.id
hm[constants.PROJECT_ID] = db_pool.project_id
new_hm = health_monitor.HealthMonitorController()._graph_create(
lock_session, hm)
session, hm)
if db_pool.protocol in (constants.PROTOCOL_UDP,
lib_consts.PROTOCOL_SCTP):
health_monitor.HealthMonitorController(
@ -344,7 +343,7 @@ class PoolsController(base.BaseController):
# Now check quotas for members
if members and self.repositories.check_quota_met(
session, lock_session, data_models.Member,
session, data_models.Member,
db_pool.project_id, count=len(members)):
raise exceptions.QuotaException(
resource=data_models.Member._name())
@ -357,7 +356,7 @@ class PoolsController(base.BaseController):
m['project_id'] = db_pool.project_id
new_members.append(
member.MembersController(db_pool.id)._graph_create(
lock_session, m))
session, m))
db_pool.members = new_members
return db_pool

View File

@ -2621,15 +2621,13 @@ class DecrementHealthMonitorQuota(BaseDatabaseTask):
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.HealthMonitor,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass
@ -2679,15 +2677,13 @@ class DecrementListenerQuota(BaseDatabaseTask):
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.Listener,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass
@ -2739,15 +2735,13 @@ class DecrementLoadBalancerQuota(BaseDatabaseTask):
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.LoadBalancer,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass
@ -2798,15 +2792,13 @@ class DecrementMemberQuota(BaseDatabaseTask):
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.Member,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass
@ -2871,42 +2863,38 @@ class DecrementPoolQuota(BaseDatabaseTask):
# in case other quota actions have occurred
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.Pool,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
# Attempt to increment back the health monitor quota
if pool_child_count['HM'] > 0:
lock_session = db_apis.get_session()
session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.HealthMonitor,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
# Attempt to increment back the member quota
# This is separate calls to maximize the correction
# should other factors have increased the in use quota
# before this point in the revert flow
for i in range(pool_child_count['member']):
lock_session = db_apis.get_session()
session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.Member,
project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass
@ -2954,7 +2942,8 @@ class DecrementL7policyQuota(BaseDatabaseTask):
data_models.L7Policy,
l7policy[constants.PROJECT_ID])
db_l7policy = self.l7policy_repo.get(
db_apis.get_session(), id=l7policy[constants.L7POLICY_ID])
lock_session,
id=l7policy[constants.L7POLICY_ID])
if db_l7policy and db_l7policy.l7rules:
self.repos.decrement_quota(lock_session,
@ -2982,28 +2971,26 @@ class DecrementL7policyQuota(BaseDatabaseTask):
if not isinstance(result, failure.Failure):
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.L7Policy,
l7policy[constants.PROJECT_ID])
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
db_l7policy = self.l7policy_repo.get(
session, id=l7policy[constants.L7POLICY_ID])
if db_l7policy:
# Attempt to increment back the L7Rule quota
for i in range(len(db_l7policy.l7rules)):
lock_session = db_apis.get_session()
session = db_apis.get_session()
try:
self.repos.check_quota_met(
session, lock_session, data_models.L7Rule,
session, data_models.L7Rule,
db_l7policy.project_id)
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass
@ -3054,15 +3041,13 @@ class DecrementL7ruleQuota(BaseDatabaseTask):
try:
session = db_apis.get_session()
lock_session = db_apis.get_session()
try:
self.repos.check_quota_met(session,
lock_session,
data_models.L7Rule,
l7rule[constants.PROJECT_ID])
lock_session.commit()
session.commit()
except Exception:
lock_session.rollback()
session.rollback()
except Exception:
# Don't fail the revert flow
pass

View File

@ -364,8 +364,7 @@ class Repositories(object):
provisioning_status=lb_prov_status)
return success
def check_quota_met(self, session, lock_session, _class, project_id,
count=1):
def check_quota_met(self, session: Session, _class, project_id, count=1):
"""Checks and updates object quotas.
This method makes sure the project has available quota
@ -373,7 +372,6 @@ class Repositories(object):
new ussage.
:param session: Context database session
:param lock_session: Locking database session (autocommit=False)
:param _class: Data model object requesting quota
:param project_id: Project ID requesting quota
:param count: Number of objects we're going to create (default=1)
@ -402,7 +400,7 @@ class Repositories(object):
# Note: You cannot just use the current count as the in-use
# value as we don't want to lock the whole resource table
try:
quotas = (lock_session.query(models.Quotas)
quotas = (session.query(models.Quotas)
.filter_by(project_id=project_id)
.populate_existing()
.with_for_update()

View File

@ -140,7 +140,7 @@ class BaseAPITest(base_db_test.OctaviaDBTestBase):
self.addCleanup(reset_pecan)
def start_quota_mock(self, object_type):
def mock_quota(session, lock_session, _class, project_id, count=1):
def mock_quota(session, _class, project_id, count=1):
return _class == object_type
check_quota_met_true_mock = mock.patch(
'octavia.db.repositories.Repositories.check_quota_met',

View File

@ -517,7 +517,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf = self.useFixture(oslo_fixture.Config(cfg.CONF))
conf.config(group='api_settings', auth_strategy=constants.NOAUTH)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
conf.config(group='api_settings', auth_strategy=constants.TESTING)
@ -525,7 +524,7 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
# Test check for missing project_id
self.assertRaises(exceptions.MissingProjectID,
self.repos.check_quota_met,
self.session, self.session,
self.session,
data_models.LoadBalancer, None)
self.session.commit()
@ -533,19 +532,19 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
self.assertFalse(
self.repos.check_quota_met(self.session,
self.session,
data_models.SessionPersistence,
project_id))
self.session.commit()
# Test DB deadlock case
project_id = uuidutils.generate_uuid()
mock_quotas = mock.MagicMock()
mock_session = mock.MagicMock()
mock_session.query = mock.MagicMock(
side_effect=db_exception.DBDeadlock)
side_effect=[mock_quotas, db_exception.DBDeadlock])
self.assertRaises(exceptions.ProjectBusyException,
self.repos.check_quota_met,
self.session, mock_session,
mock_session,
data_models.LoadBalancer, project_id)
self.session.commit()
@ -554,7 +553,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_load_balancer_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -565,7 +563,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_load_balancer_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -573,7 +570,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_load_balancer)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -585,7 +581,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_load_balancer_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -593,7 +588,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_load_balancer)
# Test above project adding another load balancer
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.assertEqual(2, self.repos.quotas.get(
@ -611,7 +605,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -628,7 +621,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -642,7 +634,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -654,7 +645,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -662,7 +652,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_load_balancer)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -676,7 +665,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -684,7 +672,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_load_balancer)
# Test above project adding another load balancer
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.LoadBalancer,
project_id))
self.session.commit()
@ -696,7 +683,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_listener_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -707,7 +693,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_listener_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -715,7 +700,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_listener)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -727,7 +711,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_listener_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -735,7 +718,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_listener)
# Test above project adding another listener
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -761,7 +743,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
load_balancer_id=lb.id)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -785,7 +766,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
load_balancer_id=lb.id)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -799,7 +779,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -811,7 +790,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -819,7 +797,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_listener)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -833,7 +810,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -841,7 +817,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_listener)
# Test above project adding another listener
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Listener,
project_id))
self.session.commit()
@ -853,7 +828,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_pool_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -864,7 +838,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_pool_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -872,7 +845,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_pool)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -884,7 +856,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_pool_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -892,7 +863,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_pool)
# Test above project adding another pool
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -920,7 +890,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True, load_balancer_id=lb.id)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -946,7 +915,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True, load_balancer_id=lb.id)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -959,7 +927,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
quota = {'pool': 0}
self.repos.quotas.update(self.session, project_id, quota=quota)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -970,7 +937,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
quota = {'pool': 1}
self.repos.quotas.update(self.session, project_id, quota=quota)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -978,7 +944,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_pool)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -992,7 +957,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -1000,7 +964,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_pool)
# Test above project adding another pool
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Pool,
project_id))
self.session.commit()
@ -1012,7 +975,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_health_monitor_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1023,7 +985,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_health_monitor_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1031,7 +992,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_health_monitor)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1043,7 +1003,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_health_monitor_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1051,7 +1010,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_health_monitor)
# Test above project adding another health monitor
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1087,7 +1045,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True, pool_id=pool.id)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1121,7 +1078,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True, pool_id=pool.id)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1135,7 +1091,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1146,7 +1101,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
quota = {'health_monitor': 1}
self.repos.quotas.update(self.session, project_id, quota=quota)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1154,7 +1108,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_health_monitor)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1168,7 +1121,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1176,7 +1128,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_health_monitor)
# Test above project adding another health monitor
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.HealthMonitor,
project_id))
self.session.commit()
@ -1188,7 +1139,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_member_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1199,7 +1149,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_member_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1207,7 +1156,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_member)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1219,7 +1167,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_member_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1227,7 +1174,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_member)
# Test above project adding another member
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1263,7 +1209,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True, pool_id=pool.id, backup=False)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1297,7 +1242,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
enabled=True, pool_id=pool.id, backup=False)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1311,7 +1255,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1323,7 +1266,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1331,7 +1273,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_member)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1345,7 +1286,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1353,7 +1293,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_member)
# Test above project adding another member
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.Member,
project_id))
self.session.commit()
@ -1365,7 +1304,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_l7policy_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1376,7 +1314,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_l7policy_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1384,7 +1321,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7policy)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1396,7 +1332,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_l7policy_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1404,7 +1339,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7policy)
# Test above project adding another l7policy
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1437,7 +1371,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
id=uuidutils.generate_uuid())
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1468,7 +1401,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
id=uuidutils.generate_uuid())
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1482,7 +1414,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1494,7 +1425,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1502,7 +1432,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7policy)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1516,7 +1445,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1524,7 +1452,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7policy)
# Test above project adding another l7policy
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Policy,
project_id))
self.session.commit()
@ -1536,7 +1463,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_l7rule_quota=0)
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1547,7 +1473,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
project_id = uuidutils.generate_uuid()
conf.config(group='quotas', default_l7rule_quota=1)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1555,7 +1480,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7rule)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1567,7 +1491,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
conf.config(group='quotas',
default_l7rule_quota=constants.QUOTA_UNLIMITED)
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1575,7 +1498,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7rule)
# Test above project adding another l7rule
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1615,7 +1537,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
operating_status=constants.ONLINE, project_id=project_id)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1653,7 +1574,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
operating_status=constants.ONLINE, project_id=project_id)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1667,7 +1587,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1679,7 +1598,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1687,7 +1605,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7rule)
# Test above project is now at quota
self.assertTrue(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1701,7 +1618,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.repos.quotas.update(self.session, project_id, quota=quota)
self.session.commit()
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()
@ -1709,7 +1625,6 @@ class AllRepositoriesTest(base.OctaviaDBTestBase):
self.session, project_id=project_id).in_use_l7rule)
# Test above project adding another l7rule
self.assertFalse(self.repos.check_quota_met(self.session,
self.session,
data_models.L7Rule,
project_id))
self.session.commit()

View File

@ -134,7 +134,7 @@ class TestDatabaseTasksQuota(base.TestCase):
task.revert(test_object, None)
mock_check_quota_met.assert_called_once_with(
mock_session, mock_session, data_model,
mock_session, data_model,
project_id)
mock_session.commit.assert_called_once_with()
@ -238,13 +238,13 @@ class TestDatabaseTasksQuota(base.TestCase):
task.revert(project_id, pool_child_count, None)
calls = [mock.call(mock_session, mock_session,
calls = [mock.call(mock_session,
data_models.Pool, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.HealthMonitor, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.Member, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.Member, project_id)]
mock_check_quota_met.assert_has_calls(calls)
@ -261,13 +261,13 @@ class TestDatabaseTasksQuota(base.TestCase):
task.revert(project_id, pool_child_count, None)
calls = [mock.call(mock_session, mock_session,
calls = [mock.call(mock_session,
data_models.Pool, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.HealthMonitor, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.Member, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.Member, project_id)]
mock_check_quota_met.assert_has_calls(calls)
@ -285,13 +285,13 @@ class TestDatabaseTasksQuota(base.TestCase):
task.revert(project_id, pool_child_count, None)
calls = [mock.call(mock_session, mock_session,
calls = [mock.call(mock_session,
data_models.Pool, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.HealthMonitor, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.Member, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.Member, project_id)]
mock_check_quota_met.assert_has_calls(calls)
@ -370,11 +370,11 @@ class TestDatabaseTasksQuota(base.TestCase):
task.revert(test_object, None)
calls = [mock.call(mock_session, mock_session,
calls = [mock.call(mock_session,
data_models.L7Policy, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.L7Rule, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.L7Rule, project_id)]
mock_check_quota_met.assert_has_calls(calls)
@ -391,11 +391,11 @@ class TestDatabaseTasksQuota(base.TestCase):
task.revert(test_object, None)
calls = [mock.call(mock_session, mock_session,
calls = [mock.call(mock_session,
data_models.L7Policy, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.L7Rule, project_id),
mock.call(mock_session, mock_session,
mock.call(mock_session,
data_models.L7Rule, project_id)]
mock_check_quota_met.assert_has_calls(calls)