diff options
author | Zuul <zuul@review.opendev.org> | 2021-08-28 11:20:54 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2021-08-28 11:20:54 +0000 |
commit | cf092e8e40d7a58f32606b71904ee7af7d97c3e8 (patch) | |
tree | 2b3126293a32e5505d7fc55e17ada0a5030e31f1 | |
parent | b982eece17bd58aef8c439be0a1dc6eaac6b3fff (diff) | |
parent | ed6d2741dda81eccfdcde7281dce577a589e574d (diff) | |
download | nova-stable/stein.tar.gz |
Merge "Avoid lazy-loading instance.flavor in cold migration" into stable/steinstable/stein
3 files changed, 11 insertions, 2 deletions
diff --git a/nova/api/openstack/compute/migrate_server.py b/nova/api/openstack/compute/migrate_server.py index ab50889d51..51f823a07b 100644 --- a/nova/api/openstack/compute/migrate_server.py +++ b/nova/api/openstack/compute/migrate_server.py @@ -52,7 +52,8 @@ class MigrateServerController(wsgi.Controller): body['migrate'] is not None): host_name = body['migrate'].get('host') - instance = common.get_instance(self.compute_api, context, id) + instance = common.get_instance(self.compute_api, context, id, + expected_attrs=['flavor']) # We could potentially move this check to conductor and avoid the # extra API call to neutron when we support move operations with ports diff --git a/nova/tests/unit/api/openstack/compute/admin_only_action_common.py b/nova/tests/unit/api/openstack/compute/admin_only_action_common.py index fdda030cfd..27dc6444b8 100644 --- a/nova/tests/unit/api/openstack/compute/admin_only_action_common.py +++ b/nova/tests/unit/api/openstack/compute/admin_only_action_common.py @@ -51,6 +51,8 @@ class CommonMixin(object): expected_attrs = None if action == '_migrate_live': expected_attrs = ['numa_topology'] + elif action == '_migrate': + expected_attrs = ['flavor'] uuid = uuidutils.generate_uuid() self.mock_get.side_effect = exception.InstanceNotFound( @@ -72,6 +74,8 @@ class CommonMixin(object): expected_attrs = None if action == '_migrate_live': expected_attrs = ['numa_topology'] + elif action == '_migrate': + expected_attrs = ['flavor'] if method is None: method = action.replace('_', '') @@ -134,6 +138,8 @@ class CommonMixin(object): expected_attrs = None if action == '_migrate_live': expected_attrs = ['numa_topology'] + elif action == '_migrate': + expected_attrs = ['flavor'] if method is None: method = action.replace('_', '') @@ -173,6 +179,8 @@ class CommonMixin(object): expected_attrs = None if action == '_migrate_live': expected_attrs = ['numa_topology'] + elif action == '_migrate': + expected_attrs = ['flavor'] if method is None: method = action.replace('_', '') diff --git a/nova/tests/unit/api/openstack/compute/test_migrate_server.py b/nova/tests/unit/api/openstack/compute/test_migrate_server.py index c592be4428..916f9b16d2 100644 --- a/nova/tests/unit/api/openstack/compute/test_migrate_server.py +++ b/nova/tests/unit/api/openstack/compute/test_migrate_server.py @@ -132,7 +132,7 @@ class MigrateServerTestsV21(admin_only_action_common.CommonTests): mock_resize.assert_called_once_with( self.context, instance, host_name=self.host_name) self.mock_get.assert_called_once_with(self.context, instance.uuid, - expected_attrs=None, + expected_attrs=['flavor'], cell_down_support=False) def test_migrate_too_many_instances(self): |