)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"92522b94f4e4158d03435b973fefa0d890cb1ed6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Right now, the rbd backend does not support to list manageable"},{"line_number":10,"context_line":"volume and snapshot. So add it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2a8c007c445992c5d95481baf22535019348e256"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f287b81_67e429ad","line":11,"updated":"2017-09-06 02:25:12.000000000","message":"This is better to add a bp for Queens now.","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"e301d19e7373eab0326ee55a1ff5066cc314a73c","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Right now, the rbd backend does not support to list manageable"},{"line_number":10,"context_line":"volume and snapshot. So add it."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2a8c007c445992c5d95481baf22535019348e256"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7f515b1d_352e8543","line":11,"updated":"2017-09-25 08:36:22.000000000","message":"Sorry, miss a bp here?","commit_id":"deedda9df3a6261f729ae24ca12c37c618e71f4e"}],"cinder/exception.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"709664511fee2136088f55961069430f42310d9c","unresolved":false,"context_lines":[{"line_number":862,"context_line":""},{"line_number":863,"context_line":""},{"line_number":864,"context_line":"class ManageResourceTypeError(CinderException):"},{"line_number":865,"context_line":"    message \u003d _(\"Resource Type error!\")"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"class InvalidReplicationTarget(Invalid):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_00d0b9f6","line":865,"range":{"start_line":865,"start_character":36,"end_line":865,"end_character":37},"updated":"2017-09-05 18:02:04.000000000","message":"Please remove the exclamation point.","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"189c7dd561b140de62f894293956aa6d360bbabc","unresolved":false,"context_lines":[{"line_number":862,"context_line":""},{"line_number":863,"context_line":""},{"line_number":864,"context_line":"class ManageResourceTypeError(CinderException):"},{"line_number":865,"context_line":"    message \u003d _(\"Resource Type error!\")"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":""},{"line_number":868,"context_line":"class InvalidReplicationTarget(Invalid):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_a2137eb8","line":865,"range":{"start_line":865,"start_character":36,"end_line":865,"end_character":37},"updated":"2017-10-10 14:43:58.000000000","message":"This should just be a \u0027.\u0027 .","commit_id":"deedda9df3a6261f729ae24ca12c37c618e71f4e"}],"cinder/tests/unit/volume/drivers/test_rbd.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"8e7eb11de5231c6b208b2498e4077bdae923d7e7","unresolved":false,"context_lines":[{"line_number":1769,"context_line":"            mock_1.size.return_value, mock_2.size.return_value,\\"},{"line_number":1770,"context_line":"                mock_3.size.return_value \u003d 1, 2, 3"},{"line_number":1771,"context_line":"            mock_list.return_value \u003d ["},{"line_number":1772,"context_line":"                \u0027volume-00000000-0000-0000-0000-000000000000\u0027,"},{"line_number":1773,"context_line":"                \u0027volume-00000000-0000-0000-0000-000000000001\u0027,"},{"line_number":1774,"context_line":"                \u0027abc\u0027]"},{"line_number":1775,"context_line":"            res \u003d self.driver.get_manageable_volumes(cinder_vols, None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_e8e87e7c","line":1772,"range":{"start_line":1772,"start_character":30,"end_line":1772,"end_character":31},"updated":"2017-07-28 16:32:26.000000000","message":"Does it mean that RBD image should start with \u0027volume-\u0027 prefix?","commit_id":"b92bca744efc3b5718239c46bb8a36ca22c953d2"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"c7821f46c13c196a4ff5a6713f02b960f061ae3a","unresolved":false,"context_lines":[{"line_number":1769,"context_line":"            mock_1.size.return_value, mock_2.size.return_value,\\"},{"line_number":1770,"context_line":"                mock_3.size.return_value \u003d 1, 2, 3"},{"line_number":1771,"context_line":"            mock_list.return_value \u003d ["},{"line_number":1772,"context_line":"                \u0027volume-00000000-0000-0000-0000-000000000000\u0027,"},{"line_number":1773,"context_line":"                \u0027volume-00000000-0000-0000-0000-000000000001\u0027,"},{"line_number":1774,"context_line":"                \u0027abc\u0027]"},{"line_number":1775,"context_line":"            res \u003d self.driver.get_manageable_volumes(cinder_vols, None,"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_c9043a7e","line":1772,"range":{"start_line":1772,"start_character":30,"end_line":1772,"end_character":31},"in_reply_to":"ff346bd7_e8e87e7c","updated":"2017-08-01 03:20:17.000000000","message":"No, see function extract_id_from_volume_name","commit_id":"b92bca744efc3b5718239c46bb8a36ca22c953d2"}],"cinder/volume/drivers/rbd.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"a32ebf1cbaebc3037972fe5d0f11c3d8a9961592","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1331,"context_line":"                                      sort_dirs):"},{"line_number":1332,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1333,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"},{"line_number":1334,"context_line":"            return []"},{"line_number":1335,"context_line":""},{"line_number":1336,"context_line":"        entries, vols_s \u003d [], None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_9eeb9376","line":1333,"updated":"2017-07-06 10:33:19.000000000","message":"IMO, we should rase InvalidInput exception here","commit_id":"ce360198a274f7378a3482871193e11225423833"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"7b2d3c3256812499b0b33362ca522d99c6e713a4","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1331,"context_line":"                                      sort_dirs):"},{"line_number":1332,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1333,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"},{"line_number":1334,"context_line":"            return []"},{"line_number":1335,"context_line":""},{"line_number":1336,"context_line":"        entries, vols_s \u003d [], None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_a8eb9510","line":1333,"in_reply_to":"3f1d235d_9eeb9376","updated":"2017-12-20 10:00:18.000000000","message":"ok","commit_id":"ce360198a274f7378a3482871193e11225423833"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"a32ebf1cbaebc3037972fe5d0f11c3d8a9961592","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"                                self, vol,"},{"line_number":1365,"context_line":"                                snap\u003dsnap, read_only\u003dTrue) as Snap:"},{"line_number":1366,"context_line":"                            size \u003d Snap.size()"},{"line_number":1367,"context_line":"                        v_info[\"reference\"] \u003d snap"},{"line_number":1368,"context_line":"                        v_info[\"size\"] \u003d size"},{"line_number":1369,"context_line":"                        v_info[\"source_reference\"] \u003d vol"},{"line_number":1370,"context_line":"                        if snap in cinder_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_fe9727eb","line":1367,"updated":"2017-07-06 10:33:19.000000000","message":"v_info could be None here","commit_id":"ce360198a274f7378a3482871193e11225423833"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"7b2d3c3256812499b0b33362ca522d99c6e713a4","unresolved":false,"context_lines":[{"line_number":1364,"context_line":"                                self, vol,"},{"line_number":1365,"context_line":"                                snap\u003dsnap, read_only\u003dTrue) as Snap:"},{"line_number":1366,"context_line":"                            size \u003d Snap.size()"},{"line_number":1367,"context_line":"                        v_info[\"reference\"] \u003d snap"},{"line_number":1368,"context_line":"                        v_info[\"size\"] \u003d size"},{"line_number":1369,"context_line":"                        v_info[\"source_reference\"] \u003d vol"},{"line_number":1370,"context_line":"                        if snap in cinder_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_88ee991f","line":1367,"in_reply_to":"3f1d235d_fe9727eb","updated":"2017-12-20 10:00:18.000000000","message":"good catch..","commit_id":"ce360198a274f7378a3482871193e11225423833"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"8e7eb11de5231c6b208b2498e4077bdae923d7e7","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"                        \"extra_info\": None"},{"line_number":1416,"context_line":"                    }"},{"line_number":1417,"context_line":"                    vol_id \u003d volutils.extract_id_from_volume_name(vol)"},{"line_number":1418,"context_line":"                    if vol_id in cinder_ids:"},{"line_number":1419,"context_line":"                        v_info[\"safe_to_manage\"] \u003d False"},{"line_number":1420,"context_line":"                        v_info[\"reason_not_safe\"] \u003d \"already managed\""},{"line_number":1421,"context_line":"                        v_info[\"cinder_id\"] \u003d vol_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_6875aef9","line":1418,"updated":"2017-07-28 16:32:26.000000000","message":"This code is almost the same as in \u0027else\u0027 block","commit_id":"b92bca744efc3b5718239c46bb8a36ca22c953d2"},{"author":{"_account_id":12484,"name":"jazeltq","email":"tianqing@unitedstack.com","username":"litianqing"},"change_message_id":"c7821f46c13c196a4ff5a6713f02b960f061ae3a","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"                        \"extra_info\": None"},{"line_number":1416,"context_line":"                    }"},{"line_number":1417,"context_line":"                    vol_id \u003d volutils.extract_id_from_volume_name(vol)"},{"line_number":1418,"context_line":"                    if vol_id in cinder_ids:"},{"line_number":1419,"context_line":"                        v_info[\"safe_to_manage\"] \u003d False"},{"line_number":1420,"context_line":"                        v_info[\"reason_not_safe\"] \u003d \"already managed\""},{"line_number":1421,"context_line":"                        v_info[\"cinder_id\"] \u003d vol_id"}],"source_content_type":"text/x-python","patch_set":5,"id":"df3967d1_69ac2e8c","line":1418,"in_reply_to":"ff346bd7_6875aef9","updated":"2017-08-01 03:20:17.000000000","message":"can you point it more clearly?","commit_id":"b92bca744efc3b5718239c46bb8a36ca22c953d2"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"709664511fee2136088f55961069430f42310d9c","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"                               utils.convert_str(snapshot.name))"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"    def _get_manageable_resource_info(self, cinder_resources, resource_type,"},{"line_number":1433,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1434,"context_line":"                                      sort_dirs):"},{"line_number":1435,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1436,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_60165daa","line":1433,"range":{"start_line":1433,"start_character":46,"end_line":1433,"end_character":51},"updated":"2017-09-05 18:02:04.000000000","message":"\"limit\" should be implemented to stop querying rbd for more information when the limit is reached.","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"709664511fee2136088f55961069430f42310d9c","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"                               utils.convert_str(snapshot.name))"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"    def _get_manageable_resource_info(self, cinder_resources, resource_type,"},{"line_number":1433,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1434,"context_line":"                                      sort_dirs):"},{"line_number":1435,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1436,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_801389b8","line":1433,"range":{"start_line":1433,"start_character":61,"end_line":1433,"end_character":70},"updated":"2017-09-05 18:02:04.000000000","message":"Why are sort_keys and sort_dirs required if they aren\u0027t used?","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"92522b94f4e4158d03435b973fefa0d890cb1ed6","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"                               utils.convert_str(snapshot.name))"},{"line_number":1431,"context_line":""},{"line_number":1432,"context_line":"    def _get_manageable_resource_info(self, cinder_resources, resource_type,"},{"line_number":1433,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1434,"context_line":"                                      sort_dirs):"},{"line_number":1435,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1436,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_47712d0c","line":1433,"range":{"start_line":1433,"start_character":61,"end_line":1433,"end_character":70},"in_reply_to":"7f287b81_801389b8","updated":"2017-09-06 02:25:12.000000000","message":"@Eric， they are used at line 1488","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"709664511fee2136088f55961069430f42310d9c","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1434,"context_line":"                                      sort_dirs):"},{"line_number":1435,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1436,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"},{"line_number":1437,"context_line":"            raise exception.ManageResourceTypeError()"},{"line_number":1438,"context_line":"        entries, vols_s \u003d [], None"},{"line_number":1439,"context_line":"        cinder_ids \u003d set(resource[\u0027id\u0027] for resource in cinder_resources)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_e0ca4d44","line":1436,"range":{"start_line":1436,"start_character":63,"end_line":1436,"end_character":64},"updated":"2017-09-05 18:02:04.000000000","message":"Please remove the exclamation point.","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"709664511fee2136088f55961069430f42310d9c","unresolved":false,"context_lines":[{"line_number":1440,"context_line":"        with RADOSClient(self) as client:"},{"line_number":1441,"context_line":"            vols_s \u003d set(self.RBDProxy().list(client.ioctx))"},{"line_number":1442,"context_line":"        v_info \u003d None"},{"line_number":1443,"context_line":"        if resource_type \u003d\u003d \"volume\":"},{"line_number":1444,"context_line":"            for vol in vols_s:"},{"line_number":1445,"context_line":"                with RBDVolumeProxy(self, vol, read_only\u003dTrue) as Image:"},{"line_number":1446,"context_line":"                    v_info \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_a0ed65b8","line":1443,"updated":"2017-09-05 18:02:04.000000000","message":"Surely this code can be simplified a bit by putting \"for vol... with RBDVolumeProxy\" at the outer layer, and switching on resource_type inside that?","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":8846,"name":"Hao Wang","display_name":"Hao Wang","email":"sxmatch1986@gmail.com","username":"sxmatch"},"change_message_id":"92522b94f4e4158d03435b973fefa0d890cb1ed6","unresolved":false,"context_lines":[{"line_number":1440,"context_line":"        with RADOSClient(self) as client:"},{"line_number":1441,"context_line":"            vols_s \u003d set(self.RBDProxy().list(client.ioctx))"},{"line_number":1442,"context_line":"        v_info \u003d None"},{"line_number":1443,"context_line":"        if resource_type \u003d\u003d \"volume\":"},{"line_number":1444,"context_line":"            for vol in vols_s:"},{"line_number":1445,"context_line":"                with RBDVolumeProxy(self, vol, read_only\u003dTrue) as Image:"},{"line_number":1446,"context_line":"                    v_info \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f287b81_e70db990","line":1443,"in_reply_to":"7f287b81_a0ed65b8","updated":"2017-09-06 02:25:12.000000000","message":"agree with Eric, this can get RBDVolumeProxy only once.","commit_id":"80ef2e5e672005022a388a6f2cf30ac55eaa199e"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"189c7dd561b140de62f894293956aa6d360bbabc","unresolved":false,"context_lines":[{"line_number":1433,"context_line":"                                      marker, limit, offset, sort_keys,"},{"line_number":1434,"context_line":"                                      sort_dirs):"},{"line_number":1435,"context_line":"        if resource_type not in (\u0027volume\u0027, \u0027snapshot\u0027):"},{"line_number":1436,"context_line":"            LOG.error(\"Resource type must be volume or snapshot!\")"},{"line_number":1437,"context_line":"            raise exception.ManageResourceTypeError()"},{"line_number":1438,"context_line":"        entries, vols_s \u003d [], None"},{"line_number":1439,"context_line":"        cinder_ids \u003d set(resource[\u0027id\u0027] for resource in cinder_resources)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f4e5783_6dcb37a5","line":1436,"range":{"start_line":1436,"start_character":63,"end_line":1436,"end_character":64},"updated":"2017-10-10 14:43:58.000000000","message":"\u0027.\u0027 here","commit_id":"deedda9df3a6261f729ae24ca12c37c618e71f4e"}]}
