diff options
| author | Vishvananda Ishaya <vishvananda@gmail.com> | 2012-03-30 10:05:45 -0700 |
|---|---|---|
| committer | Vishvananda Ishaya <vishvananda@gmail.com> | 2012-03-30 10:09:29 -0700 |
| commit | e1580f2f99e8900aabdb5a049198adcc5af86229 (patch) | |
| tree | 3f26d72ec91b76aa1df03db5412096ad2b6c13dc | |
| parent | ad4e65a6688fceecac3f44f9d8eb46e35b6ed6d8 (diff) | |
| download | nova-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.py | 16 | ||||
| -rw-r--r-- | nova/virt/libvirt/connection.py | 3 |
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 |
