diff options
-rw-r--r-- | nova/notifications.py | 4 | ||||
-rw-r--r-- | nova/tests/test_notifications.py | 19 |
2 files changed, 21 insertions, 2 deletions
diff --git a/nova/notifications.py b/nova/notifications.py index d0374ac16..913d01cdd 100644 --- a/nova/notifications.py +++ b/nova/notifications.py @@ -63,7 +63,7 @@ def send_update(context, old_instance, new_instance, service=None, host=None): old_vm_state = old_instance["vm_state"] new_vm_state = new_instance["vm_state"] - old_task_state = old_instance["task_state"], + old_task_state = old_instance["task_state"] new_task_state = new_instance["task_state"] # we should check if we need to send a state change or a regular @@ -90,7 +90,7 @@ def send_update(context, old_instance, new_instance, service=None, host=None): service=service, host=host) except Exception: LOG.exception(_("Failed to send state update notification"), - instance=instance) + instance=new_instance) def send_update_with_states(context, instance, old_vm_state, new_vm_state, diff --git a/nova/tests/test_notifications.py b/nova/tests/test_notifications.py index 0626f16e8..5fd5d63f9 100644 --- a/nova/tests/test_notifications.py +++ b/nova/tests/test_notifications.py @@ -268,3 +268,22 @@ class NotificationsTestCase(test.TestCase): display_name = self.instance["display_name"] self.assertEquals(payload["display_name"], display_name) + + def test_send_no_state_change(self): + called = [False] + + def sending_no_state_change(context, instance, **kwargs): + called[0] = True + self.stubs.Set(notifications, '_send_instance_update_notification', + sending_no_state_change) + notifications.send_update(self.context, self.instance, self.instance) + self.assertTrue(called[0]) + + def test_fail_sending_update(self): + def fail_sending(context, instance, **kwargs): + raise Exception('failed to notify') + self.stubs.Set(notifications, '_send_instance_update_notification', + fail_sending) + + notifications.send_update(self.context, self.instance, self.instance) + self.assertEquals(0, len(test_notifier.NOTIFICATIONS)) |