)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1ba6886ceaf25ed6788aed7ae2f65fbbd3a9bab8","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     liushy \u003cliuxie_11@163.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-10-15 20:20:11 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Only consider one IPv4 subnet when creating a FIP"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"To avoid creating redundant fixed IP addresses for the FIP port,"},{"line_number":10,"context_line":"we only consider one IPv4 subnet when creating a FIP"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7bfe1253_65c1c496","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":2},"updated":"2024-10-15 13:14:50.000000000","message":"Because of my code comment, this should change to something like \"Consider only the IPv4 subnets when creating a FIP\"","commit_id":"f55f23a02aa7869d9bf9314aba6885988b3e1a58"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"906b4a29b192a30eea2860c31c3fe6dcd39c3de9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"44af29ee_255f0258","updated":"2024-10-17 04:40:46.000000000","message":"recheck py39","commit_id":"d41446e51db9dade2d10614a79e32c102026e239"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"961fe998515b15590a24eabe203bed70ea86c83e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"94174365_1dfd0849","updated":"2024-10-17 10:05:32.000000000","message":"Set the service type of IPv6 subnet of external network should solve the problem. The service type should be \"network:router_gateway\". See the doc for more details: https://docs.openstack.org/neutron/latest/admin/config-service-subnets.html","commit_id":"0c9fc1a3b1c1869e137fb70970f647e8c0da6d2d"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"221a0f3a3281f409ef54c583b9c0c346fc602dfc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"da7bfc9f_9fb1d952","updated":"2024-10-17 08:57:18.000000000","message":"recheck `neutron-tempest-plugin-ovn`","commit_id":"0c9fc1a3b1c1869e137fb70970f647e8c0da6d2d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"23534361a1933e9db49ceb5ebe3e8190d31a82bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1215dd6f_59e64c23","updated":"2024-10-17 09:03:07.000000000","message":"recheck neutron-tempest-plugin-ovn","commit_id":"0c9fc1a3b1c1869e137fb70970f647e8c0da6d2d"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"e07a76309e43a7b79fee8db93a21f0e3b6194f15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"fce4e928_b1e7b13d","in_reply_to":"94174365_1dfd0849","updated":"2024-10-17 10:11:55.000000000","message":"But not set \"network:floatingip\" or \"[] empty type list\" for the external IPv6 subnet.","commit_id":"0c9fc1a3b1c1869e137fb70970f647e8c0da6d2d"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"afbef29f66e693f9e8b96a7d5e4944fce2dc29f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e1512188_feb3e2b5","in_reply_to":"fce4e928_b1e7b13d","updated":"2024-10-17 10:41:32.000000000","message":"@LIU Yulong, thanks for your advice. However, I have some concerns regarding your comments:\n\n1) We need to update all existing IPv6 subnets, as many users have not set the service_type to \"network:router_gateway\".\n\n2) Since FIP does not support IPv6, why don\u0027t we forbid the allocation of an IPv6 address for the FIP port?","commit_id":"0c9fc1a3b1c1869e137fb70970f647e8c0da6d2d"}],"neutron/db/ipam_pluggable_backend.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c8dc905a33dcd32766ceb146ecd59c1aae28c765","unresolved":true,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        v4, v6_stateful, v6_stateless \u003d self._classify_subnets("},{"line_number":268,"context_line":"            context, subnets)"},{"line_number":269,"context_line":"        if p[\u0027device_owner\u0027] \u003d\u003d constants.DEVICE_OWNER_FLOATINGIP:"},{"line_number":270,"context_line":"            v6_stateful, v6_stateless \u003d [], []"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        if fixed_configured:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fecfe6ed_da44f6a0","line":269,"range":{"start_line":269,"start_character":1,"end_line":269,"end_character":66},"updated":"2024-10-16 05:59:51.000000000","message":"We already have a method, called from ``_ipam_get_subnets`` that is ``Subnet.find_candidate_subnets``. This method uses the service type to filter the subnets. Inside ``_query_entity_service_subnets`` you can add the following filter:\n\n```\n# NOTE: floating IP port will receive only IPv4 addresses\nif service_type \u003d\u003d constants.DEVICE_OWNER_FLOATINGIP:\n    query \u003d query.filter(Subnet.ip_version.is_(4))\n```","commit_id":"e3f484f2948fa41190509199629cacb8027c7079"},{"author":{"_account_id":28056,"name":"Liushy","email":"liuxie_11@163.com","username":"liuxie_11"},"change_message_id":"fcb68925536d429289f3ba2c9a23bf082446c236","unresolved":true,"context_lines":[{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        v4, v6_stateful, v6_stateless \u003d self._classify_subnets("},{"line_number":268,"context_line":"            context, subnets)"},{"line_number":269,"context_line":"        if p[\u0027device_owner\u0027] \u003d\u003d constants.DEVICE_OWNER_FLOATINGIP:"},{"line_number":270,"context_line":"            v6_stateful, v6_stateless \u003d [], []"},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        if fixed_configured:"}],"source_content_type":"text/x-python","patch_set":4,"id":"2ca56905_6c55ebe5","line":269,"range":{"start_line":269,"start_character":1,"end_line":269,"end_character":66},"in_reply_to":"fecfe6ed_da44f6a0","updated":"2024-10-16 07:20:02.000000000","message":"Good idea! Thanks! I will upgrade it soon.","commit_id":"e3f484f2948fa41190509199629cacb8027c7079"}],"neutron/db/l3_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0893e9903909af64efa56b69b1487690def3daf5","unresolved":true,"context_lines":[{"line_number":1514,"context_line":"            for subnet in subnets:"},{"line_number":1515,"context_line":"                if subnet[\u0027ip_version\u0027] \u003d\u003d 4:"},{"line_number":1516,"context_line":"                    port[\u0027fixed_ips\u0027] \u003d [{\u0027subnet_id\u0027: subnet[\u0027id\u0027]}]"},{"line_number":1517,"context_line":"                    break"},{"line_number":1518,"context_line":"        # \u0027status\u0027 in port dict could not be updated by default, use"},{"line_number":1519,"context_line":"        # check_allow_post to stop the verification of system"},{"line_number":1520,"context_line":"        external_port \u003d plugin_utils.create_port("}],"source_content_type":"text/x-python","patch_set":2,"id":"21a6f624_f5737090","line":1517,"range":{"start_line":1517,"start_character":20,"end_line":1517,"end_character":25},"updated":"2024-10-15 13:13:42.000000000","message":"We can´t stop here. If the network has several IPv4 subnets, we need to provide all of them. The IPAM module will choose one of them to provide the IP address.\n\nIn other words: if the IP pool of this first subnet is empty (but we still have some free IPs on the second subnet), this port creation will fail but it should have succeeded.","commit_id":"f55f23a02aa7869d9bf9314aba6885988b3e1a58"}],"neutron/objects/subnet.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fa1dfe71dda4742172f084d87ee1dc53c0347353","unresolved":true,"context_lines":[{"line_number":187,"context_line":"                 service_type \u003d\u003d const.DEVICE_OWNER_DHCP)))"},{"line_number":188,"context_line":"        # NOTE: floating IP port will receive only IPv4 addresses"},{"line_number":189,"context_line":"        if service_type \u003d\u003d const.DEVICE_OWNER_FLOATINGIP:"},{"line_number":190,"context_line":"            query \u003d query.filter(Subnet.ip_version \u003d\u003d 4)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        if query._group_by_clauses:"},{"line_number":193,"context_line":"            # If the \"Subnet\" query has a \"GROUP BY\" clause (that happens when"}],"source_content_type":"text/x-python","patch_set":8,"id":"937752d9_70f6064f","line":190,"range":{"start_line":190,"start_character":54,"end_line":190,"end_character":55},"updated":"2024-10-16 15:41:46.000000000","message":"nit: since we\u0027re including neutron-lib constants should use it here, const.IP_VERSION_4\n\nSame in test file","commit_id":"0206868be63987bc456373ddd3712b4afc7c8530"}]}
