)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"59f0e67458bb8b043b53cdc6081eb5e651b80db3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clone cg support in VNX driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change implmented the clone consisgroup function"},{"line_number":10,"context_line":"in VNX driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_4e5985fd","line":9,"updated":"2015-08-28 12:22:01.000000000","message":"s/implmented/implemented/\n\nconsisgroup?","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"f860fdf2d29975b621813f24ca2399744164a119","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Clone cg support in VNX driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change implmented the clone consisgroup function"},{"line_number":10,"context_line":"in VNX driver."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"DocImpact"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_5a5cdfec","line":9,"in_reply_to":"da20952f_4e5985fd","updated":"2015-08-28 13:36:31.000000000","message":"Updated.","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"}],"cinder/tests/unit/test_emc_vnxdirect.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"59f0e67458bb8b043b53cdc6081eb5e651b80db3","unresolved":false,"context_lines":[{"line_number":3963,"context_line":"        vol1_in_src_cg \u003d {\u0027id\u0027: \u0027fake_volume\u0027,"},{"line_number":3964,"context_line":"                          \u0027consistencygroup_id\u0027: src_cg[\u0027id\u0027]}"},{"line_number":3965,"context_line":"        self.driverSetup()"},{"line_number":3966,"context_line":"        self.assertRaises("},{"line_number":3967,"context_line":"            exception.InvalidInput,"},{"line_number":3968,"context_line":"            self.driver.create_consistencygroup_from_src,"},{"line_number":3969,"context_line":"            new_cg, [vol1_in_new_cg],"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_cec9157a","line":3966,"updated":"2015-08-28 12:22:01.000000000","message":"It is easier to trouble-shoot when tests fail if these assertRaises are broken out as separate test cases.","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"f860fdf2d29975b621813f24ca2399744164a119","unresolved":false,"context_lines":[{"line_number":3963,"context_line":"        vol1_in_src_cg \u003d {\u0027id\u0027: \u0027fake_volume\u0027,"},{"line_number":3964,"context_line":"                          \u0027consistencygroup_id\u0027: src_cg[\u0027id\u0027]}"},{"line_number":3965,"context_line":"        self.driverSetup()"},{"line_number":3966,"context_line":"        self.assertRaises("},{"line_number":3967,"context_line":"            exception.InvalidInput,"},{"line_number":3968,"context_line":"            self.driver.create_consistencygroup_from_src,"},{"line_number":3969,"context_line":"            new_cg, [vol1_in_new_cg],"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_bf940de2","line":3966,"in_reply_to":"da20952f_cec9157a","updated":"2015-08-28 13:36:31.000000000","message":"Done","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"38e5465a89ee467f1702c917f842bb5de7a621da","unresolved":false,"context_lines":[{"line_number":3956,"context_line":"            new_cg, [vol1_in_new_cg],"},{"line_number":3957,"context_line":"            None, None, None, None)"},{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":"    def test_create_cg_from_src_failed_with_multipel_source(self):"},{"line_number":3960,"context_line":"        new_cg \u003d fake_consistencygroup.fake_consistencyobject_obj("},{"line_number":3961,"context_line":"            None, **self.testData.test_cg)"},{"line_number":3962,"context_line":"        vol1_in_new_cg \u003d self.testData.test_volume_cg"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_42a83f77","line":3959,"updated":"2015-08-30 23:37:44.000000000","message":"Suggest renaming the method: \"test_create_cg_from_src_failed_with_multiple_source(self)\"","commit_id":"62a33a830929dee9d9dc0001e727ac216147ee58"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"0d523fe7b1f05d8e80c122c700079ef91106d4af","unresolved":false,"context_lines":[{"line_number":3956,"context_line":"            new_cg, [vol1_in_new_cg],"},{"line_number":3957,"context_line":"            None, None, None, None)"},{"line_number":3958,"context_line":""},{"line_number":3959,"context_line":"    def test_create_cg_from_src_failed_with_multipel_source(self):"},{"line_number":3960,"context_line":"        new_cg \u003d fake_consistencygroup.fake_consistencyobject_obj("},{"line_number":3961,"context_line":"            None, **self.testData.test_cg)"},{"line_number":3962,"context_line":"        vol1_in_new_cg \u003d self.testData.test_volume_cg"}],"source_content_type":"text/x-python","patch_set":5,"id":"da20952f_d805207a","line":3959,"in_reply_to":"da20952f_42a83f77","updated":"2015-08-31 02:26:06.000000000","message":"Oops, good catch. Done. Thanks, Kendall.","commit_id":"62a33a830929dee9d9dc0001e727ac216147ee58"}],"cinder/volume/drivers/emc/emc_cli_fc.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"59f0e67458bb8b043b53cdc6081eb5e651b80db3","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                Manage/unmanage volume revise"},{"line_number":58,"context_line":"                White list target ports support"},{"line_number":59,"context_line":"                Snap copy support"},{"line_number":60,"context_line":"                Clone consistency group support"},{"line_number":61,"context_line":"    \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_8ea23dad","line":60,"updated":"2015-08-28 12:22:01.000000000","message":"Did you want to increase the version?","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"f860fdf2d29975b621813f24ca2399744164a119","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                Manage/unmanage volume revise"},{"line_number":58,"context_line":"                White list target ports support"},{"line_number":59,"context_line":"                Snap copy support"},{"line_number":60,"context_line":"                Clone consistency group support"},{"line_number":61,"context_line":"    \"\"\""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_3f455d6f","line":60,"in_reply_to":"da20952f_8ea23dad","updated":"2015-08-28 13:36:31.000000000","message":"No, we will keep with 6.0.0 in the L release","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"}],"cinder/volume/drivers/emc/emc_cli_iscsi.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"59f0e67458bb8b043b53cdc6081eb5e651b80db3","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                Manage/unmanage volume revise"},{"line_number":56,"context_line":"                White list target ports support"},{"line_number":57,"context_line":"                Snap copy support"},{"line_number":58,"context_line":"                Clone consistency group 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":3,"id":"da20952f_6eafa994","line":58,"updated":"2015-08-28 12:22:01.000000000","message":"version?","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"f860fdf2d29975b621813f24ca2399744164a119","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                Manage/unmanage volume revise"},{"line_number":56,"context_line":"                White list target ports support"},{"line_number":57,"context_line":"                Snap copy support"},{"line_number":58,"context_line":"                Clone consistency group 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":3,"id":"da20952f_7aea0311","line":58,"in_reply_to":"da20952f_6eafa994","updated":"2015-08-28 13:36:31.000000000","message":"We will keep with 6.0.0 in the L release","commit_id":"c35777cbff171127419093ae03e715062ded5c5d"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"2d927aa9ff05d889284c892ad60a06638c523921","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                White list target ports support"},{"line_number":57,"context_line":"                Snap copy support"},{"line_number":58,"context_line":"                Support efficient non-disruptive backup"},{"line_number":59,"context_line":"                Clone consistency group support"},{"line_number":60,"context_line":"    \"\"\""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_b1eac772","line":59,"updated":"2015-09-29 18:56:12.000000000","message":"Doesn\u0027t warrant a version bump?","commit_id":"7fd1578c6ef09000db0958eb6ec2510b9e2b3dfe"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"ae31c38197b9a31181be99621db6e4bfefadd129","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                White list target ports support"},{"line_number":57,"context_line":"                Snap copy support"},{"line_number":58,"context_line":"                Support efficient non-disruptive backup"},{"line_number":59,"context_line":"                Clone consistency group support"},{"line_number":60,"context_line":"    \"\"\""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_d1de163d","line":59,"in_reply_to":"9a1a9d01_1b084927","updated":"2015-10-01 06:13:15.000000000","message":"Hi Walter and Xing\nversion bumped to 7.0.0 now","commit_id":"7fd1578c6ef09000db0958eb6ec2510b9e2b3dfe"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"498854a83a372d9b3e2767e4cb374ac892b7f3df","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                White list target ports support"},{"line_number":57,"context_line":"                Snap copy support"},{"line_number":58,"context_line":"                Support efficient non-disruptive backup"},{"line_number":59,"context_line":"                Clone consistency group support"},{"line_number":60,"context_line":"    \"\"\""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def __init__(self, *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_1b084927","line":59,"in_reply_to":"9a1a9d01_b1eac772","updated":"2015-09-30 14:43:48.000000000","message":"Initially this was supposed to be part of Liberty which is 6.0.0.  Now this is part of Mitaka.  So probably should start with a new version.","commit_id":"7fd1578c6ef09000db0958eb6ec2510b9e2b3dfe"}],"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":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3439,"context_line":"            msg \u003d _(\"create_consistencygroup_from_src supports a \""},{"line_number":3440,"context_line":"                    \"cgsnapshot source or a consistency group source. \""},{"line_number":3441,"context_line":"                    \"Multiple sources cannot be used.\")"},{"line_number":3442,"context_line":"            raise exception.InvalidInput(msg)"},{"line_number":3443,"context_line":""},{"line_number":3444,"context_line":"    def _clone_consisgroup(self, group, volumes, source_cg, source_vols):"},{"line_number":3445,"context_line":"        temp_cgsnapshot_name \u003d \u0027temp_snapshot_for_{}\u0027.format(group[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_44dbe8ed","line":3442,"updated":"2015-08-24 04:02:49.000000000","message":"exception.InvalidInput(reason\u003dmsg)","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3439,"context_line":"            msg \u003d _(\"create_consistencygroup_from_src supports a \""},{"line_number":3440,"context_line":"                    \"cgsnapshot source or a consistency group source. \""},{"line_number":3441,"context_line":"                    \"Multiple sources cannot be used.\")"},{"line_number":3442,"context_line":"            raise exception.InvalidInput(msg)"},{"line_number":3443,"context_line":""},{"line_number":3444,"context_line":"    def _clone_consisgroup(self, group, volumes, source_cg, source_vols):"},{"line_number":3445,"context_line":"        temp_cgsnapshot_name \u003d \u0027temp_snapshot_for_{}\u0027.format(group[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_7b2b0495","line":3442,"in_reply_to":"fa1b9901_44dbe8ed","updated":"2015-08-28 03:57:06.000000000","message":"Done","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3442,"context_line":"            raise exception.InvalidInput(msg)"},{"line_number":3443,"context_line":""},{"line_number":3444,"context_line":"    def _clone_consisgroup(self, group, volumes, source_cg, source_vols):"},{"line_number":3445,"context_line":"        temp_cgsnapshot_name \u003d \u0027temp_snapshot_for_{}\u0027.format(group[\u0027id\u0027])"},{"line_number":3446,"context_line":"        store_spec \u003d {"},{"line_number":3447,"context_line":"            \u0027group\u0027: group,"},{"line_number":3448,"context_line":"            \u0027snapshot\u0027: {\u0027id\u0027: temp_cgsnapshot_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_64d86cf0","line":3445,"updated":"2015-08-24 04:02:49.000000000","message":"Use objects for cg.\n\ngroup.id","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3442,"context_line":"            raise exception.InvalidInput(msg)"},{"line_number":3443,"context_line":""},{"line_number":3444,"context_line":"    def _clone_consisgroup(self, group, volumes, source_cg, source_vols):"},{"line_number":3445,"context_line":"        temp_cgsnapshot_name \u003d \u0027temp_snapshot_for_{}\u0027.format(group[\u0027id\u0027])"},{"line_number":3446,"context_line":"        store_spec \u003d {"},{"line_number":3447,"context_line":"            \u0027group\u0027: group,"},{"line_number":3448,"context_line":"            \u0027snapshot\u0027: {\u0027id\u0027: temp_cgsnapshot_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_1b19a888","line":3445,"in_reply_to":"fa1b9901_64d86cf0","updated":"2015-08-28 03:57:06.000000000","message":"Done","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3446,"context_line":"        store_spec \u003d {"},{"line_number":3447,"context_line":"            \u0027group\u0027: group,"},{"line_number":3448,"context_line":"            \u0027snapshot\u0027: {\u0027id\u0027: temp_cgsnapshot_name,"},{"line_number":3449,"context_line":"                         \u0027consistencygroup_id\u0027: source_cg[\u0027id\u0027]},"},{"line_number":3450,"context_line":"            \u0027snap_name\u0027: temp_cgsnapshot_name,"},{"line_number":3451,"context_line":"            \u0027source_lun_id\u0027: None,"},{"line_number":3452,"context_line":"            \u0027client\u0027: self._client"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_04e5f0a6","line":3449,"updated":"2015-08-24 04:02:49.000000000","message":"source_cg.id","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3446,"context_line":"        store_spec \u003d {"},{"line_number":3447,"context_line":"            \u0027group\u0027: group,"},{"line_number":3448,"context_line":"            \u0027snapshot\u0027: {\u0027id\u0027: temp_cgsnapshot_name,"},{"line_number":3449,"context_line":"                         \u0027consistencygroup_id\u0027: source_cg[\u0027id\u0027]},"},{"line_number":3450,"context_line":"            \u0027snap_name\u0027: temp_cgsnapshot_name,"},{"line_number":3451,"context_line":"            \u0027source_lun_id\u0027: None,"},{"line_number":3452,"context_line":"            \u0027client\u0027: self._client"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_3b1cac76","line":3449,"in_reply_to":"fa1b9901_04e5f0a6","updated":"2015-08-28 03:57:06.000000000","message":"Done","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3461,"context_line":"        self._delete_temp_cgsnap(temp_cgsnapshot_name)"},{"line_number":3462,"context_line":""},{"line_number":3463,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3464,"context_line":"                 group[\u0027id\u0027])"},{"line_number":3465,"context_line":""},{"line_number":3466,"context_line":"        return None, volume_model_updates"},{"line_number":3467,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_24e274a0","line":3464,"updated":"2015-08-24 04:02:49.000000000","message":"group.id","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3461,"context_line":"        self._delete_temp_cgsnap(temp_cgsnapshot_name)"},{"line_number":3462,"context_line":""},{"line_number":3463,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3464,"context_line":"                 group[\u0027id\u0027])"},{"line_number":3465,"context_line":""},{"line_number":3466,"context_line":"        return None, volume_model_updates"},{"line_number":3467,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_db125062","line":3464,"in_reply_to":"fa1b9901_24e274a0","updated":"2015-08-28 03:57:06.000000000","message":"Done","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3479,"context_line":"        snap_build_tasks \u003d [CopySnapshotTask(),"},{"line_number":3480,"context_line":"                            AllowReadWriteOnSnapshotTask()]"},{"line_number":3481,"context_line":""},{"line_number":3482,"context_line":"        src_vols \u003d map(lambda snap: snap[\u0027volume\u0027], snapshots)"},{"line_number":3483,"context_line":""},{"line_number":3484,"context_line":"        volume_model_updates \u003d self._create_cg_from_cgsnap_use_workflow("},{"line_number":3485,"context_line":"            flow_name, snap_build_tasks, store_spec, volumes, src_vols)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_44020840","line":3482,"updated":"2015-08-24 04:02:49.000000000","message":"Use object for snapshot\n\nsnap.volume","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3479,"context_line":"        snap_build_tasks \u003d [CopySnapshotTask(),"},{"line_number":3480,"context_line":"                            AllowReadWriteOnSnapshotTask()]"},{"line_number":3481,"context_line":""},{"line_number":3482,"context_line":"        src_vols \u003d map(lambda snap: snap[\u0027volume\u0027], snapshots)"},{"line_number":3483,"context_line":""},{"line_number":3484,"context_line":"        volume_model_updates \u003d self._create_cg_from_cgsnap_use_workflow("},{"line_number":3485,"context_line":"            flow_name, snap_build_tasks, store_spec, volumes, src_vols)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_7b02240d","line":3482,"in_reply_to":"fa1b9901_44020840","updated":"2015-08-28 03:57:06.000000000","message":"Done","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"        self._delete_temp_cgsnap(copied_snapshot_name)"},{"line_number":3488,"context_line":""},{"line_number":3489,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3490,"context_line":"                 group[\u0027id\u0027])"},{"line_number":3491,"context_line":""},{"line_number":3492,"context_line":"        return None, volume_model_updates"},{"line_number":3493,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_c494d8e9","line":3490,"updated":"2015-08-24 04:02:49.000000000","message":"group.id","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"        self._delete_temp_cgsnap(copied_snapshot_name)"},{"line_number":3488,"context_line":""},{"line_number":3489,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3490,"context_line":"                 group[\u0027id\u0027])"},{"line_number":3491,"context_line":""},{"line_number":3492,"context_line":"        return None, volume_model_updates"},{"line_number":3493,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_8e149444","line":3490,"in_reply_to":"fa1b9901_c494d8e9","updated":"2015-08-28 03:57:06.000000000","message":"Done","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3766,"context_line":"        LOG.debug(\u0027CreateSnapshotTask.execute\u0027)"},{"line_number":3767,"context_line":"        # Create temp Snapshot"},{"line_number":3768,"context_line":"        if snapshot[\u0027consistencygroup_id\u0027]:"},{"line_number":3769,"context_line":"            client.create_cgsnapshot(snapshot[\u0027consistencygroup_id\u0027],"},{"line_number":3770,"context_line":"                                     snapshot[\u0027id\u0027])"},{"line_number":3771,"context_line":"        else:"},{"line_number":3772,"context_line":"            snapshot_name \u003d snapshot[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_4489a8c9","line":3769,"updated":"2015-08-24 04:02:49.000000000","message":"snapshot.consistencygroup_id","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3766,"context_line":"        LOG.debug(\u0027CreateSnapshotTask.execute\u0027)"},{"line_number":3767,"context_line":"        # Create temp Snapshot"},{"line_number":3768,"context_line":"        if snapshot[\u0027consistencygroup_id\u0027]:"},{"line_number":3769,"context_line":"            client.create_cgsnapshot(snapshot[\u0027consistencygroup_id\u0027],"},{"line_number":3770,"context_line":"                                     snapshot[\u0027id\u0027])"},{"line_number":3771,"context_line":"        else:"},{"line_number":3772,"context_line":"            snapshot_name \u003d snapshot[\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_ce57ec00","line":3769,"in_reply_to":"fa1b9901_4489a8c9","updated":"2015-08-28 03:57:06.000000000","message":"I am not able to change to use the snapshot.consistencygroup_id because the snapshot maybe build in the driver which is a dictionary.","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"6b902cd53e9a0273263440e7255bb12be0a746a1","unresolved":false,"context_lines":[{"line_number":3767,"context_line":"        # Create temp Snapshot"},{"line_number":3768,"context_line":"        if snapshot[\u0027consistencygroup_id\u0027]:"},{"line_number":3769,"context_line":"            client.create_cgsnapshot(snapshot[\u0027consistencygroup_id\u0027],"},{"line_number":3770,"context_line":"                                     snapshot[\u0027id\u0027])"},{"line_number":3771,"context_line":"        else:"},{"line_number":3772,"context_line":"            snapshot_name \u003d snapshot[\u0027name\u0027]"},{"line_number":3773,"context_line":"            volume_name \u003d snapshot[\u0027volume_name\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_64862cbb","line":3770,"updated":"2015-08-24 04:02:49.000000000","message":"snapshot.id","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"2c44e9feeb1e483dbec463c33e9a1d9b2ed9b2b7","unresolved":false,"context_lines":[{"line_number":3767,"context_line":"        # Create temp Snapshot"},{"line_number":3768,"context_line":"        if snapshot[\u0027consistencygroup_id\u0027]:"},{"line_number":3769,"context_line":"            client.create_cgsnapshot(snapshot[\u0027consistencygroup_id\u0027],"},{"line_number":3770,"context_line":"                                     snapshot[\u0027id\u0027])"},{"line_number":3771,"context_line":"        else:"},{"line_number":3772,"context_line":"            snapshot_name \u003d snapshot[\u0027name\u0027]"},{"line_number":3773,"context_line":"            volume_name \u003d snapshot[\u0027volume_name\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_2c2f90f7","line":3770,"in_reply_to":"fa1b9901_64862cbb","updated":"2015-08-28 03:57:06.000000000","message":"I am not able to change to use the snapshot.consistencygroup_id because the snapshot maybe build in the driver which is a dictionary.","commit_id":"92e98c3f307c2449040df8e6dbb1a282f91770fd"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"4bfc4fcfc5c7d6197e9e24697e4e436fcff5df54","unresolved":false,"context_lines":[{"line_number":3497,"context_line":""},{"line_number":3498,"context_line":"    def _create_cg_from_cgsnap_use_workflow(self, flow_name, snap_build_tasks,"},{"line_number":3499,"context_line":"                                            store_spec, volumes, source_vols):"},{"line_number":3500,"context_line":""},{"line_number":3501,"context_line":"        work_flow \u003d linear_flow.Flow(flow_name)"},{"line_number":3502,"context_line":"        work_flow.add(*snap_build_tasks)"},{"line_number":3503,"context_line":"        # Add tasks for each volumes in the consistency group"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_eb714745","line":3500,"updated":"2015-08-29 03:49:42.000000000","message":"Extra blank line. Please keep consistent with others.","commit_id":"ea57f7f9e850da0749460387ffd88d3e4e802a5d"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"b2834ab7466be38b0f6387095845d386f52c42ca","unresolved":false,"context_lines":[{"line_number":3497,"context_line":""},{"line_number":3498,"context_line":"    def _create_cg_from_cgsnap_use_workflow(self, flow_name, snap_build_tasks,"},{"line_number":3499,"context_line":"                                            store_spec, volumes, source_vols):"},{"line_number":3500,"context_line":""},{"line_number":3501,"context_line":"        work_flow \u003d linear_flow.Flow(flow_name)"},{"line_number":3502,"context_line":"        work_flow.add(*snap_build_tasks)"},{"line_number":3503,"context_line":"        # Add tasks for each volumes in the consistency group"}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_d6e427e2","line":3500,"in_reply_to":"da20952f_eb714745","updated":"2015-08-29 14:46:24.000000000","message":"Done","commit_id":"ea57f7f9e850da0749460387ffd88d3e4e802a5d"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"f6750e1ac7d4f32b0d14ea52991b130924b1f1be","unresolved":false,"context_lines":[{"line_number":3477,"context_line":"        volume_model_updates \u003d self._create_cg_from_cgsnap_use_workflow("},{"line_number":3478,"context_line":"            flow_name, snap_build_tasks, store_spec, volumes, src_vols)"},{"line_number":3479,"context_line":""},{"line_number":3480,"context_line":"        self._delete_temp_cgsnap(copied_snapshot_name)"},{"line_number":3481,"context_line":""},{"line_number":3482,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3483,"context_line":"                 group.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_d6cc7a63","line":3480,"updated":"2015-09-02 17:32:59.000000000","message":"Do we need to assert this call in unit test?","commit_id":"eb7e3296d034c4591ca1058aad7ef96d9d3ec93b"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"24d2bb45758255087c6f5a69a23c6aff29eee982","unresolved":false,"context_lines":[{"line_number":3477,"context_line":"        volume_model_updates \u003d self._create_cg_from_cgsnap_use_workflow("},{"line_number":3478,"context_line":"            flow_name, snap_build_tasks, store_spec, volumes, src_vols)"},{"line_number":3479,"context_line":""},{"line_number":3480,"context_line":"        self._delete_temp_cgsnap(copied_snapshot_name)"},{"line_number":3481,"context_line":""},{"line_number":3482,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3483,"context_line":"                 group.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_5da87077","line":3480,"in_reply_to":"da20952f_d6cc7a63","updated":"2015-09-03 05:16:42.000000000","message":"Thanks. The test case test_create_consistencygroup_from_cgsnapshot has assert the delete temp cgsnapshot command has been called.\nAlso I just added an asserting in the test_create_consistencygroup_from_cg for the same as well.","commit_id":"eb7e3296d034c4591ca1058aad7ef96d9d3ec93b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"f6750e1ac7d4f32b0d14ea52991b130924b1f1be","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"    def _delete_temp_cgsnap(self, snap):"},{"line_number":3488,"context_line":"        try:"},{"line_number":3489,"context_line":"            self._client.delete_cgsnapshot(snap)"},{"line_number":3490,"context_line":"        except exception.EMCVnxCLICmdError as ex:"},{"line_number":3491,"context_line":"            LOG.warning(_LW(\u0027Delete the temporary cgsnapshot %(name)s failed. \u0027"},{"line_number":3492,"context_line":"                            \u0027This temporary cgsnapshot can be deleted \u0027"},{"line_number":3493,"context_line":"                            \u0027manually. \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_9b8e2bcf","line":3490,"updated":"2015-09-02 17:32:59.000000000","message":"I couldn\u0027t find a unit test which covers this case.","commit_id":"eb7e3296d034c4591ca1058aad7ef96d9d3ec93b"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"24d2bb45758255087c6f5a69a23c6aff29eee982","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"    def _delete_temp_cgsnap(self, snap):"},{"line_number":3488,"context_line":"        try:"},{"line_number":3489,"context_line":"            self._client.delete_cgsnapshot(snap)"},{"line_number":3490,"context_line":"        except exception.EMCVnxCLICmdError as ex:"},{"line_number":3491,"context_line":"            LOG.warning(_LW(\u0027Delete the temporary cgsnapshot %(name)s failed. \u0027"},{"line_number":3492,"context_line":"                            \u0027This temporary cgsnapshot can be deleted \u0027"},{"line_number":3493,"context_line":"                            \u0027manually. \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"da20952f_ddb240e5","line":3490,"in_reply_to":"da20952f_9b8e2bcf","updated":"2015-09-03 05:16:42.000000000","message":"Thanks for pointing it out. I added a new test case to cover this.","commit_id":"eb7e3296d034c4591ca1058aad7ef96d9d3ec93b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"2d927aa9ff05d889284c892ad60a06638c523921","unresolved":false,"context_lines":[{"line_number":3471,"context_line":"        self._delete_temp_cgsnap(temp_cgsnapshot_name)"},{"line_number":3472,"context_line":""},{"line_number":3473,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3474,"context_line":"                 group.id)"},{"line_number":3475,"context_line":""},{"line_number":3476,"context_line":"        return None, volume_model_updates"},{"line_number":3477,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_1175b3f8","line":3474,"updated":"2015-09-29 18:56:12.000000000","message":"{\u0027cg\u0027: group.id}","commit_id":"7fd1578c6ef09000db0958eb6ec2510b9e2b3dfe"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"498854a83a372d9b3e2767e4cb374ac892b7f3df","unresolved":false,"context_lines":[{"line_number":3471,"context_line":"        self._delete_temp_cgsnap(temp_cgsnapshot_name)"},{"line_number":3472,"context_line":""},{"line_number":3473,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3474,"context_line":"                 group.id)"},{"line_number":3475,"context_line":""},{"line_number":3476,"context_line":"        return None, volume_model_updates"},{"line_number":3477,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_90575825","line":3474,"in_reply_to":"9a1a9d01_1175b3f8","updated":"2015-09-30 14:43:48.000000000","message":"Good catch.","commit_id":"7fd1578c6ef09000db0958eb6ec2510b9e2b3dfe"},{"author":{"_account_id":10628,"name":"Peter Wang","email":"peter.wang13@emc.com","username":"peter_wang"},"change_message_id":"ae31c38197b9a31181be99621db6e4bfefadd129","unresolved":false,"context_lines":[{"line_number":3471,"context_line":"        self._delete_temp_cgsnap(temp_cgsnapshot_name)"},{"line_number":3472,"context_line":""},{"line_number":3473,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3474,"context_line":"                 group.id)"},{"line_number":3475,"context_line":""},{"line_number":3476,"context_line":"        return None, volume_model_updates"},{"line_number":3477,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a1a9d01_71eaaadc","line":3474,"in_reply_to":"9a1a9d01_90575825","updated":"2015-10-01 06:13:15.000000000","message":"Done","commit_id":"7fd1578c6ef09000db0958eb6ec2510b9e2b3dfe"},{"author":{"_account_id":9988,"name":"Tina Tang","email":"tina.tang@emc.com","username":"Tina"},"change_message_id":"1db0fe767bbfed1a24fb9605afa376b8e24a34a2","unresolved":false,"context_lines":[{"line_number":3497,"context_line":"        self._delete_temp_cgsnap(copied_snapshot_name)"},{"line_number":3498,"context_line":""},{"line_number":3499,"context_line":"        LOG.info(_LI(\u0027Consistency group %(cg)s is created successfully.\u0027),"},{"line_number":3500,"context_line":"                 group.id)"},{"line_number":3501,"context_line":""},{"line_number":3502,"context_line":"        return None, volume_model_updates"},{"line_number":3503,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"7a2fa921_e21c3a79","line":3500,"updated":"2015-10-07 12:12:01.000000000","message":"A same incorrect log formatting as Walter pointed out. Addressed it in next patch.","commit_id":"aa4e0c69d05d88b1a5638451002a1aef9d844099"}]}
