)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14039,"name":"watanabe isao","email":"watanabe.isao.openstack@gmail.com","username":"watanabe.isao"},"change_message_id":"17df4b0d2a9ca17de4895b600a7523897f4c4999","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gandharva \u003cgandharva.s@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-02-13 21:08:45 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"If ovs is dead, ovs_neutron_agent booting up code should exit gracefully"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, ovs_neutron_agent doesn\u0027t check whether ovs module is dead"},{"line_number":10,"context_line":"during its boot up process that leads to an ungraceful exit."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da86d52c_8bc8fba9","line":7,"updated":"2015-02-13 16:49:36.000000000","message":"Tittle should less than 50 characters. After that each line should less than 72 characters. Also, make the article simply is always good.\n\nEnjoy your first contribute. Hope this merged. :-)","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"bfd90cdd5788388f7021f6d1610d5ba2778b3159","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gandharva \u003cgandharva.s@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-02-13 21:08:45 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"If ovs is dead, ovs_neutron_agent booting up code should exit gracefully"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, ovs_neutron_agent doesn\u0027t check whether ovs module is dead"},{"line_number":10,"context_line":"during its boot up process that leads to an ungraceful exit."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"da86d52c_b67fccaa","line":7,"in_reply_to":"da86d52c_8bc8fba9","updated":"2015-02-15 07:28:35.000000000","message":"Done","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"90589a8bf02bf80ce60768546a73183e9fc659bb","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"In this patch set if the ovs services are dead, then it displays the"},{"line_number":13,"context_line":"status of ovs module, waits for ovs module to start and terminates"},{"line_number":14,"context_line":"q-agt service after waiting for a while."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Closes-Bug: #1351135"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"da86d52c_71bf27ab","line":14,"updated":"2015-02-14 07:31:55.000000000","message":"q-agt ----\u003e ovs_neutron_agent","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"d94148fbbc9cd0d71e9058c6e39a8795678b7719","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs_neutron_agent should exit gracefully"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In this patch set if any error occurs during agent intialization"},{"line_number":10,"context_line":"phase, then it terminates ovs neutron agent gracefully."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1351135"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"da86d52c_6f107800","line":9,"updated":"2015-02-19 10:42:31.000000000","message":"nit: intialization--\u003einitialization","commit_id":"2ba35ed0c44ae2ebfec94f5a1eef4ba03190c7fd"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"9a48cae42de049aaf50887ccf21114a37b4464be","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Gandharva \u003cgandharva.s@hp.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-03-02 06:50:59 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ovs_neutron_agent should exit gracefully."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In this patch set if any error occurs during agent initialization"},{"line_number":10,"context_line":"phase, then it terminates ovs neutron agent gracefully."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba7be1f8_5877709f","line":7,"updated":"2015-03-02 07:00:11.000000000","message":"Heading shouldn\u0027t end with periods.\n\nThis is the correct heading:\n\"ovs_neutron_agent should exit gracefully\"\n\nKindly, revert the heading as it was there in PS13.","commit_id":"e70e028a5f41b2d1c8e5f2bc3e7bb11611a2edd5"}],"neutron/plugins/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"45d8aa02a2354aefbd18c3365490aee2f2a4a9e5","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                               self.enable_distributed_routing},"},{"line_number":183,"context_line":"            \u0027agent_type\u0027: q_const.AGENT_TYPE_OVS,"},{"line_number":184,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":185,"context_line":"        # Chechk wheteher ovs is running during ovs startup"},{"line_number":186,"context_line":"        match_stat \u003d \"not running\""},{"line_number":187,"context_line":"        status_proc \u003d subprocess.Popen([cfg.CONF.OVS.ovs_status_path],"},{"line_number":188,"context_line":"                                       stdout\u003dsubprocess.PIPE, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_11049516","line":185,"updated":"2015-02-05 08:58:16.000000000","message":"correct the spelling mistakes\n\nchechk --\u003e check\n\nwheteher --\u003e whether\n\n# Check whether OVS is running during ovs_neutron_agent startup.\n\nCan you use the actual output msg instead of matching with match_stat?","commit_id":"2583db9cd587e4834f83971b693c73c1eaaf9e89"},{"author":{"_account_id":12955,"name":"Aman Kumar","email":"aman.kumar3@hpe.com","username":"amank"},"change_message_id":"f86ffb5ebb5f2b8a9795dd4b8b0a98494c9272ef","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                               self.enable_distributed_routing},"},{"line_number":183,"context_line":"            \u0027agent_type\u0027: q_const.AGENT_TYPE_OVS,"},{"line_number":184,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":185,"context_line":"        # Chechk wheteher ovs is running during ovs startup"},{"line_number":186,"context_line":"        match_stat \u003d \"not running\""},{"line_number":187,"context_line":"        status_proc \u003d subprocess.Popen([cfg.CONF.OVS.ovs_status_path],"},{"line_number":188,"context_line":"                                       stdout\u003dsubprocess.PIPE, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_210f86e2","line":185,"in_reply_to":"da86d52c_11049516","updated":"2015-02-05 09:02:09.000000000","message":"+1","commit_id":"2583db9cd587e4834f83971b693c73c1eaaf9e89"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"3985e12a4cd44b58a7343582b993f4dd190ed2c2","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                               self.enable_distributed_routing},"},{"line_number":183,"context_line":"            \u0027agent_type\u0027: q_const.AGENT_TYPE_OVS,"},{"line_number":184,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":185,"context_line":"        # Chechk wheteher ovs is running during ovs startup"},{"line_number":186,"context_line":"        match_stat \u003d \"not running\""},{"line_number":187,"context_line":"        status_proc \u003d subprocess.Popen([cfg.CONF.OVS.ovs_status_path],"},{"line_number":188,"context_line":"                                       stdout\u003dsubprocess.PIPE, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_745db178","line":185,"in_reply_to":"da86d52c_11049516","updated":"2015-02-05 15:05:45.000000000","message":"We cannot use the original output message as the q-agt should check for both ovsdb and ovsvswitchd service to be active.","commit_id":"2583db9cd587e4834f83971b693c73c1eaaf9e89"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"61a91496c867375397aeb5ffcc41a209e155192c","unresolved":false,"context_lines":[{"line_number":182,"context_line":"                               self.enable_distributed_routing},"},{"line_number":183,"context_line":"            \u0027agent_type\u0027: q_const.AGENT_TYPE_OVS,"},{"line_number":184,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":185,"context_line":"        # Chechk wheteher ovs is running during ovs startup"},{"line_number":186,"context_line":"        match_stat \u003d \"not running\""},{"line_number":187,"context_line":"        status_proc \u003d subprocess.Popen([cfg.CONF.OVS.ovs_status_path],"},{"line_number":188,"context_line":"                                       stdout\u003dsubprocess.PIPE, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_7bd4c7eb","line":185,"in_reply_to":"da86d52c_210f86e2","updated":"2015-02-05 12:01:28.000000000","message":"Done","commit_id":"2583db9cd587e4834f83971b693c73c1eaaf9e89"},{"author":{"_account_id":12955,"name":"Aman Kumar","email":"aman.kumar3@hpe.com","username":"amank"},"change_message_id":"1fcd2323e43c31baa3c66c37e679407077838029","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":185,"context_line":"        # Check whether ovs module is running during ovs_neutron_agent startup"},{"line_number":186,"context_line":"        status_proc \u003d q_utils.subprocess_popen(cfg.CONF.OVS.ovs_status_path,"},{"line_number":187,"context_line":"                                               stdout\u003dsubprocess.PIPE, shell\u003dTrue)"},{"line_number":188,"context_line":"        (output, err) \u003d status_proc.communicate()"},{"line_number":189,"context_line":"        check_ovs_status \u003d output.find(\"not running\")"},{"line_number":190,"context_line":"        if check_ovs_status:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_7ba687af","line":187,"updated":"2015-02-05 11:58:08.000000000","message":"line is too long, i think pep8 will give error.","commit_id":"9cee99b1c5a46b7ef5350d47d5cedf9f3b932350"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"435f0c5707686358486433845db23fa7459f5e1a","unresolved":false,"context_lines":[{"line_number":184,"context_line":"            \u0027start_flag\u0027: True}"},{"line_number":185,"context_line":"        # Check whether ovs module is running during ovs_neutron_agent startup"},{"line_number":186,"context_line":"        status_proc \u003d q_utils.subprocess_popen(cfg.CONF.OVS.ovs_status_path,"},{"line_number":187,"context_line":"                                               stdout\u003dsubprocess.PIPE, shell\u003dTrue)"},{"line_number":188,"context_line":"        (output, err) \u003d status_proc.communicate()"},{"line_number":189,"context_line":"        check_ovs_status \u003d output.find(\"not running\")"},{"line_number":190,"context_line":"        if check_ovs_status:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_1b0bcb8e","line":187,"in_reply_to":"da86d52c_7ba687af","updated":"2015-02-05 12:01:42.000000000","message":"Done","commit_id":"9cee99b1c5a46b7ef5350d47d5cedf9f3b932350"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"f8de7d80ea053bc6ab34669c82a6306e50ce3e07","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        self.int_br_device_count \u003d 0"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":189,"context_line":"        # Checks whether ovs module is running during ovs_neutron_agent startup"},{"line_number":190,"context_line":"        # if not then waits for ovs module to start"},{"line_number":191,"context_line":"        while True:"},{"line_number":192,"context_line":"            ovs_status \u003d self.check_ovs_status()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_09d2ce5b","line":189,"updated":"2015-02-11 12:05:49.000000000","message":"nit: check","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"4db51181e4659ebbf7239ce491e6a739957b4872","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        self.int_br_device_count \u003d 0"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":189,"context_line":"        # Checks whether ovs module is running during ovs_neutron_agent startup"},{"line_number":190,"context_line":"        # if not then waits for ovs module to start"},{"line_number":191,"context_line":"        while True:"},{"line_number":192,"context_line":"            ovs_status \u003d self.check_ovs_status()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_803a9a96","line":189,"in_reply_to":"da86d52c_09d2ce5b","updated":"2015-02-13 16:08:53.000000000","message":"Done","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"f8de7d80ea053bc6ab34669c82a6306e50ce3e07","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":189,"context_line":"        # Checks whether ovs module is running during ovs_neutron_agent startup"},{"line_number":190,"context_line":"        # if not then waits for ovs module to start"},{"line_number":191,"context_line":"        while True:"},{"line_number":192,"context_line":"            ovs_status \u003d self.check_ovs_status()"},{"line_number":193,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_49c846a8","line":190,"updated":"2015-02-11 12:05:49.000000000","message":"nit: wait","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"4db51181e4659ebbf7239ce491e6a739957b4872","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":189,"context_line":"        # Checks whether ovs module is running during ovs_neutron_agent startup"},{"line_number":190,"context_line":"        # if not then waits for ovs module to start"},{"line_number":191,"context_line":"        while True:"},{"line_number":192,"context_line":"            ovs_status \u003d self.check_ovs_status()"},{"line_number":193,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_a03f9e86","line":190,"in_reply_to":"da86d52c_49c846a8","updated":"2015-02-13 16:08:53.000000000","message":"Done","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"3e3c907e48b7a1ed2c7fa25f7cd915e96704acbf","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":194,"context_line":"                pass"},{"line_number":195,"context_line":"            else:"},{"line_number":196,"context_line":"                break"},{"line_number":197,"context_line":"        self.setup_integration_br()"},{"line_number":198,"context_line":"        # Stores port update notifications for processing in main rpc loop"},{"line_number":199,"context_line":"        self.updated_ports \u003d set()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_ccd1b258","line":196,"updated":"2015-02-11 04:28:30.000000000","message":"This loop needs some bounds, spinning forever is bad, it needs to give up after a while.  It should also sleep each time for a second or two and print a message about what it\u0027s doing.  See\nget_dvr_mac_address_with_retry() in the OVS DVR agent for an example of a retry loop that was recently added.","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"6d2a3da4ef56a941ae81e28fdf60fef8e74c2cc4","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":194,"context_line":"                pass"},{"line_number":195,"context_line":"            else:"},{"line_number":196,"context_line":"                break"},{"line_number":197,"context_line":"        self.setup_integration_br()"},{"line_number":198,"context_line":"        # Stores port update notifications for processing in main rpc loop"},{"line_number":199,"context_line":"        self.updated_ports \u003d set()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_1a0cceec","line":196,"in_reply_to":"da86d52c_ccd1b258","updated":"2015-02-11 13:25:25.000000000","message":"Can you please suggest me the time bound that i can use for looping. I will try to set sleep time to polling interval time. The call to check_ovs_status() will print the message in the above code.","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"4db51181e4659ebbf7239ce491e6a739957b4872","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":194,"context_line":"                pass"},{"line_number":195,"context_line":"            else:"},{"line_number":196,"context_line":"                break"},{"line_number":197,"context_line":"        self.setup_integration_br()"},{"line_number":198,"context_line":"        # Stores port update notifications for processing in main rpc loop"},{"line_number":199,"context_line":"        self.updated_ports \u003d set()"}],"source_content_type":"text/x-python","patch_set":6,"id":"da86d52c_e048b630","line":196,"in_reply_to":"da86d52c_ccd1b258","updated":"2015-02-13 16:08:53.000000000","message":"Done","commit_id":"c6bce44acce87a999059958bc63298ba670529ab"},{"author":{"_account_id":14039,"name":"watanabe isao","email":"watanabe.isao.openstack@gmail.com","username":"watanabe.isao"},"change_message_id":"17df4b0d2a9ca17de4895b600a7523897f4c4999","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":192,"context_line":"        self.polling_interval \u003d polling_interval"},{"line_number":193,"context_line":"        # Check whether ovs module is running during ovs_neutron_agent startup"},{"line_number":194,"context_line":"        # if not then wait for ovs module to start"},{"line_number":195,"context_line":"        self.check_ovs_started()"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.setup_integration_br()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_ebc41743","line":194,"updated":"2015-02-13 16:49:36.000000000","message":"About this comment. Maybe check_ovs_started is quite self-evidence enough. But whatever. There are so many comments in this module already.","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"bfd90cdd5788388f7021f6d1610d5ba2778b3159","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":192,"context_line":"        self.polling_interval \u003d polling_interval"},{"line_number":193,"context_line":"        # Check whether ovs module is running during ovs_neutron_agent startup"},{"line_number":194,"context_line":"        # if not then wait for ovs module to start"},{"line_number":195,"context_line":"        self.check_ovs_started()"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.setup_integration_br()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_9672c8e1","line":194,"in_reply_to":"da86d52c_ebc41743","updated":"2015-02-15 07:28:35.000000000","message":"Done","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"88528f634b1745550674e53e7afeb1d03fe83c5e","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":192,"context_line":"        self.polling_interval \u003d polling_interval"},{"line_number":193,"context_line":"        # Check whether ovs module is running during ovs_neutron_agent startup"},{"line_number":194,"context_line":"        # if not then wait for ovs module to start"},{"line_number":195,"context_line":"        self.check_ovs_started()"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        self.setup_integration_br()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_667cdeec","line":194,"in_reply_to":"da86d52c_ebc41743","updated":"2015-02-13 17:02:31.000000000","message":"OK will try to remove. :-)","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f4ec1fb286adbd7017726bf4fdc58625243a2cf1","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":276,"context_line":"                loop_elapsed_time \u003d time.time() - start_time"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"                if loop_elapsed_time \u003c self.polling_interval:"},{"line_number":279,"context_line":"                    time.sleep(self.polling_interval - loop_elapsed_time)"},{"line_number":280,"context_line":"                    start_time \u003d time.time()"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_34ef6beb","line":278,"updated":"2015-02-13 19:38:37.000000000","message":"I actually don\u0027t think all this extra code to figure out the time spent in check_ovs_status() is that useful.  If it returned OVS_DEAD just sleep for 3 seconds and retry.  And since 3*20 is a minute, that seems like a reasonable time to wait.  Plus the user could have specified a longer polling_interval value so I don\u0027t think it should be used.","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"bfd90cdd5788388f7021f6d1610d5ba2778b3159","unresolved":false,"context_lines":[{"line_number":275,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":276,"context_line":"                loop_elapsed_time \u003d time.time() - start_time"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"                if loop_elapsed_time \u003c self.polling_interval:"},{"line_number":279,"context_line":"                    time.sleep(self.polling_interval - loop_elapsed_time)"},{"line_number":280,"context_line":"                    start_time \u003d time.time()"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_366cbc08","line":278,"in_reply_to":"da86d52c_34ef6beb","updated":"2015-02-15 07:28:35.000000000","message":"Done","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"d9f3de3dda38043ac7a5e007ef79b24960b366db","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"                if loop_elapsed_time \u003c self.polling_interval:"},{"line_number":279,"context_line":"                    time.sleep(self.polling_interval - loop_elapsed_time)"},{"line_number":280,"context_line":"                    start_time \u003d time.time()"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                if retry_count \u003d\u003d 19:"},{"line_number":283,"context_line":"                    LOG.warn(_LW(\"Waited 20 attempts for ovs to start.\""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_00114553","line":280,"updated":"2015-02-13 17:47:34.000000000","message":"Put LOG.info(_LI(\"Retrying to check ovs status\")) here.","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"bfd90cdd5788388f7021f6d1610d5ba2778b3159","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"                if loop_elapsed_time \u003c self.polling_interval:"},{"line_number":279,"context_line":"                    time.sleep(self.polling_interval - loop_elapsed_time)"},{"line_number":280,"context_line":"                    start_time \u003d time.time()"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                if retry_count \u003d\u003d 19:"},{"line_number":283,"context_line":"                    LOG.warn(_LW(\"Waited 20 attempts for ovs to start.\""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_567130df","line":280,"in_reply_to":"da86d52c_00114553","updated":"2015-02-15 07:28:35.000000000","message":"Done","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"d9f3de3dda38043ac7a5e007ef79b24960b366db","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                if retry_count \u003d\u003d 19:"},{"line_number":283,"context_line":"                    LOG.warn(_LW(\"Waited 20 attempts for ovs to start.\""},{"line_number":284,"context_line":"                                 \"Closing q-agt service.\"))"},{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_8c42d166","line":284,"updated":"2015-02-13 17:47:34.000000000","message":"q-agt is used in devstack, remove this.\n\nLOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"bfd90cdd5788388f7021f6d1610d5ba2778b3159","unresolved":false,"context_lines":[{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                if retry_count \u003d\u003d 19:"},{"line_number":283,"context_line":"                    LOG.warn(_LW(\"Waited 20 attempts for ovs to start.\""},{"line_number":284,"context_line":"                                 \"Closing q-agt service.\"))"},{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_767554cb","line":284,"in_reply_to":"da86d52c_8c42d166","updated":"2015-02-15 07:28:35.000000000","message":"Done","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14039,"name":"watanabe isao","email":"watanabe.isao.openstack@gmail.com","username":"watanabe.isao"},"change_message_id":"17df4b0d2a9ca17de4895b600a7523897f4c4999","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                if retry_count \u003d\u003d 19:"},{"line_number":283,"context_line":"                    LOG.warn(_LW(\"Waited 20 attempts for ovs to start.\""},{"line_number":284,"context_line":"                                 \"Closing q-agt service.\"))"},{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_e6be0e00","line":285,"updated":"2015-02-13 16:49:36.000000000","message":"So far, have not seen anyone using this. So you want to stop neutron here?","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"88528f634b1745550674e53e7afeb1d03fe83c5e","unresolved":false,"context_lines":[{"line_number":282,"context_line":"                if retry_count \u003d\u003d 19:"},{"line_number":283,"context_line":"                    LOG.warn(_LW(\"Waited 20 attempts for ovs to start.\""},{"line_number":284,"context_line":"                                 \"Closing q-agt service.\"))"},{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_8658f28b","line":285,"in_reply_to":"da86d52c_e6be0e00","updated":"2015-02-13 17:02:31.000000000","message":"Yeah if we dont stop it explicitly it will try to create int_br and end up giving many lines of error as explained in the bug.","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"d9f3de3dda38043ac7a5e007ef79b24960b366db","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def _report_state(self):"},{"line_number":290,"context_line":"        # How many devices are likely used by a VM"},{"line_number":291,"context_line":"        self.agent_state.get(\u0027configurations\u0027)[\u0027devices\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_8ce651af","line":288,"updated":"2015-02-13 17:47:34.000000000","message":"If would insist you to use:\n     \n     for retry_count in reversed(range(20))\n       -----\n        ------\n          -----\n            if retry_count \u003e 0:\n                -----raise SystemExit(1)","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"5fe5d3a11aec20088b48b5d5e0fc66e124ca056f","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def _report_state(self):"},{"line_number":290,"context_line":"        # How many devices are likely used by a VM"},{"line_number":291,"context_line":"        self.agent_state.get(\u0027configurations\u0027)[\u0027devices\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_e0a2714a","line":288,"in_reply_to":"da86d52c_8ce651af","updated":"2015-02-13 18:09:02.000000000","message":"sys.exit() is just a short hand for SystemExit(). Do you want me to exit the iteration on the first loop itself. Please reverify the construct you have insisted, it ends the loop on first iteration itself.","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"afded7fb84302f34d10a5685626d39784428c80f","unresolved":false,"context_lines":[{"line_number":285,"context_line":"                    sys.exit()"},{"line_number":286,"context_line":"            else:"},{"line_number":287,"context_line":"                break"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"    def _report_state(self):"},{"line_number":290,"context_line":"        # How many devices are likely used by a VM"},{"line_number":291,"context_line":"        self.agent_state.get(\u0027configurations\u0027)[\u0027devices\u0027] \u003d ("}],"source_content_type":"text/x-python","patch_set":7,"id":"da86d52c_d9380840","line":288,"in_reply_to":"da86d52c_e0a2714a","updated":"2015-02-13 19:14:23.000000000","message":"My bad reverse the condition :)","commit_id":"a09b4c4c5aa72880d6d39e86bb21b0c7e50101d1"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"90589a8bf02bf80ce60768546a73183e9fc659bb","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        self.int_br_device_count \u003d 0"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":192,"context_line":"        self.check_ovs_started()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        self.setup_integration_br()"},{"line_number":195,"context_line":"        # Stores port update notifications for processing in main rpc loop"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_b1b99fcd","line":192,"updated":"2015-02-14 07:31:55.000000000","message":"Can we check this in def main()?","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"c1fc318934d23a6b0b3b6dbc6eb76413636c09b8","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        self.int_br_device_count \u003d 0"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        self.int_br \u003d ovs_lib.OVSBridge(integ_br, self.root_helper)"},{"line_number":192,"context_line":"        self.check_ovs_started()"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        self.setup_integration_br()"},{"line_number":195,"context_line":"        # Stores port update notifications for processing in main rpc loop"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_9c77473b","line":192,"in_reply_to":"da86d52c_b1b99fcd","updated":"2015-02-15 13:13:19.000000000","message":"You didn\u0027t answer this?","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"90589a8bf02bf80ce60768546a73183e9fc659bb","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.connection.consume_in_threads()"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        self.quitting_rpc_timeout \u003d quitting_rpc_timeout"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in range(20):"},{"line_number":271,"context_line":"            ovs_status \u003d self.check_ovs_status()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_31776f3d","line":268,"updated":"2015-02-14 07:31:55.000000000","message":"You are using \n\n    def check_ovs_status(self):\n        # Check for the canary flow\n        canary_flow \u003d self.int_br.dump_flows_for_table(constants.CANARY_TABLE)\n        if canary_flow \u003d\u003d \u0027\u0027:\n            LOG.warn(_LW(\"OVS is restarted. OVSNeutronAgent will reset \"\n                         \"bridges and recover ports.\"))\n            return constants.OVS_RESTARTED\n        elif canary_flow is None:\n            LOG.warn(_LW(\"OVS is dead. OVSNeutronAgent will keep running \"\n                         \"and checking OVS status periodically.\"))\n            return constants.OVS_DEAD\n        else:\n            # OVS is in normal status\n            return constants.OVS_NORMAL\n\nwhere it returns OVS_DEAD displaying the warn msg which is conflicting what you are doing in check_ovs_started()\n\nCould you please take care of this.","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"d2f878f6df6b3e49413ae532c8124f6399455e6d","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.connection.consume_in_threads()"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        self.quitting_rpc_timeout \u003d quitting_rpc_timeout"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in range(20):"},{"line_number":271,"context_line":"            ovs_status \u003d self.check_ovs_status()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_d6d600f1","line":268,"in_reply_to":"da86d52c_31776f3d","updated":"2015-02-15 06:46:36.000000000","message":"Do you want me to avoid displaying the warn message \"OVS is dead. OVSNeutronAgent will keep running and checking OVS status periodically.\". please reply if yes, then I would do that in my next patch.","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"e26b6e8882180be6e5bdc79decef541d372eafdc","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.connection.consume_in_threads()"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        self.quitting_rpc_timeout \u003d quitting_rpc_timeout"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in range(20):"},{"line_number":271,"context_line":"            ovs_status \u003d self.check_ovs_status()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_c1162b58","line":268,"in_reply_to":"da86d52c_7c7a9326","updated":"2015-02-16 09:13:54.000000000","message":"Done","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"c1fc318934d23a6b0b3b6dbc6eb76413636c09b8","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.connection.consume_in_threads()"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        self.quitting_rpc_timeout \u003d quitting_rpc_timeout"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in range(20):"},{"line_number":271,"context_line":"            ovs_status \u003d self.check_ovs_status()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_7c7a9326","line":268,"in_reply_to":"da86d52c_d6d600f1","updated":"2015-02-15 13:13:19.000000000","message":"Yes, this msg is conflicting \"OVSNeutronAgent will keep running and checking OVS status periodically\"","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"90589a8bf02bf80ce60768546a73183e9fc659bb","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"            else:"},{"line_number":281,"context_line":"                break"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def _report_state(self):"},{"line_number":284,"context_line":"        # How many devices are likely used by a VM"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_912adb2d","line":281,"updated":"2015-02-14 07:31:55.000000000","message":"for retry_count in reversed(range(20)):\n    ovs_status \u003d self.check_ovs_status()\n    if ovs_status \u003d\u003d constants.OVS_DEAD:\n         LOG.info(_LI(\"Retrying to check ovs status.\"))\n        time.sleep(3)\n        if retry_count \u003c\u003d 0:\n            LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))\n            raise SystemExit(1)\n   else:\n         break\n\nAlternatively, you could also use while loop also..\n\nI don\u0027t see it good comparing it with retry_count \u003d\u003d 19, consider a case if you need to increase the range then you need to modify this also which I don\u0027t like.","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"90589a8bf02bf80ce60768546a73183e9fc659bb","unresolved":false,"context_lines":[{"line_number":1596,"context_line":"    common_config.setup_logging()"},{"line_number":1597,"context_line":"    q_utils.log_opt_values(LOG)"},{"line_number":1598,"context_line":""},{"line_number":1599,"context_line":"    try:"},{"line_number":1600,"context_line":"        agent_config \u003d create_agent_config_map(cfg.CONF)"},{"line_number":1601,"context_line":"    except ValueError as e:"},{"line_number":1602,"context_line":"        LOG.error(_LE(\u0027%s Agent terminated!\u0027), e)"}],"source_content_type":"text/x-python","patch_set":8,"id":"da86d52c_f1b317e7","line":1599,"updated":"2015-02-14 07:31:55.000000000","message":"here.","commit_id":"29c4cbcbb43b5752b56bbfd68f8dcf6dd456d809"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"1c673c35ea484131b9ad6d9f7ec0403af33daf2c","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            ovs_status \u003d self.check_ovs_status()"},{"line_number":272,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":273,"context_line":"                LOG.info(_LI(\"Retrying to check ovs status.\"))"},{"line_number":274,"context_line":"                time.sleep(3)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_bc9deb68","line":274,"updated":"2015-02-15 13:11:29.000000000","message":"remove this blank line.","commit_id":"a61c1e3550079a153f4628cf0db62f34a008a437"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"e080d22a234f9abbaaaf9a272241c42a6187e6cf","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            ovs_status \u003d self.check_ovs_status()"},{"line_number":272,"context_line":"            if ovs_status \u003d\u003d constants.OVS_DEAD:"},{"line_number":273,"context_line":"                LOG.info(_LI(\"Retrying to check ovs status.\"))"},{"line_number":274,"context_line":"                time.sleep(3)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_41231bbe","line":274,"in_reply_to":"da86d52c_bc9deb68","updated":"2015-02-16 09:14:02.000000000","message":"Done","commit_id":"a61c1e3550079a153f4628cf0db62f34a008a437"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"1c673c35ea484131b9ad6d9f7ec0403af33daf2c","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"            else:"},{"line_number":281,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_7c93735c","line":278,"updated":"2015-02-15 13:11:29.000000000","message":"ditto","commit_id":"a61c1e3550079a153f4628cf0db62f34a008a437"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"e080d22a234f9abbaaaf9a272241c42a6187e6cf","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"            else:"},{"line_number":281,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_61201fb1","line":278,"in_reply_to":"da86d52c_7c93735c","updated":"2015-02-16 09:14:02.000000000","message":"Done","commit_id":"a61c1e3550079a153f4628cf0db62f34a008a437"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"ae646293a1e7dfd7245b18da634de89d50e55abb","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            ovs_status \u003d self.int_br.dump_flows_for_table("},{"line_number":272,"context_line":"                         constants.CANARY_TABLE)"},{"line_number":273,"context_line":"            if ovs_status is None:"},{"line_number":274,"context_line":"                LOG.info(_LI(\"OVS is dead. Retrying to check ovs status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_ba0eb8e3","line":274,"updated":"2015-02-16 12:54:46.000000000","message":"Shouldn\u0027t the naming be consistent? I\u0027d suggest to use \"OVS\" in both cases","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"c2f373341fcd755108151cf78e4b2b0d8488a2f4","unresolved":false,"context_lines":[{"line_number":271,"context_line":"            ovs_status \u003d self.int_br.dump_flows_for_table("},{"line_number":272,"context_line":"                         constants.CANARY_TABLE)"},{"line_number":273,"context_line":"            if ovs_status is None:"},{"line_number":274,"context_line":"                LOG.info(_LI(\"OVS is dead. Retrying to check ovs status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_29760040","line":274,"in_reply_to":"da86d52c_ba0eb8e3","updated":"2015-02-16 14:55:12.000000000","message":"Done","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"ae646293a1e7dfd7245b18da634de89d50e55abb","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                LOG.info(_LI(\"OVS is dead. Retrying to check ovs status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_fac2f084","line":277,"updated":"2015-02-16 12:54:46.000000000","message":"unsuccessfull -\u003e unsuccessful. \n\nAnd please remove the extra space","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"c2f373341fcd755108151cf78e4b2b0d8488a2f4","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                LOG.info(_LI(\"OVS is dead. Retrying to check ovs status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_6970f840","line":277,"in_reply_to":"da86d52c_fac2f084","updated":"2015-02-16 14:55:12.000000000","message":"Done","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"162704f8d05f78003acae9f30118564e491ffd43","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_3dbd6203","line":278,"updated":"2015-02-16 13:14:39.000000000","message":"Since, you may need to post new patchset address this also.\n\nraise SystemExit(1).","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"c2f373341fcd755108151cf78e4b2b0d8488a2f4","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_e99b0864","line":278,"in_reply_to":"da86d52c_3dbd6203","updated":"2015-02-16 14:55:12.000000000","message":"Done","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"e836e95d45a2dc6ea172faa2e8dc88494fd50a5d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_7db99aeb","line":278,"in_reply_to":"da86d52c_3dbd6203","updated":"2015-02-16 13:17:38.000000000","message":"sys.exit() is not a problem i think. please check with it in def main().","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"38c12e52b168e9f7cb36042017fafbd526c7be5e","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_f06bf11c","line":278,"in_reply_to":"da86d52c_7db99aeb","updated":"2015-02-16 13:58:29.000000000","message":"The biggest difference is that we can catch SystemExit exception but we cannot catch sys.exit(). If sys.exit() is called in the code, unit tests will exit immediately without any output to mention it. It makes harder to debug what happens.","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"c2f373341fcd755108151cf78e4b2b0d8488a2f4","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                time.sleep(3)"},{"line_number":276,"context_line":"                if retry_count \u003d\u003d 0:"},{"line_number":277,"context_line":"                    LOG.warn(_LW(\"Retrying unsuccessfull. Agent terminated !\"))"},{"line_number":278,"context_line":"                    sys.exit()"},{"line_number":279,"context_line":"            else:"},{"line_number":280,"context_line":"                break"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"da86d52c_a9911048","line":278,"in_reply_to":"da86d52c_f06bf11c","updated":"2015-02-16 14:55:12.000000000","message":"Done","commit_id":"fcc0040d275b7166b92f69c0294389b8ac4fc270"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"cf9b7ad34825aa5f26850b882b5bdf722b255cb9","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in reversed(range(20)):"},{"line_number":271,"context_line":"            ovs_status \u003d self.int_br.dump_flows_for_table("},{"line_number":272,"context_line":"                         constants.CANARY_TABLE)"},{"line_number":273,"context_line":"            if ovs_status is None:"},{"line_number":274,"context_line":"                LOG.info(_LI(\"OvS is dead. Retrying to check OvS status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_e18dcad4","line":272,"updated":"2015-02-17 05:29:35.000000000","message":"is it intentional to try to dump flows in int_br before setup_integration_br ensures it\u0027s created?","commit_id":"b90638f3c1148f5c0055f3af2f27a129b5b1ecf0"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"13392c60c65b1866d1bfb65451fb8491297535d7","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in reversed(range(20)):"},{"line_number":271,"context_line":"            ovs_status \u003d self.int_br.dump_flows_for_table("},{"line_number":272,"context_line":"                         constants.CANARY_TABLE)"},{"line_number":273,"context_line":"            if ovs_status is None:"},{"line_number":274,"context_line":"                LOG.info(_LI(\"OvS is dead. Retrying to check OvS status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_fc62d114","line":272,"in_reply_to":"da86d52c_1cf1656a","updated":"2015-02-17 06:14:00.000000000","message":"sorry br-int insted of br-tun in above comment","commit_id":"b90638f3c1148f5c0055f3af2f27a129b5b1ecf0"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"f9ac5c6e057f38c4773345b3f6530eb0e292e2a0","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    def check_ovs_started(self):"},{"line_number":270,"context_line":"        for retry_count in reversed(range(20)):"},{"line_number":271,"context_line":"            ovs_status \u003d self.int_br.dump_flows_for_table("},{"line_number":272,"context_line":"                         constants.CANARY_TABLE)"},{"line_number":273,"context_line":"            if ovs_status is None:"},{"line_number":274,"context_line":"                LOG.info(_LI(\"OvS is dead. Retrying to check OvS status.\"))"},{"line_number":275,"context_line":"                time.sleep(3)"}],"source_content_type":"text/x-python","patch_set":11,"id":"da86d52c_1cf1656a","line":272,"in_reply_to":"da86d52c_e18dcad4","updated":"2015-02-17 06:11:02.000000000","message":"I think this dump-flows on br-tun before its creation will not work fine here. I used  subprocess to get ovs status in patch 2 will that work fine. Please reply.","commit_id":"b90638f3c1148f5c0055f3af2f27a129b5b1ecf0"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"15819a58d5c8e4868a94f5f493793bcbe921dc37","unresolved":false,"context_lines":[{"line_number":1578,"context_line":"        agent_config \u003d create_agent_config_map(cfg.CONF)"},{"line_number":1579,"context_line":"    except ValueError as e:"},{"line_number":1580,"context_line":"        LOG.error(_LE(\u0027%s Agent terminated!\u0027), e)"},{"line_number":1581,"context_line":"        sys.exit(1)"},{"line_number":1582,"context_line":""},{"line_number":1583,"context_line":"    is_xen_compute_host \u003d \u0027rootwrap-xen-dom0\u0027 in cfg.CONF.AGENT.root_helper"},{"line_number":1584,"context_line":"    if is_xen_compute_host:"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba7be1f8_1acd025e","line":1581,"updated":"2015-02-23 06:45:33.000000000","message":"Here.","commit_id":"2ba35ed0c44ae2ebfec94f5a1eef4ba03190c7fd"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c8e335501c9aa191f0cdccaed79258490b5940f5","unresolved":false,"context_lines":[{"line_number":1589,"context_line":"    try:"},{"line_number":1590,"context_line":"        agent \u003d OVSNeutronAgent(**agent_config)"},{"line_number":1591,"context_line":"    except RuntimeError as e:"},{"line_number":1592,"context_line":"        LOG.error(_LE(\"%s Agent terminated!\"), e)"},{"line_number":1593,"context_line":"        sys.exit(1)"},{"line_number":1594,"context_line":"    signal.signal(signal.SIGTERM, agent._handle_sigterm)"},{"line_number":1595,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba7be1f8_ac69328d","line":1592,"updated":"2015-02-22 03:13:31.000000000","message":"minor nit but this can be simplified with:\n\nexcept RuntimeError:\n    LOG.exception(_LE(\"%s Agent terminated!\"))","commit_id":"2ba35ed0c44ae2ebfec94f5a1eef4ba03190c7fd"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"15819a58d5c8e4868a94f5f493793bcbe921dc37","unresolved":false,"context_lines":[{"line_number":1589,"context_line":"    try:"},{"line_number":1590,"context_line":"        agent \u003d OVSNeutronAgent(**agent_config)"},{"line_number":1591,"context_line":"    except RuntimeError as e:"},{"line_number":1592,"context_line":"        LOG.error(_LE(\"%s Agent terminated!\"), e)"},{"line_number":1593,"context_line":"        sys.exit(1)"},{"line_number":1594,"context_line":"    signal.signal(signal.SIGTERM, agent._handle_sigterm)"},{"line_number":1595,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba7be1f8_fad10efc","line":1592,"in_reply_to":"ba7be1f8_ac69328d","updated":"2015-02-23 06:45:33.000000000","message":"Hi Brandon Logan,\nWe are trying to exit the ovs_neutron_agent gracefully according to the bug. When we use LOG.exception and do not exit the agent, it will give long traceback which is the prime thing we are trying to solve here. The similar thing can be found in this same main function above, while creating agent_config in lines 1576-1581.","commit_id":"2ba35ed0c44ae2ebfec94f5a1eef4ba03190c7fd"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"4ca57246115c7ac71c79a6d336fbb4a0853f17c1","unresolved":false,"context_lines":[{"line_number":1589,"context_line":"    try:"},{"line_number":1590,"context_line":"        agent \u003d OVSNeutronAgent(**agent_config)"},{"line_number":1591,"context_line":"    except RuntimeError as e:"},{"line_number":1592,"context_line":"        LOG.error(_LE(\"%s Agent terminated!\"), e)"},{"line_number":1593,"context_line":"        sys.exit(1)"},{"line_number":1594,"context_line":"    signal.signal(signal.SIGTERM, agent._handle_sigterm)"},{"line_number":1595,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ba7be1f8_d47532cd","line":1592,"in_reply_to":"ba7be1f8_fad10efc","updated":"2015-02-27 07:19:32.000000000","message":"oh good point, sorry bout that.","commit_id":"2ba35ed0c44ae2ebfec94f5a1eef4ba03190c7fd"}],"neutron/plugins/openvswitch/common/config.py":[{"author":{"_account_id":10370,"name":"Romil Gupta","email":"romilgupta19@gmail.com","username":"romilg"},"change_message_id":"1d60d23bdb7645bb0c6113dead9da23cdd75296d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    cfg.StrOpt(\u0027ovs_status_path\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027/etc/init.d/openvswitch-switch status\u0027,"},{"line_number":49,"context_line":"               help\u003d_(\"Location of ovs daemon used to check the status of the \""},{"line_number":50,"context_line":"                      \"ovs during ovs agent boot up.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"agent_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_013e028c","line":50,"updated":"2015-02-05 09:00:42.000000000","message":"\"Location of OVS daemon used to check the status of OVS module during ovs_neutron_agent start up.\"","commit_id":"2583db9cd587e4834f83971b693c73c1eaaf9e89"},{"author":{"_account_id":14838,"name":"Gandharva","email":"gandharva666@gmail.com","username":"Gandharva"},"change_message_id":"61a91496c867375397aeb5ffcc41a209e155192c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    cfg.StrOpt(\u0027ovs_status_path\u0027,"},{"line_number":48,"context_line":"               default\u003d\u0027/etc/init.d/openvswitch-switch status\u0027,"},{"line_number":49,"context_line":"               help\u003d_(\"Location of ovs daemon used to check the status of the \""},{"line_number":50,"context_line":"                      \"ovs during ovs agent boot up.\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"agent_opts \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_dbd5b3e5","line":50,"in_reply_to":"da86d52c_013e028c","updated":"2015-02-05 12:01:28.000000000","message":"Done","commit_id":"2583db9cd587e4834f83971b693c73c1eaaf9e89"}]}
