)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f92b29a72b0bc1fe260f6957edd8d7d006d3475b","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Fixed any places I might have missed in previous patches."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Depends-on: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/982604"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Blueprint: https://blueprints.launchpad.net/neutron/+spec/keystone-v3"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"6d00c582_8b70a93d","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":82},"updated":"2026-04-08 08:47:30.000000000","message":"it is merged so the light is green","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5c5e00c8fbfaacc57f54bfad9f17f46595281bb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"affdbd14_6eabb086","updated":"2026-03-29 23:32:04.000000000","message":"Need to update dependent test patches","commit_id":"06b565ea1b770a76af218d64e96fa706d1f15744"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"20f9c42dfec9a42a91f6185ba7c9e9f9de8abdd8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9303a830_be1d7431","updated":"2026-04-06 19:59:59.000000000","message":"recheck functional-devstack unrelated failure","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"6c7c962f6bfbbb478218f036518a5c036457f83c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3042468c_c1773ea8","updated":"2026-04-12 01:03:30.000000000","message":"recheck neutron-functional","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5a12f43a1cd52d38d5c1415ef92b6cf3532d1b0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1b8d4999_3615bac7","updated":"2026-04-12 08:10:13.000000000","message":"recheck neutron-tempest-plugin-openvswitch","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a2f47bcac35363c2b14d8ae1e0a77bb83ed9899d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e56a8fc8_239c8f7a","updated":"2026-04-11 09:50:06.000000000","message":"recheck openstacksdk-functional-devstack","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"52135f2999542723ce4b819cd1268c8d640f74a2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c07d7938_ee59c0b6","updated":"2026-04-11 20:01:03.000000000","message":"recheck timeout","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"094e41360ea9435e6d83468c9c1cf3edf27d0ddd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"439f3ac1_017b9812","updated":"2026-04-11 16:38:10.000000000","message":"recheck unrelated CI failures","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0dbfc5281cbf9465a42c3f155a266788fce4fd7b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"59583bf0_e13a39ea","updated":"2026-04-11 22:19:51.000000000","message":"recheck unrelated CI failures","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"fc0a57f6e89d8a46f02d09b0d50f2552c293724d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"cb8e69d2_73870fa3","updated":"2026-04-12 16:27:21.000000000","message":"recheck unrelated CI failures","commit_id":"50b4a10c682d8e5197641a56013eb7386619aae7"}],"neutron/db/securitygroups_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7de938b3d253cf613571cf8fd257f56bd7715c2d","unresolved":true,"context_lines":[{"line_number":1048,"context_line":"        project_id \u003d filters.get(\u0027project_id\u0027)"},{"line_number":1049,"context_line":"        if not project_id and filters.get(\u0027tenant_id\u0027):"},{"line_number":1050,"context_line":"            project_id \u003d filters[\u0027tenant_id\u0027]"},{"line_number":1051,"context_line":"            LOG.warning(\u0027project_id key not found in filters, using tenant_id\u0027"},{"line_number":1052,"context_line":"                        \u0027instead. This support has been deprecated and will \u0027"},{"line_number":1053,"context_line":"                        \u0027be removed in a future release.\u0027)"},{"line_number":1054,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"19cc55e7_200a1989","line":1051,"range":{"start_line":1051,"start_character":77,"end_line":1051,"end_character":78},"updated":"2026-04-06 14:44:49.000000000","message":"here is missing a space","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d0a6ca80e70afcbf34f2297cd8c5e626efdeb050","unresolved":false,"context_lines":[{"line_number":1048,"context_line":"        project_id \u003d filters.get(\u0027project_id\u0027)"},{"line_number":1049,"context_line":"        if not project_id and filters.get(\u0027tenant_id\u0027):"},{"line_number":1050,"context_line":"            project_id \u003d filters[\u0027tenant_id\u0027]"},{"line_number":1051,"context_line":"            LOG.warning(\u0027project_id key not found in filters, using tenant_id\u0027"},{"line_number":1052,"context_line":"                        \u0027instead. This support has been deprecated and will \u0027"},{"line_number":1053,"context_line":"                        \u0027be removed in a future release.\u0027)"},{"line_number":1054,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7aba5817_c12fb36c","line":1051,"range":{"start_line":1051,"start_character":77,"end_line":1051,"end_character":78},"in_reply_to":"19cc55e7_200a1989","updated":"2026-04-06 17:22:21.000000000","message":"Done","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"}],"neutron/pecan_wsgi/controllers/quota.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7de938b3d253cf613571cf8fd257f56bd7715c2d","unresolved":true,"context_lines":[{"line_number":115,"context_line":"    @utils.when_delete(index)"},{"line_number":116,"context_line":"    def delete(self):"},{"line_number":117,"context_line":"        neutron_context \u003d request.context.get(\u0027neutron_context\u0027)"},{"line_number":118,"context_line":"        self._driver.delete_project_quota(neutron_context,"},{"line_number":119,"context_line":"                                         self._project_id)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @utils.when(index, method\u003d\u0027POST\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"c19df2b3_6fd9bfa6","line":118,"range":{"start_line":118,"start_character":21,"end_line":118,"end_character":41},"updated":"2026-04-06 14:44:49.000000000","message":"This should be updated in `doc.source.contributor.internals.quota.rst` too","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d0a6ca80e70afcbf34f2297cd8c5e626efdeb050","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    @utils.when_delete(index)"},{"line_number":116,"context_line":"    def delete(self):"},{"line_number":117,"context_line":"        neutron_context \u003d request.context.get(\u0027neutron_context\u0027)"},{"line_number":118,"context_line":"        self._driver.delete_project_quota(neutron_context,"},{"line_number":119,"context_line":"                                         self._project_id)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    @utils.when(index, method\u003d\u0027POST\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"c2acfd36_1ca66e19","line":118,"range":{"start_line":118,"start_character":21,"end_line":118,"end_character":41},"in_reply_to":"c19df2b3_6fd9bfa6","updated":"2026-04-06 17:22:21.000000000","message":"I actually did it in the other doc-based patch:\n\nhttps://review.opendev.org/c/openstack/neutron/+/982603\n\nShould have put here with the code change, but it\u0027s already merged.","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7de938b3d253cf613571cf8fd257f56bd7715c2d","unresolved":true,"context_lines":[{"line_number":139,"context_line":"        # API issue, this controller will just treat the magic string"},{"line_number":140,"context_line":"        # \u0027tenant\u0027 (and only that string) and return the response expected"},{"line_number":141,"context_line":"        # by python-neutronclient"},{"line_number":142,"context_line":"        return {\u0027project\u0027: {\u0027project_id\u0027: neutron_context.project_id}}"},{"line_number":143,"context_line":"    project_quotas \u003d driver.get_project_quotas("},{"line_number":144,"context_line":"        neutron_context,"},{"line_number":145,"context_line":"        resource_registry.get_all_resources(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"73d002f3_452ffcf8","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":70},"updated":"2026-04-06 14:44:49.000000000","message":"The test `test_quotas_get_project_from_empty_request_context_returns_400` should be updated with the correct API path: `quotas/project`","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d0a6ca80e70afcbf34f2297cd8c5e626efdeb050","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        # API issue, this controller will just treat the magic string"},{"line_number":140,"context_line":"        # \u0027tenant\u0027 (and only that string) and return the response expected"},{"line_number":141,"context_line":"        # by python-neutronclient"},{"line_number":142,"context_line":"        return {\u0027project\u0027: {\u0027project_id\u0027: neutron_context.project_id}}"},{"line_number":143,"context_line":"    project_quotas \u003d driver.get_project_quotas("},{"line_number":144,"context_line":"        neutron_context,"},{"line_number":145,"context_line":"        resource_registry.get_all_resources(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"69020920_61942896","line":142,"range":{"start_line":142,"start_character":8,"end_line":142,"end_character":70},"in_reply_to":"73d002f3_452ffcf8","updated":"2026-04-06 17:22:21.000000000","message":"Done. It was generating a warning but I didn\u0027t even see it:\n\nCaptured stderr:\n~~~~~~~~~~~~~~~~\n    /home/bhaley/git/neutron.dev/neutron/extensions/quotasv2.py:105: UserWarning: \"tenant\" Quota API method is deprecated, use \"project\" instead\n  warnings.warn(","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"}],"neutron/tests/unit/api/v2/test_base.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7de938b3d253cf613571cf8fd257f56bd7715c2d","unresolved":true,"context_lines":[{"line_number":950,"context_line":"        device_id \u003d _uuid()"},{"line_number":951,"context_line":"        # TODO(haleyb): \"tenant_id\" reference should be removed."},{"line_number":952,"context_line":"        initial_input \u003d {\u0027port\u0027: {\u0027name\u0027: \u0027\u0027, \u0027network_id\u0027: net_id,"},{"line_number":953,"context_line":"                                  \u0027tenant_id\u0027: project_id,"},{"line_number":954,"context_line":"                                  \u0027project_id\u0027: project_id,"},{"line_number":955,"context_line":"                                  \u0027device_id\u0027: device_id,"},{"line_number":956,"context_line":"                                  \u0027admin_state_up\u0027: True}}"}],"source_content_type":"text/x-python","patch_set":5,"id":"0658f1d0_f0c3cee8","line":953,"range":{"start_line":953,"start_character":34,"end_line":953,"end_character":58},"updated":"2026-04-06 14:44:49.000000000","message":"Should we remove this?","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d0a6ca80e70afcbf34f2297cd8c5e626efdeb050","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        device_id \u003d _uuid()"},{"line_number":951,"context_line":"        # TODO(haleyb): \"tenant_id\" reference should be removed."},{"line_number":952,"context_line":"        initial_input \u003d {\u0027port\u0027: {\u0027name\u0027: \u0027\u0027, \u0027network_id\u0027: net_id,"},{"line_number":953,"context_line":"                                  \u0027tenant_id\u0027: project_id,"},{"line_number":954,"context_line":"                                  \u0027project_id\u0027: project_id,"},{"line_number":955,"context_line":"                                  \u0027device_id\u0027: device_id,"},{"line_number":956,"context_line":"                                  \u0027admin_state_up\u0027: True}}"}],"source_content_type":"text/x-python","patch_set":5,"id":"4e035c5c_a3c97fd0","line":953,"range":{"start_line":953,"start_character":34,"end_line":953,"end_character":58},"in_reply_to":"0658f1d0_f0c3cee8","updated":"2026-04-06 17:22:21.000000000","message":"So the problem is that there is code in neutron-lib (if i\u0027m remembering correctly) that will try and make sure both tenant_id and project_id keys are present in API calls. But I can move it down to full_input or below since that\u0027s really where we need to check it. There might be other places I have to do this as well.","commit_id":"bb1242fa987b600658abedec14c1becf577544b8"}]}
