)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c73a4796cad444e9543beb169690abcb5910bf5d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch marks that all the actions for images API only work with request"},{"line_number":10,"context_line":"under 2.31 microversion."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch doesn\u0027t bump the max api version, due to the patch separation."},{"line_number":13,"context_line":"The max api version will bump in the last patch."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partially implements blueprint deprecate-api-proxies"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_bf128a60","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":48},"updated":"2016-06-22 13:17:26.000000000","message":"I don\u0027t think we can land these one at a time, they all need to go together, else you could land this, then we could land an unrelated change that takes microversion 2.31, and then eventually we bump the max to like 2.34, which would make this wrong.","commit_id":"faa9658d41a2bd68c650a25b7788c5b1a90bf4e0"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"347395b0f8cde5d15fbf059cedb0a3e0c805764d","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# All the proxy APIs which related network, images and baremetal"},{"line_number":98,"context_line":"# were deprecated after this version."},{"line_number":99,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.33\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_705561c4","line":99,"range":{"start_line":99,"start_character":33,"end_line":99,"end_character":37},"updated":"2016-07-07 05:29:00.000000000","message":"I think this is dangerous by specifying actual microversion on the multiple patches because we can imagine the other microversion patch can be merged in the middle of these patches. How about defining None or something in this patch and changing here to actual microversion on the final patch?","commit_id":"d9e8e9eb0e58d18971dbb441c1634c5d34fc0561"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ee6a08961bb815d011060a2af03eed94143c0b92","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# All the proxy APIs which related network, images and baremetal"},{"line_number":98,"context_line":"# were deprecated after this version."},{"line_number":99,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.33\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_d0dff537","line":99,"range":{"start_line":99,"start_character":33,"end_line":99,"end_character":37},"in_reply_to":"1aa78d24_705561c4","updated":"2016-07-07 05:35:31.000000000","message":"Yea, I also thing about this way yesterday. Compare to John\u0027s propose that we squash all the patches into single one after people reviewed, actually I think both way are good for me.","commit_id":"d9e8e9eb0e58d18971dbb441c1634c5d34fc0561"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"be0c13e02a4714b416fe47ec9d125923841bd895","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# All the proxy APIs which related network, images and baremetal"},{"line_number":98,"context_line":"# were deprecated after this version."},{"line_number":99,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.33\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_fce61aae","line":99,"range":{"start_line":99,"start_character":33,"end_line":99,"end_character":37},"in_reply_to":"1aa78d24_d0dff537","updated":"2016-07-07 20:15:38.000000000","message":"When I\u0027ve started working on a patch that needs a microversion bump and which I know won\u0027t merge soon, I use \u00272.99\u0027 as the placeholder. Once it gets closer to being ready, it\u0027s much easier to find all 2.99s and replace them with the next available microversion number.","commit_id":"d9e8e9eb0e58d18971dbb441c1634c5d34fc0561"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"684d04030fe29f6776855f079e45983f733b8839","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# All the proxy APIs which related network, images and baremetal"},{"line_number":98,"context_line":"# were deprecated after this version."},{"line_number":99,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.33\u0027"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_feeba076","line":99,"range":{"start_line":99,"start_character":33,"end_line":99,"end_character":37},"in_reply_to":"1aa78d24_fce61aae","updated":"2016-07-08 05:10:39.000000000","message":"I prefer Ed\u0027s idea here. We can use 2.99 temporary and will change it to the maximum miroversion at the final patch.\nThis is a workaround only for unit tests and 2.99 is not useful for REST API service because nova-api denies the bigger microversion over the above _MAX_API_VERSION.\n\nSo the idea seems good for me, thanks Ed.","commit_id":"d9e8e9eb0e58d18971dbb441c1634c5d34fc0561"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"499ade9a6eebe5e5e183a3780b8ea4ab52ce59ab","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# All the proxy APIs which related network, images and baremetal"},{"line_number":103,"context_line":"# were deprecated after this version."},{"line_number":104,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.35\u0027"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_4fdb6a4f","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":29},"updated":"2016-07-21 00:58:40.000000000","message":"do we still need this or go with 2.36 directly in _MAX_API_VERSION ?","commit_id":"ea0befc7ca946c1c5b8819274369107fe3a53ae9"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"695a629a8f20f5315c78eb3e113149a9300dfaae","unresolved":false,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"# All the proxy APIs which related network, images and baremetal"},{"line_number":103,"context_line":"# were deprecated after this version."},{"line_number":104,"context_line":"MAX_PROXY_API_SUPPORT_VERSION \u003d \u00272.35\u0027"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"# NOTE(cyeoh): min and max versions declared as functions so we can"}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_afa82678","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":29},"in_reply_to":"dada55a8_4fdb6a4f","updated":"2016-07-21 01:08:58.000000000","message":"oh. got it.","commit_id":"ea0befc7ca946c1c5b8819274369107fe3a53ae9"}],"nova/api/openstack/compute/images.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"08311d3a36820cd512acd97c61b64d8c23891b47","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dexplanation)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_PROXY_API_SUPPORT_VERSION)"},{"line_number":120,"context_line":"    @extensions.expected_errors(400)"},{"line_number":121,"context_line":"    def index(self, req):"},{"line_number":122,"context_line":"        \"\"\"Return an index listing of images available to the request."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_e1260a67","line":120,"range":{"start_line":120,"start_character":32,"end_line":120,"end_character":35},"updated":"2016-07-25 15:18:34.000000000","message":"Wouldn\u0027t this also have a 404 now? Really you\u0027d have a duplicate index method with the different microversion range and expected_errors.","commit_id":"ea0befc7ca946c1c5b8819274369107fe3a53ae9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2f45ccc5516112b9e34a837cf467f6074462071d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            raise webob.exc.HTTPForbidden(explanation\u003dexplanation)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_PROXY_API_SUPPORT_VERSION)"},{"line_number":120,"context_line":"    @extensions.expected_errors(400)"},{"line_number":121,"context_line":"    def index(self, req):"},{"line_number":122,"context_line":"        \"\"\"Return an index listing of images available to the request."},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_01735ee8","line":120,"range":{"start_line":120,"start_character":32,"end_line":120,"end_character":35},"in_reply_to":"dada55a8_e1260a67","updated":"2016-07-25 15:26:53.000000000","message":"OK I see the 404 comes from here:\n\nhttps://github.com/openstack/nova/blob/414df1e56ea9df700756a1732125e06c5d97d792/nova/api/openstack/wsgi.py#L898\n\nAnd we don\u0027t get to the method so expected_errors isn\u0027t called, which the unit tests prove.","commit_id":"ea0befc7ca946c1c5b8819274369107fe3a53ae9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"08311d3a36820cd512acd97c61b64d8c23891b47","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        return self._view_builder.index(req, images)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @wsgi.Controller.api_version(\"2.1\", MAX_PROXY_API_SUPPORT_VERSION)"},{"line_number":139,"context_line":"    @extensions.expected_errors(400)"},{"line_number":140,"context_line":"    def detail(self, req):"},{"line_number":141,"context_line":"        \"\"\"Return a detailed index listing of images available to the request."},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_2121424e","line":139,"range":{"start_line":139,"start_character":32,"end_line":139,"end_character":35},"updated":"2016-07-25 15:18:34.000000000","message":"ditto","commit_id":"ea0befc7ca946c1c5b8819274369107fe3a53ae9"}],"nova/tests/unit/api/openstack/compute/test_images.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"474875cb28d3b405222810943489a62f0e9eadb8","unresolved":false,"context_lines":[{"line_number":361,"context_line":"    def test_delete_image(self, delete_mocked):"},{"line_number":362,"context_line":"        request \u003d self.http_request.blank(self.url_base + \u0027images/124\u0027)"},{"line_number":363,"context_line":"        request.method \u003d \u0027DELETE\u0027"},{"line_number":364,"context_line":"        delete_method \u003d self.controller.delete"},{"line_number":365,"context_line":"        response \u003d delete_method(request, \u0027124\u0027)"},{"line_number":366,"context_line":"        self._check_response(delete_method, response, 204)"},{"line_number":367,"context_line":"        delete_mocked.assert_called_once_with(mock.ANY, \u0027124\u0027)"},{"line_number":368,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"dada55a8_f04404b8","line":365,"range":{"start_line":364,"start_character":8,"end_line":365,"end_character":48},"updated":"2016-07-25 21:31:37.000000000","message":"I am not sure why we need to change like this.. but it is not so matter at this time after approved.","commit_id":"ea0befc7ca946c1c5b8819274369107fe3a53ae9"}]}
