~zulcss/python-cinderclient/python-cinderclient-cloud-g2

« back to all changes in this revision

Viewing changes to cinderclient/exceptions.py

  • Committer: Chuck Short
  • Date: 2013-01-23 18:39:31 UTC
  • mfrom: (5.1.1 raring-proposed)
  • Revision ID: zulcss@ubuntu.com-20130123183931-0b7f45nda0j7g52s
* New upstream release for the Ubuntu Cloud Archive.
* New upstream release.
* New upstream release.
* debian/control: Add python-requests as a build dep
* debian/control: Add python-testtools and python-fixtures as a build dep.
* debian/control: add python-setuptools-git dependency
* debian/copyright: Removed remaining dh boilerplate template.

Show diffs side-by-side

added added

removed removed

Lines of Context:
124
124
def from_response(response, body):
125
125
    """
126
126
    Return an instance of an ClientException or subclass
127
 
    based on an httplib2 response.
 
127
    based on an requests response.
128
128
 
129
129
    Usage::
130
130
 
131
 
        resp, body = http.request(...)
132
 
        if resp.status != 200:
133
 
            raise exception_from_response(resp, body)
 
131
        resp, body = requests.request(...)
 
132
        if resp.status_code != 200:
 
133
            raise exception_from_response(resp, rest.text)
134
134
    """
135
 
    cls = _code_map.get(response.status, ClientException)
136
 
    request_id = response.get('x-compute-request-id')
 
135
    cls = _code_map.get(response.status_code, ClientException)
 
136
    if response.headers:
 
137
        request_id = response.headers.get('x-compute-request-id')
 
138
    else:
 
139
        request_id = None
137
140
    if body:
138
141
        message = "n/a"
139
142
        details = "n/a"
141
144
            error = body[body.keys()[0]]
142
145
            message = error.get('message', None)
143
146
            details = error.get('details', None)
144
 
        return cls(code=response.status, message=message, details=details,
 
147
        return cls(code=response.status_code, message=message, details=details,
145
148
                   request_id=request_id)
146
149
    else:
147
 
        return cls(code=response.status, request_id=request_id)
 
150
        return cls(code=response.status_code, request_id=request_id)