summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/api/openstack/common.py1
-rw-r--r--nova/compute/api.py4
-rw-r--r--nova/compute/manager.py4
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py5
-rw-r--r--nova/tests/test_compute.py9
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):