)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     TommyLike \u003ctommylikehu@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-09 10:07:57 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add filter, sorter for group snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add filter, sorter, pagination support in group"},{"line_number":10,"context_line":"snapshot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a30ddce_3feda425","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":19},"updated":"2017-03-09 10:46:30.000000000","message":"nit: missing pagination","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     TommyLike \u003ctommylikehu@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-03-09 10:07:57 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add filter, sorter for group snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add filter, sorter, pagination support in group"},{"line_number":10,"context_line":"snapshot."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a25e98e_17caf8a1","line":7,"range":{"start_line":7,"start_character":18,"end_line":7,"end_character":19},"in_reply_to":"9a30ddce_3feda425","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add filter, sorter for group snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add filter, sorter, pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also refactor and simplify group snapshot\u0027s"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a30ddce_1fd1c057","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":20},"updated":"2017-03-09 10:46:30.000000000","message":"nit: and","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add filter, sorter for group snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add filter, sorter, pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also refactor and simplify group snapshot\u0027s"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a25e98e_57c47091","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":20},"in_reply_to":"9a30ddce_1fd1c057","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add filter, sorter, pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also refactor and simplify group snapshot\u0027s"},{"line_number":13,"context_line":"testcases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Close-Bug: #1670540"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a30ddce_75457d15","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":10},"updated":"2017-03-09 10:46:30.000000000","message":"-1: Do this in another patch, it simplifies the review of this patch, keeps patches doing just 1 change, and reduce the risk of introducing bugs in the tests.","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add filter, sorter, pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Also refactor and simplify group snapshot\u0027s"},{"line_number":13,"context_line":"testcases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Close-Bug: #1670540"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a25e98e_77c16c80","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":10},"in_reply_to":"9a30ddce_75457d15","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Also refactor and simplify group snapshot\u0027s"},{"line_number":13,"context_line":"testcases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Close-Bug: #1670540"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I2ed1b87b022314b157fe432a97783ab50316367b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9a30ddce_ff8cec80","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":5},"updated":"2017-03-09 10:46:30.000000000","message":"-1:  Closes-Bug","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Also refactor and simplify group snapshot\u0027s"},{"line_number":13,"context_line":"testcases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Close-Bug: #1670540"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I2ed1b87b022314b157fe432a97783ab50316367b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"7a25e98e_b7bbe40d","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":5},"in_reply_to":"9a30ddce_ff8cec80","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"89295e3c2e492689b5093ce12d7bc51f882b7f5a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add filter, sorter and pagination for group snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add filter, sorter and pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1670540"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a1ff146_3e6892f5","line":10,"updated":"2017-03-15 12:13:42.000000000","message":"nit: mention which microversion this is adding","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"a0da5a770e0414266796f67d27500a8e70427487","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add filter, sorter and pagination for group snapshot"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add filter, sorter and pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1670540"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a1ff146_80bcc06d","line":10,"in_reply_to":"3a1ff146_3e6892f5","updated":"2017-03-15 13:47:46.000000000","message":"Done","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"89295e3c2e492689b5093ce12d7bc51f882b7f5a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add filter, sorter and pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1670540"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I2ed1b87b022314b157fe432a97783ab50316367b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a1ff146_5e6d4e03","line":12,"updated":"2017-03-15 12:13:42.000000000","message":"-1: APIImpact","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"a0da5a770e0414266796f67d27500a8e70427487","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add filter, sorter and pagination support in group"},{"line_number":10,"context_line":"snapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1670540"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I2ed1b87b022314b157fe432a97783ab50316367b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3a1ff146_a0c1bce6","line":12,"in_reply_to":"3a1ff146_5e6d4e03","updated":"2017-03-15 13:47:46.000000000","message":"Done","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"}],"cinder/api/openstack/api_version_request.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":79,"context_line":"             return new data."},{"line_number":80,"context_line":"    * 3.27 - Add attachment API"},{"line_number":81,"context_line":"    * 3.28 - Add filters support to get_pools"},{"line_number":82,"context_line":"    * 3.29 - Add filter, sorter, pagination support in group snapshot."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"\"\"\""},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_7fce3cb5","line":82,"range":{"start_line":82,"start_character":32,"end_line":82,"end_character":33},"updated":"2017-03-09 10:46:30.000000000","message":"nit: and","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":79,"context_line":"             return new data."},{"line_number":80,"context_line":"    * 3.27 - Add attachment API"},{"line_number":81,"context_line":"    * 3.28 - Add filters support to get_pools"},{"line_number":82,"context_line":"    * 3.29 - Add filter, sorter, pagination support in group snapshot."},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"\"\"\""},{"line_number":85,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_50257e59","line":82,"range":{"start_line":82,"start_character":32,"end_line":82,"end_character":33},"in_reply_to":"9a30ddce_7fce3cb5","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":88,"context_line":"# minimum version of the API supported."},{"line_number":89,"context_line":"# Explicitly using /v1 or /v2 enpoints will still work"},{"line_number":90,"context_line":"_MIN_API_VERSION \u003d \"3.0\""},{"line_number":91,"context_line":"_MAX_API_VERSION \u003d \"3.28\""},{"line_number":92,"context_line":"_LEGACY_API_VERSION1 \u003d \"1.0\""},{"line_number":93,"context_line":"_LEGACY_API_VERSION2 \u003d \"2.0\""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_ffba2c09","line":91,"range":{"start_line":91,"start_character":20,"end_line":91,"end_character":24},"updated":"2017-03-09 10:46:30.000000000","message":"-1: 3.29","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":88,"context_line":"# minimum version of the API supported."},{"line_number":89,"context_line":"# Explicitly using /v1 or /v2 enpoints will still work"},{"line_number":90,"context_line":"_MIN_API_VERSION \u003d \"3.0\""},{"line_number":91,"context_line":"_MAX_API_VERSION \u003d \"3.28\""},{"line_number":92,"context_line":"_LEGACY_API_VERSION1 \u003d \"1.0\""},{"line_number":93,"context_line":"_LEGACY_API_VERSION2 \u003d \"2.0\""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_90237655","line":91,"range":{"start_line":91,"start_character":20,"end_line":91,"end_character":24},"in_reply_to":"9a30ddce_4528b986","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ecca0e27fa128fc4357b4e53749a2ba09918b155","unresolved":false,"context_lines":[{"line_number":88,"context_line":"# minimum version of the API supported."},{"line_number":89,"context_line":"# Explicitly using /v1 or /v2 enpoints will still work"},{"line_number":90,"context_line":"_MIN_API_VERSION \u003d \"3.0\""},{"line_number":91,"context_line":"_MAX_API_VERSION \u003d \"3.28\""},{"line_number":92,"context_line":"_LEGACY_API_VERSION1 \u003d \"1.0\""},{"line_number":93,"context_line":"_LEGACY_API_VERSION2 \u003d \"2.0\""},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_4528b986","line":91,"range":{"start_line":91,"start_character":20,"end_line":91,"end_character":24},"in_reply_to":"9a30ddce_ffba2c09","updated":"2017-03-09 17:04:54.000000000","message":"+1","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"3.29"},{"line_number":293,"context_line":"----"},{"line_number":294,"context_line":"  Add filter, sorter, pagination support in group snapshot."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_3f3be49d","line":294,"range":{"start_line":294,"start_character":21,"end_line":294,"end_character":22},"updated":"2017-03-09 10:46:30.000000000","message":"nit: and","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":291,"context_line":""},{"line_number":292,"context_line":"3.29"},{"line_number":293,"context_line":"----"},{"line_number":294,"context_line":"  Add filter, sorter, pagination support in group snapshot."}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_d0196e23","line":294,"range":{"start_line":294,"start_character":21,"end_line":294,"end_character":22},"in_reply_to":"9a30ddce_3f3be49d","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/api/v3/group_snapshots.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        marker, limit, offset \u003d common.get_pagination_params(filters)"},{"line_number":111,"context_line":"        sort_keys, sort_dirs \u003d common.get_sort_params(filters)"},{"line_number":112,"context_line":"        group_snapshots \u003d self.group_snapshot_api.get_all_group_snapshots("},{"line_number":113,"context_line":"            context, filters, marker, limit, offset, sort_keys, sort_dirs)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        if is_detail:"},{"line_number":116,"context_line":"            group_snapshots \u003d self._view_builder.detail_list(req,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_6a05e1c0","line":113,"range":{"start_line":113,"start_character":21,"end_line":113,"end_character":73},"updated":"2017-03-07 20:37:01.000000000","message":"Should use filters\u003dfilters, marker\u003dmarker, etc.","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":110,"context_line":"        req_version \u003d req.api_version_request"},{"line_number":111,"context_line":"        if req_version.matches(None, \"3.28\"):"},{"line_number":112,"context_line":"            group_snapshots \u003d self.group_snapshot_api.get_all_group_snapshots("},{"line_number":113,"context_line":"                context)"},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            filters \u003d req.params.copy()"},{"line_number":116,"context_line":"            marker, limit, offset \u003d common.get_pagination_params(filters)"},{"line_number":117,"context_line":"            sort_keys, sort_dirs \u003d common.get_sort_params(filters)"},{"line_number":118,"context_line":"            group_snapshots \u003d self.group_snapshot_api.get_all_group_snapshots("},{"line_number":119,"context_line":"                context, filters\u003dfilters, marker\u003dmarker, limit\u003dlimit,"},{"line_number":120,"context_line":"                offset\u003doffset, sort_keys\u003dsort_keys, sort_dirs\u003dsort_dirs)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        if is_detail:"},{"line_number":123,"context_line":"            group_snapshots \u003d self._view_builder.detail_list(req,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_7a5baa2e","line":120,"range":{"start_line":111,"start_character":0,"end_line":120,"end_character":72},"updated":"2017-03-09 10:46:30.000000000","message":"nit: I think it would be clearer with only 1 call to get_all_group_snapshots:\n\n        filters \u003d marker \u003d limit \u003d offset sort_keys \u003d sort_dirs \u003d None\n        if req_version.matches(\"3.29\"):\n            filters \u003d req.params.copy()\n            marker, limit, offset \u003d common.get_pagination_params(filters)\n            sort_keys, sort_dirs \u003d common.get_sort_params(filters)\n\n        group_snapshots \u003d self.group_snapshot_api.get_all_group_snapshots(\n                context, filters\u003dfilters, marker\u003dmarker, limit\u003dlimit,\n                offset\u003doffset, sort_keys\u003dsort_keys, sort_dirs\u003dsort_dirs)","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":110,"context_line":"        req_version \u003d req.api_version_request"},{"line_number":111,"context_line":"        if req_version.matches(None, \"3.28\"):"},{"line_number":112,"context_line":"            group_snapshots \u003d self.group_snapshot_api.get_all_group_snapshots("},{"line_number":113,"context_line":"                context)"},{"line_number":114,"context_line":"        else:"},{"line_number":115,"context_line":"            filters \u003d req.params.copy()"},{"line_number":116,"context_line":"            marker, limit, offset \u003d common.get_pagination_params(filters)"},{"line_number":117,"context_line":"            sort_keys, sort_dirs \u003d common.get_sort_params(filters)"},{"line_number":118,"context_line":"            group_snapshots \u003d self.group_snapshot_api.get_all_group_snapshots("},{"line_number":119,"context_line":"                context, filters\u003dfilters, marker\u003dmarker, limit\u003dlimit,"},{"line_number":120,"context_line":"                offset\u003doffset, sort_keys\u003dsort_keys, sort_dirs\u003dsort_dirs)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        if is_detail:"},{"line_number":123,"context_line":"            group_snapshots \u003d self._view_builder.detail_list(req,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_b0f6ba8c","line":120,"range":{"start_line":111,"start_character":0,"end_line":120,"end_character":72},"in_reply_to":"9a30ddce_7a5baa2e","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"89295e3c2e492689b5093ce12d7bc51f882b7f5a","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        group_snapshots[\u0027group_snapshots\u0027] \u003d new_group_snapshots"},{"line_number":139,"context_line":"        return group_snapshots"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @wsgi.Controller.api_version(GROUP_SNAPSHOT_API_VERSION)"},{"line_number":142,"context_line":"    @wsgi.response(http_client.ACCEPTED)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a1ff146_5e3b8eeb","line":139,"updated":"2017-03-15 12:13:42.000000000","message":"nit: I don\u0027t think this change adds anything","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4f9e3af89bbc7434c7d34f7a3cc85d46abd2c797","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        group_snapshots[\u0027group_snapshots\u0027] \u003d new_group_snapshots"},{"line_number":139,"context_line":"        return group_snapshots"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @wsgi.Controller.api_version(GROUP_SNAPSHOT_API_VERSION)"},{"line_number":142,"context_line":"    @wsgi.response(http_client.ACCEPTED)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a1ff146_c1b077f7","line":139,"in_reply_to":"3a1ff146_206b0c20","updated":"2017-03-15 15:29:57.000000000","message":"Silly me, I saw it the other day, but today my brain must not have been working right.  ;-)","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"a0da5a770e0414266796f67d27500a8e70427487","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        group_snapshots[\u0027group_snapshots\u0027] \u003d new_group_snapshots"},{"line_number":139,"context_line":"        return group_snapshots"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @wsgi.Controller.api_version(GROUP_SNAPSHOT_API_VERSION)"},{"line_number":142,"context_line":"    @wsgi.response(http_client.ACCEPTED)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a1ff146_206b0c20","line":139,"in_reply_to":"3a1ff146_5e3b8eeb","updated":"2017-03-15 13:47:46.000000000","message":"The difference is that the original code would omit other keys in the dictionay.","commit_id":"6545439768c3740ea0b43f9a25100f9c8dd4db30"}],"cinder/db/api.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":1488,"context_line":"def group_snapshot_get_all(context, filters\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":1489,"context_line":"                           offset\u003dNone, sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":1490,"context_line":"    \"\"\"Get all group snapshots.\"\"\""},{"line_number":1491,"context_line":"    return IMPL.group_snapshot_get_all(context, filters, marker, limit,"},{"line_number":1492,"context_line":"                                       offset, sort_keys, sort_dirs)"},{"line_number":1493,"context_line":""},{"line_number":1494,"context_line":""},{"line_number":1495,"context_line":"def group_snapshot_create(context, values):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_4a181d1e","line":1492,"range":{"start_line":1491,"start_character":48,"end_line":1492,"end_character":67},"updated":"2017-03-07 20:37:01.000000000","message":"filters\u003dfilters, marker\u003dmarker, etc.","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":1503,"context_line":"                                    sort_dirs\u003dNone):"},{"line_number":1504,"context_line":"    \"\"\"Get all group snapshots belonging to a group.\"\"\""},{"line_number":1505,"context_line":"    return IMPL.group_snapshot_get_all_by_group(context, group_id,"},{"line_number":1506,"context_line":"                                                filters, marker, limit,"},{"line_number":1507,"context_line":"                                                offset, sort_keys, sort_dirs)"},{"line_number":1508,"context_line":""},{"line_number":1509,"context_line":""},{"line_number":1510,"context_line":"def group_snapshot_get_all_by_project(context, project_id, filters\u003dNone,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_aadd1944","line":1507,"range":{"start_line":1506,"start_character":48,"end_line":1507,"end_character":76},"updated":"2017-03-07 20:37:01.000000000","message":"Same","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":1513,"context_line":"                                      sort_dirs\u003dNone):"},{"line_number":1514,"context_line":"    \"\"\"Get all group snapshots belonging to a project.\"\"\""},{"line_number":1515,"context_line":"    return IMPL.group_snapshot_get_all_by_project(context, project_id,"},{"line_number":1516,"context_line":"                                                  filters, marker, limit,"},{"line_number":1517,"context_line":"                                                  offset, sort_keys, sort_dirs)"},{"line_number":1518,"context_line":""},{"line_number":1519,"context_line":""},{"line_number":1520,"context_line":"def group_snapshot_update(context, group_snapshot_id, values):"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_4aef3de8","line":1517,"range":{"start_line":1516,"start_character":50,"end_line":1517,"end_character":78},"updated":"2017-03-07 20:37:01.000000000","message":"Same","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":5961,"context_line":"                                    sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":5962,"context_line":"    if filters is None:"},{"line_number":5963,"context_line":"        filters \u003d {}"},{"line_number":5964,"context_line":"    filters[\u0027group_id\u0027] \u003d group_id"},{"line_number":5965,"context_line":"    return _group_snapshot_get_all(context, filters, marker, limit, offset,"},{"line_number":5966,"context_line":"                                   sort_keys, sort_dirs)"},{"line_number":5967,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_bf50b45f","line":5964,"updated":"2017-03-09 10:46:30.000000000","message":"-1: This is changing how the method works, you need to ignore group_id when it\u0027s None.  Look at old L5932","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":5961,"context_line":"                                    sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":5962,"context_line":"    if filters is None:"},{"line_number":5963,"context_line":"        filters \u003d {}"},{"line_number":5964,"context_line":"    filters[\u0027group_id\u0027] \u003d group_id"},{"line_number":5965,"context_line":"    return _group_snapshot_get_all(context, filters, marker, limit, offset,"},{"line_number":5966,"context_line":"                                   sort_keys, sort_dirs)"},{"line_number":5967,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_d076ce04","line":5964,"in_reply_to":"9a30ddce_bf50b45f","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":5973,"context_line":"    authorize_project_context(context, project_id)"},{"line_number":5974,"context_line":"    if filters is None:"},{"line_number":5975,"context_line":"        filters \u003d {}"},{"line_number":5976,"context_line":"    filters[\u0027project_id\u0027] \u003d project_id"},{"line_number":5977,"context_line":"    return _group_snapshot_get_all(context, filters, marker, limit, offset,"},{"line_number":5978,"context_line":"                                   sort_keys, sort_dirs)"},{"line_number":5979,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_dfe648b3","line":5976,"updated":"2017-03-09 10:46:30.000000000","message":"-1: This is changing how the method works, you need to ignore project_id when it\u0027s None.  Look at old L5929","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":5973,"context_line":"    authorize_project_context(context, project_id)"},{"line_number":5974,"context_line":"    if filters is None:"},{"line_number":5975,"context_line":"        filters \u003d {}"},{"line_number":5976,"context_line":"    filters[\u0027project_id\u0027] \u003d project_id"},{"line_number":5977,"context_line":"    return _group_snapshot_get_all(context, filters, marker, limit, offset,"},{"line_number":5978,"context_line":"                                   sort_keys, sort_dirs)"},{"line_number":5979,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_f071120d","line":5976,"in_reply_to":"9a30ddce_dfe648b3","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/group/api.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":878,"context_line":"            # Need to remove all_tenants to pass the filtering below."},{"line_number":879,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":880,"context_line":"            group_snapshots \u003d \\"},{"line_number":881,"context_line":"                objects.GroupSnapshotList.get_all(context, filters, marker,"},{"line_number":882,"context_line":"                                                  limit, offset, sort_keys,"},{"line_number":883,"context_line":"                                                  sort_dirs)"},{"line_number":884,"context_line":"        else:"},{"line_number":885,"context_line":"            group_snapshots \u003d objects.GroupSnapshotList.get_all_by_project("},{"line_number":886,"context_line":"                context.elevated(), context.project_id, filters, marker, limit,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_eadb91eb","line":883,"range":{"start_line":881,"start_character":59,"end_line":883,"end_character":59},"updated":"2017-03-07 20:37:01.000000000","message":"filters\u003dfilters, marker\u003dmarker, ...","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":877,"context_line":"        if context.is_admin and \u0027all_tenants\u0027 in filters:"},{"line_number":878,"context_line":"            # Need to remove all_tenants to pass the filtering below."},{"line_number":879,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":880,"context_line":"            group_snapshots \u003d \\"},{"line_number":881,"context_line":"                objects.GroupSnapshotList.get_all(context,"},{"line_number":882,"context_line":"                                                  filters\u003dfilters,"},{"line_number":883,"context_line":"                                                  marker\u003dmarker,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_5aac26a0","line":880,"range":{"start_line":880,"start_character":30,"end_line":880,"end_character":31},"updated":"2017-03-09 10:46:30.000000000","message":"-1: Please split the line after the parenthesis like it\u0027s done on L889","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":877,"context_line":"        if context.is_admin and \u0027all_tenants\u0027 in filters:"},{"line_number":878,"context_line":"            # Need to remove all_tenants to pass the filtering below."},{"line_number":879,"context_line":"            del filters[\u0027all_tenants\u0027]"},{"line_number":880,"context_line":"            group_snapshots \u003d \\"},{"line_number":881,"context_line":"                objects.GroupSnapshotList.get_all(context,"},{"line_number":882,"context_line":"                                                  filters\u003dfilters,"},{"line_number":883,"context_line":"                                                  marker\u003dmarker,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_f0df52d3","line":880,"range":{"start_line":880,"start_character":30,"end_line":880,"end_character":31},"in_reply_to":"9a30ddce_5aac26a0","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        else:"},{"line_number":889,"context_line":"            group_snapshots \u003d objects.GroupSnapshotList.get_all_by_project("},{"line_number":890,"context_line":"                context.elevated(), context.project_id, filters, marker, limit,"},{"line_number":891,"context_line":"                offset, sort_keys, sort_dirs)"},{"line_number":892,"context_line":"        return group_snapshots"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"    def reset_group_snapshot_status(self, context, gsnapshot, status):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_daf3b69c","line":891,"updated":"2017-03-09 10:46:30.000000000","message":"nit: We could simplify from L877 up to here and just have a common call to the objects method (and we would be fixing the issue where passing all_tenants as non admin yields the wrong call to get_all_by_project):\n\n        all_tenants \u003d filters.pop(\u0027all_tenants\u0027, False)\n\n        if not (context.is_admin and all_tenants):\n            filters[\u0027project_id\u0027] \u003d context.project_id\n        group_snapshots \u003d objects.GroupSnapshotList.get_all(\n            context, filters\u003dfilters, marker\u003dmarker, limit\u003dlimit,\n            offset\u003doffset, sort_keys\u003dsort_keys, sort_dirs\u003dsort_dirs)","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":888,"context_line":"        else:"},{"line_number":889,"context_line":"            group_snapshots \u003d objects.GroupSnapshotList.get_all_by_project("},{"line_number":890,"context_line":"                context.elevated(), context.project_id, filters, marker, limit,"},{"line_number":891,"context_line":"                offset, sort_keys, sort_dirs)"},{"line_number":892,"context_line":"        return group_snapshots"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"    def reset_group_snapshot_status(self, context, gsnapshot, status):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_b82e9ca2","line":891,"in_reply_to":"9a30ddce_daf3b69c","updated":"2017-03-15 08:50:09.000000000","message":"the context is different, I\u0027d prefer use different methods:)","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/objects/base.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                          \u0027ManageableVolume\u0027: \u00271.0\u0027,"},{"line_number":130,"context_line":"                          \u0027ManageableVolumeList\u0027: \u00271.0\u0027,"},{"line_number":131,"context_line":"                          \u0027ManageableSnapshotList\u0027: \u00271.0\u0027})"},{"line_number":132,"context_line":"OBJ_VERSIONS.add(\u00271.22\u0027, {\u0027GroupSnapshot\u0027: \u00271.1\u0027})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"class CinderObjectRegistry(base.VersionedObjectRegistry):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_ba50c25f","line":132,"updated":"2017-03-09 10:46:30.000000000","message":"-1: There\u0027s no need for a new version just because we have added new methods","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                          \u0027ManageableVolume\u0027: \u00271.0\u0027,"},{"line_number":130,"context_line":"                          \u0027ManageableVolumeList\u0027: \u00271.0\u0027,"},{"line_number":131,"context_line":"                          \u0027ManageableSnapshotList\u0027: \u00271.0\u0027})"},{"line_number":132,"context_line":"OBJ_VERSIONS.add(\u00271.22\u0027, {\u0027GroupSnapshot\u0027: \u00271.1\u0027})"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"class CinderObjectRegistry(base.VersionedObjectRegistry):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_a4acbf8c","line":132,"in_reply_to":"9a30ddce_ba50c25f","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/objects/group_snapshot.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    @classmethod"},{"line_number":141,"context_line":"    def get_all(cls, context, filters\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":142,"context_line":"                offset\u003dNone, sort_keys\u003dNone, sort_dirs\u003dNone):"},{"line_number":143,"context_line":"        group_snapshots \u003d db.group_snapshot_get_all(context, filters, marker,"},{"line_number":144,"context_line":"                                                    limit, offset, sort_keys,"},{"line_number":145,"context_line":"                                                    sort_dirs)"},{"line_number":146,"context_line":"        return base.obj_make_list(context, cls(context), objects.GroupSnapshot,"},{"line_number":147,"context_line":"                                  group_snapshots)"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_4a565d2a","line":145,"range":{"start_line":143,"start_character":61,"end_line":145,"end_character":61},"updated":"2017-03-07 20:37:01.000000000","message":"filters\u003dfilters, marker\u003dmarker,...","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                           sort_dirs\u003dNone):"},{"line_number":153,"context_line":"        group_snapshots \u003d db.group_snapshot_get_all_by_project(context,"},{"line_number":154,"context_line":"                                                               project_id,"},{"line_number":155,"context_line":"                                                               filters,"},{"line_number":156,"context_line":"                                                               marker,"},{"line_number":157,"context_line":"                                                               limit, offset,"},{"line_number":158,"context_line":"                                                               sort_keys,"},{"line_number":159,"context_line":"                                                               sort_dirs)"},{"line_number":160,"context_line":"        return base.obj_make_list(context, cls(context), objects.GroupSnapshot,"},{"line_number":161,"context_line":"                                  group_snapshots)"},{"line_number":162,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_0a2385be","line":159,"range":{"start_line":155,"start_character":63,"end_line":159,"end_character":72},"updated":"2017-03-07 20:37:01.000000000","message":"Same","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"f734d828bd0d30679c9d55cb2d2c897152591c6d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                         limit\u003dNone, offset\u003dNone, sort_keys\u003dNone,"},{"line_number":166,"context_line":"                         sort_dirs\u003dNone):"},{"line_number":167,"context_line":"        group_snapshots \u003d db.group_snapshot_get_all_by_group(context, group_id,"},{"line_number":168,"context_line":"                                                             filters, marker,"},{"line_number":169,"context_line":"                                                             limit, offset,"},{"line_number":170,"context_line":"                                                             sort_keys,"},{"line_number":171,"context_line":"                                                             sort_dirs)"},{"line_number":172,"context_line":"        return base.obj_make_list(context, cls(context), objects.GroupSnapshot,"},{"line_number":173,"context_line":"                                  group_snapshots)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a30ddce_8a1db575","line":171,"range":{"start_line":168,"start_character":61,"end_line":171,"end_character":70},"updated":"2017-03-07 20:37:01.000000000","message":"Same","commit_id":"4b205f0c601633add8d011d9acbf0f2ae7ca844f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    fields \u003d {"},{"line_number":134,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027GroupSnapshot\u0027)"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    child_version \u003d {"},{"line_number":137,"context_line":"        \u00271.0\u0027: \u00271.0\u0027"},{"line_number":138,"context_line":"    }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    @classmethod"},{"line_number":141,"context_line":"    def get_all(cls, context, filters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_3af21270","side":"PARENT","line":138,"range":{"start_line":136,"start_character":0,"end_line":138,"end_character":5},"updated":"2017-03-09 10:46:30.000000000","message":"-1: No need to touch this","commit_id":"376cdce221a0fdb8ea31d4be655421bbdc958639"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    fields \u003d {"},{"line_number":134,"context_line":"        \u0027objects\u0027: fields.ListOfObjectsField(\u0027GroupSnapshot\u0027)"},{"line_number":135,"context_line":"    }"},{"line_number":136,"context_line":"    child_version \u003d {"},{"line_number":137,"context_line":"        \u00271.0\u0027: \u00271.0\u0027"},{"line_number":138,"context_line":"    }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    @classmethod"},{"line_number":141,"context_line":"    def get_all(cls, context, filters\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_84f6db8c","side":"PARENT","line":138,"range":{"start_line":136,"start_character":0,"end_line":138,"end_character":5},"in_reply_to":"9a30ddce_3af21270","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"376cdce221a0fdb8ea31d4be655421bbdc958639"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class GroupSnapshot(base.CinderPersistentObject, base.CinderObject,"},{"line_number":25,"context_line":"                    base.CinderObjectDictCompat, base.ClusteredObject):"},{"line_number":26,"context_line":"    # Version 1.1: Update get_all(), get_all_by_project(), get_all_by_group()"},{"line_number":27,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    OPTIONAL_FIELDS \u003d [\u0027group\u0027, \u0027snapshots\u0027]"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_3acbf21f","line":27,"updated":"2017-03-09 10:46:30.000000000","message":"-1: There\u0027s no need for a new version","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class GroupSnapshot(base.CinderPersistentObject, base.CinderObject,"},{"line_number":25,"context_line":"                    base.CinderObjectDictCompat, base.ClusteredObject):"},{"line_number":26,"context_line":"    # Version 1.1: Update get_all(), get_all_by_project(), get_all_by_group()"},{"line_number":27,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    OPTIONAL_FIELDS \u003d [\u0027group\u0027, \u0027snapshots\u0027]"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_980ab824","line":27,"in_reply_to":"9a30ddce_3acbf21f","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/tests/unit/api/v3/test_group_snapshots.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self.volume \u003d utils.create_volume(self.context,"},{"line_number":58,"context_line":"                                          group_id\u003dself.group.id,"},{"line_number":59,"context_line":"                                          volume_type_id\u003dfake.VOLUME_TYPE_ID)"},{"line_number":60,"context_line":"        self.g_snapshots_array \u003d []"},{"line_number":61,"context_line":"        for x in range(3):"},{"line_number":62,"context_line":"            self.g_snapshots_array.append("},{"line_number":63,"context_line":"                utils.create_group_snapshot("},{"line_number":64,"context_line":"                    self.context,"},{"line_number":65,"context_line":"                    group_id\u003dself.group.id,"},{"line_number":66,"context_line":"                    group_type_id\u003dself.group.group_type_id))"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _cleanup(self):"},{"line_number":69,"context_line":"        self.group.destroy()"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_9542f13c","line":66,"range":{"start_line":60,"start_character":0,"end_line":66,"end_character":60},"updated":"2017-03-09 10:46:30.000000000","message":"nit: List comprehension could work better here:\n\n        self.g_snapshots_array \u003d [\n            utils.create_group_snapshot(\n                self.context,\n                group_id\u003dself.group.id,\n                group_type_id\u003dself.group.group_type_id)\n            for __ in range(3)\n        ]","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def _cleanup(self):"},{"line_number":69,"context_line":"        self.group.destroy()"},{"line_number":70,"context_line":"        db.volume_type_destroy(self.ctxt, self.volume.id)"},{"line_number":71,"context_line":"        for snapshot in self.g_snapshots_array:"},{"line_number":72,"context_line":"            snapshot.destory()"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_15836157","line":70,"updated":"2017-03-09 10:46:30.000000000","message":"nit: if you pass tescase_instance\u003dself in the call to create_volume it will automatically do the cleanup and you won\u0027t need to call it here","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.group.destroy()"},{"line_number":70,"context_line":"        db.volume_type_destroy(self.ctxt, self.volume.id)"},{"line_number":71,"context_line":"        for snapshot in self.g_snapshots_array:"},{"line_number":72,"context_line":"            snapshot.destory()"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    def test_show_group_snapshot(self):"},{"line_number":75,"context_line":"        group_snapshot \u003d utils.create_group_snapshot("}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_95de716b","line":72,"updated":"2017-03-09 10:46:30.000000000","message":"-1: Shouldn\u0027t you be destroying these before the volume?","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    @ddt.data(True, False)"},{"line_number":101,"context_line":"    def test_list_group_snapshots_with_limit(self, is_detail):"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        url \u003d \u0027/v3/%s/group_snapshots?limit\u003d1\u0027 % fake.PROJECT_ID"},{"line_number":104,"context_line":"        if is_detail:"},{"line_number":105,"context_line":"            url \u003d \u0027/v3/%s/group_snapshots/detail?limit\u003d1\u0027 % fake.PROJECT_ID"},{"line_number":106,"context_line":"        req \u003d fakes.HTTPRequest.blank(url, version\u003dSUPPORT_FILTER_VERSION)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_95faf1bb","line":103,"updated":"2017-03-09 10:46:30.000000000","message":"nit: Why aren\u0027t you use the else structure here?","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    @ddt.data(True, False)"},{"line_number":126,"context_line":"    def test_list_group_snapshot_with_offset(self, is_detail):"},{"line_number":127,"context_line":"        url \u003d \u0027/v3/%s/group_snapshots?offset\u003d1\u0027 % fake.PROJECT_ID"},{"line_number":128,"context_line":"        if is_detail:"},{"line_number":129,"context_line":"            url \u003d \u0027/v3/%s/group_snapshots/detail?offset\u003d1\u0027 % fake.PROJECT_ID"},{"line_number":130,"context_line":"        req \u003d fakes.HTTPRequest.blank(url, version\u003dSUPPORT_FILTER_VERSION)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_95211150","line":127,"updated":"2017-03-09 10:46:30.000000000","message":"ditto","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @ddt.data(True, False)"},{"line_number":145,"context_line":"    def test_list_group_snapshot_with_offset_out_of_range(self, is_detail):"},{"line_number":146,"context_line":"        url \u003d (\u0027/v3/%s/group_snapshots?offset\u003d234523423455454\u0027 %"},{"line_number":147,"context_line":"               fake.PROJECT_ID)"},{"line_number":148,"context_line":"        if is_detail:"},{"line_number":149,"context_line":"            url \u003d (\u0027/v3/%s/group_snapshots/detail?offset\u003d234523423455454\u0027 %"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_95a4b1a6","line":146,"updated":"2017-03-09 10:46:30.000000000","message":"ditto","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    @ddt.data(False, True)"},{"line_number":160,"context_line":"    def test_list_group_snapshot_with_limit_and_offset(self, is_detail):"},{"line_number":161,"context_line":"        group_snapshot \u003d utils.create_group_snapshot("},{"line_number":162,"context_line":"            self.context,"},{"line_number":163,"context_line":"            group_id\u003dself.group.id,"},{"line_number":164,"context_line":"            group_type_id\u003dself.group.group_type_id)"},{"line_number":165,"context_line":"        url \u003d \u0027/v3/%s/group_snapshots?limit\u003d2\u0026offset\u003d1\u0027 % fake.PROJECT_ID"},{"line_number":166,"context_line":"        if is_detail:"},{"line_number":167,"context_line":"            url \u003d (\u0027/v3/%s/group_snapshots/detail?limit\u003d2\u0026offset\u003d1\u0027 %"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_7571fddf","line":164,"range":{"start_line":161,"start_character":0,"end_line":164,"end_character":51},"updated":"2017-03-09 10:46:30.000000000","message":"-1: This is unnecessary, because we\u0027ll still get the link even if we don\u0027t create an additional group snapshot","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        self.assertIsNotNone(res_dict[\u0027group_snapshot_links\u0027][0][\u0027href\u0027])"},{"line_number":182,"context_line":"        if is_detail:"},{"line_number":183,"context_line":"            self.assertIn(\u0027description\u0027, res_dict[\u0027group_snapshots\u0027][0].keys())"},{"line_number":184,"context_line":"        group_snapshot.destroy()"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @ddt.data(False, True)"},{"line_number":187,"context_line":"    def test_list_group_snapshot_with_filter(self, is_detail):"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_d582a993","line":184,"updated":"2017-03-09 10:46:30.000000000","message":"-1: This is unnecessary","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    @ddt.data(False, True)"},{"line_number":187,"context_line":"    def test_list_group_snapshot_with_filter(self, is_detail):"},{"line_number":188,"context_line":"        url \u003d (\u0027/v3/%s/group_snapshots?\u0027"},{"line_number":189,"context_line":"               \u0027all_tenants\u003dTrue\u0026id\u003d%s\u0027) % (fake.PROJECT_ID,"},{"line_number":190,"context_line":"                                            self.g_snapshots_array[0].id)"},{"line_number":191,"context_line":"        if is_detail:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_d5c5493c","line":188,"updated":"2017-03-09 10:46:30.000000000","message":"ditto","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":211,"context_line":"              {\u0027is_detail\u0027: True, \u0027version\u0027: \u00273.28\u0027},"},{"line_number":212,"context_line":"              {\u0027is_detail\u0027: False, \u0027version\u0027: \u00273.28\u0027},)"},{"line_number":213,"context_line":"    @ddt.unpack"},{"line_number":214,"context_line":"    def test_list_group_snapshot_with_filter_previous_version(self, is_detail,"},{"line_number":215,"context_line":"                                                              version):"},{"line_number":216,"context_line":"        url \u003d (\u0027/v3/%s/group_snapshots?\u0027"},{"line_number":217,"context_line":"               \u0027all_tenants\u003dTrue\u0026id\u003d%s\u0027) % (fake.PROJECT_ID,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_f0309bea","line":214,"updated":"2017-03-09 10:46:30.000000000","message":"nit: maybe add to the name min_max","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":371,"context_line":"    def test_create_group_snapshot_from_empty_group(self):"},{"line_number":372,"context_line":"        body \u003d {\"group_snapshot\": {\"name\": \"group_snapshot1\","},{"line_number":373,"context_line":"                                   \"description\":"},{"line_number":374,"context_line":"                                   \"Group Snapshot 1\"}}"},{"line_number":375,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/group_snapshots\u0027 %"},{"line_number":376,"context_line":"                                      fake.PROJECT_ID,"},{"line_number":377,"context_line":"                                      version\u003dGROUP_MICRO_VERSION)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_ba08c22e","line":374,"updated":"2017-03-09 10:46:30.000000000","message":"-1: This is not testing the same thing!!","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"cinder/tests/unit/objects/test_objects.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    \u0027GroupTypeList\u0027: \u00271.0-1b54e51ad0fc1f3a8878f5010e7e16dc\u0027,"},{"line_number":57,"context_line":"    \u0027Group\u0027: \u00271.1-bd853b1d1ee05949d9ce4b33f80ac1a0\u0027,"},{"line_number":58,"context_line":"    \u0027GroupList\u0027: \u00271.0-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":59,"context_line":"    \u0027GroupSnapshot\u0027: \u00271.1-9af3e994e889cbeae4427c3e351fa91d\u0027,"},{"line_number":60,"context_line":"    \u0027GroupSnapshotList\u0027: \u00271.0-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":61,"context_line":"}"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_da9496e3","line":59,"updated":"2017-03-09 10:46:30.000000000","message":"-1: Unnecessary version change","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    \u0027GroupTypeList\u0027: \u00271.0-1b54e51ad0fc1f3a8878f5010e7e16dc\u0027,"},{"line_number":57,"context_line":"    \u0027Group\u0027: \u00271.1-bd853b1d1ee05949d9ce4b33f80ac1a0\u0027,"},{"line_number":58,"context_line":"    \u0027GroupList\u0027: \u00271.0-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":59,"context_line":"    \u0027GroupSnapshot\u0027: \u00271.1-9af3e994e889cbeae4427c3e351fa91d\u0027,"},{"line_number":60,"context_line":"    \u0027GroupSnapshotList\u0027: \u00271.0-15ecf022a68ddbb8c2a6739cfc9f8f5e\u0027,"},{"line_number":61,"context_line":"}"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a30ddce_1305cb0f","line":59,"in_reply_to":"9a30ddce_da9496e3","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}],"releasenotes/notes/add-filter-to-group-snapshots-74sd8g138a289dh4.yaml":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"a05cbce88d40b7b7f8813411f40262225ee47d37","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Add filter, sorter and pagination support in group snapshot."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a30ddce_7aa3aa4f","line":3,"updated":"2017-03-09 10:46:30.000000000","message":"nit: listings","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"d1de0a34d8210be54d25c9d426891ee34fc0f2e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Add filter, sorter and pagination support in group snapshot."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a30ddce_53590334","line":3,"in_reply_to":"9a30ddce_7aa3aa4f","updated":"2017-03-15 08:50:09.000000000","message":"Done","commit_id":"a834b80a9446c4fdc1147b44eab0ecc85a2daa91"}]}
