)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17207,"name":"Atsushi SAKAI","email":"sakaia@jp.fujitsu.com","username":"sakaia"},"change_message_id":"f2a1ca08a4f5f99ed4bae069494dbe72f9cce872","unresolved":false,"context_lines":[{"line_number":15,"context_line":"The response header should consistent with each other."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ie99a52f63cc28d32b27e5462bf42cc07dda45a3e"},{"line_number":18,"context_line":"Colses-Bug: #1574459"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_9185e608","line":18,"updated":"2016-04-25 11:13:04.000000000","message":"Closes-Bug:","commit_id":"d3b2c4d64cac6c922f8bd2a8eab739d49d521bdc"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"cb436085e259c9de12c265f8fd5f672c85683a79","unresolved":false,"context_lines":[{"line_number":15,"context_line":"The response header should consistent with each other."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: Ie99a52f63cc28d32b27e5462bf42cc07dda45a3e"},{"line_number":18,"context_line":"Colses-Bug: #1574459"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1a122d0e_d490ec50","line":18,"in_reply_to":"1a122d0e_9185e608","updated":"2016-04-25 11:40:54.000000000","message":"Nice catch, thanks.","commit_id":"d3b2c4d64cac6c922f8bd2a8eab739d49d521bdc"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"2810ad58954668c174406fec27fd5be62d57431e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Provide consistency to \"Openstack-Api-Version\" header"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When cinder successfully answered the http request, it returns http header:"},{"line_number":10,"context_line":"Openstack-Api-Version: volume X.Y"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"When exception happens in cinder, it returns such response header:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"dab17558_4a9c37c0","line":9,"range":{"start_line":9,"start_character":67,"end_line":9,"end_character":75},"updated":"2016-05-15 23:56:57.000000000","message":"Technically this should be wrapped at 72 characters.","commit_id":"4b07c88664417aa014e296b66b0e527e40dcbdcd"}],"cinder/api/openstack/wsgi.py":[{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"995558332673d897bc843232b0f630bde33d0152","unresolved":false,"context_lines":[{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"        if not req.api_version_request.is_null():"},{"line_number":1321,"context_line":"            self.wrapped_exc.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1322,"context_line":"                VOLUME_SERVICE + \u0027 \u0027 + req.api_version_request.get_string())"},{"line_number":1323,"context_line":"            self.wrapped_exc.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":"        content_type \u003d req.best_match_content_type()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_174d1d3e","line":1322,"updated":"2016-04-28 19:53:28.000000000","message":"The _process_stack method, in this file, also checks to see if the version matches a legacy version:\nif (not request.api_version_request.is_null() and\n    not self._is_legacy_endpoint(request)):\n\nIsn\u0027t it also inconsistent that we will add \u0027OpenStack-API-Version\u0027 here but don\u0027t do the same in _process_stack for versions 1.0.x and 2.0.x?","commit_id":"050f659ea2d9335f2e05fd128b8049f7c756b192"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"fc92071beb9268f42b7944b98cb120f6611e3529","unresolved":false,"context_lines":[{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"        if not req.api_version_request.is_null():"},{"line_number":1321,"context_line":"            self.wrapped_exc.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1322,"context_line":"                VOLUME_SERVICE + \u0027 \u0027 + req.api_version_request.get_string())"},{"line_number":1323,"context_line":"            self.wrapped_exc.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1324,"context_line":""},{"line_number":1325,"context_line":"        content_type \u003d req.best_match_content_type()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_3559ecfd","line":1322,"in_reply_to":"1a122d0e_174d1d3e","updated":"2016-04-29 01:40:12.000000000","message":"Yes, your are right!\nThanks for reminding me of this.\nThis could be a wrong behavior just like this[1].\nSo we need to add this check: _is_legacy_endpoint\n\n[1]: http://paste.openstack.org/show/495708/","commit_id":"050f659ea2d9335f2e05fd128b8049f7c756b192"},{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"4b9bf85219a7dedfbff393ceed366f2e9c59c8d1","unresolved":false,"context_lines":[{"line_number":1006,"context_line":"            return Fault(webob.exc.HTTPNotFound())"},{"line_number":1007,"context_line":""},{"line_number":1008,"context_line":""},{"line_number":1009,"context_line":"def _is_legacy_endpoint(request):"},{"line_number":1010,"context_line":"    version_str \u003d request.api_version_request.get_string()"},{"line_number":1011,"context_line":"    return \u00271.0\u0027 in version_str or \u00272.0\u0027 in version_str"},{"line_number":1012,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a122d0e_0a7d9d6c","line":1009,"range":{"start_line":1009,"start_character":0,"end_line":1009,"end_character":33},"updated":"2016-04-29 15:11:20.000000000","message":"Please move this method to be next to _set_request_id_header. A bit cleaner to group the non-public functions together.","commit_id":"e294b2708cc452eec8a93112b6b95a3f176481a8"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"263669aec019c0fabb6c6ff37bc35f7d9ea06761","unresolved":false,"context_lines":[{"line_number":1337,"context_line":"        return self.wrapped_exc.__str__()"},{"line_number":1338,"context_line":""},{"line_number":1339,"context_line":""},{"line_number":1340,"context_line":"def _set_request_id_header(req, headers):"},{"line_number":1341,"context_line":"    context \u003d req.environ.get(\u0027cinder.context\u0027)"},{"line_number":1342,"context_line":"    if context:"},{"line_number":1343,"context_line":"        headers[\u0027x-compute-request-id\u0027] \u003d context.request_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_e583bf01","line":1340,"range":{"start_line":1340,"start_character":0,"end_line":1340,"end_character":3},"updated":"2016-06-16 17:01:02.000000000","message":"Would be easier to track things if we moved these up in the file at some point rather than burrying them between classes down here.","commit_id":"4b07c88664417aa014e296b66b0e527e40dcbdcd"}],"cinder/tests/unit/api/test_versions.py":[{"author":{"_account_id":16212,"name":"Chuck Fouts","email":"fchuck@netapp.com","username":"cFouts"},"change_message_id":"995558332673d897bc843232b0f630bde33d0152","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            self.assertEqual(400, response.status_int)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_versions_response_fault(self):"},{"line_number":143,"context_line":"        req \u003d self.build_request(header_version\u003d\u00273.0\u0027)"},{"line_number":144,"context_line":"        req.api_version_request \u003d api_version_request.APIVersionRequest(\"3.0\")"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_bff5e083","line":142,"range":{"start_line":142,"start_character":0,"end_line":142,"end_character":4},"updated":"2016-04-28 19:53:28.000000000","message":"For consistency shouldn\u0027t this also test for versions prior to 3.0 as is done in other methods?","commit_id":"050f659ea2d9335f2e05fd128b8049f7c756b192"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"fc92071beb9268f42b7944b98cb120f6611e3529","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"            self.assertEqual(400, response.status_int)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def test_versions_response_fault(self):"},{"line_number":143,"context_line":"        req \u003d self.build_request(header_version\u003d\u00273.0\u0027)"},{"line_number":144,"context_line":"        req.api_version_request \u003d api_version_request.APIVersionRequest(\"3.0\")"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_95744068","line":142,"range":{"start_line":142,"start_character":0,"end_line":142,"end_character":4},"in_reply_to":"1a122d0e_bff5e083","updated":"2016-04-29 01:40:12.000000000","message":"Nice suggestion!","commit_id":"050f659ea2d9335f2e05fd128b8049f7c756b192"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"6f010aeed873caeaf37d0673298bfa6e3a31825d","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        if version \u003d\u003d \u00273.0\u0027:"},{"line_number":153,"context_line":"            self.check_response(response, \u00273.0\u0027)"},{"line_number":154,"context_line":"        else:"},{"line_number":155,"context_line":"            self.assertIsNone(response.headers.get(VERSION_HEADER_NAME))"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def test_versions_version_not_found(self):"},{"line_number":158,"context_line":"        api_version_request_4_0 \u003d api_version_request.APIVersionRequest(\u00274.0\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_dcfcde40","line":155,"updated":"2016-05-06 12:20:26.000000000","message":"-1: This should be\n\n self.assertNotIn(VERSION_HEADER_NAME, response.headers)","commit_id":"8e66ef7b28f3f69c287592570cf6e2bcaa591589"}]}
