)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e4690c13a05b1766548aac067a929490b296552e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"e6b87851_1df3692a","updated":"2025-09-02 10:58:56.000000000","message":"recheck functional","commit_id":"a632e51bb40d851475f255efaedb37974dc3298d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"87e262f5_b32e72bd","updated":"2025-09-23 00:45:49.000000000","message":"Looks good so far, mostly nits.","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"08248a919aa3412e91a055b3bd0ee607e45280ff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":58,"id":"d0c26057_bc358106","updated":"2025-09-23 13:28:42.000000000","message":"recheck neutron-tempest-plugin-openvswitch","commit_id":"621a2a0aca8834bad355eb8d502a2d4b71331d40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2e9ed6bd85223b165fed1586e33ffd9071d34eb0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":60,"id":"ba8a849e_d02b324d","updated":"2025-09-26 22:05:22.000000000","message":"recheck openstack-tox-py310","commit_id":"1c420a5be5e9556e3cb74b3ccba041cf08cf089c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"79565a5e65c732b4fe4456af1a38f79f0c9d5815","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":61,"id":"007e04a4_f5898a78","updated":"2025-09-30 13:40:27.000000000","message":"recheck neutron-functional","commit_id":"4af899ae68a49ba38d1a5cd878b6361c0c8fa07c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"b8dcdbd6ceadd203fbcd6b3e917801832662b37d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":63,"id":"e8aac612_581f23e0","updated":"2025-10-06 10:57:03.000000000","message":"recheck\nre-no build failure is irrelevant, there is even no logs","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c127d31d12699ceb6e8cddc2e3e877bc4ff6c3fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":63,"id":"9baba23b_fc51ac8d","updated":"2025-10-07 13:36:10.000000000","message":"recheck neutron-functional","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"24a9fb191b43b5c860269fcba97cc77d57bf19bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":63,"id":"da88065f_8839a982","updated":"2025-10-09 00:38:06.000000000","message":"recheck unrelated test failure","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"fc3cfde3c49d6bfe5ff70d472c9c42bed16defd2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"96ab749f_03269ec6","updated":"2025-10-14 06:55:42.000000000","message":"Ping fellow reviewers","commit_id":"c675a9a0929575c4195d775064eeeae5e62fa299"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"642563736aa0897fb0270e6e0aed4d905de6f95a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":65,"id":"d490ef42_00238c89","updated":"2025-10-21 13:26:09.000000000","message":"recheck openstack-tox-py310","commit_id":"7913d6e6977f9b6639e4eeac081072d14d14249e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"25b8cc6d1044bb2392de58a07c6a7574319cbb3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":66,"id":"b2840948_b6cc7ec4","updated":"2025-10-22 18:11:19.000000000","message":"recheck py310 timed out","commit_id":"440b71d39d89e760b7ebfc6ba4e3000a3e49b404"}],"doc/source/eventlet_deprecation/index.rst":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"The ``py310`` job is unstable when executed with \"concurrency\u003d8\" that is the"},{"line_number":203,"context_line":"number of vCPUs of the CI virtual machines. It tends to timeout, most probably"},{"line_number":204,"context_line":"because of a pending thread not stopped. The ``tox.ini`` file enforces this"},{"line_number":205,"context_line":"concurrency to 7 only for this job, running with Python 3.10."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":57,"id":"9e051f0d_5ba502f8","line":204,"range":{"start_line":204,"start_character":28,"end_line":204,"end_character":39},"updated":"2025-09-23 00:45:49.000000000","message":"s/not being stopped","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":201,"context_line":""},{"line_number":202,"context_line":"The ``py310`` job is unstable when executed with \"concurrency\u003d8\" that is the"},{"line_number":203,"context_line":"number of vCPUs of the CI virtual machines. It tends to timeout, most probably"},{"line_number":204,"context_line":"because of a pending thread not stopped. The ``tox.ini`` file enforces this"},{"line_number":205,"context_line":"concurrency to 7 only for this job, running with Python 3.10."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":""}],"source_content_type":"text/x-rst","patch_set":57,"id":"1409ca16_f25745a0","line":204,"range":{"start_line":204,"start_character":28,"end_line":204,"end_character":39},"in_reply_to":"9e051f0d_5ba502f8","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":213,"context_line":"* The lack of control over the kernel threads, in particular to end them. With"},{"line_number":214,"context_line":"  eventlet it was possible to kill them, but this is no longer possible with"},{"line_number":215,"context_line":"  the kernel threads. That leads to endless processing loops started by the"},{"line_number":216,"context_line":"  tested modules that never end. The test could finish but ``stestr`` don\u0027t"},{"line_number":217,"context_line":"  return a result until all threads are finished."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"* The inability to spawn signal handlers out of the main thread. With eventlet,"}],"source_content_type":"text/x-rst","patch_set":57,"id":"8d63001b_547b9279","line":216,"range":{"start_line":216,"start_character":70,"end_line":216,"end_character":75},"updated":"2025-09-23 00:45:49.000000000","message":"s/doesn\u0027t (or does not)","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":213,"context_line":"* The lack of control over the kernel threads, in particular to end them. With"},{"line_number":214,"context_line":"  eventlet it was possible to kill them, but this is no longer possible with"},{"line_number":215,"context_line":"  the kernel threads. That leads to endless processing loops started by the"},{"line_number":216,"context_line":"  tested modules that never end. The test could finish but ``stestr`` don\u0027t"},{"line_number":217,"context_line":"  return a result until all threads are finished."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"* The inability to spawn signal handlers out of the main thread. With eventlet,"}],"source_content_type":"text/x-rst","patch_set":57,"id":"5602773b_6bc74793","line":216,"range":{"start_line":216,"start_character":70,"end_line":216,"end_character":75},"in_reply_to":"8d63001b_547b9279","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":217,"context_line":"  return a result until all threads are finished."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"* The inability to spawn signal handlers out of the main thread. With eventlet,"},{"line_number":220,"context_line":"  all the user threads, were spawned on the main kernel thread. Without"},{"line_number":221,"context_line":"  eventlet, some processes (e.g.: the OVS agent) are spawned in secondary"},{"line_number":222,"context_line":"  threads but they fail because they are expecting to be executed by the main"},{"line_number":223,"context_line":"  thread. That mainly affects the OVS agent testing in functional tests."}],"source_content_type":"text/x-rst","patch_set":57,"id":"ac3782b8_67d2a266","line":220,"range":{"start_line":220,"start_character":22,"end_line":220,"end_character":23},"updated":"2025-09-23 00:45:49.000000000","message":"can remove this comma","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":217,"context_line":"  return a result until all threads are finished."},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"* The inability to spawn signal handlers out of the main thread. With eventlet,"},{"line_number":220,"context_line":"  all the user threads, were spawned on the main kernel thread. Without"},{"line_number":221,"context_line":"  eventlet, some processes (e.g.: the OVS agent) are spawned in secondary"},{"line_number":222,"context_line":"  threads but they fail because they are expecting to be executed by the main"},{"line_number":223,"context_line":"  thread. That mainly affects the OVS agent testing in functional tests."}],"source_content_type":"text/x-rst","patch_set":57,"id":"ca2913b4_0d58c232","line":220,"range":{"start_line":220,"start_character":22,"end_line":220,"end_character":23},"in_reply_to":"ac3782b8_67d2a266","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"719df79f7efdd91feab890a2b3da00eeafde45d4","unresolved":true,"context_lines":[{"line_number":222,"context_line":"  threads but they fail because they are expecting to be executed by the main"},{"line_number":223,"context_line":"  thread. That mainly affects the OVS agent testing in functional tests."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* The buggy os-ken implementation, that leads to random disconnections when"},{"line_number":226,"context_line":"  executing the tests. The os-ken library is implemented to handle all the"},{"line_number":227,"context_line":"  \"applications\" (processes with sockets open to the OF server). The new"},{"line_number":228,"context_line":"  backend (using kernel threads) is not as stable as the eventlet one. During"},{"line_number":229,"context_line":"  the application/OF server communication, some messages are lost and the"},{"line_number":230,"context_line":"  communication is broken. That affects the OVS agent testing in functional"},{"line_number":231,"context_line":"  tests."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"It is also needed to handle the following issues that could affect the"},{"line_number":234,"context_line":"performance and the stability of the system:"}],"source_content_type":"text/x-rst","patch_set":63,"id":"f0b935c3_224200d8","line":231,"range":{"start_line":225,"start_character":0,"end_line":231,"end_character":8},"updated":"2025-10-09 06:51:09.000000000","message":"can this also impact neutron-ovs-agent \"production code\" or is this just tests related issue?","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a247a92b2be9a6b8ad257c55160258d267fb33cc","unresolved":false,"context_lines":[{"line_number":222,"context_line":"  threads but they fail because they are expecting to be executed by the main"},{"line_number":223,"context_line":"  thread. That mainly affects the OVS agent testing in functional tests."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* The buggy os-ken implementation, that leads to random disconnections when"},{"line_number":226,"context_line":"  executing the tests. The os-ken library is implemented to handle all the"},{"line_number":227,"context_line":"  \"applications\" (processes with sockets open to the OF server). The new"},{"line_number":228,"context_line":"  backend (using kernel threads) is not as stable as the eventlet one. During"},{"line_number":229,"context_line":"  the application/OF server communication, some messages are lost and the"},{"line_number":230,"context_line":"  communication is broken. That affects the OVS agent testing in functional"},{"line_number":231,"context_line":"  tests."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"It is also needed to handle the following issues that could affect the"},{"line_number":234,"context_line":"performance and the stability of the system:"}],"source_content_type":"text/x-rst","patch_set":63,"id":"9d2b8fb1_5e5811cd","line":231,"range":{"start_line":225,"start_character":0,"end_line":231,"end_character":8},"in_reply_to":"f0b935c3_224200d8","updated":"2025-10-10 11:19:31.000000000","message":"For now I see that only in the testing FW. Because of how os-ken applications need to be spawned, the FT FW doesn\u0027t allow to create a parallel thread running it. It must be a single process spawning the os-ken called \"apps\".\n\nIn any case, I\u0027m not aware, so far, of issues in production env. At least the tempest jobs are running fine.","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"}],"neutron/agent/common/async_process.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":155,"context_line":"        kill_signal \u003d kill_signal or getattr(signal, \u0027SIGKILL\u0027, signal.SIGTERM)"},{"line_number":156,"context_line":"        if self._is_running:"},{"line_number":157,"context_line":"            LOG.debug(\u0027Halting async process [%s].\u0027, self.cmd)"},{"line_number":158,"context_line":"            print(\u0027Halting async process [%s].\u0027 % self.cmd)"},{"line_number":159,"context_line":"            self._kill(kill_signal, kill_timeout)"},{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            raise AsyncProcessException(_(\u0027Process is not running.\u0027))"}],"source_content_type":"text/x-python","patch_set":57,"id":"bc177ced_a41ad2c4","line":158,"updated":"2025-09-23 00:45:49.000000000","message":"Leftover debug?","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        kill_signal \u003d kill_signal or getattr(signal, \u0027SIGKILL\u0027, signal.SIGTERM)"},{"line_number":156,"context_line":"        if self._is_running:"},{"line_number":157,"context_line":"            LOG.debug(\u0027Halting async process [%s].\u0027, self.cmd)"},{"line_number":158,"context_line":"            print(\u0027Halting async process [%s].\u0027 % self.cmd)"},{"line_number":159,"context_line":"            self._kill(kill_signal, kill_timeout)"},{"line_number":160,"context_line":"        else:"},{"line_number":161,"context_line":"            raise AsyncProcessException(_(\u0027Process is not running.\u0027))"}],"source_content_type":"text/x-python","patch_set":57,"id":"9d274557_ad201e4b","line":158,"in_reply_to":"bc177ced_a41ad2c4","updated":"2025-09-24 08:41:16.000000000","message":"Right! thanks","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":278,"context_line":"                break"},{"line_number":279,"context_line":"            # TODO(sahid): Should be removed once monkey patching by"},{"line_number":280,"context_line":"            # eventlet removed."},{"line_number":281,"context_line":"            #time.sleep(0)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        if not thread_exit_event.is_set():"},{"line_number":284,"context_line":"            # Indicates to the other watcher that the loop is broken."}],"source_content_type":"text/x-python","patch_set":57,"id":"6b40990a_0c9596d9","line":281,"updated":"2025-09-23 00:45:49.000000000","message":"I guess we can remove the whole TODO?","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                break"},{"line_number":279,"context_line":"            # TODO(sahid): Should be removed once monkey patching by"},{"line_number":280,"context_line":"            # eventlet removed."},{"line_number":281,"context_line":"            #time.sleep(0)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        if not thread_exit_event.is_set():"},{"line_number":284,"context_line":"            # Indicates to the other watcher that the loop is broken."}],"source_content_type":"text/x-python","patch_set":57,"id":"73e2a589_df065a63","line":281,"in_reply_to":"6b40990a_0c9596d9","updated":"2025-09-24 08:41:16.000000000","message":"yes!","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"}],"neutron/common/eventlet_utils.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"719df79f7efdd91feab890a2b3da00eeafde45d4","unresolved":true,"context_lines":[{"line_number":33,"context_line":"        # This environment variable will be used in eventlet 0.39.0"},{"line_number":34,"context_line":"        # https://github.com/eventlet/eventlet/commit/"},{"line_number":35,"context_line":"        # b754135b045306022a537b5797f2cb2cf47ba49b"},{"line_number":36,"context_line":"        if os.getenv(\u0027EVENTLET_MONKEYPATCH\u0027, \u00271\u0027) \u003d\u003d \u00271\u0027:"},{"line_number":37,"context_line":"            IS_MONKEY_PATCHED \u003d True"},{"line_number":38,"context_line":"            return"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":63,"id":"7f37bb64_e872a8e9","line":36,"updated":"2025-10-09 06:51:09.000000000","message":"do we need to handle such env var still?","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a247a92b2be9a6b8ad257c55160258d267fb33cc","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        # This environment variable will be used in eventlet 0.39.0"},{"line_number":34,"context_line":"        # https://github.com/eventlet/eventlet/commit/"},{"line_number":35,"context_line":"        # b754135b045306022a537b5797f2cb2cf47ba49b"},{"line_number":36,"context_line":"        if os.getenv(\u0027EVENTLET_MONKEYPATCH\u0027, \u00271\u0027) \u003d\u003d \u00271\u0027:"},{"line_number":37,"context_line":"            IS_MONKEY_PATCHED \u003d True"},{"line_number":38,"context_line":"            return"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":63,"id":"e02a1cd2_c4bd675d","line":36,"in_reply_to":"7f37bb64_e872a8e9","updated":"2025-10-10 11:19:31.000000000","message":"I\u0027m removing it in follow-up patches.","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"}],"neutron/tests/functional/agent/l3/framework.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def setUp(self):"},{"line_number":95,"context_line":"        self.skipTest(\u0027Eventlet removal: this test needs to be refactored to \u0027"},{"line_number":96,"context_line":"                      \u0027be executable without eventlet\u0027)"},{"line_number":97,"context_line":"        super().setUp()"},{"line_number":98,"context_line":"        self.mock_plugin_api \u003d mock.patch("},{"line_number":99,"context_line":"            \u0027neutron.agent.l3.agent.L3PluginApi\u0027).start().return_value"}],"source_content_type":"text/x-python","patch_set":57,"id":"051f77b9_581dbcb7","line":96,"updated":"2025-09-23 00:45:49.000000000","message":"nit: should use same string as previous files (or change them)","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def setUp(self):"},{"line_number":95,"context_line":"        self.skipTest(\u0027Eventlet removal: this test needs to be refactored to \u0027"},{"line_number":96,"context_line":"                      \u0027be executable without eventlet\u0027)"},{"line_number":97,"context_line":"        super().setUp()"},{"line_number":98,"context_line":"        self.mock_plugin_api \u003d mock.patch("},{"line_number":99,"context_line":"            \u0027neutron.agent.l3.agent.L3PluginApi\u0027).start().return_value"}],"source_content_type":"text/x-python","patch_set":57,"id":"d78d4961_f983d1fd","line":96,"in_reply_to":"051f77b9_581dbcb7","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"719df79f7efdd91feab890a2b3da00eeafde45d4","unresolved":true,"context_lines":[{"line_number":110,"context_line":"        # NOTE(ralonsoh): report_interval should be 0 to prevent the thread"},{"line_number":111,"context_line":"        # that execute this process to start."},{"line_number":112,"context_line":"        agent_config.register_agent_state_opts_helper(cfg.CONF)"},{"line_number":113,"context_line":"        cfg.CONF.set_override(\u0027report_interval\u0027, 0, \u0027AGENT\u0027)"},{"line_number":114,"context_line":"        self.agent \u003d neutron_l3_agent.L3NATAgentWithStateReport(\u0027agent1\u0027,"},{"line_number":115,"context_line":"                                                                self.conf)"},{"line_number":116,"context_line":"        self.agent.init_host()"}],"source_content_type":"text/x-python","patch_set":63,"id":"34401513_66560cf7","line":113,"updated":"2025-10-09 06:51:09.000000000","message":"are we sure about this change if we are actually going to skip those tests earlier?","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a247a92b2be9a6b8ad257c55160258d267fb33cc","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # NOTE(ralonsoh): report_interval should be 0 to prevent the thread"},{"line_number":111,"context_line":"        # that execute this process to start."},{"line_number":112,"context_line":"        agent_config.register_agent_state_opts_helper(cfg.CONF)"},{"line_number":113,"context_line":"        cfg.CONF.set_override(\u0027report_interval\u0027, 0, \u0027AGENT\u0027)"},{"line_number":114,"context_line":"        self.agent \u003d neutron_l3_agent.L3NATAgentWithStateReport(\u0027agent1\u0027,"},{"line_number":115,"context_line":"                                                                self.conf)"},{"line_number":116,"context_line":"        self.agent.init_host()"}],"source_content_type":"text/x-python","patch_set":63,"id":"0de8a4b4_d17c519e","line":113,"in_reply_to":"34401513_66560cf7","updated":"2025-10-10 11:19:31.000000000","message":"Right... it doesn\u0027t make sense. That was an initial test that didn\u0027t work.","commit_id":"d9cbf89e71bc7eff3a69d43c15f8f0f09a48d019"}],"neutron/tests/functional/agent/linux/test_ip_lib.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":772,"context_line":"                                                         try_is_ready\u003dTrue))"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"class AIpMonitorTestCase(functional_base.BaseLoggingTestCase):"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    def setUp(self):"},{"line_number":778,"context_line":"        # TODO(ralonsoh): refactor this test to make it compatible after the"}],"source_content_type":"text/x-python","patch_set":57,"id":"4be3247a_8d650a6a","line":775,"updated":"2025-09-23 00:45:49.000000000","message":"AIP ?","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":772,"context_line":"                                                         try_is_ready\u003dTrue))"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"class AIpMonitorTestCase(functional_base.BaseLoggingTestCase):"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    def setUp(self):"},{"line_number":778,"context_line":"        # TODO(ralonsoh): refactor this test to make it compatible after the"}],"source_content_type":"text/x-python","patch_set":57,"id":"5ae2272d_f19c3e45","line":775,"in_reply_to":"4be3247a_8d650a6a","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":772,"context_line":"                                                         try_is_ready\u003dTrue))"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"class AIpMonitorTestCase(functional_base.BaseLoggingTestCase):"},{"line_number":776,"context_line":""},{"line_number":777,"context_line":"    def setUp(self):"},{"line_number":778,"context_line":"        # TODO(ralonsoh): refactor this test to make it compatible after the"}],"source_content_type":"text/x-python","patch_set":57,"id":"e7ff0a61_9fe9baea","line":775,"in_reply_to":"4be3247a_8d650a6a","updated":"2025-09-24 08:41:16.000000000","message":"My bad","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"}],"neutron/tests/functional/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovsdb_monitor.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"719df79f7efdd91feab890a2b3da00eeafde45d4","unresolved":true,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def setUp(self):"},{"line_number":156,"context_line":"        super().setUp()"},{"line_number":157,"context_line":"        self.assertEqual(mysql_dialect.name, self.db.engine.dialect.name)"},{"line_number":158,"context_line":"        self.chassis \u003d self.add_fake_chassis(\u0027ovs-host1\u0027)"},{"line_number":159,"context_line":"        self.l3_plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":160,"context_line":"        self.net \u003d self._make_network(self.fmt, \u0027net1\u0027, True)"}],"source_content_type":"text/x-python","patch_set":63,"id":"4d960875_242cf2c6","side":"PARENT","line":157,"updated":"2025-10-09 06:51:09.000000000","message":"isn\u0027t that change (here and in other files also) not related to that patch actually? IMO this is kind of refactorization which could be also done in separate patch, right?","commit_id":"9c5736b68c47e00fa131c71fbf31c0dec86e78a6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"a247a92b2be9a6b8ad257c55160258d267fb33cc","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":"    def setUp(self):"},{"line_number":156,"context_line":"        super().setUp()"},{"line_number":157,"context_line":"        self.assertEqual(mysql_dialect.name, self.db.engine.dialect.name)"},{"line_number":158,"context_line":"        self.chassis \u003d self.add_fake_chassis(\u0027ovs-host1\u0027)"},{"line_number":159,"context_line":"        self.l3_plugin \u003d directory.get_plugin(plugin_constants.L3)"},{"line_number":160,"context_line":"        self.net \u003d self._make_network(self.fmt, \u0027net1\u0027, True)"}],"source_content_type":"text/x-python","patch_set":63,"id":"b0d5eb06_808ab708","side":"PARENT","line":157,"in_reply_to":"4d960875_242cf2c6","updated":"2025-10-10 11:19:31.000000000","message":"Not really. In this patch I\u0027ve made all OVN related tests dependant on `MySQLTestCaseMixin`, due to issues with the sqlite DB during the execution. This is related to this patch.","commit_id":"9c5736b68c47e00fa131c71fbf31c0dec86e78a6"}],"neutron/tests/unit/__init__.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"555c8876afd5e553f096ad45b4f80e8b968c646e","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(ralonsoh): remove once the default backend is ``BackendType.THREADING``"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"from oslo_service import backend as oslo_service_backend"},{"line_number":19,"context_line":"try:"}],"source_content_type":"text/x-python","patch_set":28,"id":"3f477878_bc2b8def","line":16,"range":{"start_line":16,"start_character":55,"end_line":16,"end_character":76},"updated":"2025-08-11 08:45:01.000000000","message":"+1","commit_id":"6073fe5bf2a228cda99ee5d51684cfc0e669e740"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"602ea7caa7576a5995d9731614b87d60d95d77b8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"# NOTE(ralonsoh): remove once the default backend is ``BackendType.THREADING``"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":"from oslo_service import backend as oslo_service_backend"},{"line_number":19,"context_line":"try:"}],"source_content_type":"text/x-python","patch_set":28,"id":"76e616fc_d79474bc","line":16,"range":{"start_line":16,"start_character":55,"end_line":16,"end_character":76},"in_reply_to":"3f477878_bc2b8def","updated":"2025-09-03 08:41:55.000000000","message":"Done","commit_id":"6073fe5bf2a228cda99ee5d51684cfc0e669e740"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":1297,"context_line":"    def test_hybrid_plug_flag_based_on_firewall(self, *args):"},{"line_number":1298,"context_line":"        # TODO(ralonsoh): it is needed to refactor this test case"},{"line_number":1299,"context_line":"        self.skipTest(\u0027Eventlet removal: this test needs to be refactored to \u0027"},{"line_number":1300,"context_line":"                      \u0027be executable without eventlet\u0027)"},{"line_number":1301,"context_line":"        cfg.CONF.set_default("},{"line_number":1302,"context_line":"            \u0027firewall_driver\u0027,"},{"line_number":1303,"context_line":"            \u0027neutron.agent.firewall.NoopFirewallDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":57,"id":"4a2ab787_4658e4b0","line":1300,"updated":"2025-09-23 00:45:49.000000000","message":"Different string from others","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":1297,"context_line":"    def test_hybrid_plug_flag_based_on_firewall(self, *args):"},{"line_number":1298,"context_line":"        # TODO(ralonsoh): it is needed to refactor this test case"},{"line_number":1299,"context_line":"        self.skipTest(\u0027Eventlet removal: this test needs to be refactored to \u0027"},{"line_number":1300,"context_line":"                      \u0027be executable without eventlet\u0027)"},{"line_number":1301,"context_line":"        cfg.CONF.set_default("},{"line_number":1302,"context_line":"            \u0027firewall_driver\u0027,"},{"line_number":1303,"context_line":"            \u0027neutron.agent.firewall.NoopFirewallDriver\u0027,"}],"source_content_type":"text/x-python","patch_set":57,"id":"58544ebf_03ac3e70","line":1300,"in_reply_to":"4a2ab787_4658e4b0","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":1325,"context_line":"    def test_report_state(self):"},{"line_number":1326,"context_line":"        # TODO(ralonsoh): it is needed to refactor this test case"},{"line_number":1327,"context_line":"        self.skipTest(\u0027Eventlet removal: this test needs to be refactored to \u0027"},{"line_number":1328,"context_line":"                      \u0027be executable without eventlet\u0027)"},{"line_number":1329,"context_line":"        with mock.patch.object(self.agent.state_rpc,"},{"line_number":1330,"context_line":"                               \"report_state\") as report_st:"},{"line_number":1331,"context_line":"            self.agent.int_br_device_count \u003d 5"}],"source_content_type":"text/x-python","patch_set":57,"id":"a88343c0_6187ff9a","line":1328,"updated":"2025-09-23 00:45:49.000000000","message":"Same","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":1325,"context_line":"    def test_report_state(self):"},{"line_number":1326,"context_line":"        # TODO(ralonsoh): it is needed to refactor this test case"},{"line_number":1327,"context_line":"        self.skipTest(\u0027Eventlet removal: this test needs to be refactored to \u0027"},{"line_number":1328,"context_line":"                      \u0027be executable without eventlet\u0027)"},{"line_number":1329,"context_line":"        with mock.patch.object(self.agent.state_rpc,"},{"line_number":1330,"context_line":"                               \"report_state\") as report_st:"},{"line_number":1331,"context_line":"            self.agent.int_br_device_count \u003d 5"}],"source_content_type":"text/x-python","patch_set":57,"id":"f04fd186_93155dbc","line":1328,"in_reply_to":"a88343c0_6187ff9a","updated":"2025-09-24 08:41:16.000000000","message":"Done","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/agent/test_neutron_agent.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"65ee27abe6c0fb05b4835e76ac467f08ee92a919","unresolved":true,"context_lines":[{"line_number":101,"context_line":"        # pool.spawn(self._list_agents)"},{"line_number":102,"context_line":"        # pool.spawn(self._add_and_delete_agents)"},{"line_number":103,"context_line":"        # pool.waitall()"},{"line_number":104,"context_line":"        # self.assertEqual(list(self.agents.keys()), self.names_read)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_agents_by_chassis_private(self):"},{"line_number":107,"context_line":"        ext_ids \u003d {ovn_const.OVN_AGENT_METADATA_ID_KEY: \u0027chassis5\u0027}"}],"source_content_type":"text/x-python","patch_set":57,"id":"c8d85db2_8f29edd5","line":104,"updated":"2025-09-23 00:45:49.000000000","message":"Can be removed?","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c630b5b9a924b028635907b303f0633f6806fc0f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        # pool.spawn(self._list_agents)"},{"line_number":102,"context_line":"        # pool.spawn(self._add_and_delete_agents)"},{"line_number":103,"context_line":"        # pool.waitall()"},{"line_number":104,"context_line":"        # self.assertEqual(list(self.agents.keys()), self.names_read)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_agents_by_chassis_private(self):"},{"line_number":107,"context_line":"        ext_ids \u003d {ovn_const.OVN_AGENT_METADATA_ID_KEY: \u0027chassis5\u0027}"}],"source_content_type":"text/x-python","patch_set":57,"id":"f0acd72c_ab790c5c","line":104,"in_reply_to":"c8d85db2_8f29edd5","updated":"2025-09-24 08:41:16.000000000","message":"I\u0027ll add a comment. It is needed to keep the old code commented in order to refactor it.","commit_id":"a89817ca78ce3fd8e232ca8f8b7f071a773e547a"}],"tox.ini":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c4e7d09f082b084fcfba0e8f61a211ade55930ec","unresolved":true,"context_lines":[{"line_number":226,"context_line":"# H205: Use assert(Greater|Less)(Equal) for comparison"},{"line_number":227,"context_line":"# H904: Delay string interpolations at logging calls"},{"line_number":228,"context_line":"enable-extensions \u003d H106,H203,H204,H205,H904"},{"line_number":229,"context_line":"ignore \u003d H405,H701,H702,H703,N530,N535"},{"line_number":230,"context_line":"show-source \u003d true"},{"line_number":231,"context_line":"exclude \u003d ./.*,build,dist,doc"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-properties","patch_set":54,"id":"ceedf58d_059577eb","line":229,"updated":"2025-09-12 21:27:58.000000000","message":"I\u0027ll mention it since I just noticed this needs a rebase to master, but N535 here can move to enabled-extensions once eventlet is removed, assuming it is after this change.\n\nAlso, on master we both enable and ignore N530 (who wins?) so when you rebase you can remove from enabled, which will save me a patch :)","commit_id":"2216bde23f81d9431e90efe8f5f400fbeeda7792"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c1ee81f1a235909556a0b286c6cf9c9f842756b8","unresolved":false,"context_lines":[{"line_number":226,"context_line":"# H205: Use assert(Greater|Less)(Equal) for comparison"},{"line_number":227,"context_line":"# H904: Delay string interpolations at logging calls"},{"line_number":228,"context_line":"enable-extensions \u003d H106,H203,H204,H205,H904"},{"line_number":229,"context_line":"ignore \u003d H405,H701,H702,H703,N530,N535"},{"line_number":230,"context_line":"show-source \u003d true"},{"line_number":231,"context_line":"exclude \u003d ./.*,build,dist,doc"},{"line_number":232,"context_line":""}],"source_content_type":"text/x-properties","patch_set":54,"id":"a76821c4_c6453cfa","line":229,"in_reply_to":"ceedf58d_059577eb","updated":"2025-09-15 09:08:48.000000000","message":"Yes, there are some missing bits that need to be addressed. This is one of these. I\u0027ll handle it in a follow up patch.","commit_id":"2216bde23f81d9431e90efe8f5f400fbeeda7792"}]}
