)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"60590eb92aab0bf0c132e7b23f1782df4a1fadf8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Eugene Nikanorov \u003cenikanorov@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-10-19 16:40:15 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Spawn dedicated rpc workers for state reports queue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By default spawn one additional rpc worker to process"},{"line_number":10,"context_line":"state report queue."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a29b11f_f6e363a2","line":7,"updated":"2015-10-21 12:18:23.000000000","message":"may also mention that the patch handles only ML2 plugin","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"8e014a1970fc98442fdac4a6cc76bba448ad5edc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Eugene Nikanorov \u003cenikanorov@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-10-19 16:40:15 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Spawn dedicated rpc workers for state reports queue"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"By default spawn one additional rpc worker to process"},{"line_number":10,"context_line":"state report queue."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3a29b11f_2ec2df34","line":7,"in_reply_to":"3a29b11f_f6e363a2","updated":"2015-10-21 13:50:21.000000000","message":"ok","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"}],"etc/neutron.conf":[{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"36b8f41e05ede2b35db265001b1626336c586a3d","unresolved":false,"context_lines":[{"line_number":312,"context_line":"# api_workers \u003d \u003cnumber of CPUs\u003e"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"# Number of separate RPC worker processes to spawn. If not specified or \u003c 1,"},{"line_number":315,"context_line":"# a single RPC worker process is spawned by the parent process."},{"line_number":316,"context_line":"# rpc_workers \u003d 1"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"# Timeout for client connections socket operations. If an"}],"source_content_type":"text/plain","patch_set":1,"id":"7a2fa921_aa5d094a","side":"PARENT","line":315,"updated":"2015-10-12 12:29:08.000000000","message":"not consistent with modern code anymore.","commit_id":"abe707eade29bca45bc16c545b007055758f5bbf"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"60590eb92aab0bf0c132e7b23f1782df4a1fadf8","unresolved":false,"context_lines":[{"line_number":314,"context_line":"# Number of separate RPC worker processes to spawn."},{"line_number":315,"context_line":"# rpc_workers \u003d 1"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"# Number of separate RPC worker processes for processing state report queue."},{"line_number":318,"context_line":"# rpc_state_report_workers \u003d 1"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"# Timeout for client connections socket operations. If an"}],"source_content_type":"text/plain","patch_set":4,"id":"3a29b11f_31756563","line":317,"updated":"2015-10-21 12:18:23.000000000","message":"may want to add a bit about why this might be needed to give admins more clue on this","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"8e014a1970fc98442fdac4a6cc76bba448ad5edc","unresolved":false,"context_lines":[{"line_number":314,"context_line":"# Number of separate RPC worker processes to spawn."},{"line_number":315,"context_line":"# rpc_workers \u003d 1"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"# Number of separate RPC worker processes for processing state report queue."},{"line_number":318,"context_line":"# rpc_state_report_workers \u003d 1"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"# Timeout for client connections socket operations. If an"}],"source_content_type":"text/plain","patch_set":4,"id":"3a29b11f_8ea21398","line":317,"in_reply_to":"3a29b11f_31756563","updated":"2015-10-21 13:50:21.000000000","message":"ok","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"}],"neutron/neutron_plugin_base_v2.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"6953519bffa82a6064478ed280c89e78ebc69c3a","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        .. note:: this method is optional, as it was not part of the originally"},{"line_number":384,"context_line":"                  defined plugin API."},{"line_number":385,"context_line":"        \"\"\""},{"line_number":386,"context_line":"        raise NotImplementedError()"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def rpc_workers_supported(self):"},{"line_number":389,"context_line":"        \"\"\"Return whether the plugin supports multiple RPC workers."}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_5e03c973","line":386,"updated":"2015-10-19 10:45:23.000000000","message":"this method tricks the hasattr check in service.py, doesn\u0027t it?","commit_id":"ae425a480d5b8144772cea3b5de654d6f9b7cf60"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"844a86da2a4c7bbbadbc460004163bedc2099313","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        .. note:: this method is optional, as it was not part of the originally"},{"line_number":384,"context_line":"                  defined plugin API."},{"line_number":385,"context_line":"        \"\"\""},{"line_number":386,"context_line":"        raise NotImplementedError()"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def rpc_workers_supported(self):"},{"line_number":389,"context_line":"        \"\"\"Return whether the plugin supports multiple RPC workers."}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_c7770c01","line":386,"in_reply_to":"3a29b11f_27704072","updated":"2015-10-19 11:51:11.000000000","message":"letting a user know the default configuration is not appropriate by showing a stacktrace doesn\u0027t sound great.\n\nit\u0027s better not to try to launch workers if the configured plugin doesn\u0027t support it.","commit_id":"ae425a480d5b8144772cea3b5de654d6f9b7cf60"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"9f40f3b9fbb9146bd5ff27956aa9f3c6733f4cb4","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        .. note:: this method is optional, as it was not part of the originally"},{"line_number":384,"context_line":"                  defined plugin API."},{"line_number":385,"context_line":"        \"\"\""},{"line_number":386,"context_line":"        raise NotImplementedError()"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def rpc_workers_supported(self):"},{"line_number":389,"context_line":"        \"\"\"Return whether the plugin supports multiple RPC workers."}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_27704072","line":386,"in_reply_to":"3a29b11f_5e03c973","updated":"2015-10-19 11:44:59.000000000","message":"Correct, it might be a good thing to let user/developer know that separate state report worker is useless for a core plugin that doesn\u0027t support that method.\nStack trace will be printed in logs rather than worker will silently quit.","commit_id":"ae425a480d5b8144772cea3b5de654d6f9b7cf60"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"38a9ff3a7927f66f797d0e794b9cfed2661c307e","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        .. note:: this method is optional, as it was not part of the originally"},{"line_number":384,"context_line":"                  defined plugin API."},{"line_number":385,"context_line":"        \"\"\""},{"line_number":386,"context_line":"        raise NotImplementedError()"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def rpc_workers_supported(self):"},{"line_number":389,"context_line":"        \"\"\"Return whether the plugin supports multiple RPC workers."}],"source_content_type":"text/x-python","patch_set":3,"id":"3a29b11f_0df9a580","line":386,"in_reply_to":"3a29b11f_c7770c01","updated":"2015-10-19 12:23:13.000000000","message":"ok, i think i\u0027ll make it similar to the check in service.py for rpc workers support.","commit_id":"ae425a480d5b8144772cea3b5de654d6f9b7cf60"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"60590eb92aab0bf0c132e7b23f1782df4a1fadf8","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        return (self.__class__.start_rpc_listeners !\u003d"},{"line_number":401,"context_line":"                NeutronPluginBaseV2.start_rpc_listeners)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def rpc_state_report_workers_supported(self):"},{"line_number":404,"context_line":"        \"\"\"Return whether the plugin supports state report RPC workers."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        .. note:: this method is optional, as it was not part of the originally"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_36d47bea","line":403,"updated":"2015-10-21 12:18:23.000000000","message":"not sure this should be part of plugin API, plugins are not supposed to override it right? Better make an util func in place where it\u0027s used","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"8e014a1970fc98442fdac4a6cc76bba448ad5edc","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        return (self.__class__.start_rpc_listeners !\u003d"},{"line_number":401,"context_line":"                NeutronPluginBaseV2.start_rpc_listeners)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def rpc_state_report_workers_supported(self):"},{"line_number":404,"context_line":"        \"\"\"Return whether the plugin supports state report RPC workers."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        .. note:: this method is optional, as it was not part of the originally"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_6e977748","line":403,"in_reply_to":"3a29b11f_36d47bea","updated":"2015-10-21 13:50:21.000000000","message":"it is the same as rpc_workers_supported (above), and it makes sense that it is a part of plugin api, because then we can make the check as below.","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"f309cdf9521589c80afecfa118141b18fa0cdf40","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        return (self.__class__.start_rpc_listeners !\u003d"},{"line_number":401,"context_line":"                NeutronPluginBaseV2.start_rpc_listeners)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def rpc_state_report_workers_supported(self):"},{"line_number":404,"context_line":"        \"\"\"Return whether the plugin supports state report RPC workers."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        .. note:: this method is optional, as it was not part of the originally"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a29b11f_ce5c8b7f","line":403,"in_reply_to":"3a29b11f_6e977748","updated":"2015-10-21 13:52:36.000000000","message":"ah, didn\u0027t notice rpc_workers_supported() above, ok","commit_id":"412291ad6e907e28ebff24ca2bd120ad70984acf"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"cbcf5ba28c718f9d514306bbea20cadd61a8e101","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.conn \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":192,"context_line":"        self.conn.create_consumer(self.topic, self.endpoints, fanout\u003dFalse)"},{"line_number":193,"context_line":"        # process state reports despite dedicated rpc workers"},{"line_number":194,"context_line":"        self.conn.create_consumer(topics.REPORTS,"},{"line_number":195,"context_line":"                                  [agents_db.AgentExtRpcCallback()],"},{"line_number":196,"context_line":"                                  fanout\u003dFalse)"},{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a2fa921_6e161357","line":194,"updated":"2015-10-13 19:31:18.000000000","message":"why is this also done below.","commit_id":"7d50b7018811a4790e9ae0b7188a50c6eca605b7"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"8323877b81f68afba85fdece8c44967f43ca0292","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.conn \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":192,"context_line":"        self.conn.create_consumer(self.topic, self.endpoints, fanout\u003dFalse)"},{"line_number":193,"context_line":"        # process state reports despite dedicated rpc workers"},{"line_number":194,"context_line":"        self.conn.create_consumer(topics.REPORTS,"},{"line_number":195,"context_line":"                                  [agents_db.AgentExtRpcCallback()],"},{"line_number":196,"context_line":"                                  fanout\u003dFalse)"},{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_1cc23d86","line":194,"in_reply_to":"5a2ca52d_395aab84","updated":"2015-10-13 19:49:01.000000000","message":"this, however, might not be exactly what we want...","commit_id":"7d50b7018811a4790e9ae0b7188a50c6eca605b7"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"dd13a7973c713bffae6606d206f67748bc7963ae","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.conn \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":192,"context_line":"        self.conn.create_consumer(self.topic, self.endpoints, fanout\u003dFalse)"},{"line_number":193,"context_line":"        # process state reports despite dedicated rpc workers"},{"line_number":194,"context_line":"        self.conn.create_consumer(topics.REPORTS,"},{"line_number":195,"context_line":"                                  [agents_db.AgentExtRpcCallback()],"},{"line_number":196,"context_line":"                                  fanout\u003dFalse)"},{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a2ca52d_395aab84","line":194,"in_reply_to":"7a2fa921_6e161357","updated":"2015-10-13 19:39:50.000000000","message":"So that even if no additional rpc workers are configured, REPORTS queue is still consumed.","commit_id":"7d50b7018811a4790e9ae0b7188a50c6eca605b7"},{"author":{"_account_id":8788,"name":"Miguel Angel Ajo","email":"mangelajo@redhat.com","username":"mangelajo"},"change_message_id":"ec760480975a8ee50caf4b01256935a058159986","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.conn \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":192,"context_line":"        self.conn.create_consumer(self.topic, self.endpoints, fanout\u003dFalse)"},{"line_number":193,"context_line":"        # process state reports despite dedicated rpc workers"},{"line_number":194,"context_line":"        self.conn.create_consumer(topics.REPORTS,"},{"line_number":195,"context_line":"                                  [agents_db.AgentExtRpcCallback()],"},{"line_number":196,"context_line":"                                  fanout\u003dFalse)"},{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_ebdab5e7","line":194,"updated":"2015-10-15 15:44:50.000000000","message":"shouldn\u0027t we make this conditional on having a separate rpc listener on reports?,\n\nWell, technically it would be ok, once the message is fetched it would be processed..... the code is simpler, so..","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"423b105a0e749a6c71bc7c3658122f48b5bd7b74","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.conn \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":192,"context_line":"        self.conn.create_consumer(self.topic, self.endpoints, fanout\u003dFalse)"},{"line_number":193,"context_line":"        # process state reports despite dedicated rpc workers"},{"line_number":194,"context_line":"        self.conn.create_consumer(topics.REPORTS,"},{"line_number":195,"context_line":"                                  [agents_db.AgentExtRpcCallback()],"},{"line_number":196,"context_line":"                                  fanout\u003dFalse)"},{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_8f01ad3a","line":194,"in_reply_to":"5a2ca52d_ebdab5e7","updated":"2015-10-16 07:52:50.000000000","message":"Yes, in fact, additional listeners will do no harm.\nIf a message is fetched, then it\u0027s processed.\nIf it\u0027s not fetched by a regular rpc workers - it will be fetched by dedicated workers.","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"52cb18c38fd1064f16f3e049ba9832a9e0d36df9","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def start_rpc_state_reports_listener(self):"},{"line_number":200,"context_line":"        self._setup_rpc()"},{"line_number":201,"context_line":"        self.conn_reports \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":202,"context_line":"        self.conn_reports.create_consumer(topics.REPORTS,"},{"line_number":203,"context_line":"                                          [agents_db.AgentExtRpcCallback()],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_2665121d","line":200,"updated":"2015-10-16 14:39:37.000000000","message":"is _setup_rpc necessary?","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"83617989df8d0772fe727782e930bc0f7450bbe2","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        return self.conn.consume_in_threads()"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def start_rpc_state_reports_listener(self):"},{"line_number":200,"context_line":"        self._setup_rpc()"},{"line_number":201,"context_line":"        self.conn_reports \u003d n_rpc.create_connection(new\u003dTrue)"},{"line_number":202,"context_line":"        self.conn_reports.create_consumer(topics.REPORTS,"},{"line_number":203,"context_line":"                                          [agents_db.AgentExtRpcCallback()],"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_035a432a","line":200,"in_reply_to":"5a2ca52d_2665121d","updated":"2015-10-16 15:38:03.000000000","message":"no, will remove","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"}],"neutron/service.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"52cb18c38fd1064f16f3e049ba9832a9e0d36df9","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class RpcReportsWorker(RpcWorker):"},{"line_number":175,"context_line":"    start_listeners_method \u003d \u0027start_rpc_state_reports_listener\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"def serve_rpc():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_a64da23f","line":175,"updated":"2015-10-16 14:39:37.000000000","message":"can you document this in NeutronPluginBaseV2 or somewhere appropriate?","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"83617989df8d0772fe727782e930bc0f7450bbe2","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"class RpcReportsWorker(RpcWorker):"},{"line_number":175,"context_line":"    start_listeners_method \u003d \u0027start_rpc_state_reports_listener\u0027"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"def serve_rpc():"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_c00be128","line":175,"in_reply_to":"5a2ca52d_a64da23f","updated":"2015-10-16 15:38:03.000000000","message":"ok","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"52cb18c38fd1064f16f3e049ba9832a9e0d36df9","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        LOG.debug(\u0027using launcher for state reports rpc, workers\u003d%s\u0027,"},{"line_number":211,"context_line":"                  cfg.CONF.rpc_state_report_workers)"},{"line_number":212,"context_line":"        launcher.launch_service("},{"line_number":213,"context_line":"            rpc_state_rep, workers\u003dcfg.CONF.rpc_state_report_workers)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        return launcher"},{"line_number":216,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_065d7678","line":213,"updated":"2015-10-16 14:39:37.000000000","message":"how about launching the service only if the plugin have start_rpc_state_reports_listener?","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"83617989df8d0772fe727782e930bc0f7450bbe2","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        LOG.debug(\u0027using launcher for state reports rpc, workers\u003d%s\u0027,"},{"line_number":211,"context_line":"                  cfg.CONF.rpc_state_report_workers)"},{"line_number":212,"context_line":"        launcher.launch_service("},{"line_number":213,"context_line":"            rpc_state_rep, workers\u003dcfg.CONF.rpc_state_report_workers)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        return launcher"},{"line_number":216,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a2ca52d_633217f4","line":213,"in_reply_to":"5a2ca52d_065d7678","updated":"2015-10-16 15:38:03.000000000","message":"This is already checked, see line 141","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"a00dbc26accd453ecb244f697755b8e553507c02","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        LOG.debug(\u0027using launcher for state reports rpc, workers\u003d%s\u0027,"},{"line_number":211,"context_line":"                  cfg.CONF.rpc_state_report_workers)"},{"line_number":212,"context_line":"        launcher.launch_service("},{"line_number":213,"context_line":"            rpc_state_rep, workers\u003dcfg.CONF.rpc_state_report_workers)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"        return launcher"},{"line_number":216,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a29b11f_bef1bdcf","line":213,"in_reply_to":"5a2ca52d_633217f4","updated":"2015-10-19 10:40:35.000000000","message":"doen\u0027t it still launch the service which does nothing useful?","commit_id":"c56a0f13104725f7c5123636eda29beffae073ca"}]}
