)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE Lefthand: add CG capability to generic groups"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds consistency group capability to generic group"},{"line_number":10,"context_line":"in Lefthand driver. Re-use the CG implementations if it is a CG"},{"line_number":11,"context_line":"type group. And if the group being created isn\u0027t a CG then we"},{"line_number":12,"context_line":"bail out and the generic group will take care of it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_15e93b19","line":9,"range":{"start_line":9,"start_character":48,"end_line":9,"end_character":61},"updated":"2017-03-31 19:30:38.000000000","message":"generic volume group","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"HPE Lefthand: add CG capability to generic groups"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch adds consistency group capability to generic group"},{"line_number":10,"context_line":"in Lefthand driver. Re-use the CG implementations if it is a CG"},{"line_number":11,"context_line":"type group. And if the group being created isn\u0027t a CG then we"},{"line_number":12,"context_line":"bail out and the generic group will take care of it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_955518c9","line":9,"range":{"start_line":9,"start_character":48,"end_line":9,"end_character":61},"in_reply_to":"dfeb2761_15e93b19","updated":"2017-04-03 16:23:11.000000000","message":"Thanks you so much for review, its Done","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch adds consistency group capability to generic group"},{"line_number":10,"context_line":"in Lefthand driver. Re-use the CG implementations if it is a CG"},{"line_number":11,"context_line":"type group. And if the group being created isn\u0027t a CG then we"},{"line_number":12,"context_line":"bail out and the generic group will take care of it."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib4b353331bad30e7296264542511b1d25a88cd0f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_f5edb725","line":12,"range":{"start_line":12,"start_character":17,"end_line":12,"end_character":30},"updated":"2017-03-31 19:30:38.000000000","message":"generic volume group","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch adds consistency group capability to generic group"},{"line_number":10,"context_line":"in Lefthand driver. Re-use the CG implementations if it is a CG"},{"line_number":11,"context_line":"type group. And if the group being created isn\u0027t a CG then we"},{"line_number":12,"context_line":"bail out and the generic group will take care of it."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib4b353331bad30e7296264542511b1d25a88cd0f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_b56ffc90","line":12,"range":{"start_line":12,"start_character":17,"end_line":12,"end_character":30},"in_reply_to":"dfeb2761_f5edb725","updated":"2017-04-03 16:23:11.000000000","message":"Thanks you so much for review, its Done","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"in Lefthand driver. Re-use the CG implementations if it is a CG"},{"line_number":11,"context_line":"type group. And if the group being created isn\u0027t a CG then we"},{"line_number":12,"context_line":"bail out and the generic group will take care of it."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib4b353331bad30e7296264542511b1d25a88cd0f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_95978b91","line":13,"updated":"2017-03-31 19:30:38.000000000","message":"Please register a blueprint and reference it here.","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"in Lefthand driver. Re-use the CG implementations if it is a CG"},{"line_number":11,"context_line":"type group. And if the group being created isn\u0027t a CG then we"},{"line_number":12,"context_line":"bail out and the generic group will take care of it."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ib4b353331bad30e7296264542511b1d25a88cd0f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dfeb2761_75697489","line":13,"in_reply_to":"dfeb2761_95978b91","updated":"2017-04-03 16:23:11.000000000","message":"Thanks you so much for review, its Done","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"}],"cinder/tests/unit/volume/drivers/hpe/test_hpelefthand.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":2662,"context_line":"            self.assertRaises(NotImplementedError,"},{"line_number":2663,"context_line":"                              self.driver.create_group, ctxt, group)"},{"line_number":2664,"context_line":""},{"line_number":2665,"context_line":"            # create a group with consistent_group_snapshot_enabled flag to"},{"line_number":2666,"context_line":"            # True"},{"line_number":2667,"context_line":"            model_update \u003d self.driver.create_group(ctxt, group)"},{"line_number":2668,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_5077d13b","line":2665,"range":{"start_line":2665,"start_character":34,"end_line":2665,"end_character":67},"updated":"2017-03-31 19:30:38.000000000","message":"I\u0027m not seeing where you set consistent_group_snapshot_enabled: \u003cis\u003e True in group_type when creating a group.","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":2662,"context_line":"            self.assertRaises(NotImplementedError,"},{"line_number":2663,"context_line":"                              self.driver.create_group, ctxt, group)"},{"line_number":2664,"context_line":""},{"line_number":2665,"context_line":"            # create a group with consistent_group_snapshot_enabled flag to"},{"line_number":2666,"context_line":"            # True"},{"line_number":2667,"context_line":"            model_update \u003d self.driver.create_group(ctxt, group)"},{"line_number":2668,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_f80c593c","line":2665,"range":{"start_line":2665,"start_character":34,"end_line":2665,"end_character":67},"in_reply_to":"dfeb2761_5077d13b","updated":"2017-04-03 16:23:11.000000000","message":"thanks xing for review,\nam setting this flag on first line of this function.\nas i have used side effect and kept its values in the list,\nso value of list will be retrieved on every create_group call","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":2673,"context_line":"            mock_get_volume_type.return_value \u003d {"},{"line_number":2674,"context_line":"                \u0027name\u0027: \u0027gold\u0027,"},{"line_number":2675,"context_line":"                \u0027extra_specs\u0027: {"},{"line_number":2676,"context_line":"                    \u0027replication_enabled\u0027: \u0027\u003cis\u003e True\u0027}}"},{"line_number":2677,"context_line":"            model_update \u003d self.driver.create_group(ctxt, group)"},{"line_number":2678,"context_line":"            self.assertEqual(fields.GroupStatus.ERROR,"},{"line_number":2679,"context_line":"                             model_update[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_d5d073cc","line":2676,"range":{"start_line":2676,"start_character":21,"end_line":2676,"end_character":40},"updated":"2017-03-31 19:30:38.000000000","message":"Why do you keep testing \"replication_enabled\" in these unit tests?  Adding CG capability to groups should be checking consistent_group_snapshot_enabled: \u003cis\u003e True/False.  If you are checking \"replication_enabled\" as a negative test case, that is fine, but it seems that you are only testing this but not consistent_group_snapshot_enabled which is relevant to this feature. consistent_group_snapshot_enabled: \u003cis\u003e True should be set in both group type specs and volume type extra specs.","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":2673,"context_line":"            mock_get_volume_type.return_value \u003d {"},{"line_number":2674,"context_line":"                \u0027name\u0027: \u0027gold\u0027,"},{"line_number":2675,"context_line":"                \u0027extra_specs\u0027: {"},{"line_number":2676,"context_line":"                    \u0027replication_enabled\u0027: \u0027\u003cis\u003e True\u0027}}"},{"line_number":2677,"context_line":"            model_update \u003d self.driver.create_group(ctxt, group)"},{"line_number":2678,"context_line":"            self.assertEqual(fields.GroupStatus.ERROR,"},{"line_number":2679,"context_line":"                             model_update[\u0027status\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_783169ec","line":2676,"range":{"start_line":2676,"start_character":21,"end_line":2676,"end_character":40},"in_reply_to":"dfeb2761_d5d073cc","updated":"2017-04-03 16:23:11.000000000","message":"yes. have covered negative test case here","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"}],"cinder/volume/drivers/hpe/hpe_lefthand_iscsi.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        2.0.9 - Fix terminate connection on failover"},{"line_number":162,"context_line":"        2.0.10 - Add entry point tracing"},{"line_number":163,"context_line":"        2.0.11 - Fix extend volume if larger than snapshot bug #1560654"},{"line_number":164,"context_line":"        2.0.12 - add CG capability to generic groups"},{"line_number":165,"context_line":"    \"\"\""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    VERSION \u003d \"2.0.12\""}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_75d767c1","line":164,"range":{"start_line":164,"start_character":38,"end_line":164,"end_character":52},"updated":"2017-03-31 19:30:38.000000000","message":"generic volume groups","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        2.0.9 - Fix terminate connection on failover"},{"line_number":162,"context_line":"        2.0.10 - Add entry point tracing"},{"line_number":163,"context_line":"        2.0.11 - Fix extend volume if larger than snapshot bug #1560654"},{"line_number":164,"context_line":"        2.0.12 - add CG capability to generic groups"},{"line_number":165,"context_line":"    \"\"\""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    VERSION \u003d \"2.0.12\""}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_b83c91bf","line":164,"range":{"start_line":164,"start_character":38,"end_line":164,"end_character":52},"in_reply_to":"dfeb2761_75d767c1","updated":"2017-04-03 16:23:11.000000000","message":"Thanks xing for review, its done","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        msg \u003d _(\"Creating a group from a source is not \""},{"line_number":496,"context_line":"                \"currently supported.\")"},{"line_number":497,"context_line":"        LOG.error(msg)"},{"line_number":498,"context_line":"        raise NotImplementedError(msg)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    @cinder_utils.trace"},{"line_number":501,"context_line":"    def delete_group(self, context, group, volumes):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_f0d70523","line":498,"updated":"2017-03-31 19:30:38.000000000","message":"Why are you not supporting this function?","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1e4c578417641b9e620409d188ef5660f83ca0af","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        msg \u003d _(\"Creating a group from a source is not \""},{"line_number":496,"context_line":"                \"currently supported.\")"},{"line_number":497,"context_line":"        LOG.error(msg)"},{"line_number":498,"context_line":"        raise NotImplementedError(msg)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    @cinder_utils.trace"},{"line_number":501,"context_line":"    def delete_group(self, context, group, volumes):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_eb4a7325","line":498,"in_reply_to":"dfeb2761_f0d70523","updated":"2017-03-31 20:48:12.000000000","message":"Actually if you raise NotImplementedError() here, it will be handled by the default implementation of generic volume groups.  You should change to the following:\n\nif not utils.is_group_a_cg_snapshot_type(group):\n        raise NotImplementedError()\nelse:\n    # raise a VolumeBackendAPIException","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":495,"context_line":"        msg \u003d _(\"Creating a group from a source is not \""},{"line_number":496,"context_line":"                \"currently supported.\")"},{"line_number":497,"context_line":"        LOG.error(msg)"},{"line_number":498,"context_line":"        raise NotImplementedError(msg)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    @cinder_utils.trace"},{"line_number":501,"context_line":"    def delete_group(self, context, group, volumes):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_78b4c935","line":498,"in_reply_to":"dfeb2761_f0d70523","updated":"2017-04-03 16:23:11.000000000","message":"Thanks xing for review. its good point, i was missed it. its done now","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"2cfe01135a345fb56706204c81b916d43885a2a7","unresolved":false,"context_lines":[{"line_number":1773,"context_line":""},{"line_number":1774,"context_line":"    def _volume_of_replicated_type(self, volume, vol_type_id\u003dNone):"},{"line_number":1775,"context_line":"        replicated_type \u003d False"},{"line_number":1776,"context_line":"        volume_type_id \u003d vol_type_id if vol_type_id else volume.get("},{"line_number":1777,"context_line":"            \u0027volume_type_id\u0027)"},{"line_number":1778,"context_line":"        if volume_type_id:"},{"line_number":1779,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":1780,"context_line":""},{"line_number":1781,"context_line":"            extra_specs \u003d volume_type.get(\u0027extra_specs\u0027)"},{"line_number":1782,"context_line":"            if extra_specs and \u0027replication_enabled\u0027 in extra_specs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_95b1cb92","line":1779,"range":{"start_line":1776,"start_character":52,"end_line":1779,"end_character":63},"updated":"2017-03-31 19:30:38.000000000","message":"volume is an object and volume.volume_type is an volume_type object.  You don\u0027t need to call _get_volume_type(volume_type_id) if you are getting it from volume.","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"c7dde976b395bf986253a7988d306f2a26eea18c","unresolved":false,"context_lines":[{"line_number":1773,"context_line":""},{"line_number":1774,"context_line":"    def _volume_of_replicated_type(self, volume, vol_type_id\u003dNone):"},{"line_number":1775,"context_line":"        replicated_type \u003d False"},{"line_number":1776,"context_line":"        volume_type_id \u003d vol_type_id if vol_type_id else volume.get("},{"line_number":1777,"context_line":"            \u0027volume_type_id\u0027)"},{"line_number":1778,"context_line":"        if volume_type_id:"},{"line_number":1779,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":1780,"context_line":""},{"line_number":1781,"context_line":"            extra_specs \u003d volume_type.get(\u0027extra_specs\u0027)"},{"line_number":1782,"context_line":"            if extra_specs and \u0027replication_enabled\u0027 in extra_specs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dfeb2761_781729ef","line":1779,"range":{"start_line":1776,"start_character":52,"end_line":1779,"end_character":63},"in_reply_to":"dfeb2761_95b1cb92","updated":"2017-04-03 16:23:11.000000000","message":"yes i understood your point here but our HPE unit test case design does not hold volume object. it hold volume as dictionary, to make this changes it need lot of changes in our HPE unit test cases. In future, we will think of design of it and hopefully will resolve it.","commit_id":"a8dd3fa578cb545bf1f9d1b53ec31461d4f6899c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"78bcc81736cde7766ea1f6b333bf73760d3767b2","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        data[\u0027total_volumes\u0027] \u003d total_volumes"},{"line_number":731,"context_line":"        data[\u0027filter_function\u0027] \u003d self.get_filter_function()"},{"line_number":732,"context_line":"        data[\u0027goodness_function\u0027] \u003d self.get_goodness_function()"},{"line_number":733,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d True"},{"line_number":734,"context_line":"        data[\u0027consistent_group_snapshot_enabled\u0027] \u003d True"},{"line_number":735,"context_line":"        data[\u0027replication_enabled\u0027] \u003d self._replication_enabled"},{"line_number":736,"context_line":"        data[\u0027replication_type\u0027] \u003d [\u0027periodic\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_321895d1","line":733,"range":{"start_line":733,"start_character":8,"end_line":733,"end_character":47},"updated":"2017-04-03 21:30:59.000000000","message":"This is not needed any more.","commit_id":"1baeacaf8e0d0b6c95e57dd8e94e757bc84ae78f"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"1207340180425e8c21375ed964e43343602a113d","unresolved":false,"context_lines":[{"line_number":730,"context_line":"        data[\u0027total_volumes\u0027] \u003d total_volumes"},{"line_number":731,"context_line":"        data[\u0027filter_function\u0027] \u003d self.get_filter_function()"},{"line_number":732,"context_line":"        data[\u0027goodness_function\u0027] \u003d self.get_goodness_function()"},{"line_number":733,"context_line":"        data[\u0027consistencygroup_support\u0027] \u003d True"},{"line_number":734,"context_line":"        data[\u0027consistent_group_snapshot_enabled\u0027] \u003d True"},{"line_number":735,"context_line":"        data[\u0027replication_enabled\u0027] \u003d self._replication_enabled"},{"line_number":736,"context_line":"        data[\u0027replication_type\u0027] \u003d [\u0027periodic\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_1b18fc72","line":733,"range":{"start_line":733,"start_character":8,"end_line":733,"end_character":47},"in_reply_to":"dfeb2761_321895d1","updated":"2017-04-04 10:30:14.000000000","message":"Thanks xing for your review, its done now","commit_id":"1baeacaf8e0d0b6c95e57dd8e94e757bc84ae78f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"78bcc81736cde7766ea1f6b333bf73760d3767b2","unresolved":false,"context_lines":[{"line_number":1775,"context_line":""},{"line_number":1776,"context_line":"    def _volume_of_replicated_type(self, volume, vol_type_id\u003dNone):"},{"line_number":1777,"context_line":"        replicated_type \u003d False"},{"line_number":1778,"context_line":"        volume_type_id \u003d vol_type_id if vol_type_id else volume.get("},{"line_number":1779,"context_line":"            \u0027volume_type_id\u0027)"},{"line_number":1780,"context_line":"        if volume_type_id:"},{"line_number":1781,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":1782,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_d26de932","line":1779,"range":{"start_line":1778,"start_character":0,"end_line":1779,"end_character":29},"updated":"2017-04-03 21:30:59.000000000","message":"Please add a TODO here indicating this should be changed to used volume.volume_types when you re-write the unit tests to use objects instead of dicts.","commit_id":"1baeacaf8e0d0b6c95e57dd8e94e757bc84ae78f"},{"author":{"_account_id":21407,"name":"Kushal Wathore","email":"kushal.wathore@hpe.com","username":"kwathore"},"change_message_id":"1207340180425e8c21375ed964e43343602a113d","unresolved":false,"context_lines":[{"line_number":1775,"context_line":""},{"line_number":1776,"context_line":"    def _volume_of_replicated_type(self, volume, vol_type_id\u003dNone):"},{"line_number":1777,"context_line":"        replicated_type \u003d False"},{"line_number":1778,"context_line":"        volume_type_id \u003d vol_type_id if vol_type_id else volume.get("},{"line_number":1779,"context_line":"            \u0027volume_type_id\u0027)"},{"line_number":1780,"context_line":"        if volume_type_id:"},{"line_number":1781,"context_line":"            volume_type \u003d self._get_volume_type(volume_type_id)"},{"line_number":1782,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dfeb2761_fb28b886","line":1779,"range":{"start_line":1778,"start_character":0,"end_line":1779,"end_character":29},"in_reply_to":"dfeb2761_d26de932","updated":"2017-04-04 10:30:14.000000000","message":"Thanks xing for review,its done now","commit_id":"1baeacaf8e0d0b6c95e57dd8e94e757bc84ae78f"}],"releasenotes/notes/Lefthand-generic-volume-group-570d07b4786b93c2.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"ce3f7112ca3c8bd28ded562fd3148ba0c24b4742","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add consistent group capability to generic volume groups in Lefthand"},{"line_number":4,"context_line":"    driver."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"bff0334d_017bbabd","line":3,"range":{"start_line":3,"start_character":4,"end_line":3,"end_character":7},"updated":"2017-04-11 04:15:04.000000000","message":"Should be \"Added\"","commit_id":"d2c65aa27cc97a7bfb5754d7651dbc9102c0bcee"}]}
