Merge "Fix delete_snapshot error case in Pure driver"

This commit is contained in:
Jenkins 2016-01-07 22:41:59 +00:00 committed by Gerrit Code Review
commit 31ba79c88e
2 changed files with 11 additions and 8 deletions
cinder
tests/unit
volume/drivers

@ -416,9 +416,10 @@ class PureBaseVolumeDriverTestCase(PureBaseSharedDriverTestCase):
self.driver.delete_volume(VOLUME)
expected = [mock.call.destroy_volume(vol_name)]
self.array.assert_has_calls(expected)
self.array.destroy_volume.side_effect = \
self.purestorage_module.PureHTTPError(code=400, text="reason")
self.driver.delete_snapshot(SNAPSHOT)
self.array.destroy_volume.side_effect = (
self.purestorage_module.PureHTTPError(code=400, text="does not "
"exist"))
self.driver.delete_volume(VOLUME)
self.array.destroy_volume.side_effect = None
self.assert_error_propagates([self.array.destroy_volume],
self.driver.delete_volume, VOLUME)
@ -461,8 +462,9 @@ class PureBaseVolumeDriverTestCase(PureBaseSharedDriverTestCase):
self.driver.delete_snapshot(SNAPSHOT)
expected = [mock.call.destroy_volume(snap_name)]
self.array.assert_has_calls(expected)
self.array.destroy_volume.side_effect = \
self.purestorage_module.PureHTTPError(code=400, text="reason")
self.array.destroy_volume.side_effect = (
self.purestorage_module.PureHTTPError(code=400, text="does not "
"exist"))
self.driver.delete_snapshot(SNAPSHOT)
self.array.destroy_volume.side_effect = None
self.assert_error_propagates([self.array.destroy_volume],

@ -210,11 +210,12 @@ class PureBaseVolumeDriver(san.SanDriver):
self._array.destroy_volume(snap_name)
except purestorage.PureHTTPError as err:
with excutils.save_and_reraise_exception() as ctxt:
if err.code == 400:
if err.code == 400 and (
ERR_MSG_NOT_EXIST in err.text):
# Happens if the snapshot does not exist.
ctxt.reraise = False
LOG.error(_LE("Snapshot deletion failed with message:"
" %s"), err.text)
LOG.warning(_LW("Snapshot deletion failed with "
"message: %s"), err.text)
def ensure_export(self, context, volume):
pass