346
346
def _reraise_translated_image_exception(image_id):
347
347
"""Transform the exception for the image but keep its traceback intact."""
348
348
exc_type, exc_value, exc_trace = sys.exc_info()
349
new_exc = _translate_image_exception(image_id, exc_type, exc_value)
349
new_exc = _translate_image_exception(image_id, exc_value)
350
350
raise new_exc, None, exc_trace
353
353
def _reraise_translated_exception():
354
354
"""Transform the exception but keep its traceback intact."""
355
355
exc_type, exc_value, exc_trace = sys.exc_info()
356
new_exc = _translate_plain_exception(exc_type, exc_value)
356
new_exc = _translate_plain_exception(exc_value)
357
357
raise new_exc, None, exc_trace
360
def _translate_image_exception(image_id, exc_type, exc_value):
361
if exc_type in (glanceclient.exc.Forbidden,
362
glanceclient.exc.Unauthorized):
360
def _translate_image_exception(image_id, exc_value):
361
if isinstance(exc_value, (glanceclient.exc.Forbidden,
362
glanceclient.exc.Unauthorized)):
363
363
return exception.ImageNotAuthorized(image_id=image_id)
364
if exc_type is glanceclient.exc.NotFound:
364
if isinstance(exc_value, glanceclient.exc.NotFound):
365
365
return exception.ImageNotFound(image_id=image_id)
366
if exc_type is glanceclient.exc.BadRequest:
366
if isinstance(exc_value, glanceclient.exc.BadRequest):
367
367
return exception.Invalid(exc_value)
371
def _translate_plain_exception(exc_type, exc_value):
372
if exc_type in (glanceclient.exc.Forbidden,
373
glanceclient.exc.Unauthorized):
371
def _translate_plain_exception(exc_value):
372
if isinstance(exc_value, (glanceclient.exc.Forbidden,
373
glanceclient.exc.Unauthorized)):
374
374
return exception.NotAuthorized(exc_value)
375
if exc_type is glanceclient.exc.NotFound:
375
if isinstance(exc_value, glanceclient.exc.NotFound):
376
376
return exception.NotFound(exc_value)
377
if exc_type is glanceclient.exc.BadRequest:
377
if isinstance(exc_value, glanceclient.exc.BadRequest):
378
378
return exception.Invalid(exc_value)