)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"443a47c3569a6c62a4eb2af633b318b68597f12e","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Install DVR src to mac flow for AAPs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add missing dvr flows for mac address specified in AAPs."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #2093248"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"58a3dcaa_a600a20d","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":15},"updated":"2025-01-13 10:37:42.000000000","message":"DVR, as used before. I would also use MAC instead of mac.","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"443a47c3569a6c62a4eb2af633b318b68597f12e","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Install DVR src to mac flow for AAPs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add missing dvr flows for mac address specified in AAPs."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #2093248"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"8e8e61ed_2db4f182","line":9,"range":{"start_line":9,"start_character":51,"end_line":9,"end_character":55},"updated":"2025-01-13 10:37:42.000000000","message":"We can use the acronym in the title (to save characters) but please don\u0027t use it in the description","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d5cfa921250d2fde3ee54a2cbd9fef6b13a243eb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Install DVR src to mac flow for AAPs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add missing dvr flows for mac address specified in AAPs."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #2093248"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fe0814a4_6217f559","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":15},"in_reply_to":"58a3dcaa_a600a20d","updated":"2025-01-13 11:23:12.000000000","message":"Done","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d5cfa921250d2fde3ee54a2cbd9fef6b13a243eb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Install DVR src to mac flow for AAPs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add missing dvr flows for mac address specified in AAPs."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Closes-Bug: #2093248"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"e3805c1b_caf03450","line":9,"range":{"start_line":9,"start_character":51,"end_line":9,"end_character":55},"in_reply_to":"8e8e61ed_2db4f182","updated":"2025-01-13 11:23:12.000000000","message":"Done","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"ee126a24a9751b35bb996e7bde13e2b188e7e9b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2087650a_8c324437","updated":"2025-01-09 15:17:20.000000000","message":"recheck neutron-fullstack","commit_id":"9908bd61587a8f510466b4f4d57a14f33614d9b5"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d5cfa921250d2fde3ee54a2cbd9fef6b13a243eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"5fc94652_66dc1996","updated":"2025-01-13 11:23:12.000000000","message":"thanks for review Rodolfo","commit_id":"47463fe16e8af86972bacd1b43d2fbbdc9dbcfa8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"23c47a82c9362e8a29d25dc68fa657f3d6df1713","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"cf2c4315_79921c8f","updated":"2025-01-13 15:36:30.000000000","message":"-1 just for release note","commit_id":"ea5f1e3e30bfe0d1fbc81cff0855dd63475d9907"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"110bd439a01f420e528517bce88c215c6b753ad7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d8ed546d_bc94e31a","updated":"2025-01-15 13:21:15.000000000","message":"Hi Vasyl, please wait to re-check this until https://review.opendev.org/c/openstack/neutron/+/939315 has merged as the neutron gate is currently broken. Also, when doing a re-check add a reason, something like \u0027recheck neutron-functional\u0027, assuming that you have inspected the failing test logs and determined it was not due to code in the patch. Thanks","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4caffe55a4a8d157e3999fcf1b5148cfe5fe5a86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"89d3d70e_aca16f19","updated":"2025-01-13 18:25:31.000000000","message":"I just updated the release note text with a missing \"a\"","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"17d11f485c653c8fbbe5a83678f18804fc29c8c9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"4def7d9e_51c84884","updated":"2025-01-15 20:44:02.000000000","message":"Vasyl - please do not just run \u0027recheck\u0027, you need to specify a reason afterwards, like \u0027recheck bug 123456\u0027.\n\nAlso, from looking at the functional failure this looks like an occurrence of a bug, https://bugs.launchpad.net/neutron/+bug/2095034 - we need to wait for a fix to land for that before we can reliably merge anything.","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a55b24ff4f8ee324ad8001d5fce209fc1e4caeb4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3a2464e0_2415812d","updated":"2025-01-14 13:38:04.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d617ca5fa084572958dca42a102fb9c74b441977","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3ee40a28_e2ce57e6","updated":"2025-01-15 07:00:18.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"4cfd19714bfb182c3440d7cd32d6994dac7d6c59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"425710e2_df653950","updated":"2025-01-15 20:11:23.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"63fddbda157916ca13d5027be88668394fbd1988","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"5aeaf455_e6a095ee","updated":"2025-01-15 18:03:31.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"881f0f87f43ba97e0787fd7bd122bb2d81f5002c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"66647a0c_1c5ed867","updated":"2025-01-14 22:22:19.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"524499b574be71dde2d6f38d851ae7d5a4ba1b87","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"6a06fc07_4ddad1db","updated":"2025-01-15 10:34:56.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"12923b68f166fb00f63b018ad634c338ef6eb3b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"8fd11275_3df70889","updated":"2025-01-14 19:16:42.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"0e51f05e4534847eb02d3fdbc608a8a7be0c124a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"f9700b34_9dce69ce","updated":"2025-01-14 16:21:39.000000000","message":"recheck","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"a68ff1e2b51fb6f963d5a08a72e8fbb61437db09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"6fa85992_2a6e4278","updated":"2025-01-16 04:11:12.000000000","message":"recheck Lord help","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"49c3975eaa12e996d6b7fc9f2d5cfc47a989e54f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7da92dcf_59317068","updated":"2025-01-15 23:25:29.000000000","message":"recheck functional job fix has merged","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"41b841a1bc7cda1126c9bd14ae6a91947b59b332","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d3ac9edf_762df32b","updated":"2025-01-16 14:55:32.000000000","message":"recheck functional timeout ovs","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"8510495a8728ce3c2f6a2d2453fdd99a6f6ba022","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"653324ec_93cd1c51","updated":"2025-01-16 07:14:22.000000000","message":"recheck rally keystone ssl timeout","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"7971dafee7e8f98e3ad66b397c70614dcc00908d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"bccf489a_46c57aa9","in_reply_to":"d8ed546d_bc94e31a","updated":"2025-01-15 14:18:34.000000000","message":"ack sorry, I was looking at -functional job, but did not look at ovn-rally","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"}],"neutron/api/rpc/handlers/dvr_rpc.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"443a47c3569a6c62a4eb2af633b318b68597f12e","unresolved":true,"context_lines":[{"line_number":68,"context_line":"    @log_helpers.log_method_call"},{"line_number":69,"context_line":"    def get_ports(self, context, filters):"},{"line_number":70,"context_line":"        # NOTE(mtomaska): The MetadataRpcCallback (server side) API version 1.0"},{"line_number":71,"context_line":"        # exposes get_ports, under the PLUGIN topic and None namespace."},{"line_number":72,"context_line":"        cctxt \u003d self.client.prepare()"},{"line_number":73,"context_line":"        return cctxt.call(context, \u0027get_ports\u0027, filters\u003dfilters)"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"763d1a9b_dcbc60be","line":71,"range":{"start_line":71,"start_character":56,"end_line":71,"end_character":71},"updated":"2025-01-13 10:37:42.000000000","message":"no action: we need to continue with the RPC namespace segregation, I don\u0027t know why it was stopped.","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d5cfa921250d2fde3ee54a2cbd9fef6b13a243eb","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @log_helpers.log_method_call"},{"line_number":69,"context_line":"    def get_ports(self, context, filters):"},{"line_number":70,"context_line":"        # NOTE(mtomaska): The MetadataRpcCallback (server side) API version 1.0"},{"line_number":71,"context_line":"        # exposes get_ports, under the PLUGIN topic and None namespace."},{"line_number":72,"context_line":"        cctxt \u003d self.client.prepare()"},{"line_number":73,"context_line":"        return cctxt.call(context, \u0027get_ports\u0027, filters\u003dfilters)"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"1ba009f7_1aa88b67","line":71,"range":{"start_line":71,"start_character":56,"end_line":71,"end_character":71},"in_reply_to":"763d1a9b_dcbc60be","updated":"2025-01-13 11:23:12.000000000","message":"Acknowledged","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"aa88b1e48df7240dbc7a70502715859a699f07b1","unresolved":true,"context_lines":[{"line_number":786,"context_line":"    def _unbind_port_on_dvr_subnet(self, port, lvm):"},{"line_number":787,"context_line":"        ports \u003d self.plugin_rpc.get_ports(self.context,"},{"line_number":788,"context_line":"                                          filters\u003d{\u0027id\u0027: [port.vif_id]})"},{"line_number":789,"context_line":"        aaps \u003d []"},{"line_number":790,"context_line":"        if len(ports) \u003d\u003d 1:"},{"line_number":791,"context_line":"            aaps \u003d ports[0].get(\"allowed_address_pairs\", [])"},{"line_number":792,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"a61b63d4_9b8f07b5","line":789,"range":{"start_line":789,"start_character":12,"end_line":789,"end_character":13},"updated":"2025-01-09 08:27:28.000000000","message":"aap may be configured on multiple ports, we need to check other ports before taking decision that we have to remove rules for mac address.","commit_id":"5543c6af814491dd6b204896f6679b1d80ae26b5"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"9992a2f4738ad2604c5a1d681a2dc541e4c50bb0","unresolved":false,"context_lines":[{"line_number":786,"context_line":"    def _unbind_port_on_dvr_subnet(self, port, lvm):"},{"line_number":787,"context_line":"        ports \u003d self.plugin_rpc.get_ports(self.context,"},{"line_number":788,"context_line":"                                          filters\u003d{\u0027id\u0027: [port.vif_id]})"},{"line_number":789,"context_line":"        aaps \u003d []"},{"line_number":790,"context_line":"        if len(ports) \u003d\u003d 1:"},{"line_number":791,"context_line":"            aaps \u003d ports[0].get(\"allowed_address_pairs\", [])"},{"line_number":792,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"2ffda1c7_01f5d5a7","line":789,"range":{"start_line":789,"start_character":12,"end_line":789,"end_character":13},"in_reply_to":"a61b63d4_9b8f07b5","updated":"2025-01-09 10:46:57.000000000","message":"Done","commit_id":"5543c6af814491dd6b204896f6679b1d80ae26b5"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"443a47c3569a6c62a4eb2af633b318b68597f12e","unresolved":true,"context_lines":[{"line_number":582,"context_line":"                dst_port\u003ddst_port)"},{"line_number":583,"context_line":"            for aap in aaps:"},{"line_number":584,"context_line":"                aap_ip_cidr \u003d aap[\u0027ip_address\u0027].split(\"/\")"},{"line_number":585,"context_line":"                if len(aap_ip_cidr) \u003d\u003d 1 or int(aap_ip_cidr[1]) in [32, 128]:"},{"line_number":586,"context_line":"                    if ipam_utils.check_subnet_ip("},{"line_number":587,"context_line":"                            ldm.subnet[\u0027cidr\u0027], aap_ip_cidr[0]):"},{"line_number":588,"context_line":"                        self.int_br.install_dvr_to_src_mac("}],"source_content_type":"text/x-python","patch_set":10,"id":"00828241_adc3c254","line":585,"range":{"start_line":585,"start_character":16,"end_line":585,"end_character":77},"updated":"2025-01-13 10:37:42.000000000","message":"We have a method for this: neutron.common.utils.is_cidr_host","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d5cfa921250d2fde3ee54a2cbd9fef6b13a243eb","unresolved":false,"context_lines":[{"line_number":582,"context_line":"                dst_port\u003ddst_port)"},{"line_number":583,"context_line":"            for aap in aaps:"},{"line_number":584,"context_line":"                aap_ip_cidr \u003d aap[\u0027ip_address\u0027].split(\"/\")"},{"line_number":585,"context_line":"                if len(aap_ip_cidr) \u003d\u003d 1 or int(aap_ip_cidr[1]) in [32, 128]:"},{"line_number":586,"context_line":"                    if ipam_utils.check_subnet_ip("},{"line_number":587,"context_line":"                            ldm.subnet[\u0027cidr\u0027], aap_ip_cidr[0]):"},{"line_number":588,"context_line":"                        self.int_br.install_dvr_to_src_mac("}],"source_content_type":"text/x-python","patch_set":10,"id":"6f307dfc_50105ede","line":585,"range":{"start_line":585,"start_character":16,"end_line":585,"end_character":77},"in_reply_to":"00828241_adc3c254","updated":"2025-01-13 11:23:12.000000000","message":"Done","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"443a47c3569a6c62a4eb2af633b318b68597f12e","unresolved":true,"context_lines":[{"line_number":584,"context_line":"                aap_ip_cidr \u003d aap[\u0027ip_address\u0027].split(\"/\")"},{"line_number":585,"context_line":"                if len(aap_ip_cidr) \u003d\u003d 1 or int(aap_ip_cidr[1]) in [32, 128]:"},{"line_number":586,"context_line":"                    if ipam_utils.check_subnet_ip("},{"line_number":587,"context_line":"                            ldm.subnet[\u0027cidr\u0027], aap_ip_cidr[0]):"},{"line_number":588,"context_line":"                        self.int_br.install_dvr_to_src_mac("},{"line_number":589,"context_line":"                            network_type\u003dlvm.network_type,"},{"line_number":590,"context_line":"                            vlan_tag\u003dvlan_to_use,"}],"source_content_type":"text/x-python","patch_set":10,"id":"4ef774e3_817991b0","line":587,"range":{"start_line":587,"start_character":47,"end_line":587,"end_character":62},"updated":"2025-01-13 10:37:42.000000000","message":"Use netaddr\n```\nimport netaddr\naap_ip_cidr \u003d netaddr.IPNetwork(aap[\u0027ip_address\u0027])\nstr_needed \u003d str(aap_ip_cidr.ip)\n```","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"d5cfa921250d2fde3ee54a2cbd9fef6b13a243eb","unresolved":false,"context_lines":[{"line_number":584,"context_line":"                aap_ip_cidr \u003d aap[\u0027ip_address\u0027].split(\"/\")"},{"line_number":585,"context_line":"                if len(aap_ip_cidr) \u003d\u003d 1 or int(aap_ip_cidr[1]) in [32, 128]:"},{"line_number":586,"context_line":"                    if ipam_utils.check_subnet_ip("},{"line_number":587,"context_line":"                            ldm.subnet[\u0027cidr\u0027], aap_ip_cidr[0]):"},{"line_number":588,"context_line":"                        self.int_br.install_dvr_to_src_mac("},{"line_number":589,"context_line":"                            network_type\u003dlvm.network_type,"},{"line_number":590,"context_line":"                            vlan_tag\u003dvlan_to_use,"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a59eb0d_556b4f4d","line":587,"range":{"start_line":587,"start_character":47,"end_line":587,"end_character":62},"in_reply_to":"4ef774e3_817991b0","updated":"2025-01-13 11:23:12.000000000","message":"Done","commit_id":"b73414bdcda70fd4f1478a3dc3a2c5b810697641"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"293926407e63c2664629391acbd9b67615c6075f","unresolved":true,"context_lines":[{"line_number":582,"context_line":"                dst_port\u003ddst_port)"},{"line_number":583,"context_line":"            for aap in aaps:"},{"line_number":584,"context_line":"                aap_ip_cidr \u003d netaddr.IPNetwork(aap[\u0027ip_address\u0027])"},{"line_number":585,"context_line":"                if n_utils.is_cidr_host(str(aap_ip_cidr.cidr)):"},{"line_number":586,"context_line":"                    if ipam_utils.check_subnet_ip("},{"line_number":587,"context_line":"                            ldm.subnet[\u0027cidr\u0027], str(aap_ip_cidr.ip)):"},{"line_number":588,"context_line":"                        self.int_br.install_dvr_to_src_mac("}],"source_content_type":"text/x-python","patch_set":14,"id":"4b982bec_f8e32c3c","line":585,"updated":"2025-01-13 19:53:04.000000000","message":"I did just realized we are basically calling netaddr.IPNetwork() twice with the same value as is_cidr_host() is doing it as well, but I don\u0027t think we need to try and optimize that away at the moment.","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"f39d896095a93828ad1609d3fecee33ac038372f","unresolved":true,"context_lines":[{"line_number":582,"context_line":"                dst_port\u003ddst_port)"},{"line_number":583,"context_line":"            for aap in aaps:"},{"line_number":584,"context_line":"                aap_ip_cidr \u003d netaddr.IPNetwork(aap[\u0027ip_address\u0027])"},{"line_number":585,"context_line":"                if n_utils.is_cidr_host(str(aap_ip_cidr.cidr)):"},{"line_number":586,"context_line":"                    if ipam_utils.check_subnet_ip("},{"line_number":587,"context_line":"                            ldm.subnet[\u0027cidr\u0027], str(aap_ip_cidr.ip)):"},{"line_number":588,"context_line":"                        self.int_br.install_dvr_to_src_mac("}],"source_content_type":"text/x-python","patch_set":14,"id":"7c0ea3b2_84d99cd7","line":585,"in_reply_to":"4b982bec_f8e32c3c","updated":"2025-01-13 20:02:56.000000000","message":"thanks for review Brian, I will try to optimize it as follow up.","commit_id":"1364715541247d9aa941f3305acef4b8f9e37274"}],"releasenotes/notes/add-dvr-src-mac-flow-for-allowed-address-pairs-acd6d700cd7dd560.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"23c47a82c9362e8a29d25dc68fa657f3d6df1713","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix connection issue to allowed address pair address that is located"},{"line_number":5,"context_line":"    behind distributed virtual router by adding missing flow in table 1."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"2dab97b9_45f8cd1e","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":71},"updated":"2025-01-13 15:36:30.000000000","message":"I\u0027m not sure \u0027table 1\u0027 will mean anything to someone reading the release note, maybe just remove it? And for context, we should add a link to the bug:\n\nFor more information, see bug\n`2093248 \u003chttps://bugs.launchpad.net/neutron/+bug/2093248\u003e`_.","commit_id":"ea5f1e3e30bfe0d1fbc81cff0855dd63475d9907"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"4dd65eadff5121561c9beab7d4f07e04a4e1fc15","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fix connection issue to allowed address pair address that is located"},{"line_number":5,"context_line":"    behind distributed virtual router by adding missing flow in table 1."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"e058e927_a83a0850","line":5,"range":{"start_line":5,"start_character":61,"end_line":5,"end_character":71},"in_reply_to":"2dab97b9_45f8cd1e","updated":"2025-01-13 15:41:07.000000000","message":"Done","commit_id":"ea5f1e3e30bfe0d1fbc81cff0855dd63475d9907"}]}
