)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":13,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":14,"context_line":"administrators can create, inspect, update, promote, resync, and delete"},{"line_number":15,"context_line":"share server replicas through standard APIs and client commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I61e643a4643de839df31d9781bccc9ca54520ae6"},{"line_number":18,"context_line":"Signed-off-by: agireesh \u003cgawasthi2010@gmail.com\u003e"},{"line_number":19,"context_line":"Assisted-By: GPT-5.4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"6ac9c6df_cec88eee","line":16,"updated":"2026-06-17 06:18:33.000000000","message":"Add:\n\nPartially-implements: bp share-server-replica\n\n\nSo that this gets updated on the blueprint\u0027s whiteboard","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":13,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":14,"context_line":"administrators can create, inspect, update, promote, resync, and delete"},{"line_number":15,"context_line":"share server replicas through standard APIs and client commands."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I61e643a4643de839df31d9781bccc9ca54520ae6"},{"line_number":18,"context_line":"Signed-off-by: agireesh \u003cgawasthi2010@gmail.com\u003e"},{"line_number":19,"context_line":"Assisted-By: GPT-5.4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":13,"id":"180f55fb_d532f772","line":16,"in_reply_to":"6ac9c6df_cec88eee","updated":"2026-06-17 16:51:01.000000000","message":"Done.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7529a89c6ef4dc2027ebdeb1e98fcb6d6fa5db3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"61ffc88b_89af7644","updated":"2026-05-19 12:09:32.000000000","message":"Share-level replication has a Periodic task equivalent that polls replica state and drives resyncs. Share server replicas need an analogous periodic task to detect when a replica has drifted to out_of_sync and update the DB accordingly. Without it, replica_state in the DB can become stale and operators won\u0027t know a replica needs resyncing until they manually call resync. This is missing from the spec.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c38224ecf83b2d552e54f76e07ac56c281312c1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3e1bd1da_510e12d0","updated":"2026-05-21 14:47:03.000000000","message":"Adding Goutham to the review.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"1243475bfecdc735001566a5668b23fa2bc3b0b0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"aeeab1c7_0a6b5d28","updated":"2026-05-22 15:19:20.000000000","message":"Hi, I start with two questions about design constraints:\n\nQ1: Scope - SM-AS only or generic sync/async?\n\nThe PTG document states \"SnapMirror Active Sync for NAS support\" (SM-AS specific), but the spec allows replication_type\u003d\u0027sync\u0027 or \u0027async\u0027. SM-AS and SVM-DR are different ONTAP technologies that cannot coexist in one relationship:\n\nShould this spec focus exclusively on SM-AS (automatic failover, mediator-based) or support both SM-AS and SVM-DR (manual failover, async)? Or am I overlooking an \u0027async\u0027 version of SM-AS?\n\nNetwork validation, mediator requirements, failover detection, and scheduler filtering requirements differ significantly between these modes.\n\n\nQ2: Network validation for automatic failover\n\nThe spec allows --share-network parameter, implying source and destination can use different networks. However, SM-AS requires a shared LIF (same L2 network, same IP address) for automatic failover to work. Clients continue using the same IP during failover.\n\nHow should Manila validate that source and destination share servers are on the same Layer 2 network for automatic failover scenarios?\n\nIf networks differ, shared LIF cannot be configured → automatic failover impossible → zero RTO broken. This is a hard technical constraint of SM-AS.\n\nHappy to discuss further and thanks for the comprehensive spec work!\n\nI have a couple more questions  queued - let me know if you would like to receive them in a batch or rather in smaller sets ;) I picked the two most fundamental ones as a start.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d231f2d8_d471f878","updated":"2026-05-29 16:02:02.000000000","message":"Thanks Kumar, @kinpaa@gmail.com and @maurice.escher@sap.com for your reveiw comments. I have incorporated few and responded to your queries. Let me know if you have any futher comments.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"626c1f0b_672d5dbd","in_reply_to":"566357f4_75a6308d","updated":"2026-06-09 16:26:13.000000000","message":"I am closing this. Feel free to open a comment if you still have any further query on this.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"566357f4_75a6308d","in_reply_to":"aeeab1c7_0a6b5d28","updated":"2026-05-29 16:02:02.000000000","message":"Q1: Scope - SM-AS only or generic sync/async?\nA1: Share server replica creation should be vendor-agnostic. The API and CLI are designed to work with any vendor and any type of share server replication, not limited to NetApp SMAS-NAS replication. It should also support SVM-DR if the driver implements it.\n\nInitially, we planned to make the policy a mandatory parameter. However, after internal discussion, we decided to allow users to provide the policy through properties and make replication_type the mandatory parameter instead, as other vendors support this approach.\n\nQ2: Network validation for automatic failover\nA2: Yes, we are passing network information to the driver. In the case of SMAS-NAS, we will not create any network configuration for the destination SVM since all data LIFs from the source SVM will be replicated to the destination SVM. Since we cannot know how other vendors will implement this, we pass network information to the driver as well.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d1fbac6a_0ceb3c64","updated":"2026-06-01 15:21:03.000000000","message":"Interaction with some other features is not covered: e.g. snapshots, share server migration, protocols, un-/manage\n\nNaively I would assume those are just simply supported and not affected, then.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"2da864123cdfbead4fc8c8b3de6d947321e1da27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"dfb06a4f_29c39e41","in_reply_to":"d1fbac6a_0ceb3c64","updated":"2026-06-17 17:05:57.000000000","message":"Yes, those will be part of driver, we will be not supporting all of these operation like share migration and un/manage share or share server which is part of share share replication.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d19d3404_e7b5cc6c","updated":"2026-06-02 16:32:06.000000000","message":"Thanks @maurice.escher@sap.com and @kinpaa@gmail.com for your review commend. I have incorporated some and responded to your query. Please take a look.","commit_id":"6673f70cb651e60cf2f9b5c8f60b9fd330952a03"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8abef97c_8f88dacb","updated":"2026-06-02 20:50:28.000000000","message":"Hey, Gireesh! Thanks for working on this spec. Please take a look at the comments inline.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52c94c30a5280e98aa41e5a377b75fcbb264983c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"072d0e80_ebf2bdb7","updated":"2026-06-04 04:21:47.000000000","message":"Please see comments on the last patchset. This is quite a large spec; and i need more time to review.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f2afce24_8e98e338","updated":"2026-06-03 15:59:05.000000000","message":"Thanks @ces.eduardo98@gmail.com for your valuable review comments. I have fix most of them and few I have kept open. Please take look and if you are not agree on some of my response, feel free to open the comment.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1a518055_397185bb","updated":"2026-06-05 15:45:45.000000000","message":"Thanks @gouthampravi@gmail.com for your valuable review comments, I have incorporated most of them please take a look.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"93a931d9_53727f60","updated":"2026-06-09 16:26:13.000000000","message":"Thanks all for your review comments, I have closed few comments. Please review the same and re-open the comment if you are not agree on my response.","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8c96cea6_fe58a765","updated":"2026-06-09 19:30:03.000000000","message":"Great progress. Thanks for keeping up with the comments. Please take a look at the comments inline","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"bd61e48c_852de1fb","updated":"2026-06-11 10:04:36.000000000","message":"Added few comments on driver api as per our discussion.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"75bf3933_8eadbe56","updated":"2026-06-12 14:10:25.000000000","message":"Added some comments. Please check once.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"945262d8f38debb467ccee720dd75005b9fc527b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4666f19c_9e2694e4","updated":"2026-06-11 05:42:05.000000000","message":"Thanks Carlos and Kumar for your review comments, I have incorporated those, please take a look.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"b3f44a712cf18e83b63c91bea8a7240a50e59db3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a6b44eac_1714f7f8","updated":"2026-06-15 05:48:19.000000000","message":"Couple of comments reopned. Please check.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"7d2b88797a7f067075c7ec140c7f2507d35ef2b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"438d8e17_de91ae61","updated":"2026-06-15 04:40:32.000000000","message":"Minor comments added. Please review/address.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"896e8432_d733f494","updated":"2026-06-13 11:53:40.000000000","message":"Thanks Anoop and Kumar for your valuable comments, I incorporated most of the comments, please take a look.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"206452a5_bb68d1e5","updated":"2026-06-16 16:46:22.000000000","message":"Thanks for your review comments, please take look and let me know if you are not agree on my response, feel free to open the comment.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"57c9a492032112fa02f67017aa1f5fda827ced8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"8d79e66f_fd3de3eb","updated":"2026-06-16 17:11:44.000000000","message":"Except one open comment, rest all looks good.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"feee1a68_832a9536","updated":"2026-06-17 16:51:01.000000000","message":"Thanks @gouthampravi@gmail.com for your review comments, I have incorporated few comments and responded to your queries. If you are not agree on response, feel free to re-open the comment.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"0d85093149c64cdba1037b3d96b1cc890ae0562c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6d06330c_2252d69e","updated":"2026-06-17 05:29:13.000000000","message":"The spec looks good. Most of the questions and open areas are covered now. Thanks Gireesh for the updates.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"a05a2173_76706ded","updated":"2026-06-18 13:43:41.000000000","message":"Thanks @gouthampravi@gmail.com and @ces.eduardo98@gmail.com for your review comments, I have made the change as suggested, let us know if you have any further comments","commit_id":"2ceaeaddc1f483744bc04f4813f9f3c8a0937203"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"af8a9137_ec0d3628","updated":"2026-06-17 17:45:43.000000000","message":"Thanks for the changes and the responses.. please see comments inline","commit_id":"2ceaeaddc1f483744bc04f4813f9f3c8a0937203"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"00fa9b7f_46943cf2","updated":"2026-06-19 14:22:21.000000000","message":"Thanks @gouthampravi@gmail.com for your valuable review comments, I have incorporated those, please take a look.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"08d236af94673495d578a9008a98db4f58508635","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"8a16204b_4294c008","updated":"2026-06-18 21:39:24.000000000","message":"Thanks for the changes, please see more comments inline","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"012b3f88_6dd43ba8","updated":"2026-06-19 14:39:04.000000000","message":"I\u0027ve huge concerns about availability zone usage in this spec. \n\nI don\u0027t think this part is well thought through. I don\u0027t feel comfortable committing to this at this stage.","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"cb73f0c0_7307f974","updated":"2026-06-19 16:25:10.000000000","message":"Thanks @gouthampravi@gmail.com for your review comments, I have incorporated those, please take a look.","commit_id":"343b2aebd462658a484af8344be3564cc711a714"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4fc3519b40c3cecbffb96d71c07d49db718540d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"4aed2fb7_90dd7ab7","updated":"2026-06-19 19:21:59.000000000","message":"More comments inline","commit_id":"fe07304529d144ebd26dc790c34fdd5896b93fe7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ec74ac917e1059ff1bb6ede49bb38c19bd9f0246","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"e8d11903_3d9fbb9e","updated":"2026-06-20 14:20:20.000000000","message":"Thanks @gouthampravi@gmail.com and @ces.eduardo98@gmail.com for your review comments and suggestion. I have required changes and responded to you comments, could you please take a look.","commit_id":"471495cbab4bb2106b6cfb37b2cfdc0c71aecd14"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"63d7e216_4ddecac6","updated":"2026-06-25 08:01:43.000000000","message":"Hopefully my final pass here","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":23,"id":"c0a4efaa_5642c6d3","updated":"2026-06-25 11:51:55.000000000","message":"Thanks @gouthampravi@gmail.com for your review comments, there are few comments which are opens, could you please response to those.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"43a0521f0cab4efedd39aaac34a7384aece26be3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"458c56c1_5ee2fbb2","updated":"2026-06-25 15:56:16.000000000","message":"LGTM","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"7c580c55d2080efd15020bd7efbb34816508aaba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"218c835f_fdf401a7","updated":"2026-06-25 15:59:49.000000000","message":"LGTM.","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"27d4e64312bd45b26b4375923b0e039cf8ed9567","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"efa21868_46613d1b","updated":"2026-06-25 18:30:51.000000000","message":"Thanks @kinpaa@gmail.com for your review comments, I have incorporated those, please take a look.","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"4b4c6ec977dd50e8d12aca5b1e656f3183e85a35","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"3ba3935d_8a71641e","updated":"2026-06-25 15:26:24.000000000","message":"lgtm, let\u0027s get the implementation going :)","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4a66edd2397f4b55d4ebf70b383ea2c3aae49196","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"d2a8b88a_bebf8737","updated":"2026-06-25 16:06:17.000000000","message":"some comments from Goutham needs to address. as well metadata APIs are missing e.g. delete/get etc.","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"30e7eeb3_5aa52bb8","updated":"2026-06-25 22:55:00.000000000","message":"Thanks, LGTM, some comments inline - we can discuss these during implementation and decide the best course of action","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fb3ff4f5dc48379ba19eaed66eacbf2f19042521","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":26,"id":"250fcfdb_52cacfe8","in_reply_to":"30e7eeb3_5aa52bb8","updated":"2026-06-26 04:09:33.000000000","message":"Thanks @gouthampravi@gmail.com, for approving the specs. Yes we can discuss there during the implementation.","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"}],"specs/hibiscus/share-server-replica.rst":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"fd1fc20a2dc60acadc8ad467b96d6b1b2ef34a2b","unresolved":true,"context_lines":[{"line_number":70,"context_line":"* List replicas, optionally filtered by source share server."},{"line_number":71,"context_line":"* Show a single replica."},{"line_number":72,"context_line":"* Update replica metadata, replica state, and status."},{"line_number":73,"context_line":"* Delete a replica, with force support for active replicas."},{"line_number":74,"context_line":"* Promote a replica to active."},{"line_number":75,"context_line":"* Resync a replica with its active source."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1f768930_05ab776a","line":73,"updated":"2026-05-19 11:03:07.000000000","message":"deletion of active replica ? Will it mean some other in-sync replica will be made active first and then original active i.e. current in-sync will be deleted ? Otherwise deletion of active replica i.e. source will break the chain relations ?","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"736e1aa25118b92910315d6f4afce82a25eb86f3","unresolved":true,"context_lines":[{"line_number":70,"context_line":"* List replicas, optionally filtered by source share server."},{"line_number":71,"context_line":"* Show a single replica."},{"line_number":72,"context_line":"* Update replica metadata, replica state, and status."},{"line_number":73,"context_line":"* Delete a replica, with force support for active replicas."},{"line_number":74,"context_line":"* Promote a replica to active."},{"line_number":75,"context_line":"* Resync a replica with its active source."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"4a879a84_879db351","line":73,"in_reply_to":"1f768930_05ab776a","updated":"2026-05-19 11:52:28.000000000","message":"Agree. This must be a typo, only in-active replica can be deleted.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":70,"context_line":"* List replicas, optionally filtered by source share server."},{"line_number":71,"context_line":"* Show a single replica."},{"line_number":72,"context_line":"* Update replica metadata, replica state, and status."},{"line_number":73,"context_line":"* Delete a replica, with force support for active replicas."},{"line_number":74,"context_line":"* Promote a replica to active."},{"line_number":75,"context_line":"* Resync a replica with its active source."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"d0c7ac35_cee042d5","line":73,"in_reply_to":"4a879a84_879db351","updated":"2026-05-29 16:02:02.000000000","message":"I corrected is as below \n\nDelete a replica, with force support to delete the replica and purge it from\nManila, even if the backend hasn\u0027t been cleaned up.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"fd1fc20a2dc60acadc8ad467b96d6b1b2ef34a2b","unresolved":true,"context_lines":[{"line_number":108,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":109,"context_line":"    network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Add Share Server Replica Details to Database"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":114,"context_line":"    replica state active and status available."}],"source_content_type":"text/x-rst","patch_set":3,"id":"e196a84f_6a7f9f41","line":111,"updated":"2026-05-19 11:03:07.000000000","message":"The share server should follow same DB structure as share with share instances. The share server replica can be upgraded from in-sync to active and hence it will no longer be replica.\n\nwith your approach going ahead share server creation will create both share server and active share server replica ?","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":108,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":109,"context_line":"    network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"Add Share Server Replica Details to Database"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":114,"context_line":"    replica state active and status available."}],"source_content_type":"text/x-rst","patch_set":3,"id":"8fb165f8_e4bc1d0e","line":111,"in_reply_to":"e196a84f_6a7f9f41","updated":"2026-05-29 16:02:02.000000000","message":"We need to add the destination share server details to the \"share_servers\" table. Additionally, we plan to add a new column called \"active_backend_share_server_id\" to the share_servers table.\n\nDuring promotion, we will flip the records in the share_server_replicas table and update the active_backend_share_server_id accordingly. All control paths will be calculated using the active_backend_share_server_id value. I have provided a detailed explanation with a flow diagram below.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"8442c82fa2e981d3e5343ce1846eec3abe35cb6e","unresolved":true,"context_lines":[{"line_number":318,"context_line":"* Replica must not be active."},{"line_number":319,"context_line":"* Manager calls driver-specific resync."},{"line_number":320,"context_line":"* Manager updates DB after driver returns."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"On success:"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"* The replica status should be set to \u0027available\u0027 and the replica_state"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3d0f0739_ba8ba619","line":321,"updated":"2026-05-19 12:04:41.000000000","message":"Please update the periodic state update cron will execute this for replica status update and the interval can be managed by a config with default interval set at 300 seconds.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":318,"context_line":"* Replica must not be active."},{"line_number":319,"context_line":"* Manager calls driver-specific resync."},{"line_number":320,"context_line":"* Manager updates DB after driver returns."},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"On success:"},{"line_number":323,"context_line":""},{"line_number":324,"context_line":"* The replica status should be set to \u0027available\u0027 and the replica_state"}],"source_content_type":"text/x-rst","patch_set":3,"id":"08baee14_b8989bb4","line":321,"in_reply_to":"3d0f0739_ba8ba619","updated":"2026-05-29 16:02:02.000000000","message":"Added below content \n\nManager will have a method to poll the replication status on configurable time interval","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"35084f34f159ff6096f8a3612d94fe97972f8e76","unresolved":true,"context_lines":[{"line_number":450,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":451,"context_line":"four steps:"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":454,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":455,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":456,"context_line":"   original share server record, while the system uses this pointer to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bd929d6c_ed8d96b3","line":453,"updated":"2026-05-19 09:12:02.000000000","message":"Does \u0027share show\u0027 or \u0027share list\u0027 command can reflect with the new/active share server id updated with this approach?","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":450,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":451,"context_line":"four steps:"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":454,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":455,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":456,"context_line":"   original share server record, while the system uses this pointer to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"faae035d_03c14008","line":453,"in_reply_to":"bd929d6c_ed8d96b3","updated":"2026-05-29 16:02:02.000000000","message":"Yes, It should. We need to add the logic for list and show also.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"8442c82fa2e981d3e5343ce1846eec3abe35cb6e","unresolved":true,"context_lines":[{"line_number":562,"context_line":"             ▼"},{"line_number":563,"context_line":"         Execute driver call, return result"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"Quota and API guardrails"},{"line_number":566,"context_line":"------------------------"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"* Need to add share server replica quota enforcement for create operations."}],"source_content_type":"text/x-rst","patch_set":3,"id":"085b8cfd_4360dd17","line":565,"updated":"2026-05-19 12:04:41.000000000","message":"Add another lifecycle hook for automated site flip/failover detection to update the sites as discussed with the config interval option as discussed.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":562,"context_line":"             ▼"},{"line_number":563,"context_line":"         Execute driver call, return result"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"Quota and API guardrails"},{"line_number":566,"context_line":"------------------------"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"* Need to add share server replica quota enforcement for create operations."}],"source_content_type":"text/x-rst","patch_set":3,"id":"8daa7e13_29e79f3a","line":565,"in_reply_to":"085b8cfd_4360dd17","updated":"2026-06-02 16:32:06.000000000","message":"Added the unplanned failover.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"b57a5f670bb66dc2e7dfbe744822e5fa53bbfb54","unresolved":true,"context_lines":[{"line_number":627,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":628,"context_line":"    | share_server_id    | string(36)             | No       | FK to server                      |"},{"line_number":629,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":630,"context_line":"    | replica_state      | string(32)             | No       | active/in_sync/out_of_sync        |"},{"line_number":631,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":632,"context_line":"    | status             | string(32)             | No       | lifecycle state                   |"},{"line_number":633,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a85b7f2a_6d87e48b","line":630,"updated":"2026-05-19 11:50:23.000000000","message":"error state?","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":627,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":628,"context_line":"    | share_server_id    | string(36)             | No       | FK to server                      |"},{"line_number":629,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":630,"context_line":"    | replica_state      | string(32)             | No       | active/in_sync/out_of_sync        |"},{"line_number":631,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":632,"context_line":"    | status             | string(32)             | No       | lifecycle state                   |"},{"line_number":633,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b024e2cc_0e4a1a6a","line":630,"in_reply_to":"a85b7f2a_6d87e48b","updated":"2026-06-02 16:32:06.000000000","message":"Done","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"b57a5f670bb66dc2e7dfbe744822e5fa53bbfb54","unresolved":true,"context_lines":[{"line_number":629,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":630,"context_line":"    | replica_state      | string(32)             | No       | active/in_sync/out_of_sync        |"},{"line_number":631,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":632,"context_line":"    | status             | string(32)             | No       | lifecycle state                   |"},{"line_number":633,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":634,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":635,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5dcb482f_cd9c08b4","line":632,"updated":"2026-05-19 11:50:23.000000000","message":"list all status","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":629,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":630,"context_line":"    | replica_state      | string(32)             | No       | active/in_sync/out_of_sync        |"},{"line_number":631,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":632,"context_line":"    | status             | string(32)             | No       | lifecycle state                   |"},{"line_number":633,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":634,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":635,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a876df8c_3d80c782","line":632,"in_reply_to":"5dcb482f_cd9c08b4","updated":"2026-06-02 16:32:06.000000000","message":"Status will be same for all the object in OpenStack, so thought of not listing those","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":629,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":630,"context_line":"    | replica_state      | string(32)             | No       | active/in_sync/out_of_sync        |"},{"line_number":631,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":632,"context_line":"    | status             | string(32)             | No       | lifecycle state                   |"},{"line_number":633,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":634,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":635,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9ff6ec9d_f6d83a53","line":632,"in_reply_to":"8d61006a_989cf5e6","updated":"2026-06-09 16:26:13.000000000","message":"Added all replica state.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"3208d8705012bbaafa102f140cba6f17fd138882","unresolved":true,"context_lines":[{"line_number":629,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":630,"context_line":"    | replica_state      | string(32)             | No       | active/in_sync/out_of_sync        |"},{"line_number":631,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":632,"context_line":"    | status             | string(32)             | No       | lifecycle state                   |"},{"line_number":633,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":634,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":635,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8d61006a_989cf5e6","line":632,"in_reply_to":"a876df8c_3d80c782","updated":"2026-06-08 16:31:42.000000000","message":"It\u0027s good to add the states for reference so that any driver who wants to support the feature will understand the finite and transitioning states.\nAlternatively, you can even provide a reference link where these can be found.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"7529a89c6ef4dc2027ebdeb1e98fcb6d6fa5db3e","unresolved":true,"context_lines":[{"line_number":643,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"share_server_replica_properties::"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":648,"context_line":"    | Field                   | Type        | Nullable | Notes          |"},{"line_number":649,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5e463749_d0392b04","line":646,"updated":"2026-05-19 12:09:32.000000000","message":"share_server_metadata similar to share_metadata ?","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":643,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"share_server_replica_properties::"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":648,"context_line":"    | Field                   | Type        | Nullable | Notes          |"},{"line_number":649,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ad3e38fd_aef10927","line":646,"in_reply_to":"33bfb937_b09d2e13","updated":"2026-06-02 16:32:06.000000000","message":"Ok changed it to share_server_replica_metadata","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":643,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"share_server_replica_properties::"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":648,"context_line":"    | Field                   | Type        | Nullable | Notes          |"},{"line_number":649,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"eacd5d3e_8d0630e9","line":646,"in_reply_to":"5e463749_d0392b04","updated":"2026-05-29 16:02:02.000000000","message":"yes, this is property data.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":643,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":644,"context_line":""},{"line_number":645,"context_line":"share_server_replica_properties::"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":648,"context_line":"    | Field                   | Type        | Nullable | Notes          |"},{"line_number":649,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"}],"source_content_type":"text/x-rst","patch_set":3,"id":"33bfb937_b09d2e13","line":646,"in_reply_to":"eacd5d3e_8d0630e9","updated":"2026-06-01 12:22:10.000000000","message":"I mean to say, Change the table name to share_server_metadata instead of replica_properties.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"35084f34f159ff6096f8a3612d94fe97972f8e76","unresolved":true,"context_lines":[{"line_number":940,"context_line":"* protected share delete may require an explicit unprotect step first,"},{"line_number":941,"context_line":"* deleting a share server with active replica relationships must be blocked"},{"line_number":942,"context_line":"    until replicas are removed."},{"line_number":943,"context_line":""},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"Security impact"},{"line_number":946,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ac2af00a_4a19d7a1","line":943,"updated":"2026-05-19 09:12:02.000000000","message":"Lets add the Driver Interface APIs once finalized internally.","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":940,"context_line":"* protected share delete may require an explicit unprotect step first,"},{"line_number":941,"context_line":"* deleting a share server with active replica relationships must be blocked"},{"line_number":942,"context_line":"    until replicas are removed."},{"line_number":943,"context_line":""},{"line_number":944,"context_line":""},{"line_number":945,"context_line":"Security impact"},{"line_number":946,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ecad10c3_fcbd1b71","line":943,"in_reply_to":"ac2af00a_4a19d7a1","updated":"2026-06-02 16:32:06.000000000","message":"Added","commit_id":"2ba460b552801172d42cfeae2c1956a586e87f16"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f43e42d2e8a646f084e4bb051e4966ff9cde6cc4","unresolved":true,"context_lines":[{"line_number":82,"context_line":"The following input constraints are enforced:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* share_server, host, and replication_type are required for create."},{"line_number":85,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive;"},{"line_number":86,"context_line":"  stored in normalized lowercase form)."},{"line_number":87,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":88,"context_line":"* host must be in backend@pool format."}],"source_content_type":"text/x-rst","patch_set":4,"id":"4f3fecf3_de36fdb9","line":85,"updated":"2026-05-21 11:23:09.000000000","message":"Can we use different name like \"replication_mode\" to avoid confusion with existing replication_type of share type?","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"The following input constraints are enforced:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* share_server, host, and replication_type are required for create."},{"line_number":85,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive;"},{"line_number":86,"context_line":"  stored in normalized lowercase form)."},{"line_number":87,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":88,"context_line":"* host must be in backend@pool format."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9d843410_47e1d260","line":85,"in_reply_to":"17fdf0d5_87616cb6","updated":"2026-06-02 20:50:28.000000000","message":"+1 on replication_type - it also follows the pattern that already exists for share replication.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"The following input constraints are enforced:"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"* share_server, host, and replication_type are required for create."},{"line_number":85,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive;"},{"line_number":86,"context_line":"  stored in normalized lowercase form)."},{"line_number":87,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":88,"context_line":"* host must be in backend@pool format."}],"source_content_type":"text/x-rst","patch_set":4,"id":"17fdf0d5_87616cb6","line":85,"in_reply_to":"4f3fecf3_de36fdb9","updated":"2026-05-29 16:02:02.000000000","message":"I went thorugh to other vendor doc and cinder code also, most of the vendor are using the replication_type so I thought of keeping the same here. I am levaing this comment open, other can also comments on this and based on it we can change this field name if require.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f43e42d2e8a646f084e4bb051e4966ff9cde6cc4","unresolved":true,"context_lines":[{"line_number":87,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":88,"context_line":"* host must be in backend@pool format."},{"line_number":89,"context_line":"* promote is only allowed for replicas in in_sync state."},{"line_number":90,"context_line":"* resync is only allowed for non-active replicas."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Detailed workflow behavior"},{"line_number":93,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c07741d1_47796d8f","line":90,"updated":"2026-05-21 11:23:09.000000000","message":"promote/resync/delete actions","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":87,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":88,"context_line":"* host must be in backend@pool format."},{"line_number":89,"context_line":"* promote is only allowed for replicas in in_sync state."},{"line_number":90,"context_line":"* resync is only allowed for non-active replicas."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Detailed workflow behavior"},{"line_number":93,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dc0499ef_b82db5bc","line":90,"in_reply_to":"c07741d1_47796d8f","updated":"2026-05-29 16:02:02.000000000","message":"resync is require if replica is out of sync and delete can be done any replication state so in_sync condition is only applicable for promote only.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f43e42d2e8a646f084e4bb051e4966ff9cde6cc4","unresolved":true,"context_lines":[{"line_number":89,"context_line":"* promote is only allowed for replicas in in_sync state."},{"line_number":90,"context_line":"* resync is only allowed for non-active replicas."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Detailed workflow behavior"},{"line_number":93,"context_line":"--------------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Share server replica create"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7281e655_17127218","line":92,"updated":"2026-05-21 11:23:09.000000000","message":"This requires any keys/properties to be defined at manila.conf backend stanza? If so please add the details.\nEx: replication_domain, backend_availability_zone etc.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* promote is only allowed for replicas in in_sync state."},{"line_number":90,"context_line":"* resync is only allowed for non-active replicas."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"Detailed workflow behavior"},{"line_number":93,"context_line":"--------------------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Share server replica create"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f5cb333_c06ffa4c","line":92,"in_reply_to":"7281e655_17127218","updated":"2026-05-29 16:02:02.000000000","message":"Added.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f43e42d2e8a646f084e4bb051e4966ff9cde6cc4","unresolved":true,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Make Driver Call"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"* Driver delete call is issued with source and destination share server details."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"On success:"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"73fd7d72_53e285a9","line":232,"updated":"2026-05-21 11:23:09.000000000","message":"Enhance the description to include:\nIts driver responsibility to clean up the dp site artifacts(relationship deletion, cleanup volumes, vserver etc) and denote the operation as success.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":229,"context_line":""},{"line_number":230,"context_line":"Make Driver Call"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"* Driver delete call is issued with source and destination share server details."},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"On success:"},{"line_number":235,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"743df039_32a040a9","line":232,"in_reply_to":"73fd7d72_53e285a9","updated":"2026-05-29 16:02:02.000000000","message":"Added the require content.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f43e42d2e8a646f084e4bb051e4966ff9cde6cc4","unresolved":true,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"The proposed approach keeps the user-visible behavior in Manila while still"},{"line_number":589,"context_line":"letting drivers implement backend-specific replication details."},{"line_number":590,"context_line":""},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"Data model impact"},{"line_number":593,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"02e868f3_bc93f6a9","line":590,"updated":"2026-05-21 11:23:09.000000000","message":"We need to add the share server clean up job when there are no shares to factor the share server replica clean up as well.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"67785278faba9b839d73cc6dd82fee80aee5f8d0","unresolved":false,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"The proposed approach keeps the user-visible behavior in Manila while still"},{"line_number":589,"context_line":"letting drivers implement backend-specific replication details."},{"line_number":590,"context_line":""},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"Data model impact"},{"line_number":593,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f6ee715_6fab50af","line":590,"in_reply_to":"02e868f3_bc93f6a9","updated":"2026-05-29 16:02:02.000000000","message":"Yes, we will do that but I don\u0027t think to mentioned this in this doc.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"f43e42d2e8a646f084e4bb051e4966ff9cde6cc4","unresolved":true,"context_lines":[{"line_number":946,"context_line":"                \u0027replica_state\u0027: \u0027out_of_sync\u0027,"},{"line_number":947,"context_line":"                \u0027host\u0027: \u0027openstack2@cmodeSSVMNFS2#pool1\u0027,"},{"line_number":948,"context_line":"                \u0027availability_zone_id\u0027: \u0027f6e146d0-65f0-11e5-9d70-feff819cdc9f\u0027,"},{"line_number":949,"context_line":"                \u0027replication_type\u0027: \u0027dr\u0027,"},{"line_number":950,"context_line":"                \u0027created_at\u0027: datetime.datetime(2015, 8, 10, 0, 5, 58),"},{"line_number":951,"context_line":"                \u0027updated_at\u0027: None,"},{"line_number":952,"context_line":"                \u0027share_server\u0027: {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"21175dd6_f7611586","line":949,"updated":"2026-05-21 11:23:09.000000000","message":"dr? async?\nOther places also needs updation.","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":946,"context_line":"                \u0027replica_state\u0027: \u0027out_of_sync\u0027,"},{"line_number":947,"context_line":"                \u0027host\u0027: \u0027openstack2@cmodeSSVMNFS2#pool1\u0027,"},{"line_number":948,"context_line":"                \u0027availability_zone_id\u0027: \u0027f6e146d0-65f0-11e5-9d70-feff819cdc9f\u0027,"},{"line_number":949,"context_line":"                \u0027replication_type\u0027: \u0027dr\u0027,"},{"line_number":950,"context_line":"                \u0027created_at\u0027: datetime.datetime(2015, 8, 10, 0, 5, 58),"},{"line_number":951,"context_line":"                \u0027updated_at\u0027: None,"},{"line_number":952,"context_line":"                \u0027share_server\u0027: {"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b3f99bc8_8b7b2c63","line":949,"in_reply_to":"21175dd6_f7611586","updated":"2026-06-02 16:32:06.000000000","message":"Done","commit_id":"1005da84a0f25642cc6177329dca008da02a9023"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Operators must rely on backend-specific procedures for replica lifecycle."},{"line_number":33,"context_line":"* Failover behavior is harder to automate and document."},{"line_number":34,"context_line":"* Replica status and replica state are not visible as a first-class Manila"},{"line_number":35,"context_line":"  resource."},{"line_number":36,"context_line":"* Control-path movement during promotion is not modeled consistently across"},{"line_number":37,"context_line":"  drivers."}],"source_content_type":"text/x-rst","patch_set":5,"id":"1af642d3_a7994280","line":34,"updated":"2026-06-01 12:22:10.000000000","message":"share replica or share server replica ? share replica are known to Manila","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Operators must rely on backend-specific procedures for replica lifecycle."},{"line_number":33,"context_line":"* Failover behavior is harder to automate and document."},{"line_number":34,"context_line":"* Replica status and replica state are not visible as a first-class Manila"},{"line_number":35,"context_line":"  resource."},{"line_number":36,"context_line":"* Control-path movement during promotion is not modeled consistently across"},{"line_number":37,"context_line":"  drivers."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3dd22b3d_db5dc012","line":34,"in_reply_to":"1af642d3_a7994280","updated":"2026-06-02 16:32:06.000000000","message":"I have changed it to share server replica to make is more clear.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":46,"context_line":"1. An administrator wants to create a standby replica of an active share"},{"line_number":47,"context_line":"   server on a target backend host."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"2. An administrator wants to promote an in-sync replica to active during a"},{"line_number":50,"context_line":"   failover event."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"3. An administrator wants to resync a non-active replica after recovery so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"5905d178_a91705ff","line":49,"updated":"2026-06-01 12:22:10.000000000","message":"so far so good, replica word was used in Manila only for context of share. With this spec, we will be having both share and share server replica. So better mention explicitly as share-server replica instead of replica. Same applies throughout spec.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":46,"context_line":"1. An administrator wants to create a standby replica of an active share"},{"line_number":47,"context_line":"   server on a target backend host."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"2. An administrator wants to promote an in-sync replica to active during a"},{"line_number":50,"context_line":"   failover event."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"3. An administrator wants to resync a non-active replica after recovery so"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6b9727f7_b656ff07","line":49,"in_reply_to":"5905d178_a91705ff","updated":"2026-06-02 16:32:06.000000000","message":"Made the changes in all the places in doc.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":true,"context_lines":[{"line_number":55,"context_line":"4. An operator wants to list and inspect replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An operator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"b28c0b4f_ededf74f","line":58,"updated":"2026-06-01 15:21:03.000000000","message":"Can this be disabled via config or make configurable via policy who is allowed to specify those filters?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":55,"context_line":"4. An operator wants to list and inspect replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An operator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d3562b10_7f5e00cf","line":58,"in_reply_to":"01b91af6_42529311","updated":"2026-06-09 16:26:13.000000000","message":"As we are removing the include and exclude list so resolving this comment.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":true,"context_lines":[{"line_number":55,"context_line":"4. An operator wants to list and inspect replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An operator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"01b91af6_42529311","line":58,"in_reply_to":"b28c0b4f_ededf74f","updated":"2026-06-02 16:32:06.000000000","message":"There are optional parameter, if user are not providing these option by default all the share will be replicated. The tenant admin user who can create the share server replication can provide these options.\n\nThis is good point to moving this to config, I am keeping this comment open, just wanted to know other opinion on this.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":true,"context_lines":[{"line_number":85,"context_line":"The following input constraints are enforced:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* share_server, host, and replication_type are required for create."},{"line_number":88,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive;"},{"line_number":89,"context_line":"  stored in normalized lowercase form)."},{"line_number":90,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":91,"context_line":"* host must be in backend@pool format."}],"source_content_type":"text/x-rst","patch_set":5,"id":"7f9168da_91c85653","line":88,"updated":"2026-06-01 15:21:03.000000000","message":"Can\u0027t replication_type (maybe named: share_server_replication_type) be specified in share type extra specs following the current pattern instead of introducing this as a new field of share server replica?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":85,"context_line":"The following input constraints are enforced:"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"* share_server, host, and replication_type are required for create."},{"line_number":88,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive;"},{"line_number":89,"context_line":"  stored in normalized lowercase form)."},{"line_number":90,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":91,"context_line":"* host must be in backend@pool format."}],"source_content_type":"text/x-rst","patch_set":5,"id":"d87dfc6d_6df73212","line":88,"in_reply_to":"7f9168da_91c85653","updated":"2026-06-02 16:32:06.000000000","message":"End user will be using below command to create the replication \n openstack share server replica create\n        [--property \u003ckey\u003dvalue\u003e]\n        [--include-shares \u003cshare-list-or-regex\u003e]\n        [--exclude-shares \u003cshare-list-or-regex\u003e]\n        [--wait]\n        [--share-network \u003cnetwork-info\u003e]\n        \u003creplication-type\u003e \u003chost\u003e \u003cshare-server\u003e\n        \nSince all share server replication orchestration is handled from the Manila side, and the replication is created using the share server object rather than the share object, there is only one place to specify the replication_type: during the share server replica creation command, you can see as above. So, here as we are not using share object to create the replication we are using the share server so there is not question of passing replication_type in share extra specs.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":true,"context_lines":[{"line_number":98,"context_line":"manila.conf"},{"line_number":99,"context_line":"~~~~~~~~~~~~"},{"line_number":100,"context_line":"Two backends that can replicate between each other must have the same"},{"line_number":101,"context_line":"replication_domain value in manila.conf."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# Backend A"},{"line_number":104,"context_line":"[backend-a]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d58113c8_ef1bde85","line":101,"updated":"2026-06-01 15:21:03.000000000","message":"I suggest to add a distinct option `server_replication_domain` or `regional_replication_domain`.\n\nMy set of backends that allow regular replication, may not be the same set that allows share server replication. The implication would be, that we also need changes in the scheduler\u0027s ShareReplicationFilter or create a new ShareServerReplicationFilter.\n\n(in netapp terms: cluster that are peered and are supporting regular snapmirror may not be the same that are configured with the same mediator and support SMAS-NAS - at least in our installbase the latter will definitely be only a subset of the former, because a single mediator cannot work on a lot of clusters)\n\nOr is that a requirement we want to mandate to the operators?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"manila.conf"},{"line_number":99,"context_line":"~~~~~~~~~~~~"},{"line_number":100,"context_line":"Two backends that can replicate between each other must have the same"},{"line_number":101,"context_line":"replication_domain value in manila.conf."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# Backend A"},{"line_number":104,"context_line":"[backend-a]"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b2829cac_713cfdcb","line":101,"in_reply_to":"d58113c8_ef1bde85","updated":"2026-06-02 16:32:06.000000000","message":"Aggree, will change it to server_replication_domain and will create the new ShareServerReplicationFilter.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":119,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":120,"context_line":"* host must be in backend@pool format"},{"line_number":121,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":122,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":123,"context_line":"    existing share backup."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Destination Share Server Creation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"86e6a998_aed43d89","line":122,"updated":"2026-06-01 12:22:10.000000000","message":"so during share server replica creation, Manila will check all shares on share server and if any of those has backup, the share server replica creation will fail ?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":120,"context_line":"* host must be in backend@pool format"},{"line_number":121,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":122,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":123,"context_line":"    existing share backup."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Destination Share Server Creation"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2a704ef3_7a8f03b3","line":122,"in_reply_to":"86e6a998_aed43d89","updated":"2026-06-02 16:32:06.000000000","message":"Yes, we have this behaviour for share replica so we wanted to same with share server replica.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":425,"context_line":"On success:"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"* promoted replica is set to active and available."},{"line_number":428,"context_line":"* source replica is set to out_of_sync and available."},{"line_number":429,"context_line":"* control path is updated to point to the promoted replica\u0027s host; the"},{"line_number":430,"context_line":"  source share server is set to inactive and the promoted replica\u0027s share"},{"line_number":431,"context_line":"  server is set to active."}],"source_content_type":"text/x-rst","patch_set":5,"id":"e2d0180f_4395fe14","line":428,"updated":"2026-06-01 12:22:10.000000000","message":"what about source share server ? What state will it be in ?\nalso will shares be accessible during share server promotion ?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":425,"context_line":"On success:"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"* promoted replica is set to active and available."},{"line_number":428,"context_line":"* source replica is set to out_of_sync and available."},{"line_number":429,"context_line":"* control path is updated to point to the promoted replica\u0027s host; the"},{"line_number":430,"context_line":"  source share server is set to inactive and the promoted replica\u0027s share"},{"line_number":431,"context_line":"  server is set to active."}],"source_content_type":"text/x-rst","patch_set":5,"id":"8d44c654_28de1d7d","line":428,"in_reply_to":"e2d0180f_4395fe14","updated":"2026-06-02 16:32:06.000000000","message":"Below details regarding to share servers are already in the doc:\n\"source share server is set to inactive and the promoted replica\u0027s share\n  server is set to active.\"\nShare will be accessible after promote, not during the promote.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":663,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":664,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":665,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":666,"context_line":"    | replication_type   | string(32)             | Yes      | sync or async                     |"},{"line_number":667,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":668,"context_line":"    | share_network_id   | string(36)             | Yes      | FK to share_networks.id           |"},{"line_number":669,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"137128e9_128cdf03","line":666,"updated":"2026-06-01 12:22:10.000000000","message":"share_server_replicas should only hold replica-specific state (replica_state, replication_type, include_shares, exclude_shares) and FK references (share_server_id). Fields that describe the server itself (host, status, share_network_id) belong solely on share_servers and should be removed from the replica table to avoid inconsistency.\nIf share server is in not-available state, the replica status can be defaulted to out-of-sync.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":true,"context_lines":[{"line_number":663,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":664,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":665,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":666,"context_line":"    | replication_type   | string(32)             | Yes      | sync or async                     |"},{"line_number":667,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":668,"context_line":"    | share_network_id   | string(36)             | Yes      | FK to share_networks.id           |"},{"line_number":669,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"dc3f82f3_833ca052","line":666,"in_reply_to":"137128e9_128cdf03","updated":"2026-06-02 16:32:06.000000000","message":"status is require. Rest of the things we can get from share server table. Even I agree with your point. Waiting for other to comment on this. Also I am planning to remove the include and exclude list.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":663,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":664,"context_line":"    | host               | string(255)            | No       | backend@pool                      |"},{"line_number":665,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":666,"context_line":"    | replication_type   | string(32)             | Yes      | sync or async                     |"},{"line_number":667,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"},{"line_number":668,"context_line":"    | share_network_id   | string(36)             | Yes      | FK to share_networks.id           |"},{"line_number":669,"context_line":"    +--------------------+------------------------+----------+-----------------------------------+"}],"source_content_type":"text/x-rst","patch_set":5,"id":"4115c105_762c499e","line":666,"in_reply_to":"dc3f82f3_833ca052","updated":"2026-06-09 16:26:13.000000000","message":"As share server replica is separate object so I am storing all the details in share server replica also. It will be easy to make one query to fetch and show the data instead of joining the table and fetching the data.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":true,"context_lines":[{"line_number":713,"context_line":"        [--exclude-shares \u003cshare-list-or-regex\u003e]"},{"line_number":714,"context_line":"        [--wait]"},{"line_number":715,"context_line":"        [--share-network \u003cnetwork-info\u003e]"},{"line_number":716,"context_line":"        \u003creplication-type\u003e \u003chost\u003e \u003cshare-server\u003e"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"579be9a0_286d67be","line":716,"updated":"2026-06-01 15:21:03.000000000","message":"instead of `\u003chost\u003e` this should be `\u003cavailablility_zone\u003e` and being properly scheduled - how would a user know which hosts are supported?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":true,"context_lines":[{"line_number":713,"context_line":"        [--exclude-shares \u003cshare-list-or-regex\u003e]"},{"line_number":714,"context_line":"        [--wait]"},{"line_number":715,"context_line":"        [--share-network \u003cnetwork-info\u003e]"},{"line_number":716,"context_line":"        \u003creplication-type\u003e \u003chost\u003e \u003cshare-server\u003e"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"94fcc6db_1df59401","line":716,"in_reply_to":"579be9a0_286d67be","updated":"2026-06-02 16:32:06.000000000","message":"Each host corresponds to one backend stanza. Based on my understanding, the user (tenant admin) should know which backend stanza or host to use for replication or to provision the destination share server. However, using availability_zone appears to be a better option. This way, the user can provision the share server within a group of hosts, and the scheduler can select any host within that availability zone. Lets other comments on this, leveing this comment open.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":713,"context_line":"        [--exclude-shares \u003cshare-list-or-regex\u003e]"},{"line_number":714,"context_line":"        [--wait]"},{"line_number":715,"context_line":"        [--share-network \u003cnetwork-info\u003e]"},{"line_number":716,"context_line":"        \u003creplication-type\u003e \u003chost\u003e \u003cshare-server\u003e"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"fcec874e_c61899e2","line":716,"in_reply_to":"5854f857_4250fa61","updated":"2026-06-09 16:26:13.000000000","message":"Using availability zone.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":713,"context_line":"        [--exclude-shares \u003cshare-list-or-regex\u003e]"},{"line_number":714,"context_line":"        [--wait]"},{"line_number":715,"context_line":"        [--share-network \u003cnetwork-info\u003e]"},{"line_number":716,"context_line":"        \u003creplication-type\u003e \u003chost\u003e \u003cshare-server\u003e"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"5854f857_4250fa61","line":716,"in_reply_to":"84343c41_b9a7b749","updated":"2026-06-03 15:59:05.000000000","message":"Thanks @ces.eduardo98@gmail.com, ACK.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":713,"context_line":"        [--exclude-shares \u003cshare-list-or-regex\u003e]"},{"line_number":714,"context_line":"        [--wait]"},{"line_number":715,"context_line":"        [--share-network \u003cnetwork-info\u003e]"},{"line_number":716,"context_line":"        \u003creplication-type\u003e \u003chost\u003e \u003cshare-server\u003e"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":719,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"84343c41_b9a7b749","line":716,"in_reply_to":"94fcc6db_1df59401","updated":"2026-06-02 20:50:28.000000000","message":"+1 for availability zones.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":true,"context_lines":[{"line_number":740,"context_line":".. code-block:: bash"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"    # Enroll a new share into replication at create time:"},{"line_number":743,"context_line":"    openstack share create --property share_server_replication_enabled\u003dtrue ..."},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    # Enroll an existing share into replication:"},{"line_number":746,"context_line":"    openstack share set --property share_server_replication_enabled\u003dtrue ..."}],"source_content_type":"text/x-rst","patch_set":5,"id":"d44d78d7_3ccfdc75","line":743,"updated":"2026-06-01 15:21:03.000000000","message":"What happens if the share server has no replica, but user asks for share with share_server_replication_enabled\u003dtrue?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":740,"context_line":".. code-block:: bash"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":"    # Enroll a new share into replication at create time:"},{"line_number":743,"context_line":"    openstack share create --property share_server_replication_enabled\u003dtrue ..."},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"    # Enroll an existing share into replication:"},{"line_number":746,"context_line":"    openstack share set --property share_server_replication_enabled\u003dtrue ..."}],"source_content_type":"text/x-rst","patch_set":5,"id":"d5ece5cf_ac96f48e","line":743,"in_reply_to":"d44d78d7_3ccfdc75","updated":"2026-06-02 16:32:06.000000000","message":"Share creation will fail in the driver. In the case of ONTAP, volume creation fails if a user wants to create a protected share when the SVM does not have replication. In this case, the user must first create the replication before passing share_server_replication_enabled\u003dtrue during share creation.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"17994710c01bd76fd67605222684bce7f7427fe2","unresolved":true,"context_lines":[{"line_number":916,"context_line":"Request::"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    {"},{"line_number":919,"context_line":"        \"resync\": null"},{"line_number":920,"context_line":"    }"},{"line_number":921,"context_line":""},{"line_number":922,"context_line":"Response(202)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"70290131_b530c904","line":919,"updated":"2026-06-01 12:22:10.000000000","message":"can you keep same semantics of action for promote and resync ? One uses {} while other uses Null","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":916,"context_line":"Request::"},{"line_number":917,"context_line":""},{"line_number":918,"context_line":"    {"},{"line_number":919,"context_line":"        \"resync\": null"},{"line_number":920,"context_line":"    }"},{"line_number":921,"context_line":""},{"line_number":922,"context_line":"Response(202)::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"afe4c06c_a7a834a2","line":919,"in_reply_to":"70290131_b530c904","updated":"2026-06-02 16:32:06.000000000","message":"Done.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"5b54c55babca02a72d1ac85b97789276c08bc318","unresolved":true,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"Additional behavior expected in these workflows:"},{"line_number":1344,"context_line":""},{"line_number":1345,"context_line":"* protected share delete may require an explicit unprotect step first,"},{"line_number":1346,"context_line":"* deleting a share server with active replica relationships must be blocked"},{"line_number":1347,"context_line":"    until replicas are removed."},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"b216b70f_b2616a59","line":1345,"updated":"2026-06-01 15:21:03.000000000","message":"Why is this so vague? Is this something that the driver decides or does an end-user need to unprotect first?","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8b10c2fe4f3b734593db65cb242f29c265476f0b","unresolved":false,"context_lines":[{"line_number":1342,"context_line":""},{"line_number":1343,"context_line":"Additional behavior expected in these workflows:"},{"line_number":1344,"context_line":""},{"line_number":1345,"context_line":"* protected share delete may require an explicit unprotect step first,"},{"line_number":1346,"context_line":"* deleting a share server with active replica relationships must be blocked"},{"line_number":1347,"context_line":"    until replicas are removed."},{"line_number":1348,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"bb110f45_7c0b6a8e","line":1345,"in_reply_to":"b216b70f_b2616a59","updated":"2026-06-02 16:32:06.000000000","message":"This behaviour is same as share replica. Before deleting the share use first need to delete the replica first. Same approach we are using here, user first need to unprotec the share and then he can delete the share. This should be done by end user.","commit_id":"cbc09fd8915982ee4e1658820c9066604e604c7e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/share-server-replica"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"}],"source_content_type":"text/x-rst","patch_set":7,"id":"cbab3949_589b3fad","line":15,"range":{"start_line":14,"start_character":21,"end_line":15,"end_character":16},"updated":"2026-06-02 20:50:28.000000000","message":"or rather impossible while under Manila\u0027s management?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/share-server-replica"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"}],"source_content_type":"text/x-rst","patch_set":7,"id":"e212bea6_2c8b1a56","line":15,"range":{"start_line":14,"start_character":21,"end_line":15,"end_character":16},"in_reply_to":"a9a86694_cdc71299","updated":"2026-06-09 16:26:13.000000000","message":"Sentence already changed, if you think this comment is not address, feel free to re-open the comment.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/share-server-replica"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a9a86694_cdc71299","line":15,"range":{"start_line":14,"start_character":21,"end_line":15,"end_character":16},"in_reply_to":"cbab3949_589b3fad","updated":"2026-06-03 15:59:05.000000000","message":"Not able to understand this comments, where exactly we have to add this..?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."}],"source_content_type":"text/x-rst","patch_set":7,"id":"29e90c43_3b188d92","line":16,"range":{"start_line":16,"start_character":25,"end_line":16,"end_character":56},"updated":"2026-06-02 20:50:28.000000000","message":"difficult.\n\nWe can\u0027t say much about inconsistency I think, mostly for the reason I stated above. We don\u0027t have share server replication, so we should assume it\u0027s not happening.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."}],"source_content_type":"text/x-rst","patch_set":7,"id":"dde327e5_99c46c14","line":16,"range":{"start_line":16,"start_character":25,"end_line":16,"end_character":56},"in_reply_to":"29e90c43_3b188d92","updated":"2026-06-04 04:17:38.000000000","message":"+1 to this and related comments. Let\u0027s just say this feature doesn\u0027t exist. There\u0027s no need to suggest it is \"backend specific\" - there are possibly hundreds of  features if you go directly to the storage system..","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."}],"source_content_type":"text/x-rst","patch_set":7,"id":"8b76d634_cc3f0a92","line":16,"range":{"start_line":16,"start_character":25,"end_line":16,"end_character":56},"in_reply_to":"29e90c43_3b188d92","updated":"2026-06-03 15:59:05.000000000","message":"done.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."}],"source_content_type":"text/x-rst","patch_set":7,"id":"a8e01997_698f473e","line":16,"range":{"start_line":16,"start_character":25,"end_line":16,"end_character":56},"in_reply_to":"dde327e5_99c46c14","updated":"2026-06-05 15:45:45.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"e676c541_23f56dfc","line":18,"range":{"start_line":18,"start_character":53,"end_line":18,"end_character":59},"updated":"2026-06-02 20:50:28.000000000","message":"curious about this resync - is it actually necessary?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"7db9b3e748aba92abaf5b35d9e41050cf4eaf59b","unresolved":true,"context_lines":[{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ed74ac43_4ee18b19","line":18,"range":{"start_line":18,"start_character":53,"end_line":18,"end_character":59},"in_reply_to":"e676c541_23f56dfc","updated":"2026-06-02 20:52:45.000000000","message":"Sorry, was a question to myself while going through things and trying to figure out. It\u0027s answered in the spec.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration inconsistent across deployments. This specification"},{"line_number":17,"context_line":"introduces a first-class share server replica resource in Manila so"},{"line_number":18,"context_line":"administrators can create, inspect, update, promote, resync, and delete share"},{"line_number":19,"context_line":"server replicas through standard APIs and client commands."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8035dbe2_d34e9451","line":18,"range":{"start_line":18,"start_character":53,"end_line":18,"end_character":59},"in_reply_to":"ed74ac43_4ee18b19","updated":"2026-06-03 15:59:05.000000000","message":"Thanks","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Share-level replication already exists in Manila, but share-server-level"},{"line_number":26,"context_line":"replication has historically been backend-specific. That leaves operators"},{"line_number":27,"context_line":"without a consistent API/CLI for managing failover-oriented workflows at the"},{"line_number":28,"context_line":"share-server layer."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"92637574_36ff87ff","line":26,"range":{"start_line":26,"start_character":15,"end_line":26,"end_character":50},"updated":"2026-06-02 20:50:28.000000000","message":"```suggestion\nreplication is not available in Manila. That leaves operators\n```","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Share-level replication already exists in Manila, but share-server-level"},{"line_number":26,"context_line":"replication has historically been backend-specific. That leaves operators"},{"line_number":27,"context_line":"without a consistent API/CLI for managing failover-oriented workflows at the"},{"line_number":28,"context_line":"share-server layer."},{"line_number":29,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"c01ac34b_d562bdbc","line":26,"range":{"start_line":26,"start_character":15,"end_line":26,"end_character":50},"in_reply_to":"92637574_36ff87ff","updated":"2026-06-03 15:59:05.000000000","message":"Done.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Operators must rely on backend-specific procedures for replica lifecycle."},{"line_number":33,"context_line":"* Failover behavior is harder to automate and document."},{"line_number":34,"context_line":"* Share server replica status and share server replica state are not visible as a first-class Manila"},{"line_number":35,"context_line":"  resource."},{"line_number":36,"context_line":"* Control-path movement during promotion is not modeled consistently across"},{"line_number":37,"context_line":"  drivers."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9001b076_860e07e1","line":35,"range":{"start_line":34,"start_character":79,"end_line":35,"end_character":11},"updated":"2026-06-02 20:50:28.000000000","message":"please wrap this and lines below at 79 characters for better visibility (except when not possible with links)","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"* Operators must rely on backend-specific procedures for replica lifecycle."},{"line_number":33,"context_line":"* Failover behavior is harder to automate and document."},{"line_number":34,"context_line":"* Share server replica status and share server replica state are not visible as a first-class Manila"},{"line_number":35,"context_line":"  resource."},{"line_number":36,"context_line":"* Control-path movement during promotion is not modeled consistently across"},{"line_number":37,"context_line":"  drivers."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"19aaca75_aa27fa98","line":35,"range":{"start_line":34,"start_character":79,"end_line":35,"end_character":11},"in_reply_to":"9001b076_860e07e1","updated":"2026-06-03 15:59:05.000000000","message":"sure, done.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":33,"context_line":"* Failover behavior is harder to automate and document."},{"line_number":34,"context_line":"* Share server replica status and share server replica state are not visible as a first-class Manila"},{"line_number":35,"context_line":"  resource."},{"line_number":36,"context_line":"* Control-path movement during promotion is not modeled consistently across"},{"line_number":37,"context_line":"  drivers."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This specification addresses that gap by adding a Manila-managed share server"},{"line_number":40,"context_line":"replica resource."}],"source_content_type":"text/x-rst","patch_set":7,"id":"7627246b_3ecf2fa2","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":10},"updated":"2026-06-02 20:50:28.000000000","message":"I think we can remove this statement because of the reasons of the comments above","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":33,"context_line":"* Failover behavior is harder to automate and document."},{"line_number":34,"context_line":"* Share server replica status and share server replica state are not visible as a first-class Manila"},{"line_number":35,"context_line":"  resource."},{"line_number":36,"context_line":"* Control-path movement during promotion is not modeled consistently across"},{"line_number":37,"context_line":"  drivers."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"This specification addresses that gap by adding a Manila-managed share server"},{"line_number":40,"context_line":"replica resource."}],"source_content_type":"text/x-rst","patch_set":7,"id":"ec6b92bb_bdad8170","line":37,"range":{"start_line":36,"start_character":0,"end_line":37,"end_character":10},"in_reply_to":"7627246b_3ecf2fa2","updated":"2026-06-03 15:59:05.000000000","message":"Change it as below \nManaging control-path movement during promotion is challenging when the relationship is established through the backend.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":49,"context_line":"2. An administrator wants to promote an in-sync share server replica to active during a"},{"line_number":50,"context_line":"   failover event or planned maintenance."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"3. An administrator wants to resync a non-active share server replica after recovery so"},{"line_number":53,"context_line":"   that it can be used again as a standby."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f1d4163b_e11ff4a8","line":52,"range":{"start_line":52,"start_character":29,"end_line":52,"end_character":35},"updated":"2026-06-04 04:17:38.000000000","message":"\"resync\" today for share replicas is used as a way to attempt a data transfer and get the secondary copy/ies in sync with the primary.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":49,"context_line":"2. An administrator wants to promote an in-sync share server replica to active during a"},{"line_number":50,"context_line":"   failover event or planned maintenance."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"3. An administrator wants to resync a non-active share server replica after recovery so"},{"line_number":53,"context_line":"   that it can be used again as a standby."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"74f9677b_8930c2a7","line":52,"range":{"start_line":52,"start_character":29,"end_line":52,"end_character":35},"in_reply_to":"f1d4163b_e11ff4a8","updated":"2026-06-05 15:45:45.000000000","message":"Here resync is to make the relationship in sync if it is out of sync or in error state on storage backend.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An administrator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"6. An operator wants to inspect a share instance to check if it is part of a share"},{"line_number":62,"context_line":"   server replica."}],"source_content_type":"text/x-rst","patch_set":7,"id":"8f1e7543_d6554303","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":51},"updated":"2026-06-04 04:17:38.000000000","message":"I think this will be to the detriment of this feature. I disagree that this is a _necessary_ use case.. Can you explain why this is desirable? What do you gain out of replicating only a few shares? How does one understand the status of unreplicated shares in manila?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"71808f3be8a00ae6a46d77e3ad76753080f3a97d","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An administrator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"6. An operator wants to inspect a share instance to check if it is part of a share"},{"line_number":62,"context_line":"   server replica."}],"source_content_type":"text/x-rst","patch_set":7,"id":"a03d6383_3135d72d","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":51},"in_reply_to":"867172cb_3e312e20","updated":"2026-06-05 13:02:50.000000000","message":"Yes, but the same can be achieved by having two share servers in the same share network: one for protected, one for unprotected.\nAnd besides that: mixing prod and dev/poc shares in the same environment is not a good practice. And if it brings more costs with the new feature, customers have even more reason to adopt to this and not mix.\n\nChanging a share from protected to unprotected or the other way, is something that will rarely happen: At least in my experience the purpose of a share is predefined once it is created.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a1069a5d3febbcdfa392603bdabfdbb2190d4792","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An administrator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"6. An operator wants to inspect a share instance to check if it is part of a share"},{"line_number":62,"context_line":"   server replica."}],"source_content_type":"text/x-rst","patch_set":7,"id":"867172cb_3e312e20","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":51},"in_reply_to":"8f1e7543_d6554303","updated":"2026-06-05 11:46:10.000000000","message":"Hi Goutham, The reason why replication and unreplication of shares becomes important for CSPs is replication comes with cost. Cost of replicating the share on multiple sites. That costs storage and network (to transfer the data across sites) and storage efficiency on secondary sites take a hit because of this because you may not be utilising all shares replicated after failover. \n\nConsider a use case where a share server is created with shares participating in POCs and some of them are production. I would want to only replicate the shares that I need and though it may not be required for all users/CSPs, it may definitely be required to avoid all/none behaviour in future. This is also true if in case we bring in DHSS\u003dfalse use cases in future. If that happens, a customer can onboard share servers which has shares partly managed by manila. I may not want to replicate all shares to reduce my cost and efficiencies on secondary site.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"48a13826627bf8b0aacca094648c8a214d9f69b8","unresolved":true,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An administrator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"6. An operator wants to inspect a share instance to check if it is part of a share"},{"line_number":62,"context_line":"   server replica."}],"source_content_type":"text/x-rst","patch_set":7,"id":"d00c4c53_ffc9f239","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":51},"in_reply_to":"a03d6383_3135d72d","updated":"2026-06-05 17:01:57.000000000","message":"We discussed this internally, and we all agreed to remove the include and exclude options to keep it simple. Will close this comment after incorporating this comment.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"4. An operator wants to list and inspect share server replica status, state, host, and"},{"line_number":56,"context_line":"   replication policy for troubleshooting and monitoring."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"5. An administrator wants optional include or exclude filters to influence which"},{"line_number":59,"context_line":"   shares are replicated by backend-specific logic."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"6. An operator wants to inspect a share instance to check if it is part of a share"},{"line_number":62,"context_line":"   server replica."}],"source_content_type":"text/x-rst","patch_set":7,"id":"26392f0c_779a8085","line":59,"range":{"start_line":57,"start_character":0,"end_line":59,"end_character":51},"in_reply_to":"d00c4c53_ffc9f239","updated":"2026-06-09 16:26:13.000000000","message":"Marked as resolved.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":65,"context_line":"Proposed change"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"The resource will be backed by database tables, share API validation, manager"},{"line_number":69,"context_line":"orchestration, driver hooks, policy rules, api-ref documentation, and"},{"line_number":70,"context_line":"python-manilaclient support."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"33f6c05e_2ee9eac8","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":30},"updated":"2026-06-02 20:50:28.000000000","message":"I think we can move the list above as the first thing items of the proposed change and then at the end we can list this... also, another proposed fix on this line¨\n\n```suggestion\nThis addition will consist of new database tables, share API validation, manager\n```","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Proposed change"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"The resource will be backed by database tables, share API validation, manager"},{"line_number":69,"context_line":"orchestration, driver hooks, policy rules, api-ref documentation, and"},{"line_number":70,"context_line":"python-manilaclient support."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8510595d_58de4f0b","line":68,"range":{"start_line":68,"start_character":0,"end_line":68,"end_character":30},"in_reply_to":"33f6c05e_2ee9eac8","updated":"2026-06-03 15:59:05.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Create a share server replica for a share server on a target host."},{"line_number":75,"context_line":"* List share server replicas, optionally filtered by source share server."},{"line_number":76,"context_line":"* Show a single share server replica."},{"line_number":77,"context_line":"* Update replica metadata, share server replica state, and status."},{"line_number":78,"context_line":"* Delete a share server replica, with force support to delete the share server replica and purge it from"},{"line_number":79,"context_line":"    Manila, even if the backend hasn\u0027t been cleaned up."}],"source_content_type":"text/x-rst","patch_set":7,"id":"91657929_d44cec21","line":76,"range":{"start_line":76,"start_character":9,"end_line":76,"end_character":15},"updated":"2026-06-02 20:50:28.000000000","message":"```suggestion\n* Show a share server replica.\n```","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Create a share server replica for a share server on a target host."},{"line_number":75,"context_line":"* List share server replicas, optionally filtered by source share server."},{"line_number":76,"context_line":"* Show a single share server replica."},{"line_number":77,"context_line":"* Update replica metadata, share server replica state, and status."},{"line_number":78,"context_line":"* Delete a share server replica, with force support to delete the share server replica and purge it from"},{"line_number":79,"context_line":"    Manila, even if the backend hasn\u0027t been cleaned up."}],"source_content_type":"text/x-rst","patch_set":7,"id":"8b5906c5_5b71ddaf","line":76,"range":{"start_line":76,"start_character":9,"end_line":76,"end_character":15},"in_reply_to":"91657929_d44cec21","updated":"2026-06-03 15:59:05.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":74,"context_line":"* Create a share server replica for a share server on a target host."},{"line_number":75,"context_line":"* List share server replicas, optionally filtered by source share server."},{"line_number":76,"context_line":"* Show a single share server replica."},{"line_number":77,"context_line":"* Update replica metadata, share server replica state, and status."},{"line_number":78,"context_line":"* Delete a share server replica, with force support to delete the share server replica and purge it from"},{"line_number":79,"context_line":"    Manila, even if the backend hasn\u0027t been cleaned up."},{"line_number":80,"context_line":"* Promote a share server replica to active."}],"source_content_type":"text/x-rst","patch_set":7,"id":"47d4730a_3a4c242c","line":77,"range":{"start_line":77,"start_character":2,"end_line":77,"end_character":26},"updated":"2026-06-02 20:50:28.000000000","message":"are we also implementing share server metadata as part of this change?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"* Create a share server replica for a share server on a target host."},{"line_number":75,"context_line":"* List share server replicas, optionally filtered by source share server."},{"line_number":76,"context_line":"* Show a single share server replica."},{"line_number":77,"context_line":"* Update replica metadata, share server replica state, and status."},{"line_number":78,"context_line":"* Delete a share server replica, with force support to delete the share server replica and purge it from"},{"line_number":79,"context_line":"    Manila, even if the backend hasn\u0027t been cleaned up."},{"line_number":80,"context_line":"* Promote a share server replica to active."}],"source_content_type":"text/x-rst","patch_set":7,"id":"4a696b48_cb477e7f","line":77,"range":{"start_line":77,"start_character":2,"end_line":77,"end_character":26},"in_reply_to":"47d4730a_3a4c242c","updated":"2026-06-03 15:59:05.000000000","message":"No, only share server replica meta data but planning to add one column as part of share server table.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The implementation keeps a source-side active replica record so that the"},{"line_number":85,"context_line":"share server  replica set has a clear root and the control path can be updated when a"},{"line_number":86,"context_line":"share server replica is promoted."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Detailed workflow behavior"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa4a4374_553e9a8d","line":86,"updated":"2026-06-02 20:50:28.000000000","message":"I think we should have information about the mounts here. Can this be disruptive for shares that are already mounted in a guest?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The implementation keeps a source-side active replica record so that the"},{"line_number":85,"context_line":"share server  replica set has a clear root and the control path can be updated when a"},{"line_number":86,"context_line":"share server replica is promoted."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Detailed workflow behavior"}],"source_content_type":"text/x-rst","patch_set":7,"id":"791806a9_ab87b6f3","line":86,"in_reply_to":"b173ef6c_958aac75","updated":"2026-06-09 19:30:03.000000000","message":"Maybe we should also note in the spec that the networking should be handled by the backend then, and that the expectation of whether there will be a disruption or not, should be up to the driver that implements it?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"The implementation keeps a source-side active replica record so that the"},{"line_number":85,"context_line":"share server  replica set has a clear root and the control path can be updated when a"},{"line_number":86,"context_line":"share server replica is promoted."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Detailed workflow behavior"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b173ef6c_958aac75","line":86,"in_reply_to":"fa4a4374_553e9a8d","updated":"2026-06-03 15:59:05.000000000","message":"the data path (mount path) is unaffected,  and clients can write data to the backend. The backend must either implement this feature  (migrating the data LIF to secondary side) or rely on inbuilt feature supported by storage backend (e.g., NetApp\u0027s SMAS-NAS support).","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":84,"context_line":"The implementation keeps a source-side active replica record so that the"},{"line_number":85,"context_line":"share server  replica set has a clear root and the control path can be updated when a"},{"line_number":86,"context_line":"share server replica is promoted."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Detailed workflow behavior"},{"line_number":90,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"791a9cee_0e2e86a1","line":87,"updated":"2026-06-04 04:17:38.000000000","message":"how will networking be handled for the secondary share server?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":84,"context_line":"The implementation keeps a source-side active replica record so that the"},{"line_number":85,"context_line":"share server  replica set has a clear root and the control path can be updated when a"},{"line_number":86,"context_line":"share server replica is promoted."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"Detailed workflow behavior"},{"line_number":90,"context_line":"--------------------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"4937945f_2358e39b","line":87,"in_reply_to":"791a9cee_0e2e86a1","updated":"2026-06-05 15:45:45.000000000","message":"For SMAS-NAS migrations, all data, LIF (Logical Interface), and export policies are automatically migrated to the destination SVM. Therefore, there is no need to manually configure networking on the secondary SVM. However, the core passes network-related information to the driver, allowing it to configure networking on the secondary side if the driver does not support the SMAS-NAS like feature natively.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"manila.conf"},{"line_number":93,"context_line":"~~~~~~~~~~~~"},{"line_number":94,"context_line":"Two backends that can share server replicate between each other must have the same"},{"line_number":95,"context_line":"replication_domain value in manila.conf."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# Backend A"},{"line_number":98,"context_line":"[backend-a]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f7360390_f15272f9","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":40},"updated":"2026-06-02 20:50:28.000000000","message":"```suggestion\nStorage backends that are capable of replicating share servers between each other must be in the same replication domain and it must be represented in manila.conf through the ``replication_domain`` flag.\n```","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"manila.conf"},{"line_number":93,"context_line":"~~~~~~~~~~~~"},{"line_number":94,"context_line":"Two backends that can share server replicate between each other must have the same"},{"line_number":95,"context_line":"replication_domain value in manila.conf."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# Backend A"},{"line_number":98,"context_line":"[backend-a]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"75b0f0a5_6ee7e3ad","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":40},"in_reply_to":"d919f145_460316ff","updated":"2026-06-05 15:45:45.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"manila.conf"},{"line_number":93,"context_line":"~~~~~~~~~~~~"},{"line_number":94,"context_line":"Two backends that can share server replicate between each other must have the same"},{"line_number":95,"context_line":"replication_domain value in manila.conf."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# Backend A"},{"line_number":98,"context_line":"[backend-a]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5c3b726b_1f17dfc5","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":40},"in_reply_to":"f7360390_f15272f9","updated":"2026-06-03 15:59:05.000000000","message":"awesome, this looks better. I changed it.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"manila.conf"},{"line_number":93,"context_line":"~~~~~~~~~~~~"},{"line_number":94,"context_line":"Two backends that can share server replicate between each other must have the same"},{"line_number":95,"context_line":"replication_domain value in manila.conf."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# Backend A"},{"line_number":98,"context_line":"[backend-a]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d919f145_460316ff","line":95,"range":{"start_line":94,"start_character":0,"end_line":95,"end_character":40},"in_reply_to":"f7360390_f15272f9","updated":"2026-06-04 04:17:38.000000000","message":"the flag is named ``server_replication_domain``","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":102,"context_line":"[backend-b]"},{"line_number":103,"context_line":"server_replication_domain \u003d server_replication_domain-A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note- To support server_replication_domain need to create ShareServerReplicationFilter in scheduler."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Share server replica create"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dda1bef1_34c69712","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":2},"updated":"2026-06-02 20:50:28.000000000","message":"I\u0027m a bit unclear about what this note means though...","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":102,"context_line":"[backend-b]"},{"line_number":103,"context_line":"server_replication_domain \u003d server_replication_domain-A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note- To support server_replication_domain need to create ShareServerReplicationFilter in scheduler."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Share server replica create"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"58919d5a_963509f9","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":2},"updated":"2026-06-02 20:50:28.000000000","message":"maybe we can use an rst-like way to add a note here","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":102,"context_line":"[backend-b]"},{"line_number":103,"context_line":"server_replication_domain \u003d server_replication_domain-A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note- To support server_replication_domain need to create ShareServerReplicationFilter in scheduler."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Share server replica create"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ba5c825e_c9b0d194","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":2},"in_reply_to":"0965c5bc_f74a2375","updated":"2026-06-09 16:26:13.000000000","message":"Added scheduler related changes to separate section.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":102,"context_line":"[backend-b]"},{"line_number":103,"context_line":"server_replication_domain \u003d server_replication_domain-A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note- To support server_replication_domain need to create ShareServerReplicationFilter in scheduler."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Share server replica create"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"40baf54f_9e6275be","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":2},"in_reply_to":"58919d5a_963509f9","updated":"2026-06-03 15:59:05.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"[backend-b]"},{"line_number":103,"context_line":"server_replication_domain \u003d server_replication_domain-A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note- To support server_replication_domain need to create ShareServerReplicationFilter in scheduler."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Share server replica create"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"aebf4f5e_b9c7e855","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":2},"in_reply_to":"ba5c825e_c9b0d194","updated":"2026-06-09 19:30:03.000000000","message":"I understand it with the new version, thanks for the addition.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":102,"context_line":"[backend-b]"},{"line_number":103,"context_line":"server_replication_domain \u003d server_replication_domain-A"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Note- To support server_replication_domain need to create ShareServerReplicationFilter in scheduler."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Share server replica create"},{"line_number":108,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0965c5bc_f74a2375","line":105,"range":{"start_line":105,"start_character":0,"end_line":105,"end_character":2},"in_reply_to":"dda1bef1_34c69712","updated":"2026-06-03 15:59:05.000000000","message":"We need to make the changes in scheduler code to implement ShareServerReplicationFilter. Let me know if you want me to move to other place...?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"At DB, API and manager level, the expected sequence is:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Validation"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Share server should be exist and should be in available state."},{"line_number":115,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":116,"context_line":"* host must be in backend@pool format"},{"line_number":117,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":118,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":119,"context_line":"    existing share backup."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Destination Share Server Creation"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"32676a07_06f3720f","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":26},"updated":"2026-06-02 20:50:28.000000000","message":"while I like the details and understanding the thought process and what is to come, I do feel like this is too much implementation detail for this spec. We don\u0027t need to have all types of validations that the API will do here. The ASCII workflow is also nice, but I do feel that it is too much as well. Same applies to delete, resync and so on. If we\u0027re adding more details, I\u0027d keep them at the beginning of the proposed changes and only a paragraph for every one of them (create, promote, resync, delete)","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3b1285b3a0b6c1f66157a212f97e45a9e7510784","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"At DB, API and manager level, the expected sequence is:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Validation"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Share server should be exist and should be in available state."},{"line_number":115,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":116,"context_line":"* host must be in backend@pool format"},{"line_number":117,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":118,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":119,"context_line":"    existing share backup."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Destination Share Server Creation"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"ddb24e62_4681661a","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":26},"in_reply_to":"32676a07_06f3720f","updated":"2026-06-02 21:12:46.000000000","message":"If you think this is a must keep and other reviewers disagree, I think this belongs to an \"implementation details\" section.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"At DB, API and manager level, the expected sequence is:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Validation"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Share server should be exist and should be in available state."},{"line_number":115,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":116,"context_line":"* host must be in backend@pool format"},{"line_number":117,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":118,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":119,"context_line":"    existing share backup."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Destination Share Server Creation"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"c77a25d6_0d7fc750","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":26},"in_reply_to":"420727be_f2646fe9","updated":"2026-06-09 16:26:13.000000000","message":"I am closing this. Feel free to open a comment if you still need further changes in this section.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":false,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"At DB, API and manager level, the expected sequence is:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Validation"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Share server should be exist and should be in available state."},{"line_number":115,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":116,"context_line":"* host must be in backend@pool format"},{"line_number":117,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":118,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":119,"context_line":"    existing share backup."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Destination Share Server Creation"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8a372a57_c95ec561","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":26},"in_reply_to":"c77a25d6_0d7fc750","updated":"2026-06-09 19:30:03.000000000","message":"looks better now, thank you!","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":109,"context_line":""},{"line_number":110,"context_line":"At DB, API and manager level, the expected sequence is:"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Validation"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* Share server should be exist and should be in available state."},{"line_number":115,"context_line":"* replication_type must be one of ``sync`` or ``async`` (case-insensitive)"},{"line_number":116,"context_line":"* host must be in backend@pool format"},{"line_number":117,"context_line":"* include_shares and exclude_shares are mutually exclusive."},{"line_number":118,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":119,"context_line":"    existing share backup."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"Destination Share Server Creation"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"420727be_f2646fe9","line":119,"range":{"start_line":112,"start_character":0,"end_line":119,"end_character":26},"in_reply_to":"ddb24e62_4681661a","updated":"2026-06-03 15:59:05.000000000","message":"I am removing ASCII workflow, these are generated by AI using the steps I have put for each workflow. Also changed the section name. Keeping this comment open so that other can provide their opinion here.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"4a8ba371_9e6c7fef","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"updated":"2026-06-04 04:17:38.000000000","message":"Do you really need a different table? The details that go into this table are exactly the same as the source. I feel like you could add a flag instead: \"replication_source_share_server\" perhaps and identify a secondary at any given point in time.. especially because you aren\u0027t proposing fan-out replication.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"bc950053_1bf3b142","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"220d419b_73411ffc","updated":"2026-06-17 06:18:33.000000000","message":"Marked as unresolved.\n\nI don\u0027t see a reason for the complexity that a new table brings in.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"8f7f9a30_df8dee59","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"4a8ba371_9e6c7fef","updated":"2026-06-05 15:45:45.000000000","message":"Core will have implementation for fan out but in current release NetApp will not support the fan-out but in future we will be supporting this.\n\nI fee it is better to have to separate table as share share replica is different object.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"aa5075cd_bb9c59b6","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"4d6d780f_c60f0c6b","updated":"2026-06-18 13:43:41.000000000","message":"Removing share_server_replica table and adding new column to share_servers table.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"220d419b_73411ffc","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"8f7f9a30_df8dee59","updated":"2026-06-09 19:30:03.000000000","message":"I get the fan out capability, yes... but I think Goutham\u0027s suggestion also goes in line with what we have for share server migration, where a migration is happening but even so we have not introduced a new table, only a new field. Have you evaluated that possibility? I also feel it could simplify things. Same for task state","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"faacda4aa523dcf3db2e9ea93fd0ea882be9ee69","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"4d6d780f_c60f0c6b","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"9c2824f5_ed676ddb","updated":"2026-06-17 20:46:41.000000000","message":"sure, i don\u0027t see paying the complexity cost as being worth that future design","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"e6435599_bcd2f3a0","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"bc950053_1bf3b142","updated":"2026-06-17 16:51:01.000000000","message":"Share server migration and share server replication solve different problems and therefore need different data models. Migration is a temporary orchestration workflow between two share server records, so it can be represented using transient state in the existing share_servers table, such as task_state, source_share_server_id, and migration-specific status values. \nShare server replication, by contrast, introduces a persistent first-class replica resource with its own lifecycle, actions, placement, metadata, and per-replica state. It must support one source share server having multiple replicas simultaneously and allow direct management operations such as list, show, promote, resync, and delete on each replica. Because of that, replication is not just another state of share_servers; it is a separate resource and is better modeled in a dedicated share_server_replicas table.\n\nBelow are the points to create the separate table for share server replica.\n\n1. We need per-replica state and status, but share_servers status already represents server lifecycle, not replica lifecycle.And for other filed we need to add the more column in share_servers table.\n2. We are supporting multiple replicas per source, which becomes harder to express cleanly if everything is overloaded into share_servers.\n3. We are supporting meta data for share server replica, in this case it confusing and might be create conflict to add the replica meta data to share server related table.\n\nI also I have seen most of the API implementation we are following \none REST resource -\u003e one controller -\u003e one DB table.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9fcc5df701628d18b6788679a7966fca60418cf4","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"9c2824f5_ed676ddb","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"cc31e820_fcd76edc","updated":"2026-06-17 19:18:44.000000000","message":"I am adding code to the core to ensure that if any driver supports fanout replication, shared server replica for fanout support should be available for it in the core.\n\nFor NetApp we will not be supporting fanout today but in future we can support.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Add Share Server Replica Details to Database"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* Add source share server details to the share_server_replicas table with:"},{"line_number":131,"context_line":"    replica state active and status available."},{"line_number":132,"context_line":"* Add destination share server details to the share_server_replicas table"},{"line_number":133,"context_line":"    with: share server replica state out_of_sync and status creating."}],"source_content_type":"text/x-rst","patch_set":7,"id":"cc31e820_fcd76edc","line":130,"range":{"start_line":130,"start_character":41,"end_line":130,"end_character":68},"in_reply_to":"e6435599_bcd2f3a0","updated":"2026-06-17 17:45:43.000000000","message":"\u003e It must support one source share server having multiple replicas simultaneously\n\nThis seems hand wavy. You don\u0027t intend to support this, but you\u0027re designing for this.\n\nAre you willing to implement fan out replication in one of our open source drivers?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"On success:"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Update the share server replica status as available and share server  replica state based on backed"},{"line_number":144,"context_line":"    return value."},{"line_number":145,"context_line":"* Update the destination share server status in the share_servers table to"},{"line_number":146,"context_line":"    inactive."}],"source_content_type":"text/x-rst","patch_set":7,"id":"6a7c97b0_8c62b7f4","line":143,"range":{"start_line":143,"start_character":95,"end_line":143,"end_character":101},"updated":"2026-06-04 04:17:38.000000000","message":"backend?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"On success:"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Update the share server replica status as available and share server  replica state based on backed"},{"line_number":144,"context_line":"    return value."},{"line_number":145,"context_line":"* Update the destination share server status in the share_servers table to"},{"line_number":146,"context_line":"    inactive."}],"source_content_type":"text/x-rst","patch_set":7,"id":"a4f7f260_2d45e68c","line":143,"range":{"start_line":143,"start_character":95,"end_line":143,"end_character":101},"in_reply_to":"6a7c97b0_8c62b7f4","updated":"2026-06-05 15:45:45.000000000","message":"This is already done.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"* If share server replica is not found, raise not-found exception."},{"line_number":238,"context_line":"* Deleting an active share server replica should show proper error message. The operator"},{"line_number":239,"context_line":"     must promote it to a different replica first before deleting it."},{"line_number":240,"context_line":"* Share server replica status is marked deleting in DB."},{"line_number":241,"context_line":"* When deleting a share server replica with force\u003dTrue, the OpenStack Manila database entry"},{"line_number":242,"context_line":"    for that share server replica should be deleted even if the share server replica is not deleted from"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9d89e8a7_e21d821a","line":239,"range":{"start_line":239,"start_character":18,"end_line":239,"end_character":36},"updated":"2026-06-04 04:17:38.000000000","message":"it\u0027s\n```suggestion\n     must promote its replica first before deleting it.\n```","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"* If share server replica is not found, raise not-found exception."},{"line_number":238,"context_line":"* Deleting an active share server replica should show proper error message. The operator"},{"line_number":239,"context_line":"     must promote it to a different replica first before deleting it."},{"line_number":240,"context_line":"* Share server replica status is marked deleting in DB."},{"line_number":241,"context_line":"* When deleting a share server replica with force\u003dTrue, the OpenStack Manila database entry"},{"line_number":242,"context_line":"    for that share server replica should be deleted even if the share server replica is not deleted from"}],"source_content_type":"text/x-rst","patch_set":7,"id":"57338ccb_98151136","line":239,"range":{"start_line":239,"start_character":18,"end_line":239,"end_character":36},"in_reply_to":"9d89e8a7_e21d821a","updated":"2026-06-05 15:45:45.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":464,"context_line":"Control path update during promote"},{"line_number":465,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"Share server promotion does not impact the IO path directly—the driver or"},{"line_number":468,"context_line":"backend manages the data-plane switch. However, the control path must be"},{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"}],"source_content_type":"text/x-rst","patch_set":7,"id":"604c54ee_75f3d95b","line":467,"range":{"start_line":467,"start_character":23,"end_line":467,"end_character":50},"updated":"2026-06-04 04:17:38.000000000","message":"What does this mean?\n\nAre we always expecting a non-disruptive switch?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":464,"context_line":"Control path update during promote"},{"line_number":465,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"Share server promotion does not impact the IO path directly—the driver or"},{"line_number":468,"context_line":"backend manages the data-plane switch. However, the control path must be"},{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"}],"source_content_type":"text/x-rst","patch_set":7,"id":"6d5fd8f7_85113676","line":467,"range":{"start_line":467,"start_character":51,"end_line":467,"end_character":63},"updated":"2026-06-02 20:50:28.000000000","message":"missing a blank space","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":464,"context_line":"Control path update during promote"},{"line_number":465,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"Share server promotion does not impact the IO path directly—the driver or"},{"line_number":468,"context_line":"backend manages the data-plane switch. However, the control path must be"},{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"}],"source_content_type":"text/x-rst","patch_set":7,"id":"df6b7032_427fd42d","line":467,"range":{"start_line":467,"start_character":23,"end_line":467,"end_character":50},"in_reply_to":"604c54ee_75f3d95b","updated":"2026-06-05 15:45:45.000000000","message":"yes. NetApp backend support that.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":464,"context_line":"Control path update during promote"},{"line_number":465,"context_line":"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"},{"line_number":466,"context_line":""},{"line_number":467,"context_line":"Share server promotion does not impact the IO path directly—the driver or"},{"line_number":468,"context_line":"backend manages the data-plane switch. However, the control path must be"},{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"}],"source_content_type":"text/x-rst","patch_set":7,"id":"8bf32734_fbc7b51b","line":467,"range":{"start_line":467,"start_character":51,"end_line":467,"end_character":63},"in_reply_to":"6d5fd8f7_85113676","updated":"2026-06-03 15:59:05.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"Share server promotion does not impact the IO path directly—the driver or"},{"line_number":468,"context_line":"backend manages the data-plane switch. However, the control path must be"},{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fb70eef7_65755763","line":470,"range":{"start_line":469,"start_character":58,"end_line":470,"end_character":16},"updated":"2026-06-04 04:17:38.000000000","message":"feels like block storage ops?\n\nyou mean: \"snapshot\", \"create_share_from_snapshot\", \"delete\", \"delete_snapshot\", \"update_access\" and so on..","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":466,"context_line":""},{"line_number":467,"context_line":"Share server promotion does not impact the IO path directly—the driver or"},{"line_number":468,"context_line":"backend manages the data-plane switch. However, the control path must be"},{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"}],"source_content_type":"text/x-rst","patch_set":7,"id":"fb17172c_1bf4fcf9","line":470,"range":{"start_line":469,"start_character":58,"end_line":470,"end_character":16},"in_reply_to":"fb70eef7_65755763","updated":"2026-06-05 15:45:45.000000000","message":"Yes, all the operation on share.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b63e8a37_c5c1456c","line":472,"updated":"2026-06-02 20:50:28.000000000","message":"this is important info, I\u0027d keep it","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":469,"context_line":"updated so that subsequent operations on share instances (resize, snapshot,"},{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"}],"source_content_type":"text/x-rst","patch_set":7,"id":"63007b0e_bf973564","line":472,"in_reply_to":"b63e8a37_c5c1456c","updated":"2026-06-03 15:59:05.000000000","message":"Sure, thanks, I removed only  ASCII workflow.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":476,"context_line":"   original share server record, while the system uses this pointer to"},{"line_number":477,"context_line":"   identify which backend server is currently active for operations."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"2. During share server replica creation, the pointer is initialized on the"},{"line_number":480,"context_line":"   root share server so the replication group has a defined active target from"},{"line_number":481,"context_line":"   the beginning. At this stage ``active_backend_share_server_id`` points to"},{"line_number":482,"context_line":"   the original server itself, and share instances in that replica topology"},{"line_number":483,"context_line":"   are marked ``share_server_replication_enabled\u003dTrue`` so later operations"},{"line_number":484,"context_line":"   know to use indirection."},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"3. During promote, the data plane is switched by the driver, and then the"},{"line_number":487,"context_line":"   control-plane pointer on the root server is updated to point to the"},{"line_number":488,"context_line":"   promoted share server replica\u0027s share server ID. This makes the promoted backend the"},{"line_number":489,"context_line":"   authoritative active target without rewriting"},{"line_number":490,"context_line":"   ``share_instance.share_server_id`` for existing shares."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"4. For share instance operations (extend, shrink, connection info, and"},{"line_number":493,"context_line":"   similar), the manager first checks whether replication is enabled for that"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bd41d7ef_5f31997d","line":490,"range":{"start_line":473,"start_character":0,"end_line":490,"end_character":58},"updated":"2026-06-04 04:17:38.000000000","message":"What\u0027s the advantage of doing this, vs, updating the share_server_id on the share instances?\n\nyour proposed approach looks like much to look up and toggle","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"3ca74f690bcafb058f8119dec0ff0a400763bb1c","unresolved":true,"context_lines":[{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":476,"context_line":"   original share server record, while the system uses this pointer to"},{"line_number":477,"context_line":"   identify which backend server is currently active for operations."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"2. During share server replica creation, the pointer is initialized on the"},{"line_number":480,"context_line":"   root share server so the replication group has a defined active target from"},{"line_number":481,"context_line":"   the beginning. At this stage ``active_backend_share_server_id`` points to"},{"line_number":482,"context_line":"   the original server itself, and share instances in that replica topology"},{"line_number":483,"context_line":"   are marked ``share_server_replication_enabled\u003dTrue`` so later operations"},{"line_number":484,"context_line":"   know to use indirection."},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"3. During promote, the data plane is switched by the driver, and then the"},{"line_number":487,"context_line":"   control-plane pointer on the root server is updated to point to the"},{"line_number":488,"context_line":"   promoted share server replica\u0027s share server ID. This makes the promoted backend the"},{"line_number":489,"context_line":"   authoritative active target without rewriting"},{"line_number":490,"context_line":"   ``share_instance.share_server_id`` for existing shares."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"4. For share instance operations (extend, shrink, connection info, and"},{"line_number":493,"context_line":"   similar), the manager first checks whether replication is enabled for that"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a6c3852c_6ad2790f","line":490,"range":{"start_line":473,"start_character":0,"end_line":490,"end_character":58},"in_reply_to":"06150013_c359bd81","updated":"2026-06-05 16:03:03.000000000","message":"Host name will be same for all the shares under share server so I think we can do \nbulk update in one db query.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":476,"context_line":"   original share server record, while the system uses this pointer to"},{"line_number":477,"context_line":"   identify which backend server is currently active for operations."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"2. During share server replica creation, the pointer is initialized on the"},{"line_number":480,"context_line":"   root share server so the replication group has a defined active target from"},{"line_number":481,"context_line":"   the beginning. At this stage ``active_backend_share_server_id`` points to"},{"line_number":482,"context_line":"   the original server itself, and share instances in that replica topology"},{"line_number":483,"context_line":"   are marked ``share_server_replication_enabled\u003dTrue`` so later operations"},{"line_number":484,"context_line":"   know to use indirection."},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"3. During promote, the data plane is switched by the driver, and then the"},{"line_number":487,"context_line":"   control-plane pointer on the root server is updated to point to the"},{"line_number":488,"context_line":"   promoted share server replica\u0027s share server ID. This makes the promoted backend the"},{"line_number":489,"context_line":"   authoritative active target without rewriting"},{"line_number":490,"context_line":"   ``share_instance.share_server_id`` for existing shares."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"4. For share instance operations (extend, shrink, connection info, and"},{"line_number":493,"context_line":"   similar), the manager first checks whether replication is enabled for that"}],"source_content_type":"text/x-rst","patch_set":7,"id":"8c20fe41_343a59e2","line":490,"range":{"start_line":473,"start_character":0,"end_line":490,"end_character":58},"in_reply_to":"77b3982f_f32a2f3d","updated":"2026-06-17 16:51:01.000000000","message":"Marked as resolved.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":true,"context_lines":[{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":476,"context_line":"   original share server record, while the system uses this pointer to"},{"line_number":477,"context_line":"   identify which backend server is currently active for operations."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"2. During share server replica creation, the pointer is initialized on the"},{"line_number":480,"context_line":"   root share server so the replication group has a defined active target from"},{"line_number":481,"context_line":"   the beginning. At this stage ``active_backend_share_server_id`` points to"},{"line_number":482,"context_line":"   the original server itself, and share instances in that replica topology"},{"line_number":483,"context_line":"   are marked ``share_server_replication_enabled\u003dTrue`` so later operations"},{"line_number":484,"context_line":"   know to use indirection."},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"3. During promote, the data plane is switched by the driver, and then the"},{"line_number":487,"context_line":"   control-plane pointer on the root server is updated to point to the"},{"line_number":488,"context_line":"   promoted share server replica\u0027s share server ID. This makes the promoted backend the"},{"line_number":489,"context_line":"   authoritative active target without rewriting"},{"line_number":490,"context_line":"   ``share_instance.share_server_id`` for existing shares."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"4. For share instance operations (extend, shrink, connection info, and"},{"line_number":493,"context_line":"   similar), the manager first checks whether replication is enabled for that"}],"source_content_type":"text/x-rst","patch_set":7,"id":"77b3982f_f32a2f3d","line":490,"range":{"start_line":473,"start_character":0,"end_line":490,"end_character":58},"in_reply_to":"a6c3852c_6ad2790f","updated":"2026-06-09 16:26:13.000000000","message":"I need to correct my previous comment. Each share instance has a unique hostname in the format host@backend#pool_name. While a share server can use the same backend, shares within that share server can be scheduled across different pools. Therefore, bulk updating each share instance individually is the only the approach. Will proceed with bulk update approach.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":true,"context_lines":[{"line_number":470,"context_line":"connection info, etc.) target the correct backend. The mechanism works through"},{"line_number":471,"context_line":"four steps:"},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"1. The ``active_backend_share_server_id`` column is introduced in the"},{"line_number":474,"context_line":"   ``share_servers`` table to make control-plane routing independent from the"},{"line_number":475,"context_line":"   static share instance mapping. A share instance continues to reference its"},{"line_number":476,"context_line":"   original share server record, while the system uses this pointer to"},{"line_number":477,"context_line":"   identify which backend server is currently active for operations."},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"2. During share server replica creation, the pointer is initialized on the"},{"line_number":480,"context_line":"   root share server so the replication group has a defined active target from"},{"line_number":481,"context_line":"   the beginning. At this stage ``active_backend_share_server_id`` points to"},{"line_number":482,"context_line":"   the original server itself, and share instances in that replica topology"},{"line_number":483,"context_line":"   are marked ``share_server_replication_enabled\u003dTrue`` so later operations"},{"line_number":484,"context_line":"   know to use indirection."},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"3. During promote, the data plane is switched by the driver, and then the"},{"line_number":487,"context_line":"   control-plane pointer on the root server is updated to point to the"},{"line_number":488,"context_line":"   promoted share server replica\u0027s share server ID. This makes the promoted backend the"},{"line_number":489,"context_line":"   authoritative active target without rewriting"},{"line_number":490,"context_line":"   ``share_instance.share_server_id`` for existing shares."},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"4. For share instance operations (extend, shrink, connection info, and"},{"line_number":493,"context_line":"   similar), the manager first checks whether replication is enabled for that"}],"source_content_type":"text/x-rst","patch_set":7,"id":"06150013_c359bd81","line":490,"range":{"start_line":473,"start_character":0,"end_line":490,"end_character":58},"in_reply_to":"bd41d7ef_5f31997d","updated":"2026-06-05 15:45:45.000000000","message":"With this approach, we update only a single entry in the share server table. In contrast, the bulk update approach requires updating multiple share instances, share groups, and other related locations, as we need to update both the share server and host(host entry can vary for each share instance) entries. If we have 40-60 shares under a share server, we would need to execute 40-60 database queries. Since these operations are not atomic as a group, if the share service crashes during the update process, the database could be left in a partially updated state.\n\nBut if updating 40-60 record doesn\u0027t take much time then we can go with bulk update approach as we discussed in last meeting.\n\nYes it is updating one pointer and based on that we an find the active share server id and host.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8a4c509a8059fca8fdbaf18bcaf30f6995ea6b55","unresolved":true,"context_lines":[{"line_number":524,"context_line":"    │"},{"line_number":525,"context_line":"    ▼"},{"line_number":526,"context_line":"  ┌─────────────────────────────────────────────────────────┐"},{"line_number":527,"context_line":"  │ Step 1: Create Replica Share Server Record             │"},{"line_number":528,"context_line":"  │ • host: \u003cnew_replica_host\u003e                              │"},{"line_number":529,"context_line":"  │ • Status: inactive                                      │"},{"line_number":530,"context_line":"  │ • active_backend_share_server_id: source.id             │"}],"source_content_type":"text/x-rst","patch_set":7,"id":"10ab1e09_f6b7d9b4","line":527,"range":{"start_line":527,"start_character":57,"end_line":527,"end_character":60},"updated":"2026-06-04 04:17:38.000000000","message":"broken diagram","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":524,"context_line":"    │"},{"line_number":525,"context_line":"    ▼"},{"line_number":526,"context_line":"  ┌─────────────────────────────────────────────────────────┐"},{"line_number":527,"context_line":"  │ Step 1: Create Replica Share Server Record             │"},{"line_number":528,"context_line":"  │ • host: \u003cnew_replica_host\u003e                              │"},{"line_number":529,"context_line":"  │ • Status: inactive                                      │"},{"line_number":530,"context_line":"  │ • active_backend_share_server_id: source.id             │"}],"source_content_type":"text/x-rst","patch_set":7,"id":"43028e80_1e509858","line":527,"range":{"start_line":527,"start_character":57,"end_line":527,"end_character":60},"in_reply_to":"10ab1e09_f6b7d9b4","updated":"2026-06-05 15:45:45.000000000","message":"I removed this now after Carlos comment.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":635,"context_line":"    +--------------------------------+------------+----------+-------------------------------+"},{"line_number":636,"context_line":"    | Field                          | Type       | Nullable | Notes                         |"},{"line_number":637,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":638,"context_line":"    | active_backend_share_server_id | string(36) | Yes      | FK to share_servers.id;       |"},{"line_number":639,"context_line":"    |                                |            |          | tracks which share server is  |"},{"line_number":640,"context_line":"    |                                |            |          | the active backend after a    |"},{"line_number":641,"context_line":"    |                                |            |          | promote operation. Initialized|"}],"source_content_type":"text/x-rst","patch_set":7,"id":"a4b364e1_0389e171","line":638,"range":{"start_line":638,"start_character":6,"end_line":638,"end_character":36},"updated":"2026-06-02 20:50:28.000000000","message":"I think we can find a more descriptive name to it. Not sure what is the impact of reusing the source_share_server_id field, but is that an alternative?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":635,"context_line":"    +--------------------------------+------------+----------+-------------------------------+"},{"line_number":636,"context_line":"    | Field                          | Type       | Nullable | Notes                         |"},{"line_number":637,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":638,"context_line":"    | active_backend_share_server_id | string(36) | Yes      | FK to share_servers.id;       |"},{"line_number":639,"context_line":"    |                                |            |          | tracks which share server is  |"},{"line_number":640,"context_line":"    |                                |            |          | the active backend after a    |"},{"line_number":641,"context_line":"    |                                |            |          | promote operation. Initialized|"}],"source_content_type":"text/x-rst","patch_set":7,"id":"ac227875_4cc7d45c","line":638,"range":{"start_line":638,"start_character":6,"end_line":638,"end_character":36},"in_reply_to":"51ef8997_bd3aa4e6","updated":"2026-06-09 16:26:13.000000000","message":"Resolving this comment as we not using the pointer based approach, we are using bulk update, so I am removing this column from share_servers table","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":635,"context_line":"    +--------------------------------+------------+----------+-------------------------------+"},{"line_number":636,"context_line":"    | Field                          | Type       | Nullable | Notes                         |"},{"line_number":637,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":638,"context_line":"    | active_backend_share_server_id | string(36) | Yes      | FK to share_servers.id;       |"},{"line_number":639,"context_line":"    |                                |            |          | tracks which share server is  |"},{"line_number":640,"context_line":"    |                                |            |          | the active backend after a    |"},{"line_number":641,"context_line":"    |                                |            |          | promote operation. Initialized|"}],"source_content_type":"text/x-rst","patch_set":7,"id":"51ef8997_bd3aa4e6","line":638,"range":{"start_line":638,"start_character":6,"end_line":638,"end_character":36},"in_reply_to":"a4b364e1_0389e171","updated":"2026-06-03 15:59:05.000000000","message":"source_share_server_id field can be updated only for replica, we can not update this for active replica. This column make sure what is the active backend share server for replica so that core should pass the correct SVM and host name to driver. If anyone has suggestions for a more descriptive name, please share it.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":644,"context_line":"    +--------------------------------+------------+----------+-------------------------------+"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"``share_instances`` table (existing table, new column added)::"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    +----------------------------------+---------+----------+------------------------------+"},{"line_number":650,"context_line":"    | Field                            | Type    | Nullable | Notes                        |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bb990949_c825d8cf","line":647,"range":{"start_line":647,"start_character":0,"end_line":647,"end_character":2},"updated":"2026-06-02 20:50:28.000000000","message":"still not sure about the: x replica will be replicated, y won\u0027t - how do we communicate that at share creation?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":644,"context_line":"    +--------------------------------+------------+----------+-------------------------------+"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"``share_instances`` table (existing table, new column added)::"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    +----------------------------------+---------+----------+------------------------------+"},{"line_number":650,"context_line":"    | Field                            | Type    | Nullable | Notes                        |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"787c2c9a_1dd125e2","line":647,"range":{"start_line":647,"start_character":0,"end_line":647,"end_character":2},"in_reply_to":"273dc1a2_ec303f53","updated":"2026-06-03 15:59:05.000000000","message":"There is 2 scenarios we are updating this fields \n- During share server replica creation, during this time based on include and exclude list, we will be creating the list of share which will be passed to driver and once replication is created successfully, we will be updating share_server_replication_enabled value to true for those share server.\n- During share share creation user can pass share_server_replication_enabled\u003dtrue/false as part of share meta data and once share created successfully we will be updating this value to true/false.\n\nWe are plnnaing to change share_server_replication_enabled field name to \"protected_via_share_server_replica\"","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0e5d23dc2c8e82f0c4eef406f7c9edeacaaadda5","unresolved":true,"context_lines":[{"line_number":644,"context_line":"    +--------------------------------+------------+----------+-------------------------------+"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"``share_instances`` table (existing table, new column added)::"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    +----------------------------------+---------+----------+------------------------------+"},{"line_number":650,"context_line":"    | Field                            | Type    | Nullable | Notes                        |"}],"source_content_type":"text/x-rst","patch_set":7,"id":"273dc1a2_ec303f53","line":647,"range":{"start_line":647,"start_character":0,"end_line":647,"end_character":2},"in_reply_to":"bb990949_c825d8cf","updated":"2026-06-02 20:58:01.000000000","message":"Actually in the spec too, but I still think that making this optional can be misleading.\n\nAlso, still on DB:\ncan we make something like the has_replicas property we have in the shares?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":742,"context_line":"    openstack share set --property share_server_replication_enabled\u003dtrue ..."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"REST API impact"},{"line_number":746,"context_line":"---------------"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"The resource will be exposed under ``/v2/{project_id}/share-server-replicas``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"721eac26_8b54bb59","line":745,"updated":"2026-06-02 20:50:28.000000000","message":"on the requests/responses, I think we can default to what is already our most common practices and just have the description, examples and possible return codes. This saves some reading in the spec and stays consistent to the other specifications. If we get too much into details, I\u0027m afraid we\u0027ll be exhausting code scenarios and adding too much implementation detail if we keep this as is.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"945262d8f38debb467ccee720dd75005b9fc527b","unresolved":false,"context_lines":[{"line_number":742,"context_line":"    openstack share set --property share_server_replication_enabled\u003dtrue ..."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"REST API impact"},{"line_number":746,"context_line":"---------------"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"The resource will be exposed under ``/v2/{project_id}/share-server-replicas``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"f068fe16_6514f5d5","line":745,"in_reply_to":"0a23dad5_77b3dd50","updated":"2026-06-11 05:42:05.000000000","message":"Thanks, closing this comment.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":true,"context_lines":[{"line_number":742,"context_line":"    openstack share set --property share_server_replication_enabled\u003dtrue ..."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"REST API impact"},{"line_number":746,"context_line":"---------------"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"The resource will be exposed under ``/v2/{project_id}/share-server-replicas``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"0a23dad5_77b3dd50","line":745,"in_reply_to":"2cce8a27_eb0857e6","updated":"2026-06-09 19:30:03.000000000","message":"I think the updates helped with the readability, so I\u0027m fine with it as is.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":742,"context_line":"    openstack share set --property share_server_replication_enabled\u003dtrue ..."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":""},{"line_number":745,"context_line":"REST API impact"},{"line_number":746,"context_line":"---------------"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"The resource will be exposed under ``/v2/{project_id}/share-server-replicas``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"2cce8a27_eb0857e6","line":745,"in_reply_to":"721eac26_8b54bb59","updated":"2026-06-03 15:59:05.000000000","message":"I followed the same structure as the backup_share.rst file, which includes both request and response sections. \nCould you please share the reference file? @ces.eduardo98@gmail.com","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":933,"context_line":"create, delete, promote, and resync."},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"Driver API"},{"line_number":936,"context_line":"~~~~~~~~~~"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"The driver interface is expected to expose the following methods:"},{"line_number":939,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"853b097f_b183dc56","line":936,"updated":"2026-06-02 20:50:28.000000000","message":"can we also simplify this?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":933,"context_line":"create, delete, promote, and resync."},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"Driver API"},{"line_number":936,"context_line":"~~~~~~~~~~"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"The driver interface is expected to expose the following methods:"},{"line_number":939,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"42172750_66c7e659","line":936,"in_reply_to":"21397665_b078d7a9","updated":"2026-06-05 15:45:45.000000000","message":"Marking resolved.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":933,"context_line":"create, delete, promote, and resync."},{"line_number":934,"context_line":""},{"line_number":935,"context_line":"Driver API"},{"line_number":936,"context_line":"~~~~~~~~~~"},{"line_number":937,"context_line":""},{"line_number":938,"context_line":"The driver interface is expected to expose the following methods:"},{"line_number":939,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"21397665_b078d7a9","line":936,"in_reply_to":"853b097f_b183dc56","updated":"2026-06-03 15:59:05.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":1318,"context_line":"Backends are expected to implement the actual share server replication mechanics and may"},{"line_number":1319,"context_line":"return model updates to influence the final share server replica status or share server replica state."},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"Expected SM-as NAS workflow details for NetApp-style active sync"},{"line_number":1322,"context_line":"implementations:"},{"line_number":1323,"context_line":""},{"line_number":1324,"context_line":"* Create:"},{"line_number":1325,"context_line":"    validate backend prerequisites (cluster peering, mediator readiness,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d8e9015f_c9c50d30","line":1322,"range":{"start_line":1321,"start_character":0,"end_line":1322,"end_character":16},"updated":"2026-06-02 20:50:28.000000000","message":"i understand the example with vendor details, but can we be more generic and agnostic?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":1318,"context_line":"Backends are expected to implement the actual share server replication mechanics and may"},{"line_number":1319,"context_line":"return model updates to influence the final share server replica status or share server replica state."},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"Expected SM-as NAS workflow details for NetApp-style active sync"},{"line_number":1322,"context_line":"implementations:"},{"line_number":1323,"context_line":""},{"line_number":1324,"context_line":"* Create:"},{"line_number":1325,"context_line":"    validate backend prerequisites (cluster peering, mediator readiness,"}],"source_content_type":"text/x-rst","patch_set":7,"id":"51bbcf00_e2726596","line":1322,"range":{"start_line":1321,"start_character":0,"end_line":1322,"end_character":16},"in_reply_to":"d8e9015f_c9c50d30","updated":"2026-06-03 15:59:05.000000000","message":"I removed this content after fixing the above comment (optimizing the driver API.)","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":1415,"context_line":"-----------"},{"line_number":1416,"context_line":""},{"line_number":1417,"context_line":"Primary assignee:"},{"line_number":1418,"context_line":"  None"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"Other contributors:"},{"line_number":1421,"context_line":"  None"}],"source_content_type":"text/x-rst","patch_set":7,"id":"d1b67db6_4da1cfd3","line":1418,"range":{"start_line":1418,"start_character":0,"end_line":1418,"end_character":2},"updated":"2026-06-02 20:50:28.000000000","message":"can you please add the NetApp team members that will work on the implementation under this?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":1415,"context_line":"-----------"},{"line_number":1416,"context_line":""},{"line_number":1417,"context_line":"Primary assignee:"},{"line_number":1418,"context_line":"  None"},{"line_number":1419,"context_line":""},{"line_number":1420,"context_line":"Other contributors:"},{"line_number":1421,"context_line":"  None"}],"source_content_type":"text/x-rst","patch_set":7,"id":"42035871_814fea4f","line":1418,"range":{"start_line":1418,"start_character":0,"end_line":1418,"end_character":2},"in_reply_to":"d1b67db6_4da1cfd3","updated":"2026-06-03 15:59:05.000000000","message":"Done","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":1430,"context_line":"* Add backend driver hooks for create, delete, promote, and resync."},{"line_number":1431,"context_line":"* Add python-manilaclient v2 manager support and OSC commands."},{"line_number":1432,"context_line":"* Add unit tests and tempest coverage for the new API."},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"Dependencies"},{"line_number":1436,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"701b4935_af1d8307","line":1433,"updated":"2026-06-02 20:50:28.000000000","message":"maybe also add share metadata and quotas work?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":1430,"context_line":"* Add backend driver hooks for create, delete, promote, and resync."},{"line_number":1431,"context_line":"* Add python-manilaclient v2 manager support and OSC commands."},{"line_number":1432,"context_line":"* Add unit tests and tempest coverage for the new API."},{"line_number":1433,"context_line":""},{"line_number":1434,"context_line":""},{"line_number":1435,"context_line":"Dependencies"},{"line_number":1436,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":7,"id":"b8da6601_86bcf570","line":1433,"in_reply_to":"701b4935_af1d8307","updated":"2026-06-03 15:59:05.000000000","message":"Added below line \nAdd share server replica metadata support and quota enforcement.\n\nShare meta data support is already in core but added database migration for share_instance and share_servers.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":1435,"context_line":"Dependencies"},{"line_number":1436,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"* Manila API microversion 2.96 (``MIN_SUPPORTED_API_VERSION`` for all"},{"line_number":1439,"context_line":"  share server replica endpoints)."},{"line_number":1440,"context_line":"* Corresponding python-manilaclient support."},{"line_number":1441,"context_line":"* Backend drivers that can implement server-level replication workflows."},{"line_number":1442,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"a45125c5_eef441af","line":1439,"range":{"start_line":1438,"start_character":1,"end_line":1439,"end_character":34},"updated":"2026-06-02 20:50:28.000000000","message":"2.96 is migration graduation - is there a relationship? if this is referring as this spec bumping the code to a specific api version, this is hard to control as other changes might land first. If that\u0027s the case, I\u0027d keep this mention out of the spec.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":false,"context_lines":[{"line_number":1435,"context_line":"Dependencies"},{"line_number":1436,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"* Manila API microversion 2.96 (``MIN_SUPPORTED_API_VERSION`` for all"},{"line_number":1439,"context_line":"  share server replica endpoints)."},{"line_number":1440,"context_line":"* Corresponding python-manilaclient support."},{"line_number":1441,"context_line":"* Backend drivers that can implement server-level replication workflows."},{"line_number":1442,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"fc595bbf_2a1cc0b0","line":1439,"range":{"start_line":1438,"start_character":1,"end_line":1439,"end_character":34},"in_reply_to":"a45125c5_eef441af","updated":"2026-06-03 15:59:05.000000000","message":"As of now I have change it to 2.xx.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fc6be011793652ba16b9a80da7e458eb8977810b","unresolved":true,"context_lines":[{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"* Manila API microversion 2.96 (``MIN_SUPPORTED_API_VERSION`` for all"},{"line_number":1439,"context_line":"  share server replica endpoints)."},{"line_number":1440,"context_line":"* Corresponding python-manilaclient support."},{"line_number":1441,"context_line":"* Backend drivers that can implement server-level replication workflows."},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"15dfdeb2_4ff21852","line":1440,"range":{"start_line":1440,"start_character":0,"end_line":1440,"end_character":2},"updated":"2026-06-02 20:50:28.000000000","message":"this should be alongside, so not a dependency?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"5499ec15945ef9ead5b1670d46b54cdcdd2e7df1","unresolved":true,"context_lines":[{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"* Manila API microversion 2.96 (``MIN_SUPPORTED_API_VERSION`` for all"},{"line_number":1439,"context_line":"  share server replica endpoints)."},{"line_number":1440,"context_line":"* Corresponding python-manilaclient support."},{"line_number":1441,"context_line":"* Backend drivers that can implement server-level replication workflows."},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9f1c909e_59107787","line":1440,"range":{"start_line":1440,"start_character":0,"end_line":1440,"end_character":2},"in_reply_to":"15dfdeb2_4ff21852","updated":"2026-06-03 15:59:05.000000000","message":"I added this dependency because we need CLI support to both \ncomplete and test this feature. Let me know if you wanted me to remove this ..?","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":1437,"context_line":""},{"line_number":1438,"context_line":"* Manila API microversion 2.96 (``MIN_SUPPORTED_API_VERSION`` for all"},{"line_number":1439,"context_line":"  share server replica endpoints)."},{"line_number":1440,"context_line":"* Corresponding python-manilaclient support."},{"line_number":1441,"context_line":"* Backend drivers that can implement server-level replication workflows."},{"line_number":1442,"context_line":""},{"line_number":1443,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"71631dbe_e8afbe06","line":1440,"range":{"start_line":1440,"start_character":0,"end_line":1440,"end_character":2},"in_reply_to":"9f1c909e_59107787","updated":"2026-06-09 16:26:13.000000000","message":"I am closing this. Feel free to open a comment if you still need further changes in this section.","commit_id":"999a5dd9946bbe27d50fdbc915b238aea5391643"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"52c94c30a5280e98aa41e5a377b75fcbb264983c","unresolved":true,"context_lines":[{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/share-server-replica"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration difficult. This specification introduces a first-class"},{"line_number":17,"context_line":"share server replica resource in Manila so administrators can create, inspect,"},{"line_number":18,"context_line":"update, promote, resync, and delete share server replicas through standard APIs"}],"source_content_type":"text/x-rst","patch_set":8,"id":"cb0170c8_9dec34a1","line":15,"range":{"start_line":14,"start_character":14,"end_line":15,"end_character":16},"updated":"2026-06-04 04:21:47.000000000","message":"The way you write this conveys a different meaning to people familiar with OpenStack and Manila. \n\nWhat you mean is:\n\n\n```\nToday, some storage systems may be able to replicate share servers via native automation. There is however no way to drive this from OpenStack Manila.\n```","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"212988b2bc7543874d5471afaa7f8a542e6e4ac2","unresolved":false,"context_lines":[{"line_number":11,"context_line":"Blueprint: https://blueprints.launchpad.net/manila/+spec/share-server-replica"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Operators need a Manila-native way to manage disaster recovery at the share"},{"line_number":14,"context_line":"server layer. Today, share server replication workflows are largely"},{"line_number":15,"context_line":"backend-specific, which makes failover orchestration, operational visibility,"},{"line_number":16,"context_line":"and day-2 administration difficult. This specification introduces a first-class"},{"line_number":17,"context_line":"share server replica resource in Manila so administrators can create, inspect,"},{"line_number":18,"context_line":"update, promote, resync, and delete share server replicas through standard APIs"}],"source_content_type":"text/x-rst","patch_set":8,"id":"84e381f9_8a0340d4","line":15,"range":{"start_line":14,"start_character":14,"end_line":15,"end_character":16},"in_reply_to":"cb0170c8_9dec34a1","updated":"2026-06-05 15:45:45.000000000","message":"Done","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"88bfd249db5cc5cfdcc56a75eb85d3891d487abc","unresolved":true,"context_lines":[{"line_number":745,"context_line":"* All other users must not have permission to execute share server"},{"line_number":746,"context_line":"  replication-related CLI commands or APIs."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"In addition to the new share server replica endpoints, the"},{"line_number":749,"context_line":"following changes to existing APIs are required to enable the"},{"line_number":750,"context_line":"share server replica workflow:"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"* The share server ID must be visible in"},{"line_number":753,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":754,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":755,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":756,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":757,"context_line":"  hosted by the specified share server."},{"line_number":758,"context_line":""},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"e3b8809e_55c2aafd","line":757,"range":{"start_line":748,"start_character":0,"end_line":757,"end_character":39},"updated":"2026-06-05 16:39:41.000000000","message":"@gouthampravi@gmail.com and @ces.eduardo98@gmail.com, could you please provide your comments on this.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":745,"context_line":"* All other users must not have permission to execute share server"},{"line_number":746,"context_line":"  replication-related CLI commands or APIs."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"In addition to the new share server replica endpoints, the"},{"line_number":749,"context_line":"following changes to existing APIs are required to enable the"},{"line_number":750,"context_line":"share server replica workflow:"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"* The share server ID must be visible in"},{"line_number":753,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":754,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":755,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":756,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":757,"context_line":"  hosted by the specified share server."},{"line_number":758,"context_line":""},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"cf1e7325_18ca5bb0","line":757,"range":{"start_line":748,"start_character":0,"end_line":757,"end_character":39},"in_reply_to":"0cc13337_6db8a144","updated":"2026-06-17 16:51:01.000000000","message":"Thanks for the comment, closing this","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":true,"context_lines":[{"line_number":745,"context_line":"* All other users must not have permission to execute share server"},{"line_number":746,"context_line":"  replication-related CLI commands or APIs."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"In addition to the new share server replica endpoints, the"},{"line_number":749,"context_line":"following changes to existing APIs are required to enable the"},{"line_number":750,"context_line":"share server replica workflow:"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"* The share server ID must be visible in"},{"line_number":753,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":754,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":755,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":756,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":757,"context_line":"  hosted by the specified share server."},{"line_number":758,"context_line":""},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ab2df767_81f7b1c3","line":757,"range":{"start_line":748,"start_character":0,"end_line":757,"end_character":39},"in_reply_to":"56a03f79_5d44419f","updated":"2026-06-18 13:43:41.000000000","message":"As discussed, customer can achieve this by modifying role define in policy.yaml file. @maurice.escher@sap.com, let us know if you have any comment here.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"25f61bca3b86ec1fcf55d634ee2ef64d08607c79","unresolved":false,"context_lines":[{"line_number":745,"context_line":"* All other users must not have permission to execute share server"},{"line_number":746,"context_line":"  replication-related CLI commands or APIs."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"In addition to the new share server replica endpoints, the"},{"line_number":749,"context_line":"following changes to existing APIs are required to enable the"},{"line_number":750,"context_line":"share server replica workflow:"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"* The share server ID must be visible in"},{"line_number":753,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":754,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":755,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":756,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":757,"context_line":"  hosted by the specified share server."},{"line_number":758,"context_line":""},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"e1798135_c3af5a49","line":757,"range":{"start_line":748,"start_character":0,"end_line":757,"end_character":39},"in_reply_to":"ab2df767_81f7b1c3","updated":"2026-06-19 18:37:42.000000000","message":"Din\u0027t hear anything from Maurice, so closing this comment.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7294e19352aaf83f2e38bf944911486f3e041970","unresolved":true,"context_lines":[{"line_number":745,"context_line":"* All other users must not have permission to execute share server"},{"line_number":746,"context_line":"  replication-related CLI commands or APIs."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"In addition to the new share server replica endpoints, the"},{"line_number":749,"context_line":"following changes to existing APIs are required to enable the"},{"line_number":750,"context_line":"share server replica workflow:"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"* The share server ID must be visible in"},{"line_number":753,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":754,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":755,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":756,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":757,"context_line":"  hosted by the specified share server."},{"line_number":758,"context_line":""},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"56a03f79_5d44419f","line":757,"range":{"start_line":748,"start_character":0,"end_line":757,"end_character":39},"in_reply_to":"cf1e7325_18ca5bb0","updated":"2026-06-18 05:00:12.000000000","message":"Marked as unresolved.","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":745,"context_line":"* All other users must not have permission to execute share server"},{"line_number":746,"context_line":"  replication-related CLI commands or APIs."},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"In addition to the new share server replica endpoints, the"},{"line_number":749,"context_line":"following changes to existing APIs are required to enable the"},{"line_number":750,"context_line":"share server replica workflow:"},{"line_number":751,"context_line":""},{"line_number":752,"context_line":"* The share server ID must be visible in"},{"line_number":753,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":754,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":755,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":756,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":757,"context_line":"  hosted by the specified share server."},{"line_number":758,"context_line":""},{"line_number":759,"context_line":""},{"line_number":760,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":8,"id":"0cc13337_6db8a144","line":757,"range":{"start_line":748,"start_character":0,"end_line":757,"end_character":39},"in_reply_to":"e3b8809e_55c2aafd","updated":"2026-06-17 06:18:33.000000000","message":"Okay, that was my suggestion, unsure what else we need to align on?","commit_id":"6426d5efe153fba102b6a4c2f0835d89814f5bf7"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"3208d8705012bbaafa102f140cba6f17fd138882","unresolved":true,"context_lines":[{"line_number":292,"context_line":"   instance-to-server references."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Unplaned failover workflow"},{"line_number":296,"context_line":"--------------------------"},{"line_number":297,"context_line":"1. A \u0027periodic_unplanned_failover_check\u0027 method will be added to the manager,"},{"line_number":298,"context_line":"   which will be invoked at a configurable periodic interval."}],"source_content_type":"text/x-rst","patch_set":9,"id":"a09e09f4_da1c55c8","line":295,"updated":"2026-06-08 16:31:42.000000000","message":"```suggestion\nUnplanned failover workflow\n```","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":292,"context_line":"   instance-to-server references."},{"line_number":293,"context_line":""},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"Unplaned failover workflow"},{"line_number":296,"context_line":"--------------------------"},{"line_number":297,"context_line":"1. A \u0027periodic_unplanned_failover_check\u0027 method will be added to the manager,"},{"line_number":298,"context_line":"   which will be invoked at a configurable periodic interval."}],"source_content_type":"text/x-rst","patch_set":9,"id":"fc03a0fa_1e717e90","line":295,"in_reply_to":"a09e09f4_da1c55c8","updated":"2026-06-09 16:26:13.000000000","message":"Done","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"3208d8705012bbaafa102f140cba6f17fd138882","unresolved":true,"context_lines":[{"line_number":295,"context_line":"Unplaned failover workflow"},{"line_number":296,"context_line":"--------------------------"},{"line_number":297,"context_line":"1. A \u0027periodic_unplanned_failover_check\u0027 method will be added to the manager,"},{"line_number":298,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":299,"context_line":"2. The manager makes a call to the driver and checks if any"},{"line_number":300,"context_line":"   failover has occurred. The driver needs to add logic to detect"},{"line_number":301,"context_line":"   if a failover happens in the backend and return the failover"}],"source_content_type":"text/x-rst","patch_set":9,"id":"a0b0b8a4_87790acc","line":298,"updated":"2026-06-08 16:31:42.000000000","message":"Lets name the interval key, this must be different from replica_state_update_interval.","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"8ad7ce4c6fe393fc8d0752a6f6e87d0a0dc0e6e8","unresolved":false,"context_lines":[{"line_number":295,"context_line":"Unplaned failover workflow"},{"line_number":296,"context_line":"--------------------------"},{"line_number":297,"context_line":"1. A \u0027periodic_unplanned_failover_check\u0027 method will be added to the manager,"},{"line_number":298,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":299,"context_line":"2. The manager makes a call to the driver and checks if any"},{"line_number":300,"context_line":"   failover has occurred. The driver needs to add logic to detect"},{"line_number":301,"context_line":"   if a failover happens in the backend and return the failover"}],"source_content_type":"text/x-rst","patch_set":9,"id":"69ffd262_490b1176","line":298,"in_reply_to":"a0b0b8a4_87790acc","updated":"2026-06-09 16:26:13.000000000","message":"I have changeed it to \"unplanned_failover_check_interval\"","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"3208d8705012bbaafa102f140cba6f17fd138882","unresolved":true,"context_lines":[{"line_number":659,"context_line":"Drivers that want to support share server replication must implement the"},{"line_number":660,"context_line":"following driver hooks in the share driver interface:"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":".. code-block:: python"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":665,"context_line":"                                    share_server_replica_list,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"308ddceb_a76ac158","line":662,"updated":"2026-06-08 16:31:42.000000000","message":"This section needs to be enhanced to provide params and return values and with examples.\nExample reference: https://wiki.openstack.org/wiki/Manila/design/manila-mitaka-data-replication#Driver_API","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"945262d8f38debb467ccee720dd75005b9fc527b","unresolved":false,"context_lines":[{"line_number":659,"context_line":"Drivers that want to support share server replication must implement the"},{"line_number":660,"context_line":"following driver hooks in the share driver interface:"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":".. code-block:: python"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":665,"context_line":"                                    share_server_replica_list,"}],"source_content_type":"text/x-rst","patch_set":9,"id":"73277e94_5e8af827","line":662,"in_reply_to":"308ddceb_a76ac158","updated":"2026-06-11 05:42:05.000000000","message":"Carloss gave the comment not provide so much of details for the drive method like details of input parameter with example etc, I have removed those. For return param instead of providing the example I have added descriptions explaining what each method should return.","commit_id":"8c02f3b2ade1e7abc6342a88864f22b62f432efc"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":true,"context_lines":[{"line_number":101,"context_line":"    [backend-b]"},{"line_number":102,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Note: To support ``server_replication_domain``, a custom filter"},{"line_number":105,"context_line":"``ShareServerReplicationFilter`` needs to be created in the scheduler. See"},{"line_number":106,"context_line":"``Scheduler changes`` below."},{"line_number":107,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"e1134388_c41bed01","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":4},"updated":"2026-06-09 19:30:03.000000000","message":"nit: please use .. note: formatting","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"945262d8f38debb467ccee720dd75005b9fc527b","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    [backend-b]"},{"line_number":102,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Note: To support ``server_replication_domain``, a custom filter"},{"line_number":105,"context_line":"``ShareServerReplicationFilter`` needs to be created in the scheduler. See"},{"line_number":106,"context_line":"``Scheduler changes`` below."},{"line_number":107,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"4818b3bf_46f33aae","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":4},"in_reply_to":"e1134388_c41bed01","updated":"2026-06-11 05:42:05.000000000","message":"Done","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":true,"context_lines":[{"line_number":727,"context_line":"share server replica workflow:"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"* The share server ID must be visible in"},{"line_number":730,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":731,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":732,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":733,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3ac67b3e_1347da97","line":730,"range":{"start_line":730,"start_character":31,"end_line":730,"end_character":49},"updated":"2026-06-09 19:30:03.000000000","message":"isn\u0027t it tenant users, or member/reader role?","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"945262d8f38debb467ccee720dd75005b9fc527b","unresolved":false,"context_lines":[{"line_number":727,"context_line":"share server replica workflow:"},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"* The share server ID must be visible in"},{"line_number":730,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":731,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":732,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":733,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"}],"source_content_type":"text/x-rst","patch_set":10,"id":"1d6234a8_2ab33f51","line":730,"range":{"start_line":730,"start_character":31,"end_line":730,"end_character":49},"in_reply_to":"3ac67b3e_1347da97","updated":"2026-06-11 05:42:05.000000000","message":"Since we plan to display the share server ID, we want this feature to be available only to admin tenant users, not other users.","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d9e10510038ef25659fae6afeb6d51b805644e5e","unresolved":true,"context_lines":[{"line_number":728,"context_line":""},{"line_number":729,"context_line":"* The share server ID must be visible in"},{"line_number":730,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":731,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":732,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":733,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":734,"context_line":"  hosted by the specified share server."},{"line_number":735,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"7ea017f1_51c6a749","line":732,"range":{"start_line":731,"start_character":0,"end_line":732,"end_character":74},"updated":"2026-06-09 19:30:03.000000000","message":"this change is intended for admins too?","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"945262d8f38debb467ccee720dd75005b9fc527b","unresolved":false,"context_lines":[{"line_number":728,"context_line":""},{"line_number":729,"context_line":"* The share server ID must be visible in"},{"line_number":730,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":731,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":732,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":733,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":734,"context_line":"  hosted by the specified share server."},{"line_number":735,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"816292dc_e158a9df","line":732,"range":{"start_line":731,"start_character":0,"end_line":732,"end_character":74},"in_reply_to":"7ea017f1_51c6a749","updated":"2026-06-11 05:42:05.000000000","message":"For cloud admin already support this, I have added below sentence before this.\n\nIn addition to the new share server replica endpoints, the following API changes are\nrequired to enable the share server replica workflow to display the share server ID\nto tenant admin users, this is already supported for cloud admin users.","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a51ea7d1245ac82f553a818df9a514b875890f40","unresolved":false,"context_lines":[{"line_number":728,"context_line":""},{"line_number":729,"context_line":"* The share server ID must be visible in"},{"line_number":730,"context_line":"  ``openstack share show`` for admin-tenant users."},{"line_number":731,"context_line":"* ``openstack share server list`` must list only the share servers that belong"},{"line_number":732,"context_line":"  to the calling tenant for tenant admin users (not cross-tenant servers)."},{"line_number":733,"context_line":"* ``openstack share list --share-server \u003cshare-server\u003e`` must list all shares"},{"line_number":734,"context_line":"  hosted by the specified share server."},{"line_number":735,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"b8441e2f_4b1b503a","line":732,"range":{"start_line":731,"start_character":0,"end_line":732,"end_character":74},"in_reply_to":"816292dc_e158a9df","updated":"2026-06-11 14:49:37.000000000","message":"maybe we should add a --all-tenants flag then","commit_id":"4630e857fb118bdc74fcfbfcc87d5009df532c9f"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":44,"context_line":"Use Cases"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. An administrator wants to create and delete a standby share server"},{"line_number":48,"context_line":"   replica of an active share server on a target backend host."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. An administrator wants to promote an in-sync share server replica to"},{"line_number":51,"context_line":"   active during a failover event or planned maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"286d6169_9450ef5f","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":62},"updated":"2026-06-12 14:10:25.000000000","message":"We should add context to policy based replication management.\n\n\"An administrator wants to create sync/async replica of an active share server\" can be #1 and #2 can be to delete.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":44,"context_line":"Use Cases"},{"line_number":45,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"1. An administrator wants to create and delete a standby share server"},{"line_number":48,"context_line":"   replica of an active share server on a target backend host."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"2. An administrator wants to promote an in-sync share server replica to"},{"line_number":51,"context_line":"   active during a failover event or planned maintenance."}],"source_content_type":"text/x-rst","patch_set":11,"id":"b5ea78b6_3ca2ebbf","line":48,"range":{"start_line":47,"start_character":0,"end_line":48,"end_character":62},"in_reply_to":"286d6169_9450ef5f","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":56,"context_line":"4. An operator wants to list and inspect share server replica status, state,"},{"line_number":57,"context_line":"   host, and replication policy for troubleshooting and monitoring."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"5. An operator wants to inspect a share instance to check if it is part of a"},{"line_number":60,"context_line":"   share server replica."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"f57b178a_4dfa7d14","line":60,"range":{"start_line":59,"start_character":3,"end_line":60,"end_character":24},"updated":"2026-06-12 14:10:25.000000000","message":"Another missing use case - An operator wants to protect/unprotect a share via share server replication.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":56,"context_line":"4. An operator wants to list and inspect share server replica status, state,"},{"line_number":57,"context_line":"   host, and replication policy for troubleshooting and monitoring."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"5. An operator wants to inspect a share instance to check if it is part of a"},{"line_number":60,"context_line":"   share server replica."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"b5b725a7_687d5600","line":60,"range":{"start_line":59,"start_character":3,"end_line":60,"end_character":24},"in_reply_to":"f57b178a_4dfa7d14","updated":"2026-06-13 11:53:40.000000000","message":"This will be specific to driver side implementation, we are not introducing any API changes here, so I have not added it.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":63,"context_line":"Proposed change"},{"line_number":64,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Below are the purposed changes to support the share server replication."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Create a share server replica for a share server on a target availability"},{"line_number":69,"context_line":"  Zone."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1ef00ed6_0e3f3d6b","line":66,"range":{"start_line":66,"start_character":14,"end_line":66,"end_character":22},"updated":"2026-06-12 14:10:25.000000000","message":"proposed - typo","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":63,"context_line":"Proposed change"},{"line_number":64,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Below are the purposed changes to support the share server replication."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Create a share server replica for a share server on a target availability"},{"line_number":69,"context_line":"  Zone."}],"source_content_type":"text/x-rst","patch_set":11,"id":"26276714_a7babd28","line":66,"range":{"start_line":66,"start_character":14,"end_line":66,"end_character":22},"in_reply_to":"1ef00ed6_0e3f3d6b","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Below are the purposed changes to support the share server replication."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Create a share server replica for a share server on a target availability"},{"line_number":69,"context_line":"  Zone."},{"line_number":70,"context_line":"* List share server replicas, optionally filtered by source share server."},{"line_number":71,"context_line":"* Show a share server replica."},{"line_number":72,"context_line":"* Update share server replica metadata, replica state, and status."}],"source_content_type":"text/x-rst","patch_set":11,"id":"87df3225_6fc4aa42","line":69,"range":{"start_line":68,"start_character":2,"end_line":69,"end_character":7},"updated":"2026-06-12 14:10:25.000000000","message":"Create a share server replica with metadata","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Below are the purposed changes to support the share server replication."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Create a share server replica for a share server on a target availability"},{"line_number":69,"context_line":"  Zone."},{"line_number":70,"context_line":"* List share server replicas, optionally filtered by source share server."},{"line_number":71,"context_line":"* Show a share server replica."},{"line_number":72,"context_line":"* Update share server replica metadata, replica state, and status."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1e9fb651_5dc589df","line":69,"range":{"start_line":68,"start_character":2,"end_line":69,"end_character":7},"in_reply_to":"87df3225_6fc4aa42","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"* Share server should exist and be in available state."},{"line_number":142,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":143,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":144,"context_line":"  existing share backup."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Destination Share Server Creation"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"4de2b5c1_e23ee261","line":144,"range":{"start_line":143,"start_character":2,"end_line":144,"end_character":24},"updated":"2026-06-12 14:10:25.000000000","message":"Why is this limitation coming into core? Should this not be a driver call?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"* Share server should exist and be in available state."},{"line_number":142,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":143,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":144,"context_line":"  existing share backup."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Destination Share Server Creation"},{"line_number":147,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"35e64888_5d95ec1c","line":144,"range":{"start_line":143,"start_character":2,"end_line":144,"end_character":24},"in_reply_to":"4de2b5c1_e23ee261","updated":"2026-06-13 11:53:40.000000000","message":"We have this restriction for the share replica in core, same are decided to implement for share server replica.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":143,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":144,"context_line":"  existing share backup."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Destination Share Server Creation"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* Add a database record for the destination share server in the"},{"line_number":149,"context_line":"  ``share_servers`` table with status set to creating."}],"source_content_type":"text/x-rst","patch_set":11,"id":"48f950da_45e79665","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":33},"updated":"2026-06-12 14:10:25.000000000","message":"Should we mention that the share server replica shares will not be created as share instances?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"b3f44a712cf18e83b63c91bea8a7240a50e59db3","unresolved":true,"context_lines":[{"line_number":143,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":144,"context_line":"  existing share backup."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Destination Share Server Creation"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* Add a database record for the destination share server in the"},{"line_number":149,"context_line":"  ``share_servers`` table with status set to creating."}],"source_content_type":"text/x-rst","patch_set":11,"id":"6f8bcd97_941cfc47","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":33},"in_reply_to":"1e75187d_1fbf1d4d","updated":"2026-06-15 05:48:19.000000000","message":"Please mention that in the spec.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":143,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":144,"context_line":"  existing share backup."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Destination Share Server Creation"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* Add a database record for the destination share server in the"},{"line_number":149,"context_line":"  ``share_servers`` table with status set to creating."}],"source_content_type":"text/x-rst","patch_set":11,"id":"1e75187d_1fbf1d4d","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":33},"in_reply_to":"48f950da_45e79665","updated":"2026-06-13 11:53:40.000000000","message":"Because the destination share server will be in an inactive state, it will be excluded from share instance creation.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":false,"context_lines":[{"line_number":143,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":144,"context_line":"  existing share backup."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Destination Share Server Creation"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* Add a database record for the destination share server in the"},{"line_number":149,"context_line":"  ``share_servers`` table with status set to creating."}],"source_content_type":"text/x-rst","patch_set":11,"id":"62d5844e_5d0ea2a9","line":146,"range":{"start_line":146,"start_character":0,"end_line":146,"end_character":33},"in_reply_to":"6f8bcd97_941cfc47","updated":"2026-06-16 16:46:22.000000000","message":"Added it here.\nUpdate the destination share server status in the ``share_servers`` table to\n  ``inactive``. Because the destination share server will be in an inactive\n  state, it will be excluded from share instance creation.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":190,"context_line":"  The operator must promote the replica before deleting it."},{"line_number":191,"context_line":"* Share server replica status is marked ``deleting`` in DB."},{"line_number":192,"context_line":"* When deleting a share server replica with ``force\u003dTrue``, the OpenStack"},{"line_number":193,"context_line":"  Manila database entry for that share server replica should be deleted even"},{"line_number":194,"context_line":"  if the share server replica is not deleted from the backend."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Make Driver Call"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"2d6ccfec_86338b04","line":194,"range":{"start_line":193,"start_character":24,"end_line":194,"end_character":62},"updated":"2026-06-12 14:10:25.000000000","message":"Manager will try to delete the share server replica via driver and irrespective of success/failure the manila database entry will be deleted.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":190,"context_line":"  The operator must promote the replica before deleting it."},{"line_number":191,"context_line":"* Share server replica status is marked ``deleting`` in DB."},{"line_number":192,"context_line":"* When deleting a share server replica with ``force\u003dTrue``, the OpenStack"},{"line_number":193,"context_line":"  Manila database entry for that share server replica should be deleted even"},{"line_number":194,"context_line":"  if the share server replica is not deleted from the backend."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"Make Driver Call"},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"c5403e97_2825434c","line":194,"range":{"start_line":193,"start_character":24,"end_line":194,"end_character":62},"in_reply_to":"2d6ccfec_86338b04","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":222,"context_line":"At API and manager level, the expected sequence is:"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* Share server replica must exist."},{"line_number":225,"context_line":"* Share server replica must not be active."},{"line_number":226,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":227,"context_line":"  driver-specific resync."},{"line_number":228,"context_line":"* Manager updates DB after driver returns."}],"source_content_type":"text/x-rst","patch_set":11,"id":"7dfea675_db3a5eeb","line":225,"range":{"start_line":225,"start_character":23,"end_line":225,"end_character":42},"updated":"2026-06-12 14:10:25.000000000","message":"I think resync should work with active share server replicas as well. For eg, this may be used in case of async replication to sync the snapshots from site A to site B.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"5908729f381b4b9da54e68b7528e2b86dc19196a","unresolved":false,"context_lines":[{"line_number":222,"context_line":"At API and manager level, the expected sequence is:"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"* Share server replica must exist."},{"line_number":225,"context_line":"* Share server replica must not be active."},{"line_number":226,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":227,"context_line":"  driver-specific resync."},{"line_number":228,"context_line":"* Manager updates DB after driver returns."}],"source_content_type":"text/x-rst","patch_set":11,"id":"97ab14a7_9a218eb6","line":225,"range":{"start_line":225,"start_character":23,"end_line":225,"end_character":42},"in_reply_to":"7dfea675_db3a5eeb","updated":"2026-06-12 15:27:20.000000000","message":"ONTAP invokes sync/transfers from destination which is siteB(pull mechanism). This is same fore share replica also. Existing statement is correct. \nActive replica can have multiple destinations as well","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"At API and manager level, the expected sequence is:"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"* Share server replica must exist."},{"line_number":249,"context_line":"* Share server replica must not be active."},{"line_number":250,"context_line":"* Share server replica must be ``in_sync``."},{"line_number":251,"context_line":"* Set share server replica state to ``replication_change``."}],"source_content_type":"text/x-rst","patch_set":11,"id":"232a4efe_6ec85a5b","line":248,"range":{"start_line":248,"start_character":23,"end_line":248,"end_character":34},"updated":"2026-06-12 14:10:25.000000000","message":"must exist and be active?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":245,"context_line":""},{"line_number":246,"context_line":"At API and manager level, the expected sequence is:"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"* Share server replica must exist."},{"line_number":249,"context_line":"* Share server replica must not be active."},{"line_number":250,"context_line":"* Share server replica must be ``in_sync``."},{"line_number":251,"context_line":"* Set share server replica state to ``replication_change``."}],"source_content_type":"text/x-rst","patch_set":11,"id":"9b9135fa_08fc8f8e","line":248,"range":{"start_line":248,"start_character":23,"end_line":248,"end_character":34},"in_reply_to":"232a4efe_6ec85a5b","updated":"2026-06-13 11:53:40.000000000","message":"Will add below\nmust exist and available status","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":273,"context_line":"Unplanned failover workflow"},{"line_number":274,"context_line":"---------------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"1. A ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":277,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2. The manager makes a call to the driver and checks if any failover has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fc697ff7_ac08776f","line":276,"range":{"start_line":276,"start_character":3,"end_line":276,"end_character":7},"updated":"2026-06-12 14:10:25.000000000","message":"An - grammer nit","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":273,"context_line":"Unplanned failover workflow"},{"line_number":274,"context_line":"---------------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"1. A ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":277,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2. The manager makes a call to the driver and checks if any failover has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"b7e9361a_f1486352","line":276,"range":{"start_line":276,"start_character":7,"end_line":276,"end_character":40},"updated":"2026-06-12 14:10:25.000000000","message":"shouldnt the method name be unplanned_failover_check (verb not noun).","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"b3f44a712cf18e83b63c91bea8a7240a50e59db3","unresolved":true,"context_lines":[{"line_number":273,"context_line":"Unplanned failover workflow"},{"line_number":274,"context_line":"---------------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"1. A ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":277,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2. The manager makes a call to the driver and checks if any failover has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"b8ff97bd_053c8150","line":276,"range":{"start_line":276,"start_character":7,"end_line":276,"end_character":40},"in_reply_to":"6c91708d_6656f9e6","updated":"2026-06-15 05:48:19.000000000","message":"No, methods should follow verb pattern. They cannot be nouns. Please update this.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":273,"context_line":"Unplanned failover workflow"},{"line_number":274,"context_line":"---------------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"1. A ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":277,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2. The manager makes a call to the driver and checks if any failover has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"6c91708d_6656f9e6","line":276,"range":{"start_line":276,"start_character":7,"end_line":276,"end_character":40},"in_reply_to":"b7e9361a_f1486352","updated":"2026-06-13 11:53:40.000000000","message":"This will be run in configurable interval so I named it with interval suffix.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":false,"context_lines":[{"line_number":273,"context_line":"Unplanned failover workflow"},{"line_number":274,"context_line":"---------------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"1. A ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":277,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2. The manager makes a call to the driver and checks if any failover has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dc00dc29_1ad810af","line":276,"range":{"start_line":276,"start_character":7,"end_line":276,"end_character":40},"in_reply_to":"b8ff97bd_053c8150","updated":"2026-06-16 16:46:22.000000000","message":"Most of the method name is ending with interval in manager.py file, so I have kept it name as unplanned_failover_check_interval to consistence with existing method.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":273,"context_line":"Unplanned failover workflow"},{"line_number":274,"context_line":"---------------------------"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"1. A ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":277,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"2. The manager makes a call to the driver and checks if any failover has"}],"source_content_type":"text/x-rst","patch_set":11,"id":"18e47b0d_db14b51e","line":276,"range":{"start_line":276,"start_character":3,"end_line":276,"end_character":7},"in_reply_to":"fc697ff7_ac08776f","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":298,"context_line":"* Automatic change is not instantaneous; it is detected on the next periodic"},{"line_number":299,"context_line":"  poll cycle."},{"line_number":300,"context_line":"* Effective switchover latency is approximately the value of"},{"line_number":301,"context_line":"  ``share_server_failover_check_interval``."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Replica states"},{"line_number":304,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3691261b_7ec7fdef","line":301,"range":{"start_line":301,"start_character":3,"end_line":301,"end_character":42},"updated":"2026-06-12 14:10:25.000000000","message":"May be also add that this will be a config and what would be the default value of this interval if not explicitly added.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":298,"context_line":"* Automatic change is not instantaneous; it is detected on the next periodic"},{"line_number":299,"context_line":"  poll cycle."},{"line_number":300,"context_line":"* Effective switchover latency is approximately the value of"},{"line_number":301,"context_line":"  ``share_server_failover_check_interval``."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Replica states"},{"line_number":304,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":11,"id":"d288cb63_baf15b4a","line":301,"range":{"start_line":301,"start_character":3,"end_line":301,"end_character":42},"in_reply_to":"3691261b_7ec7fdef","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"8fcc06414659c27c2f57fe9903fa6595740b09d1","unresolved":true,"context_lines":[{"line_number":379,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":380,"context_line":"    | replication_type       | string(255) | Yes      | sync or async             |"},{"line_number":381,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":382,"context_line":"    | share_network_id       | string(36)  | Yes      | FK to share_networks      |"},{"line_number":383,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":384,"context_line":"    | availability_zone_id   | string(36)  | Yes      | FK to availability_zones  |"},{"line_number":385,"context_line":"    +------------------------+-------------+----------+---------------------------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"e5a9fdf4_ed533081","line":382,"updated":"2026-06-11 15:02:02.000000000","message":"It should be share_network_subnet_id","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"e4a373da46779764597ba906a21f5fcf1eca44fd","unresolved":true,"context_lines":[{"line_number":379,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":380,"context_line":"    | replication_type       | string(255) | Yes      | sync or async             |"},{"line_number":381,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":382,"context_line":"    | share_network_id       | string(36)  | Yes      | FK to share_networks      |"},{"line_number":383,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":384,"context_line":"    | availability_zone_id   | string(36)  | Yes      | FK to availability_zones  |"},{"line_number":385,"context_line":"    +------------------------+-------------+----------+---------------------------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"4e1d0ed2_4075da9e","line":382,"in_reply_to":"3ba6fbb2_bd4268cc","updated":"2026-06-16 12:10:00.000000000","message":"Isn\u0027t this just duplicated data then? What is the purpose of storing these? If I want the detailed values that are passed from the user, I can configure an audit middleware","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":true,"context_lines":[{"line_number":379,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":380,"context_line":"    | replication_type       | string(255) | Yes      | sync or async             |"},{"line_number":381,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":382,"context_line":"    | share_network_id       | string(36)  | Yes      | FK to share_networks      |"},{"line_number":383,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":384,"context_line":"    | availability_zone_id   | string(36)  | Yes      | FK to availability_zones  |"},{"line_number":385,"context_line":"    +------------------------+-------------+----------+---------------------------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ec2950d0_6ce84824","line":382,"in_reply_to":"4e1d0ed2_4075da9e","updated":"2026-06-16 16:46:22.000000000","message":"Yes, there are a few duplicates. I follow the same pattern as we have in the share_instances table. There, we are also storing many duplicate values that could be retrieved from the share_server table.\n\nIf you want the subnet ID to be listed as part of the \"openstack share server show\" command, then I can add that logic to display the subnet ID in the show command.\n@maurice.escher@sap.com","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":380,"context_line":"    | replication_type       | string(255) | Yes      | sync or async             |"},{"line_number":381,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":382,"context_line":"    | share_network_id       | string(36)  | Yes      | FK to share_networks      |"},{"line_number":383,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":384,"context_line":"    | availability_zone_id   | string(36)  | Yes      | FK to availability_zones  |"},{"line_number":385,"context_line":"    +------------------------+-------------+----------+---------------------------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"3ba6fbb2_bd4268cc","line":382,"in_reply_to":"e5a9fdf4_ed533081","updated":"2026-06-13 11:53:40.000000000","message":"We will not be storing the share_network_subnet_id in share server replica table. User can get this info from the share server if need. In replica we are storing those value which are passed from command line.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"213299b1bcf6d4dd8dc0b334bcf4b1b9510d0c7e","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":380,"context_line":"    | replication_type       | string(255) | Yes      | sync or async             |"},{"line_number":381,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":382,"context_line":"    | share_network_id       | string(36)  | Yes      | FK to share_networks      |"},{"line_number":383,"context_line":"    +------------------------+-------------+----------+---------------------------+"},{"line_number":384,"context_line":"    | availability_zone_id   | string(36)  | Yes      | FK to availability_zones  |"},{"line_number":385,"context_line":"    +------------------------+-------------+----------+---------------------------+"}],"source_content_type":"text/x-rst","patch_set":11,"id":"06bbb632_bfcab40e","line":382,"in_reply_to":"ec2950d0_6ce84824","updated":"2026-06-17 07:27:18.000000000","message":"I\u0027m with Goutham, that whole table is probably not needed at all.\n\nResolving this as it is included in the broader topic.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":".. code-block:: bash"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    # Enroll a new share into replication at create time:"},{"line_number":447,"context_line":"    openstack share create --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    # Enroll an existing share into replication:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"9665ebeb_f01e019d","line":446,"range":{"start_line":446,"start_character":6,"end_line":446,"end_character":57},"updated":"2026-06-12 14:10:25.000000000","message":"I think we can reword to - Replicate a new share via share server replica.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":443,"context_line":""},{"line_number":444,"context_line":".. code-block:: bash"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    # Enroll a new share into replication at create time:"},{"line_number":447,"context_line":"    openstack share create --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    # Enroll an existing share into replication:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"6fcc7287_74f6de44","line":446,"range":{"start_line":446,"start_character":6,"end_line":446,"end_character":57},"in_reply_to":"9665ebeb_f01e019d","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":444,"context_line":".. code-block:: bash"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    # Enroll a new share into replication at create time:"},{"line_number":447,"context_line":"    openstack share create --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    # Enroll an existing share into replication:"},{"line_number":450,"context_line":"    openstack share set --property protected_via_share_server_replica\u003dtrue ..."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3d4b6500_3fdbb538","line":447,"range":{"start_line":447,"start_character":0,"end_line":447,"end_character":81},"updated":"2026-06-12 14:10:25.000000000","message":"If the share server is not protected, the behaviour of this command would be to fail or ignore?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":444,"context_line":".. code-block:: bash"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"    # Enroll a new share into replication at create time:"},{"line_number":447,"context_line":"    openstack share create --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    # Enroll an existing share into replication:"},{"line_number":450,"context_line":"    openstack share set --property protected_via_share_server_replica\u003dtrue ..."}],"source_content_type":"text/x-rst","patch_set":11,"id":"cbf21f75_87f50c20","line":447,"range":{"start_line":447,"start_character":0,"end_line":447,"end_character":81},"in_reply_to":"3d4b6500_3fdbb538","updated":"2026-06-13 11:53:40.000000000","message":"This will be failed on ONTAP but we will not be restricting this to core as we don\u0027t know which SVM will be picked up for share server creation. If non-replicated share server will picked up then share creation will failed in case of NetApp driver.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":447,"context_line":"    openstack share create --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    # Enroll an existing share into replication:"},{"line_number":450,"context_line":"    openstack share set --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"On success, the driver returns the ``protected_via_share_server_replica`` field"},{"line_number":453,"context_line":"value, which is then updated in the ``share_instances`` table."}],"source_content_type":"text/x-rst","patch_set":11,"id":"995f9e06_08772bc4","line":450,"range":{"start_line":450,"start_character":0,"end_line":450,"end_character":78},"updated":"2026-06-12 14:10:25.000000000","message":"Same comment as above.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":447,"context_line":"    openstack share create --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    # Enroll an existing share into replication:"},{"line_number":450,"context_line":"    openstack share set --property protected_via_share_server_replica\u003dtrue ..."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"On success, the driver returns the ``protected_via_share_server_replica`` field"},{"line_number":453,"context_line":"value, which is then updated in the ``share_instances`` table."}],"source_content_type":"text/x-rst","patch_set":11,"id":"8c15836c_a53c72ed","line":450,"range":{"start_line":450,"start_character":0,"end_line":450,"end_character":78},"in_reply_to":"995f9e06_08772bc4","updated":"2026-06-13 11:53:40.000000000","message":"Here will also failed but in driver.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":true,"context_lines":[{"line_number":649,"context_line":"        Establish the backend replication relationship between the source"},{"line_number":650,"context_line":"        (derived from ``share_server_replica_list``) and the destination"},{"line_number":651,"context_line":"        (``new_share_server_replica``). Return None or a dict with optional"},{"line_number":652,"context_line":"        ``status`` and ``replica_state`` updates."},{"line_number":653,"context_line":"        \"\"\""},{"line_number":654,"context_line":"        raise NotImplementedError()"},{"line_number":655,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"a9e6e2ff_22a13bff","line":652,"updated":"2026-06-11 10:04:36.000000000","message":"status can be removed, driver will send the replica_state, the status can be inferred by core similar to share replica spec.\nHow are we going to store the new destination share_server details? core should accept it right?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":649,"context_line":"        Establish the backend replication relationship between the source"},{"line_number":650,"context_line":"        (derived from ``share_server_replica_list``) and the destination"},{"line_number":651,"context_line":"        (``new_share_server_replica``). Return None or a dict with optional"},{"line_number":652,"context_line":"        ``status`` and ``replica_state`` updates."},{"line_number":653,"context_line":"        \"\"\""},{"line_number":654,"context_line":"        raise NotImplementedError()"},{"line_number":655,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"ad2751a0_1ddd833b","line":652,"in_reply_to":"a9e6e2ff_22a13bff","updated":"2026-06-13 11:53:40.000000000","message":"Added below- \nReturn None or a dict containing optional model updates for the new\n        share server replica record. Backend-specific replication details\n        should be returned under ``backend_details``. The returned\n        ``state`` should be either ``\u0027out_of_sync\u0027`` or ``\u0027in_sync\u0027``;\n         drivers should not report an error state through this field.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":true,"context_lines":[{"line_number":659,"context_line":"        \"\"\"Delete a share server replica on the backend."},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        Remove the replication relationship and clean up all destination"},{"line_number":662,"context_line":"        objects. Return None or a dict with optional ``status`` and"},{"line_number":663,"context_line":"        ``replica_state`` updates."},{"line_number":664,"context_line":"        \"\"\""},{"line_number":665,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-rst","patch_set":11,"id":"c51a44ca_1c4df4ea","line":662,"updated":"2026-06-11 10:04:36.000000000","message":"status can be removed, driver will send the replica_state, the status can be inferred by core similar to share replica spec.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":659,"context_line":"        \"\"\"Delete a share server replica on the backend."},{"line_number":660,"context_line":""},{"line_number":661,"context_line":"        Remove the replication relationship and clean up all destination"},{"line_number":662,"context_line":"        objects. Return None or a dict with optional ``status`` and"},{"line_number":663,"context_line":"        ``replica_state`` updates."},{"line_number":664,"context_line":"        \"\"\""},{"line_number":665,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ed2d343f_4a197623","line":662,"in_reply_to":"c51a44ca_1c4df4ea","updated":"2026-06-13 11:53:40.000000000","message":"Added below-\nReturn None or any exception raised will set the share server\n        replica\u0027s ``status`` to ``\u0027error_deleting\u0027`` and its \n        ``replica_state`` to ``\u0027error\u0027``.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":true,"context_lines":[{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":668,"context_line":"                                     share_server_replica_list,"},{"line_number":669,"context_line":"                                     share_instances):"},{"line_number":670,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"      Perform the backend role reversal. Return ``None`` or a dictionary"}],"source_content_type":"text/x-rst","patch_set":11,"id":"f3a98831_8483be4c","line":669,"updated":"2026-06-11 10:04:36.000000000","message":"This should be named as protected_share_instances?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":666,"context_line":""},{"line_number":667,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":668,"context_line":"                                     share_server_replica_list,"},{"line_number":669,"context_line":"                                     share_instances):"},{"line_number":670,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"      Perform the backend role reversal. Return ``None`` or a dictionary"}],"source_content_type":"text/x-rst","patch_set":11,"id":"b1dd058d_355fa6f4","line":669,"in_reply_to":"f3a98831_8483be4c","updated":"2026-06-13 11:53:40.000000000","message":"Done","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":true,"context_lines":[{"line_number":670,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"      Perform the backend role reversal. Return ``None`` or a dictionary"},{"line_number":673,"context_line":"      that includes: ``status`` (the new status), ``replica_state`` (the"},{"line_number":674,"context_line":"      new replica state), and ``instance_host_mapping`` (a mapping where"},{"line_number":675,"context_line":"      each key is a share instance ID and each value is the new host for"},{"line_number":676,"context_line":"      that instance)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"196891ab_f3a35f16","line":673,"updated":"2026-06-11 10:04:36.000000000","message":"How are we planning to extend the support multi replica(fanout) scenarios in future?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":670,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":671,"context_line":""},{"line_number":672,"context_line":"      Perform the backend role reversal. Return ``None`` or a dictionary"},{"line_number":673,"context_line":"      that includes: ``status`` (the new status), ``replica_state`` (the"},{"line_number":674,"context_line":"      new replica state), and ``instance_host_mapping`` (a mapping where"},{"line_number":675,"context_line":"      each key is a share instance ID and each value is the new host for"},{"line_number":676,"context_line":"      that instance)."}],"source_content_type":"text/x-rst","patch_set":11,"id":"b1cd01b1_36b41d90","line":673,"in_reply_to":"196891ab_f3a35f16","updated":"2026-06-13 11:53:40.000000000","message":"Driver should return below data structure for each replica, so that core can update accordingly.\n\n{\n            \u0027replica_list\u0027: [\n                {\n                    \u0027replica_id\u0027: \u0027replica_id_1\u0027,\n                    \u0027status\u0027: \u0027available\u0027,\n                    \u0027replica_state\u0027: \u0027active\u0027,\n                },\n                {\n                    \u0027replica_id\u0027: \u0027replica_id_2\u0027,\n                    \u0027status\u0027: \u0027available\u0027,\n                    \u0027replica_state\u0027: \u0027out_of_sync\u0027,\n                },\n            ],\n            \u0027instance_host_mappings\u0027: {\n                \u0027instance_id_1\u0027: \u0027new_host_1\u0027,\n                \u0027instance_id_2\u0027: \u0027new_host_2\u0027,\n                \u0027instance_id_3\u0027: \u0027new_host_3\u0027,\n            },\n        }","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":true,"context_lines":[{"line_number":684,"context_line":"        \"\"\"Return the current replication state for a share server replica."},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        Called periodically by the manager and on manual refresh. Return"},{"line_number":687,"context_line":"        None or a dict with optional ``status`` and ``replica_state``"},{"line_number":688,"context_line":"        updates."},{"line_number":689,"context_line":"        \"\"\""},{"line_number":690,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-rst","patch_set":11,"id":"7876ad1b_ef3c9988","line":687,"updated":"2026-06-11 10:04:36.000000000","message":"status can be removed, driver will send the replica_state, the status can be inferred by core similar to share replica spec.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":684,"context_line":"        \"\"\"Return the current replication state for a share server replica."},{"line_number":685,"context_line":""},{"line_number":686,"context_line":"        Called periodically by the manager and on manual refresh. Return"},{"line_number":687,"context_line":"        None or a dict with optional ``status`` and ``replica_state``"},{"line_number":688,"context_line":"        updates."},{"line_number":689,"context_line":"        \"\"\""},{"line_number":690,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-rst","patch_set":11,"id":"aaf57c9f_5acc3dd6","line":687,"in_reply_to":"7876ad1b_ef3c9988","updated":"2026-06-13 11:53:40.000000000","message":"Added below - \n\nReturn\n        ``replica_state``: a string value denoting the replica state.\n        Valid values are ``\u0027in_sync\u0027`` and ``\u0027out_of_sync\u0027`` or\n        ``None`` (to leave the current replica_state unchanged).\n        Any exception raised will set the share server replica\u0027s ``status``\n        to ``\u0027error\u0027`` and its ``replica_state`` to ``\u0027error\u0027``.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"0e087a56f40485743615c02f028e86f011937907","unresolved":true,"context_lines":[{"line_number":698,"context_line":"        The manager calls this periodically to detect backend-driven"},{"line_number":699,"context_line":"        failover events and update the control path accordingly."},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"        Return ``None`` or a dict with ``failover_happened``,"},{"line_number":702,"context_line":"        ``perform_promote``, ``status``, ``replica_state``, and optional"},{"line_number":703,"context_line":"        ``instance_host_mapping`` updates."},{"line_number":704,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"64197ad0_f09f7598","line":701,"updated":"2026-06-11 10:04:36.000000000","message":"How are we planning to extend the support multi replica(fanout) scenarios in future?","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":698,"context_line":"        The manager calls this periodically to detect backend-driven"},{"line_number":699,"context_line":"        failover events and update the control path accordingly."},{"line_number":700,"context_line":""},{"line_number":701,"context_line":"        Return ``None`` or a dict with ``failover_happened``,"},{"line_number":702,"context_line":"        ``perform_promote``, ``status``, ``replica_state``, and optional"},{"line_number":703,"context_line":"        ``instance_host_mapping`` updates."},{"line_number":704,"context_line":"        \"\"\""}],"source_content_type":"text/x-rst","patch_set":11,"id":"989b219c_44e8d1b4","line":701,"in_reply_to":"64197ad0_f09f7598","updated":"2026-06-13 11:53:40.000000000","message":"Driver should return below data stucture.\n{\n            \u0027promote_required\u0027: True,\n            \u0027status\u0027: \u0027available\u0027,\n            \u0027replica_list\u0027: [\n                {\n                    \u0027replica_id\u0027: \u0027d8hg9i7a-7f6i-8ebi-de5i-5j7f6i8ebinde\u0027,\n                    \u0027status\u0027: \u0027available\u0027,\n                    \u0027replica_state\u0027: \u0027active\u0027,\n                },\n                {\n                    \u0027replica_id\u0027: \u0027c7gf8h69-6e5h-7dah-cd4h-4i6e5h7dahncd\u0027,\n                    \u0027status\u0027: \u0027available\u0027,\n                    \u0027replica_state\u0027: \u0027out_of_sync\u0027,\n                },\n            ],\n            \u0027instance_host_mappings\u0027: {\n                \u0027e82ff8b6-65f0-11e5-9d70-feff819cdc9f\u0027: \u0027openstack3@host1\u0027,\n                \u0027f0e4bb5e-65f0-11e5-9d70-feff819cdc9f\u0027: \u0027openstack3@host2\u0027,\n            },\n        }","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"a232e5743e93f0b06336fe376ff4cc862bc232b1","unresolved":true,"context_lines":[{"line_number":773,"context_line":"Deployers will need to run the database migration before enabling the feature."},{"line_number":774,"context_line":"No additional configuration option is required for the baseline behavior."},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"Deployer documentation must include quota configuration for share server"},{"line_number":777,"context_line":"replicas once quota support is added."},{"line_number":778,"context_line":""},{"line_number":779,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"f1b9841b_df0d2381","line":776,"range":{"start_line":776,"start_character":27,"end_line":776,"end_character":55},"updated":"2026-06-12 14:10:25.000000000","message":"We need to add default quota numbers for share server replication or mention it somewhere in this document.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"f3f0dff08051e866a6af550a53031058035bc919","unresolved":false,"context_lines":[{"line_number":773,"context_line":"Deployers will need to run the database migration before enabling the feature."},{"line_number":774,"context_line":"No additional configuration option is required for the baseline behavior."},{"line_number":775,"context_line":""},{"line_number":776,"context_line":"Deployer documentation must include quota configuration for share server"},{"line_number":777,"context_line":"replicas once quota support is added."},{"line_number":778,"context_line":""},{"line_number":779,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"13718d06_15d355de","line":776,"range":{"start_line":776,"start_character":27,"end_line":776,"end_character":55},"in_reply_to":"f1b9841b_df0d2381","updated":"2026-06-13 11:53:40.000000000","message":"Added below.\nShare server replica create operations must enforce project quota.\n  A new quota key, ``share_server_replicas``, will be checked at create time\n  with a default limit of ``10`` replicas per project.","commit_id":"9b5b65c2cc2ea76b055504c5f83fb938c8893fb1"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"7d2b88797a7f067075c7ec140c7f2507d35ef2b6","unresolved":true,"context_lines":[{"line_number":193,"context_line":"* When deleting a share server replica with ``force\u003dTrue``, manager will try"},{"line_number":194,"context_line":"  to delete the share server replica via driver and irrespective of success/failure"},{"line_number":195,"context_line":"  the manila database entry will be deleted."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Make Driver Call"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Driver delete call is issued with source and destination share server details."}],"source_content_type":"text/x-rst","patch_set":12,"id":"36d7feea_81921660","line":196,"updated":"2026-06-15 04:40:32.000000000","message":"Delete replica should clean up the corresponding share server record in DB on success/force as driver will clean up all artifacts on destination site.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":false,"context_lines":[{"line_number":193,"context_line":"* When deleting a share server replica with ``force\u003dTrue``, manager will try"},{"line_number":194,"context_line":"  to delete the share server replica via driver and irrespective of success/failure"},{"line_number":195,"context_line":"  the manila database entry will be deleted."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"Make Driver Call"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Driver delete call is issued with source and destination share server details."}],"source_content_type":"text/x-rst","patch_set":12,"id":"49c77a46_959be24d","line":196,"in_reply_to":"36d7feea_81921660","updated":"2026-06-16 16:46:22.000000000","message":"Done","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"7d2b88797a7f067075c7ec140c7f2507d35ef2b6","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Share server replica must exist and available status."},{"line_number":226,"context_line":"* Share server replica must not be active."},{"line_number":227,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":228,"context_line":"  driver-specific resync."},{"line_number":229,"context_line":"* Manager updates DB after driver returns."},{"line_number":230,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"b3869c9d_9aa94296","line":227,"updated":"2026-06-15 04:40:32.000000000","message":"Are we going to introduce this new state \u0027syncing\u0027? This is not there in share replication.\nI think we can keep the existing state, no need of transitioning state.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"0d85093149c64cdba1037b3d96b1cc890ae0562c","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Share server replica must exist and available status."},{"line_number":226,"context_line":"* Share server replica must not be active."},{"line_number":227,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":228,"context_line":"  driver-specific resync."},{"line_number":229,"context_line":"* Manager updates DB after driver returns."},{"line_number":230,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"be104521_b2a698c5","line":227,"in_reply_to":"0e6f849e_2bae282d","updated":"2026-06-17 05:29:13.000000000","message":"Its an ideal behaviour to set it in syncing and once the sync operation is successful we can go back to in_sync state. The only concern would be to manage error in syncing and reflect the correct state on the share server replica. A better way to represent it would be a state diagram so that its more clear for implementers.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"57c9a492032112fa02f67017aa1f5fda827ced8f","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Share server replica must exist and available status."},{"line_number":226,"context_line":"* Share server replica must not be active."},{"line_number":227,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":228,"context_line":"  driver-specific resync."},{"line_number":229,"context_line":"* Manager updates DB after driver returns."},{"line_number":230,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"0e6f849e_2bae282d","line":227,"in_reply_to":"88d3b1db_7109f664","updated":"2026-06-16 17:11:44.000000000","message":"Let me add some operational constraints for consideration:\n\nEvery 5 min(default interval which can be less as well if configured) when periodic interval runs on each share server replica status will be set to syncing. \nAs we mentioned in promote replica, a check on status is done to allow promote only if the relationship is in_sync(stopped at core pre-check), this will bring more complexity to maintain the state and becomes difficult to user to time it for promote attempt.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Share server replica must exist and available status."},{"line_number":226,"context_line":"* Share server replica must not be active."},{"line_number":227,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":228,"context_line":"  driver-specific resync."},{"line_number":229,"context_line":"* Manager updates DB after driver returns."},{"line_number":230,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"e9ffac4b_fe62aeb8","line":227,"in_reply_to":"8c8d4984_58877299","updated":"2026-06-18 13:43:41.000000000","message":"Thanks @ces.eduardo98@gmail.com, this make sense.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Share server replica must exist and available status."},{"line_number":226,"context_line":"* Share server replica must not be active."},{"line_number":227,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":228,"context_line":"  driver-specific resync."},{"line_number":229,"context_line":"* Manager updates DB after driver returns."},{"line_number":230,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"88d3b1db_7109f664","line":227,"in_reply_to":"b3869c9d_9aa94296","updated":"2026-06-16 16:46:22.000000000","message":"is it not good idea to make the replica state as \"syncing\", this will be very temporary or transit state, that indicate user that update is going on backend and and not need to make the one more update call. I am keeping this comment open, let other comment on this. @gouthampravi@gmail.com, @ces.eduardo98@gmail.com, @anoop1005@hotmail.com, @maurice.escher@sap.com","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6d5c96556fac852bee548dd864763093cffc187a","unresolved":true,"context_lines":[{"line_number":224,"context_line":""},{"line_number":225,"context_line":"* Share server replica must exist and available status."},{"line_number":226,"context_line":"* Share server replica must not be active."},{"line_number":227,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":228,"context_line":"  driver-specific resync."},{"line_number":229,"context_line":"* Manager updates DB after driver returns."},{"line_number":230,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":12,"id":"8c8d4984_58877299","line":227,"in_reply_to":"be104521_b2a698c5","updated":"2026-06-17 19:18:41.000000000","message":"\u003e Every 5 min(default interval which can be less as well if configured) when periodic interval runs on each share server replica status will be set to syncing.\n\nMaybe syncing status should only come after this operation started from the API then? If we look at the behavior for share replicas, not every time the periodic task runs, the replica will be out of sync. We can keep the same thing and only do the status change when this was manually triggered.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"7d2b88797a7f067075c7ec140c7f2507d35ef2b6","unresolved":true,"context_lines":[{"line_number":253,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":254,"context_line":"  share server."},{"line_number":255,"context_line":"* Manager calls driver promote."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"On failure:"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* Share server replica status is set to ``error`` and share server replica"}],"source_content_type":"text/x-rst","patch_set":12,"id":"89a3ef4f_56fe2c1f","line":256,"updated":"2026-06-15 04:40:32.000000000","message":"Corresponding share server status active/inactive should be set?","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":false,"context_lines":[{"line_number":253,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":254,"context_line":"  share server."},{"line_number":255,"context_line":"* Manager calls driver promote."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"On failure:"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* Share server replica status is set to ``error`` and share server replica"}],"source_content_type":"text/x-rst","patch_set":12,"id":"07c999f1_3e429645","line":256,"in_reply_to":"89a3ef4f_56fe2c1f","updated":"2026-06-16 16:46:22.000000000","message":"This is already here \n\n The source share server is set to ``inactive`` and the promoted replica\u0027s\n  share server is set to ``active``. will add the status in this so this will be now \n  The source share server status is set to ``inactive`` and the promoted\n  replica\u0027s share server is set to ``active``.","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"8769c34b2f63e898440f9e69d351b2069f99863b","unresolved":true,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":".. code-block:: python"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":651,"context_line":"                                    share_server_replica_list,"},{"line_number":652,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":653,"context_line":"        \"\"\"Create a replica for an entire share server."}],"source_content_type":"text/x-rst","patch_set":12,"id":"f4198824_71b1d8c8","line":650,"updated":"2026-06-15 04:24:29.000000000","message":"network_info_list param is missing?","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"fd8a60e849fd4ffabc3d091d0ed56b1f81e62209","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":".. code-block:: python"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":651,"context_line":"                                    share_server_replica_list,"},{"line_number":652,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":653,"context_line":"        \"\"\"Create a replica for an entire share server."}],"source_content_type":"text/x-rst","patch_set":12,"id":"817bf67d_e0d875d8","line":650,"in_reply_to":"f4198824_71b1d8c8","updated":"2026-06-16 16:46:22.000000000","message":"Share server object which will be inside of share server replica will have network info. Also share server replica will also have network id.\n below will be example for share server replica object.\n {\n                \u0027id\u0027: \u0027d8hg9i7a-7f6i-8ebi-de5i-5j7f6i8ebinde\u0027,\n                \u0027share_server_id\u0027: \u0027d7gf8h69-6e5h-8eah-cd4h-4i6e5h8eahcd\u0027,\n                \u0027status\u0027: \u0027available\u0027,\n                \u0027replica_state\u0027: \u0027in_sync\u0027,\n                \u0027host\u0027: \u0027openstack3@cmodeSSVMNFS3#pool2\u0027,\n                \u0027share_network_id\u0027: \u00274ccd5318-65f1-11e5-9d70-feff819cdc9f\u0027,\n                \u0027replication_type\u0027: \u0027dr\u0027,\n                \u0027share_server\u0027: {\n                    \u0027id\u0027: \u0027d7gf8h69-6e5h-8eah-cd4h-4i6e5h8eahcd\u0027,\n                    \u0027status\u0027: \u0027available\u0027,\n                    \u0027host\u0027: \u0027openstack3@cmodeSSVMNFS3\u0027,\n                    \u0027backend_details\u0027: {\u0027vserver_name\u0027: \u0027svm_dr1\u0027},\n                    ...\n                },\n                ...\n            }","commit_id":"0119eb59b563a7a4d87fc3e5b7a4f4c61e399db6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":51,"context_line":"   needed, or force-delete one that is in an error state."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"3. An administrator wants to promote an in-sync share server replica to"},{"line_number":54,"context_line":"   active during a failover event or planned maintenance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"4. An administrator wants to resync a non-active share server replica after"},{"line_number":57,"context_line":"   recovery so that it can be used again as a standby."}],"source_content_type":"text/x-rst","patch_set":13,"id":"3f942a55_fbc0d558","line":54,"range":{"start_line":54,"start_character":20,"end_line":54,"end_character":33},"updated":"2026-06-17 06:18:33.000000000","message":"\"failure\"?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":51,"context_line":"   needed, or force-delete one that is in an error state."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"3. An administrator wants to promote an in-sync share server replica to"},{"line_number":54,"context_line":"   active during a failover event or planned maintenance."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"4. An administrator wants to resync a non-active share server replica after"},{"line_number":57,"context_line":"   recovery so that it can be used again as a standby."}],"source_content_type":"text/x-rst","patch_set":13,"id":"2c4a55ac_5fb86005","line":54,"range":{"start_line":54,"start_character":20,"end_line":54,"end_character":33},"in_reply_to":"3f942a55_fbc0d558","updated":"2026-06-17 16:51:01.000000000","message":"Done","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":76,"context_line":"  up."},{"line_number":77,"context_line":"* Promote a share server replica to active."},{"line_number":78,"context_line":"* Resync a share server replica with its active source."},{"line_number":79,"context_line":"* Show if a share instance is part of share server replication or not."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This addition will consist of new database tables, share API"},{"line_number":82,"context_line":"validation, manager orchestration, driver hooks, policy rules,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"72368cff_4df85c0e","line":79,"range":{"start_line":79,"start_character":2,"end_line":79,"end_character":70},"updated":"2026-06-17 06:18:33.000000000","message":"how is this achieved? you\u0027ve dropped the ability to pick and choose shares to replicate on a server..","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9fcc5df701628d18b6788679a7966fca60418cf4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  up."},{"line_number":77,"context_line":"* Promote a share server replica to active."},{"line_number":78,"context_line":"* Resync a share server replica with its active source."},{"line_number":79,"context_line":"* Show if a share instance is part of share server replication or not."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This addition will consist of new database tables, share API"},{"line_number":82,"context_line":"validation, manager orchestration, driver hooks, policy rules,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"2d683768_b624d351","line":79,"range":{"start_line":79,"start_character":2,"end_line":79,"end_character":70},"in_reply_to":"5d11ebb4_92d6f4a0","updated":"2026-06-17 19:18:44.000000000","message":"We are adding the feature to unprotect the share which is already part of share server replication, so once volume will be unprotected, we need to change this field value for unprotected share.\n\nI think there is one similar comment where Kuamr and me have provided the justification for adding this field.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  up."},{"line_number":77,"context_line":"* Promote a share server replica to active."},{"line_number":78,"context_line":"* Resync a share server replica with its active source."},{"line_number":79,"context_line":"* Show if a share instance is part of share server replication or not."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This addition will consist of new database tables, share API"},{"line_number":82,"context_line":"validation, manager orchestration, driver hooks, policy rules,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"aa6d1a9b_04bd7138","line":79,"range":{"start_line":79,"start_character":2,"end_line":79,"end_character":70},"in_reply_to":"72368cff_4df85c0e","updated":"2026-06-17 16:51:01.000000000","message":"I have removed the include and exclude lists feature that we pass during share server replication creation. Here,  once the share server replica is created, we update all the share under that share server as protected_via_share_server\u003dtrue,  this is easy for end user to know that particular share is already protected via share server replication or not.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":76,"context_line":"  up."},{"line_number":77,"context_line":"* Promote a share server replica to active."},{"line_number":78,"context_line":"* Resync a share server replica with its active source."},{"line_number":79,"context_line":"* Show if a share instance is part of share server replication or not."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This addition will consist of new database tables, share API"},{"line_number":82,"context_line":"validation, manager orchestration, driver hooks, policy rules,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"5d11ebb4_92d6f4a0","line":79,"range":{"start_line":79,"start_character":2,"end_line":79,"end_character":70},"in_reply_to":"aa6d1a9b_04bd7138","updated":"2026-06-17 17:45:43.000000000","message":"Marked as unresolved. Why? Does this property change at any point?\n\nIf not, you can make this a @property on the share sqlalchemy model that you can infer from the share server rather than introducing another boolean column into the database","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"6083c905_ecf27692","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"updated":"2026-06-17 06:18:33.000000000","message":"\"share_server_replication_domain\" is a bit more specific/descriptive perhaps?\n\n\nalthough, i\u0027d like to ask:\n\nIf an admin enables share server replication, would they typically disable tenant driven share replication? Or is there no need to? Would both features interoperate? If not, you could just re-use the \"replication_domain\" config opt; and doing so ensures that a new filter isn\u0027t needed","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"25f61bca3b86ec1fcf55d634ee2ef64d08607c79","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3ede7724_354dbc46","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"0bfdbde0_9d2efb0d","updated":"2026-06-19 18:37:42.000000000","message":"I have removed scheduling section as I didn\u0027t hear anything from Maurice.\n@gouthampravi@gmail.com, I didn\u0027t get this point -\nshare server replication can also be driven through share type extra-specs?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4fc3519b40c3cecbffb96d71c07d49db718540d","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"e1ace8f6_85b82ac9","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"0bfdbde0_9d2efb0d","updated":"2026-06-19 19:21:59.000000000","message":"You\u0027ve removed the section, but retained the parameter in these config examples. \n\nwe can try to move this discussion to the implementation.It doesn\u0027t seem to be a major detail to me. If we change this during implementation, please fix the spec to match what was done","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"cda5fe6be296927d89f765194cae01a5440169e1","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"0bfdbde0_9d2efb0d","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"1c78790b_0818ca03","updated":"2026-06-19 17:43:31.000000000","message":"@gouthampravi@gmail.com, I we didn\u0027t hear anything, shall I go ahead remove the scheduling section as we can use \"replication_domain\" for share server replication also.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ec74ac917e1059ff1bb6ede49bb38c19bd9f0246","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"200ede61_c894d455","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"26b6049b_2dc44a55","updated":"2026-06-20 14:20:20.000000000","message":"Thanks and Fixed it.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"ad4ecb62_1a9d2eb4","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"6083c905_ecf27692","updated":"2026-06-17 16:51:01.000000000","message":"Initial plan was to use the \"replication_domain\" even for share serve replica but Maurice provide the comment change it to \"share_server_replication_domain\".\n\nAs of now we are not blocking share replica to creation if share server is in replication relationship and vice versa. So, both can exist together, however, NetApp backend is not supporting this configuration but we can support this in future release.\n\nBelow is the reason provided by Maurice \n\nMy set of backends that allow regular replication, may not be the same set that allows share server replication. The implication would be, that we also need changes in the scheduler\u0027s ShareReplicationFilter or create a new ShareServerReplicationFilter.\n\nEven I felt it is better to have the different filter for share server replication.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1c78790b_0818ca03","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"ad4ecb62_1a9d2eb4","updated":"2026-06-17 17:45:43.000000000","message":"I see; share server replication can also be driven through share type extra-specs? Would that help distinguishing backends that support or don\u0027t support share server replication?\n\n@maurice.escher@sap.com: am i misinterpreting this?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9f1be148b984686148b546ae70e7d7c082c028f4","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Backend A"},{"line_number":98,"context_line":"    [backend-a]"},{"line_number":99,"context_line":"    server_replication_domain \u003d server_replication_domain-A"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    # Backend B (can replicate with A)"},{"line_number":102,"context_line":"    [backend-b]"}],"source_content_type":"text/x-rst","patch_set":13,"id":"26b6049b_2dc44a55","line":99,"range":{"start_line":99,"start_character":4,"end_line":99,"end_character":29},"in_reply_to":"e1ace8f6_85b82ac9","updated":"2026-06-19 22:39:32.000000000","message":"\u003e It doesn\u0027t seem to be a major detail to me.\n\n+1","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"f1358b6f_8a207d69","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"updated":"2026-06-17 06:18:33.000000000","message":"does either style mean anything to the API? Share replication types are \"readable\", \"writable\" and \"dr\" - these mean something to the Manila API. You can\u0027t promote \"writable\" replicas.. access rules aren\u0027t conveyed to \"dr\" replicas - they are unmounted until a promotion occurs.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"fde5919a_ff7d030b","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"in_reply_to":"1d6561bd_7c0c7dd7","updated":"2026-06-17 17:45:43.000000000","message":"i\u0027m not sure you understood my question. This sounds like a response copied from an LLM? Can you try to reason out what \"sync\" means for the manila API? and how it can differ from \"async\"?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"283647c0_46073eae","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"in_reply_to":"7e14dcc9_c01d0195","updated":"2026-06-18 13:43:41.000000000","message":"As discussed not need to have this params as mandatory params, user can pass this from meta data properties.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"faacda4aa523dcf3db2e9ea93fd0ea882be9ee69","unresolved":true,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7e14dcc9_c01d0195","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"in_reply_to":"bb8c7871_d4507e5d","updated":"2026-06-17 20:46:41.000000000","message":"I understand what the terms mean, but my question is if the API will differ because Manila knows this information.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"1d6561bd_7c0c7dd7","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"in_reply_to":"f1358b6f_8a207d69","updated":"2026-06-17 16:51:01.000000000","message":"Most vendors support both sync and async replication types. Based on this requirement, we decided to make replication_type a mandatory parameter. In addition to specifying the replication type, users can provide a replication policy. The backend then creates the policy-based relationship accordingly. For example, NetApp creates relationships based on the specified policy.\n\nThe core implementation handles the following scenarios:\n\n- Swapping the primary and secondary roles\n- Modifying the host and share server ID for the share instance\n- in this release, we are not updating the export path for share instances.\n\nAs per my understand, most of the vendor can have 2 kinds of replications\n1. SMAS-NAS kind of replication:,  the primary and secondary have the same data LIF (destination share server data lif remain down ) Therefore, no changes to the share export path are required during promote\n2.  When the source and destination share servers have different LIFs (typically in asynchronous relationships), users must update the export path on the core side after replica promote. However, this functionality is not included in this release because we do not currently support any backend with this configuration, and therefore cannot test it. This logic can be added in future releases if we begin supporting this type of relationship.\n\nOther point is, \nFor share server replicas, either the backend must support replicating all configurations (such as access rules) to the secondary, or the backend driver must implement the logic to replicate these configurations to the destination share server. This will give more flexibility to vendor to to implement the driver logic based on backend feature they are supporting.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6d5c96556fac852bee548dd864763093cffc187a","unresolved":true,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"23086295_db4d55e7","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"in_reply_to":"fde5919a_ff7d030b","updated":"2026-06-17 19:18:41.000000000","message":"\u003e i\u0027m not sure you understood my question. This sounds like a response copied from an LLM? Can you try to reason out what \"sync\" means for the manila API? and how it can differ from \"async\"?\n\n+1\nall these types of share replication behave differently when we talk about the API. We should definitely understand and document their behavior too.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9fcc5df701628d18b6788679a7966fca60418cf4","unresolved":true,"context_lines":[{"line_number":140,"context_line":"Validation"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bb8c7871_d4507e5d","line":143,"range":{"start_line":143,"start_character":38,"end_line":143,"end_character":59},"in_reply_to":"fde5919a_ff7d030b","updated":"2026-06-17 19:18:44.000000000","message":"This is not LLM, this all my thought process. \n\nI think driver and manila point of, both should be same. This parameter will decide what kind of replication will be created on backned. \nsync: when data written on primary and secondary simultaneously \nasync: First data written on primary and then it will be transfer to secondary after some update interval.\n\nCinder also we will be implementing the replication and there also we are using replication type as sync and async, we are following same here.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Destination Share Server Creation"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"000b0243_ad1bfa04","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":24},"updated":"2026-06-17 06:18:33.000000000","message":"what does backup have to do with replication?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":true,"context_lines":[{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Destination Share Server Creation"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"59b76756_6ce2bef7","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":24},"in_reply_to":"000b0243_ad1bfa04","updated":"2026-06-17 16:51:01.000000000","message":"We have implemented logic in the core to prevent share replication for shares with existing backups. We are applying the same logic here.\n\nFor NetApp (and potentially other vendors that support backups), the driver creates SnapVault relationships on ONTAP. However, ONTAP does not support SMAS-NAS relationship where one of the shares or volumes has an existing SnapMirror relationship.\n\nPlease let me know if you would like me to remove this check and let driver decide on this.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9fcc5df701628d18b6788679a7966fca60418cf4","unresolved":true,"context_lines":[{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Destination Share Server Creation"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"872fbcdc_b0df6701","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":24},"in_reply_to":"4a9e6f19_f087f6a9","updated":"2026-06-17 19:18:44.000000000","message":"Will remove this check","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Destination Share Server Creation"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"4a9e6f19_f087f6a9","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":24},"in_reply_to":"59b76756_6ce2bef7","updated":"2026-06-17 17:45:43.000000000","message":"Yeah, it seems strange to just highlight backup. Backup is a one time operation? How will having a backup prevent a long term operation like replication? It should probably be the other way around?\n\ni.e., if you\u0027re replicated, you can prevent backup because of the limitations you have... but, that sounds very NetApp specific to me too","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[{"line_number":142,"context_line":"* Share server should exist and be in available state."},{"line_number":143,"context_line":"* ``replication_type`` must be one of ``sync`` or ``async`` (case-insensitive)."},{"line_number":144,"context_line":"* Fail share server replica creation when the share server already has an"},{"line_number":145,"context_line":"  existing share backup."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Destination Share Server Creation"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"9440fa03_99f82041","line":145,"range":{"start_line":145,"start_character":2,"end_line":145,"end_character":24},"in_reply_to":"872fbcdc_b0df6701","updated":"2026-06-18 13:43:41.000000000","message":"Marked as resolved.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":149,"context_line":"* Add a database record for the destination share server in the"},{"line_number":150,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":151,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":152,"context_line":"  network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"7793fd52_3ed2d2b7","line":152,"range":{"start_line":152,"start_character":11,"end_line":152,"end_character":72},"updated":"2026-06-17 06:18:33.000000000","message":"This may become complicated to implement; is NetApp looking to support this? If not, I would consider this as an improvement/future enhancement","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[{"line_number":149,"context_line":"* Add a database record for the destination share server in the"},{"line_number":150,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":151,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":152,"context_line":"  network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"52d3dfda_d12da7e9","line":152,"range":{"start_line":152,"start_character":11,"end_line":152,"end_character":72},"in_reply_to":"01c9940d_3cb655d5","updated":"2026-06-18 13:43:41.000000000","message":"As we don\u0027t have any third party driver to spport it, I am removing this.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6d5c96556fac852bee548dd864763093cffc187a","unresolved":true,"context_lines":[{"line_number":149,"context_line":"* Add a database record for the destination share server in the"},{"line_number":150,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":151,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":152,"context_line":"  network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"01c9940d_3cb655d5","line":152,"range":{"start_line":152,"start_character":11,"end_line":152,"end_character":72},"in_reply_to":"69178617_4026d6e7","updated":"2026-06-17 19:18:41.000000000","message":"\u003e No. If you have no plans to support it with a driver today, this is just feature creep. If you\u0027d like to propose this, add a first party/open source driver to the implementation plan\n\n++ - it would feel like dead code if no one is using it, so the reference driver would be needed.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":149,"context_line":"* Add a database record for the destination share server in the"},{"line_number":150,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":151,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":152,"context_line":"  network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"c5335e47_f0fbd1c4","line":152,"range":{"start_line":152,"start_character":11,"end_line":152,"end_character":72},"in_reply_to":"7793fd52_3ed2d2b7","updated":"2026-06-17 16:51:01.000000000","message":"NetApp will not support this but core will have this logic. We can reuse existing code to implement this.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":149,"context_line":"* Add a database record for the destination share server in the"},{"line_number":150,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":151,"context_line":"* Ensure the destination share server network matches the source share server"},{"line_number":152,"context_line":"  network, or use the explicitly provided ``share_network`` if supplied."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"69178617_4026d6e7","line":152,"range":{"start_line":152,"start_character":11,"end_line":152,"end_character":72},"in_reply_to":"c5335e47_f0fbd1c4","updated":"2026-06-17 17:45:43.000000000","message":"No. If you have no plans to support it with a driver today, this is just feature creep. If you\u0027d like to propose this, add a first party/open source driver to the implementation plan","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* Add source share server details to the ``share_server_replicas`` table with"},{"line_number":157,"context_line":"  replica state ``active`` and status ``available``."},{"line_number":158,"context_line":"* Add destination share server details to the ``share_server_replicas`` table"},{"line_number":159,"context_line":"  with share server replica state ``out_of_sync`` and status ``creating``."}],"source_content_type":"text/x-rst","patch_set":13,"id":"c2b6ef3f_8e36de96","line":156,"range":{"start_line":156,"start_character":43,"end_line":156,"end_character":64},"updated":"2026-06-17 06:18:33.000000000","message":"Still a point of contention; even if fan out replication is supported, you can identify secondary copies with different metadata.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"502f8f0daa3fc89bc37965f83766a3dfd236c5af","unresolved":true,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* Add source share server details to the ``share_server_replicas`` table with"},{"line_number":157,"context_line":"  replica state ``active`` and status ``available``."},{"line_number":158,"context_line":"* Add destination share server details to the ``share_server_replicas`` table"},{"line_number":159,"context_line":"  with share server replica state ``out_of_sync`` and status ``creating``."}],"source_content_type":"text/x-rst","patch_set":13,"id":"f10b386c_d742ba9b","line":156,"range":{"start_line":156,"start_character":43,"end_line":156,"end_character":64},"in_reply_to":"19c3db27_6685ff22","updated":"2026-06-17 17:45:43.000000000","message":"Yes, when listing share replicas today, you see the \"share_id\". It was intentional.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":true,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* Add source share server details to the ``share_server_replicas`` table with"},{"line_number":157,"context_line":"  replica state ``active`` and status ``available``."},{"line_number":158,"context_line":"* Add destination share server details to the ``share_server_replicas`` table"},{"line_number":159,"context_line":"  with share server replica state ``out_of_sync`` and status ``creating``."}],"source_content_type":"text/x-rst","patch_set":13,"id":"19c3db27_6685ff22","line":156,"range":{"start_line":156,"start_character":43,"end_line":156,"end_character":64},"in_reply_to":"c2b6ef3f_8e36de96","updated":"2026-06-17 16:51:01.000000000","message":"After creating the replication, we will update the \"source_share_server_id\" for each share server replica. This allows users to identify which replicas belong to a specific share server, and we use this information to create a list of replicas for that share server to pass to the driver.\n\nHowever, with the \"openstack share server replica list\" command, users cannot identify which replicas belong to the same share server.\n\nShould I add one more field to the \"openstack share server replica list\" called \"source_share_server_id\"? This field will be empty for active server replicas.\n\nTo add this value, there are two approaches:\n\nCreate a new column in the share server replica table\nReuse the \"source_share_server_id\" field, which we are updating after replica creation, for the \"openstack share server replica list\" command\n\nPlease suggest here.\n\nI have added below point in specs, after driver return the success for replica create.\n\nUpdate the ``source_share_server_id`` for destination share server in\n  ``share_servers`` table","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a04ae7b9187590ef791a457cc7a85fc99554ffb5","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Add Share Server Replica Details to Database"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"* Add source share server details to the ``share_server_replicas`` table with"},{"line_number":157,"context_line":"  replica state ``active`` and status ``available``."},{"line_number":158,"context_line":"* Add destination share server details to the ``share_server_replicas`` table"},{"line_number":159,"context_line":"  with share server replica state ``out_of_sync`` and status ``creating``."}],"source_content_type":"text/x-rst","patch_set":13,"id":"713fcba4_dcb7ac2f","line":156,"range":{"start_line":156,"start_character":43,"end_line":156,"end_character":64},"in_reply_to":"f10b386c_d742ba9b","updated":"2026-06-18 13:43:41.000000000","message":"Will make sure share server replica list should have source_share_server_id .","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":163,"context_line":"Make Driver Call"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* The driver create call is issued with the replica, replica list, and all share"},{"line_number":166,"context_line":"  instances under the source share server details."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"On success:"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"d71484a1_4d0ea4fb","line":166,"range":{"start_line":166,"start_character":49,"end_line":166,"end_character":50},"updated":"2026-06-17 06:18:33.000000000","message":"to the back end driver hosting the active replica; or to the one hosting the secondary?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":163,"context_line":"Make Driver Call"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* The driver create call is issued with the replica, replica list, and all share"},{"line_number":166,"context_line":"  instances under the source share server details."},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"On success:"},{"line_number":169,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"df9dd06b_004aa6b1","line":166,"range":{"start_line":166,"start_character":49,"end_line":166,"end_character":50},"in_reply_to":"d71484a1_4d0ea4fb","updated":"2026-06-17 16:51:01.000000000","message":"hosing the secondary. Backend will have both the recodes but we are creating all the objects for secondary.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":172,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":173,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":174,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":175,"context_line":"* Update ``protected_via_share_server_replica`` in the ``share_instances``"},{"line_number":176,"context_line":"  table for each share that needs to be protected."},{"line_number":177,"context_line":"* Update the share server quota."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"On failure:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"1e29fe9a_d6f706be","line":176,"range":{"start_line":175,"start_character":0,"end_line":176,"end_character":50},"updated":"2026-06-17 06:18:33.000000000","message":"no longer necessary","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"a71d0933b36656e7df6b67120a672017e1b7f417","unresolved":true,"context_lines":[{"line_number":172,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":173,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":174,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":175,"context_line":"* Update ``protected_via_share_server_replica`` in the ``share_instances``"},{"line_number":176,"context_line":"  table for each share that needs to be protected."},{"line_number":177,"context_line":"* Update the share server quota."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"On failure:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"e2cf92e2_4764f4e0","line":176,"range":{"start_line":175,"start_character":0,"end_line":176,"end_character":50},"in_reply_to":"1e29fe9a_d6f706be","updated":"2026-06-17 06:42:27.000000000","message":"This is required to distinguish whether the share is protected/not. Few use-cases:\n1. User should be able to create a share without protection(excluded from protection)\n2. Driver can use this metadata flag to toggle the protection status, which is required prior to deletion of share(volume) in case of NetApp driver.\n3. Driver can use this metadata flag to restrict the delete share when it is already protected.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":172,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":173,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":174,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":175,"context_line":"* Update ``protected_via_share_server_replica`` in the ``share_instances``"},{"line_number":176,"context_line":"  table for each share that needs to be protected."},{"line_number":177,"context_line":"* Update the share server quota."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"On failure:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"9154dc6f_eec3c3bf","line":176,"range":{"start_line":175,"start_character":0,"end_line":176,"end_character":50},"in_reply_to":"e2cf92e2_4764f4e0","updated":"2026-06-17 16:51:01.000000000","message":"This identifier enables end users to determine whether a share is protected via the share server. Since ONTAP supports unprotecting shares, we provide end users with the flexibility to unprotect shares that are part of an SMAS-NAS relationship as mentioned by Kumar.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"* If share server replica is not found, raise not-found exception."},{"line_number":191,"context_line":"* Deleting an active share server replica should show proper error message."},{"line_number":192,"context_line":"  The operator must promote the replica before deleting it."},{"line_number":193,"context_line":"* Share server replica status is marked ``deleting`` in DB."},{"line_number":194,"context_line":"* When deleting a share server replica with ``force\u003dTrue``, manager will try"},{"line_number":195,"context_line":"  to delete the share server replica via driver and irrespective of success/failure"}],"source_content_type":"text/x-rst","patch_set":13,"id":"0399eece_48c62504","line":192,"range":{"start_line":192,"start_character":28,"end_line":192,"end_character":59},"updated":"2026-06-17 06:18:33.000000000","message":"```suggestion\n  The operator must promote the non-active replica before deleting the primary active replica.\n```","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"* If share server replica is not found, raise not-found exception."},{"line_number":191,"context_line":"* Deleting an active share server replica should show proper error message."},{"line_number":192,"context_line":"  The operator must promote the replica before deleting it."},{"line_number":193,"context_line":"* Share server replica status is marked ``deleting`` in DB."},{"line_number":194,"context_line":"* When deleting a share server replica with ``force\u003dTrue``, manager will try"},{"line_number":195,"context_line":"  to delete the share server replica via driver and irrespective of success/failure"}],"source_content_type":"text/x-rst","patch_set":13,"id":"603dba66_b803f83d","line":192,"range":{"start_line":192,"start_character":28,"end_line":192,"end_character":59},"in_reply_to":"0399eece_48c62504","updated":"2026-06-17 16:51:01.000000000","message":"Done.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":195,"context_line":"  to delete the share server replica via driver and irrespective of success/failure"},{"line_number":196,"context_line":"  the manila database entry will be deleted for share server replica and"},{"line_number":197,"context_line":"  corresponding share server."},{"line_number":198,"context_line":"* Users should be able to delete the active replica with the force flag if there"},{"line_number":199,"context_line":"  are no replicas associated with it."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Make Driver Call"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"e75c971f_a9454eb2","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":37},"updated":"2026-06-17 06:18:33.000000000","message":"are we missing a \"force\" deletion capability for share servers?","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":195,"context_line":"  to delete the share server replica via driver and irrespective of success/failure"},{"line_number":196,"context_line":"  the manila database entry will be deleted for share server replica and"},{"line_number":197,"context_line":"  corresponding share server."},{"line_number":198,"context_line":"* Users should be able to delete the active replica with the force flag if there"},{"line_number":199,"context_line":"  are no replicas associated with it."},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Make Driver Call"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"a3cce306_2b03d7bc","line":199,"range":{"start_line":198,"start_character":0,"end_line":199,"end_character":37},"in_reply_to":"e75c971f_a9454eb2","updated":"2026-06-17 16:51:01.000000000","message":"We don\u0027t have any force delete for share servers. This will not even deleting any recored on backend it will just delete the db records. I have modify the sentence as below. \nUsers should be able to delete the active replica with the force flag if there\n  are no replicas associated with it. This call will not make a driver call, it\n  will only delete the active replica records from the database.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3fabf09f1d9eba0d726f558456267f00befa1d34","unresolved":true,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"Unplanned failover workflow"},{"line_number":279,"context_line":"---------------------------"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"1. An ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":282,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"2. The manager makes a call to the driver and checks if any failover has"},{"line_number":285,"context_line":"   occurred. The driver needs to add logic to detect if a failover happens"},{"line_number":286,"context_line":"   in the backend and return the failover details to the manager."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"3. If failover is reported, Manila flips control-plane state. Manager does all"},{"line_number":289,"context_line":"   of the following automatically:"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"   * Demote previous active share server replica state to ``out_of_sync``."},{"line_number":292,"context_line":"   * Mark new active share server replica as ``active``."},{"line_number":293,"context_line":"   * Update root active backend pointer ``active_backend_share_server_id``."},{"line_number":294,"context_line":"   * Update the share server status for the new share server replica to"},{"line_number":295,"context_line":"     ``inactive`` and update the share server active share server replica"},{"line_number":296,"context_line":"     status to ``active``."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"4. Update all share instances with correct share server ID and host."},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"e27acbdb_59ba457e","line":296,"range":{"start_line":280,"start_character":0,"end_line":296,"end_character":25},"updated":"2026-06-17 06:18:33.000000000","message":"This \"automatic\" disaster detection and promotion feature doesn\u0027t exist for share replicas currently. When you have the ability to plug a whole another network to a replica, automatic promotion has disastrous consequences.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"c101aec36affb203786631836aabc03004aca712","unresolved":false,"context_lines":[{"line_number":277,"context_line":""},{"line_number":278,"context_line":"Unplanned failover workflow"},{"line_number":279,"context_line":"---------------------------"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"1. An ``unplanned_failover_check_interval`` method will be added to the manager,"},{"line_number":282,"context_line":"   which will be invoked at a configurable periodic interval."},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"2. The manager makes a call to the driver and checks if any failover has"},{"line_number":285,"context_line":"   occurred. The driver needs to add logic to detect if a failover happens"},{"line_number":286,"context_line":"   in the backend and return the failover details to the manager."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"3. If failover is reported, Manila flips control-plane state. Manager does all"},{"line_number":289,"context_line":"   of the following automatically:"},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"   * Demote previous active share server replica state to ``out_of_sync``."},{"line_number":292,"context_line":"   * Mark new active share server replica as ``active``."},{"line_number":293,"context_line":"   * Update root active backend pointer ``active_backend_share_server_id``."},{"line_number":294,"context_line":"   * Update the share server status for the new share server replica to"},{"line_number":295,"context_line":"     ``inactive`` and update the share server active share server replica"},{"line_number":296,"context_line":"     status to ``active``."},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"4. Update all share instances with correct share server ID and host."},{"line_number":299,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"50b1708a_fa44cd7f","line":296,"range":{"start_line":280,"start_character":0,"end_line":296,"end_character":25},"in_reply_to":"e27acbdb_59ba457e","updated":"2026-06-17 16:51:01.000000000","message":"yes, it is not there for share replica.\nIn the case of SMAS-NAS, ONTAP automatically promotes to secondary in case of failure and takes care of the IO path (there is no impact on the IO path as ONTAP handles this). To fix the control path backend, ONTAP should notify the core that an automatic promotion has occurred on ONTAP so that it can change the required database records to ensure there is no impact on the control path.\n\nIn our case, we are not even changing any networking components, so in the case of the NetApp driver, it will be less risky.","commit_id":"8426584ffe4f3a8f9ca7cf3d034c374a11a588e2"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* Add a database record for the destination share server in the"},{"line_number":149,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":150,"context_line":"*"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Add Share Server Replica Details to Database"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"d7099a81_3016870a","line":150,"updated":"2026-06-18 21:39:09.000000000","message":"drop empty bullet","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* Add a database record for the destination share server in the"},{"line_number":149,"context_line":"  ``share_servers`` table with status set to creating."},{"line_number":150,"context_line":"*"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"Add Share Server Replica Details to Database"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"0e6ef35b_a9947465","line":150,"in_reply_to":"d7099a81_3016870a","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"On failure:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Share server replica status is set to ``error`` and ``replica_state`` set to"},{"line_number":216,"context_line":"  ``out_of_sync`` if it is ``in_sync``."},{"line_number":217,"context_line":"* Share server replica status is set to ``error_deleting`` and ``replica_state``"},{"line_number":218,"context_line":"  set to ``error`` if backend call raises an exception."},{"line_number":219,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"17e0f18e_ebaf28c6","line":216,"range":{"start_line":215,"start_character":72,"end_line":216,"end_character":39},"updated":"2026-06-18 21:39:09.000000000","message":"seems wrong, rewrite with what you truly mean","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":212,"context_line":""},{"line_number":213,"context_line":"On failure:"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"* Share server replica status is set to ``error`` and ``replica_state`` set to"},{"line_number":216,"context_line":"  ``out_of_sync`` if it is ``in_sync``."},{"line_number":217,"context_line":"* Share server replica status is set to ``error_deleting`` and ``replica_state``"},{"line_number":218,"context_line":"  set to ``error`` if backend call raises an exception."},{"line_number":219,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3a4d9057_bb5411e9","line":216,"range":{"start_line":215,"start_character":72,"end_line":216,"end_character":39},"in_reply_to":"17e0f18e_ebaf28c6","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"aa7f5403048df2310e6c56e69493b1d2bb5ceafd","unresolved":true,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* Share server replica must exist."},{"line_number":251,"context_line":"* Share server replica must not be active."},{"line_number":252,"context_line":"* Share server replica must be ``in_sync``."},{"line_number":253,"context_line":"* Set share server replica state to ``replication_change``."},{"line_number":254,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":255,"context_line":"  share server."}],"source_content_type":"text/x-rst","patch_set":16,"id":"21f3a7ff_ac5866cd","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":43},"updated":"2026-06-18 21:58:40.000000000","message":"When a disaster occurs, this could actually transition to \"out_of_sync\". See how share replication handles this.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* Share server replica must exist."},{"line_number":251,"context_line":"* Share server replica must not be active."},{"line_number":252,"context_line":"* Share server replica must be ``in_sync``."},{"line_number":253,"context_line":"* Set share server replica state to ``replication_change``."},{"line_number":254,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":255,"context_line":"  share server."}],"source_content_type":"text/x-rst","patch_set":16,"id":"c8ed7058_95463341","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":43},"in_reply_to":"21f3a7ff_ac5866cd","updated":"2026-06-19 14:22:21.000000000","message":"yes we have the same check for share replica \n\nif (replica_state in (constants.REPLICA_STATE_OUT_OF_SYNC,\n                              constants.STATUS_ERROR)\n                and not context.is_admin):\n            msg \u003d _(\"Promoting a replica with \u0027replica_state\u0027: %s requires \"\n                    \"administrator privileges.\")\n            raise exception.AdminRequired(\n                message\u003dmsg % replica_state)","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* Share server replica must exist."},{"line_number":251,"context_line":"* Share server replica must not be active."},{"line_number":252,"context_line":"* Share server replica must be ``in_sync``."},{"line_number":253,"context_line":"* Set share server replica state to ``replication_change``."},{"line_number":254,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":255,"context_line":"  share server."}],"source_content_type":"text/x-rst","patch_set":16,"id":"d8392484_bc241d95","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":43},"in_reply_to":"c8ed7058_95463341","updated":"2026-06-19 14:39:04.000000000","message":"Yes, but this API is admin only. So, the same problem doesn\u0027t apply here","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":"* Share server replica must exist."},{"line_number":251,"context_line":"* Share server replica must not be active."},{"line_number":252,"context_line":"* Share server replica must be ``in_sync``."},{"line_number":253,"context_line":"* Set share server replica state to ``replication_change``."},{"line_number":254,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":255,"context_line":"  share server."}],"source_content_type":"text/x-rst","patch_set":16,"id":"095ec5f9_5fbf6399","line":252,"range":{"start_line":252,"start_character":0,"end_line":252,"end_character":43},"in_reply_to":"d8392484_bc241d95","updated":"2026-06-19 16:25:10.000000000","message":"Yes, I have recheck the code. But ideally if it is planned failover, we wanted to make sure relationship is healthy and in-sync (primary and secondary copy should be same).\nAnyway, I am removing this, leaving this on driver how they wanted to implement this.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"aa7f5403048df2310e6c56e69493b1d2bb5ceafd","unresolved":true,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"   * Demote previous active share server replica state to ``out_of_sync``."},{"line_number":290,"context_line":"   * Mark new active share server replica as ``active``."},{"line_number":291,"context_line":"   * Update root active backend pointer ``active_backend_share_server_id``."},{"line_number":292,"context_line":"   * Update the share server status for the new share server replica to"},{"line_number":293,"context_line":"     ``inactive`` and update the share server active share server replica"},{"line_number":294,"context_line":"     status to ``active``."}],"source_content_type":"text/x-rst","patch_set":16,"id":"352b0127_ff7761b1","line":291,"range":{"start_line":291,"start_character":0,"end_line":291,"end_character":75},"updated":"2026-06-18 21:58:40.000000000","message":"this is no longer in the design","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":288,"context_line":""},{"line_number":289,"context_line":"   * Demote previous active share server replica state to ``out_of_sync``."},{"line_number":290,"context_line":"   * Mark new active share server replica as ``active``."},{"line_number":291,"context_line":"   * Update root active backend pointer ``active_backend_share_server_id``."},{"line_number":292,"context_line":"   * Update the share server status for the new share server replica to"},{"line_number":293,"context_line":"     ``inactive`` and update the share server active share server replica"},{"line_number":294,"context_line":"     status to ``active``."}],"source_content_type":"text/x-rst","patch_set":16,"id":"de10c36e_1f29550b","line":291,"range":{"start_line":291,"start_character":0,"end_line":291,"end_character":75},"in_reply_to":"352b0127_ff7761b1","updated":"2026-06-19 14:22:21.000000000","message":"Yes, Removed","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":302,"context_line":"  poll cycle."},{"line_number":303,"context_line":"* Effective switchover latency is approximately equal to the configured value"},{"line_number":304,"context_line":"  of ``share_server_failover_check_interval``."},{"line_number":305,"context_line":"* ``share_server_failover_check_interval`` will be a configurable"},{"line_number":306,"context_line":"  ``manila.conf`` option. If not explicitly set, the default interval is"},{"line_number":307,"context_line":"  ``300`` seconds."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Replica states"},{"line_number":310,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"f7178950_f5c885f5","line":307,"range":{"start_line":305,"start_character":0,"end_line":307,"end_character":18},"updated":"2026-06-18 21:39:09.000000000","message":"how do you turn it off?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":302,"context_line":"  poll cycle."},{"line_number":303,"context_line":"* Effective switchover latency is approximately equal to the configured value"},{"line_number":304,"context_line":"  of ``share_server_failover_check_interval``."},{"line_number":305,"context_line":"* ``share_server_failover_check_interval`` will be a configurable"},{"line_number":306,"context_line":"  ``manila.conf`` option. If not explicitly set, the default interval is"},{"line_number":307,"context_line":"  ``300`` seconds."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"Replica states"},{"line_number":310,"context_line":"~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":16,"id":"e4033640_5cf410c8","line":307,"range":{"start_line":305,"start_character":0,"end_line":307,"end_character":18},"in_reply_to":"f7178950_f5c885f5","updated":"2026-06-19 14:22:21.000000000","message":"@periodic_task.periodic_task(\n        spacing\u003dCONF.share_server_failover_check_interval,\n        enabled\u003dbool(CONF.share_server_failover_check_interval))\n        \n        If use will pass the 0 value then it will be disabling it.\n        Will add this point","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"99fe68c554a038424b332311904a1055f12c04e1","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"58f83446_c741afd9","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"updated":"2026-06-18 15:25:01.000000000","message":"@gouthampravi@gmail.com, As we are adding 3 columns in share server table. Instead of adding these 3 column, can we have one separate table which will have record of these filed along with share server id. Rest of the things we can get from share server tables.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"2b6d3c39_06ca6def","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"1caa7c76_a40f4c9d","updated":"2026-06-19 14:22:21.000000000","message":"Q1: replica_status\": how is this different from status?\n\nShare server has below status:\nactive error deleting creating manage_starting unmanage_starting unmanage_error manage_error inactive server_migrating server_migrating_to network_change\n\nWhile share server has below status\navailable, deleting, error, creating etc.\n\nOnce replica is created, we are setting des share server status to inactive while we are setting replica status to be available.\nI think replication_status we must add.\n\n\nQ2: replica_availability_zone_id\": \nWhile creating the share server replica we need to pass either host or availability zone as in below command, initial plan was passing the host but based on Maurice comment I have changed it to AZ.\n\nopenstack share server replica create \\\n        [--property \u003ckey\u003dvalue\u003e] \\\n        [--wait] [--availability-zone \u003cavailability-zone\u003e] \\\n        \u003cshare-server\u003e\n\nIf the user does not provide an AZ, the system will use the source share server\u0027s AZ. The purpose of the AZ is to obtain a list of hosts/backends to provision the destination share server. The AZ will be used to place the destination share server. Even the network/subnet associated with the AZ will not be used anywhere. Below is the workflow for share server creation for replicas:\n\nBased on the API/CLI input, we will find a list of hosts under the AZ.\nPick one of the hosts for share server creation and add the database records with the share_server_id, host, and replication-related details.\nDuring replica creation, we pass the share server with the host to driver. Based on the host and share server, we create the SVM during replication creation.\n\nMy intention is to add the replica_availability_zone_id to the share server table so that the AZ details can be listed in the share server replica list command.\n\nAs we discussed previously that we don\u0027t need any networking on destination share server so even we remove the share_network option which I have added previously, similarly here also, even we are providing the AZ here we will not create the share network for des share server.\n\nIf we are removing the replica_availability_zone_id column, in that case we can show the host column, which is also fine for me. But do you agree to passing the AZ during replica creation?\n\nBy the way, I added the following field to manila.conf and restarted the service:\n\nbackend_availability_zone \u003d NOVA_1\nThis will be the AZ for the share backend.\n\nYes, I have checked that during share network creation we need to add the AZ for the share network, where the user can either select the network /subnet or None.\n\ncan a share server replica be in a different AZ than the shares?\nYes, ONTAP support source and destination share sever can be in different network or subnet.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"25f61bca3b86ec1fcf55d634ee2ef64d08607c79","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"fb7bddac_e5a52e84","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"2b6d3c39_06ca6def","updated":"2026-06-19 18:37:42.000000000","message":"I have removed the \"replica_availability_zone_id\" from table but I still feel that we need to have replication_status for share server replica.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":false,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"068af080_f07877fa","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"3aa5c7bf_7d7323fb","updated":"2026-06-25 22:55:00.000000000","message":"\u003e So, In this case we can\u0027t show the AZ as part of share server replica list or show, instead of showing the AZ we can show the host of destination share server...?\n\nThe host should be shown; but the AZ would be correct information too. I guess I\u0027m confused if this is hard to grok because it feels like we\u0027ve gone around a lot regarding how AZs are designed. \n\nMaybe we\u0027ll take this to implementation. If it\u0027s significant, let\u0027s update the spec when that happens","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1caa7c76_a40f4c9d","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"58f83446_c741afd9","updated":"2026-06-18 21:39:09.000000000","message":"I don\u0027t agree with adding:\n\n\"replica_status\": how is this different from status?\n\"replica_availability_zone_id\": We know a share server is in a particular AZ because of two things today:\n\n- share network subnet\u0027s AZ\n- share\u0027s AZ\n\nEssentially, these are the same. Except, there was a reason to allow share network subnets to be created independently first and plan AZ assignments while still preserving the AZ assignments to shares.\n\ncan a share server replica be in a different AZ than the shares? \n\nWhat happens to the subnet AZ or the share AZ after a secondary share server in a different AZ gets promoted?\n\nI don\u0027t see the subnet AZ check called out in the \"create server replica\" API so far. Have you thought about this? A subnet cannot span two AZs unless it is the default subnet. Which is fine, I\u0027d like to see this check added though. \n\nif you\u0027re able to design for this.. you\u0027d call the field \"availability_zone_id\" and it should be a reference to the AZ table.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ec74ac917e1059ff1bb6ede49bb38c19bd9f0246","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"cece5f24_b1cc8992","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"7ff0e625_e496097f","updated":"2026-06-20 14:20:20.000000000","message":"Thanks Goutham and Carloss, I understood your points. Let me conclude and  summarize my understanding here. Please correct me if I am wrong.\n\n\n\nShare server replica status:\n\n1.  We are showing the share server replica status as part of the share server replica list command.\n2. Since most of the status\u0027s value of the share server and share server replica are almost same, only few are not matching, and for those, we need to derive the replica status from the share server status. For example, a des share server \"inactive\" status should be mapped to a share replica \"available\" status, etc...\n3. Since we are deriving the share server status from the server status, I am removing the \"replica_status\" column from the share_servers database from the specs.\n\n\n\nAvailability zone:\n\n1. We can provide the AZ during share server replication creation. We will have the following command for share server replication creation:\nopenstack share server replica create \\\n        [--property \u003ckey\u003dvalue\u003e] \\\n        [--wait] [--availability-zone \u003cavailability-zone\u003e] \\\n        \u003cshare-server\u003e\n2. During share server replication creation, add validation to ensure that the AZ is associated with the share network/subnet.\n3. We can retrieve the AZ from the share server subnet and display it in the output of the share server replica list command.\n\n\nI am making the above changes in my specs. Please let me know if my understanding is correct and review the document again.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9f1be148b984686148b546ae70e7d7c082c028f4","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"7ff0e625_e496097f","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"bef724c3_8d30cb90","updated":"2026-06-19 22:39:32.000000000","message":"My two cents here:\n\u003e For indicating the status of replication, you already have a \"replica_state\". Adding \"replication_status\" leads to a whole level of confusion which needs additional documentation to clarify. This is bad design. \n\nIf we already have a replica state - which is more appropriate and in line with what share replication does - we indeed do not need a replica status. IMHO we should try to keep as similar to share replication as possible because it\u0027s a better UX.\n\n\u003e We have added AZ awareness to shares and networks. When you see how these two interact today, AZ hints in shares will respect AZ awareness in networks. \n\nAnd maybe this thing can be causing a bit of confusion: availability zones are meant to be used as a way for us to determine pools where replication or other operations are possible between hosts, as it is by design in availability zones for clouds. In this scenario, if we have the share server availability zone and it is disconnected from shares and share networks, it would not make sense. We need to have these connected. I agree with the idea of: give the user the availability zone and the share network should have at least one that spans it.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9720b2b247b231ea69a29b0c65a77132f6b633c6","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"3aa5c7bf_7d7323fb","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"cece5f24_b1cc8992","updated":"2026-06-20 17:01:52.000000000","message":"\u003c3.We can retrieve the AZ from the share server subnet and display it in the output of the share server replica list command.\u003e\nAs we are NOT planning to add the share network to replica (des) share server in this case we can get the availability zone as network/subnet will be empty for destination share server. So, In this case we can\u0027t show the AZ as part of share server replica list or show, instead of showing the AZ we can show the host of destination share server...?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4fc3519b40c3cecbffb96d71c07d49db718540d","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"``share_servers`` table (existing table, new column added)::"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    +------------------------+-------------+----------+--------------------------------+"},{"line_number":364,"context_line":"    | replica_state          | string(32)  | No       | active/in_sync/out_of_sync      |"},{"line_number":365,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":366,"context_line":"    | replica_status                 | Enum        | No       | creating/available/etc  |"},{"line_number":367,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":368,"context_line":"    | replica_availability_zone_id   | string(36)  | Yes      | FK to availability_zones|"},{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"bef724c3_8d30cb90","line":371,"range":{"start_line":363,"start_character":4,"end_line":371,"end_character":0},"in_reply_to":"fb7bddac_e5a52e84","updated":"2026-06-19 19:21:59.000000000","message":"I still refute both these points because I don\u0027t think this behaves well with how OpenStack clouds/storage are organized. I want to disconnect the piece from whatever ONTAP is meant to do. \n\nFor indicating the status of replication, you already have a \"replica_state\". Adding \"replication_status\" leads to a whole level of confusion which needs additional documentation to clarify. This is bad design. \n\nYour argument is that \"status\" can be \"active\" while \"replica_status\" can be \"available\".. Other than that, \"status\" has a wide range of possibilities while \"replica_status\" only has three (available, creating, deleting, error). \n\nYou should know that \"active\" and \"inactive\" were analogous to \"available\". We adopted the \"active\" language because share servers were meant to be like Nova instances. Outside of the Generic driver, Windows driver and others that use Nova instances as share servers, that language kinda got confusing. However, this is historic detail, and there\u0027s no point of us \"fixing\" that up now. \n\nYour argument is also that you\u0027d like a destination share server (or secondary share server in a replication relationship) to be \"inactive\" until a promotion. This, you claim is because Manila would use any \"active\" share server for provisioning. This in my opinion is something your feature should enhance. You can easily make Manila\u0027s logic to look for existing \"active\" share servers that have replica_state in (\"None\", \"active\") for provisioning. The check would disqualify any share servers that have \"status !\u003d active\" and \"replica_state\u003din_sync|out_of_sync|error\". \n\n\nOn Availability Zones.. \n\n\nWe have added AZ awareness to shares and networks. When you see how these two interact today, AZ hints in shares will respect AZ awareness in networks. You\u0027re inventing a third AZ hint in share servers. My point is that this is unnecessary. What you need is probably a admin telling you that they need their share server to be replicated to a particular AZ.. but, when they do that, you\u0027d check whether they have an existing share network subnet in that AZ and use it to provision the replica. \n\nUnfortunately, this is something NetApp can\u0027t do. BUT, this should be a possibility for the future for a different driver - because disaster recovery is planned like this.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":375,"context_line":"    | Field                   | Type        | Nullable | Notes          |"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a341d5f_164c2fe3","line":372,"range":{"start_line":372,"start_character":0,"end_line":372,"end_character":29},"updated":"2026-06-18 21:39:09.000000000","message":"please call this \"share_server_metadata\" to keep it generic; it doesn\u0027t have to be replication specific, although you\u0027d only see replicas using it today","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":369,"context_line":"    +------------------------+-------------+----------+---------------------------------+"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"share_server_replica_metadata::"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":375,"context_line":"    | Field                   | Type        | Nullable | Notes          |"}],"source_content_type":"text/x-rst","patch_set":16,"id":"74d1b748_837ceceb","line":372,"range":{"start_line":372,"start_character":0,"end_line":372,"end_character":29},"in_reply_to":"5a341d5f_164c2fe3","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":376,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":377,"context_line":"    | id                      | string(36)  | No       | Primary key    |"},{"line_number":378,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":379,"context_line":"    | share_server_replica_id | string(36)  | No       | FK to replica  |"},{"line_number":380,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":381,"context_line":"    | key                     | string(255) | No       | metadata key   |"},{"line_number":382,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"134017f2_9f618beb","line":379,"range":{"start_line":379,"start_character":6,"end_line":379,"end_character":29},"updated":"2026-06-18 21:39:09.000000000","message":"share_server_id","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":376,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":377,"context_line":"    | id                      | string(36)  | No       | Primary key    |"},{"line_number":378,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":379,"context_line":"    | share_server_replica_id | string(36)  | No       | FK to replica  |"},{"line_number":380,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":381,"context_line":"    | key                     | string(255) | No       | metadata key   |"},{"line_number":382,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5a0a4a93_78ffb70d","line":379,"range":{"start_line":379,"start_character":6,"end_line":379,"end_character":29},"in_reply_to":"134017f2_9f618beb","updated":"2026-06-19 14:22:21.000000000","message":"Marked as resolved.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":385,"context_line":""},{"line_number":386,"context_line":""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"An Alembic migration will create both new tables, add the"},{"line_number":389,"context_line":"``replica_state`` and ``replica_status``column to ``share_instances``, and"},{"line_number":390,"context_line":"create the associated indexes."},{"line_number":391,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"25ac2d55_cba00cda","line":388,"range":{"start_line":388,"start_character":33,"end_line":388,"end_character":48},"updated":"2026-06-18 21:39:09.000000000","message":"the metadata table","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":385,"context_line":""},{"line_number":386,"context_line":""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"An Alembic migration will create both new tables, add the"},{"line_number":389,"context_line":"``replica_state`` and ``replica_status``column to ``share_instances``, and"},{"line_number":390,"context_line":"create the associated indexes."},{"line_number":391,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"85ee8082_90a905b0","line":388,"range":{"start_line":388,"start_character":33,"end_line":388,"end_character":48},"in_reply_to":"25ac2d55_cba00cda","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":386,"context_line":""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"An Alembic migration will create both new tables, add the"},{"line_number":389,"context_line":"``replica_state`` and ``replica_status``column to ``share_instances``, and"},{"line_number":390,"context_line":"create the associated indexes."},{"line_number":391,"context_line":""},{"line_number":392,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"fecf9bc4_012d98bc","line":389,"range":{"start_line":389,"start_character":51,"end_line":389,"end_character":69},"updated":"2026-06-18 21:39:09.000000000","message":"``share_servers``?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":386,"context_line":""},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"An Alembic migration will create both new tables, add the"},{"line_number":389,"context_line":"``replica_state`` and ``replica_status``column to ``share_instances``, and"},{"line_number":390,"context_line":"create the associated indexes."},{"line_number":391,"context_line":""},{"line_number":392,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"42c92022_2035a115","line":389,"range":{"start_line":389,"start_character":51,"end_line":389,"end_character":69},"in_reply_to":"fecf9bc4_012d98bc","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    openstack share server replica create \\"},{"line_number":401,"context_line":"        [--property \u003ckey\u003dvalue\u003e] \\"},{"line_number":402,"context_line":"        [--wait] \u003cavailability-zone\u003e  \u003cshare-server\u003e"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"e9b2c64e_742b747f","line":402,"range":{"start_line":402,"start_character":17,"end_line":402,"end_character":37},"updated":"2026-06-18 21:39:09.000000000","message":"this should come as the second parameter, or as an optional parameter","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    openstack share server replica create \\"},{"line_number":401,"context_line":"        [--property \u003ckey\u003dvalue\u003e] \\"},{"line_number":402,"context_line":"        [--wait] \u003cavailability-zone\u003e  \u003cshare-server\u003e"},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"    openstack share server replica delete [--force] \u003creplica\u003e [\u003creplica\u003e ...]"},{"line_number":405,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"4eb389fe_6af1658f","line":402,"range":{"start_line":402,"start_character":17,"end_line":402,"end_character":37},"in_reply_to":"e9b2c64e_742b747f","updated":"2026-06-19 14:22:21.000000000","message":"Agree, done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":430,"context_line":"    {"},{"line_number":431,"context_line":"        \"share_server_replica\": {"},{"line_number":432,"context_line":"            \"share_server\": \"\u003cshare_server_uuid\u003e\","},{"line_number":433,"context_line":"            \"replica_availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":434,"context_line":"            \"property\": {"},{"line_number":435,"context_line":"                \"replication_policy\": \"AutomatedFailOver\""},{"line_number":436,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":16,"id":"af65d4af_912b5f01","line":433,"range":{"start_line":433,"start_character":13,"end_line":433,"end_character":38},"updated":"2026-06-18 21:39:09.000000000","message":"no need to call this \"replica_availability_zone\", it\u0027s in the context of a replica, just \"availability_zone\" will suffice","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":430,"context_line":"    {"},{"line_number":431,"context_line":"        \"share_server_replica\": {"},{"line_number":432,"context_line":"            \"share_server\": \"\u003cshare_server_uuid\u003e\","},{"line_number":433,"context_line":"            \"replica_availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":434,"context_line":"            \"property\": {"},{"line_number":435,"context_line":"                \"replication_policy\": \"AutomatedFailOver\""},{"line_number":436,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9e2bf9a7_ba9d7ec0","line":433,"range":{"start_line":433,"start_character":13,"end_line":433,"end_character":38},"in_reply_to":"af65d4af_912b5f01","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"aa7f5403048df2310e6c56e69493b1d2bb5ceafd","unresolved":true,"context_lines":[{"line_number":432,"context_line":"            \"share_server\": \"\u003cshare_server_uuid\u003e\","},{"line_number":433,"context_line":"            \"replica_availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":434,"context_line":"            \"property\": {"},{"line_number":435,"context_line":"                \"replication_policy\": \"AutomatedFailOver\""},{"line_number":436,"context_line":"            }"},{"line_number":437,"context_line":"        }"},{"line_number":438,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":16,"id":"12e0969c_ba6f356f","line":435,"range":{"start_line":435,"start_character":16,"end_line":435,"end_character":57},"updated":"2026-06-18 21:58:40.000000000","message":"Use vendor-neutral examples.\n\nprobably \n\n\"replication_policy\": \"gold\"","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":432,"context_line":"            \"share_server\": \"\u003cshare_server_uuid\u003e\","},{"line_number":433,"context_line":"            \"replica_availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":434,"context_line":"            \"property\": {"},{"line_number":435,"context_line":"                \"replication_policy\": \"AutomatedFailOver\""},{"line_number":436,"context_line":"            }"},{"line_number":437,"context_line":"        }"},{"line_number":438,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":16,"id":"2d283f7b_c3b2db7d","line":435,"range":{"start_line":435,"start_character":16,"end_line":435,"end_character":57},"in_reply_to":"12e0969c_ba6f356f","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":506,"context_line":"    }"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"**Update share server replica**::"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    PUT /v2/{project_id}/share-server-replicas/{share_server_replica_id}"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"Request::"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    {"},{"line_number":516,"context_line":"        \"share_server_replica\": {"},{"line_number":517,"context_line":"            \"property\": {"},{"line_number":518,"context_line":"                \"env\": \"AutomatedFailOver\""},{"line_number":519,"context_line":"            }"},{"line_number":520,"context_line":"        }"},{"line_number":521,"context_line":"    }"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"Response(200)::"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    {"},{"line_number":526,"context_line":"        \"share_server_replica\": {"},{"line_number":527,"context_line":"            \"id\": \"\u003creplica_uuid\u003e\","},{"line_number":528,"context_line":"            \"share_server_id\": \"\u003cshare_server_uuid\u003e\","},{"line_number":529,"context_line":"            \"replica_availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":530,"context_line":"            \"replica_status\": \"available\","},{"line_number":531,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":532,"context_line":"            \"property\": {"},{"line_number":533,"context_line":"                \"env\": \"AutomatedFailOver\""},{"line_number":534,"context_line":"            }"},{"line_number":535,"context_line":"        }"},{"line_number":536,"context_line":"    }"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The API may also accept admin-only updates for ``replica_state`` and"},{"line_number":539,"context_line":"``status``."},{"line_number":540,"context_line":""},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"**Delete share server replica**::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"cdd6a346_b8e19c01","line":539,"range":{"start_line":509,"start_character":0,"end_line":539,"end_character":11},"updated":"2026-06-18 21:39:09.000000000","message":"Metadata APIs don\u0027t work like this; you don\u0027t need to spell all of them out in detail.. but, I wouldn\u0027t use the PUT on `/v2/{project_id}/share-server-replicas/{share_server_replica_id}` to update metadata. That\u0027s not according to the metadata behavior today.\n\n\"reset-state\" and \"reset-replica-state\" APIs aren\u0027t implemented as \"PUT\" either for the other resources. They\u0027re implemented via `/action` APIs. I don\u0027t believe we need a \"PUT\" API at all.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":506,"context_line":"    }"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":""},{"line_number":509,"context_line":"**Update share server replica**::"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"    PUT /v2/{project_id}/share-server-replicas/{share_server_replica_id}"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"Request::"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    {"},{"line_number":516,"context_line":"        \"share_server_replica\": {"},{"line_number":517,"context_line":"            \"property\": {"},{"line_number":518,"context_line":"                \"env\": \"AutomatedFailOver\""},{"line_number":519,"context_line":"            }"},{"line_number":520,"context_line":"        }"},{"line_number":521,"context_line":"    }"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"Response(200)::"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"    {"},{"line_number":526,"context_line":"        \"share_server_replica\": {"},{"line_number":527,"context_line":"            \"id\": \"\u003creplica_uuid\u003e\","},{"line_number":528,"context_line":"            \"share_server_id\": \"\u003cshare_server_uuid\u003e\","},{"line_number":529,"context_line":"            \"replica_availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":530,"context_line":"            \"replica_status\": \"available\","},{"line_number":531,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":532,"context_line":"            \"property\": {"},{"line_number":533,"context_line":"                \"env\": \"AutomatedFailOver\""},{"line_number":534,"context_line":"            }"},{"line_number":535,"context_line":"        }"},{"line_number":536,"context_line":"    }"},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"The API may also accept admin-only updates for ``replica_state`` and"},{"line_number":539,"context_line":"``status``."},{"line_number":540,"context_line":""},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"**Delete share server replica**::"}],"source_content_type":"text/x-rst","patch_set":16,"id":"1f7c7a0a_eb2a1923","line":539,"range":{"start_line":509,"start_character":0,"end_line":539,"end_character":11},"in_reply_to":"cdd6a346_b8e19c01","updated":"2026-06-19 14:22:21.000000000","message":"I refer replica doc and fix those. Also I have added the API to updating the state and status for replica. Thanks for pointing these.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    DELETE /v2/{project_id}/share-server-replicas/{share_server_replica_id}"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"The request may include ``force\u003dTrue``. Deleting an active replica without"},{"line_number":547,"context_line":"force should fail."},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"Response(202)::"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"3b22520f_87c0e40a","line":547,"range":{"start_line":546,"start_character":0,"end_line":547,"end_character":18},"updated":"2026-06-18 21:39:09.000000000","message":"DELETE doesn\u0027t accept a JSON body. that\u0027d be against the IETF REST RFC. \n\nYou\u0027ll need to create a `/action` API for force deletions...","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    DELETE /v2/{project_id}/share-server-replicas/{share_server_replica_id}"},{"line_number":545,"context_line":""},{"line_number":546,"context_line":"The request may include ``force\u003dTrue``. Deleting an active replica without"},{"line_number":547,"context_line":"force should fail."},{"line_number":548,"context_line":""},{"line_number":549,"context_line":"Response(202)::"},{"line_number":550,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"2a812326_06e0f306","line":547,"range":{"start_line":546,"start_character":0,"end_line":547,"end_character":18},"in_reply_to":"3b22520f_87c0e40a","updated":"2026-06-19 14:22:21.000000000","message":"Done, added the correct API for force delete. Used the same what share replica is using.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":581,"context_line":"    None"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"Policy rules will be added for create, delete, show, list, update, promote,"},{"line_number":584,"context_line":"and resync. Mutating actions should remain admin-only by default."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"Promotion and resync are expected to include strict backend prechecks in"},{"line_number":587,"context_line":"active-sync implementations, such as healthy relationship state, mediator"}],"source_content_type":"text/x-rst","patch_set":16,"id":"9ee81e6d_84bbd52b","line":584,"range":{"start_line":584,"start_character":11,"end_line":584,"end_character":20},"updated":"2026-06-18 21:39:09.000000000","message":"All","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":581,"context_line":"    None"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"Policy rules will be added for create, delete, show, list, update, promote,"},{"line_number":584,"context_line":"and resync. Mutating actions should remain admin-only by default."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"Promotion and resync are expected to include strict backend prechecks in"},{"line_number":587,"context_line":"active-sync implementations, such as healthy relationship state, mediator"}],"source_content_type":"text/x-rst","patch_set":16,"id":"0e7fe5a2_4319123e","line":584,"range":{"start_line":584,"start_character":11,"end_line":584,"end_character":20},"in_reply_to":"9ee81e6d_84bbd52b","updated":"2026-06-19 14:22:21.000000000","message":"Done","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":584,"context_line":"and resync. Mutating actions should remain admin-only by default."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"Promotion and resync are expected to include strict backend prechecks in"},{"line_number":587,"context_line":"active-sync implementations, such as healthy relationship state, mediator"},{"line_number":588,"context_line":"connectivity, and no concurrent conflicting operations."},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"d68d46e6_2c622e70","line":587,"range":{"start_line":587,"start_character":65,"end_line":587,"end_character":73},"updated":"2026-06-18 21:39:09.000000000","message":"what does this mean?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":584,"context_line":"and resync. Mutating actions should remain admin-only by default."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"Promotion and resync are expected to include strict backend prechecks in"},{"line_number":587,"context_line":"active-sync implementations, such as healthy relationship state, mediator"},{"line_number":588,"context_line":"connectivity, and no concurrent conflicting operations."},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"b0029374_4f69ef90","line":587,"range":{"start_line":587,"start_character":65,"end_line":587,"end_character":73},"in_reply_to":"acfe59f2_85e3995a","updated":"2026-06-19 16:25:10.000000000","message":"Will remove this.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":584,"context_line":"and resync. Mutating actions should remain admin-only by default."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"Promotion and resync are expected to include strict backend prechecks in"},{"line_number":587,"context_line":"active-sync implementations, such as healthy relationship state, mediator"},{"line_number":588,"context_line":"connectivity, and no concurrent conflicting operations."},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"fcb5646c_fcf2b223","line":587,"range":{"start_line":587,"start_character":65,"end_line":587,"end_character":73},"in_reply_to":"d68d46e6_2c622e70","updated":"2026-06-19 14:22:21.000000000","message":"For SMAS-NAS replication, we need to mediator (third party software), which will keep monitoring the relationship and in case of failure it will promote the secondary.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":584,"context_line":"and resync. Mutating actions should remain admin-only by default."},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"Promotion and resync are expected to include strict backend prechecks in"},{"line_number":587,"context_line":"active-sync implementations, such as healthy relationship state, mediator"},{"line_number":588,"context_line":"connectivity, and no concurrent conflicting operations."},{"line_number":589,"context_line":""},{"line_number":590,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"acfe59f2_85e3995a","line":587,"range":{"start_line":587,"start_character":65,"end_line":587,"end_character":73},"in_reply_to":"fcb5646c_fcf2b223","updated":"2026-06-19 14:39:04.000000000","message":"That\u0027s not a vendor agnostic detail we need to capture. What is the third party software that will apply to manila?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":594,"context_line":"There is no impact for drivers that do not want to support this feature."},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"Drivers that want to support share server replication must implement the"},{"line_number":597,"context_line":"following driver hooks in the share driver interface:"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":".. code-block:: python"},{"line_number":600,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"ab002f8a_d397435f","line":597,"range":{"start_line":597,"start_character":17,"end_line":597,"end_character":22},"updated":"2026-06-18 21:39:09.000000000","message":"interfaces or methods. These aren\u0027t share driver hooks.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":594,"context_line":"There is no impact for drivers that do not want to support this feature."},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"Drivers that want to support share server replication must implement the"},{"line_number":597,"context_line":"following driver hooks in the share driver interface:"},{"line_number":598,"context_line":""},{"line_number":599,"context_line":".. code-block:: python"},{"line_number":600,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"1d8b11ce_118bcaab","line":597,"range":{"start_line":597,"start_character":17,"end_line":597,"end_character":22},"in_reply_to":"ab002f8a_d397435f","updated":"2026-06-19 14:22:21.000000000","message":"Changed hooks to methods","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":".. code-block:: python"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":602,"context_line":"                                    share_server_replica_list,"},{"line_number":603,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":605,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"5156dc55_cea29a2a","line":602,"range":{"start_line":601,"start_character":36,"end_line":602,"end_character":62},"updated":"2026-06-18 21:39:09.000000000","message":"This method should include parameters sent over in _setup_server(), because share drivers will need similar details to spawn another share server, even though it is a replica","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"cda5fe6be296927d89f765194cae01a5440169e1","unresolved":false,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":".. code-block:: python"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":602,"context_line":"                                    share_server_replica_list,"},{"line_number":603,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":605,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"8de899ea_de407a7a","line":602,"range":{"start_line":601,"start_character":36,"end_line":602,"end_character":62},"in_reply_to":"219a86ab_5afabf1a","updated":"2026-06-19 17:43:31.000000000","message":"Yes, we will be adding the share server object inside the each replica object.\nShare server replica object should be as below \n\n{\n                \u0027id\u0027: \u0027d8hg9i7a-7f6i-8ebi-de5i-5j7f6i8ebinde\u0027,\n                \u0027replica_status\u0027: \u0027available\u0027,\n                \u0027replica_state\u0027: \u0027in_sync\u0027,\n                \u0027share_server\u0027: {\n                    \u0027id\u0027: \u0027d7gf8h69-6e5h-8eah-cd4h-4i6e5h8eahcd\u0027,\n                    \u0027status\u0027: \u0027available\u0027,\n                    \u0027host\u0027: \u0027openstack3@cmodeSSVMNFS3\u0027,\n                    \n                    ...\n                },\n                ...\n            }","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":".. code-block:: python"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":602,"context_line":"                                    share_server_replica_list,"},{"line_number":603,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":605,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"cb2c5f5d_0a800681","line":602,"range":{"start_line":601,"start_character":36,"end_line":602,"end_character":62},"in_reply_to":"5156dc55_cea29a2a","updated":"2026-06-19 14:22:21.000000000","message":"We will not be using _setup_server() for share server creation. What we will be doing \n- add the db entry for share server \n- pass those records as part of new_share_server_replica this object, this will have share server id and host, based on this it will create the destination share server.\n- We are creating the destination share server as part of replication creation.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":".. code-block:: python"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":602,"context_line":"                                    share_server_replica_list,"},{"line_number":603,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":605,"context_line":""}],"source_content_type":"text/x-rst","patch_set":16,"id":"219a86ab_5afabf1a","line":602,"range":{"start_line":601,"start_character":36,"end_line":602,"end_character":62},"in_reply_to":"cb2c5f5d_0a800681","updated":"2026-06-19 14:39:04.000000000","message":"Marked as unresolved. \n\nDo you want to re-read my comment? I didn\u0027t suggest that you need to use _setup_server. I was saying we need to send all of the same information that is sent to the driver to spawn a new share server, in addition to whatever information is required to set it up as a replica to an existing share server","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":602,"context_line":"                                    share_server_replica_list,"},{"line_number":603,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"        Establish the backend replication relationship between the source"}],"source_content_type":"text/x-rst","patch_set":16,"id":"af42fb2b_8cb19fdd","line":603,"range":{"start_line":603,"start_character":36,"end_line":603,"end_character":66},"updated":"2026-06-18 21:39:09.000000000","message":"This was dropped?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":602,"context_line":"                                    share_server_replica_list,"},{"line_number":603,"context_line":"                                    protect_share_instances\u003dNone):"},{"line_number":604,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"        Establish the backend replication relationship between the source"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5181735d_aa6a022a","line":603,"range":{"start_line":603,"start_character":36,"end_line":603,"end_character":66},"in_reply_to":"af42fb2b_8cb19fdd","updated":"2026-06-19 14:22:21.000000000","message":"You have this question in previous comment. Answer is in your question. \n\nOne concern here is access rules for existing shares on the replicated share server. It feels like you need to pass the share instances and their access rules to the share driver as well when you create and promote server replicas. The NetApp driver may not need it, but some other driver theoretically might?\n\nAnyway, I am removing this as we don\u0027t need this in current implementation","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def delete_share_server_replica(self, context, share_server_replica,"},{"line_number":618,"context_line":"                                    share_server_replica_list,"},{"line_number":619,"context_line":"                                    protected_share_instances\u003dNone):"},{"line_number":620,"context_line":"        \"\"\"Delete a share server replica on the backend."},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        Remove the replication relationship and clean up all destination"}],"source_content_type":"text/x-rst","patch_set":16,"id":"65d0fcdb_91adc645","line":619,"range":{"start_line":619,"start_character":36,"end_line":619,"end_character":66},"updated":"2026-06-18 21:39:09.000000000","message":"?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"    def delete_share_server_replica(self, context, share_server_replica,"},{"line_number":618,"context_line":"                                    share_server_replica_list,"},{"line_number":619,"context_line":"                                    protected_share_instances\u003dNone):"},{"line_number":620,"context_line":"        \"\"\"Delete a share server replica on the backend."},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        Remove the replication relationship and clean up all destination"}],"source_content_type":"text/x-rst","patch_set":16,"id":"413fecc3_36ac088b","line":619,"range":{"start_line":619,"start_character":36,"end_line":619,"end_character":66},"in_reply_to":"65d0fcdb_91adc645","updated":"2026-06-19 14:22:21.000000000","message":"Same as above, but not much use case removing this.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"aa7f5403048df2310e6c56e69493b1d2bb5ceafd","unresolved":true,"context_lines":[{"line_number":627,"context_line":"        \"\"\""},{"line_number":628,"context_line":"        raise NotImplementedError()"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."}],"source_content_type":"text/x-rst","patch_set":16,"id":"a9d6a23a_77c90d67","line":630,"range":{"start_line":630,"start_character":8,"end_line":630,"end_character":36},"updated":"2026-06-18 21:58:40.000000000","message":"One concern here is access rules for existing shares on the replicated share server. It feels like you need to pass the share instances and their access rules to the share driver as well when you create and promote server replicas. The NetApp driver may not need it, but some other driver theoretically might?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        \"\"\""},{"line_number":628,"context_line":"        raise NotImplementedError()"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."}],"source_content_type":"text/x-rst","patch_set":16,"id":"96fef4f6_27810e97","line":630,"range":{"start_line":630,"start_character":8,"end_line":630,"end_character":36},"in_reply_to":"4d903b72_2db821d3","updated":"2026-06-19 16:25:10.000000000","message":"not require, ONTAP replicate all the share configuration to destination host, no need to pass anything from core, backend will take care of that.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        \"\"\""},{"line_number":628,"context_line":"        raise NotImplementedError()"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."}],"source_content_type":"text/x-rst","patch_set":16,"id":"b005ebbc_e4e890b8","line":630,"range":{"start_line":630,"start_character":8,"end_line":630,"end_character":36},"in_reply_to":"a9d6a23a_77c90d67","updated":"2026-06-19 14:22:21.000000000","message":"yes, that is the purpose.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":627,"context_line":"        \"\"\""},{"line_number":628,"context_line":"        raise NotImplementedError()"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."}],"source_content_type":"text/x-rst","patch_set":16,"id":"4d903b72_2db821d3","line":630,"range":{"start_line":630,"start_character":8,"end_line":630,"end_character":36},"in_reply_to":"b005ebbc_e4e890b8","updated":"2026-06-19 14:39:04.000000000","message":"Marked as unresolved.\n\n\nWhat\u0027s on purpose?\n\nWhere in this signure are access rules?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        Perform the backend role reversal. Return ``None`` or a dictionary"}],"source_content_type":"text/x-rst","patch_set":16,"id":"91b27dfe_1b53a661","line":632,"range":{"start_line":632,"start_character":37,"end_line":632,"end_character":67},"updated":"2026-06-18 21:39:09.000000000","message":"?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        Perform the backend role reversal. Return ``None`` or a dictionary"}],"source_content_type":"text/x-rst","patch_set":16,"id":"f73465ac_619a3d6a","line":632,"range":{"start_line":632,"start_character":37,"end_line":632,"end_character":67},"in_reply_to":"91b27dfe_1b53a661","updated":"2026-06-19 14:22:21.000000000","message":"After promote we need to update the host (pool or aggregate) for each share instance, for that we wanted to pass list of instances so that driver will sent the host mapped to each share instance.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        Perform the backend role reversal. Return ``None`` or a dictionary"}],"source_content_type":"text/x-rst","patch_set":16,"id":"88cddf09_d5a333d9","line":632,"range":{"start_line":632,"start_character":37,"end_line":632,"end_character":67},"in_reply_to":"a237fdbd_5f42dbf7","updated":"2026-06-19 16:25:10.000000000","message":"After promote we need to update the each share instance host with below format\nostack-ubuntu-11@backend_name#pool_name\n\nWe have the details of ostack-ubuntu-11@backend_name with its share server, but we lack the aggregate information for the shares created on the destination side. Since the share names are identical on both the source and destination sides, we pass them to ONTAP to retrieve the aggregate for each volume, then return the results with the updated full hostname to be update the share instances.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":631,"context_line":"                                     share_server_replica_list,"},{"line_number":632,"context_line":"                                     protected_share_instances\u003dNone):"},{"line_number":633,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        Perform the backend role reversal. Return ``None`` or a dictionary"}],"source_content_type":"text/x-rst","patch_set":16,"id":"a237fdbd_5f42dbf7","line":632,"range":{"start_line":632,"start_character":37,"end_line":632,"end_character":67},"in_reply_to":"f73465ac_619a3d6a","updated":"2026-06-19 14:39:04.000000000","message":"Marked as unresolved.\n\nI meant, why do you need \"protected_share_instances\"?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":643,"context_line":"    def update_share_server_replica_state(self, context,"},{"line_number":644,"context_line":"                                          share_server_replica,"},{"line_number":645,"context_line":"                                          share_server_replica_list,"},{"line_number":646,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":647,"context_line":"        \"\"\"Return the current replication state for a share server replica."},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        Called periodically by the manager and on manual refresh. Return"}],"source_content_type":"text/x-rst","patch_set":16,"id":"8dd5c420_e95d24c6","line":646,"range":{"start_line":646,"start_character":42,"end_line":646,"end_character":73},"updated":"2026-06-18 21:39:09.000000000","message":"?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":643,"context_line":"    def update_share_server_replica_state(self, context,"},{"line_number":644,"context_line":"                                          share_server_replica,"},{"line_number":645,"context_line":"                                          share_server_replica_list,"},{"line_number":646,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":647,"context_line":"        \"\"\"Return the current replication state for a share server replica."},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        Called periodically by the manager and on manual refresh. Return"}],"source_content_type":"text/x-rst","patch_set":16,"id":"ddb183b4_4a384df8","line":646,"range":{"start_line":646,"start_character":42,"end_line":646,"end_character":73},"in_reply_to":"8dd5c420_e95d24c6","updated":"2026-06-19 14:22:21.000000000","message":"Will remove this.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"cdb4a9e8fe3d84c9d1c3e2218ad4dc6fee02b039","unresolved":true,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"2e28efcd_c1bca04f","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"updated":"2026-06-18 21:39:09.000000000","message":"?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"aead968e9e924b4da9b5bb60ef005dc22adfe89b","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"abbd764f_fcda5cd9","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"in_reply_to":"2e28efcd_c1bca04f","updated":"2026-06-19 14:22:21.000000000","message":"Same logic will be apply here as promote.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"f332e83b_2d51c52e","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"in_reply_to":"4076bab5_209779f2","updated":"2026-06-19 16:25:10.000000000","message":"In case of promote, we need to update the host for each share instance, which is as below format \nostack-ubuntu-11@ontap_cluster1#sti245_vsim_ocvs033f_aggr1\n\nWe have the details of ostack-ubuntu-11@ontap_cluster1 with its share server, but we core doesn\u0027t have the aggregate information for the shares created on the destination side. Since the share names are identical on both the source and destination SVM sides, we pass them to ONTAP to retrieve the aggregate for each volume, then return the results with the updated full hostname for each instance and that will be store for each instance.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"ec74ac917e1059ff1bb6ede49bb38c19bd9f0246","unresolved":false,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"a85be697_7f97094b","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"in_reply_to":"5c11d26b_3bea68a5","updated":"2026-06-20 14:20:20.000000000","message":"This is good point Carloss. The backend does not require any changes, as ONTAP handles this; however, in the core, we need to change the security services from primary to secondary and vice versa. We will add this point to specs.","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9f1be148b984686148b546ae70e7d7c082c028f4","unresolved":true,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"5c11d26b_3bea68a5","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"in_reply_to":"92e2d311_715b7e56","updated":"2026-06-19 22:39:32.000000000","message":"\u003e so you simply mean \"share_instances\" here.. I am thrown off by the \"protected_\" prefix.. because you had logic proposed to choose which ones are protected and which ones aren\u0027t\n\n+1\n\nand +1 on \"share_server_resources\" - more than the share instances must be updated. Maybe this extends even further. Is there an impact for services related to the share server as well? like security services and so on?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"4076bab5_209779f2","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"in_reply_to":"abbd764f_fcda5cd9","updated":"2026-06-19 14:39:04.000000000","message":"Marked as unresolved.\n\nUnsure if i understand this.. please explain","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c4fc3519b40c3cecbffb96d71c07d49db718540d","unresolved":true,"context_lines":[{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def  check_for_unplanned_share_server_replica_failover(self, context,"},{"line_number":659,"context_line":"                                          share_server_replica_list,"},{"line_number":660,"context_line":"                                          protected_share_instances\u003dNone):"},{"line_number":661,"context_line":"        \"\"\"Check whether an unplanned failover happened in the backend."},{"line_number":662,"context_line":""},{"line_number":663,"context_line":"        The manager calls this periodically to detect backend-driven"}],"source_content_type":"text/x-rst","patch_set":16,"id":"92e2d311_715b7e56","line":660,"range":{"start_line":660,"start_character":42,"end_line":660,"end_character":73},"in_reply_to":"f332e83b_2d51c52e","updated":"2026-06-19 19:21:59.000000000","message":"so you simply mean \"share_instances\" here.. I am thrown off by the \"protected_\" prefix.. because you had logic proposed to choose which ones are protected and which ones aren\u0027t\n\nI\u0027d like to ensure that you\u0027ve the share instances, snapshots and share/snapshot access rules passed down to the driver - all of that can be in this list. that\u0027s fine, just call it \"share_server_resources\" perhaps?","commit_id":"09df0c4ebb5dfc1c69cb1a3193a3968c3510fe7e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":303,"context_line":"* ``share_server_failover_check_interval`` will be a configurable"},{"line_number":304,"context_line":"  ``manila.conf`` option. If not explicitly set, the default interval is"},{"line_number":305,"context_line":"  ``300`` seconds."},{"line_number":306,"context_line":"* If share_server_failover_check_interval is set to 0, then it will disable"},{"line_number":307,"context_line":"  the periodic job for ``unplanned_failover_check_interval`` method."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Replica states"}],"source_content_type":"text/x-rst","patch_set":17,"id":"65f993c8_a29cff73","line":307,"range":{"start_line":306,"start_character":2,"end_line":307,"end_character":68},"updated":"2026-06-19 14:39:04.000000000","message":"0 would mean check constantly.. a better turn off mechanism would be \"-1\"\n\nand you may want to add \"share_server_failover\" in the opt name.. it has to be descriptive. You don\u0027t need \"unplanned\" in there. Do you mean \"auto\" instead?","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":303,"context_line":"* ``share_server_failover_check_interval`` will be a configurable"},{"line_number":304,"context_line":"  ``manila.conf`` option. If not explicitly set, the default interval is"},{"line_number":305,"context_line":"  ``300`` seconds."},{"line_number":306,"context_line":"* If share_server_failover_check_interval is set to 0, then it will disable"},{"line_number":307,"context_line":"  the periodic job for ``unplanned_failover_check_interval`` method."},{"line_number":308,"context_line":""},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"Replica states"}],"source_content_type":"text/x-rst","patch_set":17,"id":"84cb208a_295d7e03","line":307,"range":{"start_line":306,"start_character":2,"end_line":307,"end_character":68},"in_reply_to":"65f993c8_a29cff73","updated":"2026-06-19 16:25:10.000000000","message":"I set it zero as we can have below params in periodic task.\n\n@periodic_task.periodic_task(\n        spacing\u003dCONF.share_server_failover_check_interval,\n        enabled\u003dbool(CONF.share_server_failover_check_interval))\n        \n But as you suggest to change it to -1, will change it.\n \n Changed it to \n check_for_unplanned_share_server_replica_failover\n This is the same name we have in driver interface.","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    None"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"**Reset status of the share replica**::"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":554,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"3c668b31_38e79359","line":551,"range":{"start_line":551,"start_character":22,"end_line":551,"end_character":35},"updated":"2026-06-19 14:39:04.000000000","message":"share server replica","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":548,"context_line":""},{"line_number":549,"context_line":"    None"},{"line_number":550,"context_line":""},{"line_number":551,"context_line":"**Reset status of the share replica**::"},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":554,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"bde75c88_30faf676","line":551,"range":{"start_line":551,"start_character":22,"end_line":551,"end_character":35},"in_reply_to":"3c668b31_38e79359","updated":"2026-06-19 16:25:10.000000000","message":"Done","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"071eead78e2d67826caa8ccd9d5e595677d8b6b5","unresolved":true,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    DELETE /v2/{project_id}/share-server-replicas/{share_server_replica_id}"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"Replica with fource delete::"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"38763c6b_83b3368f","line":572,"range":{"start_line":572,"start_character":13,"end_line":572,"end_character":19},"updated":"2026-06-19 14:39:04.000000000","message":"typo","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"d632643114bbd8153793f0b2f15e577738e2d092","unresolved":false,"context_lines":[{"line_number":569,"context_line":""},{"line_number":570,"context_line":"    DELETE /v2/{project_id}/share-server-replicas/{share_server_replica_id}"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"Replica with fource delete::"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":575,"context_line":""}],"source_content_type":"text/x-rst","patch_set":17,"id":"0f226f84_f50b6b2d","line":572,"range":{"start_line":572,"start_character":13,"end_line":572,"end_character":19},"in_reply_to":"38763c6b_83b3368f","updated":"2026-06-19 16:25:10.000000000","message":"Done","commit_id":"c2300815c51410cfec1b6ea09e3b1190e216f4b5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0e98d5939180f0cef73fe66dd845f89a3d97ec72","unresolved":true,"context_lines":[{"line_number":419,"context_line":"        \"share_server_id\": \"server-uuid\","},{"line_number":420,"context_line":"        \"source_share_server_id\": \"source_share_server_id\""},{"line_number":421,"context_line":"        \"availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":422,"context_line":"        \"replica_status\": \"creating\","},{"line_number":423,"context_line":"        \"replica_state\": \"out_of_sync\","},{"line_number":424,"context_line":"        \"created_at\": \"2026-06-09T12:00:00.000000\","},{"line_number":425,"context_line":"        \"property\": {"}],"source_content_type":"text/x-rst","patch_set":22,"id":"60607df4_805a5ef6","line":422,"range":{"start_line":422,"start_character":0,"end_line":422,"end_character":37},"updated":"2026-06-24 06:35:17.000000000","message":"drop","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"159cbb6e7a787857090a9eec626096d46372caeb","unresolved":false,"context_lines":[{"line_number":419,"context_line":"        \"share_server_id\": \"server-uuid\","},{"line_number":420,"context_line":"        \"source_share_server_id\": \"source_share_server_id\""},{"line_number":421,"context_line":"        \"availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":422,"context_line":"        \"replica_status\": \"creating\","},{"line_number":423,"context_line":"        \"replica_state\": \"out_of_sync\","},{"line_number":424,"context_line":"        \"created_at\": \"2026-06-09T12:00:00.000000\","},{"line_number":425,"context_line":"        \"property\": {"}],"source_content_type":"text/x-rst","patch_set":22,"id":"4d275ed3_9ea73a67","line":422,"range":{"start_line":422,"start_character":0,"end_line":422,"end_character":37},"in_reply_to":"60607df4_805a5ef6","updated":"2026-06-24 16:57:09.000000000","message":"Done","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0e98d5939180f0cef73fe66dd845f89a3d97ec72","unresolved":true,"context_lines":[{"line_number":450,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":451,"context_line":"                \"host\": \"host@backend\","},{"line_number":452,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":453,"context_line":"                \"replica_status\": \"available\","},{"line_number":454,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":455,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""},{"line_number":456,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":22,"id":"11dad736_b3ae8346","line":453,"range":{"start_line":453,"start_character":0,"end_line":453,"end_character":46},"updated":"2026-06-24 06:35:17.000000000","message":"\"status\", and it has to be \"active\". not \"available\"","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"159cbb6e7a787857090a9eec626096d46372caeb","unresolved":true,"context_lines":[{"line_number":450,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":451,"context_line":"                \"host\": \"host@backend\","},{"line_number":452,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":453,"context_line":"                \"replica_status\": \"available\","},{"line_number":454,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":455,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""},{"line_number":456,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":22,"id":"2bd56248_bfb79fb4","line":453,"range":{"start_line":453,"start_character":0,"end_line":453,"end_character":46},"in_reply_to":"11dad736_b3ae8346","updated":"2026-06-24 16:57:09.000000000","message":"Changed, replica_status to status.\n\n@gouthampravi@gmail.com, As we discussed we will have \"status\" column for replica and it will be same as share server status except below status \n\n- If the source share server status is \"active\", the replica status will be displayed as \"available\".\n- Upon replica creation, the destination share server status is set to \"inactive\"; however, the replica status will be displayed as \"available\".\nWe need to add these logic to make sure we are showing the correct status when user run \"openstack share server replica list command\"\n\nAdditionally, id field value should be share server uuid, this is same as share server. one is active replica (source share server and other is non-active replica, des share server)\n\nBelow is the example for share server list:\n+--------------------------------------+--------------------------------------+-----------+---------------+---------------------------------------+\n| ID                                   | Source Share Server ID               | Status    | Replica State | Host                                  |\n+--------------------------------------+--------------------------------------+-----------+---------------+---------------------------------------+\n| b41a21e2-86a6-4901-8e23-5562ad70544d | 28d17679-330f-4d8a-a248-b6cfaae06ac2 | error     | out_of_sync   | ostack-ubuntu-                        |\n|                                      |                                      |           |               | 11.nb.openenglab.netapp.com@ontap_clu |\n|                                      |                                      |           |               | ster2                                 |\n| 28d17679-330f-4d8a-a248-b6cfaae06ac2 |                                      | available | active        | ostack-ubuntu-                        |\n|                                      |                                      |           |               | 11.nb.openenglab.netapp.com@ontap_clu |\n|                                      |                                      |           |               | ster1                                 |\n+--------------------------------------+--------------------------------------+-----------+---------------+---------------------------------------+\nstack@ostack-ubuntu-11:~$","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":451,"context_line":"                \"host\": \"host@backend\","},{"line_number":452,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":453,"context_line":"                \"replica_status\": \"available\","},{"line_number":454,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":455,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""},{"line_number":456,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":22,"id":"3907f22e_dbee81e0","line":453,"range":{"start_line":453,"start_character":0,"end_line":453,"end_character":46},"in_reply_to":"2bd56248_bfb79fb4","updated":"2026-06-25 22:55:00.000000000","message":"Marked as resolved.\n\nWe\u0027ve discussed this elsewhere. No point keeping multiple threads open","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0e98d5939180f0cef73fe66dd845f89a3d97ec72","unresolved":true,"context_lines":[{"line_number":471,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":472,"context_line":"            \"host\": \"host@backend\","},{"line_number":473,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":474,"context_line":"            \"replica_status\": \"available\","},{"line_number":475,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":476,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","},{"line_number":477,"context_line":"            \"updated_at\": \"2026-05-10T11:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":22,"id":"cf3205cc_449092ed","line":474,"range":{"start_line":474,"start_character":0,"end_line":474,"end_character":42},"updated":"2026-06-24 06:35:17.000000000","message":"\"status\"","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"159cbb6e7a787857090a9eec626096d46372caeb","unresolved":false,"context_lines":[{"line_number":471,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":472,"context_line":"            \"host\": \"host@backend\","},{"line_number":473,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":474,"context_line":"            \"replica_status\": \"available\","},{"line_number":475,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":476,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","},{"line_number":477,"context_line":"            \"updated_at\": \"2026-05-10T11:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":22,"id":"31cd9a8d_ec8accd0","line":474,"range":{"start_line":474,"start_character":0,"end_line":474,"end_character":42},"in_reply_to":"cf3205cc_449092ed","updated":"2026-06-24 16:57:09.000000000","message":"Done","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"0e98d5939180f0cef73fe66dd845f89a3d97ec72","unresolved":true,"context_lines":[{"line_number":633,"context_line":"        raise NotImplementedError()"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":636,"context_line":"                                     share_server_replica_list"},{"line_number":637,"context_line":"                                     share_server_resources\u003dNone):"},{"line_number":638,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":639,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"857b7e9c_7cff73c5","line":636,"range":{"start_line":636,"start_character":0,"end_line":636,"end_character":62},"updated":"2026-06-24 06:35:17.000000000","message":"add comma after parameter","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"159cbb6e7a787857090a9eec626096d46372caeb","unresolved":false,"context_lines":[{"line_number":633,"context_line":"        raise NotImplementedError()"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"    def promote_share_server_replica(self, context, share_server_replica,"},{"line_number":636,"context_line":"                                     share_server_replica_list"},{"line_number":637,"context_line":"                                     share_server_resources\u003dNone):"},{"line_number":638,"context_line":"        \"\"\"Promote a share server replica to active state."},{"line_number":639,"context_line":""}],"source_content_type":"text/x-rst","patch_set":22,"id":"69209884_01de4e09","line":636,"range":{"start_line":636,"start_character":0,"end_line":636,"end_character":62},"in_reply_to":"857b7e9c_7cff73c5","updated":"2026-06-24 16:57:09.000000000","message":"Done","commit_id":"bd3b39db37dafa60e31124f1fed7fd5158eb7a2e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":118,"context_line":"Validation"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* The share server must exist and have an ``active`` status."},{"line_number":121,"context_line":"* Fanout will not be supported, replication creation will be failed"},{"line_number":122,"context_line":"  if share server has already non-active replica."},{"line_number":123,"context_line":"* If an availability_zone is provided, make sure the AZ has a valid"},{"line_number":124,"context_line":"  shared network/subnet."},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"ddbe16a1_ad0378ec","line":122,"range":{"start_line":121,"start_character":32,"end_line":122,"end_character":49},"updated":"2026-06-25 08:01:43.000000000","message":"```suggestion\n* Fanout will not be supported, if a non-active replica exists,\n  new replica creation requests will receive ``HTTP 400``.\n```","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"2f62942e69a009773d3b4af2d27575065246d44d","unresolved":false,"context_lines":[{"line_number":118,"context_line":"Validation"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* The share server must exist and have an ``active`` status."},{"line_number":121,"context_line":"* Fanout will not be supported, replication creation will be failed"},{"line_number":122,"context_line":"  if share server has already non-active replica."},{"line_number":123,"context_line":"* If an availability_zone is provided, make sure the AZ has a valid"},{"line_number":124,"context_line":"  shared network/subnet."},{"line_number":125,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"a81f05b3_2a464f3d","line":122,"range":{"start_line":121,"start_character":32,"end_line":122,"end_character":49},"in_reply_to":"ddbe16a1_ad0378ec","updated":"2026-06-25 18:35:46.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":121,"context_line":"* Fanout will not be supported, replication creation will be failed"},{"line_number":122,"context_line":"  if share server has already non-active replica."},{"line_number":123,"context_line":"* If an availability_zone is provided, make sure the AZ has a valid"},{"line_number":124,"context_line":"  shared network/subnet."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Destination Share Server Creation, Status, and State Updates"}],"source_content_type":"text/x-rst","patch_set":23,"id":"26c74c59_d6d4c985","line":124,"range":{"start_line":124,"start_character":2,"end_line":124,"end_character":8},"updated":"2026-06-25 08:01:43.000000000","message":"share","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":121,"context_line":"* Fanout will not be supported, replication creation will be failed"},{"line_number":122,"context_line":"  if share server has already non-active replica."},{"line_number":123,"context_line":"* If an availability_zone is provided, make sure the AZ has a valid"},{"line_number":124,"context_line":"  shared network/subnet."},{"line_number":125,"context_line":""},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"Destination Share Server Creation, Status, and State Updates"}],"source_content_type":"text/x-rst","patch_set":23,"id":"ff745024_a3b33a24","line":124,"range":{"start_line":124,"start_character":2,"end_line":124,"end_character":8},"in_reply_to":"26c74c59_d6d4c985","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"On success:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":143,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":144,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":145,"context_line":"* The share server replica status should either match the share server status or"},{"line_number":146,"context_line":"  be derived and calculated from it."},{"line_number":147,"context_line":"* Update the ``source_share_server_id`` for destination share server in"}],"source_content_type":"text/x-rst","patch_set":23,"id":"6494ce3a_c4e51db0","line":144,"range":{"start_line":142,"start_character":2,"end_line":144,"end_character":57},"updated":"2026-06-25 08:01:43.000000000","message":"This is fine; just make sure that it will not be automatically cleaned up by Manila - i.e., adjust the periodic cleanup logic that looks for \"INACTIVE\" share servers and ensure they don\u0027t get picked up","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":139,"context_line":""},{"line_number":140,"context_line":"On success:"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":143,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":144,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":145,"context_line":"* The share server replica status should either match the share server status or"},{"line_number":146,"context_line":"  be derived and calculated from it."},{"line_number":147,"context_line":"* Update the ``source_share_server_id`` for destination share server in"}],"source_content_type":"text/x-rst","patch_set":23,"id":"9b03f711_c38d9a73","line":144,"range":{"start_line":142,"start_character":2,"end_line":144,"end_character":57},"in_reply_to":"6494ce3a_c4e51db0","updated":"2026-06-25 11:51:55.000000000","message":"Yes, sure. We decided below behaviour \n- We will not be deleting inactive share server. \n- If source share server doesn\u0027t have any share but it is in relationship (destination share server will be present with inactive status ). In this case we first delete the relationship, and then delete both source (active) and destination (inactive) share servers.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":142,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":143,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":144,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":145,"context_line":"* The share server replica status should either match the share server status or"},{"line_number":146,"context_line":"  be derived and calculated from it."},{"line_number":147,"context_line":"* Update the ``source_share_server_id`` for destination share server in"},{"line_number":148,"context_line":"  ``share_servers`` table"},{"line_number":149,"context_line":"* Update the share server quota."}],"source_content_type":"text/x-rst","patch_set":23,"id":"edd5899d_e509c675","line":146,"range":{"start_line":145,"start_character":78,"end_line":146,"end_character":36},"updated":"2026-06-25 08:01:43.000000000","message":"This derivation isn\u0027t necessary if there\u0027s no fanout.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":false,"context_lines":[{"line_number":142,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":143,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":144,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":145,"context_line":"* The share server replica status should either match the share server status or"},{"line_number":146,"context_line":"  be derived and calculated from it."},{"line_number":147,"context_line":"* Update the ``source_share_server_id`` for destination share server in"},{"line_number":148,"context_line":"  ``share_servers`` table"},{"line_number":149,"context_line":"* Update the share server quota."}],"source_content_type":"text/x-rst","patch_set":23,"id":"b825d8e9_e69cf874","line":146,"range":{"start_line":145,"start_character":78,"end_line":146,"end_character":36},"in_reply_to":"5d20bf59_2c74a172","updated":"2026-06-25 22:55:00.000000000","message":"We do this sort of status transformation in other places (services).. so yes, it\u0027s fine","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":true,"context_lines":[{"line_number":142,"context_line":"* Update the destination share server status in the ``share_servers`` table to"},{"line_number":143,"context_line":"  ``inactive``. Because the destination share server will be in an inactive"},{"line_number":144,"context_line":"  state, it will be excluded from share instance creation."},{"line_number":145,"context_line":"* The share server replica status should either match the share server status or"},{"line_number":146,"context_line":"  be derived and calculated from it."},{"line_number":147,"context_line":"* Update the ``source_share_server_id`` for destination share server in"},{"line_number":148,"context_line":"  ``share_servers`` table"},{"line_number":149,"context_line":"* Update the share server quota."}],"source_content_type":"text/x-rst","patch_set":23,"id":"5d20bf59_2c74a172","line":146,"range":{"start_line":145,"start_character":78,"end_line":146,"end_character":36},"in_reply_to":"edd5899d_e509c675","updated":"2026-06-25 11:51:55.000000000","message":"This is not related fanout.\nAs we are showing the share server replica status and we wanted to make it consistent with share replica status.\nAs we don\u0027t have available status for share server so we can\u0027t show the available status, hence we are applying below logic to show the replica status as \"available\"\n1. For active source share server, active replica status should be \"available\" even though share server status is \"active\"\n2. For inactive destination share server, replica status should be \"available\" even though share server status is \"inactive\"\n\nDo you think we don\u0027t need to apply this logic here? Whatever the share server status shows, show the same for the share server replica...? Let me know if this need to do, will change it...?","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Share server replica must exist and available status."},{"line_number":200,"context_line":"* Share server replica must not be active."},{"line_number":201,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":202,"context_line":"  driver-specific resync."},{"line_number":203,"context_line":"* Manager updates DB after driver returns."},{"line_number":204,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":23,"id":"c4607a40_8f0f95b3","line":201,"range":{"start_line":201,"start_character":41,"end_line":201,"end_character":48},"updated":"2026-06-25 08:01:43.000000000","message":"this is a new status.. mentioned only here.. it\u0027s not in your state transition explanation below.. also for share replicas we just use \"out_of_sync\" and \"in_sync\".. so that should suffice here also?","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"* Share server replica must exist and available status."},{"line_number":200,"context_line":"* Share server replica must not be active."},{"line_number":201,"context_line":"* Share server replica state is set to ``syncing`` and manager calls"},{"line_number":202,"context_line":"  driver-specific resync."},{"line_number":203,"context_line":"* Manager updates DB after driver returns."},{"line_number":204,"context_line":"* Manager will have a method to poll the replication status on a configurable"}],"source_content_type":"text/x-rst","patch_set":23,"id":"8f377a3b_dcb68151","line":201,"range":{"start_line":201,"start_character":41,"end_line":201,"end_character":48},"in_reply_to":"c4607a40_8f0f95b3","updated":"2026-06-25 11:51:55.000000000","message":"Sure. Removing this.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* Share server replica must exist."},{"line_number":224,"context_line":"* Share server replica must not be active."},{"line_number":225,"context_line":"* Set share server replica state to ``replication_change``."},{"line_number":226,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":227,"context_line":"  share server."},{"line_number":228,"context_line":"* Manager calls driver promote."}],"source_content_type":"text/x-rst","patch_set":23,"id":"899a3fb9_27dac878","line":225,"range":{"start_line":225,"start_character":19,"end_line":225,"end_character":32},"updated":"2026-06-25 08:01:43.000000000","message":"status, not \"replica_state\". You\u0027ll need a status change on all replicas (active and inactive) \n\n\"replica_state\" transitions from \"in_sync\" to \"active\" after the promotion is complete; and \"status\" changes to \"active\" and \"inactive\" for teh new source and new destination.. \n\nprematurely changing the \"replica_state\" to any other value will complicate your DB handling..","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* Share server replica must exist."},{"line_number":224,"context_line":"* Share server replica must not be active."},{"line_number":225,"context_line":"* Set share server replica state to ``replication_change``."},{"line_number":226,"context_line":"* Manager loads target share server replica and all replicas for the same"},{"line_number":227,"context_line":"  share server."},{"line_number":228,"context_line":"* Manager calls driver promote."}],"source_content_type":"text/x-rst","patch_set":23,"id":"878065bd_e662b961","line":225,"range":{"start_line":225,"start_character":19,"end_line":225,"end_character":32},"in_reply_to":"899a3fb9_27dac878","updated":"2026-06-25 11:51:55.000000000","message":"Sure, when API call will make, will not change the replica state and status. In promote, status and status will be changes based on driver return result.\nI am removing this line.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":350,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":351,"context_line":"    | id                      | string(36)  | No       | Primary key    |"},{"line_number":352,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":353,"context_line":"    | share_server_id         | string(36)  | No       | FK to replica  |"},{"line_number":354,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":355,"context_line":"    | key                     | string(255) | No       | metadata key   |"},{"line_number":356,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":23,"id":"2bd0fec0_b76c9365","line":353,"range":{"start_line":353,"start_character":57,"end_line":353,"end_character":70},"updated":"2026-06-25 08:01:43.000000000","message":"fk to share_servers","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":350,"context_line":"    +\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d+"},{"line_number":351,"context_line":"    | id                      | string(36)  | No       | Primary key    |"},{"line_number":352,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":353,"context_line":"    | share_server_id         | string(36)  | No       | FK to replica  |"},{"line_number":354,"context_line":"    +-------------------------+-------------+----------+----------------+"},{"line_number":355,"context_line":"    | key                     | string(255) | No       | metadata key   |"},{"line_number":356,"context_line":"    +-------------------------+-------------+----------+----------------+"}],"source_content_type":"text/x-rst","patch_set":23,"id":"d768710a_1636b428","line":353,"range":{"start_line":353,"start_character":57,"end_line":353,"end_character":70},"in_reply_to":"2bd0fec0_b76c9365","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":416,"context_line":"    {"},{"line_number":417,"context_line":"      \"share_server_replica\": {"},{"line_number":418,"context_line":"        \"id\": \"server-uuid\","},{"line_number":419,"context_line":"        \"source_share_server_id\": \"source_share_server_id\""},{"line_number":420,"context_line":"        \"availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":421,"context_line":"        \"replica_state\": \"out_of_sync\","},{"line_number":422,"context_line":"        \"created_at\": \"2026-06-09T12:00:00.000000\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"27b1fe93_f3a60d88","line":419,"range":{"start_line":419,"start_character":57,"end_line":419,"end_character":58},"updated":"2026-06-25 08:01:43.000000000","message":"missing comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":416,"context_line":"    {"},{"line_number":417,"context_line":"      \"share_server_replica\": {"},{"line_number":418,"context_line":"        \"id\": \"server-uuid\","},{"line_number":419,"context_line":"        \"source_share_server_id\": \"source_share_server_id\""},{"line_number":420,"context_line":"        \"availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":421,"context_line":"        \"replica_state\": \"out_of_sync\","},{"line_number":422,"context_line":"        \"created_at\": \"2026-06-09T12:00:00.000000\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"549c9d0d_010eaae0","line":419,"range":{"start_line":419,"start_character":57,"end_line":419,"end_character":58},"in_reply_to":"27b1fe93_f3a60d88","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":418,"context_line":"        \"id\": \"server-uuid\","},{"line_number":419,"context_line":"        \"source_share_server_id\": \"source_share_server_id\""},{"line_number":420,"context_line":"        \"availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":421,"context_line":"        \"replica_state\": \"out_of_sync\","},{"line_number":422,"context_line":"        \"created_at\": \"2026-06-09T12:00:00.000000\","},{"line_number":423,"context_line":"        \"property\": {"},{"line_number":424,"context_line":"          \"replication_policy\": \"gold\""}],"source_content_type":"text/x-rst","patch_set":23,"id":"4a6b831e_3a19cf76","line":421,"updated":"2026-06-25 08:01:43.000000000","message":"missing \"status\"","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":418,"context_line":"        \"id\": \"server-uuid\","},{"line_number":419,"context_line":"        \"source_share_server_id\": \"source_share_server_id\""},{"line_number":420,"context_line":"        \"availability_zone\": \"\u003cavailability_zone\u003e\","},{"line_number":421,"context_line":"        \"replica_state\": \"out_of_sync\","},{"line_number":422,"context_line":"        \"created_at\": \"2026-06-09T12:00:00.000000\","},{"line_number":423,"context_line":"        \"property\": {"},{"line_number":424,"context_line":"          \"replication_policy\": \"gold\""}],"source_content_type":"text/x-rst","patch_set":23,"id":"d21a7006_7a536324","line":421,"in_reply_to":"4a6b831e_3a19cf76","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":444,"context_line":"        \"share_server_replicas\": ["},{"line_number":445,"context_line":"            {"},{"line_number":446,"context_line":"                \"id\": \"\u003cshare_server_uuid\u003e\","},{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"0bff46f6_bfed65c8","line":447,"updated":"2026-06-25 08:01:43.000000000","message":"missing comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":444,"context_line":"        \"share_server_replicas\": ["},{"line_number":445,"context_line":"            {"},{"line_number":446,"context_line":"                \"id\": \"\u003cshare_server_uuid\u003e\","},{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"505d7f9e_80cdfab8","line":447,"in_reply_to":"0bff46f6_bfed65c8","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":446,"context_line":"                \"id\": \"\u003cshare_server_uuid\u003e\","},{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","},{"line_number":451,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":452,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""}],"source_content_type":"text/x-rst","patch_set":23,"id":"89809d1f_55a9cae2","line":449,"range":{"start_line":449,"start_character":57,"end_line":449,"end_character":58},"updated":"2026-06-25 08:01:43.000000000","message":"missing comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":446,"context_line":"                \"id\": \"\u003cshare_server_uuid\u003e\","},{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","},{"line_number":451,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":452,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""}],"source_content_type":"text/x-rst","patch_set":23,"id":"7e7e2d9e_d784e8e7","line":449,"range":{"start_line":449,"start_character":57,"end_line":449,"end_character":58},"in_reply_to":"89809d1f_55a9cae2","updated":"2026-06-25 11:51:55.000000000","message":"done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","},{"line_number":451,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":452,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""},{"line_number":453,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"bb6c2d7b_ea113d9f","line":450,"range":{"start_line":450,"start_character":27,"end_line":450,"end_character":36},"updated":"2026-06-25 08:01:43.000000000","message":"\"inactive\" - according to L143?","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a362d5868d048b425170a45652654b5dd07b2608","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","},{"line_number":451,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":452,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""},{"line_number":453,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"8473d3fa_a55ba18a","line":450,"range":{"start_line":450,"start_character":27,"end_line":450,"end_character":36},"in_reply_to":"44ac8c02_c8dcc13e","updated":"2026-06-25 16:04:46.000000000","message":"Closing this comment as we will map the inactive to available status.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":true,"context_lines":[{"line_number":447,"context_line":"                \"source_share_server_id\": \"source_share_server_id\""},{"line_number":448,"context_line":"                \"host\": \"host@backend\","},{"line_number":449,"context_line":"                \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":450,"context_line":"                \"status\": \"available\","},{"line_number":451,"context_line":"                \"replica_state\": \"in_sync\","},{"line_number":452,"context_line":"                \"created_at\": \"2026-05-10T10:00:00Z\""},{"line_number":453,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"44ac8c02_c8dcc13e","line":450,"range":{"start_line":450,"start_character":27,"end_line":450,"end_character":36},"in_reply_to":"bb6c2d7b_ea113d9f","updated":"2026-06-25 11:51:55.000000000","message":"There is one open comment. I have asked a question above. Will change the status once we concluded on that.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    {"},{"line_number":465,"context_line":"        \"share_server_replica\": {"},{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""}],"source_content_type":"text/x-rst","patch_set":23,"id":"769695b9_73d05c0d","line":466,"range":{"start_line":466,"start_character":40,"end_line":466,"end_character":41},"updated":"2026-06-25 08:01:43.000000000","message":"extra comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    {"},{"line_number":465,"context_line":"        \"share_server_replica\": {"},{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""}],"source_content_type":"text/x-rst","patch_set":23,"id":"7edc42ea_b66d3eb1","line":466,"range":{"start_line":466,"start_character":40,"end_line":466,"end_character":41},"in_reply_to":"769695b9_73d05c0d","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":464,"context_line":"    {"},{"line_number":465,"context_line":"        \"share_server_replica\": {"},{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"72df1632_db7d6c9b","line":467,"range":{"start_line":467,"start_character":39,"end_line":467,"end_character":61},"updated":"2026-06-25 08:01:43.000000000","message":"missing comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":464,"context_line":"    {"},{"line_number":465,"context_line":"        \"share_server_replica\": {"},{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"6a6e92d2_1425253c","line":467,"range":{"start_line":467,"start_character":39,"end_line":467,"end_character":61},"in_reply_to":"72df1632_db7d6c9b","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":465,"context_line":"        \"share_server_replica\": {"},{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"f91af577_0a1530c3","line":468,"range":{"start_line":468,"start_character":33,"end_line":468,"end_character":34},"updated":"2026-06-25 08:01:43.000000000","message":"missing comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":465,"context_line":"        \"share_server_replica\": {"},{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"a0835e82_9e48e002","line":468,"range":{"start_line":468,"start_character":33,"end_line":468,"end_character":34},"in_reply_to":"f91af577_0a1530c3","updated":"2026-06-25 11:51:55.000000000","message":"done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":472,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"b33095ed_1b38b712","line":469,"range":{"start_line":469,"start_character":53,"end_line":469,"end_character":54},"updated":"2026-06-25 08:01:43.000000000","message":"missing comma","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            \"id\": \"\u003cshare_server_uuid\u003e\",,"},{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":472,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"8f8e1239_d2338906","line":469,"range":{"start_line":469,"start_character":53,"end_line":469,"end_character":54},"in_reply_to":"b33095ed_1b38b712","updated":"2026-06-25 11:51:55.000000000","message":"\u003e missing comma\nDone","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":472,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","},{"line_number":473,"context_line":"            \"updated_at\": \"2026-05-10T11:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"980789a8_db08f57e","line":470,"range":{"start_line":470,"start_character":0,"end_line":470,"end_character":12},"updated":"2026-06-25 08:01:43.000000000","message":"same","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":true,"context_lines":[{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":472,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","},{"line_number":473,"context_line":"            \"updated_at\": \"2026-05-10T11:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"c610c206_3957a213","line":470,"range":{"start_line":470,"start_character":0,"end_line":470,"end_character":12},"in_reply_to":"980789a8_db08f57e","updated":"2026-06-25 11:51:55.000000000","message":"There is one open comment. I have asked a question above. Will change the status once we concluded on that.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a362d5868d048b425170a45652654b5dd07b2608","unresolved":false,"context_lines":[{"line_number":467,"context_line":"            \"source_share_server_id\": \"source_share_server_id\""},{"line_number":468,"context_line":"            \"host\": \"host@backend\","},{"line_number":469,"context_line":"            \"availability_zone\": \"\u003cavailability_zone\u003e\""},{"line_number":470,"context_line":"            \"status\": \"available\","},{"line_number":471,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":472,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","},{"line_number":473,"context_line":"            \"updated_at\": \"2026-05-10T11:00:00Z\","}],"source_content_type":"text/x-rst","patch_set":23,"id":"e2f3961a_ed7369f2","line":470,"range":{"start_line":470,"start_character":0,"end_line":470,"end_character":12},"in_reply_to":"c610c206_3957a213","updated":"2026-06-25 16:04:46.000000000","message":"Closing this comment as we will map the inactive to available status.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"159cbb6e7a787857090a9eec626096d46372caeb","unresolved":true,"context_lines":[{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    None"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"**Reset status of the share server replica**::"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"Request::"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    {"},{"line_number":528,"context_line":"        \"reset_status\": {"},{"line_number":529,"context_line":"            \"status\": \"available\""},{"line_number":530,"context_line":"        }"},{"line_number":531,"context_line":"    }"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"Response(202)::"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    None"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"**Delete share server replica**::"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5223d1c8_db4cc619","line":535,"range":{"start_line":521,"start_character":1,"end_line":535,"end_character":8},"updated":"2026-06-24 16:57:09.000000000","message":"@gouthampravi@gmail.com, do we think we need to support the status update for share server replica.Updating the share server replica status would indirectly update the share server status. As we can update the replica status using share server set command then I don\u0027t think it is require to update the replica status ..?","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"27d4e64312bd45b26b4375923b0e039cf8ed9567","unresolved":false,"context_lines":[{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    None"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"**Reset status of the share server replica**::"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"Request::"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    {"},{"line_number":528,"context_line":"        \"reset_status\": {"},{"line_number":529,"context_line":"            \"status\": \"available\""},{"line_number":530,"context_line":"        }"},{"line_number":531,"context_line":"    }"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"Response(202)::"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    None"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"**Delete share server replica**::"}],"source_content_type":"text/x-rst","patch_set":23,"id":"ae6f554d_14542075","line":535,"range":{"start_line":521,"start_character":1,"end_line":535,"end_character":8},"in_reply_to":"32da219e_45a8ff76","updated":"2026-06-25 18:30:51.000000000","message":"Yes, we already support share server status update, will remove updating the replica status","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    None"},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"**Reset status of the share server replica**::"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/action"},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"Request::"},{"line_number":526,"context_line":""},{"line_number":527,"context_line":"    {"},{"line_number":528,"context_line":"        \"reset_status\": {"},{"line_number":529,"context_line":"            \"status\": \"available\""},{"line_number":530,"context_line":"        }"},{"line_number":531,"context_line":"    }"},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"Response(202)::"},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"    None"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":""},{"line_number":538,"context_line":"**Delete share server replica**::"}],"source_content_type":"text/x-rst","patch_set":23,"id":"32da219e_45a8ff76","line":535,"range":{"start_line":521,"start_character":1,"end_line":535,"end_character":8},"in_reply_to":"5223d1c8_db4cc619","updated":"2026-06-25 08:01:43.000000000","message":"\"replica_status\" doesn\u0027t exist anymore.. \n\nWe already support an update status API: https://docs.openstack.org/api-ref/shared-file-system/#reset-status-since-api-v2-49","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":549,"context_line":"    \"force_delete\": null"},{"line_number":550,"context_line":"    }"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"Deleting an active replica without force should fail if replica will have"},{"line_number":553,"context_line":"non-active replica."},{"line_number":554,"context_line":""},{"line_number":555,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"e8088286_7ad21c8d","line":552,"range":{"start_line":552,"start_character":64,"end_line":552,"end_character":73},"updated":"2026-06-25 08:01:43.000000000","message":"has a","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":549,"context_line":"    \"force_delete\": null"},{"line_number":550,"context_line":"    }"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"Deleting an active replica without force should fail if replica will have"},{"line_number":553,"context_line":"non-active replica."},{"line_number":554,"context_line":""},{"line_number":555,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"aa315e20_705acb3b","line":552,"range":{"start_line":552,"start_character":64,"end_line":552,"end_character":73},"in_reply_to":"e8088286_7ad21c8d","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":602,"context_line":".. code-block:: python"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":605,"context_line":"                                    share_server_replica_list):"},{"line_number":606,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        Establish the backend replication relationship between the source"}],"source_content_type":"text/x-rst","patch_set":23,"id":"c4c1028a_f4f84214","line":605,"range":{"start_line":605,"start_character":36,"end_line":605,"end_character":61},"updated":"2026-06-25 08:01:43.000000000","message":"network_info_list (which includes allocations, backend details metadata dict, security services) still required here. It may not be used by NetApp, but i suspect otehr drivers may use it","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9916c17b1de1d153ec39d57adf6a4c50d21aa92a","unresolved":true,"context_lines":[{"line_number":602,"context_line":".. code-block:: python"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":605,"context_line":"                                    share_server_replica_list):"},{"line_number":606,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        Establish the backend replication relationship between the source"}],"source_content_type":"text/x-rst","patch_set":23,"id":"3c6140ca_db368a4c","line":605,"range":{"start_line":605,"start_character":36,"end_line":605,"end_character":61},"in_reply_to":"238543ba_e9675d8c","updated":"2026-07-08 18:29:38.000000000","message":"Got your point, will pass most of the params or config to driver.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":602,"context_line":".. code-block:: python"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":605,"context_line":"                                    share_server_replica_list):"},{"line_number":606,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        Establish the backend replication relationship between the source"}],"source_content_type":"text/x-rst","patch_set":23,"id":"d38097fb_a6c2f224","line":605,"range":{"start_line":605,"start_character":36,"end_line":605,"end_character":61},"in_reply_to":"c4c1028a_f4f84214","updated":"2026-06-25 11:51:55.000000000","message":"hare_server_replica \u003d {\n            \u0027id\u0027: replica_server[\u0027id\u0027],\n            \u0027replica_state\u0027: replica_server.get(\u0027replica_state\u0027),\n            \u0027property\u0027: replica_property,\n            \u0027share_server\u0027: replica_server,\n        }\n        \n   Here we embedded share server object inside replica object and passing that to driver. \n   \n        \nAs we discussed earlier, we need to add only the code that we can test. Therefore, I have added only the required details. In the future, if any driver needs additional details, they can add another object to the replica data structure above and pass that to driver.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":true,"context_lines":[{"line_number":602,"context_line":".. code-block:: python"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def create_share_server_replica(self, context, new_share_server_replica,"},{"line_number":605,"context_line":"                                    share_server_replica_list):"},{"line_number":606,"context_line":"        \"\"\"Create a replica for an entire share server."},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        Establish the backend replication relationship between the source"}],"source_content_type":"text/x-rst","patch_set":23,"id":"238543ba_e9675d8c","line":605,"range":{"start_line":605,"start_character":36,"end_line":605,"end_character":61},"in_reply_to":"d38097fb_a6c2f224","updated":"2026-06-25 22:55:00.000000000","message":"Yes, my  principle of \"add only what we can test\" is for API features. However, the driver interface is different from the API.\n\n\nThe API is our contract with the external world, we shouldn\u0027t add speculative endpoints. But the driver interface is the contract that enables in-tree and out-of-tree driver authors. If we ship this without network_info_list and a non-NetApp\ndriver needs it, that driver author has to wait for a Manila core change, get it through review, wait for a release, and bump their minimum version. That\u0027s a high cost for something we can foresee today.\n\nWe got this right with share replication. create_replica included access_rules and share_server from day one even though the first drivers (NetApp and ZFSOnLinux) didn\u0027t need both. Other drivers later relied on them without requiring core changes.\n\nAdding network_info\u003dNone to the signature costs us nothing and saves a future driver author a full release cycle.\n\nAnyway, something that I\u0027m okay implementing directly without a call out here","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":692,"context_line":""},{"line_number":693,"context_line":"RBAC requirements:"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"* Cloud administrators and tenant administrators must be able to execute all"},{"line_number":696,"context_line":"  share server replica CLI commands and API endpoints."},{"line_number":697,"context_line":"* All other users must not have permission to execute share server"},{"line_number":698,"context_line":"  replication-related CLI commands or APIs."}],"source_content_type":"text/x-rst","patch_set":23,"id":"3405ba8f_4168a708","line":695,"range":{"start_line":695,"start_character":23,"end_line":695,"end_character":48},"updated":"2026-06-25 08:01:43.000000000","message":"drop; this isn\u0027t a default role in openstack","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":692,"context_line":""},{"line_number":693,"context_line":"RBAC requirements:"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"* Cloud administrators and tenant administrators must be able to execute all"},{"line_number":696,"context_line":"  share server replica CLI commands and API endpoints."},{"line_number":697,"context_line":"* All other users must not have permission to execute share server"},{"line_number":698,"context_line":"  replication-related CLI commands or APIs."}],"source_content_type":"text/x-rst","patch_set":23,"id":"284686f4_11a951eb","line":695,"range":{"start_line":695,"start_character":23,"end_line":695,"end_character":48},"in_reply_to":"3405ba8f_4168a708","updated":"2026-06-25 11:51:55.000000000","message":"Done","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"f1bff0e238531f1d5ca5bf820df123b6f2df44b3","unresolved":true,"context_lines":[{"line_number":701,"context_line":"Notifications impact"},{"line_number":702,"context_line":"--------------------"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"None."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":23,"id":"88638878_0cb3fe17","line":704,"range":{"start_line":704,"start_character":0,"end_line":704,"end_character":4},"updated":"2026-06-25 08:01:43.000000000","message":"You must emit notifications for creation, deletion, promotion and resync of share server replicas","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"741165e7fdb642ba9aadf0a2a0019bd0a4f22d1c","unresolved":false,"context_lines":[{"line_number":701,"context_line":"Notifications impact"},{"line_number":702,"context_line":"--------------------"},{"line_number":703,"context_line":""},{"line_number":704,"context_line":"None."},{"line_number":705,"context_line":""},{"line_number":706,"context_line":""},{"line_number":707,"context_line":"Other end user impact"}],"source_content_type":"text/x-rst","patch_set":23,"id":"477737a4_313658ee","line":704,"range":{"start_line":704,"start_character":0,"end_line":704,"end_character":4},"in_reply_to":"88638878_0cb3fe17","updated":"2026-06-25 11:51:55.000000000","message":"Added below content.\n\n\"share_server_replica.create\", \"share_server_replica.delete\",\n\"share_server_replica.promote\" and \"share_server_replica.resync\" notification\nevents will be emitted for the respective actions.","commit_id":"836dacaaa6f66d9ee2d5840334c67c0415f08d46"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4a66edd2397f4b55d4ebf70b383ea2c3aae49196","unresolved":true,"context_lines":[{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    openstack share server replica promote [--wait] \u003creplica\u003e"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    openstack share server replica resync \u003creplica\u003e"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":24,"id":"a91e8f60_4464334f","line":387,"updated":"2026-06-25 16:06:17.000000000","message":"since metadata table is introduced are we allowing end users to set/get/delete metadata ? If yes, we need to provide --property flag to set command and also add unset command. wdyt ?","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"27d4e64312bd45b26b4375923b0e039cf8ed9567","unresolved":false,"context_lines":[{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    openstack share server replica promote [--wait] \u003creplica\u003e"},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"    openstack share server replica resync \u003creplica\u003e"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":24,"id":"65fda0be_14f1cddd","line":387,"in_reply_to":"a91e8f60_4464334f","updated":"2026-06-25 18:30:51.000000000","message":"Initial plan was to pass the meta data during creation but it is good to add the all support for metadata. I have added unset command also.","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"4a66edd2397f4b55d4ebf70b383ea2c3aae49196","unresolved":true,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"**Update share server replica metadata**::"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"Request::"},{"line_number":484,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"35d7c6d1_06efc81d","line":481,"updated":"2026-06-25 16:06:17.000000000","message":"can you also add API for metadata get/delete.","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"27d4e64312bd45b26b4375923b0e039cf8ed9567","unresolved":false,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"**Update share server replica metadata**::"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"Request::"},{"line_number":484,"context_line":""}],"source_content_type":"text/x-rst","patch_set":24,"id":"b437eaa3_5c8218b1","line":481,"in_reply_to":"35d7c6d1_06efc81d","updated":"2026-06-25 18:30:51.000000000","message":"Added the all APIs for metadata after referred below doc.\nhttps://docs.openstack.org/api-ref/shared-file-system/#reset-status-since-api-v2-49.\n@kinpaa@gmail.com, can you review once.","commit_id":"4dae4243bad1469705edb328b8423a1cab27cf87"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":true,"context_lines":[{"line_number":381,"context_line":"    openstack share server replica set \u003creplica\u003e \\"},{"line_number":382,"context_line":"        [--replica-state \u003cstate\u003e][--property \u003ckey\u003dvalue\u003e]"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    openstack share server replica unset \u003creplica\u003e [--property \u003ckey\u003dvalue\u003e]"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    openstack share server replica promote [--wait] \u003creplica\u003e"},{"line_number":387,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"ceda5cb5_db1cdbc5","line":384,"range":{"start_line":384,"start_character":63,"end_line":384,"end_character":74},"updated":"2026-06-25 22:55:00.000000000","message":"unset only accepts key/s","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9916c17b1de1d153ec39d57adf6a4c50d21aa92a","unresolved":true,"context_lines":[{"line_number":381,"context_line":"    openstack share server replica set \u003creplica\u003e \\"},{"line_number":382,"context_line":"        [--replica-state \u003cstate\u003e][--property \u003ckey\u003dvalue\u003e]"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    openstack share server replica unset \u003creplica\u003e [--property \u003ckey\u003dvalue\u003e]"},{"line_number":385,"context_line":""},{"line_number":386,"context_line":"    openstack share server replica promote [--wait] \u003creplica\u003e"},{"line_number":387,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"7dc96c3c_072ed9e2","line":384,"range":{"start_line":384,"start_character":63,"end_line":384,"end_character":74},"in_reply_to":"ceda5cb5_db1cdbc5","updated":"2026-07-08 18:29:38.000000000","message":"ACK","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9916c17b1de1d153ec39d57adf6a4c50d21aa92a","unresolved":true,"context_lines":[{"line_number":470,"context_line":"            \"replica_state\": \"in_sync\","},{"line_number":471,"context_line":"            \"created_at\": \"2026-05-10T10:00:00Z\","},{"line_number":472,"context_line":"            \"updated_at\": \"2026-05-10T11:00:00Z\","},{"line_number":473,"context_line":"            \"property\": {"},{"line_number":474,"context_line":"                \"replication_policy\": \"gold\""},{"line_number":475,"context_line":"            }"},{"line_number":476,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":26,"id":"6fd96d3b_a926c62b","line":473,"updated":"2026-07-08 18:29:38.000000000","message":"Change it to metadata, applicable for other places also.","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"62529b53ac8c0f962122a5bf08ea45521423dac2","unresolved":true,"context_lines":[{"line_number":547,"context_line":"    None"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"**Metadata API support for share server replica**::"},{"line_number":551,"context_line":"    Shows, sets, updates, and unsets share server replica metadata."},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"Show all share server replica metadata::"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    GET /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"Show share server replica metadata item::"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"     GET /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata{key}"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"Set share server replica metadata::"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"Update share server replica metadata::"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    PUT /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"Delete share server replica metadata item::"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    DELETE /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata{key}"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"Policy rules will be added for create, delete, show, list, update, promote,"},{"line_number":575,"context_line":"and resync. All actions should remain admin-only by default."}],"source_content_type":"text/x-rst","patch_set":26,"id":"f33ff67e_ae3d7a93","line":572,"range":{"start_line":550,"start_character":0,"end_line":572,"end_character":0},"updated":"2026-06-25 22:55:00.000000000","message":"Super curious about this implementation; I _think_ these would be better to directly attach to share server routes rather than to share server replicas. Both are scoped to administrators and we can actually extend this in the future rather than introducing more endpoints\n\nNon blocker, we can decide during implementation","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"9916c17b1de1d153ec39d57adf6a4c50d21aa92a","unresolved":true,"context_lines":[{"line_number":547,"context_line":"    None"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"**Metadata API support for share server replica**::"},{"line_number":551,"context_line":"    Shows, sets, updates, and unsets share server replica metadata."},{"line_number":552,"context_line":""},{"line_number":553,"context_line":"Show all share server replica metadata::"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    GET /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"Show share server replica metadata item::"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"     GET /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata{key}"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"Set share server replica metadata::"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    POST /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"Update share server replica metadata::"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    PUT /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"Delete share server replica metadata item::"},{"line_number":570,"context_line":""},{"line_number":571,"context_line":"    DELETE /v2/{project_id}/share-server-replicas/{share_server_replica_id}/metadata{key}"},{"line_number":572,"context_line":""},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"Policy rules will be added for create, delete, show, list, update, promote,"},{"line_number":575,"context_line":"and resync. All actions should remain admin-only by default."}],"source_content_type":"text/x-rst","patch_set":26,"id":"6559e5c3_64ed2b7c","line":572,"range":{"start_line":550,"start_character":0,"end_line":572,"end_character":0},"in_reply_to":"f33ff67e_ae3d7a93","updated":"2026-07-08 18:29:38.000000000","message":"I added metadata routes under share-server-replicas rather than reusing share-server routes. My understanding is to make the API intent clear: these operations are specific to replication workflows. Even though the implementation reuses share_server DB mappings, replica-scoped endpoints help users clearly see they are acting on a replica resource. Using share server end point can be misleading to customer.","commit_id":"c11ae7d22603dd6309190258ef9ba92ef3df3e67"}]}
