summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishvananda Ishaya <vishvananda@gmail.com>2012-03-30 10:05:45 -0700
committerVishvananda Ishaya <vishvananda@gmail.com>2012-03-30 10:09:29 -0700
commite1580f2f99e8900aabdb5a049198adcc5af86229 (patch)
tree3f26d72ec91b76aa1df03db5412096ad2b6c13dc
parentad4e65a6688fceecac3f44f9d8eb46e35b6ed6d8 (diff)
downloadnova-e1580f2f99e8900aabdb5a049198adcc5af86229.tar.gz
nova-e1580f2f99e8900aabdb5a049198adcc5af86229.tar.xz
nova-e1580f2f99e8900aabdb5a049198adcc5af86229.zip
Handle not found in check for disk availability
* includes failing test * fixes bug 968339 Change-Id: I92951a9d2f2027464e915608e8aaf205543f3c93
-rw-r--r--nova/tests/test_libvirt.py16
-rw-r--r--nova/virt/libvirt/connection.py3
2 files changed, 19 insertions, 0 deletions
diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 1a41d1b27..4eea7b0b3 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -1399,6 +1399,22 @@ class LibvirtConnTestCase(test.TestCase):
"uuid": "875a8070-d0b9-4949-8b31-104d125c9a64"}
conn.destroy(instance, [])
+ def test_available_least_handles_missing(self):
+ """Ensure destroy calls managedSaveRemove for saved instance"""
+ conn = connection.LibvirtConnection(False)
+
+ def list_instances():
+ return ['fake']
+ self.stubs.Set(conn, 'list_instances', list_instances)
+
+ def get_info(instance_name):
+ raise exception.InstanceNotFound()
+ self.stubs.Set(conn, 'get_instance_disk_info', get_info)
+
+ result = conn.get_disk_available_least()
+ space = fake_libvirt_utils.get_fs_info(FLAGS.instances_path)['free']
+ self.assertEqual(result, space / 1024 ** 3)
+
class HostStateTestCase(test.TestCase):
diff --git a/nova/virt/libvirt/connection.py b/nova/virt/libvirt/connection.py
index caa912d98..08a4a6fad 100644
--- a/nova/virt/libvirt/connection.py
+++ b/nova/virt/libvirt/connection.py
@@ -2376,6 +2376,9 @@ class LibvirtConnection(driver.ComputeDriver):
locals())
else:
raise
+ except exception.InstanceNotFound:
+ # Instance was deleted during the check so ignore it
+ pass
# Disk available least size
available_least_size = dk_sz_gb * (1024 ** 3) - instances_sz