)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"250919d35cd611ce2b14f5f44cca81444afafdab","unresolved":true,"context_lines":[{"line_number":23,"context_line":"os_admin.network_client to list all ports, then pick the first"},{"line_number":24,"context_line":"free IP from the allocation pool."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Related-Bug: OSPNET-1250"},{"line_number":27,"context_line":"Assisted-By: Claude Code Opus 4.6"},{"line_number":28,"context_line":"Change-Id: I2db00029a721e6a8b1ecddd971dd551706c26a63"},{"line_number":29,"context_line":"Signed-off-by: Renjing Xiao \u003crxiao@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"f493b3db_4bb915ac","line":26,"updated":"2026-06-09 22:23:38.000000000","message":"Is there a launchpad bug for this? I do not have access to this one.","commit_id":"57f7203521bee8c332d6bf4af07fe28defd529dc"},{"author":{"_account_id":37280,"name":"Renjing Xiao","display_name":"Renjing Xiao","email":"rxiao@redhat.com","username":"rxiao"},"change_message_id":"970055db05c8c739f685697cee133aa9097dd941","unresolved":true,"context_lines":[{"line_number":23,"context_line":"os_admin.network_client to list all ports, then pick the first"},{"line_number":24,"context_line":"free IP from the allocation pool."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Related-Bug: OSPNET-1250"},{"line_number":27,"context_line":"Assisted-By: Claude Code Opus 4.6"},{"line_number":28,"context_line":"Change-Id: I2db00029a721e6a8b1ecddd971dd551706c26a63"},{"line_number":29,"context_line":"Signed-off-by: Renjing Xiao \u003crxiao@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"61a748bc_1b5465e5","line":26,"in_reply_to":"f493b3db_4bb915ac","updated":"2026-06-10 10:38:27.000000000","message":"Hi, I don\u0027t see a LP for this. The context is the test for https://bugs.launchpad.net/neutron/+bug/1942794 fails in environments where OVN and DHCP agent coexist, because it expects 1 port but 4 ports are created. It passes when DHCP agent is disabled but that is needed for ironic.","commit_id":"57f7203521bee8c332d6bf4af07fe28defd529dc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":37280,"name":"Renjing Xiao","display_name":"Renjing Xiao","email":"rxiao@redhat.com","username":"rxiao"},"change_message_id":"d7e375f0f9f083e8cbebd10a2415f22ee9235fe8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c1bc116c_3e7a4668","updated":"2026-06-10 16:00:49.000000000","message":"recheck","commit_id":"23871997345aae52115f2321a0d37303dab6ff3c"},{"author":{"_account_id":37280,"name":"Renjing Xiao","display_name":"Renjing Xiao","email":"rxiao@redhat.com","username":"rxiao"},"change_message_id":"2bf2df445657e428e3af089bee2491aac285a890","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e867f2c4_44e68ce5","updated":"2026-06-11 00:18:24.000000000","message":"recheck","commit_id":"23871997345aae52115f2321a0d37303dab6ff3c"}],"neutron_tempest_plugin/scenario/test_dhcp.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"250919d35cd611ce2b14f5f44cca81444afafdab","unresolved":true,"context_lines":[{"line_number":138,"context_line":"            # is created with device_owner\u003d\u0027network:dhcp\u0027"},{"line_number":139,"context_line":"            dhcp_ports \u003d self.client.list_ports("},{"line_number":140,"context_line":"                network_id\u003dself.network[\u0027id\u0027],"},{"line_number":141,"context_line":"                device_owner\u003dconstants.DEVICE_OWNER_DHCP)[\u0027ports\u0027]"},{"line_number":142,"context_line":"            # in other cases, like ML2/OVN, the subnet port used for metadata"},{"line_number":143,"context_line":"            # is created with device_owner\u003d\u0027network:distributed\u0027"},{"line_number":144,"context_line":"            distributed_ports \u003d self.client.list_ports("}],"source_content_type":"text/x-python","patch_set":1,"id":"e1d102ae_e47b5e78","side":"PARENT","line":141,"updated":"2026-06-09 22:23:38.000000000","message":"I am a little confused since the commit message mentions co-existence with HA DHCP servers, but you are removing the code that retrieves those IPs.","commit_id":"8768a861572317b16b8f5487a6babb8bb386ba94"},{"author":{"_account_id":37280,"name":"Renjing Xiao","display_name":"Renjing Xiao","email":"rxiao@redhat.com","username":"rxiao"},"change_message_id":"970055db05c8c739f685697cee133aa9097dd941","unresolved":true,"context_lines":[{"line_number":138,"context_line":"            # is created with device_owner\u003d\u0027network:dhcp\u0027"},{"line_number":139,"context_line":"            dhcp_ports \u003d self.client.list_ports("},{"line_number":140,"context_line":"                network_id\u003dself.network[\u0027id\u0027],"},{"line_number":141,"context_line":"                device_owner\u003dconstants.DEVICE_OWNER_DHCP)[\u0027ports\u0027]"},{"line_number":142,"context_line":"            # in other cases, like ML2/OVN, the subnet port used for metadata"},{"line_number":143,"context_line":"            # is created with device_owner\u003d\u0027network:distributed\u0027"},{"line_number":144,"context_line":"            distributed_ports \u003d self.client.list_ports("}],"source_content_type":"text/x-python","patch_set":1,"id":"af15ca3b_0edc36f3","side":"PARENT","line":141,"in_reply_to":"e1d102ae_e47b5e78","updated":"2026-06-10 10:38:27.000000000","message":"network:dhcp query is removed from _get_dhcp_ports because this function\u0027s purpose is to find the one port to modify, so the DHCP agent ports are not needed here. The DHCP agent IPs are accounted for in the IP selection below, where os_admin.network_client lists all ports to avoid IP conflicts.","commit_id":"8768a861572317b16b8f5487a6babb8bb386ba94"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"250919d35cd611ce2b14f5f44cca81444afafdab","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        def _get_dhcp_ports():"},{"line_number":137,"context_line":"            # in ML2/OVN, the subnet port used for metadata"},{"line_number":138,"context_line":"            # is created with device_owner\u003d\u0027network:distributed\u0027"},{"line_number":139,"context_line":"            distributed_ports \u003d self.client.list_ports("},{"line_number":140,"context_line":"                network_id\u003dself.network[\u0027id\u0027],"},{"line_number":141,"context_line":"                device_owner\u003dconstants.DEVICE_OWNER_DISTRIBUTED)[\u0027ports\u0027]"},{"line_number":142,"context_line":"            self.dhcp_ports \u003d distributed_ports"}],"source_content_type":"text/x-python","patch_set":1,"id":"ac4f1069_cdf8e64b","line":139,"range":{"start_line":139,"start_character":12,"end_line":139,"end_character":29},"updated":"2026-06-09 22:23:38.000000000","message":"s/self.dhcp_ports - as distributed_ports is only used for assignment","commit_id":"57f7203521bee8c332d6bf4af07fe28defd529dc"},{"author":{"_account_id":37280,"name":"Renjing Xiao","display_name":"Renjing Xiao","email":"rxiao@redhat.com","username":"rxiao"},"change_message_id":"970055db05c8c739f685697cee133aa9097dd941","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        def _get_dhcp_ports():"},{"line_number":137,"context_line":"            # in ML2/OVN, the subnet port used for metadata"},{"line_number":138,"context_line":"            # is created with device_owner\u003d\u0027network:distributed\u0027"},{"line_number":139,"context_line":"            distributed_ports \u003d self.client.list_ports("},{"line_number":140,"context_line":"                network_id\u003dself.network[\u0027id\u0027],"},{"line_number":141,"context_line":"                device_owner\u003dconstants.DEVICE_OWNER_DISTRIBUTED)[\u0027ports\u0027]"},{"line_number":142,"context_line":"            self.dhcp_ports \u003d distributed_ports"}],"source_content_type":"text/x-python","patch_set":1,"id":"f7cbbcb9_5712adce","line":139,"range":{"start_line":139,"start_character":12,"end_line":139,"end_character":29},"in_reply_to":"ac4f1069_cdf8e64b","updated":"2026-06-10 10:38:27.000000000","message":"Done","commit_id":"57f7203521bee8c332d6bf4af07fe28defd529dc"}]}
