diff options
-rw-r--r-- | nova/api/openstack/common.py | 1 | ||||
-rw-r--r-- | nova/compute/api.py | 4 | ||||
-rw-r--r-- | nova/compute/manager.py | 4 | ||||
-rw-r--r-- | nova/tests/api/openstack/compute/test_servers.py | 5 | ||||
-rw-r--r-- | nova/tests/test_compute.py | 9 |
5 files changed, 20 insertions, 3 deletions
diff --git a/nova/api/openstack/common.py b/nova/api/openstack/common.py index c19b8f103..903649c02 100644 --- a/nova/api/openstack/common.py +++ b/nova/api/openstack/common.py @@ -66,6 +66,7 @@ _STATE_MAP = { }, vm_states.RESIZING: { 'default': 'RESIZE', + task_states.RESIZE_REVERTING: 'REVERT_RESIZE', }, vm_states.PAUSED: { 'default': 'PAUSED', diff --git a/nova/compute/api.py b/nova/compute/api.py index 240e924fe..5216382df 100644 --- a/nova/compute/api.py +++ b/nova/compute/api.py @@ -1325,8 +1325,8 @@ class API(base.Base): self.update(context, instance, - vm_state=vm_states.ACTIVE, - task_state=None) + vm_state=vm_states.RESIZING, + task_state=task_states.RESIZE_REVERTING) params = {'migration_id': migration_ref['id']} self._cast_compute_message('revert_resize', context, diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 47448eb13..6ca4fbb65 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -1167,7 +1167,9 @@ class ComputeManager(manager.SchedulerDependentManager): vcpus=instance_type['vcpus'], root_gb=instance_type['root_gb'], ephemeral_gb=instance_type['ephemeral_gb'], - instance_type_id=instance_type['id']) + instance_type_id=instance_type['id'], + vm_state=vm_states.ACTIVE, + task_state=None) self.driver.finish_revert_migration(instance_ref) self.db.migration_update(context, migration_id, diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py index 14f49684f..1bf5f829f 100644 --- a/nova/tests/api/openstack/compute/test_servers.py +++ b/nova/tests/api/openstack/compute/test_servers.py @@ -1376,6 +1376,11 @@ class ServerStatusTest(test.TestCase): task_states.RESIZE_VERIFY) self.assertEqual(response['server']['status'], 'VERIFY_RESIZE') + def test_revert_resize(self): + response = self._get_with_state(vm_states.RESIZING, + task_states.RESIZE_REVERTING) + self.assertEqual(response['server']['status'], 'REVERT_RESIZE') + def test_password_update(self): response = self._get_with_state(vm_states.ACTIVE, task_states.UPDATING_PASSWORD) diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py index 33861000d..f593a5c7d 100644 --- a/nova/tests/test_compute.py +++ b/nova/tests/test_compute.py @@ -1215,6 +1215,10 @@ class ComputeTestCase(BaseTestCase): self.compute.finish_revert_resize(context, inst_ref['uuid'], migration_ref['id']) + instance = db.instance_get_by_uuid(context, instance['uuid']) + self.assertEqual(instance['vm_state'], vm_states.ACTIVE) + self.assertEqual(instance['task_state'], None) + inst_ref = db.instance_get_by_uuid(context, instance_uuid) instance_type_ref = db.instance_type_get(context, inst_ref['instance_type_id']) @@ -2235,6 +2239,11 @@ class ComputeAPITestCase(BaseTestCase): instance = db.instance_get_by_uuid(context, instance['uuid']) self.compute_api.revert_resize(context, instance) + + instance = db.instance_get_by_uuid(context, instance['uuid']) + self.assertEqual(instance['vm_state'], vm_states.RESIZING) + self.assertEqual(instance['task_state'], task_states.RESIZE_REVERTING) + self.compute.terminate_instance(context, instance['uuid']) def test_resize_invalid_flavor_fails(self): |