)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"67dc30e91aa9ee15219d1ddfafee3c64f35d03db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"591ea5cd_494dd040","updated":"2025-09-24 16:09:56.000000000","message":"recheck bug/2125598 strange scheduling error I have to keep an eye on","commit_id":"a9d49e710f5eca12fa43bc342e8f3e329c92c1ea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7f72673ec5f6bda65298e225d51eea2a744a8a64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"9c26264f_16821c4a","updated":"2025-11-12 14:31:15.000000000","message":"recheck ceph \n```\ntempest.exceptions.VolumeResourceBuildErrorException: volume f7072f55-10e1-4314-add1-3f89457a0943 failed to build and is in ERROR status\n```","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1340f46ee873af375f4a8b6b9455a5e7a6666487","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"17108ecb_95ca46e2","updated":"2025-12-11 10:07:38.000000000","message":"All my comments have been addressed","commit_id":"8c8047ce2afae18ffb272d0e972d63c8acde6e33"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c881989a100516f8e049b59b1dd5e82d073b85db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"abb49eab_cf286158","updated":"2025-12-16 02:29:49.000000000","message":"lgtm, one suggestion on test assert but that is not blocking for me as we know evenlet things should go away eventually but I would not like tests to reply on eventlet internal variables. If you think it is worth to do, it can be done in followup.","commit_id":"8c8047ce2afae18ffb272d0e972d63c8acde6e33"}],"nova/tests/unit/test_utils.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c881989a100516f8e049b59b1dd5e82d073b85db","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        mock_target \u003d mock.MagicMock()"},{"line_number":238,"context_line":"        target \u003d utils.tpool_wrap(mock_target)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.assertEqual(target._obj, mock_target)"},{"line_number":241,"context_line":"        mock_concurrency_mode.assert_called_once_with()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @mock.patch(\u0027nova.utils.concurrency_mode_threading\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":17,"id":"acc13fe9_364c91f1","line":240,"range":{"start_line":240,"start_character":25,"end_line":240,"end_character":36},"updated":"2025-12-16 02:29:49.000000000","message":"this is replying on internal variable. If we want to check Proxy wrapped object then we can mock the \u0027nova.utils.tpool\u0027 and then check if it erturn_value is mock_target. We can also assert on if target is instance of tpool.Proxy.\n\nsomething like (I have not tested it but it should work on same line).\n\n\n\n    @mock.patch(\u0027nova.utils.concurrency_mode_threading\u0027, return_value\u003dFalse)\n    @mock.patch(\u0027nova.utils.tpool\u0027)\n    def test_tpool_wrap_eventlet(self, mock_concurrency_mode, mock_tpool):\n        mock_target \u003d mock.MagicMock()\n        target \u003d utils.tpool_wrap(mock_target)\n        self.assertIsInstance(target, tpool.Proxy)\n        tpool_mock.assert_called_once_with(mock_target)\n        self.assertEqual(mock_tpool.Proxy.return_value, mock_target)","commit_id":"8c8047ce2afae18ffb272d0e972d63c8acde6e33"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"a73170964df01d3113003b9eb553cfe5f317a06e","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        mock_target \u003d mock.MagicMock()"},{"line_number":238,"context_line":"        target \u003d utils.tpool_wrap(mock_target)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.assertEqual(target._obj, mock_target)"},{"line_number":241,"context_line":"        mock_concurrency_mode.assert_called_once_with()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @mock.patch(\u0027nova.utils.concurrency_mode_threading\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":17,"id":"e8e5abd6_0c821519","line":240,"range":{"start_line":240,"start_character":25,"end_line":240,"end_character":36},"in_reply_to":"acc13fe9_364c91f1","updated":"2025-12-16 02:56:49.000000000","message":"seeing the changes in this series, testr for the code using tpool_wrap does not actuallty assert for tpool.Proxy check which is ok but after that i feel we should make this test more assertive for tpool.Proxy (like mentioned in abovr comment).","commit_id":"8c8047ce2afae18ffb272d0e972d63c8acde6e33"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"90665c7bdbbf119ad69f28571444a82c828b206f","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        mock_target \u003d mock.MagicMock()"},{"line_number":238,"context_line":"        target \u003d utils.tpool_wrap(mock_target)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        self.assertEqual(target._obj, mock_target)"},{"line_number":241,"context_line":"        mock_concurrency_mode.assert_called_once_with()"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    @mock.patch(\u0027nova.utils.concurrency_mode_threading\u0027, return_value\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":17,"id":"66227006_a25bd8f8","line":240,"range":{"start_line":240,"start_character":25,"end_line":240,"end_character":36},"in_reply_to":"e8e5abd6_0c821519","updated":"2025-12-16 11:42:00.000000000","message":"```\n    self.assertIsInstance(target, tpool.Proxy)\n```\nThis won\u0027t work as `target` is returned by the mocked tpool module so it will be a mock not tpool.Proxy.\n\n\n```\n    self.assertEqual(mock_tpool.Proxy.return_value, mock_target)\n```\nThis does not make sense to me. Proxy is a mock, we never set a return_value on that mock, so its return value will be an autogenerated mock, that will definitely not match with our hand created mock_target. You probably meant `target` not `mock_target` for this assert as that make more sense.\n\nI proposed a follow up with the resulting change in https://review.opendev.org/c/openstack/nova/+/971171","commit_id":"8c8047ce2afae18ffb272d0e972d63c8acde6e33"}],"nova/utils.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"422f0bd47d9087df35304aedcdbbdb3d09b4c982","unresolved":true,"context_lines":[{"line_number":1372,"context_line":""},{"line_number":1373,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1374,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1375,"context_line":"    in eventlet mode. In threading mode not wrapping is applied."},{"line_number":1376,"context_line":"    \"\"\""},{"line_number":1377,"context_line":"    if concurrency_mode_threading():"},{"line_number":1378,"context_line":"        return target"}],"source_content_type":"text/x-python","patch_set":1,"id":"546d7784_e76335e0","line":1375,"updated":"2025-07-29 15:27:14.000000000","message":"s/not/no/","commit_id":"57c96a865c6950d010b3ae3762526aac59a87f9f"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a2af7104f375a40b31546aa8b67ae97b075088bf","unresolved":false,"context_lines":[{"line_number":1372,"context_line":""},{"line_number":1373,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1374,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1375,"context_line":"    in eventlet mode. In threading mode not wrapping is applied."},{"line_number":1376,"context_line":"    \"\"\""},{"line_number":1377,"context_line":"    if concurrency_mode_threading():"},{"line_number":1378,"context_line":"        return target"}],"source_content_type":"text/x-python","patch_set":1,"id":"023eb55e_4c744b19","line":1375,"in_reply_to":"546d7784_e76335e0","updated":"2025-11-11 18:40:05.000000000","message":"Done","commit_id":"57c96a865c6950d010b3ae3762526aac59a87f9f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9327158124449d250ebf6722745af1dec6a5ccb1","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"dfae8dc3_f1985e5f","line":1293,"updated":"2025-11-13 10:19:57.000000000","message":"Do we need `*args, **kwargs`? I don\u0027t see them used anywhere.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41a872a94966a7cb9fadb226461a849b46c639ae","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"d3bbaf32_43e39931","line":1293,"in_reply_to":"83678bb5_c0098946","updated":"2025-11-18 15:11:35.000000000","message":"Right, but we only use `autowrap`. *We* don\u0027t need to expose all options.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"fb0aea7df1262a78ec2477dad5db8615c1066a18","unresolved":false,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"35e779fd_75e29890","line":1293,"in_reply_to":"916c8556_eaba693b","updated":"2025-11-21 11:03:40.000000000","message":"ack","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4ce45917996761b5cc8ac539d07a77f6d54f0e48","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"83678bb5_c0098946","line":1293,"in_reply_to":"b1d3eccb_53eee424","updated":"2025-11-17 17:10:49.000000000","message":"this is intened as a generic wrapper for any tpool usage while we transation so it feel more correct to not restrict this to a specific signiture.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ce5d67eefbd74ce1360a7d77e040f280768f58b6","unresolved":false,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"916c8556_eaba693b","line":1293,"in_reply_to":"d3bbaf32_43e39931","updated":"2025-11-21 10:50:56.000000000","message":"I can do that it does not hurt. But to remove some confusion I will add autowrap in the next patch when it will be used.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d5e15886822094f0c4b09beed7c590200351c29","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":14,"id":"b1d3eccb_53eee424","line":1293,"in_reply_to":"dfae8dc3_f1985e5f","updated":"2025-11-13 10:23:55.000000000","message":"Okay, I see [`autowrap` used in the next change](https://review.opendev.org/c/openstack/nova/+/956090/16/nova/virt/libvirt/host.py#197). Could we be more explicit and list the options here, even if they just have type `Any` (we\u0027re deleting all this in the next year anyway)","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"9327158124449d250ebf6722745af1dec6a5ccb1","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""},{"line_number":1297,"context_line":"    if concurrency_mode_threading():"},{"line_number":1298,"context_line":"        return target"},{"line_number":1299,"context_line":"    else:"},{"line_number":1300,"context_line":"        return tpool.Proxy(target, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"caec94ed_4fdb16bf","line":1300,"range":{"start_line":1293,"start_character":0,"end_line":1300,"end_character":51},"updated":"2025-11-13 10:19:57.000000000","message":"nit: assuming `*args` and `**kwargs` **are not** needed this would be an easy one to type if we lie about the return type when eventlet is used\n\n```suggestion\nT \u003d TypeVar(\u0027T\u0027)\n\n\ndef tpool_wrap(target: T) -\u003e T:\n    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running\n    in eventlet mode. In threading mode no wrapping is applied.\n    \"\"\"\n    if concurrency_mode_threading():\n        return target\n    else:\n        return tpool.Proxy(target, *args, **kwargs)  # type: ignore\n```","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ce5d67eefbd74ce1360a7d77e040f280768f58b6","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""},{"line_number":1297,"context_line":"    if concurrency_mode_threading():"},{"line_number":1298,"context_line":"        return target"},{"line_number":1299,"context_line":"    else:"},{"line_number":1300,"context_line":"        return tpool.Proxy(target, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"6d024845_58853afd","line":1300,"range":{"start_line":1293,"start_character":0,"end_line":1300,"end_character":51},"in_reply_to":"06e8d5ff_722294f5","updated":"2025-11-21 10:50:56.000000000","message":"There is plenty mypy issues if I enable nova/utils.py in it. I don\u0027t want to include those changes into this series. I will push an independent patch later enabling mypy on nova/utils.py and if that lands I can follow up here or on master about this function.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"468e5ba7b3c48482a67f1c1bd20b996209656cc7","unresolved":false,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""},{"line_number":1297,"context_line":"    if concurrency_mode_threading():"},{"line_number":1298,"context_line":"        return target"},{"line_number":1299,"context_line":"    else:"},{"line_number":1300,"context_line":"        return tpool.Proxy(target, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"93e05d62_bb9736e5","line":1300,"range":{"start_line":1293,"start_character":0,"end_line":1300,"end_character":51},"in_reply_to":"6d024845_58853afd","updated":"2025-11-21 10:54:13.000000000","message":"Fair. To be clear though, I was suggesting adding the types, not necessarily adding mypy. Yes, they might need to be corrected later but you\u0027re going to have an easier time doing it now than someone else will at a future date.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"e914b485e38d778c79c3a9e979d8008d2be958e2","unresolved":false,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""},{"line_number":1297,"context_line":"    if concurrency_mode_threading():"},{"line_number":1298,"context_line":"        return target"},{"line_number":1299,"context_line":"    else:"},{"line_number":1300,"context_line":"        return tpool.Proxy(target, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"aad313da_20f35a31","line":1300,"range":{"start_line":1293,"start_character":0,"end_line":1300,"end_character":51},"in_reply_to":"93e05d62_bb9736e5","updated":"2025-12-05 14:16:30.000000000","message":"Added mypy stuff here https://review.opendev.org/c/openstack/nova/+/969936","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"41a872a94966a7cb9fadb226461a849b46c639ae","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""},{"line_number":1297,"context_line":"    if concurrency_mode_threading():"},{"line_number":1298,"context_line":"        return target"},{"line_number":1299,"context_line":"    else:"},{"line_number":1300,"context_line":"        return tpool.Proxy(target, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"06e8d5ff_722294f5","line":1300,"range":{"start_line":1293,"start_character":0,"end_line":1300,"end_character":51},"in_reply_to":"ad9b2ff7_29c264f9","updated":"2025-11-18 15:11:35.000000000","message":"\u003e i dont think we can assume that is true\n\nWhy? No one outside of nova will use this. We know exactly what argument we need to support here.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4ce45917996761b5cc8ac539d07a77f6d54f0e48","unresolved":true,"context_lines":[{"line_number":1290,"context_line":"            executor._delayed_work.unfinished_tasks, stats)"},{"line_number":1291,"context_line":""},{"line_number":1292,"context_line":""},{"line_number":1293,"context_line":"def tpool_wrap(target, *args, **kwargs):"},{"line_number":1294,"context_line":"    \"\"\"Wrap the target into an eventlet Tpool Proxy object if running"},{"line_number":1295,"context_line":"    in eventlet mode. In threading mode no wrapping is applied."},{"line_number":1296,"context_line":"    \"\"\""},{"line_number":1297,"context_line":"    if concurrency_mode_threading():"},{"line_number":1298,"context_line":"        return target"},{"line_number":1299,"context_line":"    else:"},{"line_number":1300,"context_line":"        return tpool.Proxy(target, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ad9b2ff7_29c264f9","line":1300,"range":{"start_line":1293,"start_character":0,"end_line":1300,"end_character":51},"in_reply_to":"caec94ed_4fdb16bf","updated":"2025-11-17 17:10:49.000000000","message":"i dont think we can assume that is true. this is a tempry messure until we remove the eventlet supprot so i think haveing the wider signiture is ok until we have removed all uses of tpool.Proxy then we can restict it if warrented.","commit_id":"02187c1d5b0e53b7a23789923fc81316f3bd41d3"}]}
