)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"0531fb6d9768e3a4ef2245a4488c8004859248cb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yong Sheng Gong \u003cgongysh@unitedstack.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-09 21:14:43 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"move rpc_setup to the last step of __init__"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I58c966e2c8ee92c307b565932e867b5d1ec73b67"},{"line_number":10,"context_line":"Closes-Bug: #1259088"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F9o0g%3D","line":7,"updated":"2013-12-09 13:19:28.000000000","message":"Would be useful to elaborate on why this is being moved.","commit_id":"cc7b0f36cead7aedc70f89ab5e1d5606a3be764a"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0b6ae5ff081f62caf13390ffa8beb0a92edd45da","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yong Sheng Gong \u003cgongysh@unitedstack.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-09 21:14:43 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"move rpc_setup to the last step of __init__"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I58c966e2c8ee92c307b565932e867b5d1ec73b67"},{"line_number":10,"context_line":"Closes-Bug: #1259088"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F9owo%3D","line":7,"in_reply_to":"AAAATn%2F9o0g%3D","updated":"2013-12-09 13:26:11.000000000","message":"why not see bug description?","commit_id":"cc7b0f36cead7aedc70f89ab5e1d5606a3be764a"}],"neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"628d54a35aa0d1f6eb1b9f34a88770710cd5b4ad","unresolved":false,"context_lines":[{"line_number":793,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"        self.init_firewall()"},{"line_number":796,"context_line":"        # put the setup_rpc as the last thing to do in __init__ method"},{"line_number":797,"context_line":"        self.setup_rpc(interface_mappings.values())"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    def _report_state(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9knE%3D","line":796,"updated":"2013-12-10 04:09:31.000000000","message":"(Suggestion only) -\u003e Perform rpc initialization only once all other configuration is complete.","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"295ac12472cdb37159e5e849aa62b4309940868d","unresolved":false,"context_lines":[{"line_number":793,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":794,"context_line":""},{"line_number":795,"context_line":"        self.init_firewall()"},{"line_number":796,"context_line":"        # put the setup_rpc as the last thing to do in __init__ method"},{"line_number":797,"context_line":"        self.setup_rpc(interface_mappings.values())"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"    def _report_state(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kQs%3D","line":796,"in_reply_to":"AAAATn%2F9knE%3D","updated":"2013-12-10 06:28:08.000000000","message":"Done","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"628d54a35aa0d1f6eb1b9f34a88770710cd5b4ad","unresolved":false,"context_lines":[{"line_number":992,"context_line":""},{"line_number":993,"context_line":"    polling_interval \u003d cfg.CONF.AGENT.polling_interval"},{"line_number":994,"context_line":"    root_helper \u003d cfg.CONF.AGENT.root_helper"},{"line_number":995,"context_line":"    agent \u003d LinuxBridgeNeutronAgentRPC(interface_mappings,"},{"line_number":996,"context_line":"                                       polling_interval,"},{"line_number":997,"context_line":"                                       root_helper)"},{"line_number":998,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9knk%3D","line":995,"updated":"2013-12-10 04:09:31.000000000","message":"As much as I like to see cleanup, I\u0027d prefer to see unrelated non-functional changes broken into a separate patch.","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"295ac12472cdb37159e5e849aa62b4309940868d","unresolved":false,"context_lines":[{"line_number":992,"context_line":""},{"line_number":993,"context_line":"    polling_interval \u003d cfg.CONF.AGENT.polling_interval"},{"line_number":994,"context_line":"    root_helper \u003d cfg.CONF.AGENT.root_helper"},{"line_number":995,"context_line":"    agent \u003d LinuxBridgeNeutronAgentRPC(interface_mappings,"},{"line_number":996,"context_line":"                                       polling_interval,"},{"line_number":997,"context_line":"                                       root_helper)"},{"line_number":998,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kQo%3D","line":995,"in_reply_to":"AAAATn%2F9knk%3D","updated":"2013-12-10 06:28:08.000000000","message":"Done","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"628d54a35aa0d1f6eb1b9f34a88770710cd5b4ad","unresolved":false,"context_lines":[{"line_number":996,"context_line":"                                       polling_interval,"},{"line_number":997,"context_line":"                                       root_helper)"},{"line_number":998,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"},{"line_number":999,"context_line":"    agent.daemon_loop()"},{"line_number":1000,"context_line":"    sys.exit(0)"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kmc%3D","line":999,"updated":"2013-12-10 04:09:31.000000000","message":"ditto","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"295ac12472cdb37159e5e849aa62b4309940868d","unresolved":false,"context_lines":[{"line_number":996,"context_line":"                                       polling_interval,"},{"line_number":997,"context_line":"                                       root_helper)"},{"line_number":998,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"},{"line_number":999,"context_line":"    agent.daemon_loop()"},{"line_number":1000,"context_line":"    sys.exit(0)"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kQk%3D","line":999,"in_reply_to":"AAAATn%2F9kmc%3D","updated":"2013-12-10 06:28:08.000000000","message":"Done","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"}],"neutron/plugins/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"628d54a35aa0d1f6eb1b9f34a88770710cd5b4ad","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        # RPC network init"},{"line_number":254,"context_line":"        self.context \u003d context.get_admin_context_without_session()"},{"line_number":255,"context_line":"        # Security group agent support"},{"line_number":256,"context_line":"        self.sg_agent \u003d OVSSecurityGroupAgent(self.context,"},{"line_number":257,"context_line":"                                              self.plugin_rpc,"},{"line_number":258,"context_line":"                                              self.root_helper)"},{"line_number":259,"context_line":"        # Handle updates from service"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kms%3D","line":256,"updated":"2013-12-10 04:09:31.000000000","message":"I can see why it might be convenient to initialize this here, but setup_rpc() should stick to initializing rpc.  Initializing sg_agent belongs in __init__ after the call setup_rpc(), perhaps with a helpful comment documenting why.","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"295ac12472cdb37159e5e849aa62b4309940868d","unresolved":false,"context_lines":[{"line_number":253,"context_line":"        # RPC network init"},{"line_number":254,"context_line":"        self.context \u003d context.get_admin_context_without_session()"},{"line_number":255,"context_line":"        # Security group agent support"},{"line_number":256,"context_line":"        self.sg_agent \u003d OVSSecurityGroupAgent(self.context,"},{"line_number":257,"context_line":"                                              self.plugin_rpc,"},{"line_number":258,"context_line":"                                              self.root_helper)"},{"line_number":259,"context_line":"        # Handle updates from service"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kRI%3D","line":256,"in_reply_to":"AAAATn%2F9kms%3D","updated":"2013-12-10 06:28:08.000000000","message":"you can see easily that sa_agent is also for rpc communication. It needs the context, plugin rpc in this function.","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"628d54a35aa0d1f6eb1b9f34a88770710cd5b4ad","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"        # commands target xen dom0 rather than domU."},{"line_number":1286,"context_line":"        cfg.CONF.set_default(\u0027ip_lib_force_root\u0027, True)"},{"line_number":1287,"context_line":""},{"line_number":1288,"context_line":"    agent \u003d OVSNeutronAgent(**agent_config)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    # Start everything."},{"line_number":1291,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kmg%3D","line":1288,"updated":"2013-12-10 04:09:31.000000000","message":"ditto","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"295ac12472cdb37159e5e849aa62b4309940868d","unresolved":false,"context_lines":[{"line_number":1285,"context_line":"        # commands target xen dom0 rather than domU."},{"line_number":1286,"context_line":"        cfg.CONF.set_default(\u0027ip_lib_force_root\u0027, True)"},{"line_number":1287,"context_line":""},{"line_number":1288,"context_line":"    agent \u003d OVSNeutronAgent(**agent_config)"},{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    # Start everything."},{"line_number":1291,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kRE%3D","line":1288,"in_reply_to":"AAAATn%2F9kmg%3D","updated":"2013-12-10 06:28:08.000000000","message":"Done","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"628d54a35aa0d1f6eb1b9f34a88770710cd5b4ad","unresolved":false,"context_lines":[{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    # Start everything."},{"line_number":1291,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"},{"line_number":1292,"context_line":"    agent.daemon_loop()"},{"line_number":1293,"context_line":"    sys.exit(0)"},{"line_number":1294,"context_line":""},{"line_number":1295,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kmY%3D","line":1292,"updated":"2013-12-10 04:09:31.000000000","message":"ditto","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"295ac12472cdb37159e5e849aa62b4309940868d","unresolved":false,"context_lines":[{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    # Start everything."},{"line_number":1291,"context_line":"    LOG.info(_(\"Agent initialized successfully, now running... \"))"},{"line_number":1292,"context_line":"    agent.daemon_loop()"},{"line_number":1293,"context_line":"    sys.exit(0)"},{"line_number":1294,"context_line":""},{"line_number":1295,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9kRA%3D","line":1292,"in_reply_to":"AAAATn%2F9kmY%3D","updated":"2013-12-10 06:28:08.000000000","message":"Done","commit_id":"2003a3ed95ff361edd0fd76e560b6a9718d6d7b8"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"bf3196f01ccca5d75428a19bd6d23400276e4e47","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        # RPC network init"},{"line_number":255,"context_line":"        self.context \u003d context.get_admin_context_without_session()"},{"line_number":256,"context_line":"        # Security group agent support"},{"line_number":257,"context_line":"        self.sg_agent \u003d OVSSecurityGroupAgent(self.context,"},{"line_number":258,"context_line":"                                              self.plugin_rpc,"},{"line_number":259,"context_line":"                                              self.root_helper)"},{"line_number":260,"context_line":"        # Handle updates from service"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9hy4%3D","line":257,"updated":"2013-12-10 15:17:01.000000000","message":"Yes, sa_agent needs rpc to be initialized before it can be instantiated. But why should it should be created in setup_rpc()?","commit_id":"b25ed33bbf0deb888fc43c0e015060deddd35a8d"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"82ac6db3c8327f76e131c58cecebb0dcb19e0796","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        # RPC network init"},{"line_number":255,"context_line":"        self.context \u003d context.get_admin_context_without_session()"},{"line_number":256,"context_line":"        # Security group agent support"},{"line_number":257,"context_line":"        self.sg_agent \u003d OVSSecurityGroupAgent(self.context,"},{"line_number":258,"context_line":"                                              self.plugin_rpc,"},{"line_number":259,"context_line":"                                              self.root_helper)"},{"line_number":260,"context_line":"        # Handle updates from service"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9eF0%3D","line":257,"in_reply_to":"AAAATn%2F9eU0%3D","updated":"2013-12-11 06:39:49.000000000","message":"ok","commit_id":"b25ed33bbf0deb888fc43c0e015060deddd35a8d"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"60b1c287239b2e7d7c2dc14951305d6417f97132","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        # RPC network init"},{"line_number":255,"context_line":"        self.context \u003d context.get_admin_context_without_session()"},{"line_number":256,"context_line":"        # Security group agent support"},{"line_number":257,"context_line":"        self.sg_agent \u003d OVSSecurityGroupAgent(self.context,"},{"line_number":258,"context_line":"                                              self.plugin_rpc,"},{"line_number":259,"context_line":"                                              self.root_helper)"},{"line_number":260,"context_line":"        # Handle updates from service"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9eU0%3D","line":257,"in_reply_to":"AAAATn%2F9enM%3D","updated":"2013-12-11 05:49:10.000000000","message":"Fair enough.  Please replace the existing (and pointless) comment with one that makes it clear for maintainers that sg_agent needs to be instantiated prior to the rpc connection being brought up.","commit_id":"b25ed33bbf0deb888fc43c0e015060deddd35a8d"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"efc8c3a6c52d6b07a4d2694d63675c2503160351","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        # RPC network init"},{"line_number":255,"context_line":"        self.context \u003d context.get_admin_context_without_session()"},{"line_number":256,"context_line":"        # Security group agent support"},{"line_number":257,"context_line":"        self.sg_agent \u003d OVSSecurityGroupAgent(self.context,"},{"line_number":258,"context_line":"                                              self.plugin_rpc,"},{"line_number":259,"context_line":"                                              self.root_helper)"},{"line_number":260,"context_line":"        # Handle updates from service"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9enM%3D","line":257,"in_reply_to":"AAAATn%2F9hy4%3D","updated":"2013-12-11 03:56:19.000000000","message":"first sg_agent is for rpc, just like self.plugin_rpc, second once the rpc connection is built, it is likely the self.sg_agent is needed. So sg_agent must be instantiated before rpc connection establistment","commit_id":"b25ed33bbf0deb888fc43c0e015060deddd35a8d"}],"neutron/tests/unit/openvswitch/test_ovs_tunnel.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"0531fb6d9768e3a4ef2245a4488c8004859248cb","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        self.execute \u003d mock.patch(\u0027neutron.agent.linux.utils.execute\u0027).start()"},{"line_number":217,"context_line":"        self.execute_expected \u003d [mock.call([\u0027/sbin/udevadm\u0027, \u0027settle\u0027,"},{"line_number":218,"context_line":"                                            \u0027--timeout\u003d10\u0027])]"},{"line_number":219,"context_line":"        self.mock_int_bridge_expected +\u003d ["},{"line_number":220,"context_line":"            mock.call.get_local_port_mac()]"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _verify_mock_call(self, mock_obj, expected):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9o0A%3D","line":219,"updated":"2013-12-09 13:19:28.000000000","message":"How does this relate to the change set?","commit_id":"cc7b0f36cead7aedc70f89ab5e1d5606a3be764a"},{"author":{"_account_id":2874,"name":"yong sheng gong","email":"gong.yongsheng@99cloud.net","username":"gongysh"},"change_message_id":"0b6ae5ff081f62caf13390ffa8beb0a92edd45da","unresolved":false,"context_lines":[{"line_number":216,"context_line":"        self.execute \u003d mock.patch(\u0027neutron.agent.linux.utils.execute\u0027).start()"},{"line_number":217,"context_line":"        self.execute_expected \u003d [mock.call([\u0027/sbin/udevadm\u0027, \u0027settle\u0027,"},{"line_number":218,"context_line":"                                            \u0027--timeout\u003d10\u0027])]"},{"line_number":219,"context_line":"        self.mock_int_bridge_expected +\u003d ["},{"line_number":220,"context_line":"            mock.call.get_local_port_mac()]"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _verify_mock_call(self, mock_obj, expected):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9oxA%3D","line":219,"in_reply_to":"AAAATn%2F9o0A%3D","updated":"2013-12-09 13:26:11.000000000","message":"because I put the setup_rpc to end of __init__, so it changed.","commit_id":"cc7b0f36cead7aedc70f89ab5e1d5606a3be764a"}]}
