)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a167e14422249128d9795448c0a271e69021ce15","unresolved":false,"context_lines":[{"line_number":9,"context_line":"microversion headers should be of the form:"},{"line_number":10,"context_line":"OpenStack-API-Version: [SERVICE_TYPE] 2.114"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"i.e OpenStack-API-Version: Cinder 3.22"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Two extra headers are always returned in the response::"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7af24918_f7c41060","line":12,"updated":"2016-03-02 18:31:51.000000000","message":"Should this be \"volume\" instead of \"Cinder\"?","commit_id":"fca7cba1a2e443048beed986c40a170ff86298e0"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a167e14422249128d9795448c0a271e69021ce15","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"i.e OpenStack-API-Version: Cinder 3.22"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Two extra headers are always returned in the response::"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"    OpenStack-API-Version: [SERVICE_TYPE]_version_number"},{"line_number":17,"context_line":"    Vary: OpenStack-API-Version"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7af24918_37a5d8b4","line":14,"updated":"2016-03-02 18:31:51.000000000","message":"extra \":\"","commit_id":"fca7cba1a2e443048beed986c40a170ff86298e0"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a167e14422249128d9795448c0a271e69021ce15","unresolved":false,"context_lines":[{"line_number":23,"context_line":"  the value of the header to the values of all matching headers,"},{"line_number":24,"context_line":"  joined by a \u0027,\u0027 (comma). For example ``compute 2.11,identity"},{"line_number":25,"context_line":"  2.114``."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I658e54966c390b41e3b551dd9827606c2e013511"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7af24918_f7eed0b2","line":26,"updated":"2016-03-02 18:31:51.000000000","message":"Could be nice to metion https://review.openstack.org/#/c/243414 for reference in for people who aren\u0027t familiar with the new guidelines","commit_id":"fca7cba1a2e443048beed986c40a170ff86298e0"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"67c39b6ce0579b1ed78332e29d62e35b28441b7c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"support new HTTP microversion header"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to API working group guidelines:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/243414"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"microversion headers should be of the form:"},{"line_number":13,"context_line":"OpenStack-API-Version: [SERVICE_TYPE] 2.114"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_9da11197","line":10,"updated":"2016-03-03 23:20:40.000000000","message":"Should this patch have a Depends-On on the api guideline patch?  The guideline patch is not merged yet.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"a8aa8d74547d004a8d988c4ba0cf3e96037fea76","unresolved":false,"context_lines":[{"line_number":7,"context_line":"support new HTTP microversion header"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to API working group guidelines:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/243414"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"microversion headers should be of the form:"},{"line_number":13,"context_line":"OpenStack-API-Version: [SERVICE_TYPE] 2.114"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_f2de5e3c","line":10,"in_reply_to":"7af24918_18e7b3ac","updated":"2016-03-04 14:48:25.000000000","message":"I\u0027m fine without Depends-On as long as we know the API guideline patch won\u0027t be re-designed.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"e7252f8d4852f903826b73c382da6e01059c62a0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"support new HTTP microversion header"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to API working group guidelines:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/243414"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"microversion headers should be of the form:"},{"line_number":13,"context_line":"OpenStack-API-Version: [SERVICE_TYPE] 2.114"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_18e7b3ac","line":10,"in_reply_to":"7af24918_5bae582e","updated":"2016-03-04 13:18:12.000000000","message":"I don\u0027t think we need to make this one dependent on that one going in. My impression is it\u0027s mostly baked, so I doubt there will be much change to it. We\u0027re probably safer going ahead at this point than waiting and potentially hitting the hard freeze.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"57a6a1dbdf8d16a6cd9cdbbbc20b5b0413c5e855","unresolved":false,"context_lines":[{"line_number":7,"context_line":"support new HTTP microversion header"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to API working group guidelines:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/243414"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"microversion headers should be of the form:"},{"line_number":13,"context_line":"OpenStack-API-Version: [SERVICE_TYPE] 2.114"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_5bae582e","line":10,"in_reply_to":"7af24918_9d5c714c","updated":"2016-03-04 12:42:52.000000000","message":"Xing, I\u0027m holding off on this until I get feedback from Sean on whether we need this in Friday Mar4th (today) for soft string freeze.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ca88cbe4b5e278fc6f420375acaebb8b928e4725","unresolved":false,"context_lines":[{"line_number":7,"context_line":"support new HTTP microversion header"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to API working group guidelines:"},{"line_number":10,"context_line":"https://review.openstack.org/#/c/243414"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"microversion headers should be of the form:"},{"line_number":13,"context_line":"OpenStack-API-Version: [SERVICE_TYPE] 2.114"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7af24918_9d5c714c","line":10,"in_reply_to":"7af24918_9da11197","updated":"2016-03-03 23:38:45.000000000","message":"Good question. I\u0027m going to query the API-wg team to see when they think they\u0027ll merge. Here\u0027s a bad scenario:\nThey are sure they\u0027ll make this change, but aren\u0027t in enough of a hurry to make it in Mitaka. We don\u0027t ship with this change, and have to support 2 versions forever.\n\nSo, I\u0027ll find out what they think...but the discovery that there\u0027s a typo in the use of \"_\" in the response (it should not be there) makes me think this should depend on the merge.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"0510abe01718ca65a82a0bf74bbde9e3b038745a","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Two extra headers are always returned in the response:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    OpenStack-API-Version: [SERVICE_TYPE]_version_number"},{"line_number":20,"context_line":"    Vary: OpenStack-API-Version"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"note: Servers must be prepared to deal with multiple"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7af24918_5b42d5ae","line":19,"updated":"2016-03-04 13:38:40.000000000","message":"nit: middle _ can go","commit_id":"616341575260f61788834a685081b21e26a8928f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4bfa56ec6cc1e01a96bcf3f8ddd2fb149cd6cc96","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Two extra headers are always returned in the response:"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    OpenStack-API-Version: [SERVICE_TYPE]_version_number"},{"line_number":20,"context_line":"    Vary: OpenStack-API-Version"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"note: Servers must be prepared to deal with multiple"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7af24918_277526ca","line":19,"in_reply_to":"7af24918_5b42d5ae","updated":"2016-03-04 14:44:37.000000000","message":"+1\n\nShould be removed to avoid confusion.","commit_id":"616341575260f61788834a685081b21e26a8928f"}],"cinder/api/openstack/wsgi.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8e99a1a7a9370b94278c7a00247264d9ec2ece0e","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                if VOLUME_SERVICE in hdr:"},{"line_number":307,"context_line":"                    service, volume_version \u003d hdr.split()"},{"line_number":308,"context_line":"                    break"},{"line_number":309,"context_line":"                else:"},{"line_number":310,"context_line":"                    continue"},{"line_number":311,"context_line":"            if not volume_version:"},{"line_number":312,"context_line":"                raise exception.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_4055f5f7","line":309,"updated":"2016-03-03 16:16:54.000000000","message":"This else: continue is not necessary. No harm, but a bit redundant.\n\nCould also right this as:\n\nfor hdr in hdr_string_list:\n    if VOLUME_SERVICE in hdr:\n        service, volume_version \u003d hdr.split()\n        break\nelse:\n    raise exception.VersionNotFoundForAPIMethod()","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"57a6a1dbdf8d16a6cd9cdbbbc20b5b0413c5e855","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                if VOLUME_SERVICE in hdr:"},{"line_number":307,"context_line":"                    service, volume_version \u003d hdr.split()"},{"line_number":308,"context_line":"                    break"},{"line_number":309,"context_line":"                else:"},{"line_number":310,"context_line":"                    continue"},{"line_number":311,"context_line":"            if not volume_version:"},{"line_number":312,"context_line":"                raise exception.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_db9a6813","line":309,"in_reply_to":"7af24918_1d37c1ff","updated":"2016-03-04 12:42:52.000000000","message":"Done","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"f086f5e5cdf0780b2fafc815dc326896ce3fff57","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                if VOLUME_SERVICE in hdr:"},{"line_number":307,"context_line":"                    service, volume_version \u003d hdr.split()"},{"line_number":308,"context_line":"                    break"},{"line_number":309,"context_line":"                else:"},{"line_number":310,"context_line":"                    continue"},{"line_number":311,"context_line":"            if not volume_version:"},{"line_number":312,"context_line":"                raise exception.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_a67b2e7a","line":309,"in_reply_to":"7af24918_4055f5f7","updated":"2016-03-03 17:24:42.000000000","message":"You are right about the else: ...continue being redundant. I\u0027ll remove if I post another patchset.\n\nFor the second else: Yes, I forgot you can do that in python. I\u0027m not sure I like it, it\u0027s a bit confusing if you are not used to it. I think it makes the code less readable, but I can change that as well....","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"19f7bc23af0420f60e6f91de3e4496acb9e2ca29","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                if VOLUME_SERVICE in hdr:"},{"line_number":307,"context_line":"                    service, volume_version \u003d hdr.split()"},{"line_number":308,"context_line":"                    break"},{"line_number":309,"context_line":"                else:"},{"line_number":310,"context_line":"                    continue"},{"line_number":311,"context_line":"            if not volume_version:"},{"line_number":312,"context_line":"                raise exception.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_dae56d09","line":309,"in_reply_to":"7af24918_a67b2e7a","updated":"2016-03-03 18:34:48.000000000","message":"Yeah, probably just getting rid of the continue bit will be the most readable.\n\nThe for/else is standard python, but I think most of us probably don\u0027t come from a strong python background, so I agree it could be confusing.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ca88cbe4b5e278fc6f420375acaebb8b928e4725","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                if VOLUME_SERVICE in hdr:"},{"line_number":307,"context_line":"                    service, volume_version \u003d hdr.split()"},{"line_number":308,"context_line":"                    break"},{"line_number":309,"context_line":"                else:"},{"line_number":310,"context_line":"                    continue"},{"line_number":311,"context_line":"            if not volume_version:"},{"line_number":312,"context_line":"                raise exception.VersionNotFoundForAPIMethod("}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_1d37c1ff","line":309,"in_reply_to":"7af24918_dae56d09","updated":"2016-03-03 23:38:45.000000000","message":"OK, I\u0027ll change the first, and not the second.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"67c39b6ce0579b1ed78332e29d62e35b28441b7c","unresolved":false,"context_lines":[{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"            if not request.api_version_request.is_null():"},{"line_number":1174,"context_line":"                response.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1175,"context_line":"                    VOLUME_SERVICE + \u0027_\u0027 +"},{"line_number":1176,"context_line":"                    request.api_version_request.get_string())"},{"line_number":1177,"context_line":"                response.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_9de5910a","line":1175,"updated":"2016-03-03 23:20:40.000000000","message":"Should this \"_\" be here?  I see a question in the spec review asking about this.\n\nAlso \"_\" is not in your doc:  https://review.openstack.org/#/c/286901/4/doc/source/devref/api_microversion_dev.rst","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"57a6a1dbdf8d16a6cd9cdbbbc20b5b0413c5e855","unresolved":false,"context_lines":[{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"            if not request.api_version_request.is_null():"},{"line_number":1174,"context_line":"                response.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1175,"context_line":"                    VOLUME_SERVICE + \u0027_\u0027 +"},{"line_number":1176,"context_line":"                    request.api_version_request.get_string())"},{"line_number":1177,"context_line":"                response.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_3b9eec06","line":1175,"in_reply_to":"7af24918_48598534","updated":"2016-03-04 12:42:52.000000000","message":"Done","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2e0d7e0120f9f25b45a1dc73a6e61fd68e7ce1b6","unresolved":false,"context_lines":[{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"            if not request.api_version_request.is_null():"},{"line_number":1174,"context_line":"                response.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1175,"context_line":"                    VOLUME_SERVICE + \u0027_\u0027 +"},{"line_number":1176,"context_line":"                    request.api_version_request.get_string())"},{"line_number":1177,"context_line":"                response.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_c82e358b","line":1175,"in_reply_to":"7af24918_9de5910a","updated":"2016-03-03 23:35:15.000000000","message":"Scott, this was a typo in the guideline.. could you please fix it when the guideline is fixed? \n\n\n\n\u003cgouthamr\u003e cdent: ping\n[18:30:38] \u003ccdent\u003e gouthamr: hi\n[18:30:45] \u003cgouthamr\u003e hi cdent.. quick question\n[18:30:57] \u003cgouthamr\u003e cdent: https://review.openstack.org/#/c/243414/9/guidelines/microversion_specification.rst\n[18:31:15] \u003cgouthamr\u003e cdent: is the \"_\" in the response expected? as alex_xu pointed out.. \n[18:31:49] \u003ccdent\u003e no, that\u0027s a mistake that needs to be fixed, I hadn\u0027t had a chance to do it yet\n[18:31:55] \u003ccdent\u003e will do so now","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ca88cbe4b5e278fc6f420375acaebb8b928e4725","unresolved":false,"context_lines":[{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"            if not request.api_version_request.is_null():"},{"line_number":1174,"context_line":"                response.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1175,"context_line":"                    VOLUME_SERVICE + \u0027_\u0027 +"},{"line_number":1176,"context_line":"                    request.api_version_request.get_string())"},{"line_number":1177,"context_line":"                response.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_48598534","line":1175,"in_reply_to":"7af24918_9de5910a","updated":"2016-03-03 23:38:45.000000000","message":"Thanks. I saw that in the spec review, and Goutham asked in IRC to clarify. It should not be there. I\u0027ll fix.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ca88cbe4b5e278fc6f420375acaebb8b928e4725","unresolved":false,"context_lines":[{"line_number":1172,"context_line":""},{"line_number":1173,"context_line":"            if not request.api_version_request.is_null():"},{"line_number":1174,"context_line":"                response.headers[API_VERSION_REQUEST_HEADER] \u003d ("},{"line_number":1175,"context_line":"                    VOLUME_SERVICE + \u0027_\u0027 +"},{"line_number":1176,"context_line":"                    request.api_version_request.get_string())"},{"line_number":1177,"context_line":"                response.headers[\u0027Vary\u0027] \u003d API_VERSION_REQUEST_HEADER"},{"line_number":1178,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_28851959","line":1175,"in_reply_to":"7af24918_c82e358b","updated":"2016-03-03 23:38:45.000000000","message":"Thanks for looking into this.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"}],"cinder/tests/unit/api/test_versions.py":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a167e14422249128d9795448c0a271e69021ce15","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        ids \u003d [v[\u0027id\u0027] for v in version_list]"},{"line_number":99,"context_line":"        self.assertEqual({\u0027v1.0\u0027}, set(ids))"},{"line_number":100,"context_line":"        self.assertEqual(VOLUME_SERVICE_RESP + \u00271.0\u0027,"},{"line_number":101,"context_line":"                         response.headers[VERSION_HEADER_NAME])"},{"line_number":102,"context_line":"        self.assertEqual(VOLUME_SERVICE_RESP + version,"},{"line_number":103,"context_line":"                         response.headers[VERSION_HEADER_NAME])"},{"line_number":104,"context_line":"        self.assertEqual(VERSION_HEADER_NAME, response.headers[\u0027Vary\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_77a3e04f","line":101,"updated":"2016-03-02 18:31:51.000000000","message":"Unrelated, but is there any reason to use ddt here if we\u0027re hard coding the asserts to expect 1.0?","commit_id":"fca7cba1a2e443048beed986c40a170ff86298e0"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a167e14422249128d9795448c0a271e69021ce15","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/\u0027, base_url\u003d\u0027http://localhost/v2\u0027)"},{"line_number":112,"context_line":"        req.method \u003d \u0027GET\u0027"},{"line_number":113,"context_line":"        req.content_type \u003d \u0027application/json\u0027"},{"line_number":114,"context_line":"        req.headers \u003d {VERSION_HEADER_NAME: VOLUME_SERVICE + version}"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        response \u003d req.get_response(router.APIRouter())"},{"line_number":117,"context_line":"        self.assertEqual(200, response.status_int)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_4203800d","line":114,"updated":"2016-03-02 18:31:51.000000000","message":"Could be nice to create some helper for setting up req with method\u003d\u0027GET\u0027, content_type\u003d\u0027application/json\u0027 and headers \u003d {VERSION_HEADER_NAME: VOLUME_SERVICE + version} since we\u0027re repeating this a lot.  Most useful if we think the headers could change format again.","commit_id":"fca7cba1a2e443048beed986c40a170ff86298e0"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"a167e14422249128d9795448c0a271e69021ce15","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        ids \u003d [v[\u0027id\u0027] for v in version_list]"},{"line_number":122,"context_line":"        self.assertEqual({\u0027v2.0\u0027}, set(ids))"},{"line_number":123,"context_line":"        self.assertEqual(VOLUME_SERVICE_RESP + \u00272.0\u0027,"},{"line_number":124,"context_line":"                         response.headers[VERSION_HEADER_NAME])"},{"line_number":125,"context_line":"        self.assertEqual(VOLUME_SERVICE_RESP + version,"},{"line_number":126,"context_line":"                         response.headers[VERSION_HEADER_NAME])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7af24918_e23baccf","line":123,"updated":"2016-03-02 18:31:51.000000000","message":"Also helper here may help reduce some code, that just takes expected version and response and checks the headers.","commit_id":"fca7cba1a2e443048beed986c40a170ff86298e0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"85447aa65e08ac4015ff608170fd574955f07edb","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"VERSION_HEADER_NAME \u003d \u0027OpenStack-API-Version\u0027"},{"line_number":30,"context_line":"VOLUME_SERVICE \u003d \u0027volume \u0027"},{"line_number":31,"context_line":"VOLUME_SERVICE_RESP \u003d \u0027volume_\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_08649db6","line":31,"updated":"2016-03-03 23:45:04.000000000","message":"this will need to change too","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"57a6a1dbdf8d16a6cd9cdbbbc20b5b0413c5e855","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"VERSION_HEADER_NAME \u003d \u0027OpenStack-API-Version\u0027"},{"line_number":30,"context_line":"VOLUME_SERVICE \u003d \u0027volume \u0027"},{"line_number":31,"context_line":"VOLUME_SERVICE_RESP \u003d \u0027volume_\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":4,"id":"7af24918_fb9764e9","line":31,"in_reply_to":"7af24918_08649db6","updated":"2016-03-04 12:42:52.000000000","message":"Done","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"}],"doc/source/devref/api_microversion_dev.rst":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"67c39b6ce0579b1ed78332e29d62e35b28441b7c","unresolved":false,"context_lines":[{"line_number":300,"context_line":"header, for example::"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    req \u003d fakes.HTTPRequest.blank(\u0027/testable/url/endpoint\u0027)"},{"line_number":303,"context_line":"    req.headers \u003d {\u0027OpenStack-API-Version\u0027: \u0027volume 3.2\u0027}"},{"line_number":304,"context_line":"    req.api_version_request \u003d api_version.APIVersionRequest(\u00273.6\u0027)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    controller \u003d controller.TestableController()"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7af24918_dd99d97a","line":303,"updated":"2016-03-03 23:20:40.000000000","message":"You don\u0027t have \"_\" between \"volume\" and \"3.2\", but you have it in the code.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"ca88cbe4b5e278fc6f420375acaebb8b928e4725","unresolved":false,"context_lines":[{"line_number":300,"context_line":"header, for example::"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"    req \u003d fakes.HTTPRequest.blank(\u0027/testable/url/endpoint\u0027)"},{"line_number":303,"context_line":"    req.headers \u003d {\u0027OpenStack-API-Version\u0027: \u0027volume 3.2\u0027}"},{"line_number":304,"context_line":"    req.api_version_request \u003d api_version.APIVersionRequest(\u00273.6\u0027)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    controller \u003d controller.TestableController()"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7af24918_8838add4","line":303,"in_reply_to":"7af24918_dd99d97a","updated":"2016-03-03 23:38:45.000000000","message":"Thanks. Looks like this (which was a typo/mistake) is not the proper way to do it.","commit_id":"293d575210a331812b21cc685f089e3eddf2a5a1"}]}
