)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"300b5a48cd8d0d5f2a39ee1431b03da97ad83478","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"25ff54d5_1b899972","updated":"2025-11-12 10:05:34.000000000","message":"@ces.eduardo98@gmail.com\nThanks for the review, please find the reply, also i started looking in the approach suggested by Goutham.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7540d05624b4a4c1ba57fde5e0bcea282e21e93a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"88dc63a9_820f362b","updated":"2025-11-06 21:10:28.000000000","message":"Missed to response.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"aee12110ef7c3f9f1f904e6c9043763e419206e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"db3461f1_5accd314","updated":"2025-08-28 05:09:26.000000000","message":"Thanks @gouthampravi@gmail.com, yes this is targeted to Gazoacho","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"179c9cba_5fd2b2ac","updated":"2025-11-06 18:13:55.000000000","message":"Thanks @nilesh.thathagar@dell.com, some comments inline","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"3140a0b3d6900b56b8c14e7768ca8529e0dd63be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3e7ee835_0061fcf2","updated":"2025-11-06 21:05:22.000000000","message":"Thanks for the review, @gouthampravi@gmail.com.\nI\u0027ve responded to a few comments and will address the remaining ones shortly.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1062172709e63af722e8504985c191d0c74ecc06","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"490c8248_d6048c7c","updated":"2025-11-10 19:32:11.000000000","message":"Thanks for working on this change. I\u0027d like to second Goutham\u0027s comments as well :)","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"b31f2186911411f5277480a27dcff7e535023a44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e136c6cd_e5b9f4ee","updated":"2025-08-21 21:13:11.000000000","message":"please do a review.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"adbfd93ae1a90db439e0f513ff26ddf0123e38da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3007e1c9_0aa4b157","updated":"2025-11-17 09:09:34.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"58aa66d59c03228f7711bcca9013339e8dd8a7b7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"46d6892d_547bf9cb","updated":"2025-11-17 09:53:18.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"f483dbbdf142fee0bfbda1bd3dc658218451eb33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5e13717a_82ecb598","updated":"2025-11-05 07:06:28.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"dd0bdc81817eaa5dd623daf3f1b2f05a8d776708","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6aa8b425_198c8fd2","updated":"2025-08-19 05:01:55.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"299ff8930af461c2909f463d00ad347e38b82612","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"735ac59f_2003a5e7","updated":"2025-11-06 09:15:05.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"efa382266b620aef28ad6ebb695bfb4d887aea1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"84b2aa99_58c50714","updated":"2026-08-18 12:41:16.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"2efa24d6ec49a5180a1211c7d17f7c8a7ae1b96b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8af0ab79_a5411f4b","updated":"2025-11-06 08:17:18.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"cbd9537114153e3485af84d4ed1883a775c68092","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"baee5005_3ce53e68","updated":"2025-11-05 09:51:59.000000000","message":"run-DellEMC PowerScale CI","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c14d3b9ce5f2b4bcbb04ee30caac9a3ead98c6c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b9d7aab4_3376d39e","in_reply_to":"e136c6cd_e5b9f4ee","updated":"2025-08-27 22:39:49.000000000","message":"Hi Nilesh, i see that this is targeted for Gazpacho - we\u0027ll merge Gazpacho patches after RC1 has been shipped: https://releases.openstack.org/flamingo/schedule.html#rc1-target-week","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"53025c7b9ecf8651f813a290a2519da11c201a97","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"4a5fed22_96c09876","updated":"2025-12-01 12:58:16.000000000","message":"run-DellEMC PowerScale CI","commit_id":"158c04675059a5ffac08113194859042ad2a66ca"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"c72fee039b21879a59fde817db935dc3daab5cc5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5b2a2c58_a23d6bde","updated":"2025-12-01 13:01:14.000000000","message":"run-DellEMC PowerScale CI","commit_id":"158c04675059a5ffac08113194859042ad2a66ca"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"8c0b26b94d8735c25df8fcc06351425b981f723b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a5758a37_213f9b0d","updated":"2025-12-01 12:47:04.000000000","message":"run-DellEMC PowerScale CI","commit_id":"158c04675059a5ffac08113194859042ad2a66ca"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"95d78f6fc368be8b37b04c740380f96ebf5fe72b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"aee0928b_d2e950a3","updated":"2025-12-01 13:16:10.000000000","message":"run-DellEMC PowerScale CI","commit_id":"158c04675059a5ffac08113194859042ad2a66ca"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"41d1d8fa_4310ae22","updated":"2025-12-01 12:46:41.000000000","message":"thanks @gouthampravi@gmail.com and @gouthampravi@gmail.com for the review.\n\nhave updated code, please do a review when you get a time.","commit_id":"158c04675059a5ffac08113194859042ad2a66ca"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"255892b23e1f5d4d38766948c53e9bbcca28d206","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"eb082bfd_cf61bb89","updated":"2026-02-04 18:04:03.000000000","message":"LGTM, thanks Nilesh!","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"64257a5434fee49424fa9218b20c3f571f468ece","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f15b71a5_cf213b95","updated":"2026-02-19 16:07:52.000000000","message":"Please look at the comments. I think Goutham is making an important point as well on the design for timeouts for the revert job.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"36acb6d3f548dba430852e1f21e07809dcf4a023","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"7213900c_6ac9703c","updated":"2026-02-05 19:35:29.000000000","message":"Thanks for sharing this in the collab-review, @nilesh.thathagar@dell.com. Some more comments inline","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"cd5932c3_ac211749","updated":"2026-02-24 06:00:43.000000000","message":"Thanks for working on this, provided few comments, please take a look.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"568e5bc5f406d1d78fa67602e31b8f5c1dc9a579","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3c460871_04728c72","updated":"2026-02-05 11:18:11.000000000","message":"run-DellEMC PowerScale CI","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"2f052d8ab5d73e8d7c89a7209e9436fbe968675a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"fa322d53_09b609eb","updated":"2026-03-06 16:03:00.000000000","message":"run-DellEMC PowerScale CI","commit_id":"06a953d7fe6ff2d965dcb6c00147e839e773807f"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ba6dd8d2_c32e4bc0","updated":"2026-03-06 07:53:41.000000000","message":"updated the patch, please review when you get a time.","commit_id":"06a953d7fe6ff2d965dcb6c00147e839e773807f"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"39d7d816b6df615d735cf463496bf1f55c7e8afc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"09ccba1e_9f2f4e1b","updated":"2026-03-12 09:12:33.000000000","message":"recheck","commit_id":"5fe68568907b6f7cd4c3591f313ef50a8d0a4149"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"acf464a4f3e5a5846b3588dfcaebe73a14ce2246","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1d3bc2bb_f95b093f","updated":"2026-03-11 22:47:07.000000000","message":"recheck","commit_id":"5fe68568907b6f7cd4c3591f313ef50a8d0a4149"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"33892cd6d3e36efc50f363ffec31aa1a9e8b531e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"d560ef15_4e38aca9","updated":"2026-03-06 16:11:13.000000000","message":"run-DellEMC PowerScale CI","commit_id":"5fe68568907b6f7cd4c3591f313ef50a8d0a4149"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"00523f8b4578817bf669d6965d3e5a4e1ae253f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"b2a9bb39_543c9f00","updated":"2026-04-17 07:42:06.000000000","message":"Please look at the comments below.","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"},{"author":{"_account_id":36686,"name":"Inyong Hong","display_name":"hongp","email":"inyong.hong@samsung.com","username":"hong-p"},"change_message_id":"dfb335ec52edff6f1464371b1e66ad2b93c88078","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"11b46794_8f1e295f","updated":"2026-07-15 16:21:07.000000000","message":"Looks good to me, but this is not mergeable because of the conflict. pls rebase.","commit_id":"8931aff0418704a3e8cdc6abcfa9930b97ebef73"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"16d2673764a6132a0f45b6e97d8c73f2f2d83e3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"84bd14a2_fbece655","updated":"2026-06-19 05:19:56.000000000","message":"Thanks for handling the comments. LGTM","commit_id":"8931aff0418704a3e8cdc6abcfa9930b97ebef73"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e597ff378dc17f468488469fb224d7304ffbc802","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"31bff2b7_438f94dd","updated":"2026-05-14 08:12:12.000000000","message":"recheck","commit_id":"8931aff0418704a3e8cdc6abcfa9930b97ebef73"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"f2db44afe181533526efc71038990c28b0a619f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"70e62249_e5651f6e","updated":"2026-05-11 09:24:57.000000000","message":"run-DellEMC PowerScale CI","commit_id":"8931aff0418704a3e8cdc6abcfa9930b97ebef73"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"baecbe8985965b397361631902c9a894ffd98d65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"adb15680_b0815164","updated":"2026-08-14 20:39:22.000000000","message":"Thank you for working on this change. I only have one comment. This change has a core part and a driver part. These should be split into two different changes. Could you please separate the core and the driver into two patches? The driver patch can have a depends-on to the core change.","commit_id":"f3c81a4a11fda2d8136e0b3ad1eb59676c10f840"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"7ec08a9f37c027420d6a999f87adc04fb96fa547","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"f3adb9ca_6974659e","updated":"2026-07-21 10:14:47.000000000","message":"recheck","commit_id":"f3c81a4a11fda2d8136e0b3ad1eb59676c10f840"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"c6656a93dd2bc79655f8df80dfc75bddee36cd98","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"4a47394f_5e3476ef","updated":"2026-08-06 07:35:52.000000000","message":"run-DellEMC PowerScale CI","commit_id":"f3c81a4a11fda2d8136e0b3ad1eb59676c10f840"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"0c03227ec19d3ffe9348e3f9ed6063c6addf7e9f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"e82f5d19_678860e8","updated":"2026-08-06 06:40:22.000000000","message":"run-DellEMC PowerScale CI","commit_id":"f3c81a4a11fda2d8136e0b3ad1eb59676c10f840"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"2bd9ee2a48b40f99fb722c7dabaa15bab489b0b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"a685c500_37835c92","updated":"2026-08-18 10:39:48.000000000","message":"Please check the comments below.","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c8a74f981f64bc803f62277b05d24bc5f53e4f2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"48b9e5fb_ee20083e","updated":"2026-08-20 13:56:16.000000000","message":"Thanks for working on this change. Please take a look at the comments inline.","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5001f868369d01ff4cef2883c8f48fdc75d36139","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"f212d52f_6e247683","updated":"2026-08-20 13:30:10.000000000","message":"hey @siddharth.kumar1@dell.com the Dell CI is reporting the output but whenever we click on the page we\u0027re getting a not found from github. Can you please look into it?","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"12e994bf031e46b8f1e2052c53ffa191bb37588d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"520eed40_e814422d","updated":"2026-08-21 13:26:44.000000000","message":"run-DellEMC PowerScale CI","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"7ab7ec5eb9e1aa630e96f8ba09f00dbf6dba1839","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"53c95f07_a8b681c9","updated":"2026-08-18 17:07:58.000000000","message":"run-DellEMC PowerScale CI","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"d3019af1f014302eabb1174ce881a0f205cc41d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"8350cc02_7fc349f6","updated":"2026-08-21 10:50:17.000000000","message":"run-DellEMC PowerScale CI","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"90e66a1b8a322f061cd31b9d94137ec31c4ad799","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"b061568b_1afe37d2","updated":"2026-08-18 16:21:20.000000000","message":"run-DellEMC PowerScale CI","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":37792,"name":"Dell Openstack CI","display_name":"Dell Openstack CI","email":"dellopenstackci@dell.com","username":"dellopenstackci"},"change_message_id":"087160652ff3422f689a2d251a88d03bac161069","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"bdf359c5_fc251370","updated":"2026-08-18 14:46:19.000000000","message":"run-DellEMC PowerScale CI","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"271ca37059c031827eb2fd1b009752c29793b29f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"fd64557b_816e8b3b","updated":"2026-08-21 13:05:24.000000000","message":"run-DellEMC PowerScale CI","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"04ea21b024ec4827ac53eb5ced22f03e9582922b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"a9ffe88b_bebc001b","in_reply_to":"f212d52f_6e247683","updated":"2026-08-20 13:43:23.000000000","message":"Hi Carlos, there is an issue with the repo becuase of which it was made private by the securtiy team, we are looking into it actively in order to bring it back public again.","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9dead5e445adfabc64c19ea72af32ffa900c8f9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"53e87af7_349e337e","updated":"2026-08-27 17:20:52.000000000","message":"Based on the most recent build, the revert to snapshot tests are not enabled: {2} setUpClass (manila_tempest_tests.tests.api.test_revert_to_snapshot.RevertToSnapshotTest) ... SKIPPED: Revert to snapshot tests are disabled.\nhttps://github.com/dell/dell-openstack-ci-logs/blob/main/t/openstack/build/884b8371f0594b69bc36ad30905321a2/tempest_result.txt#L644C1-L645C1","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b0d5413c024274d5a4d20e0972875885433775cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"5734e741_e89aa5ac","updated":"2026-08-27 17:22:19.000000000","message":"LGTM, thank you for working on this. Waiting on the test results","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"f6a9be80cb847ff00f67045270734dac6c890e03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"32b1367f_82799b0b","updated":"2026-08-28 11:35:28.000000000","message":"Please resolve merge conflicts","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b0d5413c024274d5a4d20e0972875885433775cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"59e9750f_40c03465","in_reply_to":"53e87af7_349e337e","updated":"2026-08-27 17:22:19.000000000","message":"Can you please enable the tests?","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"9f3f9022a7124a567d8613a898d937f17648c5dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3cac4fce_6e5fada5","updated":"2026-09-01 13:48:12.000000000","message":"@gouthampravi@gmail.com @ces.eduardo98@gmail.com @anoop.shukla@netapp.com\n\nTeam, I run the CI job, with revert to snapshot tests enabled and all the snapshot related tests passed. \n\nPlease help with the review","commit_id":"cda85a3b8afece6c17e508d52e649d8c1d98e3c3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"29718494a1980108644adb3d7b5985d0f1092935","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"d81d1278_a78d8f81","updated":"2026-08-31 08:15:09.000000000","message":"recheck","commit_id":"cda85a3b8afece6c17e508d52e649d8c1d98e3c3"},{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"a52d22b163aff1edeccadf18e8311e4b8b319fa7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"17625997_59e789a3","updated":"2026-09-01 11:23:37.000000000","message":"run-DellEMC PowerScale CI","commit_id":"cda85a3b8afece6c17e508d52e649d8c1d98e3c3"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"6464ffb0f221624e50f9f6b8c0f24dba5e720829","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"a84d7550_691b631e","updated":"2026-09-01 13:04:58.000000000","message":"run-DellEMC PowerScale CI","commit_id":"cda85a3b8afece6c17e508d52e649d8c1d98e3c3"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"550acc91b9c46e7225b1d1ce67c0e1180f5473eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"c95122dd_5ebd7611","updated":"2026-09-02 18:12:14.000000000","message":"Great job with both the core change, and this @siddharth.kumar1@dell.com and @nilesh.thathagar@dell.com","commit_id":"1068a56b30a6353bb377af7f24d8d06c60812af1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"42a54c0c9e9443c4c997872209b1f751429e2d78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"1a469fe9_44ecc2d2","updated":"2026-09-02 13:04:09.000000000","message":"I am going on PTO for this week and the remainder of the next one, but I\u0027m okay if this change merges if all comments are resolved and other reviewers are also fine with the change.","commit_id":"1068a56b30a6353bb377af7f24d8d06c60812af1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"be52f139b4300c6456528997eb0e43e9d65ff4a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"3714fa67_a4fa8545","updated":"2026-09-02 13:02:50.000000000","message":"LGTM, thank you!","commit_id":"1068a56b30a6353bb377af7f24d8d06c60812af1"}],"doc/source/configuration/shared-file-systems/drivers/dell-emc-powerscale-driver.rst":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: ini"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    openstack share type set \u003cshare_type_name\u003e --extra-specs\\"},{"line_number":97,"context_line":"    revert_to_snapshot_support\u003dTrue"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"On PowerScale, both domain mark and revert to snapshot operations run as"}],"source_content_type":"text/x-rst","patch_set":3,"id":"21d469f4_8e1bc587","line":96,"range":{"start_line":96,"start_character":60,"end_line":96,"end_character":61},"updated":"2025-11-06 18:13:55.000000000","message":"space before \\","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: ini"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    openstack share type set \u003cshare_type_name\u003e --extra-specs\\"},{"line_number":97,"context_line":"    revert_to_snapshot_support\u003dTrue"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"On PowerScale, both domain mark and revert to snapshot operations run as"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b5d95054_8c65651f","line":96,"range":{"start_line":96,"start_character":60,"end_line":96,"end_character":61},"in_reply_to":"21d469f4_8e1bc587","updated":"2025-12-01 12:46:41.000000000","message":"Done","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":true,"context_lines":[{"line_number":96,"context_line":"    openstack share type set \u003cshare_type_name\u003e --extra-specs\\"},{"line_number":97,"context_line":"    revert_to_snapshot_support\u003dTrue"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"On PowerScale, both domain mark and revert to snapshot operations run as"},{"line_number":100,"context_line":"asynchronous jobs. The PowerScale Manila driver periodically checks"},{"line_number":101,"context_line":"the job status."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"35141a39_9df8371b","line":99,"range":{"start_line":99,"start_character":20,"end_line":99,"end_character":31},"updated":"2025-11-06 18:13:55.000000000","message":"what does this mean?","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":96,"context_line":"    openstack share type set \u003cshare_type_name\u003e --extra-specs\\"},{"line_number":97,"context_line":"    revert_to_snapshot_support\u003dTrue"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"On PowerScale, both domain mark and revert to snapshot operations run as"},{"line_number":100,"context_line":"asynchronous jobs. The PowerScale Manila driver periodically checks"},{"line_number":101,"context_line":"the job status."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"cab53f83_622720a2","line":99,"range":{"start_line":99,"start_character":20,"end_line":99,"end_character":31},"in_reply_to":"060833b2_bac54ee2","updated":"2025-12-01 12:46:41.000000000","message":"Done","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"3140a0b3d6900b56b8c14e7768ca8529e0dd63be","unresolved":true,"context_lines":[{"line_number":96,"context_line":"    openstack share type set \u003cshare_type_name\u003e --extra-specs\\"},{"line_number":97,"context_line":"    revert_to_snapshot_support\u003dTrue"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"On PowerScale, both domain mark and revert to snapshot operations run as"},{"line_number":100,"context_line":"asynchronous jobs. The PowerScale Manila driver periodically checks"},{"line_number":101,"context_line":"the job status."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"060833b2_bac54ee2","line":99,"range":{"start_line":99,"start_character":20,"end_line":99,"end_character":31},"in_reply_to":"35141a39_9df8371b","updated":"2025-11-06 21:05:22.000000000","message":"please do refer:\n1.https://www.dell.com/community/en/conversations/isilon/protection-domains-and-domain-marks/647f9ce2f4ccf8a8de1122ff\n2.https://www.dell.com/support/manuals/en-us/isilon-onefs/ifs-pub-91000-administration-guide-gui/create-a-snaprevert-domain?guid\u003dguid-85c361ca-91cc-4578-a484-7a2abb6a484f\u0026lang\u003den-us\n3.https://www.dell.com/support/manuals/en-us/isilon-onefs/ifs-pub-91000-administration-guide-gui/revert-a-snapshot?guid\u003dguid-ae61f074-72a9-4c1c-a801-52a7eff5b2f3\u0026lang\u003den-us","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. note::"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    The driver supports only a single revert-to-snapshot"},{"line_number":113,"context_line":"    operation at any given time. Concurrent revert requests"},{"line_number":114,"context_line":"    are not allowed currently."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Driver options"},{"line_number":117,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"03355a4f_f362dcbf","line":114,"range":{"start_line":112,"start_character":0,"end_line":114,"end_character":30},"updated":"2025-11-06 18:13:55.000000000","message":"How is this enforced?","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"3140a0b3d6900b56b8c14e7768ca8529e0dd63be","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. note::"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    The driver supports only a single revert-to-snapshot"},{"line_number":113,"context_line":"    operation at any given time. Concurrent revert requests"},{"line_number":114,"context_line":"    are not allowed currently."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Driver options"},{"line_number":117,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"124e4be3_f655d4a3","line":114,"range":{"start_line":112,"start_character":0,"end_line":114,"end_character":30},"in_reply_to":"03355a4f_f362dcbf","updated":"2025-11-06 21:05:22.000000000","message":"At line: 635,\nsetting param: \u0027allow_dup\u0027: False,","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":".. note::"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    The driver supports only a single revert-to-snapshot"},{"line_number":113,"context_line":"    operation at any given time. Concurrent revert requests"},{"line_number":114,"context_line":"    are not allowed currently."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Driver options"},{"line_number":117,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fe49672e_73474706","line":114,"range":{"start_line":112,"start_character":0,"end_line":114,"end_character":30},"in_reply_to":"124e4be3_f655d4a3","updated":"2025-12-01 12:46:41.000000000","message":"Done","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"255892b23e1f5d4d38766948c53e9bbcca28d206","unresolved":true,"context_lines":[{"line_number":100,"context_line":"asynchronous jobs. The PowerScale Manila driver periodically checks"},{"line_number":101,"context_line":"the job status."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"You can adjust the retry count and polling interval by configuring:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. code-block:: ini"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"e7b06676_a6c33b36","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":67},"updated":"2026-02-04 18:04:03.000000000","message":"is this value measured in seconds? If so, please add a mention to it","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":100,"context_line":"asynchronous jobs. The PowerScale Manila driver periodically checks"},{"line_number":101,"context_line":"the job status."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"You can adjust the retry count and polling interval by configuring:"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":".. code-block:: ini"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"0445d7b6_ed2394e3","line":103,"range":{"start_line":103,"start_character":0,"end_line":103,"end_character":67},"in_reply_to":"e7b06676_a6c33b36","updated":"2026-03-06 07:53:41.000000000","message":"Done","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"da20401e69f62c1fb4c8417ff39761f742ebd56f","unresolved":true,"context_lines":[{"line_number":138,"context_line":"------------------"},{"line_number":139,"context_line":"* Unmanage does not delete the export; clients remain connected."},{"line_number":140,"context_line":"* When importing a share associated with a share type that has"},{"line_number":141,"context_line":"  revert_to_snapshot_support enabled, the domain mark job must be"},{"line_number":142,"context_line":"  executed on the share manually on the PowerScale backend before"},{"line_number":143,"context_line":"  performing the manage operation. Otherwise, revert-to-snapshot"},{"line_number":144,"context_line":"  operations will fail."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"b508da61_d322dccb","line":142,"range":{"start_line":141,"start_character":37,"end_line":142,"end_character":58},"updated":"2026-09-01 19:01:48.000000000","message":"Is this something that can be automated in the driver during the manage_existing workflow? The driver\u0027s doing this for new/greenfield shares anyway?","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"c9b170deab74814b468e0d80fdd9d805ec15f9f9","unresolved":false,"context_lines":[{"line_number":138,"context_line":"------------------"},{"line_number":139,"context_line":"* Unmanage does not delete the export; clients remain connected."},{"line_number":140,"context_line":"* When importing a share associated with a share type that has"},{"line_number":141,"context_line":"  revert_to_snapshot_support enabled, the domain mark job must be"},{"line_number":142,"context_line":"  executed on the share manually on the PowerScale backend before"},{"line_number":143,"context_line":"  performing the manage operation. Otherwise, revert-to-snapshot"},{"line_number":144,"context_line":"  operations will fail."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"9c0e1750_9bb955b0","line":142,"range":{"start_line":141,"start_character":37,"end_line":142,"end_character":58},"in_reply_to":"9a34cc17_e8f5fd66","updated":"2026-09-03 11:14:15.000000000","message":"I have filed the bug, thanks for the review Goutham.\nhttps://bugs.launchpad.net/manila/+bug/2166320","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"bcee3f1b33b099c9e8f7cb078a5c821573933aca","unresolved":true,"context_lines":[{"line_number":138,"context_line":"------------------"},{"line_number":139,"context_line":"* Unmanage does not delete the export; clients remain connected."},{"line_number":140,"context_line":"* When importing a share associated with a share type that has"},{"line_number":141,"context_line":"  revert_to_snapshot_support enabled, the domain mark job must be"},{"line_number":142,"context_line":"  executed on the share manually on the PowerScale backend before"},{"line_number":143,"context_line":"  performing the manage operation. Otherwise, revert-to-snapshot"},{"line_number":144,"context_line":"  operations will fail."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"9a34cc17_e8f5fd66","line":142,"range":{"start_line":141,"start_character":37,"end_line":142,"end_character":58},"in_reply_to":"a6094d59_a63229cd","updated":"2026-09-02 18:10:32.000000000","message":"Sure you can; file a bug on launchpad.net/manila please so you can track this work","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"77be2b8de983fd41bc574676a45f4b464b47451f","unresolved":true,"context_lines":[{"line_number":138,"context_line":"------------------"},{"line_number":139,"context_line":"* Unmanage does not delete the export; clients remain connected."},{"line_number":140,"context_line":"* When importing a share associated with a share type that has"},{"line_number":141,"context_line":"  revert_to_snapshot_support enabled, the domain mark job must be"},{"line_number":142,"context_line":"  executed on the share manually on the PowerScale backend before"},{"line_number":143,"context_line":"  performing the manage operation. Otherwise, revert-to-snapshot"},{"line_number":144,"context_line":"  operations will fail."},{"line_number":145,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"a6094d59_a63229cd","line":142,"range":{"start_line":141,"start_character":37,"end_line":142,"end_character":58},"in_reply_to":"b508da61_d322dccb","updated":"2026-09-02 07:30:44.000000000","message":"Actually, Automating this during manage_existing would require.\n\nAccess to share type information in the manage_existing workflow\nLogic to check if the share type has revert_to_snapshot_support enabled\nConditional Domain Mark job creation\n\nCan this enhancement can be addressed in a follow-up patch?","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"}],"manila/share/drivers/dell_emc/driver.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"2bd9ee2a48b40f99fb722c7dabaa15bab489b0b4","unresolved":true,"context_lines":[{"line_number":325,"context_line":"            )"},{"line_number":326,"context_line":"        raise NotImplementedError()"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def get_share_status(self, shares, share_server):"},{"line_number":329,"context_line":"        \"\"\"Invoked to get share status.\"\"\""},{"line_number":330,"context_line":"        if hasattr(self.plugin, \u0027get_share_status\u0027):"},{"line_number":331,"context_line":"            return self.plugin.get_share_status(shares, share_server)"},{"line_number":332,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":17,"id":"edfe839c_51aab9a9","line":332,"range":{"start_line":328,"start_character":0,"end_line":332,"end_character":35},"updated":"2026-08-18 10:39:48.000000000","message":"does this need a depends_on to an external patch?","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"e7a1b65c6f4e941319fa155b9d0b2ffa8111ab59","unresolved":false,"context_lines":[{"line_number":325,"context_line":"            )"},{"line_number":326,"context_line":"        raise NotImplementedError()"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def get_share_status(self, shares, share_server):"},{"line_number":329,"context_line":"        \"\"\"Invoked to get share status.\"\"\""},{"line_number":330,"context_line":"        if hasattr(self.plugin, \u0027get_share_status\u0027):"},{"line_number":331,"context_line":"            return self.plugin.get_share_status(shares, share_server)"},{"line_number":332,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":17,"id":"acf07bde_18be4734","line":332,"range":{"start_line":328,"start_character":0,"end_line":332,"end_character":35},"in_reply_to":"edfe839c_51aab9a9","updated":"2026-08-18 11:34:36.000000000","message":"Done","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"}],"manila/share/drivers/dell_emc/plugins/powerscale/powerscale.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":true,"context_lines":[{"line_number":623,"context_line":"    def revert_to_snapshot(self, context, snapshot, share_access_rules,"},{"line_number":624,"context_line":"                           snapshot_access_rules, share_server):"},{"line_number":625,"context_line":"        provider_location \u003d snapshot.get(\u0027provider_location\u0027)"},{"line_number":626,"context_line":"        if not provider_location:"},{"line_number":627,"context_line":"            LOG.warning("},{"line_number":628,"context_line":"                \"Failed to revert snapshot \u0027%s\u0027: missing provider location\","},{"line_number":629,"context_line":"                snapshot[\u0027id\u0027]"},{"line_number":630,"context_line":"            )"},{"line_number":631,"context_line":"            return"},{"line_number":632,"context_line":"        params \u003d {"},{"line_number":633,"context_line":"            \u0027type\u0027: \u0027SnapRevert\u0027,"},{"line_number":634,"context_line":"            \u0027priority\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":3,"id":"761a487e_0e3f4879","line":631,"range":{"start_line":626,"start_character":0,"end_line":631,"end_character":18},"updated":"2025-11-06 18:13:55.000000000","message":"please raise an exception here.. returning with a warning will cause the share\u0027s status to transition to \"available\" meaning that the revert operation completed as expected.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":623,"context_line":"    def revert_to_snapshot(self, context, snapshot, share_access_rules,"},{"line_number":624,"context_line":"                           snapshot_access_rules, share_server):"},{"line_number":625,"context_line":"        provider_location \u003d snapshot.get(\u0027provider_location\u0027)"},{"line_number":626,"context_line":"        if not provider_location:"},{"line_number":627,"context_line":"            LOG.warning("},{"line_number":628,"context_line":"                \"Failed to revert snapshot \u0027%s\u0027: missing provider location\","},{"line_number":629,"context_line":"                snapshot[\u0027id\u0027]"},{"line_number":630,"context_line":"            )"},{"line_number":631,"context_line":"            return"},{"line_number":632,"context_line":"        params \u003d {"},{"line_number":633,"context_line":"            \u0027type\u0027: \u0027SnapRevert\u0027,"},{"line_number":634,"context_line":"            \u0027priority\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ca28886f_5ae02ec3","line":631,"range":{"start_line":626,"start_character":0,"end_line":631,"end_character":18},"in_reply_to":"21b5f1a5_4c3358c2","updated":"2025-12-01 12:46:41.000000000","message":"Done, sure make sure to handle during manage/unmanage snapshot.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3b9c81ca04e482c4da2ee299a1cdee7286ad0872","unresolved":true,"context_lines":[{"line_number":623,"context_line":"    def revert_to_snapshot(self, context, snapshot, share_access_rules,"},{"line_number":624,"context_line":"                           snapshot_access_rules, share_server):"},{"line_number":625,"context_line":"        provider_location \u003d snapshot.get(\u0027provider_location\u0027)"},{"line_number":626,"context_line":"        if not provider_location:"},{"line_number":627,"context_line":"            LOG.warning("},{"line_number":628,"context_line":"                \"Failed to revert snapshot \u0027%s\u0027: missing provider location\","},{"line_number":629,"context_line":"                snapshot[\u0027id\u0027]"},{"line_number":630,"context_line":"            )"},{"line_number":631,"context_line":"            return"},{"line_number":632,"context_line":"        params \u003d {"},{"line_number":633,"context_line":"            \u0027type\u0027: \u0027SnapRevert\u0027,"},{"line_number":634,"context_line":"            \u0027priority\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":3,"id":"21b5f1a5_4c3358c2","line":631,"range":{"start_line":626,"start_character":0,"end_line":631,"end_character":18},"in_reply_to":"3a73f122_e29c77f9","updated":"2025-11-10 18:29:21.000000000","message":"Yes; unfortunately. But remember, you can\u0027t revert any existing shares anyway. Administrators have to either set \"revert_to_snapshot_support\" on existing share types or create new share types; and new shares will need to use a share type with that capability to support this feature. When a user creates snapshots of these new shares, with your code, the driver will be able to set the provider_location as expected. \n\nOne way existing shares can take advantage of this is by using the \"unmanage/manage\" workflow - which this driver doesn\u0027t yet support. When you add support for manage/unmanage of shares and snapshots, please ensure that provider location is set appropriately through that interface as well.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"7540d05624b4a4c1ba57fde5e0bcea282e21e93a","unresolved":true,"context_lines":[{"line_number":623,"context_line":"    def revert_to_snapshot(self, context, snapshot, share_access_rules,"},{"line_number":624,"context_line":"                           snapshot_access_rules, share_server):"},{"line_number":625,"context_line":"        provider_location \u003d snapshot.get(\u0027provider_location\u0027)"},{"line_number":626,"context_line":"        if not provider_location:"},{"line_number":627,"context_line":"            LOG.warning("},{"line_number":628,"context_line":"                \"Failed to revert snapshot \u0027%s\u0027: missing provider location\","},{"line_number":629,"context_line":"                snapshot[\u0027id\u0027]"},{"line_number":630,"context_line":"            )"},{"line_number":631,"context_line":"            return"},{"line_number":632,"context_line":"        params \u003d {"},{"line_number":633,"context_line":"            \u0027type\u0027: \u0027SnapRevert\u0027,"},{"line_number":634,"context_line":"            \u0027priority\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a73f122_e29c77f9","line":631,"range":{"start_line":626,"start_character":0,"end_line":631,"end_character":18},"in_reply_to":"761a487e_0e3f4879","updated":"2025-11-06 21:10:28.000000000","message":"After update to a new version:\n\nWhat should we do if the customer has existing shares that don’t have a provider location, and they attempt to revert a snapshot? Should we fail the operation in such cases?","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1062172709e63af722e8504985c191d0c74ecc06","unresolved":true,"context_lines":[{"line_number":635,"context_line":"            \u0027allow_dup\u0027: False,"},{"line_number":636,"context_line":"            \u0027policy\u0027: \u0027HIGH\u0027,"},{"line_number":637,"context_line":"            \u0027snaprevert_params\u0027: {"},{"line_number":638,"context_line":"                \u0027snapid\u0027: int(provider_location)"},{"line_number":639,"context_line":"            }"},{"line_number":640,"context_line":"        }"},{"line_number":641,"context_line":"        return self._powerscale_api.create_job(\u0027Revert to SnapShot\u0027, params)"}],"source_content_type":"text/x-python","patch_set":3,"id":"c9563d3c_9b3f87de","line":638,"range":{"start_line":638,"start_character":26,"end_line":638,"end_character":48},"updated":"2025-11-10 19:32:11.000000000","message":"is this actually always going to be an integer? asking because provider location","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1062172709e63af722e8504985c191d0c74ecc06","unresolved":true,"context_lines":[{"line_number":635,"context_line":"            \u0027allow_dup\u0027: False,"},{"line_number":636,"context_line":"            \u0027policy\u0027: \u0027HIGH\u0027,"},{"line_number":637,"context_line":"            \u0027snaprevert_params\u0027: {"},{"line_number":638,"context_line":"                \u0027snapid\u0027: int(provider_location)"},{"line_number":639,"context_line":"            }"},{"line_number":640,"context_line":"        }"},{"line_number":641,"context_line":"        return self._powerscale_api.create_job(\u0027Revert to SnapShot\u0027, params)"}],"source_content_type":"text/x-python","patch_set":3,"id":"632c2101_c9b60d99","line":638,"range":{"start_line":638,"start_character":25,"end_line":638,"end_character":48},"updated":"2025-11-10 19:32:11.000000000","message":"is this actually always going to be an integer? asking because the provider location in the manila database is a string and mostly it will have the uuid of the snapshot in the storage.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"300b5a48cd8d0d5f2a39ee1431b03da97ad83478","unresolved":true,"context_lines":[{"line_number":635,"context_line":"            \u0027allow_dup\u0027: False,"},{"line_number":636,"context_line":"            \u0027policy\u0027: \u0027HIGH\u0027,"},{"line_number":637,"context_line":"            \u0027snaprevert_params\u0027: {"},{"line_number":638,"context_line":"                \u0027snapid\u0027: int(provider_location)"},{"line_number":639,"context_line":"            }"},{"line_number":640,"context_line":"        }"},{"line_number":641,"context_line":"        return self._powerscale_api.create_job(\u0027Revert to SnapShot\u0027, params)"}],"source_content_type":"text/x-python","patch_set":3,"id":"e9f61449_5ddf5141","line":638,"range":{"start_line":638,"start_character":25,"end_line":638,"end_character":48},"in_reply_to":"632c2101_c9b60d99","updated":"2025-11-12 10:05:34.000000000","message":"Yes, it is always going to be integer,we are getting this value from PowerScale backend.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"2c780d0bba40b1597588ef724b6fb08c53a686ce","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            \u0027allow_dup\u0027: False,"},{"line_number":636,"context_line":"            \u0027policy\u0027: \u0027HIGH\u0027,"},{"line_number":637,"context_line":"            \u0027snaprevert_params\u0027: {"},{"line_number":638,"context_line":"                \u0027snapid\u0027: int(provider_location)"},{"line_number":639,"context_line":"            }"},{"line_number":640,"context_line":"        }"},{"line_number":641,"context_line":"        return self._powerscale_api.create_job(\u0027Revert to SnapShot\u0027, params)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ebb46ac1_e8981364","line":638,"range":{"start_line":638,"start_character":26,"end_line":638,"end_character":48},"in_reply_to":"c9563d3c_9b3f87de","updated":"2025-11-10 19:33:02.000000000","message":"Don\u0027t know how I managed to duplicate this :)","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":635,"context_line":"            \u0027allow_dup\u0027: False,"},{"line_number":636,"context_line":"            \u0027policy\u0027: \u0027HIGH\u0027,"},{"line_number":637,"context_line":"            \u0027snaprevert_params\u0027: {"},{"line_number":638,"context_line":"                \u0027snapid\u0027: int(provider_location)"},{"line_number":639,"context_line":"            }"},{"line_number":640,"context_line":"        }"},{"line_number":641,"context_line":"        return self._powerscale_api.create_job(\u0027Revert to SnapShot\u0027, params)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bdecfd41_01775717","line":638,"range":{"start_line":638,"start_character":25,"end_line":638,"end_character":48},"in_reply_to":"e9f61449_5ddf5141","updated":"2025-12-01 12:46:41.000000000","message":"Done","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"36acb6d3f548dba430852e1f21e07809dcf4a023","unresolved":true,"context_lines":[{"line_number":121,"context_line":"        max_share_size \u003d share[\u0027size\u0027] * units.Gi"},{"line_number":122,"context_line":"        self._powerscale_api.quota_create("},{"line_number":123,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":124,"context_line":"        self._check_domain_mark(share)"},{"line_number":125,"context_line":"        return location"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _check_domain_mark(self, share):"}],"source_content_type":"text/x-python","patch_set":7,"id":"69b55f72_f8a7c8cf","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":38},"updated":"2026-02-05 19:35:29.000000000","message":"my understanding from this change is that the DomainMark is needed for reverting snapshots in a share.\n\ncurious if there is any chance of this sync job failing? What would be the consequence of it? Do you need to think through any more prompting or assistance from the driver?\n\nIf there is, a mitigation I can think of is using the \"ensure_shares\" mechanism to establish the domain mark.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        max_share_size \u003d share[\u0027size\u0027] * units.Gi"},{"line_number":122,"context_line":"        self._powerscale_api.quota_create("},{"line_number":123,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":124,"context_line":"        self._check_domain_mark(share)"},{"line_number":125,"context_line":"        return location"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _check_domain_mark(self, share):"}],"source_content_type":"text/x-python","patch_set":7,"id":"39764a46_95fdac0f","line":124,"range":{"start_line":124,"start_character":0,"end_line":124,"end_character":38},"in_reply_to":"69b55f72_f8a7c8cf","updated":"2026-03-06 07:53:41.000000000","message":"There are 99% chances the job is not getting failed, because we are creating this job during the share create, and if job is getting failed then in that case share creation also gets fail.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"36acb6d3f548dba430852e1f21e07809dcf4a023","unresolved":true,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _check_domain_mark(self, share):"},{"line_number":128,"context_line":"        share_type_id \u003d share[\u0027share_type_id\u0027]"},{"line_number":129,"context_line":"        revert_snap_support \u003d ("},{"line_number":130,"context_line":"            share_types."},{"line_number":131,"context_line":"            get_share_type_extra_specs(share_type_id,"},{"line_number":132,"context_line":"                                       \"revert_to_snapshot_support\"))"},{"line_number":133,"context_line":"        if revert_snap_support:"},{"line_number":134,"context_line":"            params \u003d {"},{"line_number":135,"context_line":"                \u0027type\u0027: \u0027DomainMark\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"b2582a58_13491d12","line":132,"range":{"start_line":129,"start_character":0,"end_line":132,"end_character":69},"updated":"2026-02-05 19:35:29.000000000","message":"nit: \n\n\n\n```suggestion\n      revert_snap_support \u003d share_types.get_share_type_extra_specs(\n          share_type_id, \"revert_to_snapshot_support\")\n```","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    def _check_domain_mark(self, share):"},{"line_number":128,"context_line":"        share_type_id \u003d share[\u0027share_type_id\u0027]"},{"line_number":129,"context_line":"        revert_snap_support \u003d ("},{"line_number":130,"context_line":"            share_types."},{"line_number":131,"context_line":"            get_share_type_extra_specs(share_type_id,"},{"line_number":132,"context_line":"                                       \"revert_to_snapshot_support\"))"},{"line_number":133,"context_line":"        if revert_snap_support:"},{"line_number":134,"context_line":"            params \u003d {"},{"line_number":135,"context_line":"                \u0027type\u0027: \u0027DomainMark\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ad7c7bc_bb024dfb","line":132,"range":{"start_line":129,"start_character":0,"end_line":132,"end_character":69},"in_reply_to":"b2582a58_13491d12","updated":"2026-03-06 07:53:41.000000000","message":"Done","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":true,"context_lines":[{"line_number":411,"context_line":"            \u0027max_over_subscription_ratio\u0027:"},{"line_number":412,"context_line":"                self.max_over_subscription_ratio,"},{"line_number":413,"context_line":"            \u0027thin_provisioning\u0027: True,"},{"line_number":414,"context_line":"            \u0027revert_to_snapshot_support\u0027: True,"},{"line_number":415,"context_line":"        }"},{"line_number":416,"context_line":"        spaces \u003d self._powerscale_api.get_space_stats()"},{"line_number":417,"context_line":"        if spaces:"}],"source_content_type":"text/x-python","patch_set":7,"id":"02923c31_326ea810","line":414,"range":{"start_line":414,"start_character":12,"end_line":414,"end_character":47},"updated":"2026-02-24 06:00:43.000000000","message":"Does the user need a license to use this feature? If so, the value should depend on whether the license is installed on the storage.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            \u0027max_over_subscription_ratio\u0027:"},{"line_number":412,"context_line":"                self.max_over_subscription_ratio,"},{"line_number":413,"context_line":"            \u0027thin_provisioning\u0027: True,"},{"line_number":414,"context_line":"            \u0027revert_to_snapshot_support\u0027: True,"},{"line_number":415,"context_line":"        }"},{"line_number":416,"context_line":"        spaces \u003d self._powerscale_api.get_space_stats()"},{"line_number":417,"context_line":"        if spaces:"}],"source_content_type":"text/x-python","patch_set":7,"id":"639f2e33_3ce04aa7","line":414,"range":{"start_line":414,"start_character":12,"end_line":414,"end_character":47},"in_reply_to":"02923c31_326ea810","updated":"2026-03-06 07:53:41.000000000","message":"Does not required any license for this.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"36acb6d3f548dba430852e1f21e07809dcf4a023","unresolved":true,"context_lines":[{"line_number":635,"context_line":"        provider_location \u003d snapshot.get(\u0027provider_location\u0027)"},{"line_number":636,"context_line":"        if not provider_location:"},{"line_number":637,"context_line":"            message \u003d (_(\u0027Failed to revert snapshot %(snap)s, \u0027"},{"line_number":638,"context_line":"                         \u0027missing provider location .\u0027) %"},{"line_number":639,"context_line":"                       {\u0027snap\u0027: snapshot[\u0027name\u0027]})"},{"line_number":640,"context_line":"            LOG.error(message)"},{"line_number":641,"context_line":"            raise exception.ShareBackendException(msg\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9d02537d_bfe4f978","line":638,"range":{"start_line":638,"start_character":51,"end_line":638,"end_character":52},"updated":"2026-02-05 19:35:29.000000000","message":"nit: extra space","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":635,"context_line":"        provider_location \u003d snapshot.get(\u0027provider_location\u0027)"},{"line_number":636,"context_line":"        if not provider_location:"},{"line_number":637,"context_line":"            message \u003d (_(\u0027Failed to revert snapshot %(snap)s, \u0027"},{"line_number":638,"context_line":"                         \u0027missing provider location .\u0027) %"},{"line_number":639,"context_line":"                       {\u0027snap\u0027: snapshot[\u0027name\u0027]})"},{"line_number":640,"context_line":"            LOG.error(message)"},{"line_number":641,"context_line":"            raise exception.ShareBackendException(msg\u003dmessage)"}],"source_content_type":"text/x-python","patch_set":7,"id":"36c80628_ec29f9e4","line":638,"range":{"start_line":638,"start_character":51,"end_line":638,"end_character":52},"in_reply_to":"9d02537d_bfe4f978","updated":"2026-03-06 07:53:41.000000000","message":"Done","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":true,"context_lines":[{"line_number":638,"context_line":"                         \u0027missing provider location .\u0027) %"},{"line_number":639,"context_line":"                       {\u0027snap\u0027: snapshot[\u0027name\u0027]})"},{"line_number":640,"context_line":"            LOG.error(message)"},{"line_number":641,"context_line":"            raise exception.ShareBackendException(msg\u003dmessage)"},{"line_number":642,"context_line":"        params \u003d {"},{"line_number":643,"context_line":"            \u0027type\u0027: \u0027SnapRevert\u0027,"},{"line_number":644,"context_line":"            \u0027priority\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":7,"id":"f910bfa8_e6ab2ea9","line":641,"range":{"start_line":641,"start_character":12,"end_line":641,"end_character":62},"updated":"2026-02-24 06:00:43.000000000","message":"This is a generic exception for share. Since this is driver code, it is better to create the exception class in manila.exception.py file and use that instead. This comment applies to all instances where this generic exception is used.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":638,"context_line":"                         \u0027missing provider location .\u0027) %"},{"line_number":639,"context_line":"                       {\u0027snap\u0027: snapshot[\u0027name\u0027]})"},{"line_number":640,"context_line":"            LOG.error(message)"},{"line_number":641,"context_line":"            raise exception.ShareBackendException(msg\u003dmessage)"},{"line_number":642,"context_line":"        params \u003d {"},{"line_number":643,"context_line":"            \u0027type\u0027: \u0027SnapRevert\u0027,"},{"line_number":644,"context_line":"            \u0027priority\u0027: 10,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7e9ba517_c6b5e4bd","line":641,"range":{"start_line":641,"start_character":12,"end_line":641,"end_character":62},"in_reply_to":"f910bfa8_e6ab2ea9","updated":"2026-03-06 07:53:41.000000000","message":"Yes we are using Generic exception, changing to Class level exception not possible because needs to changes for all exception, keeping this as it is, will discuss with team and check how can we add that.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"2bd9ee2a48b40f99fb722c7dabaa15bab489b0b4","unresolved":true,"context_lines":[{"line_number":160,"context_line":"        max_share_size \u003d share[\u0027size\u0027] * units.Gi"},{"line_number":161,"context_line":"        self._powerscale_api.quota_create("},{"line_number":162,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":163,"context_line":"        self._check_domain_mark(share)"},{"line_number":164,"context_line":"        return location"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def _check_domain_mark(self, share):"}],"source_content_type":"text/x-python","patch_set":17,"id":"6282f2df_956bf3ab","line":163,"range":{"start_line":163,"start_character":8,"end_line":163,"end_character":38},"updated":"2026-08-18 10:39:48.000000000","message":"Shouldn\u0027t this also be added to the create_share_from_snapshot method?","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"e7a1b65c6f4e941319fa155b9d0b2ffa8111ab59","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        max_share_size \u003d share[\u0027size\u0027] * units.Gi"},{"line_number":161,"context_line":"        self._powerscale_api.quota_create("},{"line_number":162,"context_line":"            self._get_container_path(share), \u0027directory\u0027, max_share_size)"},{"line_number":163,"context_line":"        self._check_domain_mark(share)"},{"line_number":164,"context_line":"        return location"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def _check_domain_mark(self, share):"}],"source_content_type":"text/x-python","patch_set":17,"id":"ae80bb74_621148a4","line":163,"range":{"start_line":163,"start_character":8,"end_line":163,"end_character":38},"in_reply_to":"6282f2df_956bf3ab","updated":"2026-08-18 11:34:36.000000000","message":"create_share_from_snapshot calls self.create_share() at line 189, which already calls _check_domain_mark(). Adding it again would create a duplicate DomainMark job.","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"2bd9ee2a48b40f99fb722c7dabaa15bab489b0b4","unresolved":true,"context_lines":[{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"},{"line_number":1170,"context_line":"            self._update_snap_db_status(share_id)"},{"line_number":1171,"context_line":"            return {\"status\": const.STATUS_REVERTING_ERROR}"},{"line_number":1172,"context_line":"        elif status \u003d\u003d \"succeeded\":"},{"line_number":1173,"context_line":"            self._update_snap_db_status(share_id)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5257a4bb_cb757332","line":1170,"range":{"start_line":1170,"start_character":12,"end_line":1170,"end_character":49},"updated":"2026-08-18 10:39:48.000000000","message":"the method _update_snap_db_status would revert the share snapshot to a STATUS_AVAILABLE. If the job for revert using a snapshot failed, is it intended to mark the share snapshot to available state while the share goes to STATUS_REVERTING_ERROR? Isnt that inconsistent?","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"e7a1b65c6f4e941319fa155b9d0b2ffa8111ab59","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"},{"line_number":1170,"context_line":"            self._update_snap_db_status(share_id)"},{"line_number":1171,"context_line":"            return {\"status\": const.STATUS_REVERTING_ERROR}"},{"line_number":1172,"context_line":"        elif status \u003d\u003d \"succeeded\":"},{"line_number":1173,"context_line":"            self._update_snap_db_status(share_id)"}],"source_content_type":"text/x-python","patch_set":17,"id":"ed26cf11_7d1448df","line":1170,"range":{"start_line":1170,"start_character":12,"end_line":1170,"end_character":49},"in_reply_to":"5257a4bb_cb757332","updated":"2026-08-18 11:34:36.000000000","message":"Done","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"82cd648b0a5015af6a1f7cf90a5d9e45ee6f89d7","unresolved":false,"context_lines":[{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"},{"line_number":1170,"context_line":"            self._update_snap_db_status(share_id)"},{"line_number":1171,"context_line":"            return {\"status\": const.STATUS_REVERTING_ERROR}"},{"line_number":1172,"context_line":"        elif status \u003d\u003d \"succeeded\":"},{"line_number":1173,"context_line":"            self._update_snap_db_status(share_id)"}],"source_content_type":"text/x-python","patch_set":17,"id":"e9ef9ed6_a43e039f","line":1170,"range":{"start_line":1170,"start_character":12,"end_line":1170,"end_character":49},"in_reply_to":"ed26cf11_7d1448df","updated":"2026-08-18 11:37:19.000000000","message":"Behavior is correct (mirrors manager\u0027s synchronous revert error path at line 3692-3694 - snapshot data is unaffected by failed revert). Added clarifying comment + driver_private_data_delete on failure path to clean up stale job data.","commit_id":"74267c2ad98983391e6400f39f6da8dfecdab2ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c8a74f981f64bc803f62277b05d24bc5f53e4f2b","unresolved":true,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def _check_domain_mark(self, share):"},{"line_number":167,"context_line":"        share_type_id \u003d share[\u0027share_type_id\u0027]"},{"line_number":168,"context_line":"        revert_snap_support \u003d share_types.get_share_type_extra_specs("},{"line_number":169,"context_line":"            share_type_id, \"revert_to_snapshot_support\")"},{"line_number":170,"context_line":"        if revert_snap_support:"},{"line_number":171,"context_line":"            params \u003d {"},{"line_number":172,"context_line":"                \u0027type\u0027: \u0027DomainMark\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"46a2265d_e7af5da6","line":169,"range":{"start_line":168,"start_character":8,"end_line":169,"end_character":56},"updated":"2026-08-20 13:56:16.000000000","message":"get_share_type_extra specs might return a string with \"false\", which would lead to a truthy return\n```suggestion\n        revert_snap_support \u003d share_types.parse_boolean_extra_spec(\n        \t\"revert_to_snapshot_support\",\n\t\tshare_types.get_share_type_extra_specs(\n\t            share_type_id, \"revert_to_snapshot_support\")\n\t)\n```","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b2dea8071f2cc7ab045f51cb3bb8402642279812","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def _check_domain_mark(self, share):"},{"line_number":167,"context_line":"        share_type_id \u003d share[\u0027share_type_id\u0027]"},{"line_number":168,"context_line":"        revert_snap_support \u003d share_types.get_share_type_extra_specs("},{"line_number":169,"context_line":"            share_type_id, \"revert_to_snapshot_support\")"},{"line_number":170,"context_line":"        if revert_snap_support:"},{"line_number":171,"context_line":"            params \u003d {"},{"line_number":172,"context_line":"                \u0027type\u0027: \u0027DomainMark\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"433f74af_cc741b2b","line":169,"range":{"start_line":168,"start_character":8,"end_line":169,"end_character":56},"in_reply_to":"46a2265d_e7af5da6","updated":"2026-08-24 18:36:19.000000000","message":"Done","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c8a74f981f64bc803f62277b05d24bc5f53e4f2b","unresolved":true,"context_lines":[{"line_number":1148,"context_line":"        )"},{"line_number":1149,"context_line":"        return {\u0027status\u0027: const.STATUS_REVERTING_TO_SNAPSHOT}"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    def get_share_status(self, shares, share_server):"},{"line_number":1152,"context_line":"        \"\"\"Get the current status of a share operation."},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"        Checks the status of an asynchronous revert-to-snapshot job"}],"source_content_type":"text/x-python","patch_set":18,"id":"c7cb2995_06b97d0f","line":1151,"range":{"start_line":1151,"start_character":8,"end_line":1151,"end_character":24},"updated":"2026-08-20 13:56:16.000000000","message":"this won\u0027t be called - the share/manager periodic task for \"periodic_share_status_update\" is only filtering shares with status: STATUS_CREATING_FROM_SNAPSHOT","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"1529921f3ea9d62b8d5da866b2bcb143292d8292","unresolved":false,"context_lines":[{"line_number":1148,"context_line":"        )"},{"line_number":1149,"context_line":"        return {\u0027status\u0027: const.STATUS_REVERTING_TO_SNAPSHOT}"},{"line_number":1150,"context_line":""},{"line_number":1151,"context_line":"    def get_share_status(self, shares, share_server):"},{"line_number":1152,"context_line":"        \"\"\"Get the current status of a share operation."},{"line_number":1153,"context_line":""},{"line_number":1154,"context_line":"        Checks the status of an asynchronous revert-to-snapshot job"}],"source_content_type":"text/x-python","patch_set":18,"id":"a15e0c32_8e6f39c5","line":1151,"range":{"start_line":1151,"start_character":8,"end_line":1151,"end_character":24},"in_reply_to":"c7cb2995_06b97d0f","updated":"2026-08-20 13:57:58.000000000","message":"please disregard this. I see it was fixed in the other change.","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c8a74f981f64bc803f62277b05d24bc5f53e4f2b","unresolved":true,"context_lines":[{"line_number":1163,"context_line":"                  - STATUS_REVERTING_TO_SNAPSHOT if job still running"},{"line_number":1164,"context_line":"        \"\"\""},{"line_number":1165,"context_line":"        share_id \u003d shares[\u0027id\u0027]"},{"line_number":1166,"context_line":"        job_id \u003d db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"}],"source_content_type":"text/x-python","patch_set":18,"id":"cb94ba43_b576b002","line":1166,"range":{"start_line":1166,"start_character":44,"end_line":1166,"end_character":71},"updated":"2026-08-20 13:56:16.000000000","message":"please assign this to a variable once and reuse it so we avoid creating multiple contexts","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"f50bd909bd55c9cee378047f163bb956a9b93c08","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"                  - STATUS_REVERTING_TO_SNAPSHOT if job still running"},{"line_number":1164,"context_line":"        \"\"\""},{"line_number":1165,"context_line":"        share_id \u003d shares[\u0027id\u0027]"},{"line_number":1166,"context_line":"        job_id \u003d db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"}],"source_content_type":"text/x-python","patch_set":18,"id":"cfacd387_61119878","line":1166,"range":{"start_line":1166,"start_character":44,"end_line":1166,"end_character":71},"in_reply_to":"bb98c32b_83b91bdb","updated":"2026-08-25 04:54:22.000000000","message":"Fixed — assigned context.get_admin_context() to ctxt variable once to avoid multiple context creations.\n\n@gouthampravi@gmail.com The get_share_status driver method doesn\u0027t receive a context parameter in its signature (only shares and share_server). To access driver_private_data to retrieve the job_id, the driver needs some context. \n \nFor this patch, I\u0027ve kept the admin context approach since changing the driver interface would require changes to the base driver class and the share manager. The driver_private_data API is a driver-specific API (not the main Manila DB), so using admin context for this is a pragmatic solution.","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b2dea8071f2cc7ab045f51cb3bb8402642279812","unresolved":true,"context_lines":[{"line_number":1163,"context_line":"                  - STATUS_REVERTING_TO_SNAPSHOT if job still running"},{"line_number":1164,"context_line":"        \"\"\""},{"line_number":1165,"context_line":"        share_id \u003d shares[\u0027id\u0027]"},{"line_number":1166,"context_line":"        job_id \u003d db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"}],"source_content_type":"text/x-python","patch_set":18,"id":"f5ef9226_a5b5646b","line":1166,"range":{"start_line":1166,"start_character":44,"end_line":1166,"end_character":71},"in_reply_to":"bb98c32b_83b91bdb","updated":"2026-08-24 18:36:19.000000000","message":"I think this question still applies - could you please check if admin context is really needed?","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"47ba9da8c5c5ba3b26f5c4a43d2c4713f34368c2","unresolved":true,"context_lines":[{"line_number":1163,"context_line":"                  - STATUS_REVERTING_TO_SNAPSHOT if job still running"},{"line_number":1164,"context_line":"        \"\"\""},{"line_number":1165,"context_line":"        share_id \u003d shares[\u0027id\u0027]"},{"line_number":1166,"context_line":"        job_id \u003d db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1167,"context_line":"                                            share_id, \"job_id\")"},{"line_number":1168,"context_line":"        completed, status \u003d self._powerscale_api.get_job_status(job_id)"},{"line_number":1169,"context_line":"        if status \u003d\u003d \"failed\":"}],"source_content_type":"text/x-python","patch_set":18,"id":"bb98c32b_83b91bdb","line":1166,"range":{"start_line":1166,"start_character":44,"end_line":1166,"end_character":71},"in_reply_to":"cb94ba43_b576b002","updated":"2026-08-23 19:55:00.000000000","message":"why do you need admin context here though?","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c8a74f981f64bc803f62277b05d24bc5f53e4f2b","unresolved":true,"context_lines":[{"line_number":1189,"context_line":"    def _update_snap_db_status(self, share_id):"},{"line_number":1190,"context_line":"        snap_id \u003d (db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1191,"context_line":"                                              share_id, \"snap_id\"))"},{"line_number":1192,"context_line":"        db.share_snapshot_update("},{"line_number":1193,"context_line":"            context.get_admin_context(), snap_id,"},{"line_number":1194,"context_line":"            {\u0027status\u0027: const.STATUS_AVAILABLE})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f93ea82_80ef970c","line":1194,"range":{"start_line":1192,"start_character":8,"end_line":1194,"end_character":47},"updated":"2026-08-20 13:56:16.000000000","message":"share drivers should not make db calls and this is more of a design choice in Manila. private_data is fine, but the actual db should be avoided. We should return the status to Manila and let it handle instead.","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"47ba9da8c5c5ba3b26f5c4a43d2c4713f34368c2","unresolved":true,"context_lines":[{"line_number":1189,"context_line":"    def _update_snap_db_status(self, share_id):"},{"line_number":1190,"context_line":"        snap_id \u003d (db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1191,"context_line":"                                              share_id, \"snap_id\"))"},{"line_number":1192,"context_line":"        db.share_snapshot_update("},{"line_number":1193,"context_line":"            context.get_admin_context(), snap_id,"},{"line_number":1194,"context_line":"            {\u0027status\u0027: const.STATUS_AVAILABLE})"}],"source_content_type":"text/x-python","patch_set":18,"id":"a4efaf12_59c611f0","line":1194,"range":{"start_line":1192,"start_character":8,"end_line":1194,"end_character":47},"in_reply_to":"9f93ea82_80ef970c","updated":"2026-08-23 19:55:00.000000000","message":"+1 I\u0027ve asked for this reconciliation to happen in the share manager..","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"b2dea8071f2cc7ab045f51cb3bb8402642279812","unresolved":false,"context_lines":[{"line_number":1189,"context_line":"    def _update_snap_db_status(self, share_id):"},{"line_number":1190,"context_line":"        snap_id \u003d (db.driver_private_data_get(context.get_admin_context(),"},{"line_number":1191,"context_line":"                                              share_id, \"snap_id\"))"},{"line_number":1192,"context_line":"        db.share_snapshot_update("},{"line_number":1193,"context_line":"            context.get_admin_context(), snap_id,"},{"line_number":1194,"context_line":"            {\u0027status\u0027: const.STATUS_AVAILABLE})"}],"source_content_type":"text/x-python","patch_set":18,"id":"9b6e6da3_17b36fdb","line":1194,"range":{"start_line":1192,"start_character":8,"end_line":1194,"end_character":47},"in_reply_to":"a4efaf12_59c611f0","updated":"2026-08-24 18:36:19.000000000","message":"Thanks for taking care of this - marking the comment as resolved","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"da20401e69f62c1fb4c8417ff39761f742ebd56f","unresolved":true,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from manila.common import constants as const"},{"line_number":26,"context_line":"from manila import context"},{"line_number":27,"context_line":"from manila import db"},{"line_number":28,"context_line":"from manila import exception"},{"line_number":29,"context_line":"from manila.i18n import _"},{"line_number":30,"context_line":"from manila.share.drivers.dell_emc.plugins import base"}],"source_content_type":"text/x-python","patch_set":21,"id":"6c834cb0_5bb799cd","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":21},"updated":"2026-09-01 19:01:48.000000000","message":"nope, -1\n\nPlease don\u0027t import the database. \n\nThis isn\u0027t how driver private data is accessed. \nthe driver is initialized with a private data handler. See how other drivers are using it","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"77be2b8de983fd41bc574676a45f4b464b47451f","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from manila.common import constants as const"},{"line_number":26,"context_line":"from manila import context"},{"line_number":27,"context_line":"from manila import db"},{"line_number":28,"context_line":"from manila import exception"},{"line_number":29,"context_line":"from manila.i18n import _"},{"line_number":30,"context_line":"from manila.share.drivers.dell_emc.plugins import base"}],"source_content_type":"text/x-python","patch_set":21,"id":"048fbf3f_df50f548","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":21},"in_reply_to":"6c834cb0_5bb799cd","updated":"2026-09-02 07:30:44.000000000","message":"Done","commit_id":"4afb00a143b14b61aaaf9f312d8892f8e3eaf409"}],"manila/share/drivers/dell_emc/plugins/powerscale/powerscale_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":true,"context_lines":[{"line_number":514,"context_line":"        interval \u003d self.job_interval"},{"line_number":515,"context_line":"        cancel_job \u003d True"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        def _wait_for_job_complete():"},{"line_number":518,"context_line":"            nonlocal retries, status, is_complete, cancel_job"},{"line_number":519,"context_line":"            try:"},{"line_number":520,"context_line":"                retries +\u003d 1"},{"line_number":521,"context_line":"                LOG.debug(\"Checking status for job %s (attempt %d/%d)\","},{"line_number":522,"context_line":"                          job_id, retries, max_retries)"},{"line_number":523,"context_line":"                if not is_complete:"},{"line_number":524,"context_line":"                    (current_job_complete,"},{"line_number":525,"context_line":"                     current_job_status) \u003d self._get_job_status(job_id)"},{"line_number":526,"context_line":"                    if current_job_complete:"},{"line_number":527,"context_line":"                        is_complete \u003d True"},{"line_number":528,"context_line":"                        status \u003d current_job_status"},{"line_number":529,"context_line":"                        cancel_job \u003d False"},{"line_number":530,"context_line":"                        LOG.info(\"Job %s completed with status: \""},{"line_number":531,"context_line":"                                 \"%s (after %d attempts)\","},{"line_number":532,"context_line":"                                 job_id, status, retries)"},{"line_number":533,"context_line":"            except Exception as e:"},{"line_number":534,"context_line":"                exception_message \u003d _(\"Issue encountered waiting for job \""},{"line_number":535,"context_line":"                                      \"%s (attempt %d/%d): %s\") % ("},{"line_number":536,"context_line":"                    job_id, retries, max_retries, str(e))"},{"line_number":537,"context_line":"                LOG.error(exception_message)"},{"line_number":538,"context_line":"                if retries \u003e\u003d max_retries:"},{"line_number":539,"context_line":"                    status \u003d \u0027failed\u0027"},{"line_number":540,"context_line":"                    LOG.error(\"Max retries reached (%d) for job %s. \""},{"line_number":541,"context_line":"                              \"Marking as failed.\","},{"line_number":542,"context_line":"                              max_retries, job_id)"},{"line_number":543,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":544,"context_line":"                return"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"            if retries \u003e\u003d max_retries:"},{"line_number":547,"context_line":"                LOG.error(\"Job %s status check failed after \""},{"line_number":548,"context_line":"                          \"%d attempts (max %d)\","},{"line_number":549,"context_line":"                          job_id, retries, max_retries)"},{"line_number":550,"context_line":"                status \u003d \u0027failed\u0027"},{"line_number":551,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"            if is_complete:"},{"line_number":554,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"        retries \u003d 0"},{"line_number":557,"context_line":"        status \u003d \u0027unknown\u0027"},{"line_number":558,"context_line":"        is_complete \u003d False"},{"line_number":559,"context_line":"        LOG.info(\"Starting job status polling for job ID: \""},{"line_number":560,"context_line":"                 \"%s (max retries: %d, interval: %ds)\","},{"line_number":561,"context_line":"                 job_id, max_retries, interval)"},{"line_number":562,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_job_complete)"},{"line_number":563,"context_line":"        timer.start(interval\u003dinterval).wait()"},{"line_number":564,"context_line":"        return status, cancel_job"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def _get_job_status(self, job_id):"},{"line_number":567,"context_line":"        response \u003d self.send_get_request("}],"source_content_type":"text/x-python","patch_set":3,"id":"0b4b9a6b_28fb9afa","line":564,"range":{"start_line":517,"start_character":0,"end_line":564,"end_character":33},"updated":"2025-11-06 18:13:55.000000000","message":"Can you use the retry decorator in manila.utils? I\u0027d avoid directly relying on loopingcall because that implementation currently depends on the eventlet library; and we\u0027re actively working on removing that from OpenStack [1]. Manila\u0027s \"retry\" functionality depends on tenacity, a different/supported library [2] - even if eventlet\u0027s monkey patching sleep right now, when the code base no longer supports eventlet, your code will be unaffected if you use the retry method.\n\n\n[1] https://governance.openstack.org/tc/goals/selected/remove-eventlet.html\n[2] https://github.com/openstack/manila/blob/5aff8e63620f07fac44e7dc49df0a5706fb59110/manila/utils.py#L383-L390","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":514,"context_line":"        interval \u003d self.job_interval"},{"line_number":515,"context_line":"        cancel_job \u003d True"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"        def _wait_for_job_complete():"},{"line_number":518,"context_line":"            nonlocal retries, status, is_complete, cancel_job"},{"line_number":519,"context_line":"            try:"},{"line_number":520,"context_line":"                retries +\u003d 1"},{"line_number":521,"context_line":"                LOG.debug(\"Checking status for job %s (attempt %d/%d)\","},{"line_number":522,"context_line":"                          job_id, retries, max_retries)"},{"line_number":523,"context_line":"                if not is_complete:"},{"line_number":524,"context_line":"                    (current_job_complete,"},{"line_number":525,"context_line":"                     current_job_status) \u003d self._get_job_status(job_id)"},{"line_number":526,"context_line":"                    if current_job_complete:"},{"line_number":527,"context_line":"                        is_complete \u003d True"},{"line_number":528,"context_line":"                        status \u003d current_job_status"},{"line_number":529,"context_line":"                        cancel_job \u003d False"},{"line_number":530,"context_line":"                        LOG.info(\"Job %s completed with status: \""},{"line_number":531,"context_line":"                                 \"%s (after %d attempts)\","},{"line_number":532,"context_line":"                                 job_id, status, retries)"},{"line_number":533,"context_line":"            except Exception as e:"},{"line_number":534,"context_line":"                exception_message \u003d _(\"Issue encountered waiting for job \""},{"line_number":535,"context_line":"                                      \"%s (attempt %d/%d): %s\") % ("},{"line_number":536,"context_line":"                    job_id, retries, max_retries, str(e))"},{"line_number":537,"context_line":"                LOG.error(exception_message)"},{"line_number":538,"context_line":"                if retries \u003e\u003d max_retries:"},{"line_number":539,"context_line":"                    status \u003d \u0027failed\u0027"},{"line_number":540,"context_line":"                    LOG.error(\"Max retries reached (%d) for job %s. \""},{"line_number":541,"context_line":"                              \"Marking as failed.\","},{"line_number":542,"context_line":"                              max_retries, job_id)"},{"line_number":543,"context_line":"                    raise loopingcall.LoopingCallDone()"},{"line_number":544,"context_line":"                return"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"            if retries \u003e\u003d max_retries:"},{"line_number":547,"context_line":"                LOG.error(\"Job %s status check failed after \""},{"line_number":548,"context_line":"                          \"%d attempts (max %d)\","},{"line_number":549,"context_line":"                          job_id, retries, max_retries)"},{"line_number":550,"context_line":"                status \u003d \u0027failed\u0027"},{"line_number":551,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"            if is_complete:"},{"line_number":554,"context_line":"                raise loopingcall.LoopingCallDone()"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"        retries \u003d 0"},{"line_number":557,"context_line":"        status \u003d \u0027unknown\u0027"},{"line_number":558,"context_line":"        is_complete \u003d False"},{"line_number":559,"context_line":"        LOG.info(\"Starting job status polling for job ID: \""},{"line_number":560,"context_line":"                 \"%s (max retries: %d, interval: %ds)\","},{"line_number":561,"context_line":"                 job_id, max_retries, interval)"},{"line_number":562,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_job_complete)"},{"line_number":563,"context_line":"        timer.start(interval\u003dinterval).wait()"},{"line_number":564,"context_line":"        return status, cancel_job"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def _get_job_status(self, job_id):"},{"line_number":567,"context_line":"        response \u003d self.send_get_request("}],"source_content_type":"text/x-python","patch_set":3,"id":"de8fe38d_7ace51b9","line":564,"range":{"start_line":517,"start_character":0,"end_line":564,"end_character":33},"in_reply_to":"0b4b9a6b_28fb9afa","updated":"2025-12-01 12:46:41.000000000","message":"thanks for the update, have updated retry approach.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ccfd3e2df7e9a72ae6a049bcca097766f87701de","unresolved":true,"context_lines":[{"line_number":562,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_job_complete)"},{"line_number":563,"context_line":"        timer.start(interval\u003dinterval).wait()"},{"line_number":564,"context_line":"        return status, cancel_job"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def _get_job_status(self, job_id):"},{"line_number":567,"context_line":"        response \u003d self.send_get_request("},{"line_number":568,"context_line":"            \u0027{0}/platform/12/job/jobs/{1}\u0027.format(self.host_url, job_id),"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ae5c1f0_2fb20fcc","line":565,"updated":"2025-11-06 18:13:55.000000000","message":"Alternatively, a better approach is to introduce a new share status in manila: perhaps, \"REVERTING_TO_SNAPSHOT\". By doing this, the driver can initiate the revert operation and return to the share manager; and, the share manager can poll repeatedly [1] for shares in this state and wait for their completion. The driver needs to implement \"get_share_status\" to facilitate this: \n\nhttps://github.com/openstack/manila/blob/5aff8e63620f07fac44e7dc49df0a5706fb59110/manila/share/manager.py#L5803\n\nWe\u0027ve done this with cloning snapshots into new shares where we recognize the driver setting a \"CREATING_FROM_SNAPSHOT\" status.\n\n[1] https://github.com/openstack/manila/blob/5aff8e63620f07fac44e7dc49df0a5706fb59110/manila/share/manager.py#L5784-L5795","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"e30d98b60fb848a56bd5be39b189297ce1033e57","unresolved":false,"context_lines":[{"line_number":562,"context_line":"        timer \u003d loopingcall.FixedIntervalLoopingCall(_wait_for_job_complete)"},{"line_number":563,"context_line":"        timer.start(interval\u003dinterval).wait()"},{"line_number":564,"context_line":"        return status, cancel_job"},{"line_number":565,"context_line":""},{"line_number":566,"context_line":"    def _get_job_status(self, job_id):"},{"line_number":567,"context_line":"        response \u003d self.send_get_request("},{"line_number":568,"context_line":"            \u0027{0}/platform/12/job/jobs/{1}\u0027.format(self.host_url, job_id),"}],"source_content_type":"text/x-python","patch_set":3,"id":"e03c2788_1205cd51","line":565,"in_reply_to":"7ae5c1f0_2fb20fcc","updated":"2025-12-01 12:46:41.000000000","message":"going with rerty approach.","commit_id":"4399d456a1d1c3d8ae486c74f4e0d6b000b238e0"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":true,"context_lines":[{"line_number":493,"context_line":"        \"\"\"Create and monitor async job for PowerScale Manila driver.\"\"\""},{"line_number":494,"context_line":"        url \u003d f\"{self.host_url}/platform/12/job/jobs\""},{"line_number":495,"context_line":"        response \u003d self.send_post_request(url, data\u003dparams)"},{"line_number":496,"context_line":"        if response.status_code !\u003d 201:"},{"line_number":497,"context_line":"            message \u003d (_(\"Failed to create job for operation %(operation)s \""},{"line_number":498,"context_line":"                         \"with params %(params)s. Response: %(resp)s\") %"},{"line_number":499,"context_line":"                       {\u0027operation\u0027: operation, \u0027params\u0027: str(params),"}],"source_content_type":"text/x-python","patch_set":7,"id":"f24049fd_b49798e3","line":496,"range":{"start_line":496,"start_character":35,"end_line":496,"end_character":38},"updated":"2026-02-24 06:00:43.000000000","message":"Can you move all the response code to string or enums.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":493,"context_line":"        \"\"\"Create and monitor async job for PowerScale Manila driver.\"\"\""},{"line_number":494,"context_line":"        url \u003d f\"{self.host_url}/platform/12/job/jobs\""},{"line_number":495,"context_line":"        response \u003d self.send_post_request(url, data\u003dparams)"},{"line_number":496,"context_line":"        if response.status_code !\u003d 201:"},{"line_number":497,"context_line":"            message \u003d (_(\"Failed to create job for operation %(operation)s \""},{"line_number":498,"context_line":"                         \"with params %(params)s. Response: %(resp)s\") %"},{"line_number":499,"context_line":"                       {\u0027operation\u0027: operation, \u0027params\u0027: str(params),"}],"source_content_type":"text/x-python","patch_set":7,"id":"cb5004b9_c1cb3f85","line":496,"range":{"start_line":496,"start_character":35,"end_line":496,"end_character":38},"in_reply_to":"f24049fd_b49798e3","updated":"2026-03-06 07:53:41.000000000","message":"This we will consider as next improvement plan for all response.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"36acb6d3f548dba430852e1f21e07809dcf4a023","unresolved":true,"context_lines":[{"line_number":506,"context_line":"                  {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation,"},{"line_number":507,"context_line":"                   \u0027params\u0027: str(params)})"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        @utils.retry("},{"line_number":510,"context_line":"            retry_param\u003dexception.ShareBackendException,"},{"line_number":511,"context_line":"            interval\u003dself.job_interval,"},{"line_number":512,"context_line":"            retries\u003dself.job_retries,"},{"line_number":513,"context_line":"            backoff_rate\u003d1)"},{"line_number":514,"context_line":"        def wait_for_job_complete():"},{"line_number":515,"context_line":"            complete, current_status \u003d self._get_job_status(job_id)"},{"line_number":516,"context_line":"            if complete:"}],"source_content_type":"text/x-python","patch_set":7,"id":"437cb891_f5c6b388","line":513,"range":{"start_line":509,"start_character":8,"end_line":513,"end_character":27},"updated":"2026-02-05 19:35:29.000000000","message":"effectively with default values this is 600s. \n\nHowever, the design is a bit flawed for multiple reasons:\n\n1) If, for any reason the share manager is restarted or gets killed during this wait, the share\u0027s status is stuck at \"reverting_to_snapshot\". The only way for an unprivileged end user of the cloud to recover from this is to consult their cloud administrator to change the share\u0027s status. However, just doing that wouldn\u0027t be safe. We\u0027ve no clue if the revert has succeeded, or is still in progress. The user can\u0027t retry their action because that would fail if the previous job is in progress. \n\n2) Without tweaking the default configuration values, this wait extends to 600s. Is that sufficient for shares of all sizes? As we discussed at the collab review session, i\u0027d like to know if you\u0027ve tested large shares that are terabyte or petabyte sized (if the back end allows this)\n\n3) Thread starvation - a backend thread would wait on this revert to occur, and, as a consequence parallel operations could suffer. With eventlet\u0027s greenthreading, we usually don\u0027t care about this.. but, we\u0027re trying to move to python native threading during this release - in this case, we\u0027d pre-configure this process to spawn a handful of threads to allow for parallel processing, and the effect of these long running operations would be more impactful.\n\n4) The alternative approach that i\u0027m suggesting is a good long term fix. I think, after the driver starts the task, it should immediately return to the share manager with a \"status\" update - perhaps \"reverting_to_snapshot\". The share manager should look for this, and update the share\u0027s status accordingly. you\u0027d then extend the periodic task here to ask for the driver\u0027s update to the share https://github.com/openstack/manila/blob/33b38fa8763b37c58a99d8dc4ee9a4a81ac723e3/manila/share/manager.py#L5786-L5795. This means that the driver should implement update_share_status() and implement a job status check so you can tell the manager when the revert operation completes, or if it errors out. \n\nThis solution will avoid all the three problems above. Can you think of any downsides?","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                  {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation,"},{"line_number":507,"context_line":"                   \u0027params\u0027: str(params)})"},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"        @utils.retry("},{"line_number":510,"context_line":"            retry_param\u003dexception.ShareBackendException,"},{"line_number":511,"context_line":"            interval\u003dself.job_interval,"},{"line_number":512,"context_line":"            retries\u003dself.job_retries,"},{"line_number":513,"context_line":"            backoff_rate\u003d1)"},{"line_number":514,"context_line":"        def wait_for_job_complete():"},{"line_number":515,"context_line":"            complete, current_status \u003d self._get_job_status(job_id)"},{"line_number":516,"context_line":"            if complete:"}],"source_content_type":"text/x-python","patch_set":7,"id":"8404e2d5_28ff8259","line":513,"range":{"start_line":509,"start_character":8,"end_line":513,"end_character":27},"in_reply_to":"437cb891_f5c6b388","updated":"2026-03-06 07:53:41.000000000","message":"As suggested have added new status for reverting and checking the status on periodic interval in manager.py file.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":true,"context_lines":[{"line_number":517,"context_line":"                LOG.info(\"Job %(job_id)s completed with status: %(status)s.\","},{"line_number":518,"context_line":"                         {\u0027job_id\u0027: job_id, \u0027status\u0027: current_status})"},{"line_number":519,"context_line":"                return current_status"},{"line_number":520,"context_line":"            msg \u003d (_(\"Job %(job_id)s for operation %(operation)s \""},{"line_number":521,"context_line":"                     \"is not complete yet. Retrying...\") %"},{"line_number":522,"context_line":"                   {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation})"},{"line_number":523,"context_line":"            LOG.warning(msg)"},{"line_number":524,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":525,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"e7b0fe13_b19f6f50","line":522,"range":{"start_line":520,"start_character":11,"end_line":522,"end_character":62},"updated":"2026-02-24 06:00:43.000000000","message":"We need to add the no of retry that will help in debugging the issue.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":517,"context_line":"                LOG.info(\"Job %(job_id)s completed with status: %(status)s.\","},{"line_number":518,"context_line":"                         {\u0027job_id\u0027: job_id, \u0027status\u0027: current_status})"},{"line_number":519,"context_line":"                return current_status"},{"line_number":520,"context_line":"            msg \u003d (_(\"Job %(job_id)s for operation %(operation)s \""},{"line_number":521,"context_line":"                     \"is not complete yet. Retrying...\") %"},{"line_number":522,"context_line":"                   {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation})"},{"line_number":523,"context_line":"            LOG.warning(msg)"},{"line_number":524,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":525,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"866f1375_481dede8","line":522,"range":{"start_line":520,"start_character":11,"end_line":522,"end_character":62},"in_reply_to":"e7b0fe13_b19f6f50","updated":"2026-03-06 07:53:41.000000000","message":"As I know we are not adding any retry count, it will getting handle automatic.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":true,"context_lines":[{"line_number":521,"context_line":"                     \"is not complete yet. Retrying...\") %"},{"line_number":522,"context_line":"                   {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation})"},{"line_number":523,"context_line":"            LOG.warning(msg)"},{"line_number":524,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":525,"context_line":"        try:"},{"line_number":526,"context_line":"            status \u003d wait_for_job_complete()"},{"line_number":527,"context_line":"            if status.lower() \u003d\u003d \"failed\":"}],"source_content_type":"text/x-python","patch_set":7,"id":"f00af034_0463de95","line":524,"range":{"start_line":524,"start_character":28,"end_line":524,"end_character":49},"updated":"2026-02-24 06:00:43.000000000","message":"As mentioned previously, create the custom exception for driver and use it.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":521,"context_line":"                     \"is not complete yet. Retrying...\") %"},{"line_number":522,"context_line":"                   {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation})"},{"line_number":523,"context_line":"            LOG.warning(msg)"},{"line_number":524,"context_line":"            raise exception.ShareBackendException(message\u003dmsg)"},{"line_number":525,"context_line":"        try:"},{"line_number":526,"context_line":"            status \u003d wait_for_job_complete()"},{"line_number":527,"context_line":"            if status.lower() \u003d\u003d \"failed\":"}],"source_content_type":"text/x-python","patch_set":7,"id":"6871d98b_4bbf97bd","line":524,"range":{"start_line":524,"start_character":28,"end_line":524,"end_character":49},"in_reply_to":"f00af034_0463de95","updated":"2026-03-06 07:53:41.000000000","message":"Yes we are using Generic exception, changing to Class level exception not possible because needs to changes for all exception, keeping this as it is, will discuss with team and check how can we add that.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f7be2787b6e357ae7c14c095308fd1c698ab61b1","unresolved":true,"context_lines":[{"line_number":549,"context_line":"        )"},{"line_number":550,"context_line":"        if response.status_code \u003d\u003d 200:"},{"line_number":551,"context_line":"            status \u003d response.json()[\u0027jobs\u0027][0][\u0027state\u0027]"},{"line_number":552,"context_line":"            if status.lower() in (\u0027failed\u0027, \u0027succeeded\u0027):"},{"line_number":553,"context_line":"                return True, status"},{"line_number":554,"context_line":"            return False, status"},{"line_number":555,"context_line":"        return True, \u0027failed\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"f45c356d_045e9500","line":552,"range":{"start_line":552,"start_character":12,"end_line":552,"end_character":57},"updated":"2026-02-24 06:00:43.000000000","message":"We have only 2 status for job, you don\u0027t have the status of in-progress or something like that. So, what is the status of job when it not completed.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        )"},{"line_number":550,"context_line":"        if response.status_code \u003d\u003d 200:"},{"line_number":551,"context_line":"            status \u003d response.json()[\u0027jobs\u0027][0][\u0027state\u0027]"},{"line_number":552,"context_line":"            if status.lower() in (\u0027failed\u0027, \u0027succeeded\u0027):"},{"line_number":553,"context_line":"                return True, status"},{"line_number":554,"context_line":"            return False, status"},{"line_number":555,"context_line":"        return True, \u0027failed\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"ec98ea1e_852d9568","line":552,"range":{"start_line":552,"start_character":12,"end_line":552,"end_character":57},"in_reply_to":"f45c356d_045e9500","updated":"2026-03-06 07:53:41.000000000","message":"There are many status but we are checking only failed,succeeded to avoid other statuses check, we assume no one changing the status manual from OneFS UI.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"64257a5434fee49424fa9218b20c3f571f468ece","unresolved":true,"context_lines":[{"line_number":559,"context_line":"            \u0027priority\u0027: 10,"},{"line_number":560,"context_line":"            \u0027state\u0027: \u0027cancel\u0027"},{"line_number":561,"context_line":"        }"},{"line_number":562,"context_line":"        url \u003d (\u0027{0}/platform/12/job/jobs/{1}\u0027"},{"line_number":563,"context_line":"               .format(self.host_url, job_id))"},{"line_number":564,"context_line":"        r \u003d self.send_put_request(url, data\u003ddata)"},{"line_number":565,"context_line":"        return r.status_code \u003d\u003d 204"}],"source_content_type":"text/x-python","patch_set":7,"id":"17a9436a_85a44a22","line":562,"updated":"2026-02-19 16:07:52.000000000","message":"What is the significance of /platform/12/ here? Is 12 a fixed type? If so, should it come from a constant?","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"1ecf5fe6159da46700caa065905223d619d34d04","unresolved":false,"context_lines":[{"line_number":559,"context_line":"            \u0027priority\u0027: 10,"},{"line_number":560,"context_line":"            \u0027state\u0027: \u0027cancel\u0027"},{"line_number":561,"context_line":"        }"},{"line_number":562,"context_line":"        url \u003d (\u0027{0}/platform/12/job/jobs/{1}\u0027"},{"line_number":563,"context_line":"               .format(self.host_url, job_id))"},{"line_number":564,"context_line":"        r \u003d self.send_put_request(url, data\u003ddata)"},{"line_number":565,"context_line":"        return r.status_code \u003d\u003d 204"}],"source_content_type":"text/x-python","patch_set":7,"id":"862af967_40149232","line":562,"in_reply_to":"17a9436a_85a44a22","updated":"2026-03-06 07:53:41.000000000","message":"Added constant for that.","commit_id":"e2f9def744979a107664215d51623ebe3634a03e"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"00523f8b4578817bf669d6965d3e5a4e1ae253f6","unresolved":true,"context_lines":[{"line_number":655,"context_line":"                LOG.error(message)"},{"line_number":656,"context_line":"                raise exception.ShareBackendException(message\u003dmessage)"},{"line_number":657,"context_line":"        except exception.ShareBackendException:"},{"line_number":658,"context_line":"            self._cancel_job(job_id)"},{"line_number":659,"context_line":"            message \u003d (_(\"Job %(job_id)s failed for operation %(operation)s \""},{"line_number":660,"context_line":"                         \"with params %(params)s.\") %"},{"line_number":661,"context_line":"                       {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation,"}],"source_content_type":"text/x-python","patch_set":13,"id":"9d77ce9c_d2a9fd4c","line":658,"updated":"2026-04-17 07:42:06.000000000","message":"Won\u0027t this also get called for failed status? Ideally failed should be a terminal state of job and you should not require to cancel a failed job.","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"78bfec37a878dbe0192b6fbd4a40fea23ece8e9d","unresolved":false,"context_lines":[{"line_number":655,"context_line":"                LOG.error(message)"},{"line_number":656,"context_line":"                raise exception.ShareBackendException(message\u003dmessage)"},{"line_number":657,"context_line":"        except exception.ShareBackendException:"},{"line_number":658,"context_line":"            self._cancel_job(job_id)"},{"line_number":659,"context_line":"            message \u003d (_(\"Job %(job_id)s failed for operation %(operation)s \""},{"line_number":660,"context_line":"                         \"with params %(params)s.\") %"},{"line_number":661,"context_line":"                       {\u0027job_id\u0027: job_id, \u0027operation\u0027: operation,"}],"source_content_type":"text/x-python","patch_set":13,"id":"8e0242e3_1bb6dce9","line":658,"in_reply_to":"9d77ce9c_d2a9fd4c","updated":"2026-05-11 09:23:54.000000000","message":"No, for a failed status we do not need to call cancel_job.\nThe job will automatically complete with a failed status.\ncancel_job is required only when we are unable to determine a success or failure status within the configured timeout window. In practice, this situation is rare, as we receive a definitive status within the configured time in about 99% of cases.","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"}],"manila/share/manager.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"00523f8b4578817bf669d6965d3e5a4e1ae253f6","unresolved":true,"context_lines":[{"line_number":3681,"context_line":"            if isinstance(result, dict):"},{"line_number":3682,"context_line":"                status \u003d result.get(\u0027status\u0027, status)"},{"line_number":3683,"context_line":"            else:"},{"line_number":3684,"context_line":"                updated_share_size \u003d result"},{"line_number":3685,"context_line":"        except Exception as excep:"},{"line_number":3686,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3687,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"f6673f23_25d2b04c","line":3684,"updated":"2026-04-17 07:42:06.000000000","message":"Does the provisioned space of a share change on revert? Ideally it should be the used and available space that changes when inplace revert is called.","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"78bfec37a878dbe0192b6fbd4a40fea23ece8e9d","unresolved":false,"context_lines":[{"line_number":3681,"context_line":"            if isinstance(result, dict):"},{"line_number":3682,"context_line":"                status \u003d result.get(\u0027status\u0027, status)"},{"line_number":3683,"context_line":"            else:"},{"line_number":3684,"context_line":"                updated_share_size \u003d result"},{"line_number":3685,"context_line":"        except Exception as excep:"},{"line_number":3686,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":3687,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"ed1ba7b2_b1e787d5","line":3684,"in_reply_to":"f6673f23_25d2b04c","updated":"2026-05-11 09:23:54.000000000","message":"We do not require that. I have already tested this scenario, and it is not needed. The system automatically handles the size based on the snapshot size, so there is no need for us to explicitly return or set the size.","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"baecbe8985965b397361631902c9a894ffd98d65","unresolved":true,"context_lines":[{"line_number":3656,"context_line":"        # Make primitive to pass the information to the driver"},{"line_number":3657,"context_line":"        snapshot_instance_dict \u003d self._get_snapshot_instance_dict("},{"line_number":3658,"context_line":"            context, snapshot_instance, snapshot\u003dsnapshot)"},{"line_number":3659,"context_line":"        updated_share_size \u003d None"},{"line_number":3660,"context_line":"        status \u003d None"},{"line_number":3661,"context_line":"        try:"},{"line_number":3662,"context_line":"            result \u003d self.driver.revert_to_snapshot("}],"source_content_type":"text/x-python","patch_set":15,"id":"b98bada1_f0157d41","line":3659,"updated":"2026-08-14 20:39:22.000000000","message":"ideally the core part would be part of a different change for commit history purposes and better visualization of the changes.","commit_id":"f3c81a4a11fda2d8136e0b3ad1eb59676c10f840"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"9f2ac5d38ebd1c0d28da18cb89be0fb9d436bf4b","unresolved":false,"context_lines":[{"line_number":3656,"context_line":"        # Make primitive to pass the information to the driver"},{"line_number":3657,"context_line":"        snapshot_instance_dict \u003d self._get_snapshot_instance_dict("},{"line_number":3658,"context_line":"            context, snapshot_instance, snapshot\u003dsnapshot)"},{"line_number":3659,"context_line":"        updated_share_size \u003d None"},{"line_number":3660,"context_line":"        status \u003d None"},{"line_number":3661,"context_line":"        try:"},{"line_number":3662,"context_line":"            result \u003d self.driver.revert_to_snapshot("}],"source_content_type":"text/x-python","patch_set":15,"id":"edf62136_79fece9b","line":3659,"in_reply_to":"b98bada1_f0157d41","updated":"2026-08-17 11:05:20.000000000","message":"Done","commit_id":"f3c81a4a11fda2d8136e0b3ad1eb59676c10f840"}],"releasenotes/notes/bp-dell-powerscale-revert-to-snapshot-aaf115548e3b43cf.yaml":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"00523f8b4578817bf669d6965d3e5a4e1ae253f6","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for revert to snapshot on Dell PowerScale."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"c6b5d28a_6b9fb521","line":4,"updated":"2026-04-17 07:42:06.000000000","message":"release notes should be detailed. May be you can consider adding more details of the feature including the job retry and timeouts here.","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"},{"author":{"_account_id":36725,"name":"Nilesh Thathagar","display_name":"Nilesh Thathagar","email":"nilesh.thathagar@dell.com","username":"NileshT"},"change_message_id":"78bfec37a878dbe0192b6fbd4a40fea23ece8e9d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for revert to snapshot on Dell PowerScale."}],"source_content_type":"text/x-yaml","patch_set":13,"id":"4e745d14_2aa795d4","line":4,"in_reply_to":"c6b5d28a_6b9fb521","updated":"2026-05-11 09:23:54.000000000","message":"Done","commit_id":"82a4eb71793b5e210044a73b860013fad65ca69d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"47ba9da8c5c5ba3b26f5c4a43d2c4713f34368c2","unresolved":true,"context_lines":[{"line_number":13,"context_line":"    Introduced STATUS_REVERTING_TO_SNAPSHOT to track shares"},{"line_number":14,"context_line":"    while a revert-to-snapshot operation is in progress."},{"line_number":15,"context_line":"    The share manager continues monitoring the operation"},{"line_number":16,"context_line":"    in manager.py and updates the share status once the"},{"line_number":17,"context_line":"    backend revert operation completes."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"b657f8ed_04eb25a4","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":17},"updated":"2026-08-23 19:55:00.000000000","message":"remove","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"},{"author":{"_account_id":38286,"name":"Siddharth Kumar","display_name":"Siddharth","email":"siddharth.kumar1@dell.com","username":"siddhvrth"},"change_message_id":"f50bd909bd55c9cee378047f163bb956a9b93c08","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    Introduced STATUS_REVERTING_TO_SNAPSHOT to track shares"},{"line_number":14,"context_line":"    while a revert-to-snapshot operation is in progress."},{"line_number":15,"context_line":"    The share manager continues monitoring the operation"},{"line_number":16,"context_line":"    in manager.py and updates the share status once the"},{"line_number":17,"context_line":"    backend revert operation completes."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"c5bb4c29_e6994b04","line":16,"range":{"start_line":16,"start_character":4,"end_line":16,"end_character":17},"in_reply_to":"b657f8ed_04eb25a4","updated":"2026-08-25 04:54:22.000000000","message":"Acknowledged","commit_id":"df7a5d64b3fce3e61321e42d82b7a753f1cbfe48"}]}
