)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     TommyLike \u003ctommylikehu@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-12 22:54:29 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[2/4]Reset generic volume group and group snapshot statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently the administrator could only reset the generic group"},{"line_number":10,"context_line":"status by db operation(snapshots inclusive),this change intends"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_cec5395c","line":7,"updated":"2016-12-12 22:48:46.000000000","message":"Reset group snapshot statuses","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     TommyLike \u003ctommylikehu@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-12-12 22:54:29 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[2/4]Reset generic volume group and group snapshot statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently the administrator could only reset the generic group"},{"line_number":10,"context_line":"status by db operation(snapshots inclusive),this change intends"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_dd5b1f53","line":7,"in_reply_to":"1a6eadb0_cec5395c","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[2/4]Reset generic volume group and group snapshot statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently the administrator could only reset the generic group"},{"line_number":10,"context_line":"status by db operation(snapshots inclusive),this change intends"},{"line_number":11,"context_line":"to add new admin actions to achieve these."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_2eab0d8b","line":9,"updated":"2016-12-12 22:48:46.000000000","message":"s/generic group/group snapshot","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[2/4]Reset generic volume group and group snapshot statuses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently the administrator could only reset the generic group"},{"line_number":10,"context_line":"status by db operation(snapshots inclusive),this change intends"},{"line_number":11,"context_line":"to add new admin actions to achieve these."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_fd58db58","line":9,"in_reply_to":"1a6eadb0_2eab0d8b","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The patch list:"},{"line_number":14,"context_line":"    1. group API(https://review.openstack.org/#/c/389091/)."},{"line_number":15,"context_line":"    2. snapshot API(this)."},{"line_number":16,"context_line":"    3. cinder client(https://review.openstack.org/390169/)."},{"line_number":17,"context_line":"    4. documentation(https://review.openstack.org/#/c/395464/)."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_ee875510","line":15,"updated":"2016-12-12 22:48:46.000000000","message":"group snapshot","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The patch list:"},{"line_number":14,"context_line":"    1. group API(https://review.openstack.org/#/c/389091/)."},{"line_number":15,"context_line":"    2. snapshot API(this)."},{"line_number":16,"context_line":"    3. cinder client(https://review.openstack.org/390169/)."},{"line_number":17,"context_line":"    4. documentation(https://review.openstack.org/#/c/395464/)."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a6eadb0_3d31730c","line":15,"in_reply_to":"1a6eadb0_ee875510","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"}],"cinder/api/contrib/admin_actions.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"6c585ca70c8840c71317ce602406a488f82d2d46","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.resource_name \u003d self.collection.rstrip(\u0027s\u0027)"},{"line_number":56,"context_line":"        self.volume_api \u003d volume.API()"},{"line_number":57,"context_line":"        self.backup_api \u003d backup.API()"},{"line_number":58,"context_line":"        self.group_api \u003d group.API()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    def _update(self, *args, **kwargs):"},{"line_number":61,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a71b18c_37ead974","line":58,"updated":"2016-12-12 14:50:03.000000000","message":"This needs to be removed.","commit_id":"828d276347ca1c2fb90833aa1e6838ff418c5b87"}],"cinder/api/v3/group_snapshots.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        update_info \u003d {\u0027id\u0027: id,"},{"line_number":160,"context_line":"                       \u0027update\u0027: status}"},{"line_number":161,"context_line":"        LOG.debug(\"Updating group \u0027%(id)s\u0027 with \u0027%(update)r\u0027\", update_info)"},{"line_number":162,"context_line":"        try:"},{"line_number":163,"context_line":"            gsnapshot \u003d self.group_snapshot_api.get_group_snapshot(context, id)"},{"line_number":164,"context_line":"            notifier \u003d rpc.get_notifier(\u0027groupSnapshotStatusUpdate\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_2e994d6f","line":161,"updated":"2016-12-12 22:48:46.000000000","message":"Please use keyword parameters.","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            raise"},{"line_number":175,"context_line":"        except exception.InvalidGroupSnapshotStatus as error:"},{"line_number":176,"context_line":"            notifier.error(context, \u0027groupsnapshots.reset_status\u0027,"},{"line_number":177,"context_line":"                           {\u0027error_message\u0027: error.message})"},{"line_number":178,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.message)"},{"line_number":179,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_aead5d8a","line":177,"updated":"2016-12-12 22:48:46.000000000","message":"Please add id.","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":174,"context_line":"            raise"},{"line_number":175,"context_line":"        except exception.InvalidGroupSnapshotStatus as error:"},{"line_number":176,"context_line":"            notifier.error(context, \u0027groupsnapshots.reset_status\u0027,"},{"line_number":177,"context_line":"                           {\u0027error_message\u0027: error.message})"},{"line_number":178,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.message)"},{"line_number":179,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_5a1715a3","line":177,"in_reply_to":"1a6eadb0_aead5d8a","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"8d3ca29a15676664e0754cee4c5f51f6f34c94b5","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        update_info \u003d {\u0027id\u0027: id,"},{"line_number":160,"context_line":"                       \u0027update\u0027: status}"},{"line_number":161,"context_line":"        LOG.debug(\"Updating group \u0027%(id)s\u0027 with \u0027%(update)s\u0027\", update_info)"},{"line_number":162,"context_line":"        try:"},{"line_number":163,"context_line":"            gsnapshot \u003d self.group_snapshot_api.get_group_snapshot(context, id)"},{"line_number":164,"context_line":"            notifier \u003d rpc.get_notifier(\u0027groupSnapshotStatusUpdate\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_58333962","line":161,"updated":"2016-12-14 22:09:47.000000000","message":"I agree with xing. Please use keyword parameters. Just re-use keyword parameters in L#171","commit_id":"f0fa6ae9921cb4debbde7e5003e40b0fdf6ae630"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"1617de6ea324cfb7bed766b923c929745aed3459","unresolved":false,"context_lines":[{"line_number":168,"context_line":"            self.group_snapshot_api.reset_group_snapshot_status(context,"},{"line_number":169,"context_line":"                                                                gsnapshot,"},{"line_number":170,"context_line":"                                                                status)"},{"line_number":171,"context_line":"            notifier.info(context, \u0027groupsnapshots.reset_status.end\u0027,"},{"line_number":172,"context_line":"                          {\u0027id\u0027: id,"},{"line_number":173,"context_line":"                           \u0027update\u0027: status})"},{"line_number":174,"context_line":"        except exception.GroupSnapshotNotFound:"}],"source_content_type":"text/x-python","patch_set":15,"id":"1a6eadb0_e5bd9903","line":171,"range":{"start_line":171,"start_character":11,"end_line":171,"end_character":25},"updated":"2016-12-19 16:21:46.000000000","message":"notifier.info?","commit_id":"70171dc2ff6b085db90228d98638047bfc6984ba"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"78a24e2c65872bbf2164e0c2414a034fa0d178b3","unresolved":false,"context_lines":[{"line_number":182,"context_line":"            notifier.error(context, \u0027groupsnapshots.reset_status\u0027,"},{"line_number":183,"context_line":"                           {\u0027error_message\u0027: error.message,"},{"line_number":184,"context_line":"                            \u0027id\u0027: id})"},{"line_number":185,"context_line":"            raise exc.HTTPBadRequest(explanation\u003derror.message)"},{"line_number":186,"context_line":"        return webob.Response(status_int\u003d202)"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1a6eadb0_6b50330b","line":185,"updated":"2016-12-20 20:54:15.000000000","message":"I\u0027m getting the following error message:\n\nERROR: Reset state for group snapshot c6b4c2f1-1999-4b83-985c-2be0e71b4e21 failed: Invalid GroupSnapshot Status: %(reason)s (HTTP 400)\n\nThis is because message is set to \"Invalid GroupSnapshot Status: %(reason)s\".  \"msg\" in the exception is the one you should use.  Should be changed to the following:\n\nraise exc.HTTPBadRequest(explanation\u003derror.msg)\n\nNow I\u0027m getting the correct message:\n\nERROR: Reset state for group snapshot c6b4c2f1-1999-4b83-985c-2be0e71b4e21 failed: Invalid GroupSnapshot Status: Group snapshot status: avail is invalid, valid statuses are: (\u0027error\u0027, \u0027available\u0027, \u0027creating\u0027, \u0027deleting\u0027, \u0027deleted\u0027, \u0027updating\u0027, \u0027error_deleting\u0027). (HTTP 400)\n\nSo you should change all the error.message to error.msg.","commit_id":"89413d47e0d81035b3857ae72d5834d952fc08a9"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0b921dc74323d67d7838acaf8524d66f625eb309","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def reset_status(self, req, id, body):"},{"line_number":148,"context_line":"        return self._reset_status(req, id, body)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _reset_status(self, req, id, body):"},{"line_number":151,"context_line":"        \"\"\"Reset status on group snapshots\"\"\""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"1a6eadb0_5b06c9ce","line":150,"updated":"2016-12-21 11:38:13.000000000","message":"id param should be validated too","commit_id":"9e1b7759fdce4cf8748de960f0e820f81e08133a"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"52a4bdc041706f74967940704049fd607aa53f65","unresolved":false,"context_lines":[{"line_number":147,"context_line":"    def reset_status(self, req, id, body):"},{"line_number":148,"context_line":"        return self._reset_status(req, id, body)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def _reset_status(self, req, id, body):"},{"line_number":151,"context_line":"        \"\"\"Reset status on group snapshots\"\"\""},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"}],"source_content_type":"text/x-python","patch_set":20,"id":"1a6eadb0_d25ab3f1","line":150,"in_reply_to":"1a6eadb0_5b06c9ce","updated":"2016-12-21 14:39:17.000000000","message":"As discussed in IRC, it will be validated inside \u0027get_group_snapsho\u0027 call","commit_id":"9e1b7759fdce4cf8748de960f0e820f81e08133a"}],"cinder/api/v3/router.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"8d3ca29a15676664e0754cee4c5f51f6f34c94b5","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                       \"/{project_id}/group_snapshots/{id}/action\","},{"line_number":110,"context_line":"                       controller\u003dself.resources[\"group_snapshots\"],"},{"line_number":111,"context_line":"                       action\u003d\"action\","},{"line_number":112,"context_line":"                       conditions\u003d{\"method\": [\"POST\"]})"},{"line_number":113,"context_line":"        self.resources[\u0027snapshots\u0027] \u003d snapshots.create_resource(ext_mgr)"},{"line_number":114,"context_line":"        mapper.resource(\"snapshot\", \"snapshots\","},{"line_number":115,"context_line":"                        controller\u003dself.resources[\u0027snapshots\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_2ceba214","line":112,"updated":"2016-12-14 22:09:47.000000000","message":"This should remain as \"action\".","commit_id":"f0fa6ae9921cb4debbde7e5003e40b0fdf6ae630"}],"cinder/exception.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"class InvalidGroupSnapshotStatus(Invalid):"},{"line_number":1075,"context_line":"    message \u003d _(\"Invalid Group Status: %(reason)s\")"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"# Hitachi Block Storage Driver"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_8ec7c144","line":1075,"updated":"2016-12-12 22:48:46.000000000","message":"GroupSnapshot","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":1072,"context_line":""},{"line_number":1073,"context_line":""},{"line_number":1074,"context_line":"class InvalidGroupSnapshotStatus(Invalid):"},{"line_number":1075,"context_line":"    message \u003d _(\"Invalid Group Status: %(reason)s\")"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"# Hitachi Block Storage Driver"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_da6a451a","line":1075,"in_reply_to":"1a6eadb0_8ec7c144","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"}],"cinder/group/api.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":844,"context_line":"    def reset_group_snapshot_status(self, context, gsnapshot, status):"},{"line_number":845,"context_line":"        \"\"\"Reset status of group snapshot\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_6eca6551","line":847,"updated":"2016-12-12 22:48:46.000000000","message":"reset_group_snapshot_status","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":844,"context_line":"    def reset_group_snapshot_status(self, context, gsnapshot, status):"},{"line_number":845,"context_line":"        \"\"\"Reset status of group snapshot\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_da096533","line":847,"in_reply_to":"1a6eadb0_6eca6551","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        \"\"\"Reset status of group snapshot\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_2efead6b","line":848,"updated":"2016-12-12 22:48:46.000000000","message":"Please use GroupStatus","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        \"\"\"Reset status of group snapshot\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_3d4df372","line":848,"in_reply_to":"1a6eadb0_2efead6b","updated":"2016-12-13 08:29:40.000000000","message":"we wanna reset the status of groupsnapshot, why should we use\ngroup status instead of snapshot status(although the fields of this two are identical..)","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"2b6561feb69573f1b24b842d26ed0ebd165275d8","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        \"\"\"Reset status of group snapshot\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_4391e098","line":848,"in_reply_to":"1a6eadb0_3d4df372","updated":"2016-12-13 14:21:51.000000000","message":"Yes, this is a tricky one. We are not resetting the group status, but the snapshot status of the entire group. So, should we use SnapshotStatus, or do we need a special GroupSnapshotStatus?\nI think using SnapshotStatus might be enough, but xing or others might disagree...","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"674c08a53d11d8eb2278738557b9fba488d95354","unresolved":false,"context_lines":[{"line_number":845,"context_line":"        \"\"\"Reset status of group snapshot\"\"\""},{"line_number":846,"context_line":""},{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_6ef78af5","line":848,"in_reply_to":"1a6eadb0_4391e098","updated":"2016-12-13 23:13:33.000000000","message":"I have been using GroupStatus for GroupSnapshotStatus.  SnapshotStatus is different.  It is for a single snapshot.  We could add a GroupSnapshotStatus to be more clear, but GroupStatus right now has all statuses needed for GroupSnapshot.","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""},{"line_number":852,"context_line":"                    \"valid status are: %(valid)s.\") % msg_status"},{"line_number":853,"context_line":"            raise exception.InvalidGroupSnapshotStatus(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_0e301156","line":850,"updated":"2016-12-12 22:48:46.000000000","message":"GroupStatus","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""},{"line_number":852,"context_line":"                    \"valid status are: %(valid)s.\") % msg_status"},{"line_number":853,"context_line":"            raise exception.InvalidGroupSnapshotStatus(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_dd3ebfb7","line":850,"in_reply_to":"1a6eadb0_0e301156","updated":"2016-12-13 08:29:40.000000000","message":"for which reason should we use group status here, maybe I misunderstand something.","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"674c08a53d11d8eb2278738557b9fba488d95354","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        check_policy(context, \u0027reset_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.SnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg_status \u003d {\u0027invalid\u0027: status,"},{"line_number":850,"context_line":"                          \u0027valid\u0027: c_fields.SnapshotStatus.ALL}"},{"line_number":851,"context_line":"            msg \u003d _(\"Group snapshot status: %(invalid)s is invalid, \""},{"line_number":852,"context_line":"                    \"valid status are: %(valid)s.\") % msg_status"},{"line_number":853,"context_line":"            raise exception.InvalidGroupSnapshotStatus(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_eebaba09","line":850,"in_reply_to":"1a6eadb0_dd3ebfb7","updated":"2016-12-13 23:13:33.000000000","message":"See above.","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2baecee95054eca9795cd1df64b7302615b56aa4","unresolved":false,"context_lines":[{"line_number":847,"context_line":"        check_policy(context, \u0027reset_group_snapshot_status\u0027)"},{"line_number":848,"context_line":"        if status not in c_fields.GroupSnapshotStatus.ALL:"},{"line_number":849,"context_line":"            msg \u003d _(\"Group snapshot status: %(status)s is invalid, \""},{"line_number":850,"context_line":"                    \"valid status are: \""},{"line_number":851,"context_line":"                    \"%(valid)s.\") % {\u0027status\u0027: status,"},{"line_number":852,"context_line":"                                     \u0027valid\u0027: c_fields.GroupSnapshotStatus.ALL}"},{"line_number":853,"context_line":"            raise exception.InvalidGroupSnapshotStatus(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_793ae835","line":850,"range":{"start_line":850,"start_character":27,"end_line":850,"end_character":33},"updated":"2016-12-20 11:15:17.000000000","message":"statuses","commit_id":"bcb05bb80ecd31ebd12b86e62301fad6e91cd2dd"}],"cinder/objects/fields.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"564eb426d7dcac9a958523665ef8c7cab0d7e3f7","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    DELETING \u003d \u0027deleting\u0027"},{"line_number":88,"context_line":"    DELETED \u003d \u0027deleted\u0027"},{"line_number":89,"context_line":"    UPDATING \u003d \u0027updating\u0027"},{"line_number":90,"context_line":"    IN_USE \u003d \u0027in-use\u0027"},{"line_number":91,"context_line":"    ERROR_DELETING \u003d \u0027error_deleting\u0027"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    ALL \u003d (ERROR, AVAILABLE, CREATING, DELETING, DELETED,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_f9b781d5","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":21},"updated":"2016-12-15 15:24:31.000000000","message":"Can group snapshot be in-use?","commit_id":"8e466147cab0c99bd4d049196e12884e8b0866d8"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"92f67155d567845b2df2e25f458a0339beadd816","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    DELETING \u003d \u0027deleting\u0027"},{"line_number":88,"context_line":"    DELETED \u003d \u0027deleted\u0027"},{"line_number":89,"context_line":"    UPDATING \u003d \u0027updating\u0027"},{"line_number":90,"context_line":"    IN_USE \u003d \u0027in-use\u0027"},{"line_number":91,"context_line":"    ERROR_DELETING \u003d \u0027error_deleting\u0027"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    ALL \u003d (ERROR, AVAILABLE, CREATING, DELETING, DELETED,"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_9ffd7b70","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":21},"in_reply_to":"1a6eadb0_f9b781d5","updated":"2016-12-16 00:45:05.000000000","message":"Actually I am not quite sure about this:), I would like xing-yang to look at this....","commit_id":"8e466147cab0c99bd4d049196e12884e8b0866d8"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2baecee95054eca9795cd1df64b7302615b56aa4","unresolved":false,"context_lines":[{"line_number":87,"context_line":"    DELETING \u003d \u0027deleting\u0027"},{"line_number":88,"context_line":"    DELETED \u003d \u0027deleted\u0027"},{"line_number":89,"context_line":"    UPDATING \u003d \u0027updating\u0027"},{"line_number":90,"context_line":"    IN_USE \u003d \u0027in-use\u0027"},{"line_number":91,"context_line":"    ERROR_DELETING \u003d \u0027error_deleting\u0027"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    ALL \u003d (ERROR, AVAILABLE, CREATING, DELETING, DELETED,"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a6eadb0_79abc81e","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":21},"updated":"2016-12-20 11:15:17.000000000","message":"I\u0027ve looked through the code and I\u0027m pretty sure a GroupSnapshot cannot have in-use status. Please remove it. If it\u0027s used somewhere in unit tests, then tests should be fixed as well.","commit_id":"bcb05bb80ecd31ebd12b86e62301fad6e91cd2dd"}],"cinder/tests/functional/test_group_snapshots.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0b921dc74323d67d7838acaf8524d66f625eb309","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        self.assertFalse(found_group)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_reset_group_snapshot(self):"},{"line_number":300,"context_line":"        # Create group"},{"line_number":301,"context_line":"        group1 \u003d self.api.post_group("},{"line_number":302,"context_line":"            {\u0027group\u0027: {\u0027group_type\u0027: self.group_type[\u0027id\u0027],"},{"line_number":303,"context_line":"                       \u0027volume_types\u0027: [self.volume_type[\u0027id\u0027]]}})"}],"source_content_type":"text/x-python","patch_set":20,"id":"1a6eadb0_dba499a7","line":300,"updated":"2016-12-21 11:38:13.000000000","message":"Thanks for adding functional tests","commit_id":"9e1b7759fdce4cf8748de960f0e820f81e08133a"}],"cinder/tests/unit/api/v3/test_group_snapshots.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":433,"context_line":"               exception.GroupSnapshotNotFound)"},{"line_number":434,"context_line":"              )"},{"line_number":435,"context_line":"    @ddt.unpack"},{"line_number":436,"context_line":"    def test_reset_group_status_illegal(self, version, snapshot_id,"},{"line_number":437,"context_line":"                                        status, exceptions):"},{"line_number":438,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/groups/%s/action\u0027 %"},{"line_number":439,"context_line":"                                      (fake.PROJECT_ID, snapshot_id),"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_8e518165","line":436,"updated":"2016-12-12 22:48:46.000000000","message":"s/group/group_snapshot\n\ns/snapshot_id/group_snapshot_id","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":433,"context_line":"               exception.GroupSnapshotNotFound)"},{"line_number":434,"context_line":"              )"},{"line_number":435,"context_line":"    @ddt.unpack"},{"line_number":436,"context_line":"    def test_reset_group_status_illegal(self, version, snapshot_id,"},{"line_number":437,"context_line":"                                        status, exceptions):"},{"line_number":438,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/groups/%s/action\u0027 %"},{"line_number":439,"context_line":"                                      (fake.PROJECT_ID, snapshot_id),"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_bd966392","line":436,"in_reply_to":"1a6eadb0_8e518165","updated":"2016-12-13 08:29:40.000000000","message":"My fault, copy-and-paste :(","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    @ddt.unpack"},{"line_number":436,"context_line":"    def test_reset_group_status_illegal(self, version, snapshot_id,"},{"line_number":437,"context_line":"                                        status, exceptions):"},{"line_number":438,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/groups/%s/action\u0027 %"},{"line_number":439,"context_line":"                                      (fake.PROJECT_ID, snapshot_id),"},{"line_number":440,"context_line":"                                      version\u003dversion)"},{"line_number":441,"context_line":"        body \u003d {\"reset_status\": {"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_ce4b79af","line":438,"updated":"2016-12-12 22:48:46.000000000","message":"s/groups/group_snapshots","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    @ddt.unpack"},{"line_number":436,"context_line":"    def test_reset_group_status_illegal(self, version, snapshot_id,"},{"line_number":437,"context_line":"                                        status, exceptions):"},{"line_number":438,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/groups/%s/action\u0027 %"},{"line_number":439,"context_line":"                                      (fake.PROJECT_ID, snapshot_id),"},{"line_number":440,"context_line":"                                      version\u003dversion)"},{"line_number":441,"context_line":"        body \u003d {\"reset_status\": {"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_9d17e750","line":438,"in_reply_to":"1a6eadb0_ce4b79af","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        group_snapshot \u003d utils.create_group_snapshot("},{"line_number":454,"context_line":"            self.context,"},{"line_number":455,"context_line":"            group_id\u003dgroup.id,"},{"line_number":456,"context_line":"            status\u003dfields.SnapshotStatus.CREATING)"},{"line_number":457,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/group_snapshots/%s/action\u0027 %"},{"line_number":458,"context_line":"                                      (fake.PROJECT_ID, group_snapshot.id),"},{"line_number":459,"context_line":"                                      version\u003d\u00273.16\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_ee5f5573","line":456,"updated":"2016-12-12 22:48:46.000000000","message":"GroupStatus","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        group_snapshot \u003d utils.create_group_snapshot("},{"line_number":473,"context_line":"            self.context,"},{"line_number":474,"context_line":"            group_id\u003dgroup.id,"},{"line_number":475,"context_line":"            status\u003dfields.SnapshotStatus.CREATING)"},{"line_number":476,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/group_snapshots/%s/action\u0027 %"},{"line_number":477,"context_line":"                                      (fake.PROJECT_ID, group_snapshot.id),"},{"line_number":478,"context_line":"                                      version\u003d\u00273.16\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_ee7835fb","line":475,"updated":"2016-12-12 22:48:46.000000000","message":"GroupStatus","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":477,"context_line":"                                      (fake.PROJECT_ID, group_snapshot.id),"},{"line_number":478,"context_line":"                                      version\u003d\u00273.16\u0027)"},{"line_number":479,"context_line":"        body \u003d {\"reset_status\": {"},{"line_number":480,"context_line":"            \"status\": fields.SnapshotStatus.AVAILABLE"},{"line_number":481,"context_line":"        }}"},{"line_number":482,"context_line":"        response \u003d self.controller.reset_status(req, group_snapshot.id,"},{"line_number":483,"context_line":"                                                body)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_4e8849e8","line":480,"updated":"2016-12-12 22:48:46.000000000","message":"GroupStatus","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"8d3ca29a15676664e0754cee4c5f51f6f34c94b5","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        group_snapshot \u003d utils.create_group_snapshot("},{"line_number":454,"context_line":"            self.context,"},{"line_number":455,"context_line":"            group_id\u003dgroup.id,"},{"line_number":456,"context_line":"            status\u003dfields.SnapshotStatus.CREATING)"},{"line_number":457,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/group_snapshots/%s/action\u0027 %"},{"line_number":458,"context_line":"                                      (fake.PROJECT_ID, group_snapshot.id),"},{"line_number":459,"context_line":"                                      version\u003d\u00273.16\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_ac4df23f","line":456,"updated":"2016-12-14 22:09:47.000000000","message":"GroupSnapshotStatus","commit_id":"f0fa6ae9921cb4debbde7e5003e40b0fdf6ae630"}],"cinder/tests/unit/group/test_groups_api.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":484,"context_line":"        mock_time_util.return_value \u003d \"time_now\""},{"line_number":485,"context_line":"        self.group_api.reset_group_snapshot_status(self.ctxt,"},{"line_number":486,"context_line":"                                                   mock_group_snapshot,"},{"line_number":487,"context_line":"                                                   fields.SnapshotStatus.ERROR)"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"        update_field \u003d {\u0027updated_at\u0027: \"time_now\","},{"line_number":490,"context_line":"                        \u0027status\u0027: fields.GroupStatus.ERROR}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a6eadb0_cee2999f","line":487,"updated":"2016-12-12 22:48:46.000000000","message":"GroupStatus","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"}],"cinder/tests/unit/policy.json":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    \"group:update\": \"\","},{"line_number":125,"context_line":"    \"group:get\": \"\","},{"line_number":126,"context_line":"    \"group:get_all\": \"\","},{"line_number":127,"context_line":"    \"group:reset_snapshot_status\":\"\","},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    \"group:create_group_snapshot\": \"\","},{"line_number":130,"context_line":"    \"group:delete_group_snapshot\": \"\","}],"source_content_type":"application/json","patch_set":7,"id":"1a6eadb0_6e026540","line":127,"updated":"2016-12-12 22:48:46.000000000","message":"reset_group_snapshot_status","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    \"group:update\": \"\","},{"line_number":125,"context_line":"    \"group:get\": \"\","},{"line_number":126,"context_line":"    \"group:get_all\": \"\","},{"line_number":127,"context_line":"    \"group:reset_snapshot_status\":\"\","},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    \"group:create_group_snapshot\": \"\","},{"line_number":130,"context_line":"    \"group:delete_group_snapshot\": \"\","}],"source_content_type":"application/json","patch_set":7,"id":"1a6eadb0_bd72e37a","line":127,"in_reply_to":"1a6eadb0_6e026540","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2baecee95054eca9795cd1df64b7302615b56aa4","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    \"group:update\": \"\","},{"line_number":125,"context_line":"    \"group:get\": \"\","},{"line_number":126,"context_line":"    \"group:get_all\": \"\","},{"line_number":127,"context_line":"    \"group:reset_group_snapshot_status\":\"\","},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    \"group:create_group_snapshot\": \"\","},{"line_number":130,"context_line":"    \"group:delete_group_snapshot\": \"\","}],"source_content_type":"application/json","patch_set":17,"id":"1a6eadb0_ac18c076","line":127,"range":{"start_line":127,"start_character":0,"end_line":127,"end_character":43},"updated":"2016-12-20 11:15:17.000000000","message":"This should go to the next section, where other policies related to group snapshots are placed.","commit_id":"bcb05bb80ecd31ebd12b86e62301fad6e91cd2dd"}],"etc/cinder/policy.json":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"299299e79881aff5fc48eb1ba9a67a6362b210cd","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    \"group:update\": \"rule:admin_or_owner\","},{"line_number":120,"context_line":"    \"group:get\": \"rule:admin_or_owner\","},{"line_number":121,"context_line":"    \"group:get_all\": \"rule:admin_or_owner\","},{"line_number":122,"context_line":"    \"group:reset_snapshot_status\":\"rule:admin_api\","},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    \"group:create_group_snapshot\": \"\","},{"line_number":125,"context_line":"    \"group:delete_group_snapshot\": \"rule:admin_or_owner\","}],"source_content_type":"application/json","patch_set":7,"id":"1a6eadb0_cef9b94f","line":122,"updated":"2016-12-12 22:48:46.000000000","message":"reset_group_snapshot_status","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"02ab8fe93e252ade0cdf132836259fa568b9481c","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    \"group:update\": \"rule:admin_or_owner\","},{"line_number":120,"context_line":"    \"group:get\": \"rule:admin_or_owner\","},{"line_number":121,"context_line":"    \"group:get_all\": \"rule:admin_or_owner\","},{"line_number":122,"context_line":"    \"group:reset_snapshot_status\":\"rule:admin_api\","},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    \"group:create_group_snapshot\": \"\","},{"line_number":125,"context_line":"    \"group:delete_group_snapshot\": \"rule:admin_or_owner\","}],"source_content_type":"application/json","patch_set":7,"id":"1a6eadb0_5d0aafd3","line":122,"in_reply_to":"1a6eadb0_cef9b94f","updated":"2016-12-13 08:29:40.000000000","message":"Done","commit_id":"618f75bff045767159c9efe972eb023220b2e6b6"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2baecee95054eca9795cd1df64b7302615b56aa4","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    \"group:update\": \"rule:admin_or_owner\","},{"line_number":120,"context_line":"    \"group:get\": \"rule:admin_or_owner\","},{"line_number":121,"context_line":"    \"group:get_all\": \"rule:admin_or_owner\","},{"line_number":122,"context_line":"    \"group:reset_group_snapshot_status\":\"rule:admin_api\","},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    \"group:create_group_snapshot\": \"\","},{"line_number":125,"context_line":"    \"group:delete_group_snapshot\": \"rule:admin_or_owner\","}],"source_content_type":"application/json","patch_set":17,"id":"1a6eadb0_ac2fe086","line":122,"range":{"start_line":122,"start_character":0,"end_line":122,"end_character":57},"updated":"2016-12-20 11:15:17.000000000","message":"Same here, should be moved to the next section.","commit_id":"bcb05bb80ecd31ebd12b86e62301fad6e91cd2dd"}]}
