def _get_code_from_exception(backend, operation, e):
if isinstance(e, BackendException) and e.code != log.ErrorCode.backend_error:
return e.code
elif hasattr(backend, '_error_code'):
return backend._error_code(operation, e) or log.ErrorCode.backend_error
elif hasattr(e, 'errno'):
# A few backends return such errors (local, paramiko, etc)
if e.errno == errno.EACCES:
return log.ErrorCode.backend_permission_denied
elif e.errno == errno.ENOENT:
return log.ErrorCode.backend_not_found
elif e.errno == errno.ENOSPC:
return log.ErrorCode.backend_no_space
return log.ErrorCode.backend_error
评论列表
文章目录