)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"933e092a5a9e121705fd5999d6c29c2e08940bed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"82067825_f0537c6b","updated":"2026-01-12 09:35:03.000000000","message":"Nice, could you please add a release-note as this was an API facing issue","commit_id":"3524a167cae53510abe7a078d54e6555fc3d086a"},{"author":{"_account_id":30314,"name":"Sebastian Lohff","email":"sebastian.lohff@sap.com","username":"seba"},"change_message_id":"666ebd846cb1dd1056ca8d618f4f3ab1202d96d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cb3f1709_e9b9944f","updated":"2025-11-21 14:35:59.000000000","message":"RECHECK https://review.opendev.org/c/openstack/neutron/+/967808 was merged","commit_id":"3524a167cae53510abe7a078d54e6555fc3d086a"},{"author":{"_account_id":30314,"name":"Sebastian Lohff","email":"sebastian.lohff@sap.com","username":"seba"},"change_message_id":"211febf9c50bac34a200313ec2e483893aec9695","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"51eb96d3_ed2a1847","updated":"2026-01-28 15:37:23.000000000","message":"Sure thing, let me know if there are any problems with the wording of the release note. :)","commit_id":"279275d1e6785f198bc6a201162941baa4c0d3b3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"8014e871ecae4cde342f7458958f1f3b1ef01190","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"63799fd3_ccb2d5af","updated":"2026-03-03 09:50:21.000000000","message":"so from my side either can work, merge this now, and as follow-up do the n-lib exception later in Hibiscus","commit_id":"279275d1e6785f198bc6a201162941baa4c0d3b3"}],"neutron_vpnaas/db/vpn/vpn_validator.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a13349a8dd405139d2f4e264c61a4b9b81e6615d","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                raise vpn_exception.InvalidEndpointInEndpointGroup("},{"line_number":353,"context_line":"                    group_type\u003dendpoint_group[\u0027type\u0027], endpoint\u003dendpoint,"},{"line_number":354,"context_line":"                    why\u003d_(\u0027Endpoints have to be unique\u0027))"},{"line_number":355,"context_line":"            seen_endpoints.append(endpoint)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def validate_ike_policy(self, context, ike_policy):"},{"line_number":358,"context_line":"        \"\"\"Reference implementation of validation for IKE Policy."}],"source_content_type":"text/x-python","patch_set":4,"id":"4c53be11_7837b4dc","line":355,"updated":"2026-01-28 15:55:57.000000000","message":"There is a much faster way:\n\nif len(endpoint_group) !\u003d len(set(endpoint_group)):\n    raise...\n\nProbably don\u0027t need the helper if you do that.","commit_id":"279275d1e6785f198bc6a201162941baa4c0d3b3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e81554aed31f889d1ed2994656f3a88c3dd95e7d","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                raise vpn_exception.InvalidEndpointInEndpointGroup("},{"line_number":353,"context_line":"                    group_type\u003dendpoint_group[\u0027type\u0027], endpoint\u003dendpoint,"},{"line_number":354,"context_line":"                    why\u003d_(\u0027Endpoints have to be unique\u0027))"},{"line_number":355,"context_line":"            seen_endpoints.append(endpoint)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def validate_ike_policy(self, context, ike_policy):"},{"line_number":358,"context_line":"        \"\"\"Reference implementation of validation for IKE Policy."}],"source_content_type":"text/x-python","patch_set":4,"id":"830824ee_bf17ad48","line":355,"in_reply_to":"08ec1f63_3eafa755","updated":"2026-03-03 03:32:15.000000000","message":"Sorry, just getting back to this review.\n\nI understand wanting to print the bad value, but could there be more than one? If so could just print them all, but would need a new exception class I guess. Then using the set() trick would work.\n\nYou can decide what you want to do, I\u0027d rather merge this as-is to fix the issue than complain about the details.","commit_id":"279275d1e6785f198bc6a201162941baa4c0d3b3"},{"author":{"_account_id":30314,"name":"Sebastian Lohff","email":"sebastian.lohff@sap.com","username":"seba"},"change_message_id":"e44476ccdc69488dca4a9cf6860b1f9c7122d192","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                raise vpn_exception.InvalidEndpointInEndpointGroup("},{"line_number":353,"context_line":"                    group_type\u003dendpoint_group[\u0027type\u0027], endpoint\u003dendpoint,"},{"line_number":354,"context_line":"                    why\u003d_(\u0027Endpoints have to be unique\u0027))"},{"line_number":355,"context_line":"            seen_endpoints.append(endpoint)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def validate_ike_policy(self, context, ike_policy):"},{"line_number":358,"context_line":"        \"\"\"Reference implementation of validation for IKE Policy."}],"source_content_type":"text/x-python","patch_set":4,"id":"08ec1f63_3eafa755","line":355,"in_reply_to":"4c53be11_7837b4dc","updated":"2026-02-03 11:41:14.000000000","message":"With using a set() I won\u0027t know which endpoint is the offending one and I wanted to at least report one offending endpoint with InvalidEndpointInEndpointGroup() to the user.\n\nWith the requirement of finding at least one offending endpoint in mind, do you think this is a valid approach or should we revisit it? There\u0027s also the option to use collections.Counter(), but I found it to be less readable when implementing it.","commit_id":"279275d1e6785f198bc6a201162941baa4c0d3b3"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"bf0764954ece3dcdc0dbbe6e3a250deea5078792","unresolved":true,"context_lines":[{"line_number":352,"context_line":"                raise vpn_exception.InvalidEndpointInEndpointGroup("},{"line_number":353,"context_line":"                    group_type\u003dendpoint_group[\u0027type\u0027], endpoint\u003dendpoint,"},{"line_number":354,"context_line":"                    why\u003d_(\u0027Endpoints have to be unique\u0027))"},{"line_number":355,"context_line":"            seen_endpoints.append(endpoint)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    def validate_ike_policy(self, context, ike_policy):"},{"line_number":358,"context_line":"        \"\"\"Reference implementation of validation for IKE Policy."}],"source_content_type":"text/x-python","patch_set":4,"id":"85b2bff1_3c2cece0","line":355,"in_reply_to":"830824ee_bf17ad48","updated":"2026-03-03 09:49:17.000000000","message":"Good idea, as these exceptions are in neutron-lib we can either say that let\u0027s merge as it is now and add new excpetion class in n-lib later as follow-up or add the new excpetion here now to a temporary place with todo to move it in next release to n-lib","commit_id":"279275d1e6785f198bc6a201162941baa4c0d3b3"}]}
