)]}'
{"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_ryuapp.py":[{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"98cb0adc1642d1da96e909e9917dd9ce95ab6c47","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":35,"context_line":"    ovs_agent.main(bridge_classes)"},{"line_number":36,"context_line":"    app_manager.AppManager.get_instance().close()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class OVSNeutronAgentRyuApp(app_manager.RyuApp):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_22488bb2","line":36,"updated":"2015-12-14 09:31:08.000000000","message":"if you want to terminate ofp handler,\nwhy don\u0027t you introduce the functionality,\nrather than abusing AppManager.close?","commit_id":"bacfbd39643f6e93d67efa13988a6698d004d7b7"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"e6a35b2cabfa3eaf1e79fae832c4f34a4ba23744","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":35,"context_line":"    ovs_agent.main(bridge_classes)"},{"line_number":36,"context_line":"    app_manager.AppManager.get_instance().close()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class OVSNeutronAgentRyuApp(app_manager.RyuApp):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a710552_0aee818b","line":36,"in_reply_to":"7a740942_22488bb2","updated":"2015-12-15 01:30:43.000000000","message":"Though Ryu\u0027s documentation is not very clear on this, I think AppManager.close and RyuApp.close are legitimate teardown functions and don\u0027t feel need to coin another function.","commit_id":"bacfbd39643f6e93d67efa13988a6698d004d7b7"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"028c1fa0529c3e8b60e22215712bc95858787620","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":35,"context_line":"    ovs_agent.main(bridge_classes)"},{"line_number":36,"context_line":"    app_manager.AppManager.get_instance().close()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class OVSNeutronAgentRyuApp(app_manager.RyuApp):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a7e1126_06f747d4","line":36,"updated":"2015-12-17 10:20:43.000000000","message":"can you add a comment to explain why explicit close() is necessary?","commit_id":"42f5d858e8151d637e0bbb81997d0a80d33bfc3b"},{"author":{"_account_id":9200,"name":"IWAMOTO Toshihiro","email":"iwamoto@valinux.co.jp","username":"toshii"},"change_message_id":"4e84c7037b2f514a6403090791ddeaa523617907","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def agent_main_wrapper(bridge_classes):"},{"line_number":35,"context_line":"    ovs_agent.main(bridge_classes)"},{"line_number":36,"context_line":"    app_manager.AppManager.get_instance().close()"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class OVSNeutronAgentRyuApp(app_manager.RyuApp):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a7b0d38_6cc5b23a","line":36,"in_reply_to":"3a7e1126_06f747d4","updated":"2015-12-24 06:15:31.000000000","message":"Done","commit_id":"42f5d858e8151d637e0bbb81997d0a80d33bfc3b"}]}
