)]}'
{"octavia/api/v2/controllers/load_balancer.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"5b4514e9eff70357dde8ddd42819ffc17c5cb5e0","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"class LoadBalancersController(base.BaseController):"},{"line_number":41,"context_line":"    _custom_actions \u003d {"},{"line_number":42,"context_line":"        \u0027failover\u0027: [\u0027POST\u0027]"},{"line_number":43,"context_line":"    }"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def __init__(self):"},{"line_number":46,"context_line":"        super(LoadBalancersController, self).__init__()"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f044301_e61bef70","line":43,"range":{"start_line":41,"start_character":0,"end_line":43,"end_character":5},"updated":"2017-05-04 01:30:06.000000000","message":"This means there are two POST methods on this part of the path.....  I don\u0027t think this is what you want.  I think you want to use _lookup to override the routing for /failover on PUT.  Patchset 10 looks correct.\nYou can\u0027t use a custom action here for PUT because both methods would have the same signature.","commit_id":"c4d5d81245a5495be7d095fca63795e4ccdf188d"}],"octavia/controller/worker/controller_worker.py":[{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"e6dc4fcdad3c2bb2ae49e7134440e4ec6fa8f928","unresolved":false,"context_lines":[{"line_number":612,"context_line":"            update_l7rule_tf.run()"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"    def _perform_amphora_failover(self, amp, priority):"},{"line_number":615,"context_line":"        \"\"\"Internal methid to perform failover operations for an amphora."},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        :param amp: The amphora to failover"},{"line_number":618,"context_line":"        :param priority: The create priority"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_6dc5e48c","line":615,"range":{"start_line":615,"start_character":20,"end_line":615,"end_character":26},"updated":"2017-03-20 02:37:12.000000000","message":"nic method.","commit_id":"4fd307151ca89277f05ade4891fcbc95d8122094"},{"author":{"_account_id":15309,"name":"zhaobo","email":"bzhaojyathousandy@gmail.com","username":"ZhaoBo"},"change_message_id":"e6dc4fcdad3c2bb2ae49e7134440e4ec6fa8f928","unresolved":false,"context_lines":[{"line_number":685,"context_line":"        except Exception as e:"},{"line_number":686,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":687,"context_line":"                LOG.error(_LE(\"Failover exception: %s\") % e)"},{"line_number":688,"context_line":"                self._lb_repo.update("},{"line_number":689,"context_line":"                    db_apis.get_session(), load_balancer_id,"},{"line_number":690,"context_line":"                    provisioning_status\u003dconstants.ERROR)"},{"line_number":691,"context_line":""},{"line_number":692,"context_line":"    def amphora_cert_rotation(self, amphora_id):"},{"line_number":693,"context_line":"        \"\"\"Perform cert rotation for an amphora."}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_0d671026","line":690,"range":{"start_line":688,"start_character":0,"end_line":690,"end_character":56},"updated":"2017-03-20 02:37:12.000000000","message":"This block should be move to api layer, right? Or I\u0027m not sure the function can be called from users or internal? I just found here is the single place to set LB db in exception process. :)","commit_id":"4fd307151ca89277f05ade4891fcbc95d8122094"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"79312e5aa11b22032df177bfb3da4f6f3d693bf7","unresolved":false,"context_lines":[{"line_number":614,"context_line":"            update_l7rule_tf.run()"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    def _perform_amphora_failover(self, amp, priority):"},{"line_number":617,"context_line":"        \"\"\"Internal methid to perform failover operations for an amphora."},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"        :param amp: The amphora to failover"},{"line_number":620,"context_line":"        :param priority: The create priority"}],"source_content_type":"text/x-python","patch_set":16,"id":"7f287b81_dc3c7de2","line":617,"updated":"2017-08-29 18:02:31.000000000","message":"spelling method","commit_id":"5fa7d3ec2fdc848b43ce470bd070fa7460f7906b"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"79312e5aa11b22032df177bfb3da4f6f3d693bf7","unresolved":false,"context_lines":[{"line_number":626,"context_line":"                         constants.BUILD_TYPE_PRIORITY: priority, }"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"        if CONF.house_keeping.spare_amphora_pool_size \u003d\u003d 0:"},{"line_number":629,"context_line":"            LOG.warning(\"Failing over amphora with no spares pool may cause \""},{"line_number":630,"context_line":"                        \"delays in failover times while a new amphora \""},{"line_number":631,"context_line":"                        \"instance boots.\")"},{"line_number":632,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f287b81_7c2d89a6","line":629,"updated":"2017-08-29 18:02:31.000000000","message":"NIT: only warn if not ACTIVE-PASSIVE with affinity; in that case we can\u0027t leverage a spare pool","commit_id":"5fa7d3ec2fdc848b43ce470bd070fa7460f7906b"}],"octavia/controller/worker/flows/amphora_flows.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53aad4ea2d5d651c72d39554847e327455d302dd","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            rebind\u003d{constants.AMPHORA: constants.FAILED_AMPHORA},"},{"line_number":294,"context_line":"            requires\u003dconstants.AMPHORA))"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"        # Create a spare amphora - only if no spare amphora is"},{"line_number":297,"context_line":"        # being replaced and we don\u0027t have spare pools enabled"},{"line_number":298,"context_line":"        if (status \u003d\u003d constants.AMPHORA_ALLOCATED) and ("},{"line_number":299,"context_line":"                CONF.house_keeping.spare_amphora_pool_size \u003d\u003d 0) and ("}],"source_content_type":"text/x-python","patch_set":15,"id":"5f201791_2246f550","line":296,"updated":"2017-06-24 01:24:41.000000000","message":"This should be changed to do a flow that reserves the amphora for this process.  The current way this is written another API request to create an LB could use this amp before the failover can use it.","commit_id":"fb7c12315861557be4cb258fb58c371be8979c3b"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"53aad4ea2d5d651c72d39554847e327455d302dd","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        if (status \u003d\u003d constants.AMPHORA_ALLOCATED) and ("},{"line_number":299,"context_line":"                CONF.house_keeping.spare_amphora_pool_size \u003d\u003d 0) and ("},{"line_number":300,"context_line":"                not CONF.nova.enable_anti_affinity):"},{"line_number":301,"context_line":"            create_new_amp_subflow \u003d self.get_create_amphora_flow()"},{"line_number":302,"context_line":"            failover_amphora_flow.add(create_new_amp_subflow)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"        # Delete the old amphora"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f201791_c27061a8","line":301,"updated":"2017-06-24 01:24:41.000000000","message":"Duplicate: Atoms with duplicate names found: [\u0027octavia.controller.worker.tasks.database_tasks.ReloadAmphora\u0027]","commit_id":"fb7c12315861557be4cb258fb58c371be8979c3b"}],"octavia/tests/functional/api/v2/test_load_balancer.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"32df15a8d03474fbb6ca20bbafdc0a2f1b6410be","unresolved":false,"context_lines":[{"line_number":1136,"context_line":"        path \u003d self.LB_PATH.format(lb_id\u003d\u0027bad_uuid\u0027)"},{"line_number":1137,"context_line":"        self.delete(path, status\u003d404)"},{"line_number":1138,"context_line":""},{"line_number":1139,"context_line":"    def test_failover(self):"},{"line_number":1140,"context_line":"        project_id \u003d uuidutils.generate_uuid()"},{"line_number":1141,"context_line":"        lb \u003d self.create_load_balancer(uuidutils.generate_uuid(),"},{"line_number":1142,"context_line":"                                       name\u003d\u0027lb1\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"5f201791_826a69b0","line":1139,"updated":"2017-06-24 01:25:58.000000000","message":"Needs Authorized/Not Authorized functional tests.","commit_id":"fb7c12315861557be4cb258fb58c371be8979c3b"}]}
