)]}'
{"cinder/backup/manager.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"2228ef7beafa3e89cb1dc7b8c4617b1195cfd29a","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        initialization failure the manager is actually down and"},{"line_number":245,"context_line":"        not ready to accept any requests."},{"line_number":246,"context_line":"        \"\"\""},{"line_number":247,"context_line":"        return all(vm.is_working() for vm in self.volume_managers.values())"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _detach_all_attachments(self, ctxt, mgr, volume):"},{"line_number":250,"context_line":"        attachments \u003d volume[\u0027volume_attachment\u0027] or []"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_bb54efc5","line":247,"updated":"2015-08-26 06:05:52.000000000","message":"So the manager will not work if one driver is not initialized even though n-1 drivers are initialized. I\u0027m not sure whether this is what we needed. Could you please explain?","commit_id":"59efdc141a63791b3cb80deb14984bd6f1ff8cdd"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"f7ead99571207079de99f53ca77ba92732505b63","unresolved":false,"context_lines":[{"line_number":244,"context_line":"        initialization failure the manager is actually down and"},{"line_number":245,"context_line":"        not ready to accept any requests."},{"line_number":246,"context_line":"        \"\"\""},{"line_number":247,"context_line":"        return all(vm.is_working() for vm in self.volume_managers.values())"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"    def _detach_all_attachments(self, ctxt, mgr, volume):"},{"line_number":250,"context_line":"        attachments \u003d volume[\u0027volume_attachment\u0027] or []"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_898af362","line":247,"in_reply_to":"fa1b9901_bb54efc5","updated":"2015-08-26 15:03:09.000000000","message":"No, manager will work as previously. It\u0027s here only to indicate that service has some problems and isn\u0027t running correctly.","commit_id":"59efdc141a63791b3cb80deb14984bd6f1ff8cdd"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"d83ce3a461476205e8521be81668e15bc9330f0c","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        This is to inform Service class that in case of driver"},{"line_number":283,"context_line":"        initialization failure the manager is actually down and"},{"line_number":284,"context_line":"        not ready to accept any requests."},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        return all(vm.is_working() for vm in self.volume_managers.values())"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _detach_all_attachments(self, ctxt, mgr, volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a2ca52d_dc01b3b0","line":285,"updated":"2015-10-15 22:01:03.000000000","message":"Is it true that the backup manager is unable to accept requests even if just one of the volume_managers is down?  I.e. one volume_manager is down but many others which are initialized, we should still return False for is_working?","commit_id":"f5cdb7f5d426a8008b63ee7c0751f76b23dd7045"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"561b78172d1bf96040d157a8af6bc868e4ec6948","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        This is to inform Service class that in case of driver"},{"line_number":283,"context_line":"        initialization failure the manager is actually down and"},{"line_number":284,"context_line":"        not ready to accept any requests."},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        return all(vm.is_working() for vm in self.volume_managers.values())"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _detach_all_attachments(self, ctxt, mgr, volume):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_72f27b9c","line":285,"in_reply_to":"5a2ca52d_dc01b3b0","updated":"2015-10-19 12:40:57.000000000","message":"Docstring may need rephrasing, but logic of the function is correct - even if only one of the volume managers is down request may fail because of that. This function don\u0027t support intermediate states so it returns true only when all is correct.","commit_id":"f5cdb7f5d426a8008b63ee7c0751f76b23dd7045"},{"author":{"_account_id":10439,"name":"Xi Yang","email":"yang.xi@99cloud.net","username":"phenom"},"change_message_id":"1ccf43acf2284ed98d30af2a1a0e96095c274ce7","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        initialization failure the manager is actually down and"},{"line_number":284,"context_line":"        may not accept some or all requests."},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        return all(vm.is_working() for vm in self.volume_managers.values())"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _detach_all_attachments(self, ctxt, mgr, volume):"},{"line_number":289,"context_line":"        attachments \u003d volume[\u0027volume_attachment\u0027] or []"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a29b11f_2fb6993d","line":286,"updated":"2015-10-20 13:02:10.000000000","message":"I feel the \u0027vm\u0027 is a little confusing. What about being consistent with the other methods, just naming it as \u0027mgr\u0027?","commit_id":"28ec900a5fa565bb6f9a194b1c92e5303a12a038"}],"cinder/tests/unit/test_backup.py":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"2228ef7beafa3e89cb1dc7b8c4617b1195cfd29a","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        self.assertTrue(mock_delete_volume.called)"},{"line_number":240,"context_line":"        self.assertTrue(mock_delete_snapshot.called)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def test_is_working(self):"},{"line_number":243,"context_line":"        # By default we have driver mocked to be initialized..."},{"line_number":244,"context_line":"        self.assertTrue(self.backup_mgr.is_working())"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_db10c302","line":242,"updated":"2015-08-26 06:05:52.000000000","message":"This should be extended to include more than one driver.","commit_id":"59efdc141a63791b3cb80deb14984bd6f1ff8cdd"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"f7ead99571207079de99f53ca77ba92732505b63","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        self.assertTrue(mock_delete_volume.called)"},{"line_number":240,"context_line":"        self.assertTrue(mock_delete_snapshot.called)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    def test_is_working(self):"},{"line_number":243,"context_line":"        # By default we have driver mocked to be initialized..."},{"line_number":244,"context_line":"        self.assertTrue(self.backup_mgr.is_working())"},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa1b9901_d59156f2","line":242,"in_reply_to":"fa1b9901_db10c302","updated":"2015-08-26 15:03:09.000000000","message":"Done","commit_id":"59efdc141a63791b3cb80deb14984bd6f1ff8cdd"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"1dca086891e912c2c913103b91f4ca9f5ebe507c","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        vms \u003d {\u0027a\u0027: vmanager_mock, \u0027b\u0027: vmanager_mock, \u0027c\u0027: vmanager_mock}"},{"line_number":278,"context_line":"        with mock.patch.dict(self.backup_mgr.volume_managers, vms, True):"},{"line_number":279,"context_line":"            self.assertFalse(self.backup_mgr.is_working())"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"},{"line_number":282,"context_line":"    @ddt.data(KeyError, exception.VolumeNotFound)"},{"line_number":283,"context_line":"    def test_cleanup_temp_volumes_snapshots_volume_not_found("}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_6c2f1689","line":280,"updated":"2015-09-08 14:16:42.000000000","message":"I suggest you have another test to cover the positive case as well (meaning when is_working returns true). It\u0027s best to cover things both ways even though this is a small change. Thanks!","commit_id":"70a3d7a313fdcc2fef78a75b8cc1a2739a025b27"},{"author":{"_account_id":12825,"name":"Szymon Wróblewski","email":"szymon.wroblewski@ovhcloud.com","username":"bluex"},"change_message_id":"17a3170d6a64c06c5f3d05798ec4d65a6bb607a0","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        vms \u003d {\u0027a\u0027: vmanager_mock, \u0027b\u0027: vmanager_mock, \u0027c\u0027: vmanager_mock}"},{"line_number":278,"context_line":"        with mock.patch.dict(self.backup_mgr.volume_managers, vms, True):"},{"line_number":279,"context_line":"            self.assertFalse(self.backup_mgr.is_working())"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"    @mock.patch.object(db, \u0027volume_get\u0027)"},{"line_number":282,"context_line":"    @ddt.data(KeyError, exception.VolumeNotFound)"},{"line_number":283,"context_line":"    def test_cleanup_temp_volumes_snapshots_volume_not_found("}],"source_content_type":"text/x-python","patch_set":4,"id":"da20952f_2702990a","line":280,"in_reply_to":"da20952f_6c2f1689","updated":"2015-09-08 14:36:12.000000000","message":"It\u0027s already present at line #273.","commit_id":"70a3d7a313fdcc2fef78a75b8cc1a2739a025b27"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"a6b917f0284ca6662f92ff3a41d9a37814805c58","unresolved":false,"context_lines":[{"line_number":273,"context_line":"    def test_is_working(self):"},{"line_number":274,"context_line":"        self.assertTrue(self.backup_mgr.is_working())"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        vmanager_mock \u003d mock.Mock()"},{"line_number":277,"context_line":"        vmanager_mock.is_working.side_effect \u003d [True, False, True]"},{"line_number":278,"context_line":"        vms \u003d {\u0027a\u0027: vmanager_mock, \u0027b\u0027: vmanager_mock, \u0027c\u0027: vmanager_mock}"},{"line_number":279,"context_line":"        with mock.patch.dict(self.backup_mgr.volume_managers, vms, True):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3a29b11f_536c7b34","line":276,"updated":"2015-10-22 09:08:50.000000000","message":"There should be 3 different managers instead of setting 3 different side effect values.","commit_id":"9889f96afdc81442fd4b1966777a8dcd143e243e"}]}
