summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCerberus <matt.dietz@rackspace.com>2011-03-11 17:30:51 -0600
committerCerberus <matt.dietz@rackspace.com>2011-03-11 17:30:51 -0600
commit1c4afe23157233b7081872ccbc6ea5fa1ff0015a (patch)
tree5df7419df9de6be974abab0c6271bb598928285b
parent6cd90a95d632d45d1c906d412e3240f730e88b95 (diff)
downloadnova-1c4afe23157233b7081872ccbc6ea5fa1ff0015a.tar.gz
nova-1c4afe23157233b7081872ccbc6ea5fa1ff0015a.tar.xz
nova-1c4afe23157233b7081872ccbc6ea5fa1ff0015a.zip
Some unit tests
-rw-r--r--nova/compute/api.py9
-rw-r--r--nova/tests/test_compute.py24
2 files changed, 30 insertions, 3 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 1393c01d5..0dc2bb3d3 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -460,10 +460,13 @@ class API(base.Base):
def resize(self, context, instance_id, flavor_id):
"""Resize a running instance."""
instance = self.db.instance_get(context, instance_id)
- current_instance_type = self.db.instance_type_get_by_flavor_id(
- context, instance['flavor_id'])
+ current_instance_type = self.db.instance_type_get_by_name(
+ context, instance['instance_type'])
+
new_instance_type = self.db.instance_type_get_by_flavor_id(
- context, flavor_id)
+ context, flavor_id)
+ if not new_instance_type:
+ raise exception.ApiError(_("Requested flavor does not exist"))
if current_instance_type.memory_mb > new_instance_typ.memory_mb:
raise exception.ApiError(_("Invalid flavor: cannot downsize"
diff --git a/nova/tests/test_compute.py b/nova/tests/test_compute.py
index 3d25a8997..c53284216 100644
--- a/nova/tests/test_compute.py
+++ b/nova/tests/test_compute.py
@@ -287,6 +287,30 @@ class ComputeTestCase(test.TestCase):
migration_ref['id'])
self.compute.terminate_instance(context, instance_id)
+ def test_resize_invalid_flavor_fails(self):
+ """Ensure invalid flavors raise"""
+ instance_id = self._create_instance()
+ context = self.context.elevated()
+ self.compute.run_instance(self.context, instance_id)
+
+ self.assertRaises(exception.ApiError, self.compute_api.resize,
+ context, instance_id, 200)
+
+ self.compute.terminate_instance(context, instance_id)
+
+ def test_resize_down_fails(self):
+ """Ensure invalid flavors raise"""
+ instance_id = self._create_instance()
+ context = self.context.elevated()
+ self.compute.run_instance(self.context, instance_id)
+ db.instance_update(self.context, instance_id,
+ {'instance_type': 'm1.large'})
+
+ self.assertRaises(exception.ApiError, self.compute_api.resize,
+ context, instance_id, 1)
+
+ self.compute.terminate_instance(context, instance_id)
+
def test_get_by_flavor_id(self):
type = instance_types.get_by_flavor_id(1)
self.assertEqual(type, 'm1.tiny')