)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"a48b382b0a82d6334e87259c6041172efa7a909e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0ce495d0_20a7d4a2","updated":"2024-07-30 08:09:23.000000000","message":"Although I don\u0027t know much about the internal call mode of netapp driver, there is no problem from the function call logic. So vote +1 for now","commit_id":"b99dd65b2707231d3b85dbc8f43c51f218353d79"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"321fe63673f909cdb4ae388f75190b8da6a4f95c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4004d6a7_27044ec7","updated":"2024-08-11 17:47:02.000000000","message":"Add the release note for this patch","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"757ba1f0d071f9ffbcfb7dd8813bb2cd6156d7b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"df59c11a_a3efd253","updated":"2024-08-11 17:46:36.000000000","message":"Thanks kiran for working on this, I have few comments on this patch","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"608ca80da3fabf82bd45e552d3658abca98cf2ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"19cc4f39_b083d202","in_reply_to":"4004d6a7_27044ec7","updated":"2024-08-14 17:12:32.000000000","message":"Done","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"73619bcfba1f8c3a233bd45c805890f10bbb6b6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"de8b4a09_210efba3","updated":"2024-08-22 12:40:20.000000000","message":"Thanks Kiran for incorporating most of the review comments. I have one more minor comment and one point I am not agree, could you please check that.","commit_id":"a97c01653559a107f323b5ad5095977833bb0c78"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9c006fa6_29fb552c","updated":"2024-08-26 18:31:17.000000000","message":"Thank you for working on this change. Looks good for the most part, adding a couple of comments and questions :)","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7190a4b10f6f809ca14c60e7981f88d5fa2e1d61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a32d03cf_bee523b8","updated":"2024-08-23 08:47:08.000000000","message":"Thanks Kiran for incorporating all the review comments, code looks good for me.","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"c65da2ecdb5e163a63e36fc2fac12900f309ba4f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f6b3762e_4278ba05","updated":"2024-08-23 01:20:11.000000000","message":"hi","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"d5b4cc3abdcb808702018c5d25ec049065907c44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4e3056db_858256f8","updated":"2024-08-23 08:56:53.000000000","message":"thanks, Kiran Pawar.\nThere is no problem with the code logic, and we still need to review it again with reviewer who knows the NetApp-driven rest api","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"821055f521c9c2d36e1b4f89ba4f84929e2ab545","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"565d9ccb_d4f5a4c3","in_reply_to":"4e3056db_858256f8","updated":"2024-08-23 10:15:44.000000000","message":"Thanks haixin, Gireesh from NetApp did +1","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"112bbc6cab7491b10394f752b74057501fbdc029","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"5928a59e_999d93b2","updated":"2024-08-28 01:02:54.000000000","message":"LGTM, we can merge this change now.","commit_id":"52d423f6061e707d3bd969354769014ed4847e0d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d4f7e54fcb13a9a59c03beac6de4d675301a9ca9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"cb485553_2b000939","updated":"2024-08-27 13:31:11.000000000","message":"Thanks for working on the changes, LGTM","commit_id":"52d423f6061e707d3bd969354769014ed4847e0d"}],"manila/share/driver.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":true,"context_lines":[{"line_number":3734,"context_line":"        raise NotImplementedError()"},{"line_number":3735,"context_line":""},{"line_number":3736,"context_line":"    def update_share_from_metadata(self, context, share, metadata,"},{"line_number":3737,"context_line":"                                   share_server\u003dNone):"},{"line_number":3738,"context_line":"        \"\"\"Update the share from metadata."},{"line_number":3739,"context_line":""},{"line_number":3740,"context_line":"        Driver must implement this method if needs to perform some action"}],"source_content_type":"text/x-python","patch_set":6,"id":"17ec5390_b288e7d4","line":3737,"range":{"start_line":3737,"start_character":35,"end_line":3737,"end_character":52},"updated":"2024-08-26 18:31:17.000000000","message":"any specific reason why to change this here? It feels like something that should be a part of a the core change, if not a follow-up","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c924cc07d08b2f37cd231b483e6c9b3ef3e60dfc","unresolved":false,"context_lines":[{"line_number":3734,"context_line":"        raise NotImplementedError()"},{"line_number":3735,"context_line":""},{"line_number":3736,"context_line":"    def update_share_from_metadata(self, context, share, metadata,"},{"line_number":3737,"context_line":"                                   share_server\u003dNone):"},{"line_number":3738,"context_line":"        \"\"\"Update the share from metadata."},{"line_number":3739,"context_line":""},{"line_number":3740,"context_line":"        Driver must implement this method if needs to perform some action"}],"source_content_type":"text/x-python","patch_set":6,"id":"9082490e_42cf8023","line":3737,"range":{"start_line":3737,"start_character":35,"end_line":3737,"end_character":52},"in_reply_to":"17ec5390_b288e7d4","updated":"2024-08-27 09:07:40.000000000","message":"the share server retrieve in NetApp was causing delay, so I looked upon and seems passing share server to NetApp driver would be good way to use it.","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"}],"manila/share/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"757ba1f0d071f9ffbcfb7dd8813bb2cd6156d7b4","unresolved":true,"context_lines":[{"line_number":2335,"context_line":"        return api_args"},{"line_number":2336,"context_line":""},{"line_number":2337,"context_line":"    @na_utils.trace"},{"line_number":2338,"context_line":"    def update_snapshot_policy(self, volume_name, snapshot_policy):"},{"line_number":2339,"context_line":"        \"\"\"Set snapshot policy for the specified volume.\"\"\""},{"line_number":2340,"context_line":"        api_args \u003d {"},{"line_number":2341,"context_line":"            \u0027query\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"090289be_b1add120","line":2338,"range":{"start_line":2338,"start_character":8,"end_line":2338,"end_character":30},"updated":"2024-08-11 17:46:36.000000000","message":"Please change this function name to \"update_volume_snapshot_policy\"","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"608ca80da3fabf82bd45e552d3658abca98cf2ca","unresolved":false,"context_lines":[{"line_number":2335,"context_line":"        return api_args"},{"line_number":2336,"context_line":""},{"line_number":2337,"context_line":"    @na_utils.trace"},{"line_number":2338,"context_line":"    def update_snapshot_policy(self, volume_name, snapshot_policy):"},{"line_number":2339,"context_line":"        \"\"\"Set snapshot policy for the specified volume.\"\"\""},{"line_number":2340,"context_line":"        api_args \u003d {"},{"line_number":2341,"context_line":"            \u0027query\u0027: {"}],"source_content_type":"text/x-python","patch_set":3,"id":"1640b1ca_8014ed01","line":2338,"range":{"start_line":2338,"start_character":8,"end_line":2338,"end_character":30},"in_reply_to":"090289be_b1add120","updated":"2024-08-14 17:12:32.000000000","message":"Done","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":true,"context_lines":[{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"    @na_utils.trace"},{"line_number":1604,"context_line":"    def update_showmount(self, showmount):"},{"line_number":1605,"context_line":"        \"\"\"Update show mount for vserver \"\"\""},{"line_number":1606,"context_line":"        nfs_service_modify_arg \u003d {"},{"line_number":1607,"context_line":"            \u0027showmount\u0027: showmount"},{"line_number":1608,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"adc1ad80_c16e8917","line":1605,"range":{"start_line":1605,"start_character":40,"end_line":1605,"end_character":41},"updated":"2024-08-26 18:31:17.000000000","message":"nit: please add a period","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c924cc07d08b2f37cd231b483e6c9b3ef3e60dfc","unresolved":false,"context_lines":[{"line_number":1602,"context_line":""},{"line_number":1603,"context_line":"    @na_utils.trace"},{"line_number":1604,"context_line":"    def update_showmount(self, showmount):"},{"line_number":1605,"context_line":"        \"\"\"Update show mount for vserver \"\"\""},{"line_number":1606,"context_line":"        nfs_service_modify_arg \u003d {"},{"line_number":1607,"context_line":"            \u0027showmount\u0027: showmount"},{"line_number":1608,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":6,"id":"d3696fd9_eadd899a","line":1605,"range":{"start_line":1605,"start_character":40,"end_line":1605,"end_character":41},"in_reply_to":"adc1ad80_c16e8917","updated":"2024-08-27 09:07:40.000000000","message":"Done","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"}],"manila/share/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"757ba1f0d071f9ffbcfb7dd8813bb2cd6156d7b4","unresolved":true,"context_lines":[{"line_number":1111,"context_line":"        }"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"    @na_utils.trace"},{"line_number":1114,"context_line":"    def update_snapshot_policy(self, volume_name, snapshot_policy):"},{"line_number":1115,"context_line":"        \"\"\"Set snapshot policy for the specified volume.\"\"\""},{"line_number":1116,"context_line":"        volume \u003d self._get_volume_by_args(vol_name\u003dvolume_name)"},{"line_number":1117,"context_line":"        uuid \u003d volume[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"21e3c36b_9789f469","line":1114,"range":{"start_line":1114,"start_character":8,"end_line":1114,"end_character":30},"updated":"2024-08-11 17:46:36.000000000","message":"Please change this function name to \"update_volume_snapshot_policy\"","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"608ca80da3fabf82bd45e552d3658abca98cf2ca","unresolved":false,"context_lines":[{"line_number":1111,"context_line":"        }"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"    @na_utils.trace"},{"line_number":1114,"context_line":"    def update_snapshot_policy(self, volume_name, snapshot_policy):"},{"line_number":1115,"context_line":"        \"\"\"Set snapshot policy for the specified volume.\"\"\""},{"line_number":1116,"context_line":"        volume \u003d self._get_volume_by_args(vol_name\u003dvolume_name)"},{"line_number":1117,"context_line":"        uuid \u003d volume[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"8e48407b_f664968f","line":1114,"range":{"start_line":1114,"start_character":8,"end_line":1114,"end_character":30},"in_reply_to":"21e3c36b_9789f469","updated":"2024-08-14 17:12:32.000000000","message":"Done","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":true,"context_lines":[{"line_number":4700,"context_line":""},{"line_number":4701,"context_line":"    @na_utils.trace"},{"line_number":4702,"context_line":"    def update_showmount(self, showmount):"},{"line_number":4703,"context_line":"        \"\"\"Update show mount for vserver \"\"\""},{"line_number":4704,"context_line":"        # Get SVM UUID."},{"line_number":4705,"context_line":"        query \u003d {"},{"line_number":4706,"context_line":"            \u0027name\u0027: self.vserver,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9b049615_f3ede691","line":4703,"range":{"start_line":4703,"start_character":40,"end_line":4703,"end_character":41},"updated":"2024-08-26 18:31:17.000000000","message":"nit: please add a period","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c924cc07d08b2f37cd231b483e6c9b3ef3e60dfc","unresolved":false,"context_lines":[{"line_number":4700,"context_line":""},{"line_number":4701,"context_line":"    @na_utils.trace"},{"line_number":4702,"context_line":"    def update_showmount(self, showmount):"},{"line_number":4703,"context_line":"        \"\"\"Update show mount for vserver \"\"\""},{"line_number":4704,"context_line":"        # Get SVM UUID."},{"line_number":4705,"context_line":"        query \u003d {"},{"line_number":4706,"context_line":"            \u0027name\u0027: self.vserver,"}],"source_content_type":"text/x-python","patch_set":6,"id":"8023ea6d_bb006c5c","line":4703,"range":{"start_line":4703,"start_character":40,"end_line":4703,"end_character":41},"in_reply_to":"9b049615_f3ede691","updated":"2024-08-27 09:07:40.000000000","message":"Done","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"757ba1f0d071f9ffbcfb7dd8813bb2cd6156d7b4","unresolved":true,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"a13f9d58_c9a923d2","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"updated":"2024-08-11 17:46:36.000000000","message":"Are you sure it will work, did you test this..?, I think update_func will return string not function name. I think it should be as below (remove the string in method name). \nmetadata_update_func_map \u003d {\n            \"snapshot_policy\": update_snapshot_policy,\n            \"showmount\": update_showmount,\n        }","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"24da7ef7dda08d66300c2af074aa1c0237e1548d","unresolved":false,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bb632aa6_c1d86792","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"157bf9fd_ae96758e","updated":"2024-08-23 08:40:13.000000000","message":"i coded way of test2.py and its working. its also the way coded in rest of manila, but still if you think otherwise, let me know and i will change to test3.py","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"73619bcfba1f8c3a233bd45c805890f10bbb6b6f","unresolved":true,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"e119dfd1_a0734a34","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"171b7393_7b0ef1b8","updated":"2024-08-22 12:40:20.000000000","message":"Could you please right small program and check this, \"metadata_update_func_map.get(k)\" will return the string. I am sure it will not work.","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"608ca80da3fabf82bd45e552d3658abca98cf2ca","unresolved":false,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"171b7393_7b0ef1b8","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"1737cee8_a9c1507e","updated":"2024-08-14 17:12:32.000000000","message":"no, its correct, invocation was wrong.","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"c65da2ecdb5e163a63e36fc2fac12900f309ba4f","unresolved":false,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"a3060a29_698308a8","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"219ce8c0_496be93b","updated":"2024-08-23 01:20:11.000000000","message":"let us make a test:\nvim test1.py\n\n    def add(a, b):\n        return a + b\n\n    metadata_update_func_map \u003d {\"fun_add\": \"add\"}\n    func \u003d metadata_update_func_map.get(\"fun_add\")\n    result \u003d func(2,3)\n    print(\"result is %s\" % result)\n    \npython3 test1.py\nTypeError: \u0027str\u0027 object is not callable\n\nvim test2.py\n\n    import sys\n\n    def add(a, b):\n       return a + b\n\n    metadata_update_func_map \u003d {\"fun_add\": \"add\"}\n    func \u003d getattr(sys.modules[__name__], metadata_update_func_map[\"fun_add\"])\n    result \u003d func(2,3)\n    print(\"result is %s\" % result)\n    \npython3 test2.py\nresult is 5\n\nvim test3.py\n\n    def add(a, b):\n    return a + b\n\n    metadata_update_func_map \u003d {\"fun_add\": add}\n    func \u003d metadata_update_func_map[\"fun_add\"]\n    result \u003d func(2,3)\n\n    print(\"result is %s\" % result)\n    \npython3 test3.py\nresult is 5\n\nnow we can see test2.py and test3.py is correct.\nI recommend the third way","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"d5b4cc3abdcb808702018c5d25ec049065907c44","unresolved":false,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"c8db50ce_57f41d60","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"9b29c670_2c2a2848","updated":"2024-08-23 08:56:53.000000000","message":"it is fine for me also.","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"dfca34f65882f6b451a24e36024ecd3e81945c83","unresolved":true,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1737cee8_a9c1507e","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"a13f9d58_c9a923d2","updated":"2024-08-12 01:00:36.000000000","message":"+1, good catch.","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"0145b05d779edcd23f951bc3abcf4c49887563bd","unresolved":true,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"157bf9fd_ae96758e","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"a3060a29_698308a8","updated":"2024-08-23 07:46:16.000000000","message":"Thanks haixin for details, agree with you, this need to fix and third way is recommended one. Even I have written below program and it is failing. \n\ndef update_snapshot_policy():\n    print(\"update_snapshot_policy\")\n\ndef update_showmount():\n    print(\"update_showmount\")\n\nmetadata \u003d {\n            \"snapshot_policy\": \"update_snapshot_policy1\",\n            \"showmount\": \"update_showmount1\",\n        }\n\nmetadata_update_func_map \u003d {\n            \"snapshot_policy\": \"update_snapshot_policy\",\n            \"showmount\": \"update_showmount\",\n        }\n\nfor k, v in metadata.items():\n    update_func \u003d metadata_update_func_map.get(k)\n    update_func()\n\n\n\noutput:\n   File \"/opt/stack/manila/gireesh_test.py\", line 21, in \u003cmodule\u003e\n    update_func()\nTypeError: \u0027str\u0027 object is not callable","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"7190a4b10f6f809ca14c60e7981f88d5fa2e1d61","unresolved":false,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9b29c670_2c2a2848","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"bb632aa6_c1d86792","updated":"2024-08-23 08:47:08.000000000","message":"looks fine for me if it is working fine.","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"39fefb61b57e7ff818ec16df8b16274a084b106d","unresolved":false,"context_lines":[{"line_number":5031,"context_line":"    @na_utils.trace"},{"line_number":5032,"context_line":"    def update_share_from_metadata(self, context, share, metadata):"},{"line_number":5033,"context_line":"        metadata_update_func_map \u003d {"},{"line_number":5034,"context_line":"            \"snapshot_policy\": \"update_snapshot_policy\","},{"line_number":5035,"context_line":"            \"showmount\": \"update_showmount\","},{"line_number":5036,"context_line":"        }"},{"line_number":5037,"context_line":""},{"line_number":5038,"context_line":"        for k, v in metadata.items():"},{"line_number":5039,"context_line":"            update_func \u003d metadata_update_func_map.get(k)"}],"source_content_type":"text/x-python","patch_set":3,"id":"219ce8c0_496be93b","line":5036,"range":{"start_line":5034,"start_character":12,"end_line":5036,"end_character":9},"in_reply_to":"e119dfd1_a0734a34","updated":"2024-08-22 12:50:23.000000000","message":"This is tested.","commit_id":"7c4fade3aee7e44487a4cad8bef9d5013a7941d2"}],"manila/share/manager.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":true,"context_lines":[{"line_number":6759,"context_line":"    def update_share_from_metadata(self, context, share_id, metadata):"},{"line_number":6760,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":6761,"context_line":"        share_instance \u003d self._get_share_instance(context, share)"},{"line_number":6762,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":6763,"context_line":"        try:"},{"line_number":6764,"context_line":"            self.driver.update_share_from_metadata(context, share_instance,"},{"line_number":6765,"context_line":"                                                   metadata, share_server)"}],"source_content_type":"text/x-python","patch_set":6,"id":"74c54ec2_f60c4876","line":6762,"range":{"start_line":6762,"start_character":8,"end_line":6762,"end_character":70},"updated":"2024-08-26 18:31:17.000000000","message":"same comment as the driver interface change","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c924cc07d08b2f37cd231b483e6c9b3ef3e60dfc","unresolved":false,"context_lines":[{"line_number":6759,"context_line":"    def update_share_from_metadata(self, context, share_id, metadata):"},{"line_number":6760,"context_line":"        share \u003d self.db.share_get(context, share_id)"},{"line_number":6761,"context_line":"        share_instance \u003d self._get_share_instance(context, share)"},{"line_number":6762,"context_line":"        share_server \u003d self._get_share_server(context, share_instance)"},{"line_number":6763,"context_line":"        try:"},{"line_number":6764,"context_line":"            self.driver.update_share_from_metadata(context, share_instance,"},{"line_number":6765,"context_line":"                                                   metadata, share_server)"}],"source_content_type":"text/x-python","patch_set":6,"id":"18c5d214_e84716a4","line":6762,"range":{"start_line":6762,"start_character":8,"end_line":6762,"end_character":70},"in_reply_to":"74c54ec2_f60c4876","updated":"2024-08-27 09:07:40.000000000","message":"yeah, for now we are good since its not used in any driver yet.","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"}],"manila/tests/share/drivers/dummy.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8dcf5eb5_cf0691f0","line":1062,"range":{"start_line":1060,"start_character":8,"end_line":1062,"end_character":0},"updated":"2024-08-26 18:31:17.000000000","message":"```suggestion\n        LOG.debug(\"Updated share %(share)s. Metadata %(metadata)s \"\n                  \"applied successfully.\",\n                  {\u0027share\u0027: share_instance[\u0027share_id\u0027],\n                   \u0027metadata\u0027: metadata})\n\n```","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c924cc07d08b2f37cd231b483e6c9b3ef3e60dfc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9fd5e246_74acd3d0","line":1062,"range":{"start_line":1060,"start_character":8,"end_line":1062,"end_character":0},"in_reply_to":"8dcf5eb5_cf0691f0","updated":"2024-08-27 09:07:40.000000000","message":"Done","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"}],"releasenotes/notes/netapp-add-update-share-from-metadata-method-71f308c2b05d59bb.yaml":[{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"73619bcfba1f8c3a233bd45c805890f10bbb6b6f","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp Driver: Update share from metadata driver method implemented."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"41defcda_4f55fc42","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":17},"updated":"2024-08-22 12:40:20.000000000","message":"Can you change this as below if this look fine for you, also add the some more details like what are the libs you have develop for ONTAP also.\nThe method to update the share from the metadata driver has been implemented","commit_id":"a97c01653559a107f323b5ad5095977833bb0c78"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"39fefb61b57e7ff818ec16df8b16274a084b106d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp Driver: Update share from metadata driver method implemented."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"f99ea02e_49668548","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":17},"in_reply_to":"41defcda_4f55fc42","updated":"2024-08-22 12:50:23.000000000","message":"Done","commit_id":"a97c01653559a107f323b5ad5095977833bb0c78"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"0f8f80e9b07253840523d500d39cbd1edc716d7c","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp Driver: The method to update the share from the metadata driver"},{"line_number":5,"context_line":"    has been implemented with example metadata key like \u0027snapshot_policy\u0027 and"},{"line_number":6,"context_line":"    \u0027showmount\u0027."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"c3292813_fc059601","line":6,"range":{"start_line":4,"start_character":19,"end_line":6,"end_character":16},"updated":"2024-08-26 18:31:17.000000000","message":"feels like we are giving away a lot of implementation details (\"the method ...\")\nMaybe we can rephrase this to:\n\n\n```suggestion\n    The NetApp ONTAP driver is now able to update the current `snapshot_policy`\n    and/or both `showmount` configurations in a pre-created share. Please use\n    the share metadata set feature to update these values.\n```","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c924cc07d08b2f37cd231b483e6c9b3ef3e60dfc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    NetApp Driver: The method to update the share from the metadata driver"},{"line_number":5,"context_line":"    has been implemented with example metadata key like \u0027snapshot_policy\u0027 and"},{"line_number":6,"context_line":"    \u0027showmount\u0027."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"d9ee0659_cb8dd11b","line":6,"range":{"start_line":4,"start_character":19,"end_line":6,"end_character":16},"in_reply_to":"c3292813_fc059601","updated":"2024-08-27 09:07:40.000000000","message":"Done","commit_id":"faef4a7759266f757d265fe458127946a599e5ad"}]}
