move xtremio exceptions

This patch moves the xtremio exceptions to the driver.

Change-Id: I61cda4dab24e1f6065e9e78e5b956fbd953fd332
This commit is contained in:
Walter A. Boring IV 2019-05-08 19:10:02 +00:00 committed by Jay Bryant
parent 779979789c
commit b986a241d0
3 changed files with 22 additions and 23 deletions

View File

@ -1226,19 +1226,6 @@ class WebDAVClientError(VolumeDriverException):
"Destination Volume: %(dst)s, Method: %(method)s.")
# XtremIO Drivers
class XtremIOAlreadyMappedError(VolumeDriverException):
message = _("Volume to Initiator Group mapping already exists")
class XtremIOArrayBusy(VolumeDriverException):
message = _("System is busy, retry operation.")
class XtremIOSnapshotsLimitExceeded(VolumeDriverException):
message = _("Exceeded the limit of snapshots per volume")
# StorPool driver
class StorPoolConfigurationInvalid(CinderException):
message = _("Invalid parameter %(param)s in the %(section)s section "

View File

@ -536,7 +536,7 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
@mock.patch.object(xtremio.XtremIOClient4, 'create_snapshot')
def test_clone_volume_exceed_array_limit(self, create_snap, req):
create_snap.side_effect = exception.XtremIOSnapshotsLimitExceeded()
create_snap.side_effect = xtremio.XtremIOSnapshotsLimitExceeded()
req.side_effect = xms_request
self.driver.db = mock.Mock()
(self.driver.db.
@ -556,7 +556,7 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
"message": "too_many_snapshots_per_vol",
"error_code": 400
}
self.assertRaises(exception.XtremIOSnapshotsLimitExceeded,
self.assertRaises(xtremio.XtremIOSnapshotsLimitExceeded,
self.driver.client.handle_errors,
response, '', '')
@ -568,7 +568,7 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
"message": "too_many_objs",
"error_code": 400
}
self.assertRaises(exception.XtremIOSnapshotsLimitExceeded,
self.assertRaises(xtremio.XtremIOSnapshotsLimitExceeded,
self.driver.client.handle_errors,
response, '', '')

View File

@ -101,6 +101,18 @@ XTREMIO_OID_NAME = 1
XTREMIO_OID_INDEX = 2
class XtremIOAlreadyMappedError(exception.VolumeDriverException):
message = _("Volume to Initiator Group mapping already exists")
class XtremIOArrayBusy(exception.VolumeDriverException):
message = _("System is busy, retry operation.")
class XtremIOSnapshotsLimitExceeded(exception.VolumeDriverException):
message = _("Exceeded the limit of snapshots per volume")
class XtremIOClient(object):
def __init__(self, configuration, cluster_id):
self.configuration = configuration
@ -121,7 +133,7 @@ class XtremIOClient(object):
def req(self, object_type='volumes', method='GET', data=None,
name=None, idx=None, ver='v1'):
@utils.retry(exception.XtremIOArrayBusy,
@utils.retry(XtremIOArrayBusy,
self.configuration.xtremio_array_busy_retry_count,
self.configuration.xtremio_array_busy_retry_interval, 1)
def _do_req(object_type, method, data, name, idx, ver):
@ -188,11 +200,11 @@ class XtremIOClient(object):
{'key': key, 'msg': err_msg, })
raise exception.VolumeNotFound(volume_id=key)
elif ALREADY_MAPPED_ERR in err_msg:
raise exception.XtremIOAlreadyMappedError()
raise XtremIOAlreadyMappedError()
elif err_msg == SYSTEM_BUSY:
raise exception.XtremIOArrayBusy()
raise XtremIOArrayBusy()
elif err_msg in (TOO_MANY_OBJECTS, TOO_MANY_SNAPSHOTS_PER_VOL):
raise exception.XtremIOSnapshotsLimitExceeded()
raise XtremIOSnapshotsLimitExceeded()
msg = _('Bad response from XMS, %s') % response.text
LOG.error(msg)
raise exception.VolumeBackendAPIException(message=msg)
@ -510,7 +522,7 @@ class XtremIOVolumeDriver(san.SanDriver):
try:
self.client.create_snapshot(snapshot_id, volume['id'])
except exception.XtremIOSnapshotsLimitExceeded as e:
except XtremIOSnapshotsLimitExceeded as e:
raise exception.CinderException(e.message)
# extend the snapped volume if requested size is larger then original
@ -543,7 +555,7 @@ class XtremIOVolumeDriver(san.SanDriver):
'%d snapshots per volume' % limit)
try:
self.client.create_snapshot(src_vref['id'], volume['id'])
except exception.XtremIOSnapshotsLimitExceeded as e:
except XtremIOSnapshotsLimitExceeded as e:
raise exception.CinderException(e.message)
# extend the snapped volume if requested size is larger then original
@ -785,7 +797,7 @@ class XtremIOVolumeDriver(san.SanDriver):
lunmap = self._obj_from_result(res)
LOG.info('Created lun-map:\n%s', lunmap)
except exception.XtremIOAlreadyMappedError:
except XtremIOAlreadyMappedError:
LOG.info('Volume already mapped, retrieving %(ig)s, %(vol)s',
{'ig': ig, 'vol': volume['id']})
lunmap = self.client.find_lunmap(ig, volume['id'])