Merge "move xtremio exceptions"
This commit is contained in:
commit
0bc7bd7435
@ -1180,19 +1180,6 @@ class WebDAVClientError(VolumeDriverException):
|
|||||||
"Destination Volume: %(dst)s, Method: %(method)s.")
|
"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
|
# StorPool driver
|
||||||
class StorPoolConfigurationInvalid(CinderException):
|
class StorPoolConfigurationInvalid(CinderException):
|
||||||
message = _("Invalid parameter %(param)s in the %(section)s section "
|
message = _("Invalid parameter %(param)s in the %(section)s section "
|
||||||
|
@ -536,7 +536,7 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(xtremio.XtremIOClient4, 'create_snapshot')
|
@mock.patch.object(xtremio.XtremIOClient4, 'create_snapshot')
|
||||||
def test_clone_volume_exceed_array_limit(self, create_snap, req):
|
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
|
req.side_effect = xms_request
|
||||||
self.driver.db = mock.Mock()
|
self.driver.db = mock.Mock()
|
||||||
(self.driver.db.
|
(self.driver.db.
|
||||||
@ -556,7 +556,7 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
|
|||||||
"message": "too_many_snapshots_per_vol",
|
"message": "too_many_snapshots_per_vol",
|
||||||
"error_code": 400
|
"error_code": 400
|
||||||
}
|
}
|
||||||
self.assertRaises(exception.XtremIOSnapshotsLimitExceeded,
|
self.assertRaises(xtremio.XtremIOSnapshotsLimitExceeded,
|
||||||
self.driver.client.handle_errors,
|
self.driver.client.handle_errors,
|
||||||
response, '', '')
|
response, '', '')
|
||||||
|
|
||||||
@ -568,7 +568,7 @@ class XtremIODriverISCSITestCase(BaseXtremIODriverTestCase):
|
|||||||
"message": "too_many_objs",
|
"message": "too_many_objs",
|
||||||
"error_code": 400
|
"error_code": 400
|
||||||
}
|
}
|
||||||
self.assertRaises(exception.XtremIOSnapshotsLimitExceeded,
|
self.assertRaises(xtremio.XtremIOSnapshotsLimitExceeded,
|
||||||
self.driver.client.handle_errors,
|
self.driver.client.handle_errors,
|
||||||
response, '', '')
|
response, '', '')
|
||||||
|
|
||||||
|
@ -101,6 +101,18 @@ XTREMIO_OID_NAME = 1
|
|||||||
XTREMIO_OID_INDEX = 2
|
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):
|
class XtremIOClient(object):
|
||||||
def __init__(self, configuration, cluster_id):
|
def __init__(self, configuration, cluster_id):
|
||||||
self.configuration = configuration
|
self.configuration = configuration
|
||||||
@ -121,7 +133,7 @@ class XtremIOClient(object):
|
|||||||
|
|
||||||
def req(self, object_type='volumes', method='GET', data=None,
|
def req(self, object_type='volumes', method='GET', data=None,
|
||||||
name=None, idx=None, ver='v1'):
|
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_count,
|
||||||
self.configuration.xtremio_array_busy_retry_interval, 1)
|
self.configuration.xtremio_array_busy_retry_interval, 1)
|
||||||
def _do_req(object_type, method, data, name, idx, ver):
|
def _do_req(object_type, method, data, name, idx, ver):
|
||||||
@ -188,11 +200,11 @@ class XtremIOClient(object):
|
|||||||
{'key': key, 'msg': err_msg, })
|
{'key': key, 'msg': err_msg, })
|
||||||
raise exception.VolumeNotFound(volume_id=key)
|
raise exception.VolumeNotFound(volume_id=key)
|
||||||
elif ALREADY_MAPPED_ERR in err_msg:
|
elif ALREADY_MAPPED_ERR in err_msg:
|
||||||
raise exception.XtremIOAlreadyMappedError()
|
raise XtremIOAlreadyMappedError()
|
||||||
elif err_msg == SYSTEM_BUSY:
|
elif err_msg == SYSTEM_BUSY:
|
||||||
raise exception.XtremIOArrayBusy()
|
raise XtremIOArrayBusy()
|
||||||
elif err_msg in (TOO_MANY_OBJECTS, TOO_MANY_SNAPSHOTS_PER_VOL):
|
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
|
msg = _('Bad response from XMS, %s') % response.text
|
||||||
LOG.error(msg)
|
LOG.error(msg)
|
||||||
raise exception.VolumeBackendAPIException(message=msg)
|
raise exception.VolumeBackendAPIException(message=msg)
|
||||||
@ -510,7 +522,7 @@ class XtremIOVolumeDriver(san.SanDriver):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
self.client.create_snapshot(snapshot_id, volume['id'])
|
self.client.create_snapshot(snapshot_id, volume['id'])
|
||||||
except exception.XtremIOSnapshotsLimitExceeded as e:
|
except XtremIOSnapshotsLimitExceeded as e:
|
||||||
raise exception.CinderException(e.message)
|
raise exception.CinderException(e.message)
|
||||||
|
|
||||||
# extend the snapped volume if requested size is larger then original
|
# extend the snapped volume if requested size is larger then original
|
||||||
@ -543,7 +555,7 @@ class XtremIOVolumeDriver(san.SanDriver):
|
|||||||
'%d snapshots per volume' % limit)
|
'%d snapshots per volume' % limit)
|
||||||
try:
|
try:
|
||||||
self.client.create_snapshot(src_vref['id'], volume['id'])
|
self.client.create_snapshot(src_vref['id'], volume['id'])
|
||||||
except exception.XtremIOSnapshotsLimitExceeded as e:
|
except XtremIOSnapshotsLimitExceeded as e:
|
||||||
raise exception.CinderException(e.message)
|
raise exception.CinderException(e.message)
|
||||||
|
|
||||||
# extend the snapped volume if requested size is larger then original
|
# 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)
|
lunmap = self._obj_from_result(res)
|
||||||
LOG.info('Created lun-map:\n%s', lunmap)
|
LOG.info('Created lun-map:\n%s', lunmap)
|
||||||
except exception.XtremIOAlreadyMappedError:
|
except XtremIOAlreadyMappedError:
|
||||||
LOG.info('Volume already mapped, retrieving %(ig)s, %(vol)s',
|
LOG.info('Volume already mapped, retrieving %(ig)s, %(vol)s',
|
||||||
{'ig': ig, 'vol': volume['id']})
|
{'ig': ig, 'vol': volume['id']})
|
||||||
lunmap = self.client.find_lunmap(ig, volume['id'])
|
lunmap = self.client.find_lunmap(ig, volume['id'])
|
||||||
|
Loading…
x
Reference in New Issue
Block a user