Merge "Add live.migration.force.complete to the legacy notification whitelist" into stable/newton

This commit is contained in:
Zuul 2017-10-17 23:57:51 +00:00 committed by Gerrit Code Review
commit e7fc559b49
2 changed files with 23 additions and 14 deletions

View File

@ -237,6 +237,8 @@ class LegacyValidatingNotifier(object):
'compute.instance.finish_resize.start',
'compute.instance.live.migration.abort.start',
'compute.instance.live.migration.abort.end',
'compute.instance.live.migration.force.complete.start',
'compute.instance.live.migration.force.complete.end',
'compute.instance.live_migration.post.dest.end',
'compute.instance.live_migration.post.dest.start',
'compute.instance.live_migration._post.end',

View File

@ -56,6 +56,7 @@ from nova.tests.unit import fake_flavor
from nova.tests.unit import fake_instance
from nova.tests.unit import fake_network
from nova.tests.unit import fake_network_cache_model
from nova.tests.unit import fake_notifier
from nova.tests.unit.objects import test_instance_fault
from nova.tests.unit.objects import test_instance_info_cache
from nova.tests import uuidsentinel as uuids
@ -4528,6 +4529,8 @@ class ComputeManagerBuildInstanceTestCase(test.NoDBTestCase):
class ComputeManagerMigrationTestCase(test.NoDBTestCase):
def setUp(self):
super(ComputeManagerMigrationTestCase, self).setUp()
fake_notifier.stub_notifier(self)
self.addCleanup(fake_notifier.reset)
self.compute = importutils.import_object(CONF.compute_manager)
self.context = context.RequestContext(fakes.FAKE_USER_ID,
fakes.FAKE_PROJECT_ID)
@ -4947,33 +4950,37 @@ class ComputeManagerMigrationTestCase(test.NoDBTestCase):
def test_live_migration_force_complete_succeeded(self):
instance = objects.Instance(uuid=str(uuid.uuid4()))
migration = objects.Migration()
migration.status = 'running'
migration.id = 0
@mock.patch.object(compute_utils.EventReporter, '__enter__')
@mock.patch.object(self.compute, '_notify_about_instance_usage')
@mock.patch('nova.image.glance.generate_image_url',
return_value='fake-url')
@mock.patch.object(objects.Migration, 'get_by_id',
return_value=migration)
@mock.patch.object(self.compute.driver,
'live_migration_force_complete')
def _do_test(force_complete, get_by_id, _notify_about_instance_usage,
def _do_test(force_complete, get_by_id, gen_img_url,
enter_event_reporter):
self.compute.live_migration_force_complete(
self.context, instance, migration.id)
self.context, self.instance, migration.id)
force_complete.assert_called_once_with(instance)
force_complete.assert_called_once_with(self.instance)
_notify_usage_calls = [
mock.call(self.context, instance,
'live.migration.force.complete.start'),
mock.call(self.context, instance,
'live.migration.force.complete.end')
]
_notify_about_instance_usage.assert_has_calls(_notify_usage_calls)
enter_event_reporter.assert_called_once_with()
self.assertEqual(2, len(fake_notifier.NOTIFICATIONS))
self.assertEqual(
'compute.instance.live.migration.force.complete.start',
fake_notifier.NOTIFICATIONS[0].event_type)
self.assertEqual(
self.instance.uuid,
fake_notifier.NOTIFICATIONS[0].payload['instance_id'])
self.assertEqual(
'compute.instance.live.migration.force.complete.end',
fake_notifier.NOTIFICATIONS[1].event_type)
self.assertEqual(
self.instance.uuid,
fake_notifier.NOTIFICATIONS[1].payload['instance_id'])
_do_test()