summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/exception.py4
-rw-r--r--nova/tests/test_xenapi.py2
-rw-r--r--nova/virt/xenapi/vmops.py7
3 files changed, 6 insertions, 7 deletions
diff --git a/nova/exception.py b/nova/exception.py
index 6a50faa4a..f587173e1 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -818,3 +818,7 @@ class InstanceTypeMemoryTooSmall(NovaException):
class InstanceTypeDiskTooSmall(NovaException):
message = _("Instance type's disk is too small for requested image.")
+
+
+class InsufficientFreeMemory(NovaException):
+ message = _("Insufficient free memory on compute node to start %(uuid)s.")
diff --git a/nova/tests/test_xenapi.py b/nova/tests/test_xenapi.py
index 2cacd2364..ec0104783 100644
--- a/nova/tests/test_xenapi.py
+++ b/nova/tests/test_xenapi.py
@@ -413,7 +413,7 @@ class XenAPIVMTestCase(test.TestCase):
self.check_vm_params_for_linux()
def test_spawn_not_enough_memory(self):
- self.assertRaises(Exception,
+ self.assertRaises(exception.InsufficientFreeMemory,
self._test_spawn,
1, 2, 3, "4") # m1.xlarge
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index bf4481d69..4b1d22bac 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -220,12 +220,7 @@ class VMOps(object):
# Ensure enough free memory is available
if not VMHelper.ensure_free_mem(self._session, instance):
- LOG.exception(_('instance %(instance_name)s: not enough free '
- 'memory') % locals())
- db.instance_set_state(nova_context.get_admin_context(),
- instance['id'],
- power_state.SHUTDOWN)
- return
+ raise exception.InsufficientFreeMemory(uuid=instance.uuid)
disk_image_type = VMHelper.determine_disk_image_type(instance, context)
kernel = None