)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"774fba3781b3afa5f04d3188e74d7b2a0b24f3a9","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Use snapshot objects instead of snapshot dictionaries."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I416cb53483c9106ff434dc659667c398868c91e6"},{"line_number":13,"context_line":"Closes-Bug: #1458127"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7a016987_9f32165d","line":13,"updated":"2015-05-29 08:29:56.000000000","message":"You can write Partially-Closes-Bug here.","commit_id":"e49c54b72932d59f8ad25d91e50f90e60a9d35d4"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ee7de4aeb6c4c67f163ad41dc71afb4bdfd17eb0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     rick.chen \u003crick.chen@prophetstor.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-01 10:38:52 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Prophetstor driver needs to return snapshot objects for"},{"line_number":8,"context_line":"create_cgsnapshot and delete_cgsnapshot."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Use snapshot objects instead of snapshot dictionaries."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5afe65bd_14e46239","line":7,"updated":"2015-06-01 17:30:39.000000000","message":"There is a 50 character limit to the summary line.  You can just say - Prophetstor driver needs to return snapshot objects.  Then put it in more detail in the body.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"503ba4795f43de1d3b0dbd930697c4e7e505d9c9"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"3b8c8efedff0976cfc7933166406c8ab3f42cc89","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Prophetstor driver needs to return snapshot objects"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use snapshot objects instead of snapshot dictionaries of"},{"line_number":10,"context_line":"create_cgsnapshot and delete_cgsnapshot."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I416cb53483c9106ff434dc659667c398868c91e6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"5afe65bd_26738bb3","line":9,"updated":"2015-06-02 14:41:57.000000000","message":"s/of/in/","commit_id":"625c2fd94fb0a9775f73344ed365e254c3b20541"}],"cinder/tests/unit/test_prophetstor_dpl.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"6c9bc4436dd3b780a70c867a91e94518de582f72","unresolved":false,"context_lines":[{"line_number":747,"context_line":"        mock_cgsnap.volume_id \u003d \u0027abc123\u0027"},{"line_number":748,"context_line":"        mock_cgsnap.display_name \u003d \u0027snapshot1\u0027"},{"line_number":749,"context_line":"        mock_snap \u003d mock.MagicMock()"},{"line_number":750,"context_line":"        get_all_for_cgsnapshot.return_value \u003d [mock_snap]"},{"line_number":751,"context_line":"        self.DPL_MOCK.create_vdev_snapshot.return_value \u003d DATA_OUTPUT"},{"line_number":752,"context_line":"        model_update, snapshots \u003d self.dpldriver.create_cgsnapshot("},{"line_number":753,"context_line":"            self.context, DATA_IN_CG_SNAPSHOT)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_890ad924","line":750,"updated":"2015-05-29 13:08:17.000000000","message":"You should use the fake_snapshot.fake_snapshot_obj.","commit_id":"ac338b24ebd09f86f4e37131be587d5e5c5b784a"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"6c9bc4436dd3b780a70c867a91e94518de582f72","unresolved":false,"context_lines":[{"line_number":761,"context_line":"        mock_cgsnap.volume_id \u003d \u0027abc123\u0027"},{"line_number":762,"context_line":"        mock_cgsnap.display_name \u003d \u0027snapshot1\u0027"},{"line_number":763,"context_line":"        mock_snap \u003d mock.MagicMock()"},{"line_number":764,"context_line":"        get_all_for_cgsnapshot.return_value \u003d [mock_snap]"},{"line_number":765,"context_line":"        self.DPL_MOCK.delete_cgsnapshot.return_value \u003d DATA_OUTPUT"},{"line_number":766,"context_line":"        model_update, snapshots \u003d self.dpldriver.delete_cgsnapshot("},{"line_number":767,"context_line":"            self.context, DATA_IN_CG_SNAPSHOT)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_d40aa81f","line":764,"updated":"2015-05-29 13:08:17.000000000","message":"Ditto","commit_id":"ac338b24ebd09f86f4e37131be587d5e5c5b784a"}],"cinder/volume/drivers/prophetstor/dplcommon.py":[{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"5b7b5936caa923616010dd03a9070017a8ece6e0","unresolved":false,"context_lines":[{"line_number":905,"context_line":"    def create_cgsnapshot(self, context, cgsnapshot):"},{"line_number":906,"context_line":"        \"\"\"Creates a cgsnapshot.\"\"\""},{"line_number":907,"context_line":"        cgId \u003d cgsnapshot[\u0027consistencygroup_id\u0027]"},{"line_number":908,"context_line":"        cgsnapshot_id \u003d cgsnapshot[\u0027id\u0027]"},{"line_number":909,"context_line":"        snapshots \u003d self.db.snapshot_get_all_for_cgsnapshot("},{"line_number":910,"context_line":"            context, cgsnapshot_id)"},{"line_number":911,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_6ec37c58","line":908,"updated":"2015-05-27 14:25:27.000000000","message":"Sorry, I take back what I had said earlier.  You just need to change L909 to SnapshotList.get_all_for_cgsnapshot().  This would return snapshot objects.  However, it would have to be rebased on https://review.openstack.org/#/c/163910/.","commit_id":"8ce5cb25d8d7e528dc64c0a9b4cc9276ec95f5cb"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"6dfc2b1f112320b912308e866a3887f82f8133f9","unresolved":false,"context_lines":[{"line_number":934,"context_line":"    def delete_cgsnapshot(self, context, cgsnapshot):"},{"line_number":935,"context_line":"        \"\"\"Deletes a cgsnapshot.\"\"\""},{"line_number":936,"context_line":"        cgId \u003d cgsnapshot[\u0027consistencygroup_id\u0027]"},{"line_number":937,"context_line":"        cgsnapshot_id \u003d cgsnapshot[\u0027id\u0027]"},{"line_number":938,"context_line":"        snapshots \u003d self.db.snapshot_get_all_for_cgsnapshot("},{"line_number":939,"context_line":"            context, cgsnapshot_id)"},{"line_number":940,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_8e77d801","line":937,"updated":"2015-05-27 14:28:34.000000000","message":"This line too - SnapshotList.get_all_for_cgsnapshot().","commit_id":"8ce5cb25d8d7e528dc64c0a9b4cc9276ec95f5cb"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"6c9bc4436dd3b780a70c867a91e94518de582f72","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"from cinder import exception"},{"line_number":34,"context_line":"from cinder.i18n import _, _LI, _LW, _LE"},{"line_number":35,"context_line":"from cinder.objects.snapshot import SnapshotList"},{"line_number":36,"context_line":"from cinder.openstack.common import loopingcall"},{"line_number":37,"context_line":"from cinder.volume import driver"},{"line_number":38,"context_line":"from cinder.volume.drivers.prophetstor import options"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_d421889f","line":35,"updated":"2015-05-29 13:08:17.000000000","message":"Instead of importing the class, you can just import snapshot or objects, i.e. \"from cinder import objects\", then use objects.SnapshotList().","commit_id":"ac338b24ebd09f86f4e37131be587d5e5c5b784a"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ee7de4aeb6c4c67f163ad41dc71afb4bdfd17eb0","unresolved":false,"context_lines":[{"line_number":906,"context_line":"    def create_cgsnapshot(self, context, cgsnapshot):"},{"line_number":907,"context_line":"        \"\"\"Creates a cgsnapshot.\"\"\""},{"line_number":908,"context_line":"        snapshots \u003d objects.SnapshotList().get_all_for_cgsnapshot("},{"line_number":909,"context_line":"            context\u003dcontext, cgsnapshot_id\u003dcgsnapshot[\u0027id\u0027])"},{"line_number":910,"context_line":"        model_update \u003d {}"},{"line_number":911,"context_line":"        LOG.info(_LI(\u0027Start to create cgsnapshot for consistency group\u0027"},{"line_number":912,"context_line":"                     \u0027: %(group_name)s\u0027),"}],"source_content_type":"text/x-python","patch_set":10,"id":"5afe65bd_b4dc6e47","line":909,"updated":"2015-06-01 17:30:39.000000000","message":"You should just use - objects.SnapshotList().get_all_for_cgsnapshot(context, cgsnapshot[\u0027id\u0027])","commit_id":"503ba4795f43de1d3b0dbd930697c4e7e505d9c9"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"ee7de4aeb6c4c67f163ad41dc71afb4bdfd17eb0","unresolved":false,"context_lines":[{"line_number":933,"context_line":"    def delete_cgsnapshot(self, context, cgsnapshot):"},{"line_number":934,"context_line":"        \"\"\"Deletes a cgsnapshot.\"\"\""},{"line_number":935,"context_line":"        snapshots \u003d objects.SnapshotList().get_all_for_cgsnapshot("},{"line_number":936,"context_line":"            context\u003dcontext, cgsnapshot_id\u003dcgsnapshot[\u0027id\u0027])"},{"line_number":937,"context_line":"        model_update \u003d {}"},{"line_number":938,"context_line":"        model_update[\u0027status\u0027] \u003d cgsnapshot[\u0027status\u0027]"},{"line_number":939,"context_line":"        LOG.info(_LI(\u0027Delete cgsnapshot %(snap_name)s for consistency group: \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"5afe65bd_f4d2e633","line":936,"updated":"2015-06-01 17:30:39.000000000","message":"You should just use - objects.SnapshotList().get_all_for_cgsnapshot(context, cgsnapshot[\u0027id\u0027])","commit_id":"503ba4795f43de1d3b0dbd930697c4e7e505d9c9"}]}
