diff options
Diffstat (limited to 'nova')
-rw-r--r-- | nova/common/deprecated.py | 55 | ||||
-rw-r--r-- | nova/exception.py | 4 | ||||
-rw-r--r-- | nova/openstack/common/log.py | 18 | ||||
-rw-r--r-- | nova/tests/test_deprecated.py | 46 |
4 files changed, 18 insertions, 105 deletions
diff --git a/nova/common/deprecated.py b/nova/common/deprecated.py deleted file mode 100644 index 6b1c587e8..000000000 --- a/nova/common/deprecated.py +++ /dev/null @@ -1,55 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 - -# Copyright (c) 2012 IBM -# -# 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. - -import warnings - -from nova import exception -from nova import flags -from nova.openstack.common import cfg -from nova.openstack.common import log as logging - -LOG = logging.getLogger(__name__) - -deprecate_opts = [ - cfg.BoolOpt('fatal_deprecations', - default=False, - help='make deprecations fatal') - ] -FLAGS = flags.FLAGS -FLAGS.register_opts(deprecate_opts) - - -def _showwarning(message, category, filename, lineno, file=None, line=None): - """ - Redirect warnings into logging. - """ - LOG.warn(str(message)) - - -# Install our warnings handler -warnings.showwarning = _showwarning - - -def warn(msg=""): - """ - Warn of a deprecated config option that an operator has specified. - This should be added in the code where we've made a change in how - we use some operator changeable parameter to indicate that it will - go away in a future version of OpenStack. - """ - warnings.warn(_("Deprecated Config: %s") % msg) - if FLAGS.fatal_deprecations: - raise exception.DeprecatedConfig(msg=msg) diff --git a/nova/exception.py b/nova/exception.py index ab9265f5d..c3e1fe39e 100644 --- a/nova/exception.py +++ b/nova/exception.py @@ -175,10 +175,6 @@ class DBError(NovaException): super(DBError, self).__init__(str(inner_exception)) -class DeprecatedConfig(NovaException): - message = _("Fatal call to deprecated config %(msg)s") - - class DecryptionFailure(NovaException): message = _("Failed to decrypt text") diff --git a/nova/openstack/common/log.py b/nova/openstack/common/log.py index 35c7972c8..67a06a7af 100644 --- a/nova/openstack/common/log.py +++ b/nova/openstack/common/log.py @@ -76,6 +76,9 @@ log_opts = [ cfg.BoolOpt('publish_errors', default=False, help='publish error events'), + cfg.BoolOpt('fatal_deprecations', + default=False, + help='make deprecations fatal'), # NOTE(mikal): there are two options here because sometimes we are handed # a full instance (and could include more information), and other times we @@ -170,6 +173,14 @@ class ContextAdapter(logging.LoggerAdapter): def audit(self, msg, *args, **kwargs): self.log(logging.AUDIT, msg, *args, **kwargs) + def deprecated(self, msg, *args, **kwargs): + stdmsg = _("Deprecated Config: %s") % msg + if CONF.fatal_deprecations: + self.critical(stdmsg, *args, **kwargs) + raise DeprecatedConfig(msg=stdmsg) + else: + self.warn(stdmsg, *args, **kwargs) + def process(self, msg, kwargs): if 'extra' not in kwargs: kwargs['extra'] = {} @@ -450,3 +461,10 @@ class ColorHandler(logging.StreamHandler): def format(self, record): record.color = self.LEVEL_COLORS[record.levelno] return logging.StreamHandler.format(self, record) + + +class DeprecatedConfig(Exception): + message = _("Fatal call to deprecated config: %(msg)s") + + def __init__(self, msg): + super(Exception, self).__init__(self.message % dict(msg=msg)) diff --git a/nova/tests/test_deprecated.py b/nova/tests/test_deprecated.py deleted file mode 100644 index ebc6fed93..000000000 --- a/nova/tests/test_deprecated.py +++ /dev/null @@ -1,46 +0,0 @@ -# vim: tabstop=4 shiftwidth=4 softtabstop=4 -# -# Copyright 2010 OpenStack LLC -# -# 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. - -from nova.common import deprecated -from nova import exception -from nova import test - - -class DeprecatedConfigTestCase(test.TestCase): - def setUp(self): - super(DeprecatedConfigTestCase, self).setUp() - self.logbuffer = "" - - def local_log(msg): - self.logbuffer = msg - - self.stubs.Set(deprecated.LOG, 'warn', local_log) - - def test_deprecated(self): - deprecated.warn('test') - self.assertEqual(self.logbuffer, 'Deprecated Config: test') - - def test_deprecated_fatal(self): - self.flags(fatal_deprecations=True) - self.assertRaises(exception.DeprecatedConfig, - deprecated.warn, "test2") - self.assertEqual(self.logbuffer, 'Deprecated Config: test2') - - def test_deprecated_logs_only_once(self): - deprecated.warn('only once!') - deprecated.warn('only once!') - deprecated.warn('only once!') - self.assertEqual(self.logbuffer, 'Deprecated Config: only once!') |