Add live.migration.force.complete to the legacy notification whitelist
The instance.live.migration.force.complete notificatons are missing from the legacy notification whitelist as every test emiting them are mocked out the rpc notifier call. This patch adds the extra test coverage and whitelists the notifications Conflicts: nova/tests/unit/compute/test_compute_mgr.py NOTE(mriedem): Conflicts are due to not having change03e2f0449a
or change7bb82e2dfd
in Newton, neither of which are needed here. Change-Id: Idf20fb435a7d11ff93bcb137699a38f5e4562d4c Closes-Bug: #1718485 (cherry picked from commitb4778065e9
)
This commit is contained in:
parent
bcc88d4cad
commit
b234b8e13a
|
@ -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',
|
||||
|
|
|
@ -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
|
||||
|
@ -4506,6 +4507,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)
|
||||
|
@ -4925,33 +4928,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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue