Merge "Move warnings to their own module"

This commit is contained in:
Zuul 2018-10-30 03:35:54 +00:00 committed by Gerrit Code Review
commit fb12d340e8
4 changed files with 55 additions and 28 deletions

View File

@ -43,10 +43,12 @@ with `try/except` statement. This is required for consistent handling of
database errors.
"""
from debtcollector import moves
from oslo_utils.excutils import CausedByException
import six
from oslo_db._i18n import _
from oslo_utils.excutils import CausedByException
from oslo_db import warning
class DBError(CausedByException):
@ -299,27 +301,10 @@ class CantStartEngineError(Exception):
"""Error raised when the enginefacade cannot start up correctly."""
class NotSupportedWarning(Warning):
"""Warn that an argument or call that was passed is not supported.
moves.moved_class(warning.NotSupportedWarning,
'NotSupportedWarning',
__name__, version='Stein')
This subclasses Warning so that it can be filtered as a distinct
category.
.. seealso::
https://docs.python.org/2/library/warnings.html
"""
class OsloDBDeprecationWarning(DeprecationWarning):
"""Issued per usage of a deprecated API.
This subclasses DeprecationWarning so that it can be filtered as a distinct
category.
.. seealso::
https://docs.python.org/2/library/warnings.html
"""
moves.moved_class(warning.OsloDBDeprecationWarning,
'OsloDBDeprecationWarning',
__name__, version='Stein')

View File

@ -10,7 +10,6 @@
# License for the specific language governing permissions and limitations
# under the License.
import contextlib
import functools
import operator
@ -28,6 +27,7 @@ from oslo_db import options
from oslo_db.sqlalchemy import engines
from oslo_db.sqlalchemy import orm
from oslo_db.sqlalchemy import utils
from oslo_db import warning
class _symbol(object):
@ -343,7 +343,7 @@ class _TransactionFactory(object):
warnings.warn(
"Configuration option(s) %r not supported" %
sorted(not_supported),
exception.NotSupportedWarning
warning.NotSupportedWarning
)
def get_legacy_facade(self):
@ -1272,7 +1272,7 @@ class LegacyEngineFacade(object):
warnings.warn(
"EngineFacade is deprecated; please use "
"oslo_db.sqlalchemy.enginefacade",
exception.OsloDBDeprecationWarning,
warning.OsloDBDeprecationWarning,
stacklevel=2)
if _factory:
self._factory = _factory

View File

@ -37,6 +37,7 @@ from oslo_db.sqlalchemy import enginefacade
from oslo_db.sqlalchemy import engines as oslo_engines
from oslo_db.sqlalchemy import orm
from oslo_db.tests.sqlalchemy import base as test_base
from oslo_db import warning
enginefacade.transaction_context_provider(oslo_context.RequestContext)
@ -2208,7 +2209,7 @@ class ConfigOptionsTest(oslo_test_base.BaseTestCase):
self.assertEqual(1, len(w))
self.assertTrue(
issubclass(w[-1].category, exception.NotSupportedWarning))
issubclass(w[-1].category, warning.NotSupportedWarning))
self.assertEqual(
"Configuration option(s) ['fake1', 'wrong2'] not supported",
str(w[-1].message)

41
oslo_db/warning.py Normal file
View File

@ -0,0 +1,41 @@
# Copyright 2018 Red Hat, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""Custom warnings."""
class NotSupportedWarning(Warning):
"""Warn that an argument or call that was passed is not supported.
This subclasses Warning so that it can be filtered as a distinct
category.
.. seealso::
https://docs.python.org/2/library/warnings.html
"""
class OsloDBDeprecationWarning(DeprecationWarning):
"""Issued per usage of a deprecated API.
This subclasses DeprecationWarning so that it can be filtered as a distinct
category.
.. seealso::
https://docs.python.org/2/library/warnings.html
"""