From c1fb445b8d94e69d7878fad60c4653650052313a Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Tue, 5 Feb 2019 11:45:23 +0000 Subject: [PATCH] Don't force evacuate/live migrate in notification sample tests This appears to have been used simply to avoid additional scheduler notifications. Given that we're deprecating the ability to force evacuations and live migrations, just deal with the additional notifications. Change-Id: Ica88d94f9b4c3e9552c36d46c671b3d27b237c27 Signed-off-by: Stephen Finucane Implements: blueprint remove-force-flag-from-live-migrate-and-evacuate --- .../test_instance.py | 84 ++++++++++++------- 1 file changed, 55 insertions(+), 29 deletions(-) diff --git a/nova/tests/functional/notification_sample_tests/test_instance.py b/nova/tests/functional/notification_sample_tests/test_instance.py index de2d8c98eaff..4fdb68569a41 100644 --- a/nova/tests/functional/notification_sample_tests/test_instance.py +++ b/nova/tests/functional/notification_sample_tests/test_instance.py @@ -76,102 +76,119 @@ class TestInstanceNotificationSampleWithMultipleCompute( 'os-migrateLive': { 'host': 'host2', 'block_migration': True, - 'force': True, } } self.admin_api.post_server_action(server['id'], post) self._wait_for_notification( 'instance.live_migration_rollback_dest.end') - # 0. instance.live_migration_rollback.start - # 1. instance.live_migration_rollback.end - # 2. instance.live_migration_rollback_dest.start - # 3. instance.live_migration_rollback_dest.end - self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS)) + # 0. scheduler.select_destinations.start + # 1. scheduler.select_destinations.end + # 2. instance.live_migration_rollback.start + # 3. instance.live_migration_rollback.end + # 4. instance.live_migration_rollback_dest.start + # 5. instance.live_migration_rollback_dest.end + self.assertEqual(6, len(fake_notifier.VERSIONED_NOTIFICATIONS), + [x['event_type'] for x in + fake_notifier.VERSIONED_NOTIFICATIONS]) self._verify_notification( 'instance-live_migration_rollback-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) self._verify_notification( 'instance-live_migration_rollback-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) self._verify_notification( 'instance-live_migration_rollback_dest-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[4]) self._verify_notification( 'instance-live_migration_rollback_dest-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[5]) def _test_live_migration_success(self, server): post = { 'os-migrateLive': { 'host': 'host2', 'block_migration': True, - 'force': True, } } self.admin_api.post_server_action(server['id'], post) self._wait_for_notification('instance.live_migration_pre.end') - self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS)) + # 0. scheduler.select_destinations.start + # 1. scheduler.select_destinations.end + # 2. instance.live_migration_pre.start + # 3. instance.live_migration_pre.end + self.assertEqual(4, len(fake_notifier.VERSIONED_NOTIFICATIONS), + [x['event_type'] for x in + fake_notifier.VERSIONED_NOTIFICATIONS]) self._verify_notification( 'instance-live_migration_pre-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) self._verify_notification( 'instance-live_migration_pre-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) migrations = self.admin_api.get_active_migrations(server['id']) self.assertEqual(1, len(migrations)) self._wait_for_notification('instance.live_migration_post.end') - self.assertEqual(6, len(fake_notifier.VERSIONED_NOTIFICATIONS)) + # 0. scheduler.select_destinations.start + # 1. scheduler.select_destinations.end + # 2. instance.live_migration_pre.start + # 3. instance.live_migration_pre.end + # 4. instance.live_migration_post.start + # 5. instance.live_migration_post_dest.start + # 6. instance.live_migration_post_dest.end + # 7. instance.live_migration_post.end + self.assertEqual(8, len(fake_notifier.VERSIONED_NOTIFICATIONS), + [x['event_type'] for x in + fake_notifier.VERSIONED_NOTIFICATIONS]) self._verify_notification( 'instance-live_migration_post-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[4]) self._verify_notification( 'instance-live_migration_post_dest-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[5]) self._verify_notification( 'instance-live_migration_post_dest-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[4]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[6]) self._verify_notification( 'instance-live_migration_post-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[5]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[7]) def _test_live_migration_abort(self, server): post = { "os-migrateLive": { "host": "host2", "block_migration": False, - "force": True } } @@ -188,43 +205,54 @@ class TestInstanceNotificationSampleWithMultipleCompute( # wait for the rollback to ensure we can assert both notifications # below self._wait_for_notification('instance.live_migration_rollback.end') - self.assertEqual(6, len(fake_notifier.VERSIONED_NOTIFICATIONS)) + + # 0. scheduler.select_destinations.start + # 1. scheduler.select_destinations.end + # 2. instance.live_migration_pre.start + # 3. instance.live_migration_pre.end + # 4. instance.live_migration_abort.start + # 5. instance.live_migration_abort.end + # 6. instance.live_migration_rollback.start + # 7. instance.live_migration_rollback.end + self.assertEqual(8, len(fake_notifier.VERSIONED_NOTIFICATIONS), + [x['event_type'] for x in + fake_notifier.VERSIONED_NOTIFICATIONS]) self._verify_notification( 'instance-live_migration_pre-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[0]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) self._verify_notification( 'instance-live_migration_pre-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[1]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) self._verify_notification( 'instance-live_migration_abort-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[2]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[4]) self._verify_notification( 'instance-live_migration_abort-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[3]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[5]) self._verify_notification( 'instance-live_migration_rollback-start', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[4]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[6]) self._verify_notification( 'instance-live_migration_rollback-end', replacements={ 'reservation_id': server['reservation_id'], 'uuid': server['id']}, - actual=fake_notifier.VERSIONED_NOTIFICATIONS[5]) + actual=fake_notifier.VERSIONED_NOTIFICATIONS[7]) def _test_evacuate_server(self, server): services = self.admin_api.get_services(host='host2', @@ -234,7 +262,6 @@ class TestInstanceNotificationSampleWithMultipleCompute( evacuate = { 'evacuate': { 'host': 'compute', - 'force': True } } @@ -259,7 +286,6 @@ class TestInstanceNotificationSampleWithMultipleCompute( 'os-migrateLive': { 'host': 'host2', 'block_migration': True, - 'force': False, } } self.admin_api.post_server_action(server['id'], post)