)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"47e5b353e914c16acccc3a63676336f2bd70944d","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This patch improves the ``PortBindingUpdateVirtualPortsEvent``"},{"line_number":10,"context_line":"match filter. These are the new conditions:"},{"line_number":11,"context_line":"* Event delete: that happens when the port binding has been deleted"},{"line_number":12,"context_line":"  because the port is not longer bound or the port has been"},{"line_number":13,"context_line":"  deleted. That will remove the Neutron port host name."},{"line_number":14,"context_line":"  NOTE: in case the Neutron port has been deleted, the method"},{"line_number":15,"context_line":"  ``Ml2Plugin.update_virtual_port_host`` won\u0027t update (create) a new"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"33b1ab63_a425354e","line":12,"updated":"2023-05-24 21:06:59.000000000","message":"no longer bound","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"63ea9c8bb53b40ea206a9a1edee9458e80cb60e3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch improves the ``PortBindingUpdateVirtualPortsEvent``"},{"line_number":10,"context_line":"match filter. These are the new conditions:"},{"line_number":11,"context_line":"* Event delete: that happens when the port binding has been deleted"},{"line_number":12,"context_line":"  because the port is not longer bound or the port has been"},{"line_number":13,"context_line":"  deleted. That will remove the Neutron port host name."},{"line_number":14,"context_line":"  NOTE: in case the Neutron port has been deleted, the method"},{"line_number":15,"context_line":"  ``Ml2Plugin.update_virtual_port_host`` won\u0027t update (create) a new"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"f2a36498_f28bd3f7","line":12,"in_reply_to":"33b1ab63_a425354e","updated":"2023-05-25 15:02:05.000000000","message":"Done","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"47e5b353e914c16acccc3a63676336f2bd70944d","unresolved":true,"context_lines":[{"line_number":15,"context_line":"  ``Ml2Plugin.update_virtual_port_host`` won\u0027t update (create) a new"},{"line_number":16,"context_line":"  PortBinding object."},{"line_number":17,"context_line":"* If the new register has virtual_parents but not the old one, that"},{"line_number":18,"context_line":"  means the ovn-controller has recived traffic with the VIP from"},{"line_number":19,"context_line":"  this port. The port host ID must be set."},{"line_number":20,"context_line":"* If the virtual parents have changed, the port host ID must be"},{"line_number":21,"context_line":"  updated."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"e3f198b0_b8ec1c40","line":18,"updated":"2023-05-24 21:06:59.000000000","message":"received","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"63ea9c8bb53b40ea206a9a1edee9458e80cb60e3","unresolved":false,"context_lines":[{"line_number":15,"context_line":"  ``Ml2Plugin.update_virtual_port_host`` won\u0027t update (create) a new"},{"line_number":16,"context_line":"  PortBinding object."},{"line_number":17,"context_line":"* If the new register has virtual_parents but not the old one, that"},{"line_number":18,"context_line":"  means the ovn-controller has recived traffic with the VIP from"},{"line_number":19,"context_line":"  this port. The port host ID must be set."},{"line_number":20,"context_line":"* If the virtual parents have changed, the port host ID must be"},{"line_number":21,"context_line":"  updated."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"6e0ebdf7_1d64cfd9","line":18,"in_reply_to":"e3f198b0_b8ec1c40","updated":"2023-05-25 15:02:05.000000000","message":"Done","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b84375ca53dcad0d9fcd407f9d17e4e4461ecc8a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5c1bcbf7_6bc62ff0","updated":"2023-05-23 14:46:56.000000000","message":"recheck unrelated FT test","commit_id":"c4404071510b3a1aa4a65875cc8326c03bcf681e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2b006137c83350434758fd4627126f24f571c23b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d432e4e5_7b0cc1cb","updated":"2023-05-22 17:21:57.000000000","message":"recheck unrelated FT test","commit_id":"c4404071510b3a1aa4a65875cc8326c03bcf681e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5ad499c2da69c442f3df8de0fa1288cb898480df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c1f6fbf7_34bdeade","updated":"2023-05-24 14:20:17.000000000","message":"Thanks Rodolfo","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"47e5b353e914c16acccc3a63676336f2bd70944d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"80672d5c_689f3e97","updated":"2023-05-24 21:06:59.000000000","message":"What I lack in the patch commit message is an explanation of what changed in the newer ovn version. Does it now trigger deletes for port bindings that were not triggered before? something else?\n\nThe logic seems correct, I just don\u0027t have the full picture of what made the difference in ovn.","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"63ea9c8bb53b40ea206a9a1edee9458e80cb60e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8a1b188d_d0a9eb97","in_reply_to":"80672d5c_689f3e97","updated":"2023-05-25 15:02:05.000000000","message":"I\u0027m missing this explanation. I\u0027ll push a new PS.","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"f817bd6ced5b2f8d12ec03a8f66c7163550323f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"64cc09ea_93ff252b","updated":"2023-05-30 15:29:09.000000000","message":"Thanks a lot for the explanation in the commit message, exactly what I was missing before!","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0374f547e617579fc4200d7c2e80a23b6b20f683","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6355c761_6f106103","updated":"2023-06-06 09:55:44.000000000","message":"recheck docs","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a0f74c4cbd952815267f55d815a36849ba8d0c8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ddb54168_e2bc38c3","updated":"2023-06-06 13:51:50.000000000","message":"recheck fullstack","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"dbd94ea83b00e54d7ef8fdb56713d11d74f409cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"772a7237_65d223b8","updated":"2023-06-01 09:08:20.000000000","message":"recheck grenade","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"588455faf1348591070c551f0a5b5e1f2cc69553","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"903feef0_188507fa","updated":"2023-06-02 10:46:58.000000000","message":"recheck neutron-fullstack-with-uwsgi","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"245db9c5f1886f51deb2b22e2a7f46351b608d97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a1412ad1_47cd2bd4","updated":"2023-06-02 15:48:24.000000000","message":"recheck neutron-fullstack-with-uwsgi","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f54dcc4de8fc5e231a97ad286144342152a45c0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4f280880_e93ec84d","updated":"2023-06-02 07:54:12.000000000","message":"recheck neutron-ovs-grenade-multinode","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fedeff978603b31893cd9593ab5c581aca8ddb58","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6898bb50_eed625e7","updated":"2023-06-03 17:04:18.000000000","message":"recheck neutron-ovs-grenade-multinode","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c1940c4d4c7c99b0278560b164c5640f0d5f74de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4e2688da_f6d5813b","updated":"2023-06-05 14:40:34.000000000","message":"recheck neutron-ovs-tempest-multinode-full","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"02620dfa5af5d17d7ee4b0fd7fee337dcd7dbf71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1a4112ce_f82ad2a1","updated":"2023-06-05 09:45:16.000000000","message":"recheck tempest","commit_id":"2fbfe3855ea59250bba1ff01f0d97ddfb46d2511"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"1466b99a5b33e64fd5fb0c664dc1b88052be42bc","unresolved":true,"context_lines":[{"line_number":566,"context_line":"        elif not virtual_parents and old_virtual_parents:"},{"line_number":567,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."},{"line_number":568,"context_line":"            return True"},{"line_number":569,"context_line":"        return False"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def run(self, event, row, old):"},{"line_number":572,"context_line":"        if event \u003d\u003d self.ROW_DELETE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"525af908_0529a05b","line":569,"updated":"2023-05-23 18:34:32.000000000","message":"I know I\u0027m missing something (or need more coffee), but with all these checks isn\u0027t this all equivalent now to:\n\n        if virtual_parents !\u003d old_virtual_parents:\n            return True\n        return False\n\nOr even shorter:\n\n        return virtual_parents !\u003d old_virtual_parents\n\nIt doesn\u0027t have all the nice comments, but essentially if they are different we should return True, right? There are no unit tests to catch my bad coding assumptions.","commit_id":"c4404071510b3a1aa4a65875cc8326c03bcf681e"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"0aa4270ab97ab1f81df95678b2c4ed5db1e277ec","unresolved":true,"context_lines":[{"line_number":566,"context_line":"        elif not virtual_parents and old_virtual_parents:"},{"line_number":567,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."},{"line_number":568,"context_line":"            return True"},{"line_number":569,"context_line":"        return False"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def run(self, event, row, old):"},{"line_number":572,"context_line":"        if event \u003d\u003d self.ROW_DELETE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"701dea8b_6d37910f","line":569,"in_reply_to":"525af908_0529a05b","updated":"2023-05-24 06:00:30.000000000","message":"I think so too!","commit_id":"c4404071510b3a1aa4a65875cc8326c03bcf681e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e207626d0533772b6a29efb5b21fafe7bd7da2fb","unresolved":true,"context_lines":[{"line_number":566,"context_line":"        elif not virtual_parents and old_virtual_parents:"},{"line_number":567,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."},{"line_number":568,"context_line":"            return True"},{"line_number":569,"context_line":"        return False"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def run(self, event, row, old):"},{"line_number":572,"context_line":"        if event \u003d\u003d self.ROW_DELETE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ae532da6_a484bcb4","line":569,"in_reply_to":"701dea8b_6d37910f","updated":"2023-05-24 08:41:11.000000000","message":"You\u0027re right but I think that with comments from Rodolfo here it\u0027s maybe easier to read and understand all possible different cases","commit_id":"c4404071510b3a1aa4a65875cc8326c03bcf681e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f34073619dce5d9396cdcc9c711b0537a8f0ac0b","unresolved":false,"context_lines":[{"line_number":566,"context_line":"        elif not virtual_parents and old_virtual_parents:"},{"line_number":567,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."},{"line_number":568,"context_line":"            return True"},{"line_number":569,"context_line":"        return False"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    def run(self, event, row, old):"},{"line_number":572,"context_line":"        if event \u003d\u003d self.ROW_DELETE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1bad62_78bc29e2","line":569,"in_reply_to":"ae532da6_a484bcb4","updated":"2023-05-24 14:08:23.000000000","message":"You are right, but as Slawek said, I\u0027m trying to document the 3 possible decision branches. In order to improve the code, I\u0027ll use the single comparison proposed and I\u0027ll document the decision branches inside.","commit_id":"c4404071510b3a1aa4a65875cc8326c03bcf681e"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"47e5b353e914c16acccc3a63676336f2bd70944d","unresolved":true,"context_lines":[{"line_number":559,"context_line":"            # The port has received a virtual parent and now is bound."},{"line_number":560,"context_line":"            # 2) elif (virtual_parents and old_virtual_parents and"},{"line_number":561,"context_line":"            #          old_virtual_parents !\u003d virtual_parents):"},{"line_number":562,"context_line":"            # If the port virtual parents have change (the VIP is bound to"},{"line_number":563,"context_line":"            # another host because its own by other port)."},{"line_number":564,"context_line":"            # 3) if not virtual_parents and old_virtual_parents:"},{"line_number":565,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."}],"source_content_type":"text/x-python","patch_set":3,"id":"4e2d793b_da82e4dd","line":562,"updated":"2023-05-24 21:06:59.000000000","message":"have changed","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8de73b31d1ef16090ac76da359fadd74df723fc3","unresolved":false,"context_lines":[{"line_number":559,"context_line":"            # The port has received a virtual parent and now is bound."},{"line_number":560,"context_line":"            # 2) elif (virtual_parents and old_virtual_parents and"},{"line_number":561,"context_line":"            #          old_virtual_parents !\u003d virtual_parents):"},{"line_number":562,"context_line":"            # If the port virtual parents have change (the VIP is bound to"},{"line_number":563,"context_line":"            # another host because its own by other port)."},{"line_number":564,"context_line":"            # 3) if not virtual_parents and old_virtual_parents:"},{"line_number":565,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."}],"source_content_type":"text/x-python","patch_set":3,"id":"8ce3e850_48062876","line":562,"in_reply_to":"4e2d793b_da82e4dd","updated":"2023-05-25 07:09:30.000000000","message":"Done","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"47e5b353e914c16acccc3a63676336f2bd70944d","unresolved":true,"context_lines":[{"line_number":560,"context_line":"            # 2) elif (virtual_parents and old_virtual_parents and"},{"line_number":561,"context_line":"            #          old_virtual_parents !\u003d virtual_parents):"},{"line_number":562,"context_line":"            # If the port virtual parents have change (the VIP is bound to"},{"line_number":563,"context_line":"            # another host because its own by other port)."},{"line_number":564,"context_line":"            # 3) if not virtual_parents and old_virtual_parents:"},{"line_number":565,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."},{"line_number":566,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":3,"id":"8300b247_0b3803dc","line":563,"updated":"2023-05-24 21:06:59.000000000","message":"it\u0027s owned by another port","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8de73b31d1ef16090ac76da359fadd74df723fc3","unresolved":false,"context_lines":[{"line_number":560,"context_line":"            # 2) elif (virtual_parents and old_virtual_parents and"},{"line_number":561,"context_line":"            #          old_virtual_parents !\u003d virtual_parents):"},{"line_number":562,"context_line":"            # If the port virtual parents have change (the VIP is bound to"},{"line_number":563,"context_line":"            # another host because its own by other port)."},{"line_number":564,"context_line":"            # 3) if not virtual_parents and old_virtual_parents:"},{"line_number":565,"context_line":"            # All virtual parent ports are removed, the VIP is unbound."},{"line_number":566,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":3,"id":"3999a5d4_400fc139","line":563,"in_reply_to":"8300b247_0b3803dc","updated":"2023-05-25 07:09:30.000000000","message":"Done","commit_id":"75d85fdd2db2be690fd90b89645f78499fc78846"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"ce20531f01ba0e2127b36d23a24b63063732ea32","unresolved":true,"context_lines":[{"line_number":2073,"context_line":"            for pb in pbindings:"},{"line_number":2074,"context_line":"                pb.delete()"},{"line_number":2075,"context_line":""},{"line_number":2076,"context_line":"            if not pbindings:"},{"line_number":2077,"context_line":"                # The port has been deleted and there is no need to create a"},{"line_number":2078,"context_line":"                # new port binding."},{"line_number":2079,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":1,"id":"0471b46e_f93fe3fc","line":2076,"updated":"2023-05-19 20:29:27.000000000","message":"This should go above the for loop, even if that loop isn\u0027t going to do anything if there are no bindings.","commit_id":"fba2b4d5065a85b35103fa9573b849eb738b0f30"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"85b57ee263a72f30ffbab3fcdf91af35f9115ff3","unresolved":false,"context_lines":[{"line_number":2073,"context_line":"            for pb in pbindings:"},{"line_number":2074,"context_line":"                pb.delete()"},{"line_number":2075,"context_line":""},{"line_number":2076,"context_line":"            if not pbindings:"},{"line_number":2077,"context_line":"                # The port has been deleted and there is no need to create a"},{"line_number":2078,"context_line":"                # new port binding."},{"line_number":2079,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":1,"id":"02685b46_f70d79cf","line":2076,"in_reply_to":"0471b46e_f93fe3fc","updated":"2023-05-22 15:15:42.000000000","message":"Done","commit_id":"fba2b4d5065a85b35103fa9573b849eb738b0f30"}]}
