)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":17,"context_line":"need to remember any relevant information persistently."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The actions concerning consistency group snapshots are not"},{"line_number":20,"context_line":"simultaneous, but are rather let to run in succession."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Partially implements bp manila-consistency-groups"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_fa4fd731","line":20,"updated":"2015-09-04 03:35:42.000000000","message":"What you have here in the commit message should be documented clearly as well.  Please add DocImpact flag.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"need to remember any relevant information persistently."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"The actions concerning consistency group snapshots are not"},{"line_number":20,"context_line":"simultaneous, but are rather let to run in succession."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Partially implements bp manila-consistency-groups"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"da20952f_8538aed4","line":20,"in_reply_to":"da20952f_fa4fd731","updated":"2015-09-04 14:42:45.000000000","message":"Thanks. Done","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"}],"contrib/ci/post_test_hook.sh":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3cc4856691ea607ae82276cd272bcc3d9c55b072","unresolved":false,"context_lines":[{"line_number":88,"context_line":"set +o errexit"},{"line_number":89,"context_line":"cd $BASE/new/tempest"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"export MANILA_TEMPEST_CONCURRENCY\u003d${MANILA_TEMPEST_CONCURRENCY:-6}"},{"line_number":92,"context_line":"export MANILA_TESTS\u003d${MANILA_TESTS:-\u0027manila_tempest_tests.tests.api\u0027}"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"if [[ \"$JOB_NAME\" \u003d~ \"scenario\" ]]; then"}],"source_content_type":"text/x-sh","patch_set":20,"id":"da20952f_4d635db1","line":91,"updated":"2015-09-07 10:28:14.000000000","message":"Why this was changed?","commit_id":"079a3d64f5ec02d46285eb4db5343178f395ef5b"}],"manila/share/drivers/generic.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":952,"context_line":"        share_server is valid, we do nothing else here."},{"line_number":953,"context_line":"        \"\"\""},{"line_number":954,"context_line":""},{"line_number":955,"context_line":"        LOG.debug(\u0027Created a Consistency Group with ID: %s.\u0027, cg_dict[\u0027id\u0027])"},{"line_number":956,"context_line":""},{"line_number":957,"context_line":"    def delete_consistency_group(self, context, cg_dict, share_server\u003dNone):"},{"line_number":958,"context_line":"        \"\"\"Deletes a consistency group."}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_bad63f4d","line":955,"updated":"2015-09-04 03:35:42.000000000","message":"I think we should add a warning message here saying generic driver doesn\u0027t really have the CG concept. This is just for testing purpose.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":952,"context_line":"        share_server is valid, we do nothing else here."},{"line_number":953,"context_line":"        \"\"\""},{"line_number":954,"context_line":""},{"line_number":955,"context_line":"        LOG.debug(\u0027Created a Consistency Group with ID: %s.\u0027, cg_dict[\u0027id\u0027])"},{"line_number":956,"context_line":""},{"line_number":957,"context_line":"    def delete_consistency_group(self, context, cg_dict, share_server\u003dNone):"},{"line_number":958,"context_line":"        \"\"\"Deletes a consistency group."}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_65b0fa43","line":955,"in_reply_to":"da20952f_bad63f4d","updated":"2015-09-04 14:42:45.000000000","message":"True. Taken care of.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":973,"context_line":"                \u0027snap\u0027: share_snapshot[\u0027id\u0027],"},{"line_number":974,"context_line":"                \u0027share\u0027: share_snapshot[\u0027share_id\u0027],"},{"line_number":975,"context_line":"            })"},{"line_number":976,"context_line":"            raise e"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"    @ensure_server"},{"line_number":979,"context_line":"    def create_cgsnapshot(self, context, snap_dict, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_e84cf643","line":976,"updated":"2015-09-04 03:35:42.000000000","message":"Just \"raise\" without e is sufficient.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":973,"context_line":"                \u0027snap\u0027: share_snapshot[\u0027id\u0027],"},{"line_number":974,"context_line":"                \u0027share\u0027: share_snapshot[\u0027share_id\u0027],"},{"line_number":975,"context_line":"            })"},{"line_number":976,"context_line":"            raise e"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"    @ensure_server"},{"line_number":979,"context_line":"    def create_cgsnapshot(self, context, snap_dict, share_server\u003dNone):"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_e5a16aaa","line":976,"in_reply_to":"da20952f_e84cf643","updated":"2015-09-04 14:42:45.000000000","message":"Done","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":978,"context_line":"    @ensure_server"},{"line_number":979,"context_line":"    def create_cgsnapshot(self, context, snap_dict, share_server\u003dNone):"},{"line_number":980,"context_line":"        \"\"\"Creates a consistency group snapshot one or more shares.\"\"\""},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"        cg_members \u003d snap_dict.get(\u0027cgsnapshot_members\u0027, [])"},{"line_number":983,"context_line":"        if not cg_members:"},{"line_number":984,"context_line":"            LOG.warning(_LW(\u0027No shares in Consistency Group to Create CG \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_3ac30f8b","line":981,"updated":"2015-09-04 03:35:42.000000000","message":"When we create CG snapshot, we should also log a warning message that this CG snapshot is not consistent. This is intended for testing purpose only.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":978,"context_line":"    @ensure_server"},{"line_number":979,"context_line":"    def create_cgsnapshot(self, context, snap_dict, share_server\u003dNone):"},{"line_number":980,"context_line":"        \"\"\"Creates a consistency group snapshot one or more shares.\"\"\""},{"line_number":981,"context_line":""},{"line_number":982,"context_line":"        cg_members \u003d snap_dict.get(\u0027cgsnapshot_members\u0027, [])"},{"line_number":983,"context_line":"        if not cg_members:"},{"line_number":984,"context_line":"            LOG.warning(_LW(\u0027No shares in Consistency Group to Create CG \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_2503e211","line":981,"in_reply_to":"da20952f_3ac30f8b","updated":"2015-09-04 14:42:45.000000000","message":"Done","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":992,"context_line":"                    \u0027id\u0027: member[\u0027cgsnapshot_id\u0027],"},{"line_number":993,"context_line":"                }"},{"line_number":994,"context_line":"                try:"},{"line_number":995,"context_line":"                    self.create_snapshot(context, share_snapshot, share_server)"},{"line_number":996,"context_line":"                    share_snapshots.append(share_snapshot)"},{"line_number":997,"context_line":"                except exception.ManilaException as e:"},{"line_number":998,"context_line":"                    msg \u003d _LE(\u0027Could not create CG Snapshot. Failed \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_88c0da51","line":995,"updated":"2015-09-04 03:35:42.000000000","message":"So this will actually create individual snapshots?  I thought you try to avoid that in this design.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"a5ebdf404e53c9eb4a8cb1d07f9c9adabb76fdf2","unresolved":false,"context_lines":[{"line_number":992,"context_line":"                    \u0027id\u0027: member[\u0027cgsnapshot_id\u0027],"},{"line_number":993,"context_line":"                }"},{"line_number":994,"context_line":"                try:"},{"line_number":995,"context_line":"                    self.create_snapshot(context, share_snapshot, share_server)"},{"line_number":996,"context_line":"                    share_snapshots.append(share_snapshot)"},{"line_number":997,"context_line":"                except exception.ManilaException as e:"},{"line_number":998,"context_line":"                    msg \u003d _LE(\u0027Could not create CG Snapshot. Failed \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_6b8a09c1","line":995,"in_reply_to":"da20952f_88c0da51","updated":"2015-09-04 13:39:44.000000000","message":"This will create individual snapshots on the backend but each one will still just be a cgsnapshot member.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":992,"context_line":"                    \u0027id\u0027: member[\u0027cgsnapshot_id\u0027],"},{"line_number":993,"context_line":"                }"},{"line_number":994,"context_line":"                try:"},{"line_number":995,"context_line":"                    self.create_snapshot(context, share_snapshot, share_server)"},{"line_number":996,"context_line":"                    share_snapshots.append(share_snapshot)"},{"line_number":997,"context_line":"                except exception.ManilaException as e:"},{"line_number":998,"context_line":"                    msg \u003d _LE(\u0027Could not create CG Snapshot. Failed \u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_08535318","line":995,"in_reply_to":"da20952f_88c0da51","updated":"2015-09-04 14:42:45.000000000","message":"Yes, this will create the snapshots for individual CG members serially but these snapshots are part of the CG Snapshot object.","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"}],"manila/tests/share/drivers/test_generic.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":1743,"context_line":"            self._context, FAKE_SNAP_DICT, share_server\u003dself.server)"},{"line_number":1744,"context_line":""},{"line_number":1745,"context_line":"        self.assertEqual(1, mock_debug_log.call_count)"},{"line_number":1746,"context_line":"        self.assertEqual(None, result)"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"    def test_delete_consistency_group(self):"},{"line_number":1749,"context_line":"        FAKE_SNAP_DICT \u003d get_fake_snap_dict()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_087b6a29","line":1746,"updated":"2015-09-04 03:35:42.000000000","message":"assertIsNone","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":1743,"context_line":"            self._context, FAKE_SNAP_DICT, share_server\u003dself.server)"},{"line_number":1744,"context_line":""},{"line_number":1745,"context_line":"        self.assertEqual(1, mock_debug_log.call_count)"},{"line_number":1746,"context_line":"        self.assertEqual(None, result)"},{"line_number":1747,"context_line":""},{"line_number":1748,"context_line":"    def test_delete_consistency_group(self):"},{"line_number":1749,"context_line":"        FAKE_SNAP_DICT \u003d get_fake_snap_dict()"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_eb7939fd","line":1746,"in_reply_to":"da20952f_087b6a29","updated":"2015-09-04 14:42:45.000000000","message":"Done","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"0bcf802cd2fda5eddf7cfac190be02b722cdc124","unresolved":false,"context_lines":[{"line_number":1753,"context_line":"            self._context, FAKE_SNAP_DICT, share_server\u003dself.server)"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"        self.assertEqual(1, mock_debug_log.call_count)"},{"line_number":1756,"context_line":"        self.assertEqual(None, result)"},{"line_number":1757,"context_line":""},{"line_number":1758,"context_line":"    def test_create_cgsnapshot_no_cg_members(self):"},{"line_number":1759,"context_line":"        FAKE_SNAP_DICT \u003d dict(get_fake_snap_dict(), cgsnapshot_members\u003d[])"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_1a43ab43","line":1756,"updated":"2015-09-04 03:35:42.000000000","message":"Same","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"412ec0345a8451da09139efbdd52f13b6559ec1d","unresolved":false,"context_lines":[{"line_number":1753,"context_line":"            self._context, FAKE_SNAP_DICT, share_server\u003dself.server)"},{"line_number":1754,"context_line":""},{"line_number":1755,"context_line":"        self.assertEqual(1, mock_debug_log.call_count)"},{"line_number":1756,"context_line":"        self.assertEqual(None, result)"},{"line_number":1757,"context_line":""},{"line_number":1758,"context_line":"    def test_create_cgsnapshot_no_cg_members(self):"},{"line_number":1759,"context_line":"        FAKE_SNAP_DICT \u003d dict(get_fake_snap_dict(), cgsnapshot_members\u003d[])"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_ab7fc1dd","line":1756,"in_reply_to":"da20952f_1a43ab43","updated":"2015-09-04 14:42:45.000000000","message":"Done","commit_id":"c6f12e52b1113ceedba4f98c22ae7fcd9136357f"}]}
