summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-03-17 13:09:20 +0000
committerGerrit Code Review <review@openstack.org>2015-03-17 13:09:20 +0000
commit161e5e15e2e8c209c85db9bb9250e39f4e98d0a2 (patch)
tree0a239b65d4986b1c8410dd7610d5bfd362d58a72
parenta209c0e3f0897461c6c9073aa65ee75b80e426dd (diff)
parent8bd848df43ea96b7431802748a1e8567a8e89203 (diff)
downloadglance_store-161e5e15e2e8c209c85db9bb9250e39f4e98d0a2.tar.gz
Merge "Throw NotFound exception when template is gone"
-rw-r--r--glance_store/_drivers/vmware_datastore.py5
-rw-r--r--tests/unit/test_vmware_store.py13
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):
"""