diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-03-12 00:55:49 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-03-12 00:55:49 +0000 |
| commit | ae251b99a3fb6aa99ec8898152d79dfa2c026a92 (patch) | |
| tree | 430637af63709c723ccdbb943fec2b5b35e1df96 | |
| parent | 67069a3d1a4174fae987c8e3a7091b6fd37ff606 (diff) | |
| parent | d8d7d148fe2c185f2efda0c4cfc2ca125d4008d7 (diff) | |
| download | nova-ae251b99a3fb6aa99ec8898152d79dfa2c026a92.tar.gz nova-ae251b99a3fb6aa99ec8898152d79dfa2c026a92.tar.xz nova-ae251b99a3fb6aa99ec8898152d79dfa2c026a92.zip | |
Merge "Pass migration_ref when when auto-confirming"
| -rw-r--r-- | nova/compute/api.py | 7 | ||||
| -rwxr-xr-x | nova/compute/manager.py | 3 | ||||
| -rw-r--r-- | nova/tests/compute/test_compute.py | 6 |
3 files changed, 10 insertions, 6 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py index 0603b929d..2a63b63a5 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -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) diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 5288ba6b9..53ab3a2ed 100755 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -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.") diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py index e94d8b788..0e41678b3 100644 --- a/nova/tests/compute/test_compute.py +++ b/nova/tests/compute/test_compute.py @@ -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', |
