)]}'
{"octavia/controller/healthmanager/health_manager.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"102649fec7ffcb0b59d806d552c5ad1344dc2d19","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                    wait_done_or_dead(futs, self.dead)"},{"line_number":125,"context_line":"                    futs \u003d []"},{"line_number":126,"context_line":"                if stats[\u0027failed_over_attempted\u0027] \u003e 0:"},{"line_number":127,"context_line":"                    LOG.info(_LI(\"Attempted failed over of %s amphora\"),"},{"line_number":128,"context_line":"                             stats[\u0027failed_over_attempted\u0027])"},{"line_number":129,"context_line":"                    LOG.info(_LI(\"Failed at fail over of %s amphora\"),"},{"line_number":130,"context_line":"                             stats[\u0027failed_over_failed\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_7de78348","line":127,"updated":"2017-08-31 19:16:48.000000000","message":"\"Attempted failover of %s amphorae.\"","commit_id":"f695c9850a1ee0b3844c599a4eaccf33c04bc057"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"102649fec7ffcb0b59d806d552c5ad1344dc2d19","unresolved":false,"context_lines":[{"line_number":126,"context_line":"                if stats[\u0027failed_over_attempted\u0027] \u003e 0:"},{"line_number":127,"context_line":"                    LOG.info(_LI(\"Attempted failed over of %s amphora\"),"},{"line_number":128,"context_line":"                             stats[\u0027failed_over_attempted\u0027])"},{"line_number":129,"context_line":"                    LOG.info(_LI(\"Failed at fail over of %s amphora\"),"},{"line_number":130,"context_line":"                             stats[\u0027failed_over_failed\u0027])"},{"line_number":131,"context_line":"                    LOG.info(_LI(\"Cancelled fail over of %s amphora\"),"},{"line_number":132,"context_line":"                             stats[\u0027failed_over_cancelled\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_3df1fb02","line":129,"updated":"2017-08-31 19:16:48.000000000","message":"\"Failed to failover %s amphorae.\"","commit_id":"f695c9850a1ee0b3844c599a4eaccf33c04bc057"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"102649fec7ffcb0b59d806d552c5ad1344dc2d19","unresolved":false,"context_lines":[{"line_number":128,"context_line":"                             stats[\u0027failed_over_attempted\u0027])"},{"line_number":129,"context_line":"                    LOG.info(_LI(\"Failed at fail over of %s amphora\"),"},{"line_number":130,"context_line":"                             stats[\u0027failed_over_failed\u0027])"},{"line_number":131,"context_line":"                    LOG.info(_LI(\"Cancelled fail over of %s amphora\"),"},{"line_number":132,"context_line":"                             stats[\u0027failed_over_cancelled\u0027])"},{"line_number":133,"context_line":"                    happy_failovers \u003d stats[\u0027failed_over_attempted\u0027]"},{"line_number":134,"context_line":"                    happy_failovers -\u003d stats[\u0027failed_over_cancelled\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_fdda5377","line":131,"updated":"2017-08-31 19:16:48.000000000","message":"\"Cancelled failover of %s amphorae.\"","commit_id":"f695c9850a1ee0b3844c599a4eaccf33c04bc057"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"102649fec7ffcb0b59d806d552c5ad1344dc2d19","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                    happy_failovers \u003d stats[\u0027failed_over_attempted\u0027]"},{"line_number":134,"context_line":"                    happy_failovers -\u003d stats[\u0027failed_over_cancelled\u0027]"},{"line_number":135,"context_line":"                    happy_failovers -\u003d stats[\u0027failed_over_failed\u0027]"},{"line_number":136,"context_line":"                    LOG.info(_LI(\"Successfully failed over of %s amphora\"),"},{"line_number":137,"context_line":"                             happy_failovers)"},{"line_number":138,"context_line":"                self.dead.wait(CONF.health_manager.health_check_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f287b81_bde4cb3d","line":136,"updated":"2017-08-31 19:16:48.000000000","message":"\"Successfully completed failover of %s amphorae.\"","commit_id":"f695c9850a1ee0b3844c599a4eaccf33c04bc057"},{"author":{"_account_id":1297,"name":"Joshua Harlow","email":"jxharlow@godaddy.com","username":"harlowja"},"change_message_id":"459206b0ea41c8794ca02e91f6f381b17cb73293","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                        functools.partial(update_stats_on_done, stats)"},{"line_number":104,"context_line":"                    )"},{"line_number":105,"context_line":"                    futs.append(fut)"},{"line_number":106,"context_line":"                    if len(futs) \u003d\u003d self.threads:"},{"line_number":107,"context_line":"                        break"},{"line_number":108,"context_line":"                if futs:"},{"line_number":109,"context_line":"                    LOG.info(\"Waiting for %s failovers to finish\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bf57530f_6d1e910d","line":106,"updated":"2017-09-20 18:34:20.000000000","message":"So just want to check is; is this the behavior we want (because it is different from the prior code). I am personally fine with it, just thought to ask.","commit_id":"5d693e30b1cc5197cc2dfe9390d5d5923b7f1c3b"}]}
