diff options
| author | Tim Simpson <tim.simpson@rackspace.com> | 2011-08-22 15:21:31 -0500 |
|---|---|---|
| committer | Tim Simpson <tim.simpson@rackspace.com> | 2011-08-22 15:21:31 -0500 |
| commit | 51344d7be195f9342d24d461f4c07fa1c9141da4 (patch) | |
| tree | 14a9d7cb4b0e3ecd0d2374ecb23567b4aeee504d | |
| parent | 1b9cc046e9ae2bc5d0c1bd015d4e3304541ebd3c (diff) | |
| download | nova-51344d7be195f9342d24d461f4c07fa1c9141da4.tar.gz nova-51344d7be195f9342d24d461f4c07fa1c9141da4.tar.xz nova-51344d7be195f9342d24d461f4c07fa1c9141da4.zip | |
Changed list_notifier to call sys.exit if a notification driver could not be found.
| -rw-r--r-- | nova/notifier/list_notifier.py | 15 | ||||
| -rw-r--r-- | nova/tests/notifier/test_list_notifier.py | 15 |
2 files changed, 14 insertions, 16 deletions
diff --git a/nova/notifier/list_notifier.py b/nova/notifier/list_notifier.py index 78d51628c..21067df55 100644 --- a/nova/notifier/list_notifier.py +++ b/nova/notifier/list_notifier.py @@ -13,6 +13,8 @@ # License for the specific language governing permissions and limitations # under the License. +import sys + from nova import flags from nova import log as logging from nova import utils @@ -29,15 +31,6 @@ LOG = logging.getLogger('nova.notifier.list_notifier') drivers = None -class ImportFailureNotifier(object): - - def __init__(self, exception): - self.exception = exception - - def notify(message): - raise self.exception - - def _get_drivers(): """Instantiates and returns drivers based on the flag values.""" global drivers @@ -46,8 +39,8 @@ def _get_drivers(): for notification_driver in FLAGS.list_notifier_drivers: try: drivers.append(utils.import_object(notification_driver)) - except ClassNotFound as e: - drivers.append(ImportFailureNotifier(e)) + except ClassNotFound: + sys.exit(1) return drivers def notify(message): diff --git a/nova/tests/notifier/test_list_notifier.py b/nova/tests/notifier/test_list_notifier.py index ca8b3e0a7..bab1a0ab8 100644 --- a/nova/tests/notifier/test_list_notifier.py +++ b/nova/tests/notifier/test_list_notifier.py @@ -14,18 +14,15 @@ # under the License. import stubout +import sys import nova -from nova import context -from nova import flags from nova import log as logging -from nova import rpc import nova.notifier.api from nova.notifier.api import notify from nova.notifier import log_notifier from nova.notifier import no_op_notifier from nova.notifier import list_notifier -from nova.notifier import rabbit_notifier from nova import test @@ -51,6 +48,11 @@ class NotifierListTestCase(test.TestCase): def mock_notify2(cls, *args): raise RuntimeError("Bad notifier.") self.stubs.Set(nova.notifier.log_notifier, 'notify', mock_notify2) + # mock sys.exit so we don't actually kill the program during our tests. + self.sys_exit_code = 0 + def mock_sys_exit(code): + self.sys_exit_code += code + self.stubs.Set(sys, 'exit', mock_sys_exit) def tearDown(self): self.stubs.UnsetAll() @@ -65,6 +67,7 @@ class NotifierListTestCase(test.TestCase): nova.notifier.api.WARN, dict(a=3)) self.assertEqual(self.notify_count, 2) self.assertEqual(self.exception_count, 0) + self.assertEqual(self.sys_exit_code, 0) def test_send_notifications_with_errors(self): @@ -74,6 +77,7 @@ class NotifierListTestCase(test.TestCase): notify('publisher_id', 'event_type', nova.notifier.api.WARN, dict(a=3)) self.assertEqual(self.notify_count, 1) self.assertEqual(self.exception_count, 1) + self.assertEqual(self.sys_exit_code, 0) def test_when_driver_fails_to_import(self): self.flags(notification_driver='nova.notifier.list_notifier', @@ -81,5 +85,6 @@ class NotifierListTestCase(test.TestCase): 'nova.notifier.logo_notifier', 'fdsjgsdfhjkhgsfkj']) notify('publisher_id', 'event_type', nova.notifier.api.WARN, dict(a=3)) - self.assertEqual(self.exception_count, 2) + self.assertEqual(self.exception_count, 0) self.assertEqual(self.notify_count, 1) + self.assertEqual(self.sys_exit_code, 2) |
