)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"d7d05db54a22a5397b1f0bbabd9a73eced29385d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"adding conversion from string to ISOTIME"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In Glance API V2, currently, the value of \"change-sinces\" is\u0027nt"},{"line_number":10,"context_line":"converted from string to ISOTIME."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"As a result, Attribute Error raises in \"_make_conditions_from_filters\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUX%2F%2FfEw%3D","line":9,"updated":"2014-02-12 21:07:55.000000000","message":"typo: isn\u0027t and\n\"changes-since\"","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"0ecf45b5edbd67bf5fb5e6c951346027232a1040","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"adding conversion from string to ISOTIME"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In Glance API V2, currently, the value of \"change-sinces\" is\u0027nt"},{"line_number":10,"context_line":"converted from string to ISOTIME."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"As a result, Attribute Error raises in \"_make_conditions_from_filters\""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUX%2F%2FEO0%3D","line":9,"in_reply_to":"AAAAUX%2F%2FfEw%3D","updated":"2014-02-17 10:48:59.000000000","message":"Done","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"}],"glance/api/v2/images.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"d79f71dda3200a8bc59f9d0a85978059aaf0dabd","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            try:"},{"line_number":524,"context_line":"                filters[\u0027changes-since\u0027] \u003d timeutils.parse_isotime(isotime)"},{"line_number":525,"context_line":"            except ValueError:"},{"line_number":526,"context_line":"                raise exc.HTTPBadRequest(_(\"Unrecognized changes-since value\"))"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        return filters"},{"line_number":529,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2BL%2B0%3D","line":526,"updated":"2014-01-29 09:49:16.000000000","message":"1. I prefer add a log, just like line #517.\n\n2. IMO It will be if we contains invalid changes-since value in the 400 response body.","commit_id":"8b50a4d1ae1c8ba9f3066a78d6e8853fe38fd05c"},{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"9a5a484202c84d30e69d6b8f5732ad1d8a2b6bb3","unresolved":false,"context_lines":[{"line_number":523,"context_line":"            try:"},{"line_number":524,"context_line":"                filters[\u0027changes-since\u0027] \u003d timeutils.parse_isotime(isotime)"},{"line_number":525,"context_line":"            except ValueError:"},{"line_number":526,"context_line":"                raise exc.HTTPBadRequest(_(\"Unrecognized changes-since value\"))"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        return filters"},{"line_number":529,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2BEsg%3D","line":526,"in_reply_to":"AAAAUH%2F%2BL%2B0%3D","updated":"2014-01-30 12:50:51.000000000","message":"@Zhi\n\nMany thanks.\n\nAbout 2, There is my coding miss(copy-paste problem). \n  * error    : \"exc.HTTPBadRequest\"  \n  * correct: \"webob.exc.HTTPBadRequest\"  \n\nBecause \"webob\"  lacked, another error(NameError) raised.","commit_id":"8b50a4d1ae1c8ba9f3066a78d6e8853fe38fd05c"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"d7d05db54a22a5397b1f0bbabd9a73eced29385d","unresolved":false,"context_lines":[{"line_number":520,"context_line":"                filters[\u0027changes-since\u0027] \u003d timeutils.parse_isotime("},{"line_number":521,"context_line":"                    changes_since)"},{"line_number":522,"context_line":"            except ValueError:"},{"line_number":523,"context_line":"                msg \u003d _(\u0027Unrecognized changes-since value: %s\u0027) % \\"},{"line_number":524,"context_line":"                    changes_since"},{"line_number":525,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":526,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FfDc%3D","line":523,"updated":"2014-02-12 21:07:55.000000000","message":"nit: msg \u003d (_(\u0027Unrecognized changes-since value: %s\u0027) % changes_since)","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"0ecf45b5edbd67bf5fb5e6c951346027232a1040","unresolved":false,"context_lines":[{"line_number":520,"context_line":"                filters[\u0027changes-since\u0027] \u003d timeutils.parse_isotime("},{"line_number":521,"context_line":"                    changes_since)"},{"line_number":522,"context_line":"            except ValueError:"},{"line_number":523,"context_line":"                msg \u003d _(\u0027Unrecognized changes-since value: %s\u0027) % \\"},{"line_number":524,"context_line":"                    changes_since"},{"line_number":525,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":526,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FEOw%3D","line":523,"in_reply_to":"AAAAUX%2F%2FfDc%3D","updated":"2014-02-17 10:48:59.000000000","message":"Done","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"}],"glance/tests/functional/v2/test_images.py":[{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"d7d05db54a22a5397b1f0bbabd9a73eced29385d","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        self.assertEqual(1, len(images))"},{"line_number":202,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # Unrecoginzed \"changes-since\" value"},{"line_number":205,"context_line":"        path \u003d self._url(\u0027/v2/images?changes-since\u003daaa\u0027)"},{"line_number":206,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":207,"context_line":"        self.assertEqual(400, response.status_code)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FfCg%3D","line":204,"updated":"2014-02-12 21:07:55.000000000","message":"typo: Unrecognized","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"0ecf45b5edbd67bf5fb5e6c951346027232a1040","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        self.assertEqual(1, len(images))"},{"line_number":202,"context_line":"        self.assertEqual(images[0][\u0027id\u0027], image_id)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        # Unrecoginzed \"changes-since\" value"},{"line_number":205,"context_line":"        path \u003d self._url(\u0027/v2/images?changes-since\u003daaa\u0027)"},{"line_number":206,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":207,"context_line":"        self.assertEqual(400, response.status_code)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FEOs%3D","line":204,"in_reply_to":"AAAAUX%2F%2FfCg%3D","updated":"2014-02-17 10:48:59.000000000","message":"Done","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"},{"author":{"_account_id":8759,"name":"Arnaud Legendre","email":"arnaudleg@gmail.com","username":"arnaud"},"change_message_id":"d7d05db54a22a5397b1f0bbabd9a73eced29385d","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":207,"context_line":"        self.assertEqual(400, response.status_code)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Recoginized \"changes-since\" value"},{"line_number":210,"context_line":"        path \u003d self._url(\u0027/v2/images?changes-since\u003d20001007T10:10:10\u0027)"},{"line_number":211,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":212,"context_line":"        self.assertEqual(200, response.status_code)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FfCs%3D","line":209,"updated":"2014-02-12 21:07:55.000000000","message":"typo: Recognized","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"},{"author":{"_account_id":9533,"name":"Eiichi Aikawa","email":"aikawa@mxk.nes.nec.co.jp","username":"EiichiAikawa"},"change_message_id":"0ecf45b5edbd67bf5fb5e6c951346027232a1040","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":207,"context_line":"        self.assertEqual(400, response.status_code)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Recoginized \"changes-since\" value"},{"line_number":210,"context_line":"        path \u003d self._url(\u0027/v2/images?changes-since\u003d20001007T10:10:10\u0027)"},{"line_number":211,"context_line":"        response \u003d requests.get(path, headers\u003dself._headers())"},{"line_number":212,"context_line":"        self.assertEqual(200, response.status_code)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2FEOo%3D","line":209,"in_reply_to":"AAAAUX%2F%2FfCs%3D","updated":"2014-02-17 10:48:59.000000000","message":"Done","commit_id":"6a271477bfb52734ee66dd6379f068e82c25b453"}]}
