)]}'
{"tempest_lib/common/rest_client.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6dccda5a2a22625e773566aae101151b556ad679","unresolved":false,"context_lines":[{"line_number":444,"context_line":"            resp_body \u003d json.loads(resp_body.decode(\u0027utf8\u0027))"},{"line_number":445,"context_line":"        else:"},{"line_number":446,"context_line":"            resp_body \u003d json.loads(resp_body)"},{"line_number":447,"context_line":"        return resp_body"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def _parse_resp(self, body):"},{"line_number":450,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_f91e3b62","line":447,"updated":"2015-07-13 23:54:44.000000000","message":"nit: I prefer\n\n if isinstance(resp_body, bytes):\n     resp_body \u003d resp_body.decode(\u0027utf8\u0027)\n return json.loads(resp_body)\n\nbut I don\u0027t think it is worth to respin.\nso LGTM","commit_id":"71bc71a4d24bf1f7c46993e25c225bbbeace7ce3"}],"tempest_lib/services/identity/v2/token_client.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"4c0779f4179191951aa6abce32ee3338f024c2fd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self._log_request(method, url, resp)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        if resp.status in [401, 403]:"},{"line_number":88,"context_line":"            resp_body \u003d json.loads(resp_body)"},{"line_number":89,"context_line":"            raise exceptions.Unauthorized(resp_body[\u0027error\u0027][\u0027message\u0027])"},{"line_number":90,"context_line":"        elif resp.status not in [200, 201]:"},{"line_number":91,"context_line":"            raise exceptions.IdentityError("}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_9953a8e2","line":88,"updated":"2015-07-10 17:37:32.000000000","message":"This might cause issues as well","commit_id":"e0b49c2c5d0190a26c68e9667899198198e7a0d4"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"82306836c93125d103f2fda1d036ebb7bdd33807","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self._log_request(method, url, resp)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        if resp.status in [401, 403]:"},{"line_number":88,"context_line":"            resp_body \u003d json.loads(resp_body)"},{"line_number":89,"context_line":"            raise exceptions.Unauthorized(resp_body[\u0027error\u0027][\u0027message\u0027])"},{"line_number":90,"context_line":"        elif resp.status not in [200, 201]:"},{"line_number":91,"context_line":"            raise exceptions.IdentityError("}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_880830db","line":88,"in_reply_to":"ba3cc151_9953a8e2","updated":"2015-07-10 19:34:10.000000000","message":"Oh, yeah that\u0027s a good call, I\u0027ll fix it on the next respin.","commit_id":"e0b49c2c5d0190a26c68e9667899198198e7a0d4"}]}
