common.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:tintri-python-sdk 作者: Tintri 项目源码 文件源码
def _process_error(self, method, url, status_code, response_data):
        try:
            jsonError = json.loads(response_data)
        except ValueError as e:
            self.__logger.warning("Failed to decode result. url:%s status:%s error:%s data:%s" % (url, status_code, e, response_data))
            raise TintriServerError(status_code, cause=e, message="Failed to decode result. url:%s status:%s error:%s data:%s" % (url, status_code, e, response_data))
        except Exception as e:
            self.__logger.warning("HTTP request failed. URL:%s Status Code:%s Error:%s Text:%s" % (url, status_code, e, response_data))
            raise TintriServerError(status_code, None, cause=`e`, details=response_data)

        if type(jsonError) == types.DictionaryType:
            self.__logger.info('Server error. url:%s status:%s code:%s message:%s cause:%s' % (url, status_code, jsonError['code'], jsonError['message'], jsonError['causeDetails']))
            if status_code == 400:
                raise TintriBadRequestError(jsonError['code'], jsonError['message'], jsonError['causeDetails'])
            elif status_code == 401:
                raise TintriInvalidSessionError(jsonError['code'], jsonError['message'], jsonError['causeDetails'])
            elif status_code == 403:
                raise TintriAuthorizationError(jsonError['code'], jsonError['message'], jsonError['causeDetails'])
            elif status_code == 404:
                raise TintriAPINotFoundError(jsonError['code'], jsonError['message'], jsonError['causeDetails'])
            elif status_code == 500:
                raise TintriInternalError(jsonError['code'], jsonError['message'], jsonError['causeDetails'])
            else:
                raise TintriServerError(status_code, code=jsonError['code'], message=jsonError['message'], details=jsonError['causeDetails'])
        else:
            self.__logger.info('Server error. url:%s status:%s Unknown error:%s' % (url, status_code, response_data))
            raise TintriServerError(status_code, code=None, message='Unknown error', details=response_data)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号