)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"c33313a160d499d7f95e87ac3e6651fd55136c93","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Consistency Groupp Support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for Consistency Groups to the HP 3PAR driver"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I31e74b55db0f9b813a9295378271715df4b839f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a4dcd0f_372556c0","line":9,"updated":"2015-08-05 20:23:58.000000000","message":"Please add \"Implements: blueprint \u003cbp name\u003e\" to the commit message see http://docs.openstack.org/infra/manual/developers.html#committing-a-change","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"831ac42ab5a8105a96ee938f10f83a37c0670a4c","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Consistency Groupp Support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for Consistency Groups to the HP 3PAR driver"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I31e74b55db0f9b813a9295378271715df4b839f4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a4dcd0f_528030f7","line":9,"in_reply_to":"1a4dcd0f_372556c0","updated":"2015-08-05 20:40:46.000000000","message":"Done","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"d9972df0841a5d6a5a42a5039b3cb3cc3de077e4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex O\u0027Rourke \u003calex.orourke@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-05 13:35:10 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Consistency Groupp Support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for Consistency Groups to the HP 3PAR driver"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"1a4dcd0f_523910f1","line":7,"updated":"2015-08-05 21:41:50.000000000","message":"\"3par: Adding Consistency Group Support\" please","commit_id":"bf2c4f36442e2cccd1e30b397a8de34afa79400c"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"9be602006e86dedb06b8a3242b76e314438ed44b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex O\u0027Rourke \u003calex.orourke@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-05 14:11:53 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Consistency Groupp Support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for Consistency Groups to the HP 3PAR driver"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a4dcd0f_86fc3d73","line":7,"updated":"2015-08-05 21:28:44.000000000","message":"Might want to mention 3PAR in the title.","commit_id":"eea5858f9442fe7158c51979d9c01a208af8deef"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"d41d754be1779bf77478112ff785241b81a81545","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alex O\u0027Rourke \u003calex.orourke@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-05 14:11:53 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Consistency Groupp Support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds support for Consistency Groups to the HP 3PAR driver"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a4dcd0f_89dbee4e","line":7,"in_reply_to":"1a4dcd0f_86fc3d73","updated":"2015-08-06 15:14:49.000000000","message":"Done","commit_id":"eea5858f9442fe7158c51979d9c01a208af8deef"}],"cinder/tests/unit/test_hp3par.py":[{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"9e6af1b0938c2790f5ce4edf14d3a378e655b5e6","unresolved":false,"context_lines":[{"line_number":2217,"context_line":""},{"line_number":2218,"context_line":"            self.assertEqual(2, mock_client.growVolume.call_count)"},{"line_number":2219,"context_line":""},{"line_number":2220,"context_line":"    def test_(self):"},{"line_number":2221,"context_line":"        extend_ex \u003d hpexceptions.HTTPForbidden(error\u003d{\u0027code\u0027: 150})"},{"line_number":2222,"context_line":"        conf \u003d {"},{"line_number":2223,"context_line":"            \u0027getTask.return_value\u0027: {"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_c067924b","line":2220,"updated":"2015-08-05 18:09:59.000000000","message":"need to fix this","commit_id":"8b877fffd658cfb3292cede73334e4ff352b2eb3"}],"cinder/volume/drivers/san/hp/hp_3par_common.py":[{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"9e6af1b0938c2790f5ce4edf14d3a378e655b5e6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    c) Copyright 2012-2015 Hewlett-Packard Development Company, L.P."},{"line_number":2,"context_line":"#    All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a4dcd0f_e04c0eca","line":1,"updated":"2015-08-05 18:09:59.000000000","message":"going to fix this minor issue","commit_id":"8b877fffd658cfb3292cede73334e4ff352b2eb3"},{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"c33313a160d499d7f95e87ac3e6651fd55136c93","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        2.0.43 - Report the capability of supporting multiattach"},{"line_number":179,"context_line":"        2.0.44 - Update help strings to reduce the 3PAR user role requirements"},{"line_number":180,"context_line":"        2.0.45 - Python 3 fixes"},{"line_number":181,"context_line":"        2.0.46 - Improved VLUN creation and deletion logic. #1469816"},{"line_number":182,"context_line":"        2.0.47 - Changed initialize_connection to use getHostVLUNs. #1475064"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_720c4c3b","line":181,"updated":"2015-08-05 20:23:58.000000000","message":"update version and version string","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"831ac42ab5a8105a96ee938f10f83a37c0670a4c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        2.0.43 - Report the capability of supporting multiattach"},{"line_number":179,"context_line":"        2.0.44 - Update help strings to reduce the 3PAR user role requirements"},{"line_number":180,"context_line":"        2.0.45 - Python 3 fixes"},{"line_number":181,"context_line":"        2.0.46 - Improved VLUN creation and deletion logic. #1469816"},{"line_number":182,"context_line":"        2.0.47 - Changed initialize_connection to use getHostVLUNs. #1475064"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_b20c14ee","line":181,"in_reply_to":"1a4dcd0f_720c4c3b","updated":"2015-08-05 20:40:46.000000000","message":"Done","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"9be602006e86dedb06b8a3242b76e314438ed44b","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":387,"context_line":"            err \u003d (_(\"Virtual VolumeSet \u0027%s\u0027 doesn\u0027t exist on array.\") %"},{"line_number":388,"context_line":"                   cg_name)"},{"line_number":389,"context_line":"            LOG.error(err)"},{"line_number":390,"context_line":"        except hpexceptions.HTTPConflict as e:"},{"line_number":391,"context_line":"            err \u003d (\"Conflict detected in Virtual VolumeSet \u0027%s\u0027: %s\","},{"line_number":392,"context_line":"                   cg_name, e)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_86b43d82","line":389,"updated":"2015-08-05 21:28:44.000000000","message":"Just a suggestion, but this may not really be an error... Cinder is asking to delete the CG and if it doesn\u0027t exist then its a job well done, right? Maybe a warning or debug info would be better.","commit_id":"eea5858f9442fe7158c51979d9c01a208af8deef"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"d41d754be1779bf77478112ff785241b81a81545","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":387,"context_line":"            err \u003d (_(\"Virtual VolumeSet \u0027%s\u0027 doesn\u0027t exist on array.\") %"},{"line_number":388,"context_line":"                   cg_name)"},{"line_number":389,"context_line":"            LOG.error(err)"},{"line_number":390,"context_line":"        except hpexceptions.HTTPConflict as e:"},{"line_number":391,"context_line":"            err \u003d (\"Conflict detected in Virtual VolumeSet \u0027%s\u0027: %s\","},{"line_number":392,"context_line":"                   cg_name, e)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_c9d5761c","line":389,"in_reply_to":"1a4dcd0f_86b43d82","updated":"2015-08-06 15:14:49.000000000","message":"Agreed. It isn\u0027t really an error...","commit_id":"eea5858f9442fe7158c51979d9c01a208af8deef"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"9be602006e86dedb06b8a3242b76e314438ed44b","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"            flash_cache \u003d self.get_flash_cache_policy(type_info[\u0027hp3par_keys\u0027])"},{"line_number":1375,"context_line":""},{"line_number":1376,"context_line":"            cg_id \u003d volume.get(\u0027consistencygroup_id\u0027, None)"},{"line_number":1377,"context_line":"            if cg_id:"},{"line_number":1378,"context_line":"                vvs_name \u003d self._get_3par_vvs_name(cg_id)"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":"            type_id \u003d volume.get(\u0027volume_type_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_09b83e29","line":1377,"updated":"2015-08-05 21:28:44.000000000","message":"Do you need to do this for create_cloned_volume too? At a glance I didn\u0027t see it adding the new clone to the same group... but I also don\u0027t totally understand how your api\u0027s work ;)","commit_id":"eea5858f9442fe7158c51979d9c01a208af8deef"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"d41d754be1779bf77478112ff785241b81a81545","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"            flash_cache \u003d self.get_flash_cache_policy(type_info[\u0027hp3par_keys\u0027])"},{"line_number":1375,"context_line":""},{"line_number":1376,"context_line":"            cg_id \u003d volume.get(\u0027consistencygroup_id\u0027, None)"},{"line_number":1377,"context_line":"            if cg_id:"},{"line_number":1378,"context_line":"                vvs_name \u003d self._get_3par_vvs_name(cg_id)"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":"            type_id \u003d volume.get(\u0027volume_type_id\u0027, None)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a4dcd0f_e37b8abc","line":1377,"in_reply_to":"1a4dcd0f_09b83e29","updated":"2015-08-06 15:14:49.000000000","message":"Will look into this further. Thanks for bringing it up.","commit_id":"eea5858f9442fe7158c51979d9c01a208af8deef"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0a99ee829e2bae648458c4e63507572139e7431e","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        if group[\u0027cgsnapshot_id\u0027]:"},{"line_number":359,"context_line":"            extra[\u0027cgsnapshot_id\u0027] \u003d group[\u0027cgsnapshot_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        self.client.createVolumeSet(cg_name, domain\u003ddomain, comment\u003dstr(extra))"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":364,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_61fe2907","line":361,"updated":"2015-08-10 03:56:07.000000000","message":"Use six.text_type instead of str","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"ea7917afdc7decd5fc9876a77bbda7a1d0e9dd39","unresolved":false,"context_lines":[{"line_number":358,"context_line":"        if group[\u0027cgsnapshot_id\u0027]:"},{"line_number":359,"context_line":"            extra[\u0027cgsnapshot_id\u0027] \u003d group[\u0027cgsnapshot_id\u0027]"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"        self.client.createVolumeSet(cg_name, domain\u003ddomain, comment\u003dstr(extra))"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        model_update \u003d {\u0027status\u0027: \u0027available\u0027}"},{"line_number":364,"context_line":"        return model_update"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_9f2a8e8f","line":361,"in_reply_to":"1a4dcd0f_61fe2907","updated":"2015-08-10 15:51:11.000000000","message":"Done","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0a99ee829e2bae648458c4e63507572139e7431e","unresolved":false,"context_lines":[{"line_number":374,"context_line":"            self.create_consistencygroup(context, group)"},{"line_number":375,"context_line":"            vvs_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":376,"context_line":"            for i, (volume, snapshot) in enumerate(zip(volumes, snapshots)):"},{"line_number":377,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + str(i)"},{"line_number":378,"context_line":"                self.create_volume_from_snapshot("},{"line_number":379,"context_line":"                    volume, snapshot, snap_name\u003dsnap_name, vvs_name\u003dvvs_name)"},{"line_number":380,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_8103350d","line":377,"updated":"2015-08-10 03:56:07.000000000","message":"same","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"ea7917afdc7decd5fc9876a77bbda7a1d0e9dd39","unresolved":false,"context_lines":[{"line_number":374,"context_line":"            self.create_consistencygroup(context, group)"},{"line_number":375,"context_line":"            vvs_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":376,"context_line":"            for i, (volume, snapshot) in enumerate(zip(volumes, snapshots)):"},{"line_number":377,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + str(i)"},{"line_number":378,"context_line":"                self.create_volume_from_snapshot("},{"line_number":379,"context_line":"                    volume, snapshot, snap_name\u003dsnap_name, vvs_name\u003dvvs_name)"},{"line_number":380,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_5f1ba680","line":377,"in_reply_to":"1a4dcd0f_8103350d","updated":"2015-08-10 15:51:11.000000000","message":"Done","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0a99ee829e2bae648458c4e63507572139e7431e","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                   cg_name)"},{"line_number":398,"context_line":"            LOG.warning(err)"},{"line_number":399,"context_line":"        except hpexceptions.HTTPConflict as e:"},{"line_number":400,"context_line":"            err \u003d (\"Conflict detected in Virtual VolumeSet \u0027%s\u0027: %s\","},{"line_number":401,"context_line":"                   cg_name, e)"},{"line_number":402,"context_line":"            LOG.error(err)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_812a557d","line":400,"updated":"2015-08-10 03:56:07.000000000","message":"Use named string interpolation instead of positional.","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"ea7917afdc7decd5fc9876a77bbda7a1d0e9dd39","unresolved":false,"context_lines":[{"line_number":397,"context_line":"                   cg_name)"},{"line_number":398,"context_line":"            LOG.warning(err)"},{"line_number":399,"context_line":"        except hpexceptions.HTTPConflict as e:"},{"line_number":400,"context_line":"            err \u003d (\"Conflict detected in Virtual VolumeSet \u0027%s\u0027: %s\","},{"line_number":401,"context_line":"                   cg_name, e)"},{"line_number":402,"context_line":"            LOG.error(err)"},{"line_number":403,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_5202bd0a","line":400,"in_reply_to":"1a4dcd0f_812a557d","updated":"2015-08-10 15:51:11.000000000","message":"Done","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0a99ee829e2bae648458c4e63507572139e7431e","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        cg_id \u003d cgsnapshot[\u0027consistencygroup_id\u0027]"},{"line_number":447,"context_line":"        snap_shot_name \u003d self._get_3par_snap_name(cgsnapshot[\u0027id\u0027]) + \\"},{"line_number":448,"context_line":"            \"-@count@\""},{"line_number":449,"context_line":"        copy_of_name \u003d self._get_3par_vvs_name(cg_id)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        extra \u003d {\u0027cgsnapshot_id\u0027: cgsnapshot[\u0027id\u0027]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_617389b5","line":448,"updated":"2015-08-10 03:56:07.000000000","message":"Use () instead of \\","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"ea7917afdc7decd5fc9876a77bbda7a1d0e9dd39","unresolved":false,"context_lines":[{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        cg_id \u003d cgsnapshot[\u0027consistencygroup_id\u0027]"},{"line_number":447,"context_line":"        snap_shot_name \u003d self._get_3par_snap_name(cgsnapshot[\u0027id\u0027]) + \\"},{"line_number":448,"context_line":"            \"-@count@\""},{"line_number":449,"context_line":"        copy_of_name \u003d self._get_3par_vvs_name(cg_id)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        extra \u003d {\u0027cgsnapshot_id\u0027: cgsnapshot[\u0027id\u0027]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_f208a92a","line":448,"in_reply_to":"1a4dcd0f_617389b5","updated":"2015-08-10 15:51:11.000000000","message":"Done","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0a99ee829e2bae648458c4e63507572139e7431e","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        self.client.createSnapshotOfVolumeSet(snap_shot_name, copy_of_name,"},{"line_number":466,"context_line":"                                              optional\u003doptional)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        snapshots \u003d self.db.snapshot_get_all_for_cgsnapshot("},{"line_number":469,"context_line":"            context, cgsnapshot[\u0027id\u0027])"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        for snapshot in snapshots:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_fe08942f","line":468,"updated":"2015-08-10 03:56:07.000000000","message":"Please use objects.\n\nhttps://review.openstack.org/#/c/209835/1/cinder/volume/drivers/emc/emc_vnx_cli.py","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"ea7917afdc7decd5fc9876a77bbda7a1d0e9dd39","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        self.client.createSnapshotOfVolumeSet(snap_shot_name, copy_of_name,"},{"line_number":466,"context_line":"                                              optional\u003doptional)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"        snapshots \u003d self.db.snapshot_get_all_for_cgsnapshot("},{"line_number":469,"context_line":"            context, cgsnapshot[\u0027id\u0027])"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        for snapshot in snapshots:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_120c353a","line":468,"in_reply_to":"1a4dcd0f_fe08942f","updated":"2015-08-10 15:51:11.000000000","message":"Done","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0a99ee829e2bae648458c4e63507572139e7431e","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        cgsnap_name \u003d self._get_3par_snap_name(cgsnapshot[\u0027id\u0027])"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        snapshots \u003d self.db.snapshot_get_all_for_cgsnapshot("},{"line_number":486,"context_line":"            context, cgsnapshot[\u0027id\u0027])"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        for i, snapshot in enumerate(snapshots):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_9e05d015","line":485,"updated":"2015-08-10 03:56:07.000000000","message":"Please use objects.\n\nhttps://review.openstack.org/#/c/209835/1/cinder/volume/drivers/emc/emc_vnx_cli.py","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"ea7917afdc7decd5fc9876a77bbda7a1d0e9dd39","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        cgsnap_name \u003d self._get_3par_snap_name(cgsnapshot[\u0027id\u0027])"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        snapshots \u003d self.db.snapshot_get_all_for_cgsnapshot("},{"line_number":486,"context_line":"            context, cgsnapshot[\u0027id\u0027])"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        for i, snapshot in enumerate(snapshots):"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_b213015c","line":485,"in_reply_to":"1a4dcd0f_9e05d015","updated":"2015-08-10 15:51:11.000000000","message":"Done","commit_id":"772f178aeed319c2c9378f7de1e615515ef62440"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"255154d0420e2644e4d2a741fe35c381dd968efb","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":396,"context_line":"            self.client.deleteVolumeSet(cg_name)"},{"line_number":397,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":398,"context_line":"            err \u003d (_(\"Virtual Volume Set \u0027%s\u0027 doesn\u0027t exist on array.\") %"},{"line_number":399,"context_line":"                   cg_name)"},{"line_number":400,"context_line":"            LOG.warning(err)"},{"line_number":401,"context_line":"        except hpexceptions.HTTPConflict as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_ef3420df","line":398,"updated":"2015-08-11 08:09:04.000000000","message":"\"Virtual Volume Set\" or \"VV Set\" on line 429. Suggest using \"Virtual Volume Set\", keep consistent.","commit_id":"46512c8d42c56eee3cdedb66c3876a3095314a5c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"7d3dd7e273e853adc147be2c79c0f084e93c6883","unresolved":false,"context_lines":[{"line_number":395,"context_line":"            cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":396,"context_line":"            self.client.deleteVolumeSet(cg_name)"},{"line_number":397,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":398,"context_line":"            err \u003d (_(\"Virtual Volume Set \u0027%s\u0027 doesn\u0027t exist on array.\") %"},{"line_number":399,"context_line":"                   cg_name)"},{"line_number":400,"context_line":"            LOG.warning(err)"},{"line_number":401,"context_line":"        except hpexceptions.HTTPConflict as e:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_3441e163","line":398,"in_reply_to":"1a4dcd0f_ef3420df","updated":"2015-08-11 15:24:20.000000000","message":"good idea to keep consistent. done.","commit_id":"46512c8d42c56eee3cdedb66c3876a3095314a5c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"255154d0420e2644e4d2a741fe35c381dd968efb","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":495,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":496,"context_line":"            except hpexceptions.HTTPForbidden as ex:"},{"line_number":497,"context_line":"                LOG.error(_LE(\"Exception: %s\"), ex)"},{"line_number":498,"context_line":"                raise exception.NotAuthorized()"},{"line_number":499,"context_line":"            except hpexceptions.HTTPNotFound as ex:"},{"line_number":500,"context_line":"                # We\u0027ll let this act as if it worked"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_af829850","line":497,"updated":"2015-08-11 08:09:04.000000000","message":"Missing . after %s.","commit_id":"46512c8d42c56eee3cdedb66c3876a3095314a5c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"7d3dd7e273e853adc147be2c79c0f084e93c6883","unresolved":false,"context_lines":[{"line_number":494,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":495,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":496,"context_line":"            except hpexceptions.HTTPForbidden as ex:"},{"line_number":497,"context_line":"                LOG.error(_LE(\"Exception: %s\"), ex)"},{"line_number":498,"context_line":"                raise exception.NotAuthorized()"},{"line_number":499,"context_line":"            except hpexceptions.HTTPNotFound as ex:"},{"line_number":500,"context_line":"                # We\u0027ll let this act as if it worked"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_b47e51ad","line":497,"in_reply_to":"1a4dcd0f_af829850","updated":"2015-08-11 15:24:20.000000000","message":"Done","commit_id":"46512c8d42c56eee3cdedb66c3876a3095314a5c"},{"author":{"_account_id":16883,"name":"huyang","email":"huyang1@huawei.com","username":"huyang"},"change_message_id":"255154d0420e2644e4d2a741fe35c381dd968efb","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                                \"cinder: %(id)s Ex: %(msg)s\"),"},{"line_number":504,"context_line":"                            {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027msg\u0027: ex})"},{"line_number":505,"context_line":"            except hpexceptions.HTTPConflict as ex:"},{"line_number":506,"context_line":"                LOG.error(_LE(\"Exception: %s\"), ex)"},{"line_number":507,"context_line":"                raise exception.SnapshotIsBusy(snapshot_name\u003dsnapshot[\u0027id\u0027])"},{"line_number":508,"context_line":"            snapshot[\u0027status\u0027] \u003d \u0027deleted\u0027"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_6ff3300b","line":506,"updated":"2015-08-11 08:09:04.000000000","message":"Same as above.","commit_id":"46512c8d42c56eee3cdedb66c3876a3095314a5c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"7d3dd7e273e853adc147be2c79c0f084e93c6883","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                                \"cinder: %(id)s Ex: %(msg)s\"),"},{"line_number":504,"context_line":"                            {\u0027id\u0027: snapshot[\u0027id\u0027], \u0027msg\u0027: ex})"},{"line_number":505,"context_line":"            except hpexceptions.HTTPConflict as ex:"},{"line_number":506,"context_line":"                LOG.error(_LE(\"Exception: %s\"), ex)"},{"line_number":507,"context_line":"                raise exception.SnapshotIsBusy(snapshot_name\u003dsnapshot[\u0027id\u0027])"},{"line_number":508,"context_line":"            snapshot[\u0027status\u0027] \u003d \u0027deleted\u0027"},{"line_number":509,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_147625d7","line":506,"in_reply_to":"1a4dcd0f_6ff3300b","updated":"2015-08-11 15:24:20.000000000","message":"Done","commit_id":"46512c8d42c56eee3cdedb66c3876a3095314a5c"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"8547a319ae12a065d4eb6cd5891b1357a30364a7","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            try:"},{"line_number":488,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":489,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":490,"context_line":"            except hpexceptions.HTTPForbidden as ex:"},{"line_number":491,"context_line":"                LOG.error(_LE(\"Exception: %s.\"), ex)"},{"line_number":492,"context_line":"                raise exception.NotAuthorized()"},{"line_number":493,"context_line":"            except hpexceptions.HTTPNotFound as ex:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_56618310","line":490,"updated":"2015-08-14 02:33:32.000000000","message":"Should this exception be caught during other API calls as well?","commit_id":"ecd173b9e2f676f62b5ca31642067f22fa6bbc28"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"378d144adf7b3100f96d07b0b0ea64d325b448cd","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            try:"},{"line_number":488,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":489,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":490,"context_line":"            except hpexceptions.HTTPForbidden as ex:"},{"line_number":491,"context_line":"                LOG.error(_LE(\"Exception: %s.\"), ex)"},{"line_number":492,"context_line":"                raise exception.NotAuthorized()"},{"line_number":493,"context_line":"            except hpexceptions.HTTPNotFound as ex:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_6c98701c","line":490,"in_reply_to":"1a4dcd0f_56618310","updated":"2015-08-14 04:00:40.000000000","message":"It is caught multiple times in our driver. As for CG related stuff, this is something we really want to catch when deleting snapshots as there are a few things we need to be mindful of that can cause major issues, such as snapshot dependencies. Take a look delete_snapshot for example.","commit_id":"ecd173b9e2f676f62b5ca31642067f22fa6bbc28"},{"author":{"_account_id":14377,"name":"Apoorva","email":"apps.desh@gmail.com","username":"apoorvad"},"change_message_id":"45de12dd9d343c7e9c4a726d13128bcd9294b946","unresolved":false,"context_lines":[{"line_number":487,"context_line":"            try:"},{"line_number":488,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"},{"line_number":489,"context_line":"                self.client.deleteVolume(snap_name)"},{"line_number":490,"context_line":"            except hpexceptions.HTTPForbidden as ex:"},{"line_number":491,"context_line":"                LOG.error(_LE(\"Exception: %s.\"), ex)"},{"line_number":492,"context_line":"                raise exception.NotAuthorized()"},{"line_number":493,"context_line":"            except hpexceptions.HTTPNotFound as ex:"}],"source_content_type":"text/x-python","patch_set":13,"id":"1a4dcd0f_8a9d9c68","line":490,"in_reply_to":"1a4dcd0f_6c98701c","updated":"2015-08-14 04:54:03.000000000","message":"My question was regarding newly added functionality.\ncreate_consistencygroup, delete_consistencygroup, create_cgsnapshot etc.","commit_id":"ecd173b9e2f676f62b5ca31642067f22fa6bbc28"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3973fdacc053a0534b75dec58e73455de1be8d86","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":426,"context_line":"            self.client.deleteVolumeSet(cg_name)"},{"line_number":427,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":428,"context_line":"            err \u003d (_(\"Virtual Volume Set \u0027%s\u0027 doesn\u0027t exist on array.\") %"},{"line_number":429,"context_line":"                   cg_name)"},{"line_number":430,"context_line":"            LOG.warning(err)"},{"line_number":431,"context_line":"        except hpexceptions.HTTPConflict as e:"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_079aa7c5","line":428,"updated":"2015-08-16 06:46:03.000000000","message":"_LW","commit_id":"bcd2be801ddeb539d73b8f7755ece4af230c6f50"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"6ee823495808b4e3d6a5db74f8abc3f3ada821e1","unresolved":false,"context_lines":[{"line_number":425,"context_line":"            cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":426,"context_line":"            self.client.deleteVolumeSet(cg_name)"},{"line_number":427,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":428,"context_line":"            err \u003d (_(\"Virtual Volume Set \u0027%s\u0027 doesn\u0027t exist on array.\") %"},{"line_number":429,"context_line":"                   cg_name)"},{"line_number":430,"context_line":"            LOG.warning(err)"},{"line_number":431,"context_line":"        except hpexceptions.HTTPConflict as e:"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_733ec92a","line":428,"in_reply_to":"1a4dcd0f_079aa7c5","updated":"2015-08-16 16:22:19.000000000","message":"Done","commit_id":"bcd2be801ddeb539d73b8f7755ece4af230c6f50"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"3973fdacc053a0534b75dec58e73455de1be8d86","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                   cg_name)"},{"line_number":430,"context_line":"            LOG.warning(err)"},{"line_number":431,"context_line":"        except hpexceptions.HTTPConflict as e:"},{"line_number":432,"context_line":"            err \u003d (_(\"Conflict detected in Virtual Volume Set %(volume_set): \""},{"line_number":433,"context_line":"                     \"%(error)\"),"},{"line_number":434,"context_line":"                   {\"volume_set\": cg_name,"},{"line_number":435,"context_line":"                    \"error\": e})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_675ccb19","line":432,"updated":"2015-08-16 06:46:03.000000000","message":"_LE","commit_id":"bcd2be801ddeb539d73b8f7755ece4af230c6f50"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"6ee823495808b4e3d6a5db74f8abc3f3ada821e1","unresolved":false,"context_lines":[{"line_number":429,"context_line":"                   cg_name)"},{"line_number":430,"context_line":"            LOG.warning(err)"},{"line_number":431,"context_line":"        except hpexceptions.HTTPConflict as e:"},{"line_number":432,"context_line":"            err \u003d (_(\"Conflict detected in Virtual Volume Set %(volume_set): \""},{"line_number":433,"context_line":"                     \"%(error)\"),"},{"line_number":434,"context_line":"                   {\"volume_set\": cg_name,"},{"line_number":435,"context_line":"                    \"error\": e})"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_93391542","line":432,"in_reply_to":"1a4dcd0f_675ccb19","updated":"2015-08-16 16:22:19.000000000","message":"Done","commit_id":"bcd2be801ddeb539d73b8f7755ece4af230c6f50"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d750610b76fa194313eb1bde23d82d55a9372c98","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        pool \u003d volume_utils.extract_host(group[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":385,"context_line":"        domain \u003d self.get_domain(pool)"},{"line_number":386,"context_line":"        cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        extra \u003d {\u0027consistency_group_id\u0027: group[\u0027id\u0027]}"},{"line_number":389,"context_line":"        extra[\u0027description\u0027] \u003d group[\u0027description\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_f013fd0b","line":386,"updated":"2015-08-17 14:51:25.000000000","message":"Consistency group object is merged.  Please use objects, i.e., group.id, group.host.","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"c0571ee19897c1aef2c75023e7476eb356695f23","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        pool \u003d volume_utils.extract_host(group[\u0027host\u0027], level\u003d\u0027pool\u0027)"},{"line_number":385,"context_line":"        domain \u003d self.get_domain(pool)"},{"line_number":386,"context_line":"        cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"        extra \u003d {\u0027consistency_group_id\u0027: group[\u0027id\u0027]}"},{"line_number":389,"context_line":"        extra[\u0027description\u0027] \u003d group[\u0027description\u0027]"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_6b5ffe0e","line":386,"in_reply_to":"fa1b9901_f013fd0b","updated":"2015-08-17 15:04:34.000000000","message":"Done","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d750610b76fa194313eb1bde23d82d55a9372c98","unresolved":false,"context_lines":[{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        if cgsnapshot and snapshots:"},{"line_number":405,"context_line":"            self.create_consistencygroup(context, group)"},{"line_number":406,"context_line":"            vvs_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":407,"context_line":"            cgsnap_name \u003d self._get_3par_snap_name(cgsnapshot[\u0027id\u0027])"},{"line_number":408,"context_line":"            for i, (volume, snapshot) in enumerate(zip(volumes, snapshots)):"},{"line_number":409,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_5003c9b8","line":406,"updated":"2015-08-17 14:51:25.000000000","message":"group.id","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"c0571ee19897c1aef2c75023e7476eb356695f23","unresolved":false,"context_lines":[{"line_number":403,"context_line":""},{"line_number":404,"context_line":"        if cgsnapshot and snapshots:"},{"line_number":405,"context_line":"            self.create_consistencygroup(context, group)"},{"line_number":406,"context_line":"            vvs_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":407,"context_line":"            cgsnap_name \u003d self._get_3par_snap_name(cgsnapshot[\u0027id\u0027])"},{"line_number":408,"context_line":"            for i, (volume, snapshot) in enumerate(zip(volumes, snapshots)):"},{"line_number":409,"context_line":"                snap_name \u003d cgsnap_name + \"-\" + six.text_type(i)"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_ab6516e2","line":406,"in_reply_to":"fa1b9901_5003c9b8","updated":"2015-08-17 15:04:34.000000000","message":"Done","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d750610b76fa194313eb1bde23d82d55a9372c98","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        \"\"\"Deletes a consistency group.\"\"\""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":428,"context_line":"            self.client.deleteVolumeSet(cg_name)"},{"line_number":429,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":430,"context_line":"            err \u003d (_LW(\"Virtual Volume Set \u0027%s\u0027 doesn\u0027t exist on array.\") %"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_102c7149","line":427,"updated":"2015-08-17 14:51:25.000000000","message":"Same","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"c0571ee19897c1aef2c75023e7476eb356695f23","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        \"\"\"Deletes a consistency group.\"\"\""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        try:"},{"line_number":427,"context_line":"            cg_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":428,"context_line":"            self.client.deleteVolumeSet(cg_name)"},{"line_number":429,"context_line":"        except hpexceptions.HTTPNotFound:"},{"line_number":430,"context_line":"            err \u003d (_LW(\"Virtual Volume Set \u0027%s\u0027 doesn\u0027t exist on array.\") %"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_8b6852bc","line":427,"in_reply_to":"fa1b9901_102c7149","updated":"2015-08-17 15:04:34.000000000","message":"Done","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d750610b76fa194313eb1bde23d82d55a9372c98","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    def update_consistencygroup(self, context, group,"},{"line_number":450,"context_line":"                                add_volumes\u003dNone, remove_volumes\u003dNone):"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        volume_set_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        for volume in add_volumes:"},{"line_number":455,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_9020814b","line":452,"updated":"2015-08-17 14:51:25.000000000","message":"Same","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"c0571ee19897c1aef2c75023e7476eb356695f23","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    def update_consistencygroup(self, context, group,"},{"line_number":450,"context_line":"                                add_volumes\u003dNone, remove_volumes\u003dNone):"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        volume_set_name \u003d self._get_3par_vvs_name(group[\u0027id\u0027])"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        for volume in add_volumes:"},{"line_number":455,"context_line":"            volume_name \u003d self._get_3par_vol_name(volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"fa1b9901_0b9be2ca","line":452,"in_reply_to":"fa1b9901_9020814b","updated":"2015-08-17 15:04:34.000000000","message":"Done","commit_id":"457fda1f05419c95b07f47111e7aff20e5f8000c"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"bf12689c3c326da170d262111f2b4ae0ea31ba5e","unresolved":false,"context_lines":[{"line_number":135,"context_line":"AVG_BUSY_PERC \u003d \u0027avg_busy_perc\u0027"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class HP3PARCommon(driver.ConsistencyGroupVD):"},{"line_number":139,"context_line":"    \"\"\"Class that contains common code for the 3PAR drivers."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    Version history:"}],"source_content_type":"text/x-python","patch_set":19,"id":"fa1b9901_d2d113fd","line":138,"updated":"2015-08-17 19:38:10.000000000","message":"This inheritance model doesn\u0027t look right.  ISCSIDriver and FibreChannelDriver already have ConsistencyGroupVD.  So this means you have it twice.\n\nvolume/driver.py\n\nclass VolumeDriver(ConsistencyGroupVD, TransferVD, ManageableVD, ExtendVD,\n                   CloneableVD, CloneableImageVD, SnapshotVD, ReplicaVD,\n                   LocalVD, MigrateVD, BaseVD)\n\nclass ISCSIDriver(VolumeDriver)\n\nclass FibreChannelDriver(VolumeDriver)","commit_id":"cc96ebb2d35d9db808474d9161dc748beb32b56d"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"14d4a7cc1544894e19c639eb8c190ebc3d39c9d8","unresolved":false,"context_lines":[{"line_number":135,"context_line":"AVG_BUSY_PERC \u003d \u0027avg_busy_perc\u0027"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"class HP3PARCommon(driver.ConsistencyGroupVD):"},{"line_number":139,"context_line":"    \"\"\"Class that contains common code for the 3PAR drivers."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    Version history:"}],"source_content_type":"text/x-python","patch_set":19,"id":"fa1b9901_65363f05","line":138,"in_reply_to":"fa1b9901_d2d113fd","updated":"2015-08-17 20:12:32.000000000","message":"Ah, thanks for pointing that out.","commit_id":"cc96ebb2d35d9db808474d9161dc748beb32b56d"}],"cinder/volume/drivers/san/hp/hp_3par_fc.py":[{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"c33313a160d499d7f95e87ac3e6651fd55136c93","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        2.0.14 - Removed usage of host name cache #1398914"},{"line_number":79,"context_line":"        2.0.15 - Added support for updated detach_volume attachment."},{"line_number":80,"context_line":"        2.0.16 - Added encrypted property to initialize_connection #1439917"},{"line_number":81,"context_line":"        2.0.17 - Improved VLUN creation and deletion logic. #1469816"},{"line_number":82,"context_line":"        2.0.18 - Changed initialize_connection to use getHostVLUNs. #1475064"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_725a0c2c","line":81,"updated":"2015-08-05 20:23:58.000000000","message":"update version and version string","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"831ac42ab5a8105a96ee938f10f83a37c0670a4c","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        2.0.14 - Removed usage of host name cache #1398914"},{"line_number":79,"context_line":"        2.0.15 - Added support for updated detach_volume attachment."},{"line_number":80,"context_line":"        2.0.16 - Added encrypted property to initialize_connection #1439917"},{"line_number":81,"context_line":"        2.0.17 - Improved VLUN creation and deletion logic. #1469816"},{"line_number":82,"context_line":"        2.0.18 - Changed initialize_connection to use getHostVLUNs. #1475064"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_b233b4aa","line":81,"in_reply_to":"1a4dcd0f_725a0c2c","updated":"2015-08-05 20:40:46.000000000","message":"Done","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"}],"cinder/volume/drivers/san/hp/hp_3par_iscsi.py":[{"author":{"_account_id":6043,"name":"Kurt Martin","email":"kurt.f.martin@hpe.com","username":"kurt-f-martin"},"change_message_id":"c33313a160d499d7f95e87ac3e6651fd55136c93","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        2.0.15 - Added support for updated detach_volume attachment."},{"line_number":88,"context_line":"        2.0.16 - Added encrypted property to initialize_connection #1439917"},{"line_number":89,"context_line":"        2.0.17 - Python 3 fixes"},{"line_number":90,"context_line":"        2.0.18 - Improved VLUN creation and deletion logic. #1469816"},{"line_number":91,"context_line":"        2.0.19 - Changed initialize_connection to use getHostVLUNs. #1475064"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_32afa4e3","line":90,"updated":"2015-08-05 20:23:58.000000000","message":"update version and version string","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"},{"author":{"_account_id":16917,"name":"Alex O\u0027Rourke","email":"alex.orourke@hpe.com","username":"aorourke"},"change_message_id":"831ac42ab5a8105a96ee938f10f83a37c0670a4c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        2.0.15 - Added support for updated detach_volume attachment."},{"line_number":88,"context_line":"        2.0.16 - Added encrypted property to initialize_connection #1439917"},{"line_number":89,"context_line":"        2.0.17 - Python 3 fixes"},{"line_number":90,"context_line":"        2.0.18 - Improved VLUN creation and deletion logic. #1469816"},{"line_number":91,"context_line":"        2.0.19 - Changed initialize_connection to use getHostVLUNs. #1475064"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a4dcd0f_5224b05e","line":90,"in_reply_to":"1a4dcd0f_32afa4e3","updated":"2015-08-05 20:40:46.000000000","message":"Done","commit_id":"55754431697614a70d24d7c5f4825bd5788e426b"}]}
