)]}'
{"cinder/tests/unit/test_emc_vnxdirect.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"9b2de8488dd935a68ac7b81bae79e9a5400131cf","unresolved":false,"context_lines":[{"line_number":3402,"context_line":"            mock.call(\u0027lun\u0027, \u0027-detach\u0027, \u0027-name\u0027, vol1_in_new_cg[\u0027name\u0027]),"},{"line_number":3403,"context_line":"            mock.call(*self.testData.LUN_DELETE_CMD(vol1_in_new_cg[\u0027name\u0027])),"},{"line_number":3404,"context_line":"            mock.call(*td.DELETE_CG_SNAPSHOT(copied_snap_name))]"},{"line_number":3405,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"    def test_deregister_initiator(self):"},{"line_number":3408,"context_line":"        fake_cli \u003d self.driverSetup()"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_02a4fb54","line":3405,"updated":"2015-05-12 19:59:50.000000000","message":"I think we were going to move away from assert_called paradigm.  That being said, IMHO it\u0027s your driver and if you want to add that level of testing that should be up to you.\n\nAs long as the actual response asserts are there I think this extra stuff doesn\u0027t hurt.","commit_id":"3905d6fcb0649a437ab810556c925a409e99309b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"323aaca8f06fa788003d062d41e0781069a6ccbe","unresolved":false,"context_lines":[{"line_number":3402,"context_line":"            mock.call(\u0027lun\u0027, \u0027-detach\u0027, \u0027-name\u0027, vol1_in_new_cg[\u0027name\u0027]),"},{"line_number":3403,"context_line":"            mock.call(*self.testData.LUN_DELETE_CMD(vol1_in_new_cg[\u0027name\u0027])),"},{"line_number":3404,"context_line":"            mock.call(*td.DELETE_CG_SNAPSHOT(copied_snap_name))]"},{"line_number":3405,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"    def test_deregister_initiator(self):"},{"line_number":3408,"context_line":"        fake_cli \u003d self.driverSetup()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_4c422140","line":3405,"in_reply_to":"7a016987_8146a221","updated":"2015-05-15 03:02:59.000000000","message":"I see that you have assertEqual and assertTrue already in test_create_consistencygroup_from_cgsnapshot.  So I don\u0027t have better recommendations. This seems fine to me.","commit_id":"3905d6fcb0649a437ab810556c925a409e99309b"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"67c31e40c79a1019fd19218183425175740b6f2a","unresolved":false,"context_lines":[{"line_number":3402,"context_line":"            mock.call(\u0027lun\u0027, \u0027-detach\u0027, \u0027-name\u0027, vol1_in_new_cg[\u0027name\u0027]),"},{"line_number":3403,"context_line":"            mock.call(*self.testData.LUN_DELETE_CMD(vol1_in_new_cg[\u0027name\u0027])),"},{"line_number":3404,"context_line":"            mock.call(*td.DELETE_CG_SNAPSHOT(copied_snap_name))]"},{"line_number":3405,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"    def test_deregister_initiator(self):"},{"line_number":3408,"context_line":"        fake_cli \u003d self.driverSetup()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_8146a221","line":3405,"in_reply_to":"7a016987_f0c1b481","updated":"2015-05-15 02:32:47.000000000","message":"Hi Xing,\n\nAn enhancement that can be done is to remove some calls in the method \u0027test_create_cg_from_cgsnapshot_migrate_failed\u0027 to just assert the revert commands have been called, because the other normal commands calls has been tested in case \u0027test_create_consistencygroup_from_cgsnapshot\u0027.  Please see the change in the patch 14.\n\nI do not have a good idea to remove the assertion in \u0027test_create_consistencygroup_from_cgsnapshot` right now as it is trying to ensure the correct operations has been done. \n\nThanks,\nTina","commit_id":"3905d6fcb0649a437ab810556c925a409e99309b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"83cc1d995001fcc8fa7bf9c91446a5ab4e2d1677","unresolved":false,"context_lines":[{"line_number":3402,"context_line":"            mock.call(\u0027lun\u0027, \u0027-detach\u0027, \u0027-name\u0027, vol1_in_new_cg[\u0027name\u0027]),"},{"line_number":3403,"context_line":"            mock.call(*self.testData.LUN_DELETE_CMD(vol1_in_new_cg[\u0027name\u0027])),"},{"line_number":3404,"context_line":"            mock.call(*td.DELETE_CG_SNAPSHOT(copied_snap_name))]"},{"line_number":3405,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"    def test_deregister_initiator(self):"},{"line_number":3408,"context_line":"        fake_cli \u003d self.driverSetup()"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_05ec05c6","line":3405,"in_reply_to":"9a0c5dc1_02a4fb54","updated":"2015-05-12 21:55:07.000000000","message":"Hi John,\n\nDo you recommend that this to be replaced with something else or just removing lines 3361-3405?  Thanks.","commit_id":"3905d6fcb0649a437ab810556c925a409e99309b"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"c4894caec84067f2ef532fe5b00ccde1934ae8f5","unresolved":false,"context_lines":[{"line_number":3402,"context_line":"            mock.call(\u0027lun\u0027, \u0027-detach\u0027, \u0027-name\u0027, vol1_in_new_cg[\u0027name\u0027]),"},{"line_number":3403,"context_line":"            mock.call(*self.testData.LUN_DELETE_CMD(vol1_in_new_cg[\u0027name\u0027])),"},{"line_number":3404,"context_line":"            mock.call(*td.DELETE_CG_SNAPSHOT(copied_snap_name))]"},{"line_number":3405,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"    def test_deregister_initiator(self):"},{"line_number":3408,"context_line":"        fake_cli \u003d self.driverSetup()"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a0c5dc1_98e83c12","line":3405,"in_reply_to":"9a0c5dc1_02a4fb54","updated":"2015-05-13 13:03:00.000000000","message":"Hi John,\r\n\r\nThanks for the comments, and I have a same question as Xing. Do you recommend remove this assertion?\r\n\r\nBR,\r\nTina","commit_id":"3905d6fcb0649a437ab810556c925a409e99309b"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"24bfdd1b6c37ddf56570a2844211c6fb7703d710","unresolved":false,"context_lines":[{"line_number":3402,"context_line":"            mock.call(\u0027lun\u0027, \u0027-detach\u0027, \u0027-name\u0027, vol1_in_new_cg[\u0027name\u0027]),"},{"line_number":3403,"context_line":"            mock.call(*self.testData.LUN_DELETE_CMD(vol1_in_new_cg[\u0027name\u0027])),"},{"line_number":3404,"context_line":"            mock.call(*td.DELETE_CG_SNAPSHOT(copied_snap_name))]"},{"line_number":3405,"context_line":"        fake_cli.assert_has_calls(expect_cmd)"},{"line_number":3406,"context_line":""},{"line_number":3407,"context_line":"    def test_deregister_initiator(self):"},{"line_number":3408,"context_line":"        fake_cli \u003d self.driverSetup()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a016987_f0c1b481","line":3405,"in_reply_to":"9a0c5dc1_98e83c12","updated":"2015-05-14 17:35:10.000000000","message":"Hi Tina,\n\nI had a discussion with John and a few others in the Cinder team. There are some concerns regarding the maintainability of this long list of calls, but I am not getting an exact instruction to remove it yet. So please keep this assert_has_calls for now.\n\nCan you see if it is possible to add some smaller assert calls such as assertTrue or assertEqual, etc.?  Thanks.","commit_id":"3905d6fcb0649a437ab810556c925a409e99309b"}],"cinder/volume/drivers/emc/emc_cli_fc.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fb92bdfff5f74a9806bd04df86f1e1e33339b99","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        5.2.0 - Pool-aware scheduler support"},{"line_number":56,"context_line":"        5.3.0 - Consistency group modification support"},{"line_number":57,"context_line":"        5.4.0 - Create consistency group from cgsnapshot support"},{"line_number":58,"context_line":"        6.0.0 - Create consistency group from cgsnapshot support"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_340fc589","line":58,"updated":"2015-04-25 03:29:02.000000000","message":"These two lines are redundant and with different versions.  Looks like a rebase error.","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"5d424fd2726252029df89d71e5ea29a4c9e21fa1","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        5.2.0 - Pool-aware scheduler support"},{"line_number":56,"context_line":"        5.3.0 - Consistency group modification support"},{"line_number":57,"context_line":"        5.4.0 - Create consistency group from cgsnapshot support"},{"line_number":58,"context_line":"        6.0.0 - Create consistency group from cgsnapshot support"},{"line_number":59,"context_line":"    \"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_0c9c8e0d","line":58,"in_reply_to":"bab921fb_340fc589","updated":"2015-04-27 05:46:51.000000000","message":"Done","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"}],"cinder/volume/drivers/emc/emc_cli_iscsi.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fb92bdfff5f74a9806bd04df86f1e1e33339b99","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        5.2.0 - Pool-aware scheduler support"},{"line_number":54,"context_line":"        5.3.0 - Consistency group modification support"},{"line_number":55,"context_line":"        5.4.0 - Create consistency group from cgsnapshot support"},{"line_number":56,"context_line":"        6.0.0 - Create consistency group from cgsnapshot support"},{"line_number":57,"context_line":"    \"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_d47529fa","line":56,"updated":"2015-04-25 03:29:02.000000000","message":"Duplicate version entries.","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"5d424fd2726252029df89d71e5ea29a4c9e21fa1","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        5.2.0 - Pool-aware scheduler support"},{"line_number":54,"context_line":"        5.3.0 - Consistency group modification support"},{"line_number":55,"context_line":"        5.4.0 - Create consistency group from cgsnapshot support"},{"line_number":56,"context_line":"        6.0.0 - Create consistency group from cgsnapshot support"},{"line_number":57,"context_line":"    \"\"\""},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_2c9752ed","line":56,"in_reply_to":"bab921fb_d47529fa","updated":"2015-04-27 05:46:51.000000000","message":"Done","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"}],"cinder/volume/drivers/emc/emc_vnx_cli.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"400fba8da725b44a04b5b844e3de622349a2f0ac","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                             \u0027-name\u0027, cg_name,"},{"line_number":562,"context_line":"                             \u0027-allowSnapAutoDelete\u0027, \u0027no\u0027)"},{"line_number":563,"context_line":"        if members:"},{"line_number":564,"context_line":"            command_create_cg +\u003d (\u0027-res\u0027, \u0027,\u0027.join(map(str, members)))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        out, rc \u003d self.command_execute(*command_create_cg)"},{"line_number":567,"context_line":"        if rc !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_e8ad619c","line":564,"updated":"2015-03-13 15:59:13.000000000","message":"\"str\" should be replaced with \"six.text_type\" here.","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"e4e601ef2c788c8782f8984f920b55ee31f7160e","unresolved":false,"context_lines":[{"line_number":561,"context_line":"                             \u0027-name\u0027, cg_name,"},{"line_number":562,"context_line":"                             \u0027-allowSnapAutoDelete\u0027, \u0027no\u0027)"},{"line_number":563,"context_line":"        if members:"},{"line_number":564,"context_line":"            command_create_cg +\u003d (\u0027-res\u0027, \u0027,\u0027.join(map(str, members)))"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"        out, rc \u003d self.command_execute(*command_create_cg)"},{"line_number":567,"context_line":"        if rc !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_7ee910e5","line":564,"in_reply_to":"9a80dd14_e8ad619c","updated":"2015-03-14 03:12:20.000000000","message":"Done","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"400fba8da725b44a04b5b844e3de622349a2f0ac","unresolved":false,"context_lines":[{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        return True"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":"    def migrate_lun_with_verification(self, src_id,"},{"line_number":930,"context_line":"                                      dst_id,"},{"line_number":931,"context_line":"                                      dst_name\u003dNone):"},{"line_number":932,"context_line":"        migration_started \u003d self.migrate_lun_without_verification("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_8b75bf99","line":929,"updated":"2015-03-13 15:59:13.000000000","message":"This looks like a refactoring of the migrate lun logic. Can you add a line in the commit message about this change?","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"e4e601ef2c788c8782f8984f920b55ee31f7160e","unresolved":false,"context_lines":[{"line_number":926,"context_line":""},{"line_number":927,"context_line":"        return True"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":"    def migrate_lun_with_verification(self, src_id,"},{"line_number":930,"context_line":"                                      dst_id,"},{"line_number":931,"context_line":"                                      dst_name\u003dNone):"},{"line_number":932,"context_line":"        migration_started \u003d self.migrate_lun_without_verification("}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_9ee4040e","line":929,"in_reply_to":"9a80dd14_8b75bf99","updated":"2015-03-14 03:12:20.000000000","message":"Done","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"400fba8da725b44a04b5b844e3de622349a2f0ac","unresolved":false,"context_lines":[{"line_number":2967,"context_line":""},{"line_number":2968,"context_line":"        flow_name \u003d \u0027create_consistencygroup_from_cgsnapshot\u0027"},{"line_number":2969,"context_line":"        work_flow \u003d linear_flow.Flow(flow_name)"},{"line_number":2970,"context_line":"        copied_snapshot_name \u003d \u0027copied_snapshot_for_%s\u0027 % group[\u0027id\u0027]"},{"line_number":2971,"context_line":"        store_spec \u003d {"},{"line_number":2972,"context_line":"            \u0027group\u0027: group,"},{"line_number":2973,"context_line":"            \u0027src_snap_name\u0027: cgsnapshot[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_4b9ca76a","line":2970,"updated":"2015-03-13 15:59:13.000000000","message":"I think it is better to name this \"temp_snapshot_for_xxx\" to indicate that it is supposed to be deleted after the operation is done.","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"e4e601ef2c788c8782f8984f920b55ee31f7160e","unresolved":false,"context_lines":[{"line_number":2967,"context_line":""},{"line_number":2968,"context_line":"        flow_name \u003d \u0027create_consistencygroup_from_cgsnapshot\u0027"},{"line_number":2969,"context_line":"        work_flow \u003d linear_flow.Flow(flow_name)"},{"line_number":2970,"context_line":"        copied_snapshot_name \u003d \u0027copied_snapshot_for_%s\u0027 % group[\u0027id\u0027]"},{"line_number":2971,"context_line":"        store_spec \u003d {"},{"line_number":2972,"context_line":"            \u0027group\u0027: group,"},{"line_number":2973,"context_line":"            \u0027src_snap_name\u0027: cgsnapshot[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_beef08e8","line":2970,"in_reply_to":"9a80dd14_4b9ca76a","updated":"2015-03-14 03:12:20.000000000","message":"Done","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"400fba8da725b44a04b5b844e3de622349a2f0ac","unresolved":false,"context_lines":[{"line_number":3029,"context_line":"        try:"},{"line_number":3030,"context_line":"            self._client.delete_cgsnapshot(copied_snapshot_name)"},{"line_number":3031,"context_line":"        except exception.EMCVnxCLICmdError as ex:"},{"line_number":3032,"context_line":"            LOG.warning(_LW(\u0027Delete the copied cgsnapshot %(name)s failed. \u0027"},{"line_number":3033,"context_line":"                            \u0027This copied cgsnapshot can be deleted manually. \u0027"},{"line_number":3034,"context_line":"                            \u0027Message: %(msg)s\u0027),"},{"line_number":3035,"context_line":"                        {\u0027name\u0027: copied_snapshot_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_8bb77fd7","line":3032,"updated":"2015-03-13 15:59:13.000000000","message":"See previous comments. Suggest change \"copied\" to \"temporary\".\n\nAlso can you add a sentence here to indicate that cg \u003cid\u003e was created successfully from cgsnapshot \u003cid\u003e?  This way the user knows that the cleanup after cg creation failed but cg was created already.","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"e4e601ef2c788c8782f8984f920b55ee31f7160e","unresolved":false,"context_lines":[{"line_number":3029,"context_line":"        try:"},{"line_number":3030,"context_line":"            self._client.delete_cgsnapshot(copied_snapshot_name)"},{"line_number":3031,"context_line":"        except exception.EMCVnxCLICmdError as ex:"},{"line_number":3032,"context_line":"            LOG.warning(_LW(\u0027Delete the copied cgsnapshot %(name)s failed. \u0027"},{"line_number":3033,"context_line":"                            \u0027This copied cgsnapshot can be deleted manually. \u0027"},{"line_number":3034,"context_line":"                            \u0027Message: %(msg)s\u0027),"},{"line_number":3035,"context_line":"                        {\u0027name\u0027: copied_snapshot_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_febc20de","line":3032,"in_reply_to":"9a80dd14_8bb77fd7","updated":"2015-03-14 03:12:20.000000000","message":"Done","commit_id":"bc187d02f95d9e9bbeddc640b5e9e8002aeb8fb6"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fb92bdfff5f74a9806bd04df86f1e1e33339b99","unresolved":false,"context_lines":[{"line_number":1691,"context_line":"class EMCVnxCliBase(object):"},{"line_number":1692,"context_line":"    \"\"\"This class defines the functions to use the native CLI functionality.\"\"\""},{"line_number":1693,"context_line":""},{"line_number":1694,"context_line":"    VERSION \u003d \u002706.00.00\u0027"},{"line_number":1695,"context_line":"    stats \u003d {\u0027driver_version\u0027: VERSION,"},{"line_number":1696,"context_line":"             \u0027storage_protocol\u0027: None,"},{"line_number":1697,"context_line":"             \u0027vendor_name\u0027: \u0027EMC\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_b4e07597","line":1694,"updated":"2015-04-25 03:29:02.000000000","message":"Please make sure this is consistent with versions in drivers after you\u0027ve fixed them (driver has duplicate versions).","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"5d424fd2726252029df89d71e5ea29a4c9e21fa1","unresolved":false,"context_lines":[{"line_number":1691,"context_line":"class EMCVnxCliBase(object):"},{"line_number":1692,"context_line":"    \"\"\"This class defines the functions to use the native CLI functionality.\"\"\""},{"line_number":1693,"context_line":""},{"line_number":1694,"context_line":"    VERSION \u003d \u002706.00.00\u0027"},{"line_number":1695,"context_line":"    stats \u003d {\u0027driver_version\u0027: VERSION,"},{"line_number":1696,"context_line":"             \u0027storage_protocol\u0027: None,"},{"line_number":1697,"context_line":"             \u0027vendor_name\u0027: \u0027EMC\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_b6ddefe1","line":1694,"in_reply_to":"bab921fb_b4e07597","updated":"2015-04-27 05:46:51.000000000","message":"Done","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6fb92bdfff5f74a9806bd04df86f1e1e33339b99","unresolved":false,"context_lines":[{"line_number":3114,"context_line":"        except exception.EMCVnxCLICmdError as ex:"},{"line_number":3115,"context_line":"            LOG.warning(_LW(\u0027Delete the temporary cgsnapshot %(name)s failed. \u0027"},{"line_number":3116,"context_line":"                            \u0027This temporary cgsnapshot can be deleted \u0027"},{"line_number":3117,"context_line":"                            \u0027manually. Consisgroup %(cg)s is created \u0027"},{"line_number":3118,"context_line":"                            \u0027successfully from cgsnapshot %(cgsnapshot)s. \u0027"},{"line_number":3119,"context_line":"                            \u0027Message: %(msg)s\u0027),"},{"line_number":3120,"context_line":"                        {\u0027name\u0027: copied_snapshot_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_b4a51548","line":3117,"updated":"2015-04-25 03:29:02.000000000","message":"Please spell out \"consistency group\" in the message:\n\nConsisgroup -\u003e Consistency group","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"5d424fd2726252029df89d71e5ea29a4c9e21fa1","unresolved":false,"context_lines":[{"line_number":3114,"context_line":"        except exception.EMCVnxCLICmdError as ex:"},{"line_number":3115,"context_line":"            LOG.warning(_LW(\u0027Delete the temporary cgsnapshot %(name)s failed. \u0027"},{"line_number":3116,"context_line":"                            \u0027This temporary cgsnapshot can be deleted \u0027"},{"line_number":3117,"context_line":"                            \u0027manually. Consisgroup %(cg)s is created \u0027"},{"line_number":3118,"context_line":"                            \u0027successfully from cgsnapshot %(cgsnapshot)s. \u0027"},{"line_number":3119,"context_line":"                            \u0027Message: %(msg)s\u0027),"},{"line_number":3120,"context_line":"                        {\u0027name\u0027: copied_snapshot_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab921fb_56e0d395","line":3117,"in_reply_to":"bab921fb_b4a51548","updated":"2015-04-27 05:46:51.000000000","message":"Done","commit_id":"db9f693d3039812b8eb86f89910d8e47d9abac12"}]}
