)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a1c1238f1894307d97d85cd53f9feb2e1e81375e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"point in time if the previous one is deleted. More information"},{"line_number":14,"context_line":"about this situation is provided in the bug description."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This patch fixes the issue by commiting the right image in this"},{"line_number":17,"context_line":"case."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ifb5e840e5a918d727275a2c0be783e1fe045e798"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a4dcd0f_bd09802e","line":16,"updated":"2015-08-04 22:38:15.000000000","message":"/commiting/committing/","commit_id":"0a360207112f5d21eb482feddfd88d5b6e10fdaa"}],"cinder/tests/unit/test_remotefs.py":[{"author":{"_account_id":10796,"name":"Deepak C Shetty (deepakcs)","email":"dpkshetty@gmail.com","username":"deepakcs"},"change_message_id":"626ef628a19c801b4e7d3b374ac71f66b392e7a4","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            self._driver._get_backing_chain_for_path \u003d mock.Mock("},{"line_number":148,"context_line":"                return_value\u003dfake_backing_chain)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"            self._driver._delete_snapshot(self._FAKE_SNAPSHOT)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"            self._driver._img_commit.assert_called_once_with("},{"line_number":153,"context_line":"                self._FAKE_SNAPSHOT_PATH)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_814c0ac9","line":150,"updated":"2015-07-02 06:53:25.000000000","message":"An assert to prove that the active file hasn\u0027t changed post delete snapshot can be added too, so that in future if any code bug mistakenly deletes higher_file or active file, it can be caught in the testcase.","commit_id":"3d92ec57db714ec664007abf8264b69870bbad82"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"2abbd9aaa7d02a8d3725d1c1c18db7d3e47f375a","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            self._driver._get_backing_chain_for_path \u003d mock.Mock("},{"line_number":148,"context_line":"                return_value\u003dfake_backing_chain)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"            self._driver._delete_snapshot(self._FAKE_SNAPSHOT)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"            self._driver._img_commit.assert_called_once_with("},{"line_number":153,"context_line":"                self._FAKE_SNAPSHOT_PATH)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_1a29068a","line":150,"in_reply_to":"ba3cc151_814c0ac9","updated":"2015-07-03 09:14:07.000000000","message":"That\u0027s already tested by asserting that the _write_info_file method was called with the expected_info dict, which contains \"fake_upper_snap_snap\" as active file.","commit_id":"3d92ec57db714ec664007abf8264b69870bbad82"},{"author":{"_account_id":10796,"name":"Deepak C Shetty (deepakcs)","email":"dpkshetty@gmail.com","username":"deepakcs"},"change_message_id":"626ef628a19c801b4e7d3b374ac71f66b392e7a4","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            self._driver._img_commit.assert_called_once_with("},{"line_number":153,"context_line":"                self._FAKE_SNAPSHOT_PATH)"},{"line_number":154,"context_line":"            self._driver._rebase_img.assert_called_once_with("},{"line_number":155,"context_line":"                fake_upper_snap_path, self._FAKE_VOLUME_NAME, \u0027raw\u0027)"},{"line_number":156,"context_line":"            self._driver._write_info_file.assert_called_once_with("},{"line_number":157,"context_line":"                mock.sentinel.fake_info_path, expected_info)"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_81c64a66","line":155,"updated":"2015-07-02 06:53:25.000000000","message":"s/\u0027raw\u0027/fake_base_img_info.file_format","commit_id":"3d92ec57db714ec664007abf8264b69870bbad82"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"2abbd9aaa7d02a8d3725d1c1c18db7d3e47f375a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            self._driver._img_commit.assert_called_once_with("},{"line_number":153,"context_line":"                self._FAKE_SNAPSHOT_PATH)"},{"line_number":154,"context_line":"            self._driver._rebase_img.assert_called_once_with("},{"line_number":155,"context_line":"                fake_upper_snap_path, self._FAKE_VOLUME_NAME, \u0027raw\u0027)"},{"line_number":156,"context_line":"            self._driver._write_info_file.assert_called_once_with("},{"line_number":157,"context_line":"                mock.sentinel.fake_info_path, expected_info)"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_9f0f4836","line":155,"in_reply_to":"ba3cc151_81c64a66","updated":"2015-07-03 09:14:07.000000000","message":"Done","commit_id":"3d92ec57db714ec664007abf8264b69870bbad82"}],"cinder/volume/drivers/remotefs.py":[{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"eb839de0b13f795b0a504713576911c0f7f3870c","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"            snapshot_file_fmt \u003d snapshot_path_img_info.file_format"},{"line_number":1043,"context_line":"            self._rebase_img(higher_file_path, base_file,"},{"line_number":1044,"context_line":"                             snapshot_file_fmt)"},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"        # Remove snapshot_file from info"},{"line_number":1047,"context_line":"        del(snap_info[snapshot[\u0027id\u0027]])"},{"line_number":1048,"context_line":"        self._write_info_file(info_path, snap_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_77768fa5","line":1045,"updated":"2015-07-01 13:16:45.000000000","message":"I\u0027ve fixed this in the following patch set. Thanks a lot pointing this out! This slipped away as I was using qcow2 base images so the format was the same.","commit_id":"960bf6246f37982d0de5de4f214efb51d08f6687"},{"author":{"_account_id":10796,"name":"Deepak C Shetty (deepakcs)","email":"dpkshetty@gmail.com","username":"deepakcs"},"change_message_id":"7ab553e3f578c07da964dd9002cd2051226f3c6d","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"            snapshot_file_fmt \u003d snapshot_path_img_info.file_format"},{"line_number":1043,"context_line":"            self._rebase_img(higher_file_path, base_file,"},{"line_number":1044,"context_line":"                             snapshot_file_fmt)"},{"line_number":1045,"context_line":""},{"line_number":1046,"context_line":"        # Remove snapshot_file from info"},{"line_number":1047,"context_line":"        del(snap_info[snapshot[\u0027id\u0027]])"},{"line_number":1048,"context_line":"        self._write_info_file(info_path, snap_info)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_644fc26b","line":1045,"updated":"2015-07-01 12:16:21.000000000","message":"This is incorrect, and you are breaking the snap chain.  \nSee the associated bug comment for more details.\n\nCorrect would be:\nself._rebase_img(higher_file_path, base_file, base_file_fmt)\n\nSince, after the commit op, the higher file points to the snap\u0027s base, hence\nthe backing format for higher_file should be the base_file\u0027s format.","commit_id":"960bf6246f37982d0de5de4f214efb51d08f6687"}]}
