)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"ec98fda382e6cf5b27cf4be98e4caf4316e1129b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"adac3901_56a271a2","updated":"2026-08-17 10:59:42.000000000","message":"recheck neutron-tempest-plugin-openvswitch-2025-1","commit_id":"7524d173171facd537bcb4f73d02180c8700ecac"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"1584348e69e3887539559f8180bcbab7fe438842","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"15efd54c_f4c74c69","updated":"2026-08-24 14:27:13.000000000","message":"I\u0027ll implement a more generic solution because this issue affects not only evpn tests, but any tests using create_*_router methods from BaseNetworkTest class.","commit_id":"4dc1d2e9f1a7ec50d8c08fc9d8e3e368e133dfce"},{"author":{"_account_id":31291,"name":"Eduardo Olivares","email":"eolivare@redhat.com","username":"eolivare"},"change_message_id":"5a13a27fa41e32cd4fdac53326f576fe271a3077","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c9c337bd_bb52723c","updated":"2026-08-24 13:24:22.000000000","message":"recheck neutron-tempest-plugin-ovn-ubuntu-jammy-2025-1","commit_id":"4dc1d2e9f1a7ec50d8c08fc9d8e3e368e133dfce"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bfe640843c8c2d02188a0d2c830b43fdb2802441","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"63e335c5_496c3585","updated":"2026-08-25 06:07:44.000000000","message":"There are multiple classes (ExternalGWMultihomingRoutersTest, HaRoutersTest, HaRoutersTest. etc) calling `BaseRouterTest._create_router`, that is directly calling `_create_router_with_client`, instead of the new methods you created. This is why we have the error:\n```\n2026-08-24 15:32:01.247847 | controller |     Traceback (most recent call last):\n2026-08-24 15:32:01.247851 | controller |\n2026-08-24 15:32:01.247855 | controller |       File \"/opt/stack/tempest/.tox/tempest/lib/python3.12/site-packages/neutron_tempest_plugin/api/base_routers.py\", line 29, in _cleanup_router\n2026-08-24 15:32:01.247858 | controller |     self.routers.remove(router)\n2026-08-24 15:32:01.247862 | controller |\n2026-08-24 15:32:01.247866 | controller |     ValueError: list.remove(x): x not in list\n2026-08-24 15:32:01.247869 | controller |\n2026-08-24 15:32:01.247873 | controller |\n```","commit_id":"814862a8fd82d0a0aef9018a262bde5939e027c1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a20766eedf7c559e26dfc537236f6cb135710364","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d9ba7bb5_9179460b","updated":"2026-08-25 12:47:33.000000000","message":"CI didn\u0027t finish but looks much better now","commit_id":"5431c1424afed6f4b55eb69b8d9f2e5e5be76216"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"d5700cf9147e84189585e88a93d30df868748999","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"60597f25_b00e6f7a","updated":"2026-08-25 19:42:31.000000000","message":"recheck bfd failure","commit_id":"5431c1424afed6f4b55eb69b8d9f2e5e5be76216"}],"neutron_tempest_plugin/api/base.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d461940e3c8491f5463d081478ae982d4b511a55","unresolved":false,"context_lines":[{"line_number":644,"context_line":"        cls, client, router_name\u003dNone, admin_state_up\u003dFalse,"},{"line_number":645,"context_line":"        external_network_id\u003dNone, enable_snat\u003dNone, **kwargs"},{"line_number":646,"context_line":"    ):"},{"line_number":647,"context_line":"        # NOTE(eolivare): if this method is called directly, the created router"},{"line_number":648,"context_line":"        # will not be cleaned up at resource_cleanup. Please use either"},{"line_number":649,"context_line":"        # create_router or create_admin_router instead, or implemented the"},{"line_number":650,"context_line":"        # router cleanup somehow in your tests."}],"source_content_type":"text/x-python","patch_set":5,"id":"044346a2_d044ddd2","line":647,"range":{"start_line":647,"start_character":26,"end_line":647,"end_character":79},"updated":"2026-08-24 14:55:12.000000000","message":"nice note","commit_id":"814862a8fd82d0a0aef9018a262bde5939e027c1"}],"neutron_tempest_plugin/scenario/test_evpn.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ec1915a94b92e10b8cff1dcbc5313c5fd3f56877","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @classmethod"},{"line_number":57,"context_line":"    def resource_cleanup(cls):"},{"line_number":58,"context_line":"        cls._try_delete_resource("},{"line_number":59,"context_line":"            cls.delete_router, cls.router, cls.admin_client)"},{"line_number":60,"context_line":"        super().resource_cleanup()"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"6902b2c0_d16fb5de","line":58,"updated":"2026-08-24 10:57:52.000000000","message":"I think you need both: first to delete the interface and then delete the router. The API won\u0027t allow to delete a router with an interface connected. It is only possible to delete a router with a GW connected, but not a private network interface.","commit_id":"7524d173171facd537bcb4f73d02180c8700ecac"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6afcb67df3948e9bbe0807c0fd46ce09b74a9d6a","unresolved":false,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @classmethod"},{"line_number":57,"context_line":"    def resource_cleanup(cls):"},{"line_number":58,"context_line":"        cls._try_delete_resource("},{"line_number":59,"context_line":"            cls.delete_router, cls.router, cls.admin_client)"},{"line_number":60,"context_line":"        super().resource_cleanup()"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"aa594784_0c141812","line":58,"in_reply_to":"05a95ccc_6a18228a","updated":"2026-08-24 11:13:00.000000000","message":"ack ,thanks","commit_id":"7524d173171facd537bcb4f73d02180c8700ecac"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4b81caf2cffae1ddfbe4e75b627c691d64292631","unresolved":true,"context_lines":[{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    @classmethod"},{"line_number":57,"context_line":"    def resource_cleanup(cls):"},{"line_number":58,"context_line":"        cls._try_delete_resource("},{"line_number":59,"context_line":"            cls.delete_router, cls.router, cls.admin_client)"},{"line_number":60,"context_line":"        super().resource_cleanup()"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"05a95ccc_6a18228a","line":58,"in_reply_to":"6902b2c0_d16fb5de","updated":"2026-08-24 10:59:58.000000000","message":"Eduardo replied to me directly: the `delete_router` method already does this interface deletion.","commit_id":"7524d173171facd537bcb4f73d02180c8700ecac"}]}
