diff --git a/neutron/pecan_wsgi/hooks/quota_enforcement.py b/neutron/pecan_wsgi/hooks/quota_enforcement.py index f781c88fa14..3caae207329 100644 --- a/neutron/pecan_wsgi/hooks/quota_enforcement.py +++ b/neutron/pecan_wsgi/hooks/quota_enforcement.py @@ -15,6 +15,7 @@ import collections +from neutron_lib.db import api as nlib_db_api from oslo_log import log as logging from pecan import hooks @@ -61,6 +62,7 @@ class QuotaEnforcementHook(hooks.PecanHook): # retrieved in the 'after' hook state.request.context['reservations'] = reservations + @nlib_db_api.retry_db_errors def after(self, state): neutron_context = state.request.context.get('neutron_context') if not neutron_context: diff --git a/neutron/quota/resource_registry.py b/neutron/quota/resource_registry.py index 56fc43244b4..cafdc0fda10 100644 --- a/neutron/quota/resource_registry.py +++ b/neutron/quota/resource_registry.py @@ -61,11 +61,6 @@ def set_resources_dirty(context): dirty status is True, sets the dirty bit to True in the database for the appropriate tenants. - Please note that this routine begins a nested transaction, and it - is not recommended that this transaction begins within another - transaction. For this reason the function will raise a SqlAlchemy - exception if such an attempt is made. - :param context: a Neutron request context with a DB session """ if not cfg.CONF.QUOTAS.track_quota_usage: