summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 0040ba2da..111232ebf 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -5519,6 +5519,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,