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)
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