)]}'
{"octavia/api/v2/controllers/amphora.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"38c9fa2af9b4a14b1458947feee93c9ef52ef7e4","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def __init__(self, amp_id):"},{"line_number":126,"context_line":"        super().__init__()"},{"line_number":127,"context_line":"        topic \u003d constants.TOPIC_AMPHORA_V2"},{"line_number":128,"context_line":"        version \u003d \"2.0\""},{"line_number":129,"context_line":"        self.target \u003d messaging.Target("},{"line_number":130,"context_line":"            namespace\u003dconstants.RPC_NAMESPACE_CONTROLLER_AGENT,"}],"source_content_type":"text/x-python","patch_set":38,"id":"6bda7645_a038ce56","line":127,"updated":"2021-08-18 22:01:29.000000000","message":"This makes the topic configuration setting useless.\nWhy wouldn\u0027t we just revert to using the topic configured?\nWhat happens here if they select the \"amphorav1\" driver?\nI wonder if this causes an upgrade issue.","commit_id":"438e9478741c416b3c87dd447d1aea2bcbbc2e2b"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d4873bc7d78f618b7a3297eed4ff2e16e6e47029","unresolved":true,"context_lines":[{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def __init__(self, amp_id):"},{"line_number":126,"context_line":"        super().__init__()"},{"line_number":127,"context_line":"        topic \u003d constants.TOPIC_AMPHORA_V2"},{"line_number":128,"context_line":"        version \u003d \"2.0\""},{"line_number":129,"context_line":"        self.target \u003d messaging.Target("},{"line_number":130,"context_line":"            namespace\u003dconstants.RPC_NAMESPACE_CONTROLLER_AGENT,"}],"source_content_type":"text/x-python","patch_set":38,"id":"c727b5cd_14fd7ef3","line":127,"in_reply_to":"6bda7645_a038ce56","updated":"2021-08-19 14:18:44.000000000","message":"I guess we can live \"if\" to check for amphorav1 case","commit_id":"438e9478741c416b3c87dd447d1aea2bcbbc2e2b"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"38c9fa2af9b4a14b1458947feee93c9ef52ef7e4","unresolved":true,"context_lines":[{"line_number":166,"context_line":"    def __init__(self, amp_id):"},{"line_number":167,"context_line":"        super().__init__()"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        topic \u003d constants.TOPIC_AMPHORA_V2"},{"line_number":170,"context_line":"        version \u003d \"2.0\""},{"line_number":171,"context_line":"        self.transport \u003d messaging.get_rpc_transport(cfg.CONF)"},{"line_number":172,"context_line":"        self.target \u003d messaging.Target("}],"source_content_type":"text/x-python","patch_set":38,"id":"d276419d_4c6efd04","line":169,"updated":"2021-08-18 22:01:29.000000000","message":"Same question here.","commit_id":"438e9478741c416b3c87dd447d1aea2bcbbc2e2b"}],"octavia/controller/healthmanager/health_manager.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae169e3dfffab847a3e141a985ec33cb6d23e11","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from octavia.common import constants"},{"line_number":26,"context_line":"from octavia.controller.worker.v1 import controller_worker as cw1"},{"line_number":27,"context_line":"from octavia.controller.worker.v2 import controller_worker as cw2"},{"line_number":28,"context_line":"from octavia.db import api as db_api"},{"line_number":29,"context_line":"from octavia.db import repositories as repo"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_feb1d545","line":26,"updated":"2020-07-10 14:17:39.000000000","message":"pep8: F401 \u0027octavia.controller.worker.v1.controller_worker as cw1\u0027 imported but unused","commit_id":"5920f5716b9461da8e7b69c8a883980386e629a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6327eb0e9e48e7a63f4a75365bb7ae0de4e3413a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from oslo_utils import excutils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from octavia.common import constants"},{"line_number":26,"context_line":"from octavia.controller.worker.v1 import controller_worker as cw1"},{"line_number":27,"context_line":"from octavia.controller.worker.v2 import controller_worker as cw2"},{"line_number":28,"context_line":"from octavia.db import api as db_api"},{"line_number":29,"context_line":"from octavia.db import repositories as repo"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_fdf8aac4","line":26,"updated":"2020-07-13 10:52:17.000000000","message":"pep8: F401 \u0027octavia.controller.worker.v1.controller_worker as cw1\u0027 imported but unused","commit_id":"037ba0fb686331012318a86fb08fe03cc1db891f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"454f5fa084595f9f3defe6088503aa9ab9954cde","unresolved":true,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class HealthManager(object):"},{"line_number":59,"context_line":"    def __init__(self, exit_event):"},{"line_number":60,"context_line":"        self.cw \u003d cw2.ControllerWorker()"},{"line_number":61,"context_line":"        self.threads \u003d CONF.health_manager.failover_threads"},{"line_number":62,"context_line":"        # pylint: disable\u003dconsider-using-with"},{"line_number":63,"context_line":"        self.executor \u003d futures.ThreadPoolExecutor(max_workers\u003dself.threads)"}],"source_content_type":"text/x-python","patch_set":32,"id":"80dd23f8_c2cf33d2","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":40},"updated":"2021-05-11 13:30:28.000000000","message":"shouldn\u0027t we keep that code until amphorav1 is totally removed?\n\nif a user sets default_provider_driver to amphorav1, he will be able to create LBs with amphorav1, but housekeeping and health-monitor will use amphorav2","commit_id":"ba86f3d91e43ffc76709f8966503d0f7b85934ac"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dfa4d8faeabf421d4612464a3db9c431bb596938","unresolved":false,"context_lines":[{"line_number":57,"context_line":""},{"line_number":58,"context_line":"class HealthManager(object):"},{"line_number":59,"context_line":"    def __init__(self, exit_event):"},{"line_number":60,"context_line":"        self.cw \u003d cw2.ControllerWorker()"},{"line_number":61,"context_line":"        self.threads \u003d CONF.health_manager.failover_threads"},{"line_number":62,"context_line":"        # pylint: disable\u003dconsider-using-with"},{"line_number":63,"context_line":"        self.executor \u003d futures.ThreadPoolExecutor(max_workers\u003dself.threads)"}],"source_content_type":"text/x-python","patch_set":32,"id":"e4c44cc3_cca0d1a7","line":60,"range":{"start_line":60,"start_character":8,"end_line":60,"end_character":40},"in_reply_to":"80dd23f8_c2cf33d2","updated":"2021-05-13 09:57:28.000000000","message":"Done","commit_id":"ba86f3d91e43ffc76709f8966503d0f7b85934ac"}],"octavia/controller/housekeeping/house_keeping.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"3ae169e3dfffab847a3e141a985ec33cb6d23e11","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from sqlalchemy.orm import exc as sqlalchemy_exceptions"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from octavia.common import constants"},{"line_number":24,"context_line":"from octavia.controller.worker.v1 import controller_worker as cw1"},{"line_number":25,"context_line":"from octavia.controller.worker.v2 import controller_worker as cw2"},{"line_number":26,"context_line":"from octavia.db import api as db_api"},{"line_number":27,"context_line":"from octavia.db import repositories as repo"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf51134e_1eb5a932","line":24,"updated":"2020-07-10 14:17:39.000000000","message":"pep8: F401 \u0027octavia.controller.worker.v1.controller_worker as cw1\u0027 imported but unused","commit_id":"5920f5716b9461da8e7b69c8a883980386e629a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"6327eb0e9e48e7a63f4a75365bb7ae0de4e3413a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from sqlalchemy.orm import exc as sqlalchemy_exceptions"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from octavia.common import constants"},{"line_number":24,"context_line":"from octavia.controller.worker.v1 import controller_worker as cw1"},{"line_number":25,"context_line":"from octavia.controller.worker.v2 import controller_worker as cw2"},{"line_number":26,"context_line":"from octavia.db import api as db_api"},{"line_number":27,"context_line":"from octavia.db import repositories as repo"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf51134e_ddf5e6cc","line":24,"updated":"2020-07-13 10:52:17.000000000","message":"pep8: F401 \u0027octavia.controller.worker.v1.controller_worker as cw1\u0027 imported but unused","commit_id":"037ba0fb686331012318a86fb08fe03cc1db891f"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"454f5fa084595f9f3defe6088503aa9ab9954cde","unresolved":true,"context_lines":[{"line_number":76,"context_line":"class CertRotation(object):"},{"line_number":77,"context_line":"    def __init__(self):"},{"line_number":78,"context_line":"        self.threads \u003d CONF.house_keeping.cert_rotate_threads"},{"line_number":79,"context_line":"        self.cw \u003d cw2.ControllerWorker()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def rotate(self):"},{"line_number":82,"context_line":"        \"\"\"Check the amphora db table for expiring auth certs.\"\"\""}],"source_content_type":"text/x-python","patch_set":32,"id":"3a34117e_bdc077af","line":79,"range":{"start_line":79,"start_character":8,"end_line":79,"end_character":40},"updated":"2021-05-11 13:30:28.000000000","message":"same","commit_id":"ba86f3d91e43ffc76709f8966503d0f7b85934ac"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dfa4d8faeabf421d4612464a3db9c431bb596938","unresolved":false,"context_lines":[{"line_number":76,"context_line":"class CertRotation(object):"},{"line_number":77,"context_line":"    def __init__(self):"},{"line_number":78,"context_line":"        self.threads \u003d CONF.house_keeping.cert_rotate_threads"},{"line_number":79,"context_line":"        self.cw \u003d cw2.ControllerWorker()"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def rotate(self):"},{"line_number":82,"context_line":"        \"\"\"Check the amphora db table for expiring auth certs.\"\"\""}],"source_content_type":"text/x-python","patch_set":32,"id":"6af7693e_97089e09","line":79,"range":{"start_line":79,"start_character":8,"end_line":79,"end_character":40},"in_reply_to":"3a34117e_bdc077af","updated":"2021-05-13 09:57:28.000000000","message":"Done","commit_id":"ba86f3d91e43ffc76709f8966503d0f7b85934ac"}],"octavia/controller/worker/v2/tasks/amphora_driver_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"26848eae5cb803a3406051b7a366bb884dcfb18f","unresolved":true,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def execute(self, amphora, loadbalancer, amphorae_network_config):"},{"line_number":328,"context_line":"        \"\"\"Execute post_vip_routine.\"\"\""},{"line_number":329,"context_line":"        LOG.debug(\"amp net config %s\", amphorae_network_config)"},{"line_number":330,"context_line":"        db_amp \u003d self.amphora_repo.get(db_apis.get_session(),"},{"line_number":331,"context_line":"                                       id\u003damphora.get(constants.ID))"},{"line_number":332,"context_line":"        db_lb \u003d self.loadbalancer_repo.get("}],"source_content_type":"text/x-python","patch_set":31,"id":"7932d630_fa10b383","line":329,"updated":"2021-05-10 17:41:15.000000000","message":"Leftover from debugging?","commit_id":"855e283143200e41f6fc79b15d18d18f86b28177"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dc52e033437aabf69744ec2837d8d14cbc409a46","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"    def execute(self, amphora, loadbalancer, amphorae_network_config):"},{"line_number":328,"context_line":"        \"\"\"Execute post_vip_routine.\"\"\""},{"line_number":329,"context_line":"        LOG.debug(\"amp net config %s\", amphorae_network_config)"},{"line_number":330,"context_line":"        db_amp \u003d self.amphora_repo.get(db_apis.get_session(),"},{"line_number":331,"context_line":"                                       id\u003damphora.get(constants.ID))"},{"line_number":332,"context_line":"        db_lb \u003d self.loadbalancer_repo.get("}],"source_content_type":"text/x-python","patch_set":31,"id":"5a6f3f1f_ce377a0a","line":329,"in_reply_to":"7932d630_fa10b383","updated":"2021-05-11 08:14:51.000000000","message":"Done","commit_id":"855e283143200e41f6fc79b15d18d18f86b28177"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"26848eae5cb803a3406051b7a366bb884dcfb18f","unresolved":true,"context_lines":[{"line_number":336,"context_line":"                amphora.get(constants.ID), {}).get(constants.VRRP_PORT, {}))"},{"line_number":337,"context_line":"        # Required for noop-case"},{"line_number":338,"context_line":"        vip_arg \u003d amphorae_network_config.get(amphora.get("},{"line_number":339,"context_line":"            constants.ID), {}).get(constants.VIP_SUBNET, {})"},{"line_number":340,"context_line":"        if vip_arg:"},{"line_number":341,"context_line":"            host_routes \u003d vip_arg.get(\u0027host_routes\u0027)"},{"line_number":342,"context_line":"            if host_routes:"}],"source_content_type":"text/x-python","patch_set":31,"id":"dfdee857_7a7ab39f","line":339,"updated":"2021-05-10 17:41:15.000000000","message":"I did\u0027t see anything in this patch that should have required this change.  It seems fine was just trying to understand it.","commit_id":"855e283143200e41f6fc79b15d18d18f86b28177"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dc52e033437aabf69744ec2837d8d14cbc409a46","unresolved":true,"context_lines":[{"line_number":336,"context_line":"                amphora.get(constants.ID), {}).get(constants.VRRP_PORT, {}))"},{"line_number":337,"context_line":"        # Required for noop-case"},{"line_number":338,"context_line":"        vip_arg \u003d amphorae_network_config.get(amphora.get("},{"line_number":339,"context_line":"            constants.ID), {}).get(constants.VIP_SUBNET, {})"},{"line_number":340,"context_line":"        if vip_arg:"},{"line_number":341,"context_line":"            host_routes \u003d vip_arg.get(\u0027host_routes\u0027)"},{"line_number":342,"context_line":"            if host_routes:"}],"source_content_type":"text/x-python","patch_set":31,"id":"f196bd5b_b4a5b5f2","line":339,"in_reply_to":"dfdee857_7a7ab39f","updated":"2021-05-11 08:14:51.000000000","message":"Yes, this as above is leftover from previous debug will drop this.","commit_id":"855e283143200e41f6fc79b15d18d18f86b28177"}],"octavia/tests/unit/controller/housekeeping/test_house_keeping.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"38c9fa2af9b4a14b1458947feee93c9ef52ef7e4","unresolved":true,"context_lines":[{"line_number":163,"context_line":"    @mock.patch(\u0027octavia.db.repositories.AmphoraRepository.\u0027"},{"line_number":164,"context_line":"                \u0027get_cert_expiring_amphora\u0027)"},{"line_number":165,"context_line":"    @mock.patch(\u0027octavia.db.api.get_session\u0027)"},{"line_number":166,"context_line":"    def test_cert_rotation_expired_amphora_with_exception(self, session,"},{"line_number":167,"context_line":"                                                          cert_exp_amp_mock,"},{"line_number":168,"context_line":"                                                          amp_cert_mock"},{"line_number":169,"context_line":"                                                          ):"}],"source_content_type":"text/x-python","patch_set":38,"id":"fb91d6cb_c35c4bd9","side":"PARENT","line":166,"updated":"2021-08-18 22:01:29.000000000","message":"amphorav1 is still an option, so it seems early to remove these tests.","commit_id":"7e264e1f21ee396d046e0df0c1a4f4218039e4aa"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"d4873bc7d78f618b7a3297eed4ff2e16e6e47029","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    @mock.patch(\u0027octavia.db.repositories.AmphoraRepository.\u0027"},{"line_number":164,"context_line":"                \u0027get_cert_expiring_amphora\u0027)"},{"line_number":165,"context_line":"    @mock.patch(\u0027octavia.db.api.get_session\u0027)"},{"line_number":166,"context_line":"    def test_cert_rotation_expired_amphora_with_exception(self, session,"},{"line_number":167,"context_line":"                                                          cert_exp_amp_mock,"},{"line_number":168,"context_line":"                                                          amp_cert_mock"},{"line_number":169,"context_line":"                                                          ):"}],"source_content_type":"text/x-python","patch_set":38,"id":"669b3cb2_25d5fd50","side":"PARENT","line":166,"in_reply_to":"fb91d6cb_c35c4bd9","updated":"2021-08-19 14:18:44.000000000","message":"Done","commit_id":"7e264e1f21ee396d046e0df0c1a4f4218039e4aa"}],"setup.cfg":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"26848eae5cb803a3406051b7a366bb884dcfb18f","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    amphorav2 \u003d octavia.api.drivers.amphora_driver.v2.driver:AmphoraProviderDriver"},{"line_number":61,"context_line":"    # octavia is an alias for backward compatibility"},{"line_number":62,"context_line":"    octavia \u003d octavia.api.drivers.amphora_driver.v2.driver:AmphoraProviderDriver"},{"line_number":63,"context_line":"    amphorav1 \u003d octavia.api.drivers.amphora_driver.v1.driver:AmphoraProviderDriver"},{"line_number":64,"context_line":"octavia.amphora.drivers \u003d"},{"line_number":65,"context_line":"    amphora_noop_driver \u003d octavia.amphorae.drivers.noop_driver.driver:NoopAmphoraLoadBalancerDriver"},{"line_number":66,"context_line":"    amphora_haproxy_rest_driver \u003d octavia.amphorae.drivers.haproxy.rest_api_driver:HaproxyAmphoraLoadBalancerDriver"}],"source_content_type":"text/x-ttcn-cfg","patch_set":31,"id":"f644744c_0b300a2a","line":63,"updated":"2021-05-10 17:41:15.000000000","message":"Should there be a release note to describe the name changes and how to get the previous behavior back?","commit_id":"855e283143200e41f6fc79b15d18d18f86b28177"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"dc52e033437aabf69744ec2837d8d14cbc409a46","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    amphorav2 \u003d octavia.api.drivers.amphora_driver.v2.driver:AmphoraProviderDriver"},{"line_number":61,"context_line":"    # octavia is an alias for backward compatibility"},{"line_number":62,"context_line":"    octavia \u003d octavia.api.drivers.amphora_driver.v2.driver:AmphoraProviderDriver"},{"line_number":63,"context_line":"    amphorav1 \u003d octavia.api.drivers.amphora_driver.v1.driver:AmphoraProviderDriver"},{"line_number":64,"context_line":"octavia.amphora.drivers \u003d"},{"line_number":65,"context_line":"    amphora_noop_driver \u003d octavia.amphorae.drivers.noop_driver.driver:NoopAmphoraLoadBalancerDriver"},{"line_number":66,"context_line":"    amphora_haproxy_rest_driver \u003d octavia.amphorae.drivers.haproxy.rest_api_driver:HaproxyAmphoraLoadBalancerDriver"}],"source_content_type":"text/x-ttcn-cfg","patch_set":31,"id":"acf4e393_bee22a0f","line":63,"in_reply_to":"f644744c_0b300a2a","updated":"2021-05-11 08:14:51.000000000","message":"Done","commit_id":"855e283143200e41f6fc79b15d18d18f86b28177"}]}
