)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a3f2f55a321260c51d46f42a2c8bd5c5cee04f77","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lisali \u003cxiaoyan.li@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-09 11:40:29 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Show backup and volume info in output of backup_restore command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When no volume is specified in backup_restore command, a new"},{"line_number":10,"context_line":"volume is created with specified name."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_efd92a23","line":7,"updated":"2015-07-09 04:33:22.000000000","message":"https://wiki.openstack.org/wiki/GitCommitMessages says \"The first line should be limited to 50 characters ...\"","commit_id":"f6f4f9f152a78a244bb7ea7c368931d78cacc709"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"647df544c69ca4dff9cd560bdd59aae4efb7998a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lisali \u003cxiaoyan.li@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-07-09 11:40:29 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Show backup and volume info in output of backup_restore command"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When no volume is specified in backup_restore command, a new"},{"line_number":10,"context_line":"volume is created with specified name."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_cfcc6637","line":7,"in_reply_to":"ba3cc151_efd92a23","updated":"2015-07-09 04:40:45.000000000","message":"Done","commit_id":"f6f4f9f152a78a244bb7ea7c368931d78cacc709"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"e05a731db5d648dffa70a6ef5345454f85e5b86f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"with same name are created, it needs to check logs to find out"},{"line_number":14,"context_line":"which volume is latest."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This update is to show the returned info from api."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I035fc85aa636b716b16c8a543c843ebf4659a96e"},{"line_number":19,"context_line":"Closes-Bug: #1472493"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba3cc151_4e49185f","line":16,"updated":"2015-07-09 15:17:37.000000000","message":"Need a cross project dependency on the change in Cinder:  http://docs.openstack.org/infra/manual/developers.html#cross-repository-dependencies","commit_id":"a01369a584de59e537edce292c6bf0fa450034e0"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"3d201f5dc13bea425fcbbdd9131efdb1bb708150","unresolved":false,"context_lines":[{"line_number":13,"context_line":"with same name are created, it needs to check logs to find out"},{"line_number":14,"context_line":"which volume is latest."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This update is to show the returned info from api."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I035fc85aa636b716b16c8a543c843ebf4659a96e"},{"line_number":19,"context_line":"Closes-Bug: #1472493"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a41bdd9_1349b331","line":16,"in_reply_to":"ba3cc151_4e49185f","updated":"2015-07-13 05:59:47.000000000","message":"Done","commit_id":"a01369a584de59e537edce292c6bf0fa450034e0"}],"cinderclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"305d849ce2fc1dc3e59840893141f21711eaa94d","unresolved":false,"context_lines":[{"line_number":389,"context_line":""},{"line_number":390,"context_line":"        args \u003d self._make_args(input)"},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        with mock.patch.object(self.cs.restores, \u0027restore\u0027) as \\"},{"line_number":393,"context_line":"                mocked_restore:"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":"            mock_find_volume.return_value \u003d Volume(self, {\u0027id\u0027: volume_id},"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a41bdd9_7dac6535","line":392,"updated":"2015-07-13 18:09:20.000000000","message":"Please don\u0027t use \\ for line continuation.","commit_id":"e91cd04240cc977d8c6392de1b38361e4870bd92"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"46fa4f85440e235bd76e0b32fab621a800edad67","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from cinderclient import client"},{"line_number":22,"context_line":"from cinderclient import exceptions"},{"line_number":23,"context_line":"from cinderclient import shell"},{"line_number":24,"context_line":"from cinderclient.v2.volumes import Volume"},{"line_number":25,"context_line":"from cinderclient.v2 import shell as test_shell"},{"line_number":26,"context_line":"from cinderclient.tests.unit import utils"},{"line_number":27,"context_line":"from cinderclient.tests.unit.v2 import fakes"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_8d8860c8","line":24,"updated":"2015-07-16 18:39:39.000000000","message":"Please import only modules, not classes.","commit_id":"ce4950b47e429d2f1b25ac7a9a2ef702619fc255"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"2060e721d1bbc5c6b9c57a43c92f268973d78bce","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from cinderclient import client"},{"line_number":22,"context_line":"from cinderclient import exceptions"},{"line_number":23,"context_line":"from cinderclient import shell"},{"line_number":24,"context_line":"from cinderclient.v2.volumes import Volume"},{"line_number":25,"context_line":"from cinderclient.v2 import shell as test_shell"},{"line_number":26,"context_line":"from cinderclient.tests.unit import utils"},{"line_number":27,"context_line":"from cinderclient.tests.unit.v2 import fakes"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a41bdd9_0943d66d","line":24,"in_reply_to":"9a41bdd9_8d8860c8","updated":"2015-07-17 01:46:43.000000000","message":"Done","commit_id":"ce4950b47e429d2f1b25ac7a9a2ef702619fc255"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"536e2597010b903d1aeb4abf4fa88f693eeb7a35","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            mock_find_volume.return_value \u003d volumes.Volume(self,"},{"line_number":393,"context_line":"                                                           {\u0027id\u0027: volume_id},"},{"line_number":394,"context_line":"                                                           loaded \u003d True)"},{"line_number":395,"context_line":"            test_shell.do_backup_restore(self.cs, args)"},{"line_number":396,"context_line":"            mocked_restore.assert_called_once_with("},{"line_number":397,"context_line":"                input[\u0027backup\u0027],"},{"line_number":398,"context_line":"                volume_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a50d1a3_5a95eb3d","line":395,"updated":"2015-07-26 23:44:09.000000000","message":"Please use self.run_command, like everything else in this file, to avoid creating _make_args()","commit_id":"b426b71d7dba46aaf8de69f537f39eac33c60f5c"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"cc2306f359df8e5833703ec1cfef62d27b777e85","unresolved":false,"context_lines":[{"line_number":392,"context_line":"            mock_find_volume.return_value \u003d volumes.Volume(self,"},{"line_number":393,"context_line":"                                                           {\u0027id\u0027: volume_id},"},{"line_number":394,"context_line":"                                                           loaded \u003d True)"},{"line_number":395,"context_line":"            test_shell.do_backup_restore(self.cs, args)"},{"line_number":396,"context_line":"            mocked_restore.assert_called_once_with("},{"line_number":397,"context_line":"                input[\u0027backup\u0027],"},{"line_number":398,"context_line":"                volume_id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a50d1a3_556dbc30","line":395,"in_reply_to":"3a50d1a3_5a95eb3d","updated":"2015-07-27 01:31:12.000000000","message":"Hi Mike, \nThe function test_restore is to use self.run_command. And this test is to test do_backup_restore in more detail.","commit_id":"b426b71d7dba46aaf8de69f537f39eac33c60f5c"}],"cinderclient/tests/unit/v2/test_volume_backups.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"a5c8666df43cbd85edc866333255e2852ed5508d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from cinderclient.tests.unit import utils"},{"line_number":17,"context_line":"from cinderclient.tests.unit.v2 import fakes"},{"line_number":18,"context_line":"from cinderclient.v2.volume_backups_restore import VolumeBackupsRestore"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"cs \u003d fakes.FakeClient()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a41bdd9_596af01b","line":18,"updated":"2015-07-17 13:28:08.000000000","message":"Same thing here as last patchset. Please don\u0027t import objects.","commit_id":"00ebd5442c5dbff89b4eaccfefa35d8ca0a7983a"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"99a643607741d79a4d17d9bd7d58242102f92b6d","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from cinderclient.tests.unit import utils"},{"line_number":17,"context_line":"from cinderclient.tests.unit.v2 import fakes"},{"line_number":18,"context_line":"from cinderclient.v2.volume_backups_restore import VolumeBackupsRestore"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"cs \u003d fakes.FakeClient()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a50d1a3_b47c8621","line":18,"in_reply_to":"9a41bdd9_596af01b","updated":"2015-07-20 05:21:17.000000000","message":"Done","commit_id":"00ebd5442c5dbff89b4eaccfefa35d8ca0a7983a"}],"cinderclient/v2/shell.py":[{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"c897a55c75885e28d4613c12498de6d5d7c45c7c","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"    info \u003d {\"backup_id\": args.backup}"},{"line_number":1245,"context_line":"    info.update(restore._info)"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"    if \u0027links\u0027 in info:"},{"line_number":1248,"context_line":"        info.pop(\u0027links\u0027)"},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"    utils.print_dict(info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_754cc0c8","line":1247,"updated":"2015-07-10 09:41:41.000000000","message":"You can just do: info.pop(\u0027links\u0027, None), imo it\u0027s cleaner","commit_id":"a01369a584de59e537edce292c6bf0fa450034e0"},{"author":{"_account_id":15961,"name":"lisali","email":"xiaoyan.li@intel.com","username":"lisali"},"change_message_id":"3d201f5dc13bea425fcbbdd9131efdb1bb708150","unresolved":false,"context_lines":[{"line_number":1244,"context_line":"    info \u003d {\"backup_id\": args.backup}"},{"line_number":1245,"context_line":"    info.update(restore._info)"},{"line_number":1246,"context_line":""},{"line_number":1247,"context_line":"    if \u0027links\u0027 in info:"},{"line_number":1248,"context_line":"        info.pop(\u0027links\u0027)"},{"line_number":1249,"context_line":""},{"line_number":1250,"context_line":"    utils.print_dict(info)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_f34bef29","line":1247,"in_reply_to":"ba3cc151_754cc0c8","updated":"2015-07-13 05:59:47.000000000","message":"Done","commit_id":"a01369a584de59e537edce292c6bf0fa450034e0"}]}
