)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"ad2fdb103e3500f6cae3d943edc059fd2adf339e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1f141e65_4659153d","updated":"2026-03-19 09:50:37.000000000","message":"Hi Chunwong,\nI have just stack the fix on top of the reproducer in a relation chain.\nI have fixed the reproducer in this patch and change a couple of minor things.","commit_id":"2a80f8d57ac65df31b696769b6c09026bbb80a94"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"f8fd92622f619d588512dd04afc097e339036e92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"60701d33_e67e272a","in_reply_to":"1f141e65_4659153d","updated":"2026-03-19 09:52:55.000000000","message":"Sorry, I mispelled your name Chungwon.","commit_id":"2a80f8d57ac65df31b696769b6c09026bbb80a94"},{"author":{"_account_id":35674,"name":"ChungWon Lee","display_name":"cw0306-lee","email":"cw0306.lee@samsung.com","username":"cw0306-lee"},"change_message_id":"e872da65b89b0e949ae3c17e7ce62db743cb5fb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"06a9ce5c_a5afaab9","in_reply_to":"60701d33_e67e272a","updated":"2026-03-19 09:58:37.000000000","message":"Hi, uggla! Thank you for fix and adding reproducer test!","commit_id":"2a80f8d57ac65df31b696769b6c09026bbb80a94"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e4452cb53fe1145cbf16999900f9b9089b1606a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a5ebd9bf_58f34069","updated":"2026-04-24 11:52:54.000000000","message":"i cant review this and it parent patch  today but i think my orginal feedback ahs been resolved","commit_id":"96a0b17c7cdd9e64c558b6f005ff2b260020cbe6"},{"author":{"_account_id":35674,"name":"ChungWon Lee","display_name":"cw0306-lee","email":"cw0306.lee@samsung.com","username":"cw0306-lee"},"change_message_id":"0f51ba7a81a6e3d25a0486a3a280dbf1423d88ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5434f987_84c19774","updated":"2026-04-23 07:36:56.000000000","message":"recheck","commit_id":"96a0b17c7cdd9e64c558b6f005ff2b260020cbe6"},{"author":{"_account_id":35674,"name":"ChungWon Lee","display_name":"cw0306-lee","email":"cw0306.lee@samsung.com","username":"cw0306-lee"},"change_message_id":"38e8fe41b6f789c589acc21712e0a8c4b021398c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f5d0efb0_95d21b09","updated":"2026-04-23 11:14:33.000000000","message":"recheck","commit_id":"96a0b17c7cdd9e64c558b6f005ff2b260020cbe6"},{"author":{"_account_id":35674,"name":"ChungWon Lee","display_name":"cw0306-lee","email":"cw0306.lee@samsung.com","username":"cw0306-lee"},"change_message_id":"8f2c7962f7a2b1f1101f66d61b08d089c7c75820","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9c46f204_6ee9db85","updated":"2026-04-24 02:17:33.000000000","message":"recheck - different test failed","commit_id":"96a0b17c7cdd9e64c558b6f005ff2b260020cbe6"}],"nova/network/neutron.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6f69488385b9298e1895b6cea7a163159066ef6e","unresolved":true,"context_lines":[{"line_number":846,"context_line":"                raise exception.NoUniqueMatch("},{"line_number":847,"context_line":"                    _(\"Multiple security groups found matching\""},{"line_number":848,"context_line":"                      \" \u0027%s\u0027. Use an ID to be more specific.\")"},{"line_number":849,"context_line":"                    % security_group)"},{"line_number":850,"context_line":"            # Check if the security group is in the name-to-ID dictionary"},{"line_number":851,"context_line":"            # as if a user names the security group the same as"},{"line_number":852,"context_line":"            # another\u0027s security groups uuid, the name takes priority."}],"source_content_type":"text/x-python","patch_set":3,"id":"4abdf064_10cf13ce","line":849,"updated":"2026-03-19 20:45:57.000000000","message":"Ok, I have not fully reviewed this, but this is similar, if slightly\ndifferent, from my original fix for this bug:\n\nhttps://review.opendev.org/c/openstack/nova/+/946079/6/nova/network/neutron.py\n\nThe primary difference lies in the resolution order. The old approach\n(Patch 946079) prioritizes UUIDs by checking the ID-to-ID mapping before the\nName-to-ID mapping. In contrast, the new approach (Patch 970337) maintains\nthe legacy behavior where names take priority, only adding a check to\nidentify duplicate names. Since security group names in Neutron are not\nunique but UUIDs are, the old approach is superior because it ensures that a\nspecific, unique identifier always resolves correctly even if an identical\nname exists elsewhere. The legacy behavior of prioritizing names was\nfundamentally flawed as it allowed naming collisions to block valid\nUUID-based requests.\n\nWhile Nova has historically prioritized names, that legacy behavior is the\nroot cause of Bug 2105896. In Neutron, names are not guaranteed to be unique\nacross tenants, whereas UUIDs are. With Neutron RBAC policies that allow\ncross-tenant sharing of security groups, having the names take precedence\nwill lead to undefined or unexpected behavior. By checking the id_to_id\nmapping first, we ensure that a user providing a specific, unique identifier\nis never blocked by a naming collision they might not even be aware of.\n\nPrioritizing an ambiguous attribute (name) over a definitive one (UUID) is\nlogically backwards in a multi-tenant environment.\n\nThat is why I swapped the precedence in my original patch.","commit_id":"2a80f8d57ac65df31b696769b6c09026bbb80a94"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8e4452cb53fe1145cbf16999900f9b9089b1606a","unresolved":false,"context_lines":[{"line_number":846,"context_line":"                raise exception.NoUniqueMatch("},{"line_number":847,"context_line":"                    _(\"Multiple security groups found matching\""},{"line_number":848,"context_line":"                      \" \u0027%s\u0027. Use an ID to be more specific.\")"},{"line_number":849,"context_line":"                    % security_group)"},{"line_number":850,"context_line":"            # Check if the security group is in the name-to-ID dictionary"},{"line_number":851,"context_line":"            # as if a user names the security group the same as"},{"line_number":852,"context_line":"            # another\u0027s security groups uuid, the name takes priority."}],"source_content_type":"text/x-python","patch_set":3,"id":"ab02e57e_ceeeedc6","line":849,"in_reply_to":"4abdf064_10cf13ce","updated":"2026-04-24 11:52:54.000000000","message":"Done","commit_id":"2a80f8d57ac65df31b696769b6c09026bbb80a94"}]}
