)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c778ce60f58c2483000404b8b37013bb3cae3bbb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"24701027_a2807e5a","updated":"2023-07-19 15:08:11.000000000","message":"couple of nits","commit_id":"5cd54c06dcdfb4dc1acfb597d5cb5fec6afca1d3"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"0b8e5c4d1d76b4de5b2771b1b592a9e7f9ba568e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"cfab2f07_075e38c7","updated":"2023-07-20 06:01:13.000000000","message":"-1 just to not miss the comments in ps3","commit_id":"8bbf719895be58714e5f0d4b14b1bdb717589780"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"851d0388c51b5e607bb7da10510b4f656576d1c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f6853fcb_9e151dc6","updated":"2023-07-20 08:07:04.000000000","message":"LGTM, lets see the gates!","commit_id":"e9a55cd2b6eca09e14a18212d8d537eaa7ac17d7"}],"ovn_octavia_provider/event.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e67d047c0f2c5f7c171ca6647c66511a93439e03","unresolved":true,"context_lines":[{"line_number":63,"context_line":"        if port_name.startswith(ovn_const.LB_VIP_PORT_PREFIX):"},{"line_number":64,"context_line":"            # Handle port update only for vip ports created by"},{"line_number":65,"context_line":"            # this driver."},{"line_number":66,"context_line":"            if old.external_ids.get("},{"line_number":67,"context_line":"                ovn_const.OVN_PORT_FIP_EXT_ID_KEY) and row.external_ids.get("},{"line_number":68,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY) is None:"},{"line_number":69,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_DISASSOCIATE"}],"source_content_type":"text/x-python","patch_set":1,"id":"7282b2fb_8cbde32a","line":66,"range":{"start_line":66,"start_character":12,"end_line":66,"end_character":36},"updated":"2023-07-19 13:38:27.000000000","message":"if the update is due to something else (nor related to the external_ids) the old parameter won\u0027t have an external_ids field and this will break with AttributeException.\n\nPerhaps worth to overwrite the match function, to ensure we only process events if the external_ids is included, something like\n\ndef match_fn(self, event, row, old):\n    if hasattr(old, \u0027external_ids\u0027):\n        return True\n    return False","commit_id":"5df77f71070fc85a197dffc88fcf452dd9db0dec"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"27508f89ce0739548bd59d99dcdd3f3f4ebcd9fb","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        if port_name.startswith(ovn_const.LB_VIP_PORT_PREFIX):"},{"line_number":64,"context_line":"            # Handle port update only for vip ports created by"},{"line_number":65,"context_line":"            # this driver."},{"line_number":66,"context_line":"            if old.external_ids.get("},{"line_number":67,"context_line":"                ovn_const.OVN_PORT_FIP_EXT_ID_KEY) and row.external_ids.get("},{"line_number":68,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY) is None:"},{"line_number":69,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_DISASSOCIATE"}],"source_content_type":"text/x-python","patch_set":1,"id":"883a76e4_062a1c6c","line":66,"range":{"start_line":66,"start_character":12,"end_line":66,"end_character":36},"in_reply_to":"7282b2fb_8cbde32a","updated":"2023-07-19 14:13:59.000000000","message":"Done, thx!","commit_id":"5df77f71070fc85a197dffc88fcf452dd9db0dec"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e5282b45c2e6abd4ecc2dbbf789bc8a9707920eb","unresolved":true,"context_lines":[{"line_number":72,"context_line":"                ovn_const.OVN_PORT_FIP_EXT_ID_KEY) and row.external_ids.get("},{"line_number":73,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY) is None:"},{"line_number":74,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_DISASSOCIATE"},{"line_number":75,"context_line":"                fip_related \u003d old.external_ids.get("},{"line_number":76,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY)"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_ASSOCIATE"}],"source_content_type":"text/x-python","patch_set":2,"id":"3b27a64a_3345a85e","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":28},"updated":"2023-07-19 14:27:44.000000000","message":"perhaps simply call it fip?, and the same in line 79 and 81","commit_id":"4861c227d17847027a874030d93af10325d0485c"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"3c714fc2980957d53ddec5ee1987488e2acf7a53","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                ovn_const.OVN_PORT_FIP_EXT_ID_KEY) and row.external_ids.get("},{"line_number":73,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY) is None:"},{"line_number":74,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_DISASSOCIATE"},{"line_number":75,"context_line":"                fip_related \u003d old.external_ids.get("},{"line_number":76,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY)"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_ASSOCIATE"}],"source_content_type":"text/x-python","patch_set":2,"id":"058d2afb_444876d5","line":75,"range":{"start_line":75,"start_character":16,"end_line":75,"end_character":28},"in_reply_to":"3b27a64a_3345a85e","updated":"2023-07-19 14:53:47.000000000","message":"Done","commit_id":"4861c227d17847027a874030d93af10325d0485c"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"e5282b45c2e6abd4ecc2dbbf789bc8a9707920eb","unresolved":true,"context_lines":[{"line_number":74,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_DISASSOCIATE"},{"line_number":75,"context_line":"                fip_related \u003d old.external_ids.get("},{"line_number":76,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY)"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_ASSOCIATE"},{"line_number":79,"context_line":"                fip_related \u003d row.external_ids.get("},{"line_number":80,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY)"},{"line_number":81,"context_line":"            self.driver.vip_port_update_handler(row, fip_related, action)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"2dfeca43_4599a6c3","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":54},"updated":"2023-07-19 14:27:44.000000000","message":"I don\u0027t think the logic is right, there is also a chance that the external_ids is different but the fip in there still the same, in which case there is no need to associate/dissasociate anything. And this will remove the fip in the case the FIPs are the same, while it should not","commit_id":"4861c227d17847027a874030d93af10325d0485c"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"3c714fc2980957d53ddec5ee1987488e2acf7a53","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_DISASSOCIATE"},{"line_number":75,"context_line":"                fip_related \u003d old.external_ids.get("},{"line_number":76,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY)"},{"line_number":77,"context_line":"            else:"},{"line_number":78,"context_line":"                action \u003d ovn_const.REQ_INFO_ACTION_ASSOCIATE"},{"line_number":79,"context_line":"                fip_related \u003d row.external_ids.get("},{"line_number":80,"context_line":"                    ovn_const.OVN_PORT_FIP_EXT_ID_KEY)"},{"line_number":81,"context_line":"            self.driver.vip_port_update_handler(row, fip_related, action)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fbfdbeed_cbf18b13","line":80,"range":{"start_line":77,"start_character":0,"end_line":80,"end_character":54},"in_reply_to":"2dfeca43_4599a6c3","updated":"2023-07-19 14:53:47.000000000","message":"right! that case was covered by the vip_port_update_handler before this patch, but now better to take care of it directly to do not call the handler in that case.","commit_id":"4861c227d17847027a874030d93af10325d0485c"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c778ce60f58c2483000404b8b37013bb3cae3bbb","unresolved":true,"context_lines":[{"line_number":61,"context_line":"                  \u0027%(event)s, %(row)s\u0027,"},{"line_number":62,"context_line":"                  {\u0027event\u0027: event,"},{"line_number":63,"context_line":"                   \u0027row\u0027: row})"},{"line_number":64,"context_line":"        # Get the neutron:port_name from external_ids and check if"},{"line_number":65,"context_line":"        # it\u0027s a vip port or not."},{"line_number":66,"context_line":"        port_name \u003d row.external_ids.get("},{"line_number":67,"context_line":"            ovn_const.OVN_PORT_NAME_EXT_ID_KEY, \u0027\u0027)"},{"line_number":68,"context_line":"        if port_name.startswith(ovn_const.LB_VIP_PORT_PREFIX):"},{"line_number":69,"context_line":"            # Handle port update only for vip ports created by"},{"line_number":70,"context_line":"            # this driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"ef2a5f0e_353ebfd4","line":67,"range":{"start_line":64,"start_character":0,"end_line":67,"end_character":51},"updated":"2023-07-19 15:08:11.000000000","message":"nit: this can now be moved to the match function so that the event is not even processed if it does not start with the prefix","commit_id":"5cd54c06dcdfb4dc1acfb597d5cb5fec6afca1d3"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"252d0eab78fec5f249ca3dcfe9cee55004b64640","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                  \u0027%(event)s, %(row)s\u0027,"},{"line_number":62,"context_line":"                  {\u0027event\u0027: event,"},{"line_number":63,"context_line":"                   \u0027row\u0027: row})"},{"line_number":64,"context_line":"        # Get the neutron:port_name from external_ids and check if"},{"line_number":65,"context_line":"        # it\u0027s a vip port or not."},{"line_number":66,"context_line":"        port_name \u003d row.external_ids.get("},{"line_number":67,"context_line":"            ovn_const.OVN_PORT_NAME_EXT_ID_KEY, \u0027\u0027)"},{"line_number":68,"context_line":"        if port_name.startswith(ovn_const.LB_VIP_PORT_PREFIX):"},{"line_number":69,"context_line":"            # Handle port update only for vip ports created by"},{"line_number":70,"context_line":"            # this driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"b07da469_43d396cf","line":67,"range":{"start_line":64,"start_character":0,"end_line":67,"end_character":51},"in_reply_to":"ef2a5f0e_353ebfd4","updated":"2023-07-20 07:38:29.000000000","message":"Done","commit_id":"5cd54c06dcdfb4dc1acfb597d5cb5fec6afca1d3"}],"ovn_octavia_provider/tests/unit/test_helper.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"c778ce60f58c2483000404b8b37013bb3cae3bbb","unresolved":true,"context_lines":[{"line_number":3064,"context_line":"                 {ovn_const.OVN_PORT_NAME_EXT_ID_KEY: port_name}}"},{"line_number":3065,"context_line":"        row \u003d fakes.FakeOvsdbRow.create_one_ovsdb_row("},{"line_number":3066,"context_line":"            attrs\u003dattrs)"},{"line_number":3067,"context_line":"        self.switch_port_event.run(mock.ANY, row, row)"},{"line_number":3068,"context_line":"        self.mock_add_request.assert_not_called()"},{"line_number":3069,"context_line":""},{"line_number":3070,"context_line":"    @mock.patch.object(ovn_helper.OvnProviderHelper, \u0027_execute_commands\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7acde634_512b0901","line":3067,"range":{"start_line":3067,"start_character":0,"end_line":3067,"end_character":54},"updated":"2023-07-19 15:08:11.000000000","message":"now this function is not  testing lb_not_rount, right?","commit_id":"5cd54c06dcdfb4dc1acfb597d5cb5fec6afca1d3"},{"author":{"_account_id":34451,"name":"Fernando Royo","email":"froyo@redhat.com","username":"froyo"},"change_message_id":"252d0eab78fec5f249ca3dcfe9cee55004b64640","unresolved":false,"context_lines":[{"line_number":3064,"context_line":"                 {ovn_const.OVN_PORT_NAME_EXT_ID_KEY: port_name}}"},{"line_number":3065,"context_line":"        row \u003d fakes.FakeOvsdbRow.create_one_ovsdb_row("},{"line_number":3066,"context_line":"            attrs\u003dattrs)"},{"line_number":3067,"context_line":"        self.switch_port_event.run(mock.ANY, row, row)"},{"line_number":3068,"context_line":"        self.mock_add_request.assert_not_called()"},{"line_number":3069,"context_line":""},{"line_number":3070,"context_line":"    @mock.patch.object(ovn_helper.OvnProviderHelper, \u0027_execute_commands\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"cdf79767_a3d211a3","line":3067,"range":{"start_line":3067,"start_character":0,"end_line":3067,"end_character":54},"in_reply_to":"7acde634_512b0901","updated":"2023-07-20 07:38:29.000000000","message":"done, good catch!","commit_id":"5cd54c06dcdfb4dc1acfb597d5cb5fec6afca1d3"}]}
