diff options
author | Jenkins <jenkins@review.openstack.org> | 2015-03-17 13:09:20 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2015-03-17 13:09:20 +0000 |
commit | 161e5e15e2e8c209c85db9bb9250e39f4e98d0a2 (patch) | |
tree | 0a239b65d4986b1c8410dd7610d5bfd362d58a72 | |
parent | a209c0e3f0897461c6c9073aa65ee75b80e426dd (diff) | |
parent | 8bd848df43ea96b7431802748a1e8567a8e89203 (diff) | |
download | glance_store-161e5e15e2e8c209c85db9bb9250e39f4e98d0a2.tar.gz |
Merge "Throw NotFound exception when template is gone"
-rw-r--r-- | glance_store/_drivers/vmware_datastore.py | 5 | ||||
-rw-r--r-- | tests/unit/test_vmware_store.py | 13 |
2 files changed, 18 insertions, 0 deletions
diff --git a/glance_store/_drivers/vmware_datastore.py b/glance_store/_drivers/vmware_datastore.py index 3074d41..f684315 100644 --- a/glance_store/_drivers/vmware_datastore.py +++ b/glance_store/_drivers/vmware_datastore.py @@ -26,6 +26,7 @@ from oslo_utils import excutils from oslo_utils import units from oslo_vmware import api from oslo_vmware import constants +import oslo_vmware.exceptions as vexc from oslo_vmware.objects import datacenter as oslo_datacenter from oslo_vmware.objects import datastore as oslo_datastore from oslo_vmware import vim_util @@ -589,6 +590,10 @@ class Store(glance_store.Store): datacenter=dc_obj.ref) try: self.session.wait_for_task(delete_task) + except vexc.FileNotFoundException: + msg = _('Image file %s not found') % file_path + LOG.warn(msg) + raise exceptions.NotFound(message=msg) except Exception: with excutils.save_and_reraise_exception(): LOG.exception(_LE('Failed to delete image %(image)s ' diff --git a/tests/unit/test_vmware_store.py b/tests/unit/test_vmware_store.py index 22c3ac9..7b2175f 100644 --- a/tests/unit/test_vmware_store.py +++ b/tests/unit/test_vmware_store.py @@ -21,6 +21,7 @@ import uuid import mock from oslo_utils import units from oslo_vmware import api +from oslo_vmware.exceptions import FileNotFoundException from oslo_vmware.objects import datacenter as oslo_datacenter from oslo_vmware.objects import datastore as oslo_datastore import six @@ -224,6 +225,18 @@ class TestStore(base.StoreBaseTest, HttpConn.return_value = FakeHTTPConnection(status=404) self.assertRaises(exceptions.NotFound, self.store.get, loc) + def test_delete_non_existing(self): + """ + Test that trying to delete an image that doesn't exist raises an error + """ + loc = location.get_location_from_uri( + "vsphere://127.0.0.1/folder/openstack_glance/%s?" + "dsName=ds1&dcPath=dc1" % FAKE_UUID, conf=self.conf) + with mock.patch.object(self.store.session, + 'wait_for_task') as mock_task: + mock_task.side_effect = FileNotFoundException + self.assertRaises(exceptions.NotFound, self.store.delete, loc) + @mock.patch('oslo_vmware.api.VMwareAPISession') def test_get_size(self, mock_api_session): """ |