)]}'
{"cinderclient/tests/unit/v3/test_groups.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"f801c124a85045d406b722a9268fa7374c0edfae","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/groups\u0027, body\u003dexpected)"},{"line_number":54,"context_line":"        self._assert_request_id(grp)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_update_group_name(self):"},{"line_number":57,"context_line":"        v \u003d cs.groups.list()[0]"},{"line_number":58,"context_line":"        expected \u003d {\u0027group\u0027: {\u0027name\u0027: \u0027group2\u0027}}"},{"line_number":59,"context_line":"        grp \u003d v.update(name\u003d\u0027group2\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ac06dbe_69af9d81","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":37},"updated":"2016-08-22 11:51:37.000000000","message":"can we combine these following update testcases with ddt?","commit_id":"e1e116f027968ca8c261a52e666a28e1305dcf36"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"22aeb04534aa290c639269d18940319c44860b64","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        cs.assert_called(\u0027POST\u0027, \u0027/groups\u0027, body\u003dexpected)"},{"line_number":54,"context_line":"        self._assert_request_id(grp)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_update_group_name(self):"},{"line_number":57,"context_line":"        v \u003d cs.groups.list()[0]"},{"line_number":58,"context_line":"        expected \u003d {\u0027group\u0027: {\u0027name\u0027: \u0027group2\u0027}}"},{"line_number":59,"context_line":"        grp \u003d v.update(name\u003d\u0027group2\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ac06dbe_6ab81ce6","line":56,"range":{"start_line":56,"start_character":4,"end_line":56,"end_character":37},"in_reply_to":"1ac06dbe_69af9d81","updated":"2016-08-22 16:05:11.000000000","message":"Done","commit_id":"e1e116f027968ca8c261a52e666a28e1305dcf36"}],"cinderclient/tests/unit/v3/test_shell.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"92dd42c89557c9fb4ae5671caf866e4f605be252","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.11 group-specs-list\u0027)"},{"line_number":188,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/group_types?is_public\u003dNone\u0027)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_create_volume(self):"},{"line_number":191,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.13 create --group-id 5678 \u0027"},{"line_number":192,"context_line":"                         \u0027--volume-type 4321 1\u0027)"},{"line_number":193,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_2ce7c3ac","line":190,"updated":"2016-08-30 15:20:52.000000000","message":"If you spin another patch, better to call this:\ntest_create_volume_with_group()\nWe already have 2 other tests named test_create_volume().","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40a6430bd1ee92369af8dc5de12fdb9c890098fd","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.11 group-specs-list\u0027)"},{"line_number":188,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/group_types?is_public\u003dNone\u0027)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_create_volume(self):"},{"line_number":191,"context_line":"        self.run_command(\u0027--os-volume-api-version 3.13 create --group-id 5678 \u0027"},{"line_number":192,"context_line":"                         \u0027--volume-type 4321 1\u0027)"},{"line_number":193,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/volumes/1234\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_0002be09","line":190,"in_reply_to":"fa7ab95a_2ce7c3ac","updated":"2016-08-30 16:45:06.000000000","message":"Good point.   Done.","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"}],"cinderclient/v3/groups.py":[{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"92dd42c89557c9fb4ae5671caf866e4f605be252","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        :param name: Name of the Group"},{"line_number":49,"context_line":"        :param description: Description of the Group"},{"line_number":50,"context_line":"        :param group_type: Type of the Group"},{"line_number":51,"context_line":"        :param volume_types: Types of volume"},{"line_number":52,"context_line":"        :param user_id: User id derived from context"},{"line_number":53,"context_line":"        :param project_id: Project id derived from context"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_afe66541","line":50,"updated":"2016-08-30 15:20:52.000000000","message":"It\u0027d be nice if group_type and volume_types were first in the list, as they are in the actual parameters...","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40a6430bd1ee92369af8dc5de12fdb9c890098fd","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        :param name: Name of the Group"},{"line_number":49,"context_line":"        :param description: Description of the Group"},{"line_number":50,"context_line":"        :param group_type: Type of the Group"},{"line_number":51,"context_line":"        :param volume_types: Types of volume"},{"line_number":52,"context_line":"        :param user_id: User id derived from context"},{"line_number":53,"context_line":"        :param project_id: Project id derived from context"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_803deec5","line":50,"in_reply_to":"fa7ab95a_afe66541","updated":"2016-08-30 16:45:06.000000000","message":"Done","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"92dd42c89557c9fb4ae5671caf866e4f605be252","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                            base.getid(group), body)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _action(self, action, group, info\u003dNone, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Perform a group \"action.\""},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        body \u003d {action: info}"},{"line_number":130,"context_line":"        self.run_hooks(\u0027modify_body_for_action\u0027, body, **kwargs)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_6f237d56","line":127,"updated":"2016-08-30 15:20:52.000000000","message":"Can you please add params to the comment?","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40a6430bd1ee92369af8dc5de12fdb9c890098fd","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                            base.getid(group), body)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def _action(self, action, group, info\u003dNone, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Perform a group \"action.\""},{"line_number":128,"context_line":"        \"\"\""},{"line_number":129,"context_line":"        body \u003d {action: info}"},{"line_number":130,"context_line":"        self.run_hooks(\u0027modify_body_for_action\u0027, body, **kwargs)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_a03832d4","line":127,"in_reply_to":"fa7ab95a_6f237d56","updated":"2016-08-30 16:45:06.000000000","message":"Done","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"}],"cinderclient/v3/shell.py":[{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"f801c124a85045d406b722a9268fa7374c0edfae","unresolved":false,"context_lines":[{"line_number":425,"context_line":"           default\u003dNone,"},{"line_number":426,"context_line":"           help\u003d\u0027ID of a consistency group where the new volume belongs to. \u0027"},{"line_number":427,"context_line":"                \u0027Default\u003dNone.\u0027)"},{"line_number":428,"context_line":"@utils.arg(\u0027--group-id\u0027,"},{"line_number":429,"context_line":"           metavar\u003d\u0027\u003cgroup-id\u003e\u0027,"},{"line_number":430,"context_line":"           default\u003dNone,"},{"line_number":431,"context_line":"           help\u003d\u0027ID of a group where the new volume belongs to. \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ac06dbe_fe0fc12b","line":428,"updated":"2016-08-22 11:51:37.000000000","message":"two identical arguments : --group-id","commit_id":"e1e116f027968ca8c261a52e666a28e1305dcf36"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"22aeb04534aa290c639269d18940319c44860b64","unresolved":false,"context_lines":[{"line_number":425,"context_line":"           default\u003dNone,"},{"line_number":426,"context_line":"           help\u003d\u0027ID of a consistency group where the new volume belongs to. \u0027"},{"line_number":427,"context_line":"                \u0027Default\u003dNone.\u0027)"},{"line_number":428,"context_line":"@utils.arg(\u0027--group-id\u0027,"},{"line_number":429,"context_line":"           metavar\u003d\u0027\u003cgroup-id\u003e\u0027,"},{"line_number":430,"context_line":"           default\u003dNone,"},{"line_number":431,"context_line":"           help\u003d\u0027ID of a group where the new volume belongs to. \u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ac06dbe_3de796b1","line":428,"in_reply_to":"1ac06dbe_fe0fc12b","updated":"2016-08-22 16:05:11.000000000","message":"Oops.  Good catch!","commit_id":"e1e116f027968ca8c261a52e666a28e1305dcf36"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"f801c124a85045d406b722a9268fa7374c0edfae","unresolved":false,"context_lines":[{"line_number":2901,"context_line":"@utils.arg(\u0027--delete-volumes\u0027,"},{"line_number":2902,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2903,"context_line":"           default\u003dFalse,"},{"line_number":2904,"context_line":"           help\u003d\u0027Allows or disallows groups \u0027"},{"line_number":2905,"context_line":"                \u0027to be deleted. If the group is empty, \u0027"},{"line_number":2906,"context_line":"                \u0027it can be deleted without the delete-volumes flag. \u0027"},{"line_number":2907,"context_line":"                \u0027If the group is not empty, the delete-volumes \u0027"},{"line_number":2908,"context_line":"                \u0027flag is required for it to be deleted.\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ac06dbe_deb125e3","line":2905,"range":{"start_line":2904,"start_character":17,"end_line":2905,"end_character":30},"updated":"2016-08-22 11:51:37.000000000","message":"How about \u0027Allows or disallows groups to be deleted while it\u0027s not empty\u0027? \nwhat\u0027s the default value of \u0027--delete-volumes\u0027","commit_id":"e1e116f027968ca8c261a52e666a28e1305dcf36"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"22aeb04534aa290c639269d18940319c44860b64","unresolved":false,"context_lines":[{"line_number":2901,"context_line":"@utils.arg(\u0027--delete-volumes\u0027,"},{"line_number":2902,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2903,"context_line":"           default\u003dFalse,"},{"line_number":2904,"context_line":"           help\u003d\u0027Allows or disallows groups \u0027"},{"line_number":2905,"context_line":"                \u0027to be deleted. If the group is empty, \u0027"},{"line_number":2906,"context_line":"                \u0027it can be deleted without the delete-volumes flag. \u0027"},{"line_number":2907,"context_line":"                \u0027If the group is not empty, the delete-volumes \u0027"},{"line_number":2908,"context_line":"                \u0027flag is required for it to be deleted.\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"1ac06dbe_1d90daeb","line":2905,"range":{"start_line":2904,"start_character":17,"end_line":2905,"end_character":30},"in_reply_to":"1ac06dbe_deb125e3","updated":"2016-08-22 16:05:11.000000000","message":"Done\n\nDefault is False.  See line 2903.","commit_id":"e1e116f027968ca8c261a52e666a28e1305dcf36"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"92dd42c89557c9fb4ae5671caf866e4f605be252","unresolved":false,"context_lines":[{"line_number":425,"context_line":"           default\u003dNone,"},{"line_number":426,"context_line":"           help\u003d\u0027ID of a consistency group where the new volume belongs to. \u0027"},{"line_number":427,"context_line":"                \u0027Default\u003dNone.\u0027)"},{"line_number":428,"context_line":"@utils.arg(\u0027--group-id\u0027,"},{"line_number":429,"context_line":"           metavar\u003d\u0027\u003cgroup-id\u003e\u0027,"},{"line_number":430,"context_line":"           default\u003dNone,"},{"line_number":431,"context_line":"           help\u003d\u0027ID of a group where the new volume belongs to. \u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_7a7fbd14","line":428,"updated":"2016-08-30 15:20:52.000000000","message":"You should be able to use start_version with this and not have to duplicate the entire do_create().\nSee L#1549","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40a6430bd1ee92369af8dc5de12fdb9c890098fd","unresolved":false,"context_lines":[{"line_number":425,"context_line":"           default\u003dNone,"},{"line_number":426,"context_line":"           help\u003d\u0027ID of a consistency group where the new volume belongs to. \u0027"},{"line_number":427,"context_line":"                \u0027Default\u003dNone.\u0027)"},{"line_number":428,"context_line":"@utils.arg(\u0027--group-id\u0027,"},{"line_number":429,"context_line":"           metavar\u003d\u0027\u003cgroup-id\u003e\u0027,"},{"line_number":430,"context_line":"           default\u003dNone,"},{"line_number":431,"context_line":"           help\u003d\u0027ID of a group where the new volume belongs to. \u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_e0d5dae4","line":428,"in_reply_to":"fa7ab95a_7a7fbd14","updated":"2016-08-30 16:45:06.000000000","message":"Nice!  Done.","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"92dd42c89557c9fb4ae5671caf866e4f605be252","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"           metavar\u003d\u0027\u003cconsistencygroups\u003e\u0027,"},{"line_number":1411,"context_line":"           type\u003dint, default\u003dNone,"},{"line_number":1412,"context_line":"           help\u003d\u0027The new \"consistencygroups\" quota value. Default\u003dNone.\u0027)"},{"line_number":1413,"context_line":"@utils.arg(\u0027--groups\u0027,"},{"line_number":1414,"context_line":"           metavar\u003d\u0027\u003cgroups\u003e\u0027,"},{"line_number":1415,"context_line":"           type\u003dint, default\u003dNone,"},{"line_number":1416,"context_line":"           help\u003d\u0027The new \"groups\" quota value. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_3aaff57d","line":1413,"updated":"2016-08-30 15:20:52.000000000","message":"Use start_version with this and it won\u0027t show up for earlier versions.","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40a6430bd1ee92369af8dc5de12fdb9c890098fd","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"           metavar\u003d\u0027\u003cconsistencygroups\u003e\u0027,"},{"line_number":1411,"context_line":"           type\u003dint, default\u003dNone,"},{"line_number":1412,"context_line":"           help\u003d\u0027The new \"consistencygroups\" quota value. Default\u003dNone.\u0027)"},{"line_number":1413,"context_line":"@utils.arg(\u0027--groups\u0027,"},{"line_number":1414,"context_line":"           metavar\u003d\u0027\u003cgroups\u003e\u0027,"},{"line_number":1415,"context_line":"           type\u003dint, default\u003dNone,"},{"line_number":1416,"context_line":"           help\u003d\u0027The new \"groups\" quota value. Default\u003dNone.\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_600e2a8d","line":1413,"in_reply_to":"fa7ab95a_3aaff57d","updated":"2016-08-30 16:45:06.000000000","message":"Done.","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"92dd42c89557c9fb4ae5671caf866e4f605be252","unresolved":false,"context_lines":[{"line_number":2905,"context_line":"@utils.arg(\u0027--delete-volumes\u0027,"},{"line_number":2906,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2907,"context_line":"           default\u003dFalse,"},{"line_number":2908,"context_line":"           help\u003d\u0027Allows or disallows groups to be deleted \u0027"},{"line_number":2909,"context_line":"                \u0027if they are not empty. If the group is empty, \u0027"},{"line_number":2910,"context_line":"                \u0027it can be deleted without the delete-volumes flag. \u0027"},{"line_number":2911,"context_line":"                \u0027If the group is not empty, the delete-volumes \u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_9ad9e1f5","line":2908,"updated":"2016-08-30 15:20:52.000000000","message":"All this wording is good, and probably should stay.\nMight be good to be explicit and add something like:\n\"if True, all volumes in the group will also be deleted\".\nI\u0027d hate for a user to accidentally delete volumes...","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"40a6430bd1ee92369af8dc5de12fdb9c890098fd","unresolved":false,"context_lines":[{"line_number":2905,"context_line":"@utils.arg(\u0027--delete-volumes\u0027,"},{"line_number":2906,"context_line":"           action\u003d\u0027store_true\u0027,"},{"line_number":2907,"context_line":"           default\u003dFalse,"},{"line_number":2908,"context_line":"           help\u003d\u0027Allows or disallows groups to be deleted \u0027"},{"line_number":2909,"context_line":"                \u0027if they are not empty. If the group is empty, \u0027"},{"line_number":2910,"context_line":"                \u0027it can be deleted without the delete-volumes flag. \u0027"},{"line_number":2911,"context_line":"                \u0027If the group is not empty, the delete-volumes \u0027"}],"source_content_type":"text/x-python","patch_set":20,"id":"fa7ab95a_a06672ea","line":2908,"in_reply_to":"fa7ab95a_9ad9e1f5","updated":"2016-08-30 16:45:06.000000000","message":"Done","commit_id":"e450db273431b4615f8a4609b2d45e7f06c56dd9"}]}
