示例#1
0
    def handle_api_error(self, rbody, rcode, resp):

        if rcode in [400, 404]:
            raise error.InvalidRequestError(rbody, rcode, resp)
        elif rcode == 401:
            raise error.AuthenticationError(rbody, rcode, resp)
        else:
            raise error.APIError(rbody, rcode, resp)
示例#2
0
 def interpret_response(self, rbody, rcode):
     try:
         if hasattr(rbody, 'decode'):
             rbody = rbody.decode('utf-8')
         resp = util.json.loads(rbody)
     except Exception:
         raise error.APIError(
             "Invalid response body from API: %s "
             "(HTTP response code was %d)" % (rbody, rcode), rbody, rcode)
     if not (200 <= rcode < 300):
         self.handle_api_error(rbody, rcode, resp)
     return resp