Merge "Update RequestSpec.flavor on resize_revert" into stable/ocata
This commit is contained in:
commit
3537a09d60
|
@ -3217,6 +3217,21 @@ class API(base.Base):
|
|||
self._record_action_start(context, instance,
|
||||
instance_actions.REVERT_RESIZE)
|
||||
|
||||
# Conductor updated the RequestSpec.flavor during the initial resize
|
||||
# operation to point at the new flavor, so we need to update the
|
||||
# RequestSpec to point back at the original flavor, otherwise
|
||||
# subsequent move operations through the scheduler will be using the
|
||||
# wrong flavor.
|
||||
try:
|
||||
reqspec = objects.RequestSpec.get_by_instance_uuid(
|
||||
context, instance.uuid)
|
||||
reqspec.flavor = instance.old_flavor
|
||||
reqspec.save()
|
||||
except exception.RequestSpecNotFound:
|
||||
# TODO(mriedem): Make this a failure in Stein when we drop
|
||||
# compatibility for missing request specs.
|
||||
pass
|
||||
|
||||
self.compute_rpcapi.revert_resize(context, instance,
|
||||
migration,
|
||||
migration.dest_compute,
|
||||
|
|
|
@ -1746,7 +1746,8 @@ class _ComputeAPIUnitTestMixIn(object):
|
|||
def test_confirm_resize_with_migration_ref(self):
|
||||
self._test_confirm_resize(mig_ref_passed=True)
|
||||
|
||||
def _test_revert_resize(self):
|
||||
@mock.patch('nova.objects.RequestSpec.get_by_instance_uuid')
|
||||
def _test_revert_resize(self, mock_get_reqspec):
|
||||
params = dict(vm_state=vm_states.RESIZED)
|
||||
fake_inst = self._create_instance_obj(params=params)
|
||||
fake_mig = objects.Migration._from_db_object(
|
||||
|
@ -1805,6 +1806,9 @@ class _ComputeAPIUnitTestMixIn(object):
|
|||
self.mox.ReplayAll()
|
||||
|
||||
self.compute_api.revert_resize(self.context, fake_inst)
|
||||
mock_get_reqspec.assert_called_once_with(
|
||||
self.context, fake_inst.uuid)
|
||||
mock_get_reqspec.return_value.save.assert_called_once_with()
|
||||
|
||||
def test_revert_resize(self):
|
||||
self._test_revert_resize()
|
||||
|
|
Loading…
Reference in New Issue