summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
Diffstat (limited to 'nova')
-rw-r--r--nova/common/deprecated.py55
-rw-r--r--nova/exception.py4
-rw-r--r--nova/openstack/common/log.py18
-rw-r--r--nova/tests/test_deprecated.py46
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!')