summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorAlex Meade <alex.meade@rackspace.com>2011-11-10 15:52:04 -0500
committerAlex Meade <alex.meade@rackspace.com>2011-11-11 11:00:43 -0500
commit43fb6880d90197735b0b9bf4587fcece825c1ed0 (patch)
tree26066ad20308b4b85f8b4229293654d1067fb2f9 /nova/tests
parent59dfaf9e02ff0064a6844c9c986737267317776f (diff)
Convert pause/unpause, sus/res to use instance obj
Related to blueprint internal-uuids Change-Id: I02bd212b4878ed0fcb971c223518ecf7126bd597
Diffstat (limited to 'nova/tests')
-rw-r--r--nova/tests/api/openstack/contrib/test_admin_actions.py23
-rw-r--r--nova/tests/test_compute.py60
2 files changed, 83 insertions, 0 deletions
diff --git a/nova/tests/api/openstack/contrib/test_admin_actions.py b/nova/tests/api/openstack/contrib/test_admin_actions.py
index 8b5697609..84df0f9bc 100644
--- a/nova/tests/api/openstack/contrib/test_admin_actions.py
+++ b/nova/tests/api/openstack/contrib/test_admin_actions.py
@@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import datetime
import json
import webob
@@ -23,11 +24,32 @@ from nova.tests.api.openstack import fakes
FLAGS = flags.FLAGS
+INSTANCE = {
+ "id": 1,
+ "name": "fake",
+ "display_name": "test_server",
+ "uuid": "abcd",
+ "user_id": 'fake_user_id',
+ "tenant_id": 'fake_tenant_id',
+ "created_at": datetime.datetime(2010, 10, 10, 12, 0, 0),
+ "updated_at": datetime.datetime(2010, 11, 11, 11, 0, 0),
+ "security_groups": [{"id": 1, "name": "test"}],
+ "progress": 0,
+ "image_ref": 'http://foo.com/123',
+ "fixed_ips": [],
+ "instance_type": {"flavorid": '124'},
+ }
+
def fake_compute_api(cls, req, id):
return True
+def return_server_by_id(context, id, session=None):
+ INSTANCE['id'] = id
+ return INSTANCE
+
+
class AdminActionsTest(test.TestCase):
_actions = ('pause', 'unpause', 'suspend', 'resume', 'migrate',
@@ -41,6 +63,7 @@ class AdminActionsTest(test.TestCase):
self.flags(allow_admin_api=True)
for _method in self._methods:
self.stubs.Set(compute.API, _method, fake_compute_api)
+ self.stubs.Set(compute.API, 'get', return_server_by_id)
def test_admin_api_enabled(self):
app = fakes.wsgi_app()
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index 0e8d53751..a81fadffe 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -1121,6 +1121,66 @@ class ComputeAPITestCase(BaseTestCase):
instance = db.instance_get(self.context, instance_id)
self.assertEqual(instance['task_state'], task_states.DELETING)
+ def test_suspend(self):
+ """Ensure instance can be suspended"""
+ instance_id = self._create_instance()
+ self.compute.run_instance(self.context, instance_id)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], None)
+
+ self.compute_api.suspend(self.context, inst_ref)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], task_states.SUSPENDING)
+
+ db.instance_destroy(self.context, instance_id)
+
+ def test_resume(self):
+ """Ensure instance can be resumed"""
+ instance_id = self._create_instance()
+ self.compute.run_instance(self.context, instance_id)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], None)
+
+ self.compute_api.resume(self.context, inst_ref)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], task_states.RESUMING)
+
+ db.instance_destroy(self.context, instance_id)
+
+ def test_pause(self):
+ """Ensure instance can be paused"""
+ instance_id = self._create_instance()
+ self.compute.run_instance(self.context, instance_id)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], None)
+
+ self.compute_api.pause(self.context, inst_ref)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], task_states.PAUSING)
+
+ db.instance_destroy(self.context, instance_id)
+
+ def test_unpause(self):
+ """Ensure instance can be unpaused"""
+ instance_id = self._create_instance()
+ self.compute.run_instance(self.context, instance_id)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], None)
+
+ self.compute.pause_instance(self.context, instance_id)
+
+ self.compute_api.unpause(self.context, inst_ref)
+
+ inst_ref = db.instance_get(self.context, instance_id)
+ self.assertEqual(inst_ref['task_state'], task_states.UNPAUSING)
+
db.instance_destroy(self.context, instance_id)
def test_rebuild(self):