summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-05-21 22:02:34 +0000
committerGerrit Code Review <review@openstack.org>2013-05-21 22:02:34 +0000
commit288a93fd1dcc720e6d7da750b95da01b9e909a31 (patch)
tree64cd47f0250bf307ed6724ad56065db4e1ff637e /nova
parent7f497673082111eadd47b292206ca545820e9b00 (diff)
parent400154ee24d4053473bdd2e804f9e54bbdffba73 (diff)
Merge "Adding tests for rebuild image checks"
Diffstat (limited to 'nova')
-rw-r--r--nova/tests/compute/test_compute.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index fe16182bf..9871c5943 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -5561,6 +5561,87 @@ class ComputeAPITestCase(BaseTestCase):
self.compute_api.rebuild(self.context, instance,
self.fake_image['id'], 'new_password')
+ def test_rebuild_with_too_little_ram(self):
+ instance = jsonutils.to_primitive(
+ self._create_fake_instance(params={'image_ref': '1'}))
+
+ def fake_extract_instance_type(_inst):
+ return dict(memory_mb=64, root_gb=1)
+
+ self.stubs.Set(flavors, 'extract_instance_type',
+ fake_extract_instance_type)
+
+ self.fake_image['min_ram'] = 128
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.assertRaises(exception.InstanceTypeMemoryTooSmall,
+ self.compute_api.rebuild, self.context,
+ instance, self.fake_image['id'], 'new_password')
+
+ # Reduce image memory requirements and make sure it works
+ self.fake_image['min_ram'] = 64
+
+ self.compute_api.rebuild(self.context,
+ instance, self.fake_image['id'], 'new_password')
+ db.instance_destroy(self.context, instance['uuid'])
+
+ def test_rebuild_with_too_little_disk(self):
+ instance = jsonutils.to_primitive(
+ self._create_fake_instance(params={'image_ref': '1'}))
+
+ def fake_extract_instance_type(_inst):
+ return dict(memory_mb=64, root_gb=1)
+
+ self.stubs.Set(flavors, 'extract_instance_type',
+ fake_extract_instance_type)
+
+ self.fake_image['min_disk'] = 2
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.assertRaises(exception.InstanceTypeDiskTooSmall,
+ self.compute_api.rebuild, self.context,
+ instance, self.fake_image['id'], 'new_password')
+
+ # Reduce image disk requirements and make sure it works
+ self.fake_image['min_disk'] = 1
+
+ self.compute_api.rebuild(self.context,
+ instance, self.fake_image['id'], 'new_password')
+ db.instance_destroy(self.context, instance['uuid'])
+
+ def test_rebuild_with_just_enough_ram_and_disk(self):
+ instance = jsonutils.to_primitive(
+ self._create_fake_instance(params={'image_ref': '1'}))
+
+ def fake_extract_instance_type(_inst):
+ return dict(memory_mb=64, root_gb=1)
+
+ self.stubs.Set(flavors, 'extract_instance_type',
+ fake_extract_instance_type)
+
+ self.fake_image['min_ram'] = 64
+ self.fake_image['min_disk'] = 1
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.compute_api.rebuild(self.context,
+ instance, self.fake_image['id'], 'new_password')
+ db.instance_destroy(self.context, instance['uuid'])
+
+ def test_rebuild_with_no_ram_and_disk_reqs(self):
+ instance = jsonutils.to_primitive(
+ self._create_fake_instance(params={'image_ref': '1'}))
+
+ def fake_extract_instance_type(_inst):
+ return dict(memory_mb=64, root_gb=1)
+
+ self.stubs.Set(flavors, 'extract_instance_type',
+ fake_extract_instance_type)
+ self.stubs.Set(fake_image._FakeImageService, 'show', self.fake_show)
+
+ self.compute_api.rebuild(self.context,
+ instance, self.fake_image['id'], 'new_password')
+ db.instance_destroy(self.context, instance['uuid'])
+
def _stub_out_reboot(self, device_name):
def fake_reboot_instance(rpcapi, context, instance,
block_device_info,