Merge "Pass migration_ref when when auto-confirming"
This commit is contained in:
commit
ae251b99a3
|
@ -1848,11 +1848,12 @@ class API(base.Base):
|
|||
@wrap_check_policy
|
||||
@check_instance_lock
|
||||
@check_instance_state(vm_state=[vm_states.RESIZED])
|
||||
def confirm_resize(self, context, instance):
|
||||
def confirm_resize(self, context, instance, migration_ref=None):
|
||||
"""Confirms a migration/resize and deletes the 'old' instance."""
|
||||
elevated = context.elevated()
|
||||
migration_ref = self.db.migration_get_by_instance_and_status(elevated,
|
||||
instance['uuid'], 'finished')
|
||||
if migration_ref is None:
|
||||
migration_ref = self.db.migration_get_by_instance_and_status(
|
||||
elevated, instance['uuid'], 'finished')
|
||||
|
||||
# reserve quota only for any decrease in resource usage
|
||||
deltas = self._downsize_quota_delta(context, migration_ref)
|
||||
|
|
|
@ -3322,7 +3322,8 @@ class ComputeManager(manager.SchedulerDependentManager):
|
|||
instance=instance)
|
||||
continue
|
||||
try:
|
||||
self.compute_api.confirm_resize(context, instance)
|
||||
self.compute_api.confirm_resize(context, instance,
|
||||
migration_ref=migration)
|
||||
except Exception, e:
|
||||
msg = _("Error auto-confirming resize: %(e)s. "
|
||||
"Will retry later.")
|
||||
|
|
|
@ -3414,13 +3414,15 @@ class ComputeTestCase(BaseTestCase):
|
|||
if migration['id'] == m['id']:
|
||||
migration['status'] = status
|
||||
|
||||
def fake_confirm_resize(context, instance):
|
||||
def fake_confirm_resize(context, instance, migration_ref=None):
|
||||
# raise exception for 'fake_uuid4' to check migration status
|
||||
# does not get set to 'error' on confirm_resize failure.
|
||||
if instance['uuid'] == 'fake_uuid4':
|
||||
raise test.TestingException
|
||||
self.assertNotEqual(migration_ref, None)
|
||||
for migration in migrations:
|
||||
if migration['instance_uuid'] == instance['uuid']:
|
||||
if (migration['instance_uuid'] ==
|
||||
migration_ref['instance_uuid']):
|
||||
migration['status'] = 'confirmed'
|
||||
|
||||
self.stubs.Set(db, 'instance_get_by_uuid',
|
||||
|
|
Loading…
Reference in New Issue