)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"50542cf8e04d432447a77e709dd2249fb0537939","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1b971e4c_14fcdcd6","updated":"2026-05-15 20:47:27.000000000","message":"pretty well written, thanks for working on this spec. Two questions inline, please take a look :)","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"37180792023ffee30c407b9ed50baa26f983782e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"96dd322d_f8bcde1e","updated":"2026-05-21 16:26:09.000000000","message":"Great spec Goutham, well written and detailed.\nI left a few inline comments mostly for clarification for particular cases.\nPutting a -1 just to flag them, but overall this looks good to me.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e3d16e88cc804dcfa3ea8e4d6c5613aae4f4e30a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6e21bcd1_1a0ed486","updated":"2026-05-20 14:28:57.000000000","message":"Just a couple comments about the process here, but this looks good to me now with the clarifications from the last round. Thanks!","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d9f15aef9bd25cad42a7343edee222eb502f577f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"760a4a83_b0e9c0d5","updated":"2026-05-21 02:59:13.000000000","message":"Just some questions inline for my own understanding.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"535b58eab7d5c8d6dae76a99e9850e6b6cd4ae30","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ee8b9eaa_8a83196d","updated":"2026-05-20 19:01:32.000000000","message":"LGTM, thanks Goutham!","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"dd172a40_59e00cff","updated":"2026-05-22 05:15:42.000000000","message":"Thank you all for your comments; making another patchset shortly to address these","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"909c2f6b_81ffa9c0","updated":"2026-05-20 01:46:26.000000000","message":"Thanks for the comments @ces.eduardo98@gmail.com and @dms@danplanet.com. I addressed these, please do take another look.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a372fbd10bbf20dd33e3fe0f77e47c5bfa47d9cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3da473ba_bf4575a3","updated":"2026-05-27 19:20:55.000000000","message":"Late +1 after the updates. LGTM Manila-wise. Thanks Goutham!","commit_id":"562c3eb259e0faa9260682db535b05d899ab0288"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"3ac63193502c7250dd94c48988fe44c5212004ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b2623e22_646344b9","updated":"2026-05-27 09:02:58.000000000","message":"Thanks Goutham, all my comments have been addressed. This is a very well written spec, clear and thorough. I\u0027m happy with it.","commit_id":"562c3eb259e0faa9260682db535b05d899ab0288"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"882a1ffbcd7bffe0e965097320210a829d09f61f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9c59d9ce_a0c63b82","updated":"2026-05-27 19:10:45.000000000","message":"This looks good to me too, thank you","commit_id":"562c3eb259e0faa9260682db535b05d899ab0288"}],"specs/2026.2/approved/virtiofs-cold-migration.rst":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"50542cf8e04d432447a77e709dd2249fb0537939","unresolved":true,"context_lines":[{"line_number":98,"context_line":"          spawn instance"},{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access"},{"line_number":102,"context_line":"    -\u003e User: revert_resize()"},{"line_number":103,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":104,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":1,"id":"37a13546_9a92b79f","line":101,"range":{"start_line":101,"start_character":10,"end_line":101,"end_character":53},"updated":"2026-05-15 20:47:27.000000000","message":"implicit but maybe we should also make \"and unlocks the share\" explicit?","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"          spawn instance"},{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access"},{"line_number":102,"context_line":"    -\u003e User: revert_resize()"},{"line_number":103,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":104,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0433b695_ef2b0ef0","line":101,"range":{"start_line":101,"start_character":10,"end_line":101,"end_character":53},"in_reply_to":"14994169_c815ad0f","updated":"2026-05-20 01:46:26.000000000","message":"Done","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"59a9233671ef3e5e362d8b6a85b5ecd391f44eed","unresolved":true,"context_lines":[{"line_number":98,"context_line":"          spawn instance"},{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access"},{"line_number":102,"context_line":"    -\u003e User: revert_resize()"},{"line_number":103,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":104,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":1,"id":"14994169_c815ad0f","line":101,"range":{"start_line":101,"start_character":10,"end_line":101,"end_character":53},"in_reply_to":"37a13546_9a92b79f","updated":"2026-05-20 01:34:03.000000000","message":"ack, will do","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df879afe5345011e58c61b400b96bfb85278ce9d","unresolved":true,"context_lines":[{"line_number":123,"context_line":"Manila access helpers"},{"line_number":124,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The existing ``allow_share()`` and ``deny_share()`` methods have"},{"line_number":127,"context_line":"side effects (status changes, notifications, DB deletes) that are"},{"line_number":128,"context_line":"wrong for migration. Two new private methods handle Manila access"},{"line_number":129,"context_line":"without those side effects:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5a982489_5baa224a","line":126,"updated":"2026-05-19 14:02:50.000000000","message":"It would be helpful to point out that these are compute manager RPC methods. When I first read this I was thinking you were describing manila client helpers that were going to be needed or something and I was thinking about dependencies. I refreshed my memory, but I think it would be clearer to indicate that you\u0027re talking about (I think) breaking up the existing top-level attach/detach RPC methods into inner functions you can call.","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"59a9233671ef3e5e362d8b6a85b5ecd391f44eed","unresolved":true,"context_lines":[{"line_number":123,"context_line":"Manila access helpers"},{"line_number":124,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The existing ``allow_share()`` and ``deny_share()`` methods have"},{"line_number":127,"context_line":"side effects (status changes, notifications, DB deletes) that are"},{"line_number":128,"context_line":"wrong for migration. Two new private methods handle Manila access"},{"line_number":129,"context_line":"without those side effects:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"aec9aa7a_0f9a06bc","line":126,"in_reply_to":"5a982489_5baa224a","updated":"2026-05-20 01:34:03.000000000","message":"ah! yes. these live in the compute manager and are extracts of the existing allow_share()/deny_share() RPC methods.. i\u0027ll clarify this.","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"Manila access helpers"},{"line_number":124,"context_line":"~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"The existing ``allow_share()`` and ``deny_share()`` methods have"},{"line_number":127,"context_line":"side effects (status changes, notifications, DB deletes) that are"},{"line_number":128,"context_line":"wrong for migration. Two new private methods handle Manila access"},{"line_number":129,"context_line":"without those side effects:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f8988a2a_62d41323","line":126,"in_reply_to":"aec9aa7a_0f9a06bc","updated":"2026-05-20 01:46:26.000000000","message":"Done","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df879afe5345011e58c61b400b96bfb85278ce9d","unresolved":true,"context_lines":[{"line_number":131,"context_line":"- ``_grant_share_access(context, share_mapping)``: grants Manila"},{"line_number":132,"context_line":"  access and polls for active status."},{"line_number":133,"context_line":"- ``_revoke_share_access(context, share_mapping)``: revokes the"},{"line_number":134,"context_line":"  Manila access rule."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":".. _cold-migration-mount-path-compatibility:"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"48c5a504_69c64e1e","line":134,"updated":"2026-05-19 14:02:50.000000000","message":"What exactly is the difference you\u0027re expecting? I guess it seems like the notifications that are there are still appropriate for migration, no? And I assume the `manila_api.allow()` would still be called and is the meat. It seems like maybe those existing routines are setting share state on the manila side (although in a confusing way I don\u0027t quite understand). Can you just be a bit more specific here?","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"59a9233671ef3e5e362d8b6a85b5ecd391f44eed","unresolved":true,"context_lines":[{"line_number":131,"context_line":"- ``_grant_share_access(context, share_mapping)``: grants Manila"},{"line_number":132,"context_line":"  access and polls for active status."},{"line_number":133,"context_line":"- ``_revoke_share_access(context, share_mapping)``: revokes the"},{"line_number":134,"context_line":"  Manila access rule."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":".. _cold-migration-mount-path-compatibility:"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fef387c1_f404df8a","line":134,"in_reply_to":"48c5a504_69c64e1e","updated":"2026-05-20 01:34:03.000000000","message":"The status changes are in Nova.. In the code today, \n\n`allow_share()` sets ShareMapping to INACTIVE (or ERROR on failure) and it sends Notifications (\"SHARE_ATTACH START/END/ERROR)\n\n`deny_share()` today deletes the ShareMapping record on the database, and sends SHARE_DETACH START/END/ERROR notifications. \n\nbut my intention was to factor out the code in such a way that i could reuse the bits to make manila calls and send context appropriate notifications (for migration as well)","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[{"line_number":131,"context_line":"- ``_grant_share_access(context, share_mapping)``: grants Manila"},{"line_number":132,"context_line":"  access and polls for active status."},{"line_number":133,"context_line":"- ``_revoke_share_access(context, share_mapping)``: revokes the"},{"line_number":134,"context_line":"  Manila access rule."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":".. _cold-migration-mount-path-compatibility:"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"a2742b6a_139272a6","line":134,"in_reply_to":"fef387c1_f404df8a","updated":"2026-05-20 01:46:26.000000000","message":"Done","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"50542cf8e04d432447a77e709dd2249fb0537939","unresolved":true,"context_lines":[{"line_number":184,"context_line":"REST API impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"No new microversion. The ``ForbiddenWithShare`` exception is no"},{"line_number":188,"context_line":"longer raised for ``resize()`` once the minimum compute service"},{"line_number":189,"context_line":"version is met."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Security impact"},{"line_number":192,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"77c19d22_ce43af52","line":189,"range":{"start_line":187,"start_character":21,"end_line":189,"end_character":15},"updated":"2026-05-15 20:47:27.000000000","message":"I think it\u0027s a nice idea to not add a new microversion, but it might be a bit concerning that we are explicitly changing what sort of exception could be thrown as part of this. How would users know when is it possible to cold migrate an instance that has shares attached?","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"59a9233671ef3e5e362d8b6a85b5ecd391f44eed","unresolved":true,"context_lines":[{"line_number":184,"context_line":"REST API impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"No new microversion. The ``ForbiddenWithShare`` exception is no"},{"line_number":188,"context_line":"longer raised for ``resize()`` once the minimum compute service"},{"line_number":189,"context_line":"version is met."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Security impact"},{"line_number":192,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c577e9c6_09666741","line":189,"range":{"start_line":187,"start_character":21,"end_line":189,"end_character":15},"in_reply_to":"3eb26527_ddbbaa42","updated":"2026-05-20 01:34:03.000000000","message":"Ack, the thought here was that end-users don\u0027t do the migration, admins do.. and in my head i was picturing someone backporting this code to allow older versions of OpenStack to support cold migration.. \n\nWe may have a sequencing problem to have a single microversion with all three changes.. I was thinking that Cold Migration will land first, possibly with hot attach in Hibiscus and live migration would be a stretch goal.. I\u0027ll try to shoot for the single microversion if it\u0027s desirable.","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df879afe5345011e58c61b400b96bfb85278ce9d","unresolved":true,"context_lines":[{"line_number":184,"context_line":"REST API impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"No new microversion. The ``ForbiddenWithShare`` exception is no"},{"line_number":188,"context_line":"longer raised for ``resize()`` once the minimum compute service"},{"line_number":189,"context_line":"version is met."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Security impact"},{"line_number":192,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3eb26527_ddbbaa42","line":189,"range":{"start_line":187,"start_character":21,"end_line":189,"end_character":15},"in_reply_to":"77c19d22_ce43af52","updated":"2026-05-19 14:02:50.000000000","message":"Yeah, I thought the outcome of the PTG was that we _wanted_ a microversion just to indicate that it\u0027s even possible (even if individual computes have not been upgraded). Is that not right? Ideally there would be a single one for live and cold migration too..","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[{"line_number":184,"context_line":"REST API impact"},{"line_number":185,"context_line":"---------------"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"No new microversion. The ``ForbiddenWithShare`` exception is no"},{"line_number":188,"context_line":"longer raised for ``resize()`` once the minimum compute service"},{"line_number":189,"context_line":"version is met."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"Security impact"},{"line_number":192,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d4d3f02d_50ffebae","line":189,"range":{"start_line":187,"start_character":21,"end_line":189,"end_character":15},"in_reply_to":"c577e9c6_09666741","updated":"2026-05-20 01:46:26.000000000","message":"Done","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df879afe5345011e58c61b400b96bfb85278ce9d","unresolved":true,"context_lines":[{"line_number":265,"context_line":"1. Add ``_grant_share_access()`` and ``_revoke_share_access()``"},{"line_number":266,"context_line":"   private methods to the compute manager (also used by live"},{"line_number":267,"context_line":"   migration)."},{"line_number":268,"context_line":"2. Bump the compute service version."},{"line_number":269,"context_line":"3. Replace ``@block_shares_not_supported()`` on ``resize()``"},{"line_number":270,"context_line":"   with an inline minimum service version check."},{"line_number":271,"context_line":"4. Add share handling in ``_finish_resize()``,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8a9aab2f_d92eeb04","line":268,"updated":"2026-05-19 14:02:50.000000000","message":"To be clear, this needs to happen after/during the actual implementation, not before :)","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[{"line_number":265,"context_line":"1. Add ``_grant_share_access()`` and ``_revoke_share_access()``"},{"line_number":266,"context_line":"   private methods to the compute manager (also used by live"},{"line_number":267,"context_line":"   migration)."},{"line_number":268,"context_line":"2. Bump the compute service version."},{"line_number":269,"context_line":"3. Replace ``@block_shares_not_supported()`` on ``resize()``"},{"line_number":270,"context_line":"   with an inline minimum service version check."},{"line_number":271,"context_line":"4. Add share handling in ``_finish_resize()``,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"afb1ad97_b17e3af2","line":268,"in_reply_to":"575be3a9_8145323d","updated":"2026-05-20 01:46:26.000000000","message":"Done","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"59a9233671ef3e5e362d8b6a85b5ecd391f44eed","unresolved":true,"context_lines":[{"line_number":265,"context_line":"1. Add ``_grant_share_access()`` and ``_revoke_share_access()``"},{"line_number":266,"context_line":"   private methods to the compute manager (also used by live"},{"line_number":267,"context_line":"   migration)."},{"line_number":268,"context_line":"2. Bump the compute service version."},{"line_number":269,"context_line":"3. Replace ``@block_shares_not_supported()`` on ``resize()``"},{"line_number":270,"context_line":"   with an inline minimum service version check."},{"line_number":271,"context_line":"4. Add share handling in ``_finish_resize()``,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"575be3a9_8145323d","line":268,"in_reply_to":"8a9aab2f_d92eeb04","updated":"2026-05-20 01:34:03.000000000","message":"True; putting this as a work item is too verbose..","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"df879afe5345011e58c61b400b96bfb85278ce9d","unresolved":true,"context_lines":[{"line_number":274,"context_line":"5. Extend ``driver.finish_migration()`` and"},{"line_number":275,"context_line":"   ``driver.finish_revert_migration()`` to accept ``share_info``."},{"line_number":276,"context_line":"6. Add a periodic task to clean up stale Manila access rules for"},{"line_number":277,"context_line":"   hosts with no instances using a given share."},{"line_number":278,"context_line":"7. Add functional tests using the libvirt fixture: success,"},{"line_number":279,"context_line":"   failure, revert, and mount path mismatch scenarios."},{"line_number":280,"context_line":"8. Add tempest tests for cold migration with NFS and CephFS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"18020134_289116a3","line":277,"updated":"2026-05-19 14:02:50.000000000","message":"I know this is referenced above, but.. why do we need this exactly? Why can\u0027t we remove a share after the last user (instance) is done with it? We have a lot of periodic churn and this seems like something we could avoid. Obviously cleanup for error scenarios is fine, but for the normal case it seems quite undesirable. Is this just for \"leaked\" shares? If so, cool, but it sounds like maybe more of a happy path requirement?","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"59a9233671ef3e5e362d8b6a85b5ecd391f44eed","unresolved":true,"context_lines":[{"line_number":274,"context_line":"5. Extend ``driver.finish_migration()`` and"},{"line_number":275,"context_line":"   ``driver.finish_revert_migration()`` to accept ``share_info``."},{"line_number":276,"context_line":"6. Add a periodic task to clean up stale Manila access rules for"},{"line_number":277,"context_line":"   hosts with no instances using a given share."},{"line_number":278,"context_line":"7. Add functional tests using the libvirt fixture: success,"},{"line_number":279,"context_line":"   failure, revert, and mount path mismatch scenarios."},{"line_number":280,"context_line":"8. Add tempest tests for cold migration with NFS and CephFS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"468e5f83_4e32573b","line":277,"in_reply_to":"18020134_289116a3","updated":"2026-05-20 01:34:03.000000000","message":"Yeah this is plainly for error scenarios.. If there\u0027s some reason we fail to clean up manila rules today, we just log an exception and move on.. This can be a future work item (I was meaning to do it as a separate patch)","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50454d22af70b7818a2532376d2f2ea4c01bb01e","unresolved":false,"context_lines":[{"line_number":274,"context_line":"5. Extend ``driver.finish_migration()`` and"},{"line_number":275,"context_line":"   ``driver.finish_revert_migration()`` to accept ``share_info``."},{"line_number":276,"context_line":"6. Add a periodic task to clean up stale Manila access rules for"},{"line_number":277,"context_line":"   hosts with no instances using a given share."},{"line_number":278,"context_line":"7. Add functional tests using the libvirt fixture: success,"},{"line_number":279,"context_line":"   failure, revert, and mount path mismatch scenarios."},{"line_number":280,"context_line":"8. Add tempest tests for cold migration with NFS and CephFS"}],"source_content_type":"text/x-rst","patch_set":1,"id":"941b45b5_fd43c678","line":277,"in_reply_to":"468e5f83_4e32573b","updated":"2026-05-20 01:46:26.000000000","message":"Done","commit_id":"85c771c90c165cdc5038f35d4e42943d9c5db4b4"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"37180792023ffee30c407b9ed50baa26f983782e","unresolved":true,"context_lines":[{"line_number":63,"context_line":"Evacuate, rebuild, shelve, and suspend remain blocked for instances"},{"line_number":64,"context_line":"with share attachments. Concurrent share attach/detach during"},{"line_number":65,"context_line":"migration is prevented by the ``vm_state`` check in the shares API."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Remove the API block"},{"line_number":68,"context_line":"---------------------"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"595b8800_ed224734","line":66,"updated":"2026-05-21 16:26:09.000000000","message":"Cross-cell resize is a particular case worth considering.\n\nWe could consider it as unsupported for now (keeping the block for\nthat specific case), which seems reasonable for a first iteration.\n\nBut if we want to support it, we need to think about the\nimplications. It might be relatively transparent for shares since\nthe Manila access grant/revoke logic should target the proper cell,\nbut I need to dig deeper into this to be sure.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7a84b98fc40d00c0dcb718d196f6d75bb4e51595","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Evacuate, rebuild, shelve, and suspend remain blocked for instances"},{"line_number":64,"context_line":"with share attachments. Concurrent share attach/detach during"},{"line_number":65,"context_line":"migration is prevented by the ``vm_state`` check in the shares API."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Remove the API block"},{"line_number":68,"context_line":"---------------------"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"71080f20_bf4b2439","line":66,"in_reply_to":"3fa0763c_bb250e1b","updated":"2026-05-22 05:28:05.000000000","message":"Done","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":true,"context_lines":[{"line_number":63,"context_line":"Evacuate, rebuild, shelve, and suspend remain blocked for instances"},{"line_number":64,"context_line":"with share attachments. Concurrent share attach/detach during"},{"line_number":65,"context_line":"migration is prevented by the ``vm_state`` check in the shares API."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"Remove the API block"},{"line_number":68,"context_line":"---------------------"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa0763c_bb250e1b","line":66,"in_reply_to":"595b8800_ed224734","updated":"2026-05-22 05:15:42.000000000","message":"That\u0027s an important point; i will call this out. Thank you","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"37180792023ffee30c407b9ed50baa26f983782e","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    -\u003e Conductor"},{"line_number":93,"context_line":"      -\u003e Source: resize_instance()"},{"line_number":94,"context_line":"          power off, copy disks (shares stay mounted)"},{"line_number":95,"context_line":"      -\u003e Dest: _finish_resize()"},{"line_number":96,"context_line":"          grant Manila access, mount shares"},{"line_number":97,"context_line":"          driver.finish_migration(share_info\u003d...)"},{"line_number":98,"context_line":"          spawn instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c1dc744b_17036a75","line":95,"range":{"start_line":95,"start_character":9,"end_line":95,"end_character":13},"updated":"2026-05-21 16:26:09.000000000","message":"The @block_shares_not_supported() decorator is on resize() in the API, which handles both cold migration (to a different host) and resize (flavor change, potentially on the same host with allow_resize_to_same_host\u003dTrue).\n\nRemoving the decorator unblocks both operations.\nThe spec focuses on the cold migration flow, but what happens during a same-host resize? In that case, shares are already mounted and Manila access is already granted.\nSo _finish_resize() will probably need a short-circuit avoiding grant and mount.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7a84b98fc40d00c0dcb718d196f6d75bb4e51595","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    -\u003e Conductor"},{"line_number":93,"context_line":"      -\u003e Source: resize_instance()"},{"line_number":94,"context_line":"          power off, copy disks (shares stay mounted)"},{"line_number":95,"context_line":"      -\u003e Dest: _finish_resize()"},{"line_number":96,"context_line":"          grant Manila access, mount shares"},{"line_number":97,"context_line":"          driver.finish_migration(share_info\u003d...)"},{"line_number":98,"context_line":"          spawn instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9d78569a_9aad5c82","line":95,"range":{"start_line":95,"start_character":9,"end_line":95,"end_character":13},"in_reply_to":"a0bf539e_c6e61ccf","updated":"2026-05-22 05:28:05.000000000","message":"Done","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    -\u003e Conductor"},{"line_number":93,"context_line":"      -\u003e Source: resize_instance()"},{"line_number":94,"context_line":"          power off, copy disks (shares stay mounted)"},{"line_number":95,"context_line":"      -\u003e Dest: _finish_resize()"},{"line_number":96,"context_line":"          grant Manila access, mount shares"},{"line_number":97,"context_line":"          driver.finish_migration(share_info\u003d...)"},{"line_number":98,"context_line":"          spawn instance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a0bf539e_c6e61ccf","line":95,"range":{"start_line":95,"start_character":9,"end_line":95,"end_character":13},"in_reply_to":"c1dc744b_17036a75","updated":"2026-05-22 05:15:42.000000000","message":"Ack; i\u0027ll add this clarification","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d9f15aef9bd25cad42a7343edee222eb502f577f","unresolved":true,"context_lines":[{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access,"},{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":2,"id":"6e8d65d3_74701cf4","line":102,"updated":"2026-05-21 02:59:13.000000000","message":"What does it mean to lock and unlock shares for attach/detach operations? Or is that just part of the Manila access rules add and remove?","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7a84b98fc40d00c0dcb718d196f6d75bb4e51595","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access,"},{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab2ae313_b9a1e823","line":102,"in_reply_to":"022bad5c_b123e187","updated":"2026-05-22 05:28:05.000000000","message":"Done","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":true,"context_lines":[{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access,"},{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":2,"id":"022bad5c_b123e187","line":102,"in_reply_to":"1ab97424_98057537","updated":"2026-05-22 05:15:42.000000000","message":"maybe i can clarify this too.. it is an arcane concept :) Cinder has the notion of \"attached\".. manila doesn\u0027t, since it\u0027s a shared file system, you can have any number of attachments.. and its hard to track if something is attached. We invented \"locks\" to solve this issue for nova.. so noone can delete/manipulate a share being attached to nova instances..","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"28c8bcea28cf64b3eaf6de44d902d20e3013b65c","unresolved":true,"context_lines":[{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access,"},{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ab97424_98057537","line":102,"in_reply_to":"501e2b6d_2500f177","updated":"2026-05-21 21:09:19.000000000","message":"Gotcha, thank for the explaining those details!","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7fe2d9b79d5016098823e5f9852677a18a76e5a3","unresolved":true,"context_lines":[{"line_number":99,"context_line":"    -\u003e User: confirm_resize()"},{"line_number":100,"context_line":"      -\u003e Source: confirm_resize()"},{"line_number":101,"context_line":"          unmount shares, revoke source Manila access,"},{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"}],"source_content_type":"text/x-rst","patch_set":2,"id":"501e2b6d_2500f177","line":102,"in_reply_to":"6e8d65d3_74701cf4","updated":"2026-05-21 12:49:43.000000000","message":"Some context on this: in terms of NFS or filesystem mounts, nothing prevents the filesystem itself to be deleted from the storage, even if they are mounted in an instance and this can cause disconnects. Is most mount contexts, this is fine, but we looked at this and this posed a problem to the workflow with Nova, as we needed to ensure that shares mounted to a VM sould not be deleted.\n\nSo locking/unlocking shares and access rules are mechanisms we implemented in the manila side to ensure that shares don\u0027t get deleted accidentally while they are still mounted. When nova creates the share attachment, it locks the deletion of the shares and the access rules, so we prevent the share deletion or access being revoked. We also lock the visibility of the ip and/or ceph keys/user for the access rule, to avoid leaks.\n\nSo yes, it\u0027s a Manila workflow and it should be transparent to the Nova users.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d9f15aef9bd25cad42a7343edee222eb502f577f","unresolved":true,"context_lines":[{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"cb75e036_9bef81fd","line":105,"updated":"2026-05-21 02:59:13.000000000","message":"destroy instance also I think, maybe before unmounting shares?","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":false,"context_lines":[{"line_number":102,"context_line":"          unlock shares for attach/detach operations"},{"line_number":103,"context_line":"    -\u003e User: revert_resize()"},{"line_number":104,"context_line":"      -\u003e Dest: revert_resize()"},{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"76edd27f_9d7c6ff2","line":105,"in_reply_to":"cb75e036_9bef81fd","updated":"2026-05-22 05:15:42.000000000","message":"Ack; I\u0027ll add the destroy step to the flow diagram","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d9f15aef9bd25cad42a7343edee222eb502f577f","unresolved":true,"context_lines":[{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The five changes follow the flow above. ``_finish_resize()``"},{"line_number":111,"context_line":"grants Manila access and mounts shares before calling"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e31a5e79_d04cd7c1","line":108,"updated":"2026-05-21 02:59:13.000000000","message":"would there be unlock of shares for attach/detach operations here too or?","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":true,"context_lines":[{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The five changes follow the flow above. ``_finish_resize()``"},{"line_number":111,"context_line":"grants Manila access and mounts shares before calling"}],"source_content_type":"text/x-rst","patch_set":2,"id":"87265736_d2cc59a4","line":108,"in_reply_to":"42abd60a_ac720d81","updated":"2026-05-22 05:15:42.000000000","message":"yes, \"revert\" happens on the destination.. during a revert, no explicit unlock is needed on the source because nothing was locked share-wise on the source... share(s) stayed mounted throughout.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"28c8bcea28cf64b3eaf6de44d902d20e3013b65c","unresolved":true,"context_lines":[{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The five changes follow the flow above. ``_finish_resize()``"},{"line_number":111,"context_line":"grants Manila access and mounts shares before calling"}],"source_content_type":"text/x-rst","patch_set":2,"id":"42abd60a_ac720d81","line":108,"in_reply_to":"57059886_49c5b3b2","updated":"2026-05-21 21:09:19.000000000","message":"This is finishing a migration revert and based on what I understand now about the locking, my comment should instead go under L105 I think, to unlock the shares on the dest when finishing up a revert. If I\u0027ve not gotten it wrong, that is 🙂\n\nYes, not sure how familiar you are with Nova resize/cold migrate but as a user you can choose whether to Confirm the resize or Revert the resize. The former is what you are talking about, where the instance has moved or otherwise finished resizing and you are saying this is good, I Confirm this. The other choice is you can say, no nevermind this is not what I want and Revert the resize/cold migrate and it will undo the setup on the dest and restore the original state on the source.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7a84b98fc40d00c0dcb718d196f6d75bb4e51595","unresolved":false,"context_lines":[{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The five changes follow the flow above. ``_finish_resize()``"},{"line_number":111,"context_line":"grants Manila access and mounts shares before calling"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f4bd61f9_746fdfa3","line":108,"in_reply_to":"87265736_d2cc59a4","updated":"2026-05-22 05:28:05.000000000","message":"Done","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7fe2d9b79d5016098823e5f9852677a18a76e5a3","unresolved":true,"context_lines":[{"line_number":105,"context_line":"          unmount shares, revoke dest Manila access"},{"line_number":106,"context_line":"      -\u003e Source: _finish_revert_resize()"},{"line_number":107,"context_line":"          driver.finish_revert_migration(share_info\u003d...)"},{"line_number":108,"context_line":"          spawn instance (source still has shares mounted)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"The five changes follow the flow above. ``_finish_resize()``"},{"line_number":111,"context_line":"grants Manila access and mounts shares before calling"}],"source_content_type":"text/x-rst","patch_set":2,"id":"57059886_49c5b3b2","line":108,"in_reply_to":"e31a5e79_d04cd7c1","updated":"2026-05-21 12:49:43.000000000","message":"For finishing the migration, it might not be needed, as the instance should be the same and attachments should remain. Access might need to be updated though, but only in case the IP of the VM changes and no longer matches the one in the access rule we created previously. Goutham can correct me if I am wrong though.\n\nI am confused by one thing now though - the unmount shares and revoke Manila access happens in the dest. Shouldn\u0027t it happen in the source? I might be missing something really fundamental though, so I apologize in advance :)","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e3d16e88cc804dcfa3ea8e4d6c5613aae4f4e30a","unresolved":false,"context_lines":[{"line_number":136,"context_line":"During migration the share remains attached to the instance, so"},{"line_number":137,"context_line":"none of these side effects are appropriate: the ``ShareMapping``"},{"line_number":138,"context_line":"must not change status or be deleted, and attach/detach"},{"line_number":139,"context_line":"notifications must not be sent."},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"Two new private methods are factored out of the existing RPC"},{"line_number":142,"context_line":"methods, retaining only the Manila API calls:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"cd25545d_07a9867c","line":139,"updated":"2026-05-20 14:28:57.000000000","message":"Ah, the share notifications are for the instance not the host (makes sense), I see.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"37180792023ffee30c407b9ed50baa26f983782e","unresolved":true,"context_lines":[{"line_number":175,"context_line":"During cold migration both hosts have Manila access. The window"},{"line_number":176,"context_line":"opens at ``_finish_resize()`` and closes at ``confirm_resize()``"},{"line_number":177,"context_line":"or ``revert_resize()``. This matches the volume live migration"},{"line_number":178,"context_line":"pattern. Stale rules leaked by error scenarios can be cleaned by"},{"line_number":179,"context_line":"a periodic task in a follow-up patch."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Alternatives"},{"line_number":182,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"19d21a86_5fbe2362","line":179,"range":{"start_line":178,"start_character":9,"end_line":179,"end_character":37},"updated":"2026-05-21 16:26:09.000000000","message":"Will the periodic cleanup task (Work Item #6) be implemented as part\nof this spec, or deferred to a follow-up?\nIt would be great to have it as part of this work since stale Manila access rules are likely to happen even more frequently with live migration.\nHaving the periodic task ready before live migration lands would be a good safety net.\n\nIf it stays in this spec, it might be worth adding a bit more detail, like \ndetection logic for stale rules.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9ca2c4864839fd480d4d3f5916a2dab827926458","unresolved":true,"context_lines":[{"line_number":175,"context_line":"During cold migration both hosts have Manila access. The window"},{"line_number":176,"context_line":"opens at ``_finish_resize()`` and closes at ``confirm_resize()``"},{"line_number":177,"context_line":"or ``revert_resize()``. This matches the volume live migration"},{"line_number":178,"context_line":"pattern. Stale rules leaked by error scenarios can be cleaned by"},{"line_number":179,"context_line":"a periodic task in a follow-up patch."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Alternatives"},{"line_number":182,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ae6bb81_e32bfacb","line":179,"range":{"start_line":178,"start_character":9,"end_line":179,"end_character":37},"in_reply_to":"19d21a86_5fbe2362","updated":"2026-05-22 05:15:42.000000000","message":"I would like to tackle this, but as a separate issue.. i\u0027ll keep it out of this spec for now... I agree it\u0027d be nice to do; but, in a normal course of operation this shouldn\u0027t happen; although annoying.. administrators have a way to clean things up today..","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7a84b98fc40d00c0dcb718d196f6d75bb4e51595","unresolved":false,"context_lines":[{"line_number":175,"context_line":"During cold migration both hosts have Manila access. The window"},{"line_number":176,"context_line":"opens at ``_finish_resize()`` and closes at ``confirm_resize()``"},{"line_number":177,"context_line":"or ``revert_resize()``. This matches the volume live migration"},{"line_number":178,"context_line":"pattern. Stale rules leaked by error scenarios can be cleaned by"},{"line_number":179,"context_line":"a periodic task in a follow-up patch."},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"Alternatives"},{"line_number":182,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"497fb6e5_f8960483","line":179,"range":{"start_line":178,"start_character":9,"end_line":179,"end_character":37},"in_reply_to":"1ae6bb81_e32bfacb","updated":"2026-05-22 05:28:05.000000000","message":"Done","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e3d16e88cc804dcfa3ea8e4d6c5613aae4f4e30a","unresolved":false,"context_lines":[{"line_number":204,"context_line":"server-side at request time. Ideally a single microversion would"},{"line_number":205,"context_line":"cover both cold and live migration, but if the implementations"},{"line_number":206,"context_line":"land in separate releases, each will introduce its own"},{"line_number":207,"context_line":"microversion."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"Security impact"},{"line_number":210,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e499656c_e13638e3","line":207,"updated":"2026-05-20 14:28:57.000000000","message":"We typically don\u0027t make \"same release\" calls on microversions, we would land the microversion after the implementation to unlock it. We can still do that here, just put the microversion patch at the end (which the tempest test patch can point to) and if we need to move it in front of the live migration patch then we do that.\n\nPerhaps that\u0027s what you mean here, but just wanted to be explicit.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e3d16e88cc804dcfa3ea8e4d6c5613aae4f4e30a","unresolved":false,"context_lines":[{"line_number":291,"context_line":"1. Add ``_grant_share_access()`` and ``_revoke_share_access()``"},{"line_number":292,"context_line":"   private methods to the compute manager (also used by live"},{"line_number":293,"context_line":"   migration)."},{"line_number":294,"context_line":"2. Add the microversion and replace"},{"line_number":295,"context_line":"   ``@block_shares_not_supported()`` on ``resize()`` with an"},{"line_number":296,"context_line":"   inline minimum service version check."},{"line_number":297,"context_line":"3. Add share handling in ``_finish_resize()``,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"e345774f_e0f35727","line":294,"updated":"2026-05-20 14:28:57.000000000","message":"Again, not sure if these are really in order, but the microversion needs to come only once the implementation is landed (or in the same patch as it of course). For this I suspect the microversion patch is last in line. Either way, that\u0027s really a detail to be sorted in the implementation patch stack, just pointing it out.","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"7a84b98fc40d00c0dcb718d196f6d75bb4e51595","unresolved":false,"context_lines":[{"line_number":291,"context_line":"1. Add ``_grant_share_access()`` and ``_revoke_share_access()``"},{"line_number":292,"context_line":"   private methods to the compute manager (also used by live"},{"line_number":293,"context_line":"   migration)."},{"line_number":294,"context_line":"2. Add the microversion and replace"},{"line_number":295,"context_line":"   ``@block_shares_not_supported()`` on ``resize()`` with an"},{"line_number":296,"context_line":"   inline minimum service version check."},{"line_number":297,"context_line":"3. Add share handling in ``_finish_resize()``,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"50fbf9b3_ee19b3df","line":294,"in_reply_to":"e345774f_e0f35727","updated":"2026-05-22 05:28:05.000000000","message":"Moved..","commit_id":"8f4533fbae6f823827b174a7140d3fd10c89393b"}]}
