)]}'
{"swift/obj/replicator.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8b58cca398021306a0b039883a623054736ebb28","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                                \u0027operation, please disable handoffs_first and \u0027"},{"line_number":117,"context_line":"                                \u0027handoff_delete before the next \u0027"},{"line_number":118,"context_line":"                                \u0027normal rebalance\u0027)"},{"line_number":119,"context_line":"        self._df_router \u003d DiskFileRouter(conf, self.logger)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def _zero_stats(self):"},{"line_number":122,"context_line":"        \"\"\"Zero out the stats.\"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_4b47651d","line":119,"updated":"2016-11-21 10:54:06.000000000","message":"Yey! Both replicator and reconstructor are using _df_router so it\u0027s consistent each other!","commit_id":"de994044286766e89a466d99a22a25f1092497c0"}],"test/unit/obj/test_replicator.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8b58cca398021306a0b039883a623054736ebb28","unresolved":false,"context_lines":[{"line_number":1629,"context_line":"                    bind_ips\u003d_ips()[0],"},{"line_number":1630,"context_line":"                    mount_check\u003d\u0027false\u0027, timeout\u003d\u0027300\u0027, stats_interval\u003d\u00271\u0027)"},{"line_number":1631,"context_line":""},{"line_number":1632,"context_line":"        with mock.patch(\u0027swift.obj.diskfile.DiskFileManager._get_hashes\u0027,"},{"line_number":1633,"context_line":"                        fake_get_hashes):"},{"line_number":1634,"context_line":"            with mock.patch(\u0027swift.obj.replicator.http_connect\u0027,"},{"line_number":1635,"context_line":"                            mock_http_connect(200)):"},{"line_number":1636,"context_line":"                replicator \u003d object_replicator.ObjectReplicator(conf)"},{"line_number":1637,"context_line":""},{"line_number":1638,"context_line":"                self.get_hash_count \u003d 0"},{"line_number":1639,"context_line":"                self.i_failed \u003d False"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_2b95c987","line":1636,"range":{"start_line":1632,"start_character":7,"end_line":1636,"end_character":11},"updated":"2016-11-21 10:54:06.000000000","message":"I like this kind of refectoring, from try/finally, to use mock.patch, nice.","commit_id":"de994044286766e89a466d99a22a25f1092497c0"}],"test/unit/obj/test_ssync.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"8b58cca398021306a0b039883a623054736ebb28","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.tx_testdir \u003d os.path.join(self.tmpdir, \u0027tmp_test_ssync_sender\u0027)"},{"line_number":53,"context_line":"        utils.mkdirs(os.path.join(self.tx_testdir, self.device))"},{"line_number":54,"context_line":"        self.daemon \u003d FakeReplicator(self.tx_testdir)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        # rx side setup"},{"line_number":57,"context_line":"        self.rx_testdir \u003d os.path.join(self.tmpdir, \u0027tmp_test_ssync_receiver\u0027)"},{"line_number":58,"context_line":"        utils.mkdirs(os.path.join(self.rx_testdir, self.device))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a77a97e_8b309dea","side":"PARENT","line":55,"updated":"2016-11-21 10:54:06.000000000","message":"OK, those setup is moved to BaseTest.","commit_id":"c2d96c1445d576af472d31a3bb80c6eb53423e1b"}]}
