)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"0d79592620492a018b0e67f90054ba83e08886fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6c81cf0f_ee193b10","updated":"2025-07-15 16:33:33.000000000","message":"LGTM ..!, check the ZUUL job failure","commit_id":"1691cc12ba3f3ac6116839f7ed31c64f5307a6c9"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"c35eb1ec3be2508e5b4adeea6578f12b4b3c566c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f0913da3_1d7f4a7b","updated":"2025-07-15 14:08:47.000000000","message":"Looks fine to me.","commit_id":"1691cc12ba3f3ac6116839f7ed31c64f5307a6c9"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"ccda60d8faa131d7ad62f8bb691fbb8d4ee22043","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"604c5015_17d79521","updated":"2025-07-15 15:04:50.000000000","message":"recheck","commit_id":"1691cc12ba3f3ac6116839f7ed31c64f5307a6c9"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"9b0b51859b1f4b3e2e8aaffcc135da905bc23304","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0e0dfd5e_2d65ef8d","updated":"2025-07-18 11:50:50.000000000","message":"LGTM","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"a5539578893b1484327293993e6db859d1644066","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"af80602c_97e75548","updated":"2025-07-18 15:19:10.000000000","message":"LGTM ..!","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b9aabee36a2cb3600ea31d9e498a50e4a6e5f2af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a7808f9d_fe1a4cb6","updated":"2025-07-17 14:18:33.000000000","message":"when metadata is set, all access will become \u0027none\u0027 i.e. all_squash\nwhen metadata is unset, all access will become \u0027sys\u0027 i.e. default setting for given share. So it solves the customer request.","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6ed511af948c3b48b194cd70f3dfd196ac15062d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c7cb20d6_7eb15a87","updated":"2025-08-14 11:24:22.000000000","message":"Another follow-up question on a detail I missed in the earlier review. Thanks for the prompt reply!","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3ab50f1a9a60ac90e31be6eb438eed2f1baf836c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ac42ac8e_a1e4fbff","updated":"2025-08-21 14:18:36.000000000","message":"Apologies for the late reply. @gouthampravi@gmail.com could you please take a look at it when you have a chance?","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"59e3a4e3fcd66d788b5987e5774d7a198a2db7f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d6c67211_8a9b9742","updated":"2025-08-14 10:40:44.000000000","message":"Hey, Kiran. Thanks for working on this change. If it is set to the share instance, it means that all access rules for that share instance will have all_squash enabled. Is that the behavior you desire? If not, wouldn\u0027t share access metadata (ShareAccessRulesMetadata) be a more appropriate place to set this metadata, as it constrains specifically to the access?","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9e19a94048770278e60ae6a25537af49a468147f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2ae864dd_0755be67","updated":"2025-09-12 20:56:52.000000000","message":"Hey, a question inline extending Carlos\u0027s earlier concern","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"ad679f92b55d3a3b4b24535eab8ae76e3e6e95f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d9fc62dd_94d2b51e","updated":"2025-07-28 09:54:20.000000000","message":"LGTM","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"89c6524ca18f2084c0ccb7c29663a1ac315cc2ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c81b7bca_fc403560","updated":"2025-07-28 10:07:05.000000000","message":"LGTM ...!","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"efdb9a881228e620d69736623161a8ad0740b4bf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f8fbf82f_135ad3c5","updated":"2025-07-25 11:40:01.000000000","message":"recheck","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":35316,"name":"Keerthivasan S","email":"ksuresh@purestorage.com","username":"keerthivasan"},"change_message_id":"b30567c73d8509505de9778061f2225843e756a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"227563ae_7e64ec85","updated":"2025-07-24 16:16:39.000000000","message":"run Pure Storage CI","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":35316,"name":"Keerthivasan S","email":"ksuresh@purestorage.com","username":"keerthivasan"},"change_message_id":"80d3694a64e9b010b3f6e0fe7b7ee783e63f5804","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4ce3bb2b_ad794779","updated":"2025-07-24 19:31:50.000000000","message":"run Pure Storage CI","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":35316,"name":"Keerthivasan S","email":"ksuresh@purestorage.com","username":"keerthivasan"},"change_message_id":"56dcc433e0a862f6f1648c49fbf9594e6b6b17bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"850926e6_f9433a52","updated":"2025-07-24 14:37:38.000000000","message":"run Pure Storage CI","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":35316,"name":"Keerthivasan S","email":"ksuresh@purestorage.com","username":"keerthivasan"},"change_message_id":"c92e6ea302a4321b3039229eefa2ea056f71dbd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a08b3fbb_b7b3f9c1","updated":"2025-07-24 18:48:50.000000000","message":"run Pure Storage CI","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":35316,"name":"Keerthivasan S","email":"ksuresh@purestorage.com","username":"keerthivasan"},"change_message_id":"d1e4086607df0cfe528967f17f903de525b29461","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b3c312a0_3f63b44e","updated":"2025-07-24 17:20:54.000000000","message":"run Pure Storage CI","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6ed511af948c3b48b194cd70f3dfd196ac15062d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"876105af_9ca59463","in_reply_to":"cadc613b_1e6e5eb9","updated":"2025-08-14 11:24:22.000000000","message":"Makes sense","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"8a4f331ef86d442a4ed65131d427f0e35cc059dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"cadc613b_1e6e5eb9","in_reply_to":"d6c67211_8a9b9742","updated":"2025-08-14 10:48:08.000000000","message":"yes, use-case is to set all access rules of share to all_squash. Also when share metadata is removed or set to False, all access rules will be updated again to remove all_squash i.e. grant regular sys authentication.","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"f128fcc72f7a9d2eaac04526af35068ac6063cf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3c3fca2e_e8358a03","updated":"2026-01-02 05:32:34.000000000","message":"LGTM","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":38371,"name":"Kumar Tadepalli","display_name":"Kumar Tadepalli","email":"kumart.lead@gmail.com","username":"kumart","status":"NetApp"},"change_message_id":"4fb3a919638740b1d359e5387bdf28f22374240a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"82554a76_cc7eac5e","updated":"2026-01-04 13:48:38.000000000","message":"LGTM","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d2a42dd3a3bcc1f785136227846ea9b3793a9102","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"041c6c6c_747a3d30","updated":"2026-01-07 13:39:49.000000000","message":"LGTM, thanks for working on the comments, Kiran. @gouthampravi@gmail.com could you please take a look?","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"e63bf6d6236a1145ad9cf79f9a86ee593b9e82b0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"98f21f0c_29b20fdc","updated":"2025-12-18 17:40:13.000000000","message":"Please look at comments.","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"3358da6df06d6d406d5ee1caffb35628b973f9a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"66b90602_2efed556","updated":"2026-01-09 06:50:19.000000000","message":"recheck","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d4140f33da369b968def64bae275c91f712be22a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f1b19dd4_33dc2341","updated":"2026-01-09 12:43:36.000000000","message":"recheck","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"}],"manila/share/access.py":[{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"2be5ea9a40971fafb474114d1f3a64c460f9fcc0","unresolved":true,"context_lines":[{"line_number":339,"context_line":"            metadata \u003d self.db.share_metadata_get("},{"line_number":340,"context_line":"                context, share_instance[\u0027share_id\u0027])"},{"line_number":341,"context_line":"            if metadata:"},{"line_number":342,"context_line":"                share_instance.update({\u0027metadata\u0027: metadata})"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"            driver_rule_updates \u003d self._update_rules_through_share_driver("},{"line_number":345,"context_line":"                context, share_instance, access_rules_on_share,"}],"source_content_type":"text/x-python","patch_set":2,"id":"19d0f7e7_86809fb5","line":342,"updated":"2025-07-24 08:30:50.000000000","message":"The share\u0027s `metadata` is already read from DB, because of `with_share_data\u003dTrue` on L311. Why not improve the ShareInstance model to include `metadata` field when calling share_instance\u0027s `set_share_data`?","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d7814b4152702df66c143b8bfa590bb7c6d97591","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            metadata \u003d self.db.share_metadata_get("},{"line_number":340,"context_line":"                context, share_instance[\u0027share_id\u0027])"},{"line_number":341,"context_line":"            if metadata:"},{"line_number":342,"context_line":"                share_instance.update({\u0027metadata\u0027: metadata})"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"            driver_rule_updates \u003d self._update_rules_through_share_driver("},{"line_number":345,"context_line":"                context, share_instance, access_rules_on_share,"}],"source_content_type":"text/x-python","patch_set":2,"id":"b23dc5d1_ce351107","line":342,"in_reply_to":"19d0f7e7_86809fb5","updated":"2025-07-24 09:15:04.000000000","message":"yes, we can do that. But share_metadata is instrumentList which needs to convert to dict() and share_metadata_get does that, so I used ths.","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"}],"manila/share/drivers/netapp/dataontap/protocols/nfs_cmode.py":[{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"2be5ea9a40971fafb474114d1f3a64c460f9fcc0","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        metadata \u003d share.get(\u0027metadata\u0027, None)"},{"line_number":117,"context_line":"        all_squash \u003d ("},{"line_number":118,"context_line":"            (metadata.get(\u0027all_squash\u0027, \u0027false\u0027).lower() \u003d\u003d \u0027true\u0027) if"},{"line_number":119,"context_line":"            metadata else False)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Add new rules to new policy"},{"line_number":122,"context_line":"        for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"940e90f4_cbf2f39c","line":119,"updated":"2025-07-24 08:30:50.000000000","message":"This breaks when `metedata` is `None`","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"2c3a4242a19c74e7ae849d9f277302ab61797e7a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        metadata \u003d share.get(\u0027metadata\u0027, None)"},{"line_number":117,"context_line":"        all_squash \u003d ("},{"line_number":118,"context_line":"            (metadata.get(\u0027all_squash\u0027, \u0027false\u0027).lower() \u003d\u003d \u0027true\u0027) if"},{"line_number":119,"context_line":"            metadata else False)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Add new rules to new policy"},{"line_number":122,"context_line":"        for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"8d18f63b_665bd525","line":119,"in_reply_to":"7eb37ade_ad91d17c","updated":"2025-07-24 16:02:35.000000000","message":"It\u0027s a syntax error when calling metadata.get on line 118 if metadata is None","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"b0b7f2ef7c0f4e35cc6065784195c8cafc778f87","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        metadata \u003d share.get(\u0027metadata\u0027, None)"},{"line_number":117,"context_line":"        all_squash \u003d ("},{"line_number":118,"context_line":"            (metadata.get(\u0027all_squash\u0027, \u0027false\u0027).lower() \u003d\u003d \u0027true\u0027) if"},{"line_number":119,"context_line":"            metadata else False)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Add new rules to new policy"},{"line_number":122,"context_line":"        for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bdb2595d_e6dbf02e","line":119,"in_reply_to":"8d18f63b_665bd525","updated":"2025-07-24 16:24:49.000000000","message":"I dont see it throwing error.\n\n\u003e\u003e\u003e share \u003d {}\n\u003e\u003e\u003e metadata \u003d share.get(\u0027metadata\u0027, None)\n\u003e\u003e\u003e\n\u003e\u003e\u003e all_squash \u003d (\n...     (metadata.get(\u0027all_squash\u0027, \u0027false\u0027).lower() \u003d\u003d \u0027true\u0027) if\n...     metadata else False)\n\u003e\u003e\u003e\n\u003e\u003e\u003e all_squash\nFalse","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d7814b4152702df66c143b8bfa590bb7c6d97591","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        metadata \u003d share.get(\u0027metadata\u0027, None)"},{"line_number":117,"context_line":"        all_squash \u003d ("},{"line_number":118,"context_line":"            (metadata.get(\u0027all_squash\u0027, \u0027false\u0027).lower() \u003d\u003d \u0027true\u0027) if"},{"line_number":119,"context_line":"            metadata else False)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Add new rules to new policy"},{"line_number":122,"context_line":"        for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7eb37ade_ad91d17c","line":119,"in_reply_to":"940e90f4_cbf2f39c","updated":"2025-07-24 09:15:04.000000000","message":"When metadata is None, all_squash is False. So nothing breaks.","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"ad679f92b55d3a3b4b24535eab8ae76e3e6e95f0","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        metadata \u003d share.get(\u0027metadata\u0027, None)"},{"line_number":117,"context_line":"        all_squash \u003d ("},{"line_number":118,"context_line":"            (metadata.get(\u0027all_squash\u0027, \u0027false\u0027).lower() \u003d\u003d \u0027true\u0027) if"},{"line_number":119,"context_line":"            metadata else False)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        # Add new rules to new policy"},{"line_number":122,"context_line":"        for address in addresses:"}],"source_content_type":"text/x-python","patch_set":2,"id":"884bc53c_6edbc79b","line":119,"in_reply_to":"bdb2595d_e6dbf02e","updated":"2025-07-28 09:54:20.000000000","message":"ok","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6ed511af948c3b48b194cd70f3dfd196ac15062d","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        for address in addresses:"},{"line_number":123,"context_line":"            if all_squash:"},{"line_number":124,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":125,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":128,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"4efe6e6e_01d47a25","line":125,"range":{"start_line":125,"start_character":58,"end_line":125,"end_character":63},"updated":"2025-08-14 11:24:22.000000000","message":"if a rule was set to readonly and all squash set to false, we will be forcing it to be RW, can\u0027t this cause confusions? I mean, we\u0027ll be overriding what the user set in the first place and we\u0027ll get all access rules in that share (even the ones that were set to RO) and turn them to RW. Have you guys tested this?","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"53d9c7dd26b6b35384157fbc5ec93292b8b664d1","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        for address in addresses:"},{"line_number":123,"context_line":"            if all_squash:"},{"line_number":124,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":125,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":128,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"aacd7ca5_434e4f12","line":125,"range":{"start_line":125,"start_character":58,"end_line":125,"end_character":63},"in_reply_to":"15e2498b_6ce05298","updated":"2025-09-13 05:08:31.000000000","message":"yes, it changes for all rules. Updated to consider only all_squash if RW.","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9e19a94048770278e60ae6a25537af49a468147f","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        for address in addresses:"},{"line_number":123,"context_line":"            if all_squash:"},{"line_number":124,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":125,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":128,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"15e2498b_6ce05298","line":125,"range":{"start_line":125,"start_character":58,"end_line":125,"end_character":63},"in_reply_to":"2bdc8cf3_6533a33e","updated":"2025-09-12 20:56:52.000000000","message":"\"When the all_squash option is used, all clients for a particular export are forced to read and write as the same user.\"\n\nThis just means the NFS user... \n\nYou could still have read-only clients that are specified by IP addresses.. \n\nHave you tested this?\n\nThe behavior i expect is:\n\n1) User has \"all_squash\" set in the share\u0027s metadata\n2) User has \"rw\" rules and \"ro\" rules - they expect \"all_squash\" to apply only to RW rules.. (squashing user on RO rules doesn\u0027t make sense) \n\nHowever, the implementation right now makes it so that:\n\n1) User has \"all_squash\" set in the share\u0027s metadata\n2) User has \"rw\" rules and \"ro\" rules - but all rules are R/W... meaning, a RO client can write into the share.","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"077c943f7bc58e481e774583d11e9922ce6361c4","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        for address in addresses:"},{"line_number":123,"context_line":"            if all_squash:"},{"line_number":124,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":125,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":128,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"6232b35e_7ebcb4cd","line":125,"range":{"start_line":125,"start_character":58,"end_line":125,"end_character":63},"in_reply_to":"4efe6e6e_01d47a25","updated":"2025-08-14 11:57:20.000000000","message":"Its tested. https://kb.netapp.com/on-prem/ontap/da/NAS/NAS-KBs/How_to_configure_an_all_squash_equivalent_on_a_NetApp_NFS_export it mentions as all clients are forced read and write, so I disabled read-only. But I can keep the way it is, if you recommend.","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3ab50f1a9a60ac90e31be6eb438eed2f1baf836c","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        for address in addresses:"},{"line_number":123,"context_line":"            if all_squash:"},{"line_number":124,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":125,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":126,"context_line":"            else:"},{"line_number":127,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":128,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":3,"id":"2bdc8cf3_6533a33e","line":125,"range":{"start_line":125,"start_character":58,"end_line":125,"end_character":63},"in_reply_to":"6232b35e_7ebcb4cd","updated":"2025-08-21 14:18:36.000000000","message":"I\u0027d say it\u0027s okay if NetApp + other engineers agree with the different behavior here :)","commit_id":"efdaf13b6898512ba0d24712c78e14e52f8145f5"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"e63bf6d6236a1145ad9cf79f9a86ee593b9e82b0","unresolved":true,"context_lines":[{"line_number":123,"context_line":"            readonly \u003d self._is_readonly(new_rules[address])"},{"line_number":124,"context_line":"            if all_squash and not readonly:"},{"line_number":125,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":126,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":129,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bb5acb22_9e28bdba","line":126,"updated":"2025-12-18 17:40:13.000000000","message":"Wouldnt all_sqash require address to be setup as 0.0.0.0/0 as well? Below is the command equivalent of the all_sqash export policy rule. Am I missing something?\n\nvserver export-policy rule create -vserver \u003csvm name\u003e -policyname all_squash -clientmatch 0.0.0.0/0 -rorule none -rwrule none -superuser none -anon 65534 -ruleindex 2","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"9584c615fb8e1d90020dc3360dbbce5a2a4ccb82","unresolved":true,"context_lines":[{"line_number":123,"context_line":"            readonly \u003d self._is_readonly(new_rules[address])"},{"line_number":124,"context_line":"            if all_squash and not readonly:"},{"line_number":125,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":126,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":129,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f722351_ef9e5d1e","line":126,"in_reply_to":"009a158e_8dd05040","updated":"2025-12-19 09:38:50.000000000","message":"How about the anon user and superuser as none. They will also be required for all sqash.","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"e9505ea2538e85f67c90f489c41affb9ba2f349c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            readonly \u003d self._is_readonly(new_rules[address])"},{"line_number":124,"context_line":"            if all_squash and not readonly:"},{"line_number":125,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":126,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":129,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":5,"id":"29c12819_697d1fbc","line":126,"in_reply_to":"3f722351_ef9e5d1e","updated":"2025-12-19 09:50:40.000000000","message":"the auth method is None itself. Check line 126","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"a0fa15aa96eb0d5917fca89980c75237f769186d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            readonly \u003d self._is_readonly(new_rules[address])"},{"line_number":124,"context_line":"            if all_squash and not readonly:"},{"line_number":125,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":126,"context_line":"                    temp_new_export_policy_name, address, False, [\u0027none\u0027])"},{"line_number":127,"context_line":"            else:"},{"line_number":128,"context_line":"                self._client.add_nfs_export_rule("},{"line_number":129,"context_line":"                    temp_new_export_policy_name, address,"}],"source_content_type":"text/x-python","patch_set":5,"id":"009a158e_8dd05040","line":126,"in_reply_to":"bb5acb22_9e28bdba","updated":"2025-12-19 08:49:06.000000000","message":"that is example. We want to maps all client users to the anonymous user (nobody) for all_squash, but restrict to address for which access rule is created. End user can always give access to 0.0.0.0/0 and then enable all_squash.","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"}],"manila/tests/share/drivers/netapp/dataontap/protocols/test_nfs_cmode.py":[{"author":{"_account_id":33038,"name":"Chuan Miao","email":"chuan137@gmail.com","username":"chuan137"},"change_message_id":"2be5ea9a40971fafb474114d1f3a64c460f9fcc0","unresolved":true,"context_lines":[{"line_number":82,"context_line":"        self.mock_client.soft_delete_nfs_export_policy.assert_called_once_with("},{"line_number":83,"context_line":"            fake.EXPORT_POLICY_NAME)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @ddt.data(True, False)"},{"line_number":86,"context_line":"    def test_update_access(self, all_squash_metadata):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.mock_object(self.helper, \u0027_ensure_export_policy\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"a43d7371_6b7980d5","line":85,"updated":"2025-07-24 08:30:50.000000000","message":"what about a test case where all_squash_metadata is `None`?","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"d7814b4152702df66c143b8bfa590bb7c6d97591","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        self.mock_client.soft_delete_nfs_export_policy.assert_called_once_with("},{"line_number":83,"context_line":"            fake.EXPORT_POLICY_NAME)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @ddt.data(True, False)"},{"line_number":86,"context_line":"    def test_update_access(self, all_squash_metadata):"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.mock_object(self.helper, \u0027_ensure_export_policy\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3da3730b_def1f1b3","line":85,"in_reply_to":"a43d7371_6b7980d5","updated":"2025-07-24 09:15:04.000000000","message":"Done","commit_id":"b5467bf180b9baae745ee11e3052b212c9bcf80c"}],"releasenotes/notes/netapp-offer-nfs-all_squash-3e64861af0d3d717.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8f18179c37673b2d41178cdf6128ced25393d4ef","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp ONTAP driver is enhanced to offer NFS all_squash access to clients."},{"line_number":5,"context_line":"    To enable all_squash access, Admin must set share metadata having key as"},{"line_number":6,"context_line":"    \u0027all_squash\u0027 to value \u0027true\u0027. For more details, please check"},{"line_number":7,"context_line":"    `Launchpad bug #2116920 \u003chttps://bugs.launchpad.net/manila/+bug/2116920\u003e`_"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"b5f756ef_dc0e9e8f","line":5,"range":{"start_line":5,"start_character":33,"end_line":5,"end_character":62},"updated":"2026-01-08 18:18:13.000000000","message":"This can be done by any regular user..","commit_id":"9fe4a048544ca487ab0f46038f4e7af6b8775569"}]}
