)]}'
{"networking_odl/journal/journal.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"cd7c889fabd6c258575f8846f5f1dbac11d37a46","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        self._odl_sync_timeout \u003d cfg.CONF.ml2_odl.sync_timeout"},{"line_number":97,"context_line":"        self._max_retry_count \u003d cfg.CONF.ml2_odl.retry_count"},{"line_number":98,"context_line":"        self.event \u003d threading.Event()"},{"line_number":99,"context_line":"        self.lock \u003d threading.RLock()"},{"line_number":100,"context_line":"        self.odl_sync_thread \u003d threading.Thread("},{"line_number":101,"context_line":"            name\u003d\u0027sync\u0027,"},{"line_number":102,"context_line":"            target\u003dself.run_sync_thread)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_66ebd8db","line":99,"range":{"start_line":99,"start_character":30,"end_line":99,"end_character":35},"updated":"2017-03-28 06:59:50.000000000","message":"why does this need to be reentrant?","commit_id":"973a00311c866c8f17551c666f9b398c290b2b92"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"a792b073e52a8453172f60557d5ee6a5bea18711","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        self.odl_sync_thread \u003d threading.Thread("},{"line_number":101,"context_line":"            name\u003d\u0027sync\u0027,"},{"line_number":102,"context_line":"            target\u003dself.run_sync_thread)"},{"line_number":103,"context_line":"        self._thread_running \u003d False"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def start(self):"},{"line_number":106,"context_line":"        # Start the sync thread"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_5ed4ede8","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":36},"updated":"2017-03-29 03:58:12.000000000","message":"I am not sure, may be we can remove this variable and use instead is_alive or isAlive method. https://docs.python.org/3/library/threading.html#threading.Thread.is_alive . It will remove overhead of maintaining this variable.","commit_id":"973a00311c866c8f17551c666f9b398c290b2b92"},{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"a792b073e52a8453172f60557d5ee6a5bea18711","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            if self._thread_running:"},{"line_number":118,"context_line":"                self._timer.cancel()"},{"line_number":119,"context_line":"                self._start_sync_timer()"},{"line_number":120,"context_line":"        self.event.set()"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def _start_sync_timer(self):"},{"line_number":123,"context_line":"        self._timer \u003d threading.Timer(self._odl_sync_timeout,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_1ec2e559","line":120,"updated":"2017-03-29 03:58:12.000000000","message":"Do you intend to allow set event, even if the thread is not running?","commit_id":"973a00311c866c8f17551c666f9b398c290b2b92"}],"networking_odl/tests/unit/ml2/test_mechanism_odl_v2.py":[{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"a792b073e52a8453172f60557d5ee6a5bea18711","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        old_time \u003d datetime.datetime.utcnow() - datetime.timedelta(hours\u003d24)"},{"line_number":563,"context_line":"        self._test_cleanup_processing_rows(old_time, odl_const.PENDING)"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def test_thread_call(self):"},{"line_number":566,"context_line":"        \"\"\"Verify that the sync thread method is called.\"\"\""},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"        # Create any object that would spin up the sync thread via the"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_5e53cd39","side":"PARENT","line":565,"updated":"2017-03-29 03:58:12.000000000","message":"Why this test case is removed now?","commit_id":"1e05ec9e2a09a7bc81c2904e8e7ed446d0332fd1"}],"networking_odl/tests/unit/ml2/test_networking_topology.py":[{"author":{"_account_id":13912,"name":"rajiv","email":"thenakliman@gmail.com","username":"rajiv.kumar"},"change_message_id":"a792b073e52a8453172f60557d5ee6a5bea18711","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        super(TestNetworkTopologyManager, self).setUp()"},{"line_number":63,"context_line":"        cfg.CONF.set_override(\u0027port_binding_controller\u0027,"},{"line_number":64,"context_line":"                              \u0027network-topology\u0027, \u0027ml2_odl\u0027)"},{"line_number":65,"context_line":"        mock.patch.object(journal.OpendaylightJournalThread, \u0027start\u0027).start()"},{"line_number":66,"context_line":"        self.patch(network_topology.LOG, \u0027isEnabledFor\u0027, lambda level: True)"},{"line_number":67,"context_line":"        # patch given configuration"},{"line_number":68,"context_line":"        self.cfg \u003d mocked_cfg \u003d self.patch(network_topology.client, \u0027cfg\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe62b97_3e65a946","line":65,"range":{"start_line":65,"start_character":0,"end_line":65,"end_character":77},"updated":"2017-03-29 03:58:12.000000000","message":"I am sorry, I did not dig much but Can you please tell, why this line is required here?","commit_id":"973a00311c866c8f17551c666f9b398c290b2b92"}],"networking_odl/tests/unit/ml2/test_pseudo_agentdb_binding.py":[{"author":{"_account_id":333,"name":"Isaku Yamahata","email":"isaku.yamahata@gmail.com","username":"yamahata"},"change_message_id":"012392410c7455703d69491e2204e51eb278eb48","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        fake_agents_db \u003d mock.MagicMock()"},{"line_number":187,"context_line":"        fake_agents_db.create_or_update_agent \u003d mock.MagicMock()"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        mock.patch.object(maintenance.MaintenanceThread, \u0027start\u0027).start()"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        self.mgr \u003d pseudo_agentdb_binding.PseudoAgentDBBindingController("},{"line_number":192,"context_line":"            db_plugin\u003dfake_agents_db)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_e557c957","line":189,"range":{"start_line":189,"start_character":8,"end_line":189,"end_character":73},"updated":"2017-03-22 02:37:53.000000000","message":"Is this a bug fix not directly related to the patch?\nIf so, can we split it out from this patch into another one?","commit_id":"708160265b4625e248df2137c0e1eb10af3d8e93"},{"author":{"_account_id":7921,"name":"Mike Kolesnik","email":"mkolesni@redhat.com","username":"mkolesni"},"change_message_id":"4b223ddc8a54ca916028e49f34c4d0495b3b6367","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        fake_agents_db \u003d mock.MagicMock()"},{"line_number":187,"context_line":"        fake_agents_db.create_or_update_agent \u003d mock.MagicMock()"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        mock.patch.object(maintenance.MaintenanceThread, \u0027start\u0027).start()"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        self.mgr \u003d pseudo_agentdb_binding.PseudoAgentDBBindingController("},{"line_number":192,"context_line":"            db_plugin\u003dfake_agents_db)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ffe62b97_95252bae","line":189,"range":{"start_line":189,"start_character":8,"end_line":189,"end_character":73},"in_reply_to":"1a1ced50_e557c957","updated":"2017-03-26 11:04:53.000000000","message":"I just found during the testing runs that the maintenance thread is not always mocked when needed, if it interferes I can move it to another patch","commit_id":"708160265b4625e248df2137c0e1eb10af3d8e93"}]}
