)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1f2a057356b1a41c06455f2679df1d4cb1321973","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"698d6eb6_e72d8155","updated":"2026-11-09 15:49:09.000000000","message":"Conceptually looks fine.  Suggestion inline for adding type hinting.","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"a4d5f5e2d1eefbc12bcb08ff905e2c4ad14daad8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8e98cb46_eea7bd30","updated":"2026-11-04 23:26:43.000000000","message":"recheck","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"cf78d04b6ade1d56f24abaf64ca04d2338358f91","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e95e40e8_06a083c5","updated":"2026-11-05 01:49:38.000000000","message":"recheck","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3a8965544ce1a2d0b35a9a8f2fbb38eeab6ff271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6497588b_9665e06a","updated":"2026-11-09 23:01:29.000000000","message":"Revision looks good, just one thing missing.","commit_id":"22566a3914056d36675dd2b4d7b4fb60fc5b6a5c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5ed0c9a5e6141a541ae5bde86afd358746443ca4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"51f49fad_28f5fe39","updated":"2026-11-09 19:16:01.000000000","message":"recheck tempest-slow-py3 - tempest.scenario.test_volume_migrate_attached.TestVolumeMigrateRetypeAttached.test_volume_retype_attached_data_volume , unrelated failure","commit_id":"22566a3914056d36675dd2b4d7b4fb60fc5b6a5c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"b5030c1eda3734dc5266c5d1d15fac762bf7eaf3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"1a6ce095_bd03c14e","updated":"2026-11-11 00:16:03.000000000","message":"recheck","commit_id":"38e82c1902891f892974080320f13dec19fa0aa9"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"2408639734acebc85605ec0db680234cd3fe8428","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8f9775c6_89da6e9f","updated":"2026-11-10 21:29:42.000000000","message":"recheck","commit_id":"38e82c1902891f892974080320f13dec19fa0aa9"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"2d61484d9c1fd15a9c0451192a158615aaeef52f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e337428a_97ebfe10","updated":"2026-11-11 02:36:55.000000000","message":"recheck","commit_id":"38e82c1902891f892974080320f13dec19fa0aa9"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"67696cd1311f703e76f15c40ae859afe3c21e4fc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f68236ae_dc3abedb","updated":"2026-11-10 14:20:33.000000000","message":"recheck","commit_id":"38e82c1902891f892974080320f13dec19fa0aa9"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"5160c69e8806247a59f6f135578339c36a94dc6b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"87e24f49_a4460b3e","updated":"2026-11-10 18:04:52.000000000","message":"recheck timed_out py314","commit_id":"38e82c1902891f892974080320f13dec19fa0aa9"}],"cinder/privsep/fs.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1f2a057356b1a41c06455f2679df1d4cb1321973","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2c505975_aacf85f0","line":33,"updated":"2026-11-09 15:49:09.000000000","message":"Let\u0027s force \u0027lazy\u0027 to be a boolean using type hinting.  I checked processutils and the function definition is overloaded so that we can expect the call to .execute() to return \u0027tuple[str, str]\u0027.  You\u0027ll have to explicitly return line 32, and the change to line 28 will just be \u0027def umount(mountpoint, lazy: bool \u003d False) -\u003e tuple[str, str]:\u0027.  You\u0027ll also need to \u0027import typing\u0027.","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"4d42926a657c469399e08faec1f6a2344b7dd520","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dfc73033_c13bf98a","line":33,"in_reply_to":"2c505975_aacf85f0","updated":"2026-11-09 16:06:00.000000000","message":"Done in PS2: `lazy: bool \u003d False, mountpoint: str`, and the call is now returned with a `-\u003e tuple[str, str]` hint; the test asserts the return value for both forms. I used the builtin `tuple[...]` rather than `typing.Tuple`, which is what the rest of the tree does on our 3.10+ floor, so no `import typing` was needed.","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3a8965544ce1a2d0b35a9a8f2fbb38eeab6ff271","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6d05633c_e62d86b6","line":33,"in_reply_to":"dfc73033_c13bf98a","updated":"2026-11-09 23:01:29.000000000","message":"I was so focused on the \u0027lazy\u0027 that I completely forgot about the original parameter!","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"}],"cinder/tests/unit/privsep/test_fs.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1f2a057356b1a41c06455f2679df1d4cb1321973","unresolved":true,"context_lines":[{"line_number":29,"context_line":"                                             delay_on_retry\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_umount_lazy(self, mock_execute):"},{"line_number":32,"context_line":"        privsep_fs.umount(\u0027/mnt/share\u0027, lazy\u003dTrue)"},{"line_number":33,"context_line":"        mock_execute.assert_called_once_with(\u0027umount\u0027, \u0027-l\u0027, \u0027/mnt/share\u0027,"},{"line_number":34,"context_line":"                                             attempts\u003d1,"},{"line_number":35,"context_line":"                                             delay_on_retry\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"e5a780c0_acf1b49c","line":32,"range":{"start_line":32,"start_character":40,"end_line":32,"end_character":49},"updated":"2026-11-09 15:49:09.000000000","message":"I was going to suggest enhancing the tests (we\u0027ve sort of handled lazy\u003dFalse since that\u0027s the default) but I think it would be better to use type hints on the function definition instead.","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"4d42926a657c469399e08faec1f6a2344b7dd520","unresolved":false,"context_lines":[{"line_number":29,"context_line":"                                             delay_on_retry\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_umount_lazy(self, mock_execute):"},{"line_number":32,"context_line":"        privsep_fs.umount(\u0027/mnt/share\u0027, lazy\u003dTrue)"},{"line_number":33,"context_line":"        mock_execute.assert_called_once_with(\u0027umount\u0027, \u0027-l\u0027, \u0027/mnt/share\u0027,"},{"line_number":34,"context_line":"                                             attempts\u003d1,"},{"line_number":35,"context_line":"                                             delay_on_retry\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9b7c334d_398e1a71","line":32,"range":{"start_line":32,"start_character":40,"end_line":32,"end_character":49},"in_reply_to":"e5a780c0_acf1b49c","updated":"2026-11-09 16:06:00.000000000","message":"Acknowledged","commit_id":"48240f393761a1d5877ee87bca626145bb0ff0dd"}],"pyproject.toml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3a8965544ce1a2d0b35a9a8f2fbb38eeab6ff271","unresolved":true,"context_lines":[{"line_number":234,"context_line":"    \"cinder.manager\","},{"line_number":235,"context_line":"    \"cinder.monkey_patch\","},{"line_number":236,"context_line":"    \"cinder.objects.backup\","},{"line_number":237,"context_line":"    \"cinder.policy\","},{"line_number":238,"context_line":"    \"cinder.scheduler.base_handler\","},{"line_number":239,"context_line":"    \"cinder.scheduler.base_weight\","},{"line_number":240,"context_line":"    \"cinder.scheduler.evaluator.evaluator\","}],"source_content_type":"text/x-toml","patch_set":2,"id":"33642e3a_0bd2a63b","line":237,"updated":"2026-11-09 23:01:29.000000000","message":"need to add ``\"cinder.privsep.fs\",`` here","commit_id":"22566a3914056d36675dd2b4d7b4fb60fc5b6a5c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"a5c7f7961cd725df8b8c9efb889b716102ad3776","unresolved":false,"context_lines":[{"line_number":234,"context_line":"    \"cinder.manager\","},{"line_number":235,"context_line":"    \"cinder.monkey_patch\","},{"line_number":236,"context_line":"    \"cinder.objects.backup\","},{"line_number":237,"context_line":"    \"cinder.policy\","},{"line_number":238,"context_line":"    \"cinder.scheduler.base_handler\","},{"line_number":239,"context_line":"    \"cinder.scheduler.base_weight\","},{"line_number":240,"context_line":"    \"cinder.scheduler.evaluator.evaluator\","}],"source_content_type":"text/x-toml","patch_set":2,"id":"adb2b2c4_d4d9dca9","line":237,"in_reply_to":"33642e3a_0bd2a63b","updated":"2026-11-10 05:48:37.000000000","message":"Done","commit_id":"22566a3914056d36675dd2b4d7b4fb60fc5b6a5c"}]}
