)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e6eba62b_ce536fbf","updated":"2024-05-16 20:17:16.000000000","message":"Thanks Kiran for the spec. Grammar corrections in line.\n\nWanted calrification on error handling. In the case where the metadata is updated in db, but the driver changes fail, how will the user handle this? Set and unset the same key-value pair again?","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"33f003e6015db2c64642e5eb99309cb22b5d1c4a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7f620ea3_f5354b1f","updated":"2024-05-21 08:40:54.000000000","message":"@haixin,\nWhat if we keep specific keys e.g. __snapshot_policy, __show_mount. In documentation, we can specify that user should be useful while setting certain keys as those keys end up manipulating backend-driver. \n\nAdding new method is fine, but then we need to do for all resources e.g. share, snapshots, share-networks etc. While re-using metadata wont be change from end-user point of view and just need to be careful with specific keys.\n\n@carloss, @goutham WDYT ?","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"d4128bd609ee0b36033a0abd2da73c0b303a094d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6618c260_8357f978","updated":"2024-05-30 18:39:07.000000000","message":"Responding to Kiran\u0027s IRC questions here:\n\n\u003e [09:46:15 AM]  \u003ckpdev\u003e Hi @gouthamr,\n\u003e [09:46:19 AM]  \u003ckpdev\u003e i have doubts on https://review.opendev.org/c/openstack/manila-specs/+/916595\n\u003e [09:46:36 AM]  \u003ckpdev\u003e We need to make sure to set those operations for both admin and non-admin user\n\u003e [09:46:48 AM]  \u003ckpdev\u003e so admin_only_metadata is not an option\n\u003e [09:48:46 AM]  \u003ckpdev\u003e using an API as suggested by @haixin would be an option, but at then end operation key/value needs to store in db and metadata is only feasible field to store it.\n\n\n\nI would like to splice this spec a bit to respond to these questions.. \n\nI understand the requirement is for regular users and admins to be able to modify properties of the share and have that modification occur on the backend. In this case, I agree there\u0027s no need to use/consider \"admin_only_metadata\". I would however suggest a couple of things to enhance the user experience for non-privileged users:\n\n1) Have a way to distinguish properties that can be changed on a backend; perhaps, with a prefix. Haixin raised a question regarding this as well - how can a regular user know that making a metadata change will likely be significant or not?\n2) Have a way for end users to know what can be changed - I don\u0027t have any bright ideas here.. maybe there can be a user visible share type extra specification that permits what metadata can be modified?\n\nFor the second part of your question, do you mean this suggestion? https://review.opendev.org/c/openstack/manila-specs/+/916595/comment/175fb8a7_18900b95/  ?","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8a25f35f_9a719b8d","updated":"2024-05-29 19:46:05.000000000","message":"Thanks for working on the spec. I have added some thoughts to the discussions. Please take a look at the comments :)","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e2e81fa9029eb677b641ba487a6ce128939acaf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6a238e3b_6e72b358","updated":"2024-05-21 02:21:36.000000000","message":"hi, Kiran Pawar.\nI have written some of my opinions on this issue.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"452681de143539c182120c4adc150a2577b6a79d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"efa353de_cf0701d6","in_reply_to":"514b3f01_c7206b1f","updated":"2024-05-21 09:05:13.000000000","message":"\u003ewhy we need to do for all resources e.g. share, snapshots, share-networks etc?\n\nNot all actions need to perform on share(or volume). Some actions might be oriented towards network or share-server etc.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75ddbf5a87d5b4af2b27fb1d553d7d0439c9a599","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"514b3f01_c7206b1f","in_reply_to":"7f620ea3_f5354b1f","updated":"2024-05-21 08:58:42.000000000","message":"why we need to do for all resources e.g. share, snapshots, share-networks etc?\nwe just add for share, just like extend share is one of actions for share.\n\nin parent driver manila/share/driver.py add function:\n\n    def driver_action(self, context, share, action_name, **kwargs):\n        raise NotImplementedError()\n        \nin manila/share/manager.py\n\n    ...\n    self.driver.driver_action(context, share, action_name, **kwargs)\n    ...\n    \nThe implementation of each action is completed in the driver layer.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"30bf6f382676d547e540c90c38caf8ffaa764e42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e7a17fcf_f4ed3262","in_reply_to":"ac65a841_09450bf8","updated":"2024-05-21 09:23:13.000000000","message":"right, so we need to introduce action API in each resource where its missing and we need to perform backend driver action. \n\nhowever I am fine with share action method as most backend driver actions can be manipulted using share/volume only.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"87def9a16bfb36427117ae61ca5b8ad655f1d19d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ac65a841_09450bf8","in_reply_to":"efa353de_cf0701d6","updated":"2024-05-21 09:15:28.000000000","message":"i see, but we can only define this driver_action in manila/api/v2/shares.py.\nso share can extend, but share network can not.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"39c6c3658e2b98dc1da0aa3d73b3c0748dc37d22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d605a076_cc65446e","updated":"2024-06-28 17:35:55.000000000","message":"FYI - discussion https://meetings.opendev.org/irclogs/%23openstack-manila/%23openstack-manila.2024-06-28.log.html","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"079f7764ec4a02b29d57ba1d0ad707058c167b32","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c4f63b1f_c9cc1574","updated":"2024-06-28 17:42:17.000000000","message":"Is there a use case where driver passable key is something that only an admin should do? If so, it should be added to admin_only_metadata as well.\n\nAlso, in case another driver makes use of this feature, and someone deploys with multiple backends, then I would say \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e is preferrable. i.e netapp:max_files instead of max_files in [driver_updatable_metadata].","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f4a3e846_bf6d52a7","updated":"2024-06-22 00:55:17.000000000","message":"Thanks for the changes Kiran, please see more comments inline","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e21171337ab5280edd7f7b67ad8a01f27384a068","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e6ce3ae4_df777b7e","updated":"2024-06-12 07:51:06.000000000","message":"almost look good, just one comment.","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fedbefaf_296fe96a","in_reply_to":"c4f63b1f_c9cc1574","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd7702f9e065981cf260414db1378b85696d71bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"831aede5_6f0f25b8","updated":"2024-07-01 19:23:16.000000000","message":"This looks better; please see comments inline. Thanks Kiran!","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8f658fdd73c904e426cef4db0b4a52e048e06d6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d7cc8793_9a886ac3","updated":"2024-07-04 02:41:43.000000000","message":"LGTM, please see my comment. thanks.","commit_id":"526d851a7eb91598339f725a85121b2507654d62"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"5a318df7a26f996a4a983320cf44e835835e144c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"43a00bd8_9a524561","updated":"2024-07-04 13:14:13.000000000","message":"LGTM, thank you for your hard work on this lite-spec, Kiran. Let\u0027s continue the discussion in the implementation :)","commit_id":"526d851a7eb91598339f725a85121b2507654d62"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b58dd1d426b56524b30804be48a98cf8e83b5dcb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"af96afdd_2949fdbc","updated":"2024-07-03 20:01:07.000000000","message":"Thanks Kiran!","commit_id":"526d851a7eb91598339f725a85121b2507654d62"}],"specs/dalmatian/spec-lite-pass-resource-metadata-updates-to-backend-drivers.rst":[{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Spec Lite: Pass resource metadata updates to backend drivers"},{"line_number":8,"context_line":"------------------------------------------------------------"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This include resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"58fa4a69_1cf01466","line":10,"range":{"start_line":10,"start_character":28,"end_line":10,"end_character":45},"updated":"2024-05-16 20:17:16.000000000","message":"allows a user to perform","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Spec Lite: Pass resource metadata updates to backend drivers"},{"line_number":8,"context_line":"------------------------------------------------------------"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This include resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c244f739_e49a1613","line":10,"range":{"start_line":10,"start_character":28,"end_line":10,"end_character":45},"in_reply_to":"58fa4a69_1cf01466","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":8,"context_line":"------------------------------------------------------------"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This include resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."}],"source_content_type":"text/x-rst","patch_set":1,"id":"a7d03104_dd5b2ab7","line":11,"range":{"start_line":11,"start_character":34,"end_line":11,"end_character":41},"updated":"2024-05-16 20:17:16.000000000","message":"includes","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"------------------------------------------------------------"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This include resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."}],"source_content_type":"text/x-rst","patch_set":1,"id":"84ba4279_e72e8fc4","line":11,"range":{"start_line":11,"start_character":34,"end_line":11,"end_character":41},"in_reply_to":"a7d03104_dd5b2ab7","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":11,"context_line":"          resource metadata. This include resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"36ed8bde_ea53eebc","line":14,"range":{"start_line":14,"start_character":18,"end_line":14,"end_character":25},"updated":"2024-05-16 20:17:16.000000000","message":"purposes","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":11,"context_line":"          resource metadata. This include resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."}],"source_content_type":"text/x-rst","patch_set":1,"id":"527fc830_e5bc96e9","line":14,"range":{"start_line":14,"start_character":18,"end_line":14,"end_character":25},"in_reply_to":"36ed8bde_ea53eebc","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fe4f82bf_ece1dae1","line":15,"range":{"start_line":15,"start_character":16,"end_line":15,"end_character":24},"updated":"2024-05-16 20:17:16.000000000","message":"a customer","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"cc9fb895_0ace2b6b","line":15,"range":{"start_line":15,"start_character":16,"end_line":15,"end_character":24},"in_reply_to":"fe4f82bf_ece1dae1","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resource can be eliminated by"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4fa7d081_83cf8282","line":16,"range":{"start_line":16,"start_character":10,"end_line":16,"end_character":18},"updated":"2024-05-16 20:17:16.000000000","message":"a resource","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resource can be eliminated by"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bdf1f791_13086e88","line":16,"range":{"start_line":16,"start_character":10,"end_line":16,"end_character":18},"in_reply_to":"4fa7d081_83cf8282","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resource can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e588e18b_02928cd9","line":17,"range":{"start_line":17,"start_character":10,"end_line":17,"end_character":17},"updated":"2024-05-16 20:17:16.000000000","message":"a new API.","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":14,"context_line":"          tagging purpose."},{"line_number":15,"context_line":"          So if customer wants to perform any backend driver operation on"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resource can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dcb7a49b_b769106f","line":17,"range":{"start_line":17,"start_character":10,"end_line":17,"end_character":17},"in_reply_to":"e588e18b_02928cd9","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resource can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"}],"source_content_type":"text/x-rst","patch_set":1,"id":"86d752f7_8f91c76c","line":19,"range":{"start_line":19,"start_character":46,"end_line":19,"end_character":54},"updated":"2024-05-16 20:17:16.000000000","message":"resources","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resource can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"}],"source_content_type":"text/x-rst","patch_set":1,"id":"831d87c4_29d274d5","line":19,"range":{"start_line":19,"start_character":46,"end_line":19,"end_character":54},"in_reply_to":"86d752f7_8f91c76c","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6d41aacf_f0c3efa6","line":23,"range":{"start_line":23,"start_character":21,"end_line":23,"end_character":27},"updated":"2024-05-16 20:17:16.000000000","message":"actions","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f1ab9493_ca5b7362","line":23,"range":{"start_line":23,"start_character":45,"end_line":23,"end_character":51},"updated":"2024-05-16 20:17:16.000000000","message":"the action","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"}],"source_content_type":"text/x-rst","patch_set":1,"id":"81e1d9d5_f813011f","line":23,"range":{"start_line":23,"start_character":21,"end_line":23,"end_character":27},"in_reply_to":"6d41aacf_f0c3efa6","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"}],"source_content_type":"text/x-rst","patch_set":1,"id":"77c1ac76_67b572e0","line":23,"range":{"start_line":23,"start_character":45,"end_line":23,"end_character":51},"in_reply_to":"f1ab9493_ca5b7362","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."}],"source_content_type":"text/x-rst","patch_set":1,"id":"db917dda_c74cb4ed","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":69},"updated":"2024-05-16 20:17:16.000000000","message":"the user will be notified through the user message API.","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."}],"source_content_type":"text/x-rst","patch_set":1,"id":"de713bab_6a3aa093","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":69},"in_reply_to":"db917dda_c74cb4ed","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"c7ed610d_15315974","line":25,"range":{"start_line":25,"start_character":31,"end_line":25,"end_character":33},"updated":"2024-05-16 20:17:16.000000000","message":"a db","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"76a67f5a_edef65ed","line":25,"range":{"start_line":25,"start_character":17,"end_line":25,"end_character":25},"updated":"2024-05-16 20:17:16.000000000","message":"be possible","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"076a66a2_68d63d42","line":25,"range":{"start_line":25,"start_character":17,"end_line":25,"end_character":25},"in_reply_to":"76a67f5a_edef65ed","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary action if supported. If action results in success or"},{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"150eeaa8_7aef10f7","line":25,"range":{"start_line":25,"start_character":31,"end_line":25,"end_character":33},"in_reply_to":"c7ed610d_15315974","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7481b0b6_988edc41","line":27,"range":{"start_line":27,"start_character":21,"end_line":27,"end_character":23},"updated":"2024-05-16 20:17:16.000000000","message":"the end user","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":24,"context_line":"           failure, it will be notified to end user using message API. It"},{"line_number":25,"context_line":"           might possible that db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying to end user using message API becomes important."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0795dc93_a597d58b","line":27,"range":{"start_line":27,"start_character":21,"end_line":27,"end_character":23},"in_reply_to":"7481b0b6_988edc41","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b46d9937_d1123beb","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":21},"updated":"2024-05-16 20:17:16.000000000","message":"a given","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5eb61c95_5c47eebb","line":31,"range":{"start_line":31,"start_character":49,"end_line":31,"end_character":52},"updated":"2024-05-16 20:17:16.000000000","message":"a new","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"42e432c3_0921d437","line":31,"range":{"start_line":31,"start_character":49,"end_line":31,"end_character":52},"in_reply_to":"5eb61c95_5c47eebb","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"}],"source_content_type":"text/x-rst","patch_set":1,"id":"28d16580_f7d94945","line":31,"range":{"start_line":31,"start_character":16,"end_line":31,"end_character":21},"in_reply_to":"b46d9937_d1123beb","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"36fc6e75_166d2d8d","line":33,"range":{"start_line":33,"start_character":41,"end_line":33,"end_character":45},"updated":"2024-05-16 20:17:16.000000000","message":"is then","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"8a62f6d7_47f29819","line":33,"range":{"start_line":33,"start_character":41,"end_line":33,"end_character":45},"in_reply_to":"36fc6e75_166d2d8d","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8cdf6ee7_3e28873e","line":34,"range":{"start_line":34,"start_character":70,"end_line":34,"end_character":73},"updated":"2024-05-16 20:17:16.000000000","message":"sets","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            for given share. Instead of creating new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"}],"source_content_type":"text/x-rst","patch_set":1,"id":"531a3cc0_36c2935f","line":34,"range":{"start_line":34,"start_character":70,"end_line":34,"end_character":73},"in_reply_to":"8cdf6ee7_3e28873e","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."}],"source_content_type":"text/x-rst","patch_set":1,"id":"8ca88767_a19b6b47","line":35,"range":{"start_line":35,"start_character":46,"end_line":35,"end_character":52},"updated":"2024-05-16 20:17:16.000000000","message":"notifies a","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9f5e4721_ab06015a","line":35,"range":{"start_line":35,"start_character":36,"end_line":35,"end_character":41},"updated":"2024-05-16 20:17:16.000000000","message":"this share","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."}],"source_content_type":"text/x-rst","patch_set":1,"id":"17796b02_cf53d32d","line":35,"range":{"start_line":35,"start_character":46,"end_line":35,"end_character":52},"in_reply_to":"8ca88767_a19b6b47","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then set"},{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."}],"source_content_type":"text/x-rst","patch_set":1,"id":"2019c183_d568c1a0","line":35,"range":{"start_line":35,"start_character":36,"end_line":35,"end_character":41},"in_reply_to":"9f5e4721_ab06015a","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."},{"line_number":39,"context_line":"            This is possible by setting show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c99ce24c_fa74b2d2","line":38,"range":{"start_line":38,"start_character":45,"end_line":38,"end_character":50},"updated":"2024-05-16 20:17:16.000000000","message":"a share","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"            the snapshot policy for share and notify success/failure."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."},{"line_number":39,"context_line":"            This is possible by setting show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"}],"source_content_type":"text/x-rst","patch_set":1,"id":"32516115_9dc6d918","line":38,"range":{"start_line":38,"start_character":45,"end_line":38,"end_character":50},"in_reply_to":"c99ce24c_fa74b2d2","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."},{"line_number":39,"context_line":"            This is possible by setting show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then set the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b374deba_fc855ad7","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":60},"updated":"2024-05-16 20:17:16.000000000","message":"the show-mount option for","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of share due to security concerns."},{"line_number":39,"context_line":"            This is possible by setting show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then set the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"dbba6194_876e4f34","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":60},"in_reply_to":"b374deba_fc855ad7","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":39,"context_line":"            This is possible by setting show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then set the"},{"line_number":43,"context_line":"            show-mount option on share server belonging to share-network."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":":impacts:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"14fbc0f8_a58dab09","line":42,"range":{"start_line":42,"start_character":65,"end_line":42,"end_character":68},"updated":"2024-05-16 20:17:16.000000000","message":"sets","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            This is possible by setting show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then set the"},{"line_number":43,"context_line":"            show-mount option on share server belonging to share-network."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":":impacts:"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3e3ced20_4d56a0a6","line":42,"range":{"start_line":42,"start_character":65,"end_line":42,"end_character":68},"in_reply_to":"14fbc0f8_a58dab09","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then set the"},{"line_number":43,"context_line":"            show-mount option on share server belonging to share-network."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":":impacts:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bd7a96d7_2d3f74c5","line":43,"range":{"start_line":43,"start_character":33,"end_line":43,"end_character":38},"updated":"2024-05-16 20:17:16.000000000","message":"the share","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then set the"},{"line_number":43,"context_line":"            show-mount option on share server belonging to share-network."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":":impacts:"},{"line_number":46,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"4e30ef15_cb15140c","line":43,"range":{"start_line":43,"start_character":33,"end_line":43,"end_character":38},"in_reply_to":"bd7a96d7_2d3f74c5","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":57,"context_line":"              - None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"          This implementation is supposed to impact performance of API calls."},{"line_number":60,"context_line":"          As previously API calls was handling only db changes, the addition"},{"line_number":61,"context_line":"          of rpc call to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3d779eeb_c0d78a4d","line":60,"range":{"start_line":60,"start_character":10,"end_line":60,"end_character":67},"updated":"2024-05-16 20:17:16.000000000","message":"Previously, API calls handled only db changes. This addition","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"              - None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"          This implementation is supposed to impact performance of API calls."},{"line_number":60,"context_line":"          As previously API calls was handling only db changes, the addition"},{"line_number":61,"context_line":"          of rpc call to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"eef2f607_6e398a85","line":60,"range":{"start_line":60,"start_character":10,"end_line":60,"end_character":67},"in_reply_to":"3d779eeb_c0d78a4d","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32594,"name":"Ashley Rodriguez","email":"ashrod98@redhat.com","username":"ashrod98"},"change_message_id":"da1ae362d9780093f4ae8b53db476061b43d7c52","unresolved":true,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"          This implementation is supposed to impact performance of API calls."},{"line_number":60,"context_line":"          As previously API calls was handling only db changes, the addition"},{"line_number":61,"context_line":"          of rpc call to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":":alternative: As an alternative, Manila could create separate APIs for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df5b3767_eb4c683f","line":61,"range":{"start_line":61,"start_character":17,"end_line":61,"end_character":21},"updated":"2024-05-16 20:17:16.000000000","message":"calls","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2da249c1ee70a0272189418087f401fc5e87438f","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"          This implementation is supposed to impact performance of API calls."},{"line_number":60,"context_line":"          As previously API calls was handling only db changes, the addition"},{"line_number":61,"context_line":"          of rpc call to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":":alternative: As an alternative, Manila could create separate APIs for"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5e54a552_2aa5123d","line":61,"range":{"start_line":61,"start_character":17,"end_line":61,"end_character":21},"in_reply_to":"df5b3767_eb4c683f","updated":"2024-05-20 07:30:10.000000000","message":"Done","commit_id":"46fa68de28a4256889ae5493ec29121fc9185468"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Spec Lite: Pass resource metadata updates to backend drivers"},{"line_number":8,"context_line":"------------------------------------------------------------"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"}],"source_content_type":"text/x-rst","patch_set":2,"id":"93afa10a_74501156","line":10,"range":{"start_line":10,"start_character":71,"end_line":10,"end_character":84},"updated":"2024-05-29 19:46:05.000000000","message":"please wrap this at 79 characters","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Spec Lite: Pass resource metadata updates to backend drivers"},{"line_number":8,"context_line":"------------------------------------------------------------"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"}],"source_content_type":"text/x-rst","patch_set":2,"id":"192294ec_9b223767","line":10,"range":{"start_line":10,"start_character":71,"end_line":10,"end_character":84},"in_reply_to":"93afa10a_74501156","updated":"2024-06-03 16:07:59.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e2e81fa9029eb677b641ba487a6ce128939acaf9","unresolved":true,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purposes."},{"line_number":15,"context_line":"          So if a customer wants to perform any backend driver operation on a"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          a new API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"ddc91c02_22716413","line":14,"range":{"start_line":12,"start_character":40,"end_line":14,"end_character":27},"updated":"2024-05-21 02:21:36.000000000","message":"share metadata was designed to be used only for tagging purposes, Users can use metadata to record any key value they want.\n\n1: If metadata is associated with back-end drivers, users may unknowingly manipulate some back-end properties of share.\n2: share metadata will lose its ability to tag freely, and users will have to be more careful about manipulating metadata.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purposes."},{"line_number":15,"context_line":"          So if a customer wants to perform any backend driver operation on a"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          a new API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"2817999a_1abd79b1","line":14,"range":{"start_line":12,"start_character":40,"end_line":14,"end_character":27},"in_reply_to":"1b9e65b0_efdc5b3f","updated":"2024-06-03 16:07:59.000000000","message":"This will be documented and corresponding backend driver option will be added e.g. backend_metadata_keys.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e21171337ab5280edd7f7b67ad8a01f27384a068","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purposes."},{"line_number":15,"context_line":"          So if a customer wants to perform any backend driver operation on a"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          a new API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"adb7ae5b_ae5ca09d","line":14,"range":{"start_line":12,"start_character":40,"end_line":14,"end_character":27},"in_reply_to":"2817999a_1abd79b1","updated":"2024-06-12 07:51:06.000000000","message":"Although we have written the configuration supported by the backend storage into \u0027supported_metadata_keys\u0027 and\u0027 supported_admin_metadata_keys\u0027, I recommend that the key value be prefixed with a specific prefix, as goutham said. This makes it clear that the user is going to match the value of supported_metadata_keys to set share. Instead of accidentally setting share.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"04507444c97f727fcbac7fdbcc9f113d7bac9d5e","unresolved":true,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purposes."},{"line_number":15,"context_line":"          So if a customer wants to perform any backend driver operation on a"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          a new API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1b9e65b0_efdc5b3f","line":14,"range":{"start_line":12,"start_character":40,"end_line":14,"end_character":27},"in_reply_to":"68f4d377_93a8490c","updated":"2024-05-30 02:27:55.000000000","message":"maybe, to avoid confusion to end users, we ensure that only metadata with a particular prefix will be considered as modifying backend resource properties?\n\nsomething like\n\n\"__property:\"\n\n\nAs a related issue, I want to note that it makes for a poor user experience if users aren\u0027t able to discover what properties can be set via metadata..","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":":problem: Currently, Manila allows a user to perform add/update/delete operations on"},{"line_number":11,"context_line":"          resource metadata. This includes resources such as share, snapshot"},{"line_number":12,"context_line":"          and share network subnet etc. However these operations only handle"},{"line_number":13,"context_line":"          changes in db assuming resource metadata can only be used for"},{"line_number":14,"context_line":"          tagging purposes."},{"line_number":15,"context_line":"          So if a customer wants to perform any backend driver operation on a"},{"line_number":16,"context_line":"          resource based on resource metadata/field, Manila needs to introduce"},{"line_number":17,"context_line":"          a new API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"68f4d377_93a8490c","line":14,"range":{"start_line":12,"start_character":40,"end_line":14,"end_character":27},"in_reply_to":"ddc91c02_22716413","updated":"2024-05-29 19:46:05.000000000","message":"\u003e share metadata will lose its ability to tag freely,\n\n+1\nbut I think we already somehow took a bit of that ability last cycle: https://review.opendev.org/c/openstack/manila/+/909175\n\nWe can make admins define the metadata that should not be modifiable by users using the new configuration option we introduced (``admin_only_metadata``).\nI think this should be okay and a behavior people would be already getting familiar with :)","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"04507444c97f727fcbac7fdbcc9f113d7bac9d5e","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"752f147f_cc530cf4","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"updated":"2024-05-30 02:27:55.000000000","message":"There\u0027s also the ability to create resources along with metadata; how do we handle this?","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d5432504_55b2768c","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"152a3284_41032b5f","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"45534acf694409fa7ec725fead6b734e4492e51d","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4f0476bf_b213f3c9","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"22a70582_fda973e1","updated":"2024-06-27 15:39:01.000000000","message":"We don\u0027t have different share types to avoid confusions. But I think we can leave it out from discussion on this spec, it\u0027s more a question how admins do automations. Once metadata API is ready, there should be multiple ways.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"cdfb3c9ef95359d37058710ae00a701ecbbce138","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"54e552bc_bd6202d8","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"2450706b_b17fbaa9","updated":"2024-06-07 13:13:49.000000000","message":"Chuan +1, great summary of our use cases","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"391106a8bbcd3480a87c7593acba18a792ea5e8a","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2450706b_b17fbaa9","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"35aa2724_06fd96bb","updated":"2024-06-07 12:58:33.000000000","message":"Hi Goutham, it\u0027s a very good point. We should probably put more thoughts on it.\n\nI view this feature as extension of extra_specs of share types, (when we focus on resource \"Share\"), to allow users to have flexible controls. If you are interested, refer to our use case [1]. My hope is that, admins can configure share types for common cases and users can micro control driver behaviours for some edge cases via metadata. If go along this direction, we will handle the metadata specs the same way as share\u0027s extra specs. And metadata_specs should OVERRIDE share\u0027s extra_specs. This allows adding new driver feature in the same way as before, because all the configs are passed to driver just like share\u0027s extra specs.\n\nSo for your question, I think we should store the specs in metadata when `manila.api` receives the request, then `manila.share.manager` should check and apply them when handling the creation. Similarly share manager should check metadata specs when managing, extending, shrinking or migrating a share, as well as for drivers. It sounds quite complicated. But the good side is, we just need to follow what have been done to share type\u0027s extra_specs.\n\nFor updating metadata specs, we probably need a new function in manger to trigger actions on driver. I think it can be sth similar to resize functions in share manager. \n\nIn addition, I hope we can build a flexible authorisation mechanism. It\u0027s suggested below to add new config options (`supported_metadata_keys`, `supported_admin_metadata_keys`) for this purpose. Maybe we can make use of policy rules to make it even more flexible? So that admins can configure the access to driver features based on roles.\n\n\nBest,\nChuan\n\n[1]: We have a customer, who is very strict about share usage control. It turns out there is some invisible blocks holding metadata to make cross volume deduplication feature work, which is enabled by share type. We had to patch Manila to disable the feature for this customer. I hope I can configure manila so that customers can use manila API to disable it themselves.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2c4023dee7c80d8b8c87e78bf52462b17727adab","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"152a3284_41032b5f","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"4f0476bf_b213f3c9","updated":"2024-06-27 23:25:38.000000000","message":"+1","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9013414f_e9b2f048","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"54e552bc_bd6202d8","updated":"2024-06-22 00:55:17.000000000","message":"Thank you very much for sharing your use case; it helps me appreciate the motivation behind this feature a bit more; and honestly, Kiran could mention a summary of this in the problem statement above!\n\nIf I understand the workflow you want:\n\n1) You\u0027ll begin with share type extra-specs to determine the initial configuration of a share\n2) If you\u0027d like end users to modify something, they can then set a metadata item with a new value\n\nI don\u0027t see an issue with us implementing this! I\u0027d suggest an improvement though:\n\nAs part of creating this feature, can you enhance the driver you use (NetApp) to set the configuration item and its corresponding value in the metadata when the share is created?\n\nAllow me to walk through this with a crude example. I\u0027ll assume \"netapp_max_files\" is a modifiable property for this example:\n\n- As an operator, you\u0027ll create a share type that has this attribute. :\n\"netapp:max_files\u003d500\". You\u0027ll also have a manila.conf option that puts \"__property:netapp_max_files\" in the list of driver updatable metadata. \n- User creates a share with your share type; the netapp driver sets {\"__property:netapp_max_files\": 500} in the share\u0027s metadata. \n- User later updates the share metadata with:\n\n{\"__property:netapp_max_files\": 1500}\n\nBecause the API recognizes this key is updatable by the backend driver, it invokes the share driver to make changes to the share; share driver makes the changes, and there\u0027s a user message that records whether the change was successful or not **. \n\n\nDoes this sound feasible?\n\n\n\n** possible improvement: If the share driver fails to change something, it can revert the metadata to its original value, e.g.: {\"__property:netapp_max_files\": 500}; wdyt?","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"35aa2724_06fd96bb","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"752f147f_cc530cf4","updated":"2024-06-03 16:07:59.000000000","message":"In this case as well, the resources are created first and then metadata is updated, AFAIK. So this will follow same logic.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"db33cda75dbf8f0730ec4e5dc29ee50d255040d5","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba5a2b56_f2487882","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"9013414f_e9b2f048","updated":"2024-06-26 14:35:41.000000000","message":"Hi Goutham, thanks for your suggestion. It\u0027s more transparent by copying the driver specific specs form share type to metadata. Possible issue is that all specs become visible to the users through metadata. I think it\u0027s too much details to expose to customers.\n\nPerhaps we can only show those in the updatable metadata list?\n\nThough I am not sure yet how to configure this list. Ideally, we can provide different list for different domains (customer). I am wondering if policy is flexible enough for this purpose","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"df3596d3e95f3a5527ad1b0d48df9cb75d4a3a7c","unresolved":true,"context_lines":[{"line_number":17,"context_line":"          a new API."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":":solution: This effort of adding new APIs for resources can be eliminated by"},{"line_number":20,"context_line":"           extending existing metadata add/update/delete operations to handle"},{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"}],"source_content_type":"text/x-rst","patch_set":2,"id":"22a70582_fda973e1","line":20,"range":{"start_line":20,"start_character":21,"end_line":20,"end_character":67},"in_reply_to":"ba5a2b56_f2487882","updated":"2024-06-26 22:56:07.000000000","message":"Yes! We need to ensure only the updatable extra-specs need to be transferred over to share metadata - just for the reasons you mentioned - we shouldn\u0027t leak any unnecessary information through this mechanism.\n\nOn the second point; do different customers have different share types, always? If yes, maybe the \"configuration\" of updatable metadata itself can come from the share type extra specs.. i.e., a dedicated specification can mention what extra-specs are updatable via metadata changes. wdyt?","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"},{"line_number":24,"context_line":"           failure, the user will be notified through the user message API. It"},{"line_number":25,"context_line":"           might be possible that a db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying the end user using message API becomes important."}],"source_content_type":"text/x-rst","patch_set":2,"id":"0d550f03_62681b5b","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":75},"updated":"2024-05-29 19:46:05.000000000","message":"if we are handling metadata that users can\u0027t modify or do anything about them, we could also look into approaches to notify only admins.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":21,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":22,"context_line":"           The backend driver then based on metadata changes can take"},{"line_number":23,"context_line":"           necessary actions if supported. If the action results in success or"},{"line_number":24,"context_line":"           failure, the user will be notified through the user message API. It"},{"line_number":25,"context_line":"           might be possible that a db change gets applied successfully, but"},{"line_number":26,"context_line":"           respective backend driver operation results in failure. Thus"},{"line_number":27,"context_line":"           notifying the end user using message API becomes important."}],"source_content_type":"text/x-rst","patch_set":2,"id":"39258856_306059f2","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":75},"in_reply_to":"0d550f03_62681b5b","updated":"2024-06-03 16:07:59.000000000","message":"we will notify only if backend operation triggered either with success or failure.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":27,"context_line":"           notifying the end user using message API becomes important."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"33c0a3e0_0f31dd45","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":15},"updated":"2024-05-29 19:46:05.000000000","message":"nit: 1. For\nPlease add the blank space before For","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":27,"context_line":"           notifying the end user using message API becomes important."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"}],"source_content_type":"text/x-rst","patch_set":2,"id":"2e76b608_fb99dc08","line":30,"range":{"start_line":30,"start_character":12,"end_line":30,"end_character":15},"in_reply_to":"33c0a3e0_0f31dd45","updated":"2024-06-03 16:07:59.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then sets"},{"line_number":35,"context_line":"            the snapshot policy for this share and notifies a success/failure."}],"source_content_type":"text/x-rst","patch_set":2,"id":"7b99ed65_236d085f","line":32,"range":{"start_line":32,"start_character":20,"end_line":32,"end_character":48},"updated":"2024-05-29 19:46:05.000000000","message":"do you mean an admin or a regular user?","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then sets"},{"line_number":35,"context_line":"            the snapshot policy for this share and notifies a success/failure."}],"source_content_type":"text/x-rst","patch_set":2,"id":"55b04424_ff4804f7","line":32,"range":{"start_line":32,"start_character":20,"end_line":32,"end_character":48},"in_reply_to":"7b99ed65_236d085f","updated":"2024-06-03 16:07:59.000000000","message":"both admin/non-admin user.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e2e81fa9029eb677b641ba487a6ce128939acaf9","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then sets"},{"line_number":35,"context_line":"            the snapshot policy for this share and notifies a success/failure."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c1c15db7_3268bb14","line":33,"range":{"start_line":31,"start_character":31,"end_line":33,"end_character":27},"updated":"2024-05-21 02:21:36.000000000","message":"If we treat the metadata key as an action of the back-end driver, then we must define the action that the key represents in the parent driver, for example: in this case, the key might be set_snapshot_policy or unset_snapshot_policy. Doing so can cause the parent class driver to become very large. And each new action has to modify the code, not practical.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then sets"},{"line_number":35,"context_line":"            the snapshot policy for this share and notifies a success/failure."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5b0b5ac3_1af70dc5","line":33,"range":{"start_line":31,"start_character":31,"end_line":33,"end_character":27},"in_reply_to":"762b69b8_a98b5d22","updated":"2024-06-03 16:07:59.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"           Use cases -"},{"line_number":30,"context_line":"            1.For example, NetApp ONTAP driver needs to set snapshot policy"},{"line_number":31,"context_line":"            for a given share. Instead of creating a new API to set/unset snapshot"},{"line_number":32,"context_line":"            policy, user can add snapshot policy as share metadata i.e."},{"line_number":33,"context_line":"            key\u003dvalue pair. The metadata is then passed to ONTAP driver by"},{"line_number":34,"context_line":"            manila-api service using rpc calls. The ONTAP driver then sets"},{"line_number":35,"context_line":"            the snapshot policy for this share and notifies a success/failure."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"762b69b8_a98b5d22","line":33,"range":{"start_line":31,"start_character":31,"end_line":33,"end_character":27},"in_reply_to":"c1c15db7_3268bb14","updated":"2024-05-29 19:46:05.000000000","message":"+1, good thought, Haixin. How do you plan to handle this, Kiran?\nI think we could create a generic driver interface like \"update_share_specs_provenient_from_metadata\" and then the driver decides what to do with the specified metadata. If no action is defined, then we continue.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of a share due to security concerns."},{"line_number":39,"context_line":"            This is possible by setting the show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then sets the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"06cc7bcc_24f7a195","line":39,"range":{"start_line":39,"start_character":78,"end_line":39,"end_character":82},"updated":"2024-05-29 19:46:05.000000000","message":"nit: please keep it within 79 characters","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"            Another example could be, NetApp ONTAP cloud admin does not want"},{"line_number":38,"context_line":"            end user to see root path (/) of a share due to security concerns."},{"line_number":39,"context_line":"            This is possible by setting the show-mount option of share server NFS."},{"line_number":40,"context_line":"            In this case as well, instead of creating new API to set/unset"},{"line_number":41,"context_line":"            show-mount option, user can add show-mount option as metadata of"},{"line_number":42,"context_line":"            share network subnet resource. The ONTAP driver then sets the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"4436f021_5aacaa98","line":39,"range":{"start_line":39,"start_character":78,"end_line":39,"end_character":82},"in_reply_to":"06cc7bcc_24f7a195","updated":"2024-06-03 16:07:59.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":48,"context_line":"              - None"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"          - Documentation Impact"},{"line_number":51,"context_line":"              - User guide"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"          - Database Impact"},{"line_number":54,"context_line":"              - None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ce08d731_8e44ffd0","line":51,"range":{"start_line":51,"start_character":14,"end_line":51,"end_character":26},"updated":"2024-05-29 19:46:05.000000000","message":"likely admin guide as well","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":48,"context_line":"              - None"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"          - Documentation Impact"},{"line_number":51,"context_line":"              - User guide"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"          - Database Impact"},{"line_number":54,"context_line":"              - None"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c156512d_6a100f24","line":51,"range":{"start_line":51,"start_character":14,"end_line":51,"end_character":26},"in_reply_to":"ce08d731_8e44ffd0","updated":"2024-06-03 16:07:59.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e2e81fa9029eb677b641ba487a6ce128939acaf9","unresolved":true,"context_lines":[{"line_number":61,"context_line":"          of rpc calls to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":":alternative: As an alternative, Manila could create separate APIs for"},{"line_number":65,"context_line":"              handling various resource related operations."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":":timeline: Include in 2024.2 release."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"175fb8a7_18900b95","line":65,"range":{"start_line":64,"start_character":14,"end_line":65,"end_character":59},"updated":"2024-05-21 02:21:36.000000000","message":"I recommend an implementation, for example:\n\nWe define a new share action for the back-end driver action,\n\n    post  /v2/shares/{share_id}/action\n    \n    request body:\n    {\n    \"driver_action\": {\n        \"action_name\": \"set_snapshot_policy\",\n        \"snapshot_policy\": \"your_policy\"\n        }\n    }\n    \n    or\n    \n    {\n    \"driver_action\": {\n        \"action_name\": \"unset_show-mount\",\n        \"other_necessary_key\": \"value\"\n        }\n    }\n    \nFor execution results, I also favor using the user message to record error messages.    \n    \nThe driver_action and action_name parameters are mandatory. Its advantages are as follows:\n\n1：Users are well aware that they are using this api to modify certain features of share through drivers. You do not need to worry about accidentally modifying the share feature when you modify metadata.\n2：Does not change the way metadata is used. Users are more receptive.\n3：The parent driver only needs to define a driver_action function. The remaining specific actions are passed to the driver through action_name for specific processing. This way, the extensibility is good, and it is easy for developers to add more action_name later.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"fafa3e889c5c93af44bf1fe0582b63a6da203092","unresolved":true,"context_lines":[{"line_number":61,"context_line":"          of rpc calls to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":":alternative: As an alternative, Manila could create separate APIs for"},{"line_number":65,"context_line":"              handling various resource related operations."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":":timeline: Include in 2024.2 release."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"c5cfd0bd_2fbee7ab","line":65,"range":{"start_line":64,"start_character":14,"end_line":65,"end_character":59},"in_reply_to":"175fb8a7_18900b95","updated":"2024-05-29 19:46:05.000000000","message":"Yeah, this could be another approach we can take, it has some advantages as you mentioned. The only downside is that if a driver relied on a metadata key-val for the share creation, even if it\u0027s updated the metadata will be outdated. What do you think about the other approach I suggested? Having a new driver interface that is specific for metadata updates, i.e. `update_share_specs_provenient_from_metadata` and then the driver could decide if an action should be taken when the metadata is updated or not, for example:\n\n```\ndef update_share_specs_provenient_from_metadata(self, share, metadata_key):\n    metadata_updates_that_should_be_reflected \u003d {\n        \u0027snapshot_policy\u0027: self._change_snapshot_policy,\n        \u0027unset_show_mount\u0027: self._hide_mount_path,\n        \n    }\n    metadata_update_method \u003d metadata_updates_that_should_be_reflected.get(metadata_key, None)\n    if not metadata_update_method:\n        return\n    metadata_update_method(share, metadata_key)\n\ndef _change_snapshot_policy(self, share, metadata_key):\n...\n\ndef _hide_mount_path(self, share, metadata_key):\n...\n```\n\nThis way the drivers would be able to decide if there\u0027s something to do or not. If not implemented is raised, we just ignore and life goes on.","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"1b3b4766981d6743cf889b196531cb61945a73fc","unresolved":false,"context_lines":[{"line_number":61,"context_line":"          of rpc calls to manila-share service and handling within backend"},{"line_number":62,"context_line":"          driver will take more time to process."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":":alternative: As an alternative, Manila could create separate APIs for"},{"line_number":65,"context_line":"              handling various resource related operations."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":":timeline: Include in 2024.2 release."},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7f953b5f_5dc3ad23","line":65,"range":{"start_line":64,"start_character":14,"end_line":65,"end_character":59},"in_reply_to":"c5cfd0bd_2fbee7ab","updated":"2024-06-03 16:07:59.000000000","message":"Done","commit_id":"dacecd08468908909bfac392b0f867efc5ff60df"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":20,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":21,"context_line":"           Flow -"},{"line_number":22,"context_line":"           1. New driver interface"},{"line_number":23,"context_line":"           `update_share_specs_provenient_from_metadata` and two new config"},{"line_number":24,"context_line":"           options `supported_metadata_keys`, `supported_admin_metadata_keys`"},{"line_number":25,"context_line":"           will be introduced."},{"line_number":26,"context_line":"           2. The backend driver then based on metadata changes can take"}],"source_content_type":"text/x-rst","patch_set":3,"id":"8e958960_75e19eec","line":23,"range":{"start_line":23,"start_character":12,"end_line":23,"end_character":55},"updated":"2024-06-22 00:55:17.000000000","message":"\"prevenient\" doesn\u0027t mean what you think it means here i think.. \n\nisn\u0027t it simpler to call this interface: \"update_share\"?","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":20,"context_line":"           db operations as well as pass metadata updates to backend driver."},{"line_number":21,"context_line":"           Flow -"},{"line_number":22,"context_line":"           1. New driver interface"},{"line_number":23,"context_line":"           `update_share_specs_provenient_from_metadata` and two new config"},{"line_number":24,"context_line":"           options `supported_metadata_keys`, `supported_admin_metadata_keys`"},{"line_number":25,"context_line":"           will be introduced."},{"line_number":26,"context_line":"           2. The backend driver then based on metadata changes can take"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b621725d_4acbda0c","line":23,"range":{"start_line":23,"start_character":12,"end_line":23,"end_character":55},"in_reply_to":"8e958960_75e19eec","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":21,"context_line":"           Flow -"},{"line_number":22,"context_line":"           1. New driver interface"},{"line_number":23,"context_line":"           `update_share_specs_provenient_from_metadata` and two new config"},{"line_number":24,"context_line":"           options `supported_metadata_keys`, `supported_admin_metadata_keys`"},{"line_number":25,"context_line":"           will be introduced."},{"line_number":26,"context_line":"           2. The backend driver then based on metadata changes can take"},{"line_number":27,"context_line":"           necessary action in `update_share_specs_provenient_from_metadata`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3135496f_dc3b8921","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":43},"updated":"2024-06-22 00:55:17.000000000","message":"\"driver_updatable_metadata\" perhaps?\n\nso that, it looks like the existing option: \"admin_only_metadata\"","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":21,"context_line":"           Flow -"},{"line_number":22,"context_line":"           1. New driver interface"},{"line_number":23,"context_line":"           `update_share_specs_provenient_from_metadata` and two new config"},{"line_number":24,"context_line":"           options `supported_metadata_keys`, `supported_admin_metadata_keys`"},{"line_number":25,"context_line":"           will be introduced."},{"line_number":26,"context_line":"           2. The backend driver then based on metadata changes can take"},{"line_number":27,"context_line":"           necessary action in `update_share_specs_provenient_from_metadata`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"18ccebd1_3af2e710","line":24,"range":{"start_line":24,"start_character":47,"end_line":24,"end_character":76},"updated":"2024-06-22 00:55:17.000000000","message":"I don\u0027t think \"supported_admin_metadata_keys\" option is necessary; because we have the config opt that Carlos pointed to, earlier: \"admin_only_metadata\"... \n\nIf, an operator wants some keys to be updatable only by admins, they would just set them in the existing config opt: \"admin_only_metadata\"\n\nI imagine an update metadata operation to look at \"admin_only_metadata\" first (as it is doing today) and ensure that we fail requests from end users that don\u0027t have access to update these keys. If they have access to update them, we\u0027d make the necessary updates on the database, and then, look at the \"supported_admin_metadata_keys\" configuration option to determine if an async update must be made via the share manager service","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":21,"context_line":"           Flow -"},{"line_number":22,"context_line":"           1. New driver interface"},{"line_number":23,"context_line":"           `update_share_specs_provenient_from_metadata` and two new config"},{"line_number":24,"context_line":"           options `supported_metadata_keys`, `supported_admin_metadata_keys`"},{"line_number":25,"context_line":"           will be introduced."},{"line_number":26,"context_line":"           2. The backend driver then based on metadata changes can take"},{"line_number":27,"context_line":"           necessary action in `update_share_specs_provenient_from_metadata`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"219dac18_3076447f","line":24,"range":{"start_line":24,"start_character":47,"end_line":24,"end_character":76},"in_reply_to":"18ccebd1_3af2e710","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":21,"context_line":"           Flow -"},{"line_number":22,"context_line":"           1. New driver interface"},{"line_number":23,"context_line":"           `update_share_specs_provenient_from_metadata` and two new config"},{"line_number":24,"context_line":"           options `supported_metadata_keys`, `supported_admin_metadata_keys`"},{"line_number":25,"context_line":"           will be introduced."},{"line_number":26,"context_line":"           2. The backend driver then based on metadata changes can take"},{"line_number":27,"context_line":"           necessary action in `update_share_specs_provenient_from_metadata`"}],"source_content_type":"text/x-rst","patch_set":3,"id":"20a8bda4_a779ba41","line":24,"range":{"start_line":24,"start_character":20,"end_line":24,"end_character":43},"in_reply_to":"3135496f_dc3b8921","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           if provided metadata key is present in list provided by config"},{"line_number":29,"context_line":"           either `supported_metadata_keys` or `supported_admin_metadata_keys`"},{"line_number":30,"context_line":"           based on user is regular or admin. These keys will be documented in"},{"line_number":31,"context_line":"           user and admin guide respectively."},{"line_number":32,"context_line":"           3. If the action results in success or failure, the user will be"},{"line_number":33,"context_line":"           notified through the user message API. It might be possible that a"},{"line_number":34,"context_line":"           db change gets applied successfully, but respective backend driver"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dc20e78d_cbcb33fa","line":31,"range":{"start_line":31,"start_character":44,"end_line":31,"end_character":45},"updated":"2024-06-22 00:55:17.000000000","message":"I think in the documentation, we can encourage operators to set the updatable keys in the share type\u0027s description perhaps - as a way to make it easier for end users to get this information","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":28,"context_line":"           if provided metadata key is present in list provided by config"},{"line_number":29,"context_line":"           either `supported_metadata_keys` or `supported_admin_metadata_keys`"},{"line_number":30,"context_line":"           based on user is regular or admin. These keys will be documented in"},{"line_number":31,"context_line":"           user and admin guide respectively."},{"line_number":32,"context_line":"           3. If the action results in success or failure, the user will be"},{"line_number":33,"context_line":"           notified through the user message API. It might be possible that a"},{"line_number":34,"context_line":"           db change gets applied successfully, but respective backend driver"}],"source_content_type":"text/x-rst","patch_set":3,"id":"a3895755_2edcf291","line":31,"range":{"start_line":31,"start_character":44,"end_line":31,"end_character":45},"in_reply_to":"dc20e78d_cbcb33fa","updated":"2024-07-01 16:22:10.000000000","message":"Acknowledged","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":33,"context_line":"           notified through the user message API. It might be possible that a"},{"line_number":34,"context_line":"           db change gets applied successfully, but respective backend driver"},{"line_number":35,"context_line":"           operation results in failure. Thus notifying the end user using"},{"line_number":36,"context_line":"           message API becomes important."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"           Use cases -"},{"line_number":39,"context_line":"            1. For example, NetApp ONTAP driver needs to set snapshot policy"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9daae18f_402b730e","line":36,"range":{"start_line":36,"start_character":40,"end_line":36,"end_character":41},"updated":"2024-06-22 00:55:17.000000000","message":"As I commented above [1], as another UX improvement the driver must also revert the metadata to its original state - it\u0027ll be tricky to implement;\n- maybe we can detect the original setting via the backend, or,\n- record it in the API before we update the database and send it to the driver \n\n[1] https://review.opendev.org/c/openstack/manila-specs/+/916595/comment/752f147f_cc530cf4/\n\nI\u0027m okay to debate this.. not a hard requirement","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":33,"context_line":"           notified through the user message API. It might be possible that a"},{"line_number":34,"context_line":"           db change gets applied successfully, but respective backend driver"},{"line_number":35,"context_line":"           operation results in failure. Thus notifying the end user using"},{"line_number":36,"context_line":"           message API becomes important."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"           Use cases -"},{"line_number":39,"context_line":"            1. For example, NetApp ONTAP driver needs to set snapshot policy"}],"source_content_type":"text/x-rst","patch_set":3,"id":"4a758ea2_e2be376b","line":36,"range":{"start_line":36,"start_character":40,"end_line":36,"end_character":41},"in_reply_to":"9daae18f_402b730e","updated":"2024-07-01 16:22:10.000000000","message":"Acknowledged","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":54,"context_line":":impacts:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"          - REST API Impact."},{"line_number":57,"context_line":"              - None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"          - Documentation Impact"},{"line_number":60,"context_line":"              - User guide"}],"source_content_type":"text/x-rst","patch_set":3,"id":"612d0196_14042e3e","line":57,"range":{"start_line":57,"start_character":16,"end_line":57,"end_character":20},"updated":"2024-06-22 00:55:17.000000000","message":"REST API Impact doens\u0027t just mean response/request schema changes or error code changes.. it also encompasses REST API behavior changes. I think you can mention this:\n\n\"The update metadata behavior will issue an RPC call to the backends when necessary to allow the share manager to process metadata updates via the driver. However, no request/response schema or response error codes will be changed as part of this implementation\"","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":54,"context_line":":impacts:"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"          - REST API Impact."},{"line_number":57,"context_line":"              - None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"          - Documentation Impact"},{"line_number":60,"context_line":"              - User guide"}],"source_content_type":"text/x-rst","patch_set":3,"id":"fcdbc04e_3427df90","line":57,"range":{"start_line":57,"start_character":16,"end_line":57,"end_character":20},"in_reply_to":"612d0196_14042e3e","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"50c45bfdf489a7ad067c55fb5450781a0215fd9c","unresolved":true,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"          This implementation is supposed to impact performance of API calls."},{"line_number":70,"context_line":"          Previously, API calls handled only db changes. This addition"},{"line_number":71,"context_line":"          of rpc calls to manila-share service and handling within backend"},{"line_number":72,"context_line":"          driver will take more time to process."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":":alternative: As an alternative, Manila could create separate APIs for"},{"line_number":75,"context_line":"              handling various resource related operations."}],"source_content_type":"text/x-rst","patch_set":3,"id":"eb7ff892_a9896a73","line":72,"range":{"start_line":71,"start_character":51,"end_line":72,"end_character":48},"updated":"2024-06-22 00:55:17.000000000","message":"This isn\u0027t expected to affect performance of the API though.","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"18e29c390e90a499388e7c472812e193c82ab518","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"          This implementation is supposed to impact performance of API calls."},{"line_number":70,"context_line":"          Previously, API calls handled only db changes. This addition"},{"line_number":71,"context_line":"          of rpc calls to manila-share service and handling within backend"},{"line_number":72,"context_line":"          driver will take more time to process."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":":alternative: As an alternative, Manila could create separate APIs for"},{"line_number":75,"context_line":"              handling various resource related operations."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3d491e0c_9f398c6b","line":72,"range":{"start_line":71,"start_character":51,"end_line":72,"end_character":48},"in_reply_to":"eb7ff892_a9896a73","updated":"2024-07-01 16:22:10.000000000","message":"Done","commit_id":"5c8f01daf61f1ab80deb4c3bd194021028a06134"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd7702f9e065981cf260414db1378b85696d71bf","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4e336f_ad592d3a","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"updated":"2024-07-01 19:23:16.000000000","message":"can we think of a way we can avoid sharing the \"driver\" portion with end users? \n\n\"netapp:max_files\" can just be \"max_files\" as far as a user is concerned.. so while the share-type specifies \"netapp:max_files\", when we create the metadata item, the key would be \"max_files\". Internally, manila\u0027s API will know how to map things.. \n\nwe need to maintain a map of such key/values that will grow over time.. but, it\u0027ll help obscure driver names, backend names and other such non-user privileged data.","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"64302c4b73f13e029b44407b61cfd5c6c9ec0776","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"82a4def0_aae89a71","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"1a4e336f_ad592d3a","updated":"2024-07-02 08:56:19.000000000","message":"if we provision multi-driver backend, then list can be \"a:k1, a:k2, a:k3, b:k2, b:k3\" etc. So when share is created and share type extra-spec contains \"a:k1, a:k2\", we copy \"k1, k2\" to share metadata. \nwhen user call update metadata and k1/k2 key are used and present in metadata, we just update and then pass to driver.\nwhen user call update metadata and k3 key is used, since its not present in metadata, but in config option, we add to metadata and then pass to driver.\nsimilar for backend with driver \"b\"\n\nif we are not going to support multi-backend under single provision, we safe to ignore backend/driver name. \n\nWDYT ? Rest comments are fixed.","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b58dd1d426b56524b30804be48a98cf8e83b5dcb","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"952aeafb_9d424608","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"7b3f9c85_5a0b85b6","updated":"2024-07-03 20:01:07.000000000","message":"\u003e  I assume we dont have use case where single share type support multiple backend drivers\n\nThis is something we can clarify in the documentation. If you\u0027ve a situation with \"clashing\" extra-specs between drivers, you\u0027d need to create separate share types.. we can hash this issue out during code reviews.. \nI\u0027m okay approving this spec with this ambiguity..","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"c80d405485e0c9140f5a2bf5e071117954ae7dc6","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a2060099_4fceee7e","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"82a4def0_aae89a71","updated":"2024-07-02 12:49:06.000000000","message":"maybe we can maintain the list inside driver and announce them to API as driver\u0027s capabilities?","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3fb263f8a376f24a078199aa407c81272cfe8399","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"35574968_a0174322","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"85c85050_31cf8dd7","updated":"2024-07-04 11:00:27.000000000","message":"thanks for clarification. As I understand, driver_updatable_metadata would be config option in default section and not in driver section. Since from default section while creating share, we copy intersecting extra-specs to share metadata. \n\n1. So we have to maintain driver internal list (hardcoded in code) or provide another(or similar) config option in driver section.\n2. OR we have to assume that extra-specs with driver:\u003ckey\u003e are the only keys that are updatable metadata for given driver.","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"8f658fdd73c904e426cef4db0b4a52e048e06d6d","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"85c85050_31cf8dd7","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"952aeafb_9d424608","updated":"2024-07-04 02:41:43.000000000","message":"maybe i know what Chuan Miao means:\n\n1: add new config and new function to manila/share/driver.py\n\n    cfg.StrOpt(\u0027driver_updatable_metadata\u0027,\n                default\u003d\u0027\u0027,\n                help\u003d\u0027the driver can update metadata key,separated by commas.\u0027),\n               \n    ...\n    def update_share_by_metadata(self, context):\n        pass\n\n2: in manila.conf, we set\n\n    [netapp]\n    ...\n    driver_updatable_metadata\u003dmax_files,a1,a2\n    ...\n\n3: in manila/share/manager.py add new function:\nafter set metadata to db, then try to call this function to update\nfeature for share in driver.\n\n    def set_driver_updatable_metadata(self, contxt, metadatas):\n        return self.driver.update_share_by_metadata(context, metadatas)\n        \n4: when set metadata for share, in manila/share/drivers/netapp.py\n   \n    def function1(medata_key, metada_value):\n        pass\n    def function2(medata_key, metada_value):\n        pass\n    def function3(medata_key, metada_value):\n        pass\n    medata_update_map \u003d {\"max_files\": function1, \"a1\": function2, \"a3\":function3}\n    def update_share_by_metadata(self, context, metadatas):\n       driver_updatable_metadata \u003d self.configuration.driver_updatable_metadata\n        if driver_updatable_metadata:\n            driver_updatable_metadata_list \u003d driver_updatable_metadata.split(\u0027,\u0027)\n        else:\n            driver_updatable_metadata_list \u003d []\n        for metadata_key in metadatas:\n            if metadata_key in driver_updatable_metadata_list:\n                 set_feature_function \u003d medata_update_map[metadata]\n                 set_feature_function(metadata_key , metadatas[metadata_key ])\n\n5: in manila/share/drivers/netapp.py\n\n    def _update_share_stats(self, data\u003dNone):\n        ...\n        driver_updatable_metadata\u0027: self.configuration.driver_updatable_metadata\n        ...\n\n        \nthen manila pool-list --detail, we can see driver_updatable_metadata in driver\u0027s capabilities","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"bd1979a4da104b563d54c9ffd92b6feb3e20c907","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e92fd673_b711fdca","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"a2060099_4fceee7e","updated":"2024-07-02 15:38:56.000000000","message":"you mean remove config option and instead maintain list in driver ?","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2089ce0cf2339aa1a3838c6718c8648246d7fe9d","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7b3f9c85_5a0b85b6","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"a8db5b2e_86a0edb5","updated":"2024-07-03 10:55:03.000000000","message":"so we copy \"max_files\" instead of \"netapp:max_files\" from share-type extra-specs to share metadata. While validating, driver will have internal list and if that list contains \"max_files\", driver will accept metadata update callback and perform required action.\n\nLets assume, \"driver_updatable_metadata\" \u003d {a1 ,a2, a3,a4, b1, b2}\n\nwhen we create share and share type extra spec contains {a:a1, a:a2, a:a3}, we copy only a1, a2, a3, in share metadata as I assume we dont have use case where single share type support multiple backend drivers. Going further driver also maintain internal list of [a1, a2, a3], so driver check whether update metadata key present in list.\nSimilarly, we create another share from another share type which specs are {b:b1, b:b2}, we copy only b1, b2 in share metadata. Rest logic as above. \n\nso we dont need to maintain driver:key and only key is enough. Correct ?","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"1bbfe2d3f09496c195a97b779d21358d7e7e671a","unresolved":true,"context_lines":[{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."},{"line_number":33,"context_line":"           2. The share type extra-specs will determine the initial"},{"line_number":34,"context_line":"           configuration of a share. It will contain values in the format of"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a8db5b2e_86a0edb5","line":31,"range":{"start_line":31,"start_character":43,"end_line":31,"end_character":76},"in_reply_to":"e92fd673_b711fdca","updated":"2024-07-03 10:41:05.000000000","message":"that\u0027s not what I mean. I am suggesting how to do the mapping. When user provide \"max_files\" in the metadata, manager can map it to \"netapp:max_files\" based on driver capabilities.","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd7702f9e065981cf260414db1378b85696d71bf","unresolved":true,"context_lines":[{"line_number":39,"context_line":"           3. If metadata is provided in share create API, possible actions"},{"line_number":40,"context_line":"           are as below -"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"             - If provided metadata is present in `admin_only_metadata`, the"},{"line_number":43,"context_line":"               Manila will check if policy allows the user to add/update that"},{"line_number":44,"context_line":"               metadata and if yes, it will check if its present in share"},{"line_number":45,"context_line":"               metadata (i.e. copied from share type extra-spec). If present"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a7d0675_4c8d4d28","line":42,"range":{"start_line":42,"start_character":73,"end_line":42,"end_character":76},"updated":"2024-07-01 19:23:16.000000000","message":"nit: remove","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"64302c4b73f13e029b44407b61cfd5c6c9ec0776","unresolved":false,"context_lines":[{"line_number":39,"context_line":"           3. If metadata is provided in share create API, possible actions"},{"line_number":40,"context_line":"           are as below -"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"             - If provided metadata is present in `admin_only_metadata`, the"},{"line_number":43,"context_line":"               Manila will check if policy allows the user to add/update that"},{"line_number":44,"context_line":"               metadata and if yes, it will check if its present in share"},{"line_number":45,"context_line":"               metadata (i.e. copied from share type extra-spec). If present"}],"source_content_type":"text/x-rst","patch_set":4,"id":"921eed3a_a4b49a87","line":42,"range":{"start_line":42,"start_character":73,"end_line":42,"end_character":76},"in_reply_to":"1a7d0675_4c8d4d28","updated":"2024-07-02 08:56:19.000000000","message":"Done","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd7702f9e065981cf260414db1378b85696d71bf","unresolved":true,"context_lines":[{"line_number":47,"context_line":"             - If provided metadata is not admin-only, the Manila will check"},{"line_number":48,"context_line":"               if its present in share metadata (i.e. copied from share type"},{"line_number":49,"context_line":"               extra-spec). If present in share metadata, Manila will pass"},{"line_number":50,"context_line":"               metadata to backed driver."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"           4. During metadata update API as well, first db operations are"},{"line_number":53,"context_line":"           performed and updated metadata once validated will be passed to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f8bd3d83_e5a63479","line":50,"range":{"start_line":50,"start_character":27,"end_line":50,"end_character":33},"updated":"2024-07-01 19:23:16.000000000","message":"backend","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"64302c4b73f13e029b44407b61cfd5c6c9ec0776","unresolved":false,"context_lines":[{"line_number":47,"context_line":"             - If provided metadata is not admin-only, the Manila will check"},{"line_number":48,"context_line":"               if its present in share metadata (i.e. copied from share type"},{"line_number":49,"context_line":"               extra-spec). If present in share metadata, Manila will pass"},{"line_number":50,"context_line":"               metadata to backed driver."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"           4. During metadata update API as well, first db operations are"},{"line_number":53,"context_line":"           performed and updated metadata once validated will be passed to"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a21a041a_e6c72837","line":50,"range":{"start_line":50,"start_character":27,"end_line":50,"end_character":33},"in_reply_to":"f8bd3d83_e5a63479","updated":"2024-07-02 08:56:19.000000000","message":"Done","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd7702f9e065981cf260414db1378b85696d71bf","unresolved":true,"context_lines":[{"line_number":49,"context_line":"               extra-spec). If present in share metadata, Manila will pass"},{"line_number":50,"context_line":"               metadata to backed driver."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"           4. During metadata update API as well, first db operations are"},{"line_number":53,"context_line":"           performed and updated metadata once validated will be passed to"},{"line_number":54,"context_line":"           backend driver."},{"line_number":55,"context_line":"           5. Finally backend driver will peform some action based on passed"},{"line_number":56,"context_line":"           metadata. If action results in success or failure, the user will be"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1db623e1_793744b9","line":53,"range":{"start_line":52,"start_character":50,"end_line":53,"end_character":56},"updated":"2024-07-01 19:23:16.000000000","message":"the order is reversed; validation is performed before db is updated..","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"64302c4b73f13e029b44407b61cfd5c6c9ec0776","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               extra-spec). If present in share metadata, Manila will pass"},{"line_number":50,"context_line":"               metadata to backed driver."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"           4. During metadata update API as well, first db operations are"},{"line_number":53,"context_line":"           performed and updated metadata once validated will be passed to"},{"line_number":54,"context_line":"           backend driver."},{"line_number":55,"context_line":"           5. Finally backend driver will peform some action based on passed"},{"line_number":56,"context_line":"           metadata. If action results in success or failure, the user will be"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b03bc609_0d276986","line":53,"range":{"start_line":52,"start_character":50,"end_line":53,"end_character":56},"in_reply_to":"1db623e1_793744b9","updated":"2024-07-02 08:56:19.000000000","message":"Done","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fd7702f9e065981cf260414db1378b85696d71bf","unresolved":true,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":":link: https://blueprints.launchpad.net/manila/+spec/pass-resource-metadata-updates-to-backend-drivers"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":":reviewers: carloss"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":":assignee: kpdev"}],"source_content_type":"text/x-rst","patch_set":4,"id":"09520539_9b2c1355","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":19},"updated":"2024-07-01 19:23:16.000000000","message":"we don\u0027t seem to have a lite-spec template in this repo; so you can pretty-much add whatever rows you think are necessary;\n\nthis though doesn\u0027t sound relevant to the specification; you\u0027ll have a number of reviewers looking at this","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"64302c4b73f13e029b44407b61cfd5c6c9ec0776","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":":link: https://blueprints.launchpad.net/manila/+spec/pass-resource-metadata-updates-to-backend-drivers"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":":reviewers: carloss"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":":assignee: kpdev"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d82693f1_e901a793","line":106,"range":{"start_line":106,"start_character":0,"end_line":106,"end_character":19},"in_reply_to":"09520539_9b2c1355","updated":"2024-07-02 08:56:19.000000000","message":"Done","commit_id":"f1a42c984b3f1aa145f08806fc02a955c0f78a71"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"c80d405485e0c9140f5a2bf5e071117954ae7dc6","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"           Flow -"},{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."}],"source_content_type":"text/x-rst","patch_set":5,"id":"dd17ae6d_b3adc11e","line":29,"updated":"2024-07-02 12:49:06.000000000","message":"It would fit with existing names to call them also specs, such as \u0027driver_specs_updatable\u0027, \u0027driver_specs_updatable_only_by_admin\u0027?","commit_id":"526d851a7eb91598339f725a85121b2507654d62"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"2089ce0cf2339aa1a3838c6718c8648246d7fe9d","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"           Flow -"},{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."}],"source_content_type":"text/x-rst","patch_set":5,"id":"5d9448b7_30a2f8c9","line":29,"in_reply_to":"8dd39886_9a1b5c4b","updated":"2024-07-03 10:55:03.000000000","message":"admin_only_metadata is existing config option, lets not change it. \n\u003eOtherwise admins need to maintain same thing in two places.\n\nNo, admin needs to consider only two things which all are updatable by all users and which is admin only thing. So anything which is updatable by admin-only and requested by non-admin user, API layer validation itself will throw error.","commit_id":"526d851a7eb91598339f725a85121b2507654d62"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"1bbfe2d3f09496c195a97b779d21358d7e7e671a","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"           Flow -"},{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."}],"source_content_type":"text/x-rst","patch_set":5,"id":"8dd39886_9a1b5c4b","line":29,"in_reply_to":"bf1380e1_ec8fb7e7","updated":"2024-07-03 10:41:05.000000000","message":"I mean `driver_updatable_metadata -\u003e driver_specs_updatable` and `admin_only_metadata -\u003e driver_specs_updatable_only_by_admin`. Just as an example, feel free to choose some other mutual prefix. Since \"extra specs\" is already used quite often, I am thinking choosing a similar term, so \"driver_specs_...\". \"metadata\" is where they are stored, together with other arbitrary stuffs. Using a separate word might be less confusing for discussions.\n\n\n\u003e driver_updatable_metadata config option will contain both admin and non-admin metadata keys.\n\nI think it would be less error prone if this option contains only non-admin keys, and the other option contains the admin only keys. Otherwise admins need to maintain same thing in two places.","commit_id":"526d851a7eb91598339f725a85121b2507654d62"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"bd1979a4da104b563d54c9ffd92b6feb3e20c907","unresolved":true,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"           Flow -"},{"line_number":28,"context_line":"           1. New driver interface `update_share_from_metadata` will be added."},{"line_number":29,"context_line":"           New config option `driver_updatable_metadata` will be introduced in"},{"line_number":30,"context_line":"           default section of manila.conf. This contains comma separated list"},{"line_number":31,"context_line":"           where each element is of format \u003cdriver\u003e:\u003cdriver_updatateble_key\u003e."},{"line_number":32,"context_line":"           Please note, this contains both admin and non-admin metadata keys."}],"source_content_type":"text/x-rst","patch_set":5,"id":"bf1380e1_ec8fb7e7","line":29,"in_reply_to":"dd17ae6d_b3adc11e","updated":"2024-07-02 15:38:56.000000000","message":"driver_updatable_metadata config option will contain both admin and non-admin metadata keys.","commit_id":"526d851a7eb91598339f725a85121b2507654d62"}]}
