)]}'
{"octavia/api/drivers/amphora_driver/v2/driver.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"9a08b51a6e60939ecb952d0fde62d23724c65d8f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        # Put the qos_policy_id back under the vip element the controller"},{"line_number":107,"context_line":"        # expects"},{"line_number":108,"context_line":"        vip_qos_policy_id \u003d lb_dict.pop(\u0027vip_qos_policy_id\u0027, None)"},{"line_number":109,"context_line":"        lb_dict.pop(consts.LOADBALANCER_ID)"},{"line_number":110,"context_line":"        if vip_qos_policy_id:"},{"line_number":111,"context_line":"            vip_dict \u003d {\"qos_policy_id\": vip_qos_policy_id}"},{"line_number":112,"context_line":"            lb_dict[\"vip\"] \u003d vip_dict"}],"source_content_type":"text/x-python","patch_set":40,"id":"3fa7e38b_d06138d6","line":109,"updated":"2019-12-03 16:58:01.000000000","message":"I don\u0027t think we need to be removing this? What is the point?","commit_id":"f725287e2250bf4c697f60dbb892bd6b9927850a"}],"octavia/common/constants.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fd74bce7373a30b361f8ce0bb890d73e45128de4","unresolved":false,"context_lines":[{"line_number":345,"context_line":"POOL_ID \u003d \u0027pool_id\u0027"},{"line_number":346,"context_line":"PROJECT_ID \u003d \u0027project_id\u0027"},{"line_number":347,"context_line":"ORIGINAL_LISTENER \u003d \u0027original_listener\u0027"},{"line_number":348,"context_line":"ORIGINAL_LOADBALANCER \u003d \u0027origin_load_balancer\u0027"},{"line_number":349,"context_line":"POOL_UPDATES \u003d \u0027pool_updates\u0027"},{"line_number":350,"context_line":"ORIGINAL_POOL \u003d \u0027original_pool\u0027"},{"line_number":351,"context_line":"ORIGINAL_MEMBER \u003d \u0027original_member\u0027"}],"source_content_type":"text/x-python","patch_set":33,"id":"3fa7e38b_66904e4f","line":348,"range":{"start_line":348,"start_character":25,"end_line":348,"end_character":31},"updated":"2019-11-01 20:35:40.000000000","message":"nit: s/original since the others use it","commit_id":"0be0e0d85a1841560cb01304b949bb90f1ec8e84"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"47a9f28a2243b22d256590adc7935122f10151e1","unresolved":false,"context_lines":[{"line_number":345,"context_line":"POOL_ID \u003d \u0027pool_id\u0027"},{"line_number":346,"context_line":"PROJECT_ID \u003d \u0027project_id\u0027"},{"line_number":347,"context_line":"ORIGINAL_LISTENER \u003d \u0027original_listener\u0027"},{"line_number":348,"context_line":"ORIGINAL_LOADBALANCER \u003d \u0027origin_load_balancer\u0027"},{"line_number":349,"context_line":"POOL_UPDATES \u003d \u0027pool_updates\u0027"},{"line_number":350,"context_line":"ORIGINAL_POOL \u003d \u0027original_pool\u0027"},{"line_number":351,"context_line":"ORIGINAL_MEMBER \u003d \u0027original_member\u0027"}],"source_content_type":"text/x-python","patch_set":33,"id":"3fa7e38b_3a58fe88","line":348,"range":{"start_line":348,"start_character":25,"end_line":348,"end_character":31},"in_reply_to":"3fa7e38b_66904e4f","updated":"2019-11-06 11:22:58.000000000","message":"Done","commit_id":"0be0e0d85a1841560cb01304b949bb90f1ec8e84"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e9ff5eb39958cc46dfc349b09c67dbc629382d9d","unresolved":false,"context_lines":[{"line_number":397,"context_line":"VIP_PORT_ID \u003d \u0027vip_port_id\u0027"},{"line_number":398,"context_line":"VIP_SUBNET \u003d \u0027vip_subnet\u0027"},{"line_number":399,"context_line":"VIP_SUBNET_ID \u003d \u0027vip_subnet_id\u0027"},{"line_number":400,"context_line":"VIP_QOS_POLICY_ID \u003d \u0027vip_qos_policy_id\u0027"},{"line_number":401,"context_line":"VRRP_ID \u003d \u0027vrrp_id\u0027"},{"line_number":402,"context_line":"VRRP_IP \u003d \u0027vrrp_ip\u0027"},{"line_number":403,"context_line":"VRRP_GROUP \u003d \u0027vrrp_group\u0027"}],"source_content_type":"text/x-python","patch_set":45,"id":"3fa7e38b_799d7db8","line":400,"updated":"2020-01-06 20:18:36.000000000","message":"nit: not alphabetical","commit_id":"975d5091d809d5f5af90d1f780cb81acbbfd6dc8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"539575176344cdaf9af84c2433781b1d0dbd737d","unresolved":false,"context_lines":[{"line_number":405,"context_line":"VIP_PORT_ID \u003d \u0027vip_port_id\u0027"},{"line_number":406,"context_line":"VIP_SUBNET \u003d \u0027vip_subnet\u0027"},{"line_number":407,"context_line":"VIP_SUBNET_ID \u003d \u0027vip_subnet_id\u0027"},{"line_number":408,"context_line":"VIP_QOS_POLICY_ID \u003d \u0027vip_qos_policy_id\u0027"},{"line_number":409,"context_line":"VRRP_ID \u003d \u0027vrrp_id\u0027"},{"line_number":410,"context_line":"VRRP_IP \u003d \u0027vrrp_ip\u0027"},{"line_number":411,"context_line":"VRRP_GROUP \u003d \u0027vrrp_group\u0027"}],"source_content_type":"text/x-python","patch_set":46,"id":"3fa7e38b_6fa7c10a","line":408,"updated":"2020-01-09 13:38:11.000000000","message":"just re-adding my alphabetical nit","commit_id":"4cd664fe54f755601b6f9f11d986b0e34f002cda"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c35654e1c53881aa7cc94b442bb83f295d8a0cb3","unresolved":false,"context_lines":[{"line_number":405,"context_line":"VIP_PORT_ID \u003d \u0027vip_port_id\u0027"},{"line_number":406,"context_line":"VIP_SUBNET \u003d \u0027vip_subnet\u0027"},{"line_number":407,"context_line":"VIP_SUBNET_ID \u003d \u0027vip_subnet_id\u0027"},{"line_number":408,"context_line":"VIP_QOS_POLICY_ID \u003d \u0027vip_qos_policy_id\u0027"},{"line_number":409,"context_line":"VRRP_ID \u003d \u0027vrrp_id\u0027"},{"line_number":410,"context_line":"VRRP_IP \u003d \u0027vrrp_ip\u0027"},{"line_number":411,"context_line":"VRRP_GROUP \u003d \u0027vrrp_group\u0027"}],"source_content_type":"text/x-python","patch_set":46,"id":"3fa7e38b_e5491f2f","line":408,"in_reply_to":"3fa7e38b_6fa7c10a","updated":"2020-01-17 08:23:50.000000000","message":"Done","commit_id":"4cd664fe54f755601b6f9f11d986b0e34f002cda"}],"octavia/controller/worker/v2/controller_worker.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"29de1580e608a8ca17f8374e11308ff4616e28d2","unresolved":false,"context_lines":[{"line_number":344,"context_line":"            lb.listeners)"},{"line_number":345,"context_line":"        listeners_dicts \u003d []"},{"line_number":346,"context_line":"        for listener in listeners:"},{"line_number":347,"context_line":"            listeners_dicts.append(listener.to_dict())"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        store[constants.UPDATE_DICT] \u003d {"},{"line_number":350,"context_line":"            constants.TOPOLOGY: topology"}],"source_content_type":"text/x-python","patch_set":33,"id":"3fa7e38b_26b7b623","line":347,"updated":"2019-11-01 20:24:25.000000000","message":"Did you create a helper for this in one of the parent patches?","commit_id":"0be0e0d85a1841560cb01304b949bb90f1ec8e84"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"47a9f28a2243b22d256590adc7935122f10151e1","unresolved":false,"context_lines":[{"line_number":344,"context_line":"            lb.listeners)"},{"line_number":345,"context_line":"        listeners_dicts \u003d []"},{"line_number":346,"context_line":"        for listener in listeners:"},{"line_number":347,"context_line":"            listeners_dicts.append(listener.to_dict())"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"        store[constants.UPDATE_DICT] \u003d {"},{"line_number":350,"context_line":"            constants.TOPOLOGY: topology"}],"source_content_type":"text/x-python","patch_set":33,"id":"3fa7e38b_5a5dba77","line":347,"in_reply_to":"3fa7e38b_26b7b623","updated":"2019-11-06 11:22:58.000000000","message":"Done","commit_id":"0be0e0d85a1841560cb01304b949bb90f1ec8e84"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c81d49d42fe73474f88136d75a2d3fc70e4f9d18","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \"\"\""},{"line_number":300,"context_line":"        db_lb \u003d self._lb_repo.get(db_apis.get_session(),"},{"line_number":301,"context_line":"                                  id\u003dlistener[constants.LOADBALANCER_ID])"},{"line_number":302,"context_line":"        provider_lb \u003d provider_utils.db_loadbalancer_to_provider_loadbalancer("},{"line_number":303,"context_line":"            db_lb).to_dict()"},{"line_number":304,"context_line":"        update_listener_tf \u003d self._taskflow_load("},{"line_number":305,"context_line":"            self._listener_flows.get_update_listener_flow(),"}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_20b55e19","line":302,"updated":"2019-12-12 05:19:03.000000000","message":"unused? (see pep8)","commit_id":"b428a4da40270d8b3e1c0c7159843bbc3c73fbda"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"293a2d88d5518219f983ef17ebe340e60edbfd9b","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        \"\"\""},{"line_number":300,"context_line":"        db_lb \u003d self._lb_repo.get(db_apis.get_session(),"},{"line_number":301,"context_line":"                                  id\u003dlistener[constants.LOADBALANCER_ID])"},{"line_number":302,"context_line":"        provider_lb \u003d provider_utils.db_loadbalancer_to_provider_loadbalancer("},{"line_number":303,"context_line":"            db_lb).to_dict()"},{"line_number":304,"context_line":"        update_listener_tf \u003d self._taskflow_load("},{"line_number":305,"context_line":"            self._listener_flows.get_update_listener_flow(),"}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_2011def8","line":302,"in_reply_to":"3fa7e38b_20b55e19","updated":"2019-12-12 05:41:22.000000000","message":"Done","commit_id":"b428a4da40270d8b3e1c0c7159843bbc3c73fbda"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c81d49d42fe73474f88136d75a2d3fc70e4f9d18","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            self._listener_flows.get_update_listener_flow(),"},{"line_number":306,"context_line":"            store\u003d{constants.LISTENER: listener,"},{"line_number":307,"context_line":"                   constants.UPDATE_DICT: listener_updates,"},{"line_number":308,"context_line":"                   constants.LOADBALANCER_ID: db_lb.id,"},{"line_number":309,"context_line":"                   constants.LISTENERS: [listener]})"},{"line_number":310,"context_line":"        with tf_logging.DynamicLoggingListener(update_listener_tf, log\u003dLOG):"},{"line_number":311,"context_line":"            update_listener_tf.run()"}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_40497a2f","line":308,"updated":"2019-12-12 05:19:03.000000000","message":"Should \"constants.LOADBALANCER\" be added here to match the rest after the rebase? Or is it really not used?","commit_id":"b428a4da40270d8b3e1c0c7159843bbc3c73fbda"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"293a2d88d5518219f983ef17ebe340e60edbfd9b","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            self._listener_flows.get_update_listener_flow(),"},{"line_number":306,"context_line":"            store\u003d{constants.LISTENER: listener,"},{"line_number":307,"context_line":"                   constants.UPDATE_DICT: listener_updates,"},{"line_number":308,"context_line":"                   constants.LOADBALANCER_ID: db_lb.id,"},{"line_number":309,"context_line":"                   constants.LISTENERS: [listener]})"},{"line_number":310,"context_line":"        with tf_logging.DynamicLoggingListener(update_listener_tf, log\u003dLOG):"},{"line_number":311,"context_line":"            update_listener_tf.run()"}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_c0d1ea30","line":308,"in_reply_to":"3fa7e38b_40497a2f","updated":"2019-12-12 05:41:22.000000000","message":"Done","commit_id":"b428a4da40270d8b3e1c0c7159843bbc3c73fbda"}],"octavia/controller/worker/v2/tasks/amphora_driver_tasks.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"53084e5ae31a0c92f847e52af1abcbfe1ade0b8f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            db_lb \u003d self.loadbalancer_repo.get("},{"line_number":109,"context_line":"                db_apis.get_session(),"},{"line_number":110,"context_line":"                id\u003dloadbalancer[constants.LOADBALANCER_ID])"},{"line_number":111,"context_line":"            self.amphora_driver.update(db_lb)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def revert(self, loadbalancer, *args, **kwargs):"},{"line_number":114,"context_line":"        \"\"\"Handle failed listeners updates.\"\"\""}],"source_content_type":"text/x-python","patch_set":39,"id":"3fa7e38b_62c76f67","line":111,"updated":"2019-12-02 18:20:02.000000000","message":"Hmm, so previously, if loadbalancer was None, we would just pass this on to the update function and it would almost assuredly explode there?\nWhich ... seems dumb. But, now what we\u0027re doing is silently just doing nothing, which I almost feel is worse than causing some visible exception? I\u0027m not sure exactly what case this COULD be `None`, but I wonder if having something at least LOG would be good?","commit_id":"dff68ada799bee474e8bbdc6e523bde9156d0efd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"2ede20ffc2dc0585cf843d90fc607d4c6ed99285","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            db_lb \u003d self.loadbalancer_repo.get("},{"line_number":109,"context_line":"                db_apis.get_session(),"},{"line_number":110,"context_line":"                id\u003dloadbalancer[constants.LOADBALANCER_ID])"},{"line_number":111,"context_line":"            self.amphora_driver.update(db_lb)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def revert(self, loadbalancer, *args, **kwargs):"},{"line_number":114,"context_line":"        \"\"\"Handle failed listeners updates.\"\"\""}],"source_content_type":"text/x-python","patch_set":39,"id":"3fa7e38b_47827ec9","line":111,"in_reply_to":"3fa7e38b_62c76f67","updated":"2019-12-03 02:44:41.000000000","message":"Done","commit_id":"dff68ada799bee474e8bbdc6e523bde9156d0efd"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"3b84e721f93b7e274b1b2f1df9369ad0e637ec3d","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def execute(self, loadbalancer):"},{"line_number":106,"context_line":"        \"\"\"Execute updates per listener for an amphora.\"\"\""},{"line_number":107,"context_line":"        db_lb \u003d self.loadbalancer_repo.get("},{"line_number":108,"context_line":"            db_apis.get_session(),"},{"line_number":109,"context_line":"            id\u003dloadbalancer[constants.LOADBALANCER_ID])"},{"line_number":110,"context_line":"        self.amphora_driver.update(db_lb)"}],"source_content_type":"text/x-python","patch_set":40,"id":"3fa7e38b_aac1ae31","line":107,"updated":"2019-12-03 16:35:10.000000000","message":"I was just thinking throw a log after, but this is fine I guess. I thought maybe you had actually seen some case where it could be None coming into the function, though I can\u0027t think of how.","commit_id":"f725287e2250bf4c697f60dbb892bd6b9927850a"}],"octavia/controller/worker/v2/tasks/network_tasks.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"53084e5ae31a0c92f847e52af1abcbfe1ade0b8f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.task_utils \u003d task_utils.TaskUtils()"},{"line_number":42,"context_line":"        self.loadbalancer_repo \u003d repo.LoadBalancerRepository()"},{"line_number":43,"context_line":"        self.amphora_repo \u003d repo.AmphoraRepository()"},{"line_number":44,"context_line":"        self.lb_repo \u003d repo.LoadBalancerRepository()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"},{"line_number":47,"context_line":"    def network_driver(self):"}],"source_content_type":"text/x-python","patch_set":39,"id":"3fa7e38b_c2d98328","line":44,"updated":"2019-12-02 18:20:02.000000000","message":"err...  this exists two lines up, just use that one","commit_id":"dff68ada799bee474e8bbdc6e523bde9156d0efd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"2ede20ffc2dc0585cf843d90fc607d4c6ed99285","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.task_utils \u003d task_utils.TaskUtils()"},{"line_number":42,"context_line":"        self.loadbalancer_repo \u003d repo.LoadBalancerRepository()"},{"line_number":43,"context_line":"        self.amphora_repo \u003d repo.AmphoraRepository()"},{"line_number":44,"context_line":"        self.lb_repo \u003d repo.LoadBalancerRepository()"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @property"},{"line_number":47,"context_line":"    def network_driver(self):"}],"source_content_type":"text/x-python","patch_set":39,"id":"3fa7e38b_475b5e85","line":44,"in_reply_to":"3fa7e38b_c2d98328","updated":"2019-12-03 02:44:41.000000000","message":"Done","commit_id":"dff68ada799bee474e8bbdc6e523bde9156d0efd"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"53084e5ae31a0c92f847e52af1abcbfe1ade0b8f","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                  \"ip_address %s\","},{"line_number":468,"context_line":"                  loadbalancer[\u0027vip_port_id\u0027],"},{"line_number":469,"context_line":"                  loadbalancer[\u0027vip_subnet_id\u0027],"},{"line_number":470,"context_line":"                  loadbalancer[\u0027vip_address\u0027])"},{"line_number":471,"context_line":"        db_lb \u003d self.lb_repo.get(db_apis.get_session(),"},{"line_number":472,"context_line":"                                 id\u003dloadbalancer[constants.LOADBALANCER_ID])"},{"line_number":473,"context_line":"        vip \u003d self.network_driver.allocate_vip(db_lb)"}],"source_content_type":"text/x-python","patch_set":39,"id":"3fa7e38b_22d2d7fe","line":470,"updated":"2019-12-02 18:20:02.000000000","message":"augh how do none of these have constants T_T","commit_id":"dff68ada799bee474e8bbdc6e523bde9156d0efd"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"2ede20ffc2dc0585cf843d90fc607d4c6ed99285","unresolved":false,"context_lines":[{"line_number":467,"context_line":"                  \"ip_address %s\","},{"line_number":468,"context_line":"                  loadbalancer[\u0027vip_port_id\u0027],"},{"line_number":469,"context_line":"                  loadbalancer[\u0027vip_subnet_id\u0027],"},{"line_number":470,"context_line":"                  loadbalancer[\u0027vip_address\u0027])"},{"line_number":471,"context_line":"        db_lb \u003d self.lb_repo.get(db_apis.get_session(),"},{"line_number":472,"context_line":"                                 id\u003dloadbalancer[constants.LOADBALANCER_ID])"},{"line_number":473,"context_line":"        vip \u003d self.network_driver.allocate_vip(db_lb)"}],"source_content_type":"text/x-python","patch_set":39,"id":"3fa7e38b_67ec5a92","line":470,"in_reply_to":"3fa7e38b_22d2d7fe","updated":"2019-12-03 02:44:41.000000000","message":"Done","commit_id":"dff68ada799bee474e8bbdc6e523bde9156d0efd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e9ff5eb39958cc46dfc349b09c67dbc629382d9d","unresolved":false,"context_lines":[{"line_number":692,"context_line":"    def revert(self, result, loadbalancer, amps_data\u003dNone, update_dict\u003dNone,"},{"line_number":693,"context_line":"               *args, **kwargs):"},{"line_number":694,"context_line":"        \"\"\"Handle a failure to apply QoS to VIP\"\"\""},{"line_number":695,"context_line":""},{"line_number":696,"context_line":"        request_qos_id \u003d loadbalancer[\u0027vip_qos_policy_id\u0027]"},{"line_number":697,"context_line":"        orig_lb \u003d self.task_utils.get_current_loadbalancer_from_db("},{"line_number":698,"context_line":"            loadbalancer[constants.LOADBALANCER_ID])"}],"source_content_type":"text/x-python","patch_set":45,"id":"3fa7e38b_59d68155","line":695,"updated":"2020-01-06 20:18:36.000000000","message":"nit: extra blank line","commit_id":"975d5091d809d5f5af90d1f780cb81acbbfd6dc8"}],"octavia/tests/unit/controller/worker/v2/tasks/test_compute_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"265977a66538b083602c469797f41e6ed9783279","unresolved":false,"context_lines":[{"line_number":61,"context_line":"_db_load_balancer_mock \u003d mock.MagicMock()"},{"line_number":62,"context_line":"_db_load_balancer_mock.amphorae \u003d [_db_amphora_mock]"},{"line_number":63,"context_line":"_db_load_balancer_mock.to_dict.return_value \u003d {"},{"line_number":64,"context_line":"    \u0027id\u0027: LB_ID,"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":"_load_balancer_mock \u003d {"},{"line_number":67,"context_line":"    constants.LOADBALANCER_ID: LB_ID,"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_57d777ef","line":64,"range":{"start_line":64,"start_character":4,"end_line":64,"end_character":8},"updated":"2019-12-04 03:03:54.000000000","message":"nit: constants.ID ?","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c1c3c63a3799479436a082422ba99f7df40d70fd","unresolved":false,"context_lines":[{"line_number":61,"context_line":"_db_load_balancer_mock \u003d mock.MagicMock()"},{"line_number":62,"context_line":"_db_load_balancer_mock.amphorae \u003d [_db_amphora_mock]"},{"line_number":63,"context_line":"_db_load_balancer_mock.to_dict.return_value \u003d {"},{"line_number":64,"context_line":"    \u0027id\u0027: LB_ID,"},{"line_number":65,"context_line":"}"},{"line_number":66,"context_line":"_load_balancer_mock \u003d {"},{"line_number":67,"context_line":"    constants.LOADBALANCER_ID: LB_ID,"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_e2757101","line":64,"range":{"start_line":64,"start_character":4,"end_line":64,"end_character":8},"in_reply_to":"3fa7e38b_57d777ef","updated":"2019-12-05 01:24:11.000000000","message":"Done","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e9ff5eb39958cc46dfc349b09c67dbc629382d9d","unresolved":false,"context_lines":[{"line_number":37,"context_line":"AMPHORA_ID \u003d uuidutils.generate_uuid()"},{"line_number":38,"context_line":"COMPUTE_ID \u003d uuidutils.generate_uuid()"},{"line_number":39,"context_line":"LB_NET_IP \u003d \u0027192.0.2.1\u0027"},{"line_number":40,"context_line":"LB_ID \u003d uuidutils.generate_uuid()"},{"line_number":41,"context_line":"PORT_ID \u003d uuidutils.generate_uuid()"},{"line_number":42,"context_line":"SERVER_GRPOUP_ID \u003d uuidutils.generate_uuid()"},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":45,"id":"3fa7e38b_79c49d94","line":40,"updated":"2020-01-06 20:18:36.000000000","message":"nit: not in alphabetical order","commit_id":"975d5091d809d5f5af90d1f780cb81acbbfd6dc8"}],"octavia/tests/unit/controller/worker/v2/tasks/test_database_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"265977a66538b083602c469797f41e6ed9783279","unresolved":false,"context_lines":[{"line_number":72,"context_line":"_db_loadbalancer_mock.vip_address \u003d VIP_IP"},{"line_number":73,"context_line":"_db_loadbalancer_mock.amphorae \u003d [_db_amphora_mock]"},{"line_number":74,"context_line":"_db_loadbalancer_mock.to_dict.return_value \u003d {"},{"line_number":75,"context_line":"    \u0027id\u0027: LB_ID"},{"line_number":76,"context_line":"}"},{"line_number":77,"context_line":"_l7policy_mock \u003d mock.MagicMock()"},{"line_number":78,"context_line":"_l7policy_mock.id \u003d L7POLICY_ID"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_17033f78","line":75,"range":{"start_line":75,"start_character":4,"end_line":75,"end_character":8},"updated":"2019-12-04 03:03:54.000000000","message":"same","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c1c3c63a3799479436a082422ba99f7df40d70fd","unresolved":false,"context_lines":[{"line_number":72,"context_line":"_db_loadbalancer_mock.vip_address \u003d VIP_IP"},{"line_number":73,"context_line":"_db_loadbalancer_mock.amphorae \u003d [_db_amphora_mock]"},{"line_number":74,"context_line":"_db_loadbalancer_mock.to_dict.return_value \u003d {"},{"line_number":75,"context_line":"    \u0027id\u0027: LB_ID"},{"line_number":76,"context_line":"}"},{"line_number":77,"context_line":"_l7policy_mock \u003d mock.MagicMock()"},{"line_number":78,"context_line":"_l7policy_mock.id \u003d L7POLICY_ID"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_8264bd4e","line":75,"range":{"start_line":75,"start_character":4,"end_line":75,"end_character":8},"in_reply_to":"3fa7e38b_17033f78","updated":"2019-12-05 01:24:11.000000000","message":"Done","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"265977a66538b083602c469797f41e6ed9783279","unresolved":false,"context_lines":[{"line_number":91,"context_line":"_vip_mock.to_dict.return_value \u003d {"},{"line_number":92,"context_line":"    \u0027port_id\u0027: PORT_ID,"},{"line_number":93,"context_line":"    \u0027subnet_id\u0027: SUBNET_ID,"},{"line_number":94,"context_line":"    \u0027ip_address\u0027: VIP_IP,"},{"line_number":95,"context_line":"}"},{"line_number":96,"context_line":"_vrrp_group_mock \u003d mock.MagicMock()"},{"line_number":97,"context_line":"_cert_mock \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_d7fcc773","line":94,"updated":"2019-12-04 03:03:54.000000000","message":"nit: maybe there is constants for these too?","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c1c3c63a3799479436a082422ba99f7df40d70fd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"_vip_mock.to_dict.return_value \u003d {"},{"line_number":92,"context_line":"    \u0027port_id\u0027: PORT_ID,"},{"line_number":93,"context_line":"    \u0027subnet_id\u0027: SUBNET_ID,"},{"line_number":94,"context_line":"    \u0027ip_address\u0027: VIP_IP,"},{"line_number":95,"context_line":"}"},{"line_number":96,"context_line":"_vrrp_group_mock \u003d mock.MagicMock()"},{"line_number":97,"context_line":"_cert_mock \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_22738918","line":94,"in_reply_to":"3fa7e38b_d7fcc773","updated":"2019-12-05 01:24:11.000000000","message":"Done","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"}],"octavia/tests/unit/controller/worker/v2/tasks/test_network_tasks.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"265977a66538b083602c469797f41e6ed9783279","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            \u0027vip_subnet_id\u0027: VIP.subnet_id,"},{"line_number":91,"context_line":"            \u0027vip_port_id\u0027: VIP.port_id,"},{"line_number":92,"context_line":"            \u0027vip_address\u0027: VIP.ip_address,"},{"line_number":93,"context_line":"            \u0027vip_qos_policy_id\u0027: t_constants.MOCK_QOS_POLICY_ID1"},{"line_number":94,"context_line":"        }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        conf \u003d oslo_fixture.Config(cfg.CONF)"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_57f0d791","line":93,"updated":"2019-12-04 03:03:54.000000000","message":"nit: some of these have constants too","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"c1c3c63a3799479436a082422ba99f7df40d70fd","unresolved":false,"context_lines":[{"line_number":90,"context_line":"            \u0027vip_subnet_id\u0027: VIP.subnet_id,"},{"line_number":91,"context_line":"            \u0027vip_port_id\u0027: VIP.port_id,"},{"line_number":92,"context_line":"            \u0027vip_address\u0027: VIP.ip_address,"},{"line_number":93,"context_line":"            \u0027vip_qos_policy_id\u0027: t_constants.MOCK_QOS_POLICY_ID1"},{"line_number":94,"context_line":"        }"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        conf \u003d oslo_fixture.Config(cfg.CONF)"}],"source_content_type":"text/x-python","patch_set":41,"id":"3fa7e38b_02620d3e","line":93,"in_reply_to":"3fa7e38b_57f0d791","updated":"2019-12-05 01:24:11.000000000","message":"Done","commit_id":"e39e931f60b26e8ca45e20e3fcd5998ef667a0c4"}],"octavia/tests/unit/controller/worker/v2/test_controller_worker.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"c81d49d42fe73474f88136d75a2d3fc70e4f9d18","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        listener_dict \u003d {constants.LISTENER_ID: LISTENER_ID,"},{"line_number":424,"context_line":"                         constants.LOADBALANCER_ID: LB_ID}"},{"line_number":425,"context_line":"        provider_lb \u003d provider_utils.db_loadbalancer_to_provider_loadbalancer("},{"line_number":426,"context_line":"            _db_load_balancer_mock).to_dict()"},{"line_number":427,"context_line":"        cw \u003d controller_worker.ControllerWorker()"},{"line_number":428,"context_line":"        cw.update_listener(listener_dict, LISTENER_UPDATE_DICT)"}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_e038a69f","line":425,"updated":"2019-12-12 05:19:03.000000000","message":"unused? (see pep8)","commit_id":"b428a4da40270d8b3e1c0c7159843bbc3c73fbda"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"293a2d88d5518219f983ef17ebe340e60edbfd9b","unresolved":false,"context_lines":[{"line_number":422,"context_line":""},{"line_number":423,"context_line":"        listener_dict \u003d {constants.LISTENER_ID: LISTENER_ID,"},{"line_number":424,"context_line":"                         constants.LOADBALANCER_ID: LB_ID}"},{"line_number":425,"context_line":"        provider_lb \u003d provider_utils.db_loadbalancer_to_provider_loadbalancer("},{"line_number":426,"context_line":"            _db_load_balancer_mock).to_dict()"},{"line_number":427,"context_line":"        cw \u003d controller_worker.ControllerWorker()"},{"line_number":428,"context_line":"        cw.update_listener(listener_dict, LISTENER_UPDATE_DICT)"}],"source_content_type":"text/x-python","patch_set":43,"id":"3fa7e38b_40e5fa08","line":425,"in_reply_to":"3fa7e38b_e038a69f","updated":"2019-12-12 05:41:22.000000000","message":"Done","commit_id":"b428a4da40270d8b3e1c0c7159843bbc3c73fbda"}]}
