Browse Source

Set DB retry for quota_enforcement pecan_wsgi hook

The hook starts a DB transaction and should be covered with
DB retry decorator.

For Rocky backport had to import neutron_lib.db for retry_db_errors.

Closes-Bug: #1777965
Closes-Bug: #1771293
Change-Id: I044980a98845edc7b0a02e3323a1e62eb54c10c7
(cherry picked from commit ab286bcdac)
(cherry picked from commit 3ec7aed8a3)
tags/13.0.6^0
Oleg Bondarev Darragh O'Reilly 5 months ago
parent
commit
22250e783b
2 changed files with 2 additions and 5 deletions
  1. +2
    -0
      neutron/pecan_wsgi/hooks/quota_enforcement.py
  2. +0
    -5
      neutron/quota/resource_registry.py

+ 2
- 0
neutron/pecan_wsgi/hooks/quota_enforcement.py View File

@@ -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:


+ 0
- 5
neutron/quota/resource_registry.py View File

@@ -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:


Loading…
Cancel
Save