)]}'
{"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"04cd625cb0007e212a2fd4e2dcd4a32e5c3afffd","unresolved":false,"context_lines":[{"line_number":1624,"context_line":"        self.conf.reload_config_files()"},{"line_number":1625,"context_line":"        config.setup_logging()"},{"line_number":1626,"context_line":"        LOG.debug(\u0027Full set of CONF:\u0027)"},{"line_number":1627,"context_line":"        self.conf.log_opt_values(LOG, std_logging.DEBUG)"},{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"    def set_rpc_timeout(self, timeout):"},{"line_number":1630,"context_line":"        for rpc_api in (self.plugin_rpc, self.sg_plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_5d4b7887","side":"PARENT","line":1627,"updated":"2015-07-14 13:06:07.000000000","message":"it doesn\u0027t make much sense to remove only the header.","commit_id":"95302aac849d466e2328c077c3634dd1c83ed589"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"51c037f0becc282555b4d834e27ab20c5a8f9b75","unresolved":false,"context_lines":[{"line_number":1624,"context_line":"        self.conf.reload_config_files()"},{"line_number":1625,"context_line":"        config.setup_logging()"},{"line_number":1626,"context_line":"        LOG.debug(\u0027Full set of CONF:\u0027)"},{"line_number":1627,"context_line":"        self.conf.log_opt_values(LOG, std_logging.DEBUG)"},{"line_number":1628,"context_line":""},{"line_number":1629,"context_line":"    def set_rpc_timeout(self, timeout):"},{"line_number":1630,"context_line":"        for rpc_api in (self.plugin_rpc, self.sg_plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_9ae6bd13","side":"PARENT","line":1627,"in_reply_to":"9a41bdd9_5d4b7887","updated":"2015-07-15 03:26:58.000000000","message":"Done","commit_id":"95302aac849d466e2328c077c3634dd1c83ed589"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"04cd625cb0007e212a2fd4e2dcd4a32e5c3afffd","unresolved":false,"context_lines":[{"line_number":1621,"context_line":"    def _handle_sighup(self, signum, frame):"},{"line_number":1622,"context_line":"        self.conf.reload_config_files()"},{"line_number":1623,"context_line":"        config.setup_logging()"},{"line_number":1624,"context_line":"        self.conf.log_opt_values(LOG, std_logging.DEBUG)"},{"line_number":1625,"context_line":""},{"line_number":1626,"context_line":"    def set_rpc_timeout(self, timeout):"},{"line_number":1627,"context_line":"        for rpc_api in (self.plugin_rpc, self.sg_plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_9d302003","line":1624,"updated":"2015-07-14 13:06:07.000000000","message":"it\u0027s better to move the guts of these methods to rpc_loop.","commit_id":"aadd71be80f93bee03207458835745fe1ca9c773"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"359155dc2c96600f80176d87ba538c098544e943","unresolved":false,"context_lines":[{"line_number":1621,"context_line":"    def _handle_sighup(self, signum, frame):"},{"line_number":1622,"context_line":"        self.conf.reload_config_files()"},{"line_number":1623,"context_line":"        config.setup_logging()"},{"line_number":1624,"context_line":"        self.conf.log_opt_values(LOG, std_logging.DEBUG)"},{"line_number":1625,"context_line":""},{"line_number":1626,"context_line":"    def set_rpc_timeout(self, timeout):"},{"line_number":1627,"context_line":"        for rpc_api in (self.plugin_rpc, self.sg_plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_bae4e1df","line":1624,"in_reply_to":"9a41bdd9_9a4a3d25","updated":"2015-07-15 03:33:56.000000000","message":"in signal handers, just record the fact we got a signal.\nin rpc_loop, check the flag and perform appropriate actions.","commit_id":"aadd71be80f93bee03207458835745fe1ca9c773"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"51c037f0becc282555b4d834e27ab20c5a8f9b75","unresolved":false,"context_lines":[{"line_number":1621,"context_line":"    def _handle_sighup(self, signum, frame):"},{"line_number":1622,"context_line":"        self.conf.reload_config_files()"},{"line_number":1623,"context_line":"        config.setup_logging()"},{"line_number":1624,"context_line":"        self.conf.log_opt_values(LOG, std_logging.DEBUG)"},{"line_number":1625,"context_line":""},{"line_number":1626,"context_line":"    def set_rpc_timeout(self, timeout):"},{"line_number":1627,"context_line":"        for rpc_api in (self.plugin_rpc, self.sg_plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_9a4a3d25","line":1624,"in_reply_to":"9a41bdd9_9d302003","updated":"2015-07-15 03:26:58.000000000","message":"I don\u0027t know how to hand the signal.SIGHUP if we move these methods to rpc_loop, can you give me a suggstion?","commit_id":"aadd71be80f93bee03207458835745fe1ca9c773"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"f4edca179908cd764595978b7b125dfbfa0d92f9","unresolved":false,"context_lines":[{"line_number":1621,"context_line":"    def _handle_sighup(self, signum, frame):"},{"line_number":1622,"context_line":"        self.conf.reload_config_files()"},{"line_number":1623,"context_line":"        config.setup_logging()"},{"line_number":1624,"context_line":"        self.conf.log_opt_values(LOG, std_logging.DEBUG)"},{"line_number":1625,"context_line":""},{"line_number":1626,"context_line":"    def set_rpc_timeout(self, timeout):"},{"line_number":1627,"context_line":"        for rpc_api in (self.plugin_rpc, self.sg_plugin_rpc,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_0a533ae3","line":1624,"in_reply_to":"9a41bdd9_bae4e1df","updated":"2015-07-15 06:38:37.000000000","message":"thx for your suggestion","commit_id":"aadd71be80f93bee03207458835745fe1ca9c773"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"195c301ab23cbefde36fd18a4eb77b34849773b9","unresolved":false,"context_lines":[{"line_number":1482,"context_line":"        ovs_restarted \u003d False"},{"line_number":1483,"context_line":"        while self.run_daemon_loop:"},{"line_number":1484,"context_line":"            if self._check_and_handle_signal():"},{"line_number":1485,"context_line":"                continue"},{"line_number":1486,"context_line":"            start \u003d time.time()"},{"line_number":1487,"context_line":"            port_stats \u003d {\u0027regular\u0027: {\u0027added\u0027: 0,"},{"line_number":1488,"context_line":"                                      \u0027updated\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_197f12ac","line":1485,"updated":"2015-07-15 08:53:12.000000000","message":"how about \"while self._check_and_handle_signal():\"","commit_id":"5da710f3a0cb0b62859381e592d2e088dced1d64"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"2e60375db7c0f0d16dc6e70e8c97e8abfb16fbb0","unresolved":false,"context_lines":[{"line_number":1482,"context_line":"        ovs_restarted \u003d False"},{"line_number":1483,"context_line":"        while self.run_daemon_loop:"},{"line_number":1484,"context_line":"            if self._check_and_handle_signal():"},{"line_number":1485,"context_line":"                continue"},{"line_number":1486,"context_line":"            start \u003d time.time()"},{"line_number":1487,"context_line":"            port_stats \u003d {\u0027regular\u0027: {\u0027added\u0027: 0,"},{"line_number":1488,"context_line":"                                      \u0027updated\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_e0cdd285","line":1485,"in_reply_to":"9a41bdd9_197f12ac","updated":"2015-07-15 09:12:27.000000000","message":"agree","commit_id":"5da710f3a0cb0b62859381e592d2e088dced1d64"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"195c301ab23cbefde36fd18a4eb77b34849773b9","unresolved":false,"context_lines":[{"line_number":1629,"context_line":"            LOG.info(_LI(\"Agent caught SIGTERM, quitting daemon loop.\"))"},{"line_number":1630,"context_line":"            self.run_daemon_loop \u003d False"},{"line_number":1631,"context_line":"            if self.quitting_rpc_timeout:"},{"line_number":1632,"context_line":"                self.set_rpc_timeout(self.quitting_rpc_timeout)"},{"line_number":1633,"context_line":"            self.catch_sigterm \u003d False"},{"line_number":1634,"context_line":"        if self.catch_sighup:"},{"line_number":1635,"context_line":"            LOG.info(_LI(\"Agent caught SIGHUP, resetting.\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_5d06e51d","line":1632,"updated":"2015-07-15 08:53:12.000000000","message":"unfortunately, this set_rpc_timeout needs to be in the signal handler\nas its purpose is quit the main loop earlier.\nsee https://bugs.launchpad.net/neutron/+bug/1408334","commit_id":"5da710f3a0cb0b62859381e592d2e088dced1d64"},{"author":{"_account_id":8976,"name":"shihanzhang","email":"ayshihanzhang@gmail.com","username":"shihanzhang"},"change_message_id":"2e60375db7c0f0d16dc6e70e8c97e8abfb16fbb0","unresolved":false,"context_lines":[{"line_number":1629,"context_line":"            LOG.info(_LI(\"Agent caught SIGTERM, quitting daemon loop.\"))"},{"line_number":1630,"context_line":"            self.run_daemon_loop \u003d False"},{"line_number":1631,"context_line":"            if self.quitting_rpc_timeout:"},{"line_number":1632,"context_line":"                self.set_rpc_timeout(self.quitting_rpc_timeout)"},{"line_number":1633,"context_line":"            self.catch_sigterm \u003d False"},{"line_number":1634,"context_line":"        if self.catch_sighup:"},{"line_number":1635,"context_line":"            LOG.info(_LI(\"Agent caught SIGHUP, resetting.\"))"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a41bdd9_20441a19","line":1632,"in_reply_to":"9a41bdd9_5d06e51d","updated":"2015-07-15 09:12:27.000000000","message":"thx for your remind","commit_id":"5da710f3a0cb0b62859381e592d2e088dced1d64"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"0ac29123c802e7bf09931b1f2dd80bedcad0f9fd","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self.run_daemon_loop \u003d True"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        self.catch_sigterm \u003d False"},{"line_number":293,"context_line":"        self.catch_sighup \u003d False"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # The initialization is complete; we can start receiving messages"},{"line_number":296,"context_line":"        self.connection.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_8952c133","line":293,"updated":"2015-07-16 03:14:17.000000000","message":"Nit: Instead of catch_sigxxx, a better choice might be: caught_sigxxx","commit_id":"bc38335d5899b0a8bf195e30e264ff01f166ec7f"},{"author":{"_account_id":14605,"name":"vikram.choudhary","email":"vikschw@gmail.com","username":"vikram.choudhary"},"change_message_id":"e7047d83b37a5b5609967b96e352c85bc69937ce","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self.run_daemon_loop \u003d True"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        self.catch_sigterm \u003d False"},{"line_number":293,"context_line":"        self.catch_sighup \u003d False"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        # The initialization is complete; we can start receiving messages"},{"line_number":296,"context_line":"        self.connection.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a41bdd9_d2adcee9","line":293,"in_reply_to":"9a41bdd9_8952c133","updated":"2015-07-16 04:47:54.000000000","message":"+1.","commit_id":"bc38335d5899b0a8bf195e30e264ff01f166ec7f"}]}
