)]}'
{".gitreview":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e44c1a5f0810bb35d4f0f312a786a9a8a26d5ac8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[gerrit]"},{"line_number":2,"context_line":"host\u003dreview.openstack.org"},{"line_number":3,"context_line":"port\u003d29418"},{"line_number":4,"context_line":"project\u003dopenstack/cinder.git"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7f231b9d_3a7107a9","side":"PARENT","line":4,"updated":"2017-06-19 13:13:26.000000000","message":"This file should not show up in the review.","commit_id":"1fa43b8f79e4cbb8781d3a87d854f9f871bef579"}],"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"e44c1a5f0810bb35d4f0f312a786a9a8a26d5ac8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ProphetStor: Support generic group"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add CG capability to Groups"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4d0c2d8d9add815d5d0e4e4f3e36d7c1ace5f3b5"},{"line_number":12,"context_line":"Close-Bug: #1682243"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7f231b9d_9a9dbbbd","line":9,"updated":"2017-06-19 13:13:26.000000000","message":"Add CG capability to Groups in the ProphetStor driver.","commit_id":"84c975ecd76857ab44e209daf7f5ac5cf61a1b2d"}],"cinder/volume/drivers/prophetstor/dplcommon.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4d870e7cdd7f44c1078fff132862a19453217bd9","unresolved":false,"context_lines":[{"line_number":849,"context_line":"        LOG.info(\u0027Start to create consistency group: %(group_name)s \u0027"},{"line_number":850,"context_line":"                 \u0027id: %(id)s\u0027,"},{"line_number":851,"context_line":"                 {\u0027group_name\u0027: group.name, \u0027id\u0027: group.id})"},{"line_number":852,"context_line":"        model_update \u003d {\u0027status\u0027: fields.ConsistencyGroupStatus.AVAILABLE}"},{"line_number":853,"context_line":"        try:"},{"line_number":854,"context_line":"            ret, output \u003d self.dpl.create_vg("},{"line_number":855,"context_line":"                self._conver_uuid2hex(group.id),"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_54a1aa93","line":852,"range":{"start_line":852,"start_character":34,"end_line":852,"end_character":73},"updated":"2017-06-24 19:54:10.000000000","message":"Please use fields.GroupStatus.AVAILABLE","commit_id":"4816b1cda5a4399a6c98e2979f26bc16537ea7ed"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4d870e7cdd7f44c1078fff132862a19453217bd9","unresolved":false,"context_lines":[{"line_number":893,"context_line":"                ret \u003d errno.EFAULT"},{"line_number":894,"context_line":"                volume_ref[\u0027status\u0027] \u003d \u0027error_deleting\u0027"},{"line_number":895,"context_line":"                model_update[\u0027status\u0027] \u003d ("},{"line_number":896,"context_line":"                    fields.ConsistencyGroupStatus.ERROR_DELETING)"},{"line_number":897,"context_line":"        if ret \u003d\u003d 0:"},{"line_number":898,"context_line":"            model_update[\u0027status\u0027] \u003d fields.ConsistencyGroupStatus.DELETED"},{"line_number":899,"context_line":"        return model_update, volumes"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_34aaae70","line":896,"range":{"start_line":896,"start_character":27,"end_line":896,"end_character":49},"updated":"2017-06-24 19:54:10.000000000","message":"GroupStatus.\n\nPlease replace all fields.ConsistencyGroupStatus with fields.GroupStatus.","commit_id":"4816b1cda5a4399a6c98e2979f26bc16537ea7ed"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"4d870e7cdd7f44c1078fff132862a19453217bd9","unresolved":false,"context_lines":[{"line_number":996,"context_line":"        return model_update, None, None"},{"line_number":997,"context_line":""},{"line_number":998,"context_line":"    def create_group(self, context, group):"},{"line_number":999,"context_line":"        return self._create_consistencygroup(context, group)"},{"line_number":1000,"context_line":""},{"line_number":1001,"context_line":"    def delete_group(self, context, group, volumes):"},{"line_number":1002,"context_line":"        return self._delete_consistencygroup(context, group, volumes)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_f4b9d6cb","line":999,"updated":"2017-06-24 19:54:10.000000000","message":"Check whether the group supports consistent group snapshot.  If so, call self._create_consistencygroup(context, group); otherwise, raise NotImplementedError.  See example here: \n\nhttps://github.com/openstack/cinder/blob/master/cinder/volume/drivers/dell_emc/scaleio/driver.py#L1483\n\nUse the similar logic for delete_group, update_group, create_group_snapshot, delete_group_snapshot, and create_group_from_src.","commit_id":"4816b1cda5a4399a6c98e2979f26bc16537ea7ed"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"69e137463d79ea5d613edcfa317620b00a9cd890","unresolved":false,"context_lines":[{"line_number":951,"context_line":"        return model_update, snapshots"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"    def update_group(self, context, group, add_volumes\u003dNone,"},{"line_number":954,"context_line":"                     remove_volumes\u003dNone):"},{"line_number":955,"context_line":"        addvollist \u003d []"},{"line_number":956,"context_line":"        removevollist \u003d []"},{"line_number":957,"context_line":"        cgid \u003d group.id"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_917664a4","line":954,"updated":"2017-07-02 14:42:19.000000000","message":"This function also needs to check if volume_utils.is_group_a_cg_snapshot_type(group).","commit_id":"9e94c7e5df9dd43efa048daeb03040d4a267eb41"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"69e137463d79ea5d613edcfa317620b00a9cd890","unresolved":false,"context_lines":[{"line_number":1068,"context_line":""},{"line_number":1069,"context_line":"        if volume.group_id:"},{"line_number":1070,"context_line":"            try:"},{"line_number":1071,"context_line":"                self._join_volume_group(volume, volume.group_id)"},{"line_number":1072,"context_line":"            except Exception:"},{"line_number":1073,"context_line":"                # Delete volume if volume failed to join group."},{"line_number":1074,"context_line":"                self.dpl.delete_vdev(self._conver_uuid2hex(volume[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f1d235d_5170cca5","line":1071,"range":{"start_line":1071,"start_character":21,"end_line":1071,"end_character":39},"updated":"2017-07-02 14:42:19.000000000","message":"This is only for consistency group, right?  So you should check whether  volume_utils.is_group_a_cg_snapshot_type(volume.group) is True.  Only call self._join_volume_group if the group supports CG.  Otherwise, let Cinder manage the group relationship.","commit_id":"9e94c7e5df9dd43efa048daeb03040d4a267eb41"}],"releasenotes/notes/prophetstor-generic-groups-c7136c32b2f75c0a.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8aaa3c29294c93d00ca355588beabcf5c490967e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tures:"},{"line_number":2,"context_line":"  - Added consistent group capability to generic volume groups in ProphetStor driver."},{"line_number":3,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1f1a1f67_a6dbab1f","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":5},"updated":"2017-07-20 12:21:08.000000000","message":"The beginning part of the release note got cut off somehow. Add leading \"---\", set section name to \"features\" and remove extra blank lines at the end.","commit_id":"2b97298aded1971303cc81a7081b579fc2ab0907"},{"author":{"_account_id":9416,"name":"Rick Chen","email":"rick.chen@prophetstor.com","username":"Rick"},"change_message_id":"07c83cac6ec323318becae38824731c8fb7ff82a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tures:"},{"line_number":2,"context_line":"  - Added consistent group capability to generic volume groups in ProphetStor driver."},{"line_number":3,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1f1a1f67_8e879c10","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":5},"in_reply_to":"1f1a1f67_a6184b84","updated":"2017-07-20 16:02:04.000000000","message":"Done","commit_id":"2b97298aded1971303cc81a7081b579fc2ab0907"},{"author":{"_account_id":9416,"name":"Rick Chen","email":"rick.chen@prophetstor.com","username":"Rick"},"change_message_id":"07c83cac6ec323318becae38824731c8fb7ff82a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tures:"},{"line_number":2,"context_line":"  - Added consistent group capability to generic volume groups in ProphetStor driver."},{"line_number":3,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1f1a1f67_ae8258ff","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":5},"in_reply_to":"1f1a1f67_a6dbab1f","updated":"2017-07-20 16:02:04.000000000","message":"Done","commit_id":"2b97298aded1971303cc81a7081b579fc2ab0907"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e3b86c1f006423b9f9012196b78922a2d4940f7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"tures:"},{"line_number":2,"context_line":"  - Added consistent group capability to generic volume groups in ProphetStor driver."},{"line_number":3,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":10,"id":"1f1a1f67_a6184b84","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":5},"in_reply_to":"1f1a1f67_a6dbab1f","updated":"2017-07-20 12:31:26.000000000","message":"Good catch!","commit_id":"2b97298aded1971303cc81a7081b579fc2ab0907"}]}
