)]}'
{"cinder/api/contrib/consistencygroups.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"e8c606ac602d0bbb6047b9c3379c92524c6e7e74","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        description \u003d consistencygroup.get(\u0027description\u0027, None)"},{"line_number":239,"context_line":"        add_volumes \u003d consistencygroup.get(\u0027add_volumes\u0027, None)"},{"line_number":240,"context_line":"        remove_volumes \u003d consistencygroup.get(\u0027remove_volumes\u0027, None)"},{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.5\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_af3415de","line":241,"range":{"start_line":241,"start_character":48,"end_line":241,"end_character":55},"updated":"2016-05-13 09:00:17.000000000","message":"no need of None here, by default it assumes MAX version.","commit_id":"91ab0f9ff90437f8b19051ba56afb67c7de8c19a"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"a6693c99d325a602de70f8f6ae1ac85c056c80c1","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.5\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""},{"line_number":245,"context_line":"                        \"can not be all empty in the request body.\")"},{"line_number":246,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":247,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"dab17558_930cb33c","line":244,"range":{"start_line":244,"start_character":61,"end_line":244,"end_character":76},"updated":"2016-05-14 03:01:42.000000000","message":"need a blank","commit_id":"dd57f45f203a252c58f34c7270549f829e4eaf4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"029144476d2da99320f07d1cf1a6168b09688191","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.5\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""},{"line_number":245,"context_line":"                        \"can not be all empty in the request body.\")"},{"line_number":246,"context_line":"                raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":247,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_c2f1a497","line":244,"range":{"start_line":244,"start_character":61,"end_line":244,"end_character":76},"in_reply_to":"dab17558_930cb33c","updated":"2016-05-24 05:03:01.000000000","message":"Can you add a space at the end?","commit_id":"dd57f45f203a252c58f34c7270549f829e4eaf4b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"38f882590c90c453e6eb4d0a4471c73d8512da36","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        description \u003d consistencygroup.get(\u0027description\u0027, None)"},{"line_number":239,"context_line":"        add_volumes \u003d consistencygroup.get(\u0027add_volumes\u0027, None)"},{"line_number":240,"context_line":"        remove_volumes \u003d consistencygroup.get(\u0027remove_volumes\u0027, None)"},{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.6\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""}],"source_content_type":"text/x-python","patch_set":12,"id":"9abb7d3a_65b19b8f","line":241,"updated":"2016-05-30 13:09:01.000000000","message":"Just realized this is in extension API.  We are not supposed to apply micro version to extension API.  Let me verify this and get back to you.","commit_id":"064e6414766b66ba7192cac6d0ca8ef4cb715840"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"4db2984d0986e745729fe65648fdd2d9f8d8c19c","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        description \u003d consistencygroup.get(\u0027description\u0027, None)"},{"line_number":239,"context_line":"        add_volumes \u003d consistencygroup.get(\u0027add_volumes\u0027, None)"},{"line_number":240,"context_line":"        remove_volumes \u003d consistencygroup.get(\u0027remove_volumes\u0027, None)"},{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.6\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""}],"source_content_type":"text/x-python","patch_set":12,"id":"9abb7d3a_d77fd512","line":241,"in_reply_to":"9abb7d3a_65b19b8f","updated":"2016-06-01 17:02:45.000000000","message":"We discussed this in the Cinder meeting and it has been agreed upon that it is OK to apply microversions to the extension APIs","commit_id":"064e6414766b66ba7192cac6d0ca8ef4cb715840"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"86a5696b6a56e2d8ec21d14ff15b29ff50a1a3b0","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        description \u003d consistencygroup.get(\u0027description\u0027, None)"},{"line_number":239,"context_line":"        add_volumes \u003d consistencygroup.get(\u0027add_volumes\u0027, None)"},{"line_number":240,"context_line":"        remove_volumes \u003d consistencygroup.get(\u0027remove_volumes\u0027, None)"},{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.6\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""}],"source_content_type":"text/x-python","patch_set":12,"id":"9abb7d3a_7751440e","line":241,"in_reply_to":"9abb7d3a_65b19b8f","updated":"2016-05-30 16:33:45.000000000","message":"oops... \nPlease make sure only v3 requests are served with updated API behavior.\n\nIt seems, you need to follow https://review.openstack.org/#/c/278605/45/cinder/api/v3/volumes.py\n\nJust like \"cinder.api.v2 import volumes as volumes_v2\" in https://review.openstack.org/#/c/278605/45/cinder/api/v3/volumes.py@18 in reference patch, you need to map with \"cinder.api.contrib import consistencygroups as consisgrp_v2\" in new api/v3/consistencygroups.py file.\n\nJust copy and paste code which has your changes from \"cinder/api/contrib/consistencygroups.py\" file to new \"api/v3/consistencygroups.py\".\n\nAdding scott for review, in case anything else is required..","commit_id":"064e6414766b66ba7192cac6d0ca8ef4cb715840"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"4db2984d0986e745729fe65648fdd2d9f8d8c19c","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        description \u003d consistencygroup.get(\u0027description\u0027, None)"},{"line_number":239,"context_line":"        add_volumes \u003d consistencygroup.get(\u0027add_volumes\u0027, None)"},{"line_number":240,"context_line":"        remove_volumes \u003d consistencygroup.get(\u0027remove_volumes\u0027, None)"},{"line_number":241,"context_line":"        if req.api_version_request.matches(\u00273.6\u0027, None):"},{"line_number":242,"context_line":"            if (name is None and description is None"},{"line_number":243,"context_line":"                    and not add_volumes and not remove_volumes):"},{"line_number":244,"context_line":"                msg \u003d _(\"Name, description, add_volumes, and remove_volumes\""}],"source_content_type":"text/x-python","patch_set":12,"id":"9abb7d3a_b793315a","line":241,"in_reply_to":"9abb7d3a_7751440e","updated":"2016-06-01 17:02:45.000000000","message":"Yes, sheel is right. The above changes should be what you need.","commit_id":"064e6414766b66ba7192cac6d0ca8ef4cb715840"}],"cinder/api/openstack/api_version_request.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"e8c606ac602d0bbb6047b9c3379c92524c6e7e74","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            passed to it as true."},{"line_number":52,"context_line":"    * 3.3 - Add user messages APIs."},{"line_number":53,"context_line":"    * 3.4 - Adds glance_metadata filter to list/detail volumes in _get_volumes."},{"line_number":54,"context_line":"    * 3.5 - Add allow remove description and name for consisgroup"},{"line_number":55,"context_line":"\"\"\""},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_4fd80980","line":54,"updated":"2016-05-13 09:00:17.000000000","message":"Please rephrase:\nAllows to set empty description and empty name for consistency group in consisgroup-update operation.","commit_id":"91ab0f9ff90437f8b19051ba56afb67c7de8c19a"}],"cinder/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"e8c606ac602d0bbb6047b9c3379c92524c6e7e74","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"3.5"},{"line_number":65,"context_line":"---"},{"line_number":66,"context_line":"  Allow remove description and name for consisgroup"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dab17558_2f41450c","line":66,"updated":"2016-05-13 09:00:17.000000000","message":"same.","commit_id":"91ab0f9ff90437f8b19051ba56afb67c7de8c19a"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"2d8afa9ae33a7ed4cdfd54ae4fe1a6676d945b3b","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"3.5"},{"line_number":65,"context_line":"---"},{"line_number":66,"context_line":"  Allows to set empty description and empty name for consistency group "},{"line_number":67,"context_line":"  in consisgroup-update operation."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_3826ad68","line":66,"updated":"2016-05-13 09:46:11.000000000","message":"pep tests will fail due to this whitespace...","commit_id":"4efd92d5fc3ea1d95b7bcb70c419898cdd874e9c"}],"cinder/consistencygroup/api.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9dc9acd831242f1cda96551ff2198d4e58f25948","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        volumes \u003d self.db.volume_get_all_by_group(context, group.id)"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # Validate name."},{"line_number":525,"context_line":"        if name \u003d\u003d group.name:"},{"line_number":526,"context_line":"            name \u003d None"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # Validate description."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_9680588d","line":525,"range":{"start_line":525,"start_character":11,"end_line":525,"end_character":15},"updated":"2016-05-03 23:48:10.000000000","message":"Don\u0027t we first need to check to see if Name is set here to avoid an error?","commit_id":"bcd0bd953ee36b53cffbbcaef925becf127b6f64"},{"author":{"_account_id":19919,"name":"Wenjun Wang","email":"wenjun_dev@126.com","username":"June"},"change_message_id":"01ecf02b64dd6f2ffb67fc2ab47bee7297a7964d","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        volumes \u003d self.db.volume_get_all_by_group(context, group.id)"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # Validate name."},{"line_number":525,"context_line":"        if name \u003d\u003d group.name:"},{"line_number":526,"context_line":"            name \u003d None"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # Validate description."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_1eb37f4e","line":525,"range":{"start_line":525,"start_character":11,"end_line":525,"end_character":15},"updated":"2016-05-05 06:37:21.000000000","message":"This can be discussed,Name changes to \u0027\u0027 is not normal.","commit_id":"bcd0bd953ee36b53cffbbcaef925becf127b6f64"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"9f2e9b57129891d179956d666b3ea5fb623971d3","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        volumes \u003d self.db.volume_get_all_by_group(context, group.id)"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # Validate name."},{"line_number":525,"context_line":"        if name \u003d\u003d group.name:"},{"line_number":526,"context_line":"            name \u003d None"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # Validate description."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_2745d014","line":525,"range":{"start_line":525,"start_character":11,"end_line":525,"end_character":15},"in_reply_to":"1a122d0e_9680588d","updated":"2016-05-05 01:38:17.000000000","message":"Name is None If not set. It will be checked in line542.\nIf user want to delete Name, Name can be set \u0027\u0027 or \"\".","commit_id":"bcd0bd953ee36b53cffbbcaef925becf127b6f64"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6b9d8eae553cd721bf0f7af2797972f00c8fa799","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        volumes \u003d self.db.volume_get_all_by_group(context, group.id)"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # Validate name."},{"line_number":525,"context_line":"        if name \u003d\u003d group.name:"},{"line_number":526,"context_line":"            name \u003d None"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # Validate description."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_6d7670a4","line":525,"range":{"start_line":525,"start_character":11,"end_line":525,"end_character":15},"in_reply_to":"1a122d0e_9680588d","updated":"2016-05-04 14:19:04.000000000","message":"Nevermind, just played around with some similar code and didn\u0027t have an issue.","commit_id":"bcd0bd953ee36b53cffbbcaef925becf127b6f64"},{"author":{"_account_id":19919,"name":"Wenjun Wang","email":"wenjun_dev@126.com","username":"June"},"change_message_id":"01ecf02b64dd6f2ffb67fc2ab47bee7297a7964d","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            name \u003d None"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # Validate description."},{"line_number":529,"context_line":"        if description \u003d\u003d group.description:"},{"line_number":530,"context_line":"            description \u003d None"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        # Validate volumes in add_volumes and remove_volumes."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_fe968392","line":529,"range":{"start_line":529,"start_character":11,"end_line":529,"end_character":22},"updated":"2016-05-05 06:37:21.000000000","message":"I think this will be useful that the description can be changed to \u0027\u0027.","commit_id":"bcd0bd953ee36b53cffbbcaef925becf127b6f64"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9dc9acd831242f1cda96551ff2198d4e58f25948","unresolved":false,"context_lines":[{"line_number":526,"context_line":"            name \u003d None"},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        # Validate description."},{"line_number":529,"context_line":"        if description \u003d\u003d group.description:"},{"line_number":530,"context_line":"            description \u003d None"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":"        # Validate volumes in add_volumes and remove_volumes."}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_d648108d","line":529,"range":{"start_line":529,"start_character":8,"end_line":529,"end_character":44},"updated":"2016-05-03 23:48:10.000000000","message":"Same here?","commit_id":"bcd0bd953ee36b53cffbbcaef925becf127b6f64"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"029144476d2da99320f07d1cf1a6168b09688191","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        if (name is None and description is None"},{"line_number":540,"context_line":"                and not add_volumes_new and not remove_volumes_new):"},{"line_number":541,"context_line":"            msg \u003d (_(\"Cannot update consistency group %(group_id)s \""},{"line_number":542,"context_line":"                     \"because no valid name, description, add_volumes,\""},{"line_number":543,"context_line":"                     \"or remove_volumes were provided.\") %"},{"line_number":544,"context_line":"                   {\u0027group_id\u0027: group.id})"},{"line_number":545,"context_line":"            raise exception.InvalidConsistencyGroup(reason\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab6814e_4259348e","line":542,"updated":"2016-05-24 05:03:01.000000000","message":"Space at the end should not be removed.","commit_id":"dd57f45f203a252c58f34c7270549f829e4eaf4b"}],"cinder/tests/unit/api/contrib/test_consistencygroups.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"e8c606ac602d0bbb6047b9c3379c92524c6e7e74","unresolved":false,"context_lines":[{"line_number":737,"context_line":""},{"line_number":738,"context_line":"        consistencygroup.destroy()"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"    def test_update_consistencygroup_empty_parameters_version_3_5(self):"},{"line_number":741,"context_line":"        consistencygroup \u003d self._create_consistencygroup("},{"line_number":742,"context_line":"            ctxt\u003dself.ctxt,"},{"line_number":743,"context_line":"            status\u003dfields.ConsistencyGroupStatus.AVAILABLE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_6fca2d51","line":740,"updated":"2016-05-13 09:00:17.000000000","message":"don\u0027t use \"version_3_5\" in name rather use \"strict\", as this test case is not only for 3.5 rather 3.5 onwards.\n\nYou can add doc string to specify that this test case is for testing updated behavior after v3.5","commit_id":"91ab0f9ff90437f8b19051ba56afb67c7de8c19a"}]}
