)]}'
{"manila/share/drivers/netapp/dataontap/client/client_cmode.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"fb749af8bcce5c8b10dfd56a756a3ec3f7bd6162","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"61d62512_eaefdeb2","updated":"2021-03-09 16:15:47.000000000","message":"Have these new APIs been tested with a vserver scoped account?","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1ea265c2_b06b0158","in_reply_to":"61d62512_eaefdeb2","updated":"2021-03-10 12:16:37.000000000","message":"In order to use this feature in DHSS\u003dFalse mode with scoped account, a new permission must be added to the current role (vserver fpolicy; access all). \nIf the user don\u0027t want to use fpolicy features, there is no impact.\nThanks for raising this question, I\u0027ll add this information to the release notes.","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[{"line_number":4779,"context_line":"            self.send_request(\u0027fpolicy-policy-event-delete\u0027,"},{"line_number":4780,"context_line":"                              {\u0027event-name\u0027: event_name})"},{"line_number":4781,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":4782,"context_line":"            if e.code \u003d\u003d netapp_api.EEVENTNOTFOUND:"},{"line_number":4783,"context_line":"                msg \u003d _(\"FPolicy event %s not found.\")"},{"line_number":4784,"context_line":"                LOG.debug(msg, event_name)"},{"line_number":4785,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"24c39dfe_8db1b11a","line":4782,"range":{"start_line":4782,"start_character":36,"end_line":4782,"end_character":50},"updated":"2021-03-10 12:16:37.000000000","message":"if e.code in [netapp_api.EEVENTNOTFOUND,\n              netapp_api.EOBJECTNOTFOUND]:","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[{"line_number":4867,"context_line":"            self.send_request(\u0027fpolicy-policy-delete\u0027,"},{"line_number":4868,"context_line":"                              {\u0027policy-name\u0027: policy_name})"},{"line_number":4869,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":4870,"context_line":"            if e.code \u003d\u003d netapp_api.EPOLICYNOTFOUND:"},{"line_number":4871,"context_line":"                msg \u003d _(\"FPolicy policy %s not found.\")"},{"line_number":4872,"context_line":"                LOG.debug(msg, policy_name)"},{"line_number":4873,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"6456edbf_70b32878","line":4870,"range":{"start_line":4870,"start_character":36,"end_line":4870,"end_character":51},"updated":"2021-03-10 12:16:37.000000000","message":"if e.code in [netapp_api.EPOLICYNOTFOUND,\n                          netapp_api.EOBJECTNOTFOUND]:","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2a9bb4a2db1839bcc4ac571dc5c9ef4a064822d0","unresolved":false,"context_lines":[{"line_number":4867,"context_line":"            self.send_request(\u0027fpolicy-policy-delete\u0027,"},{"line_number":4868,"context_line":"                              {\u0027policy-name\u0027: policy_name})"},{"line_number":4869,"context_line":"        except netapp_api.NaApiError as e:"},{"line_number":4870,"context_line":"            if e.code \u003d\u003d netapp_api.EPOLICYNOTFOUND:"},{"line_number":4871,"context_line":"                msg \u003d _(\"FPolicy policy %s not found.\")"},{"line_number":4872,"context_line":"                LOG.debug(msg, policy_name)"},{"line_number":4873,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"436279ba_e385cbcc","line":4870,"range":{"start_line":4870,"start_character":36,"end_line":4870,"end_character":51},"in_reply_to":"6456edbf_70b32878","updated":"2021-03-10 16:17:44.000000000","message":"Done","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_base.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"0d194434d7a362b30afa346c0c68c7cdcaab4d51","unresolved":true,"context_lines":[{"line_number":3243,"context_line":"            LOG.exception(msg)"},{"line_number":3244,"context_line":"            raise exception.NetAppException(message\u003dmsg)"},{"line_number":3245,"context_line":""},{"line_number":3246,"context_line":"        seq_number_list \u003d [int(policy[\u0027sequence-number\u0027])"},{"line_number":3247,"context_line":"                           for policy in vserver_policies]"},{"line_number":3248,"context_line":"        available_seq_number \u003d None"},{"line_number":3249,"context_line":"        for number in range(1, self.FPOLICY_MAX_VSERVER_POLICIES + 1):"}],"source_content_type":"text/x-python","patch_set":2,"id":"b965ae26_e959b336","line":3246,"updated":"2021-02-15 12:49:05.000000000","message":"sequence numer should be tracker on manila side in a thread safe manner, avoid some thread issues. The same reason as the delete fpolicy. What do you think ?!","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"4eb76ac6799e580ac8fa05686c045b49af0b8bad","unresolved":true,"context_lines":[{"line_number":3243,"context_line":"            LOG.exception(msg)"},{"line_number":3244,"context_line":"            raise exception.NetAppException(message\u003dmsg)"},{"line_number":3245,"context_line":""},{"line_number":3246,"context_line":"        seq_number_list \u003d [int(policy[\u0027sequence-number\u0027])"},{"line_number":3247,"context_line":"                           for policy in vserver_policies]"},{"line_number":3248,"context_line":"        available_seq_number \u003d None"},{"line_number":3249,"context_line":"        for number in range(1, self.FPOLICY_MAX_VSERVER_POLICIES + 1):"}],"source_content_type":"text/x-python","patch_set":2,"id":"52f703b4_8017a164","line":3246,"in_reply_to":"b965ae26_e959b336","updated":"2021-02-15 14:28:32.000000000","message":"TL;DR: I think that you are correct about race conditions between create/delete policies, since we may delete policies and let the backend incompatible with the manila configuration.\n\nI can\u0027t see how we could track this outside the driver, because it is a share-server wide numbering, and we do not change share-server backend-details while create/deleting/managing a share. \nWhat we can do here would is: add a lock in driver level to avoid race conditions between fpolicy create/delete functions. \n\nThere is a scenario that I can\u0027t think in a way to avoid concurrency issues: choose_compatible_share_server_for_share(): since at that moment the seq number may be available for a share-server (which cannot be reserved at that moment, since it is not a reservation call) and may not be available at the policy setup time.\n\nThe simple way to avoid those issues is to have a manila lock around these operations, like share replica has today, but create/manage shares don\u0027t.\n\nI was thinking on adding a private-storage map to control this, but would add complexity to the code, and wouldn\u0027t work on DHSS\u003dFalse mode, since the SVM may be shared amond other applications/users.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"0d194434d7a362b30afa346c0c68c7cdcaab4d51","unresolved":true,"context_lines":[{"line_number":3253,"context_line":""},{"line_number":3254,"context_line":"        events \u003d []"},{"line_number":3255,"context_line":"        for protocol in protocols:"},{"line_number":3256,"context_line":"            event_name \u003d self._get_backend_fpolicy_event_name(share[\u0027id\u0027],"},{"line_number":3257,"context_line":"                                                              protocol)"},{"line_number":3258,"context_line":"            vserver_client.create_fpolicy_event(event_name,"},{"line_number":3259,"context_line":"                                                protocol,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7bb841ac_0bf7aea5","line":3256,"updated":"2021-02-15 12:49:05.000000000","message":"the fpolicy is a share server resource, I think that it would be better using the server id, given that the share can be delete afterwars and the fpolicy may still be alive, though.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"4eb76ac6799e580ac8fa05686c045b49af0b8bad","unresolved":true,"context_lines":[{"line_number":3253,"context_line":""},{"line_number":3254,"context_line":"        events \u003d []"},{"line_number":3255,"context_line":"        for protocol in protocols:"},{"line_number":3256,"context_line":"            event_name \u003d self._get_backend_fpolicy_event_name(share[\u0027id\u0027],"},{"line_number":3257,"context_line":"                                                              protocol)"},{"line_number":3258,"context_line":"            vserver_client.create_fpolicy_event(event_name,"},{"line_number":3259,"context_line":"                                                protocol,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fe1cacde_7849adf6","line":3256,"in_reply_to":"7bb841ac_0bf7aea5","updated":"2021-02-15 14:28:32.000000000","message":"We can\u0027t use share server\u0027s id since we can have multiple fpolicies inside the same SVM.\nWe just need to make the ID unique at this moment. The possibilities are: use the uuid from the first share that creates it or generate a new uuid. All other operations don\u0027t rely on the fpolicy itself, but on its configuration.\nAnother idea would be to concantenate server\u0027s id + seq number. But still, we would not use this naming logic to search for policies.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"0d194434d7a362b30afa346c0c68c7cdcaab4d51","unresolved":true,"context_lines":[{"line_number":3261,"context_line":"            events.append(event_name)"},{"line_number":3262,"context_line":""},{"line_number":3263,"context_line":"        # 2. Create a fpolicy policy"},{"line_number":3264,"context_line":"        policy_name \u003d self._get_backend_fpolicy_policy_name(share[\u0027id\u0027])"},{"line_number":3265,"context_line":"        vserver_client.create_fpolicy_policy(policy_name, events)"},{"line_number":3266,"context_line":""},{"line_number":3267,"context_line":"        # 3. Assign a scope to the fpolicy policy"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fc5c1fa_12b9e722","line":3264,"updated":"2021-02-15 12:49:05.000000000","message":"same here about the share id","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"4eb76ac6799e580ac8fa05686c045b49af0b8bad","unresolved":false,"context_lines":[{"line_number":3261,"context_line":"            events.append(event_name)"},{"line_number":3262,"context_line":""},{"line_number":3263,"context_line":"        # 2. Create a fpolicy policy"},{"line_number":3264,"context_line":"        policy_name \u003d self._get_backend_fpolicy_policy_name(share[\u0027id\u0027])"},{"line_number":3265,"context_line":"        vserver_client.create_fpolicy_policy(policy_name, events)"},{"line_number":3266,"context_line":""},{"line_number":3267,"context_line":"        # 3. Assign a scope to the fpolicy policy"}],"source_content_type":"text/x-python","patch_set":2,"id":"c353b240_4bf5126b","line":3264,"in_reply_to":"9fc5c1fa_12b9e722","updated":"2021-02-15 14:28:32.000000000","message":"Same as below.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"0d194434d7a362b30afa346c0c68c7cdcaab4d51","unresolved":true,"context_lines":[{"line_number":3262,"context_line":""},{"line_number":3263,"context_line":"        # 2. Create a fpolicy policy"},{"line_number":3264,"context_line":"        policy_name \u003d self._get_backend_fpolicy_policy_name(share[\u0027id\u0027])"},{"line_number":3265,"context_line":"        vserver_client.create_fpolicy_policy(policy_name, events)"},{"line_number":3266,"context_line":""},{"line_number":3267,"context_line":"        # 3. Assign a scope to the fpolicy policy"},{"line_number":3268,"context_line":"        vserver_client.create_fpolicy_scope("}],"source_content_type":"text/x-python","patch_set":2,"id":"b78aff0d_81416f47","line":3265,"updated":"2021-02-15 12:49:05.000000000","message":"If an error is reported here, the events will not be removed on storage side","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"4eb76ac6799e580ac8fa05686c045b49af0b8bad","unresolved":true,"context_lines":[{"line_number":3262,"context_line":""},{"line_number":3263,"context_line":"        # 2. Create a fpolicy policy"},{"line_number":3264,"context_line":"        policy_name \u003d self._get_backend_fpolicy_policy_name(share[\u0027id\u0027])"},{"line_number":3265,"context_line":"        vserver_client.create_fpolicy_policy(policy_name, events)"},{"line_number":3266,"context_line":""},{"line_number":3267,"context_line":"        # 3. Assign a scope to the fpolicy policy"},{"line_number":3268,"context_line":"        vserver_client.create_fpolicy_scope("}],"source_content_type":"text/x-python","patch_set":2,"id":"c44cbcce_2073157b","line":3265,"in_reply_to":"b78aff0d_81416f47","updated":"2021-02-15 14:28:32.000000000","message":"No, they won\u0027t. The volume and other resources will remain too. The manila share will be set to \u0027error\u0027 and everything, including the policy, will be deleted after user requests a share-delete.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"49cb656552fa0bea061d7c4e1f409f73135cd18a","unresolved":true,"context_lines":[{"line_number":3262,"context_line":""},{"line_number":3263,"context_line":"        # 2. Create a fpolicy policy"},{"line_number":3264,"context_line":"        policy_name \u003d self._get_backend_fpolicy_policy_name(share[\u0027id\u0027])"},{"line_number":3265,"context_line":"        vserver_client.create_fpolicy_policy(policy_name, events)"},{"line_number":3266,"context_line":""},{"line_number":3267,"context_line":"        # 3. Assign a scope to the fpolicy policy"},{"line_number":3268,"context_line":"        vserver_client.create_fpolicy_scope("}],"source_content_type":"text/x-python","patch_set":2,"id":"63d3cc0e_6d9d7ade","line":3265,"in_reply_to":"c44cbcce_2073157b","updated":"2021-02-15 21:53:19.000000000","message":"\u003e No, they won\u0027t. The volume and other resources will remain too. The manila share will be set to \u0027error\u0027 and everything, including the policy, will be deleted after user requests a share-delete.\n\nSorry, I was to lazy to check in details that what you said is true. If one of the event, fpolicy or scope creation fails, there is no way to link the failed share to these resources, and they won\u0027t be deleted afterwards. Thanks for pointing this.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"0d194434d7a362b30afa346c0c68c7cdcaab4d51","unresolved":true,"context_lines":[{"line_number":3293,"context_line":"                    policy_name, shares_to_include\u003dshares_to_include)"},{"line_number":3294,"context_line":"            else:"},{"line_number":3295,"context_line":"                # Delete an empty fpolicy"},{"line_number":3296,"context_line":"                # 1. Disable fpolicy policy"},{"line_number":3297,"context_line":"                vserver_client.disable_fpolicy_policy(policy_name)"},{"line_number":3298,"context_line":"                # 2. Retrieve fpoliocy info"},{"line_number":3299,"context_line":"                fpolicy_policies \u003d vserver_client.get_fpolicy_policies("}],"source_content_type":"text/x-python","patch_set":2,"id":"8c69a5e0_7b41d27e","line":3296,"updated":"2021-02-15 12:49:05.000000000","message":"How can you ensure that any share have been applied to the fpolicy after you retrieved ?! It might end up deleting a fpolicy that have more shares on it. I think that you should track the fpolicy by server on manila side, having this resource update/delete by a lock (thread safe).","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"4eb76ac6799e580ac8fa05686c045b49af0b8bad","unresolved":true,"context_lines":[{"line_number":3293,"context_line":"                    policy_name, shares_to_include\u003dshares_to_include)"},{"line_number":3294,"context_line":"            else:"},{"line_number":3295,"context_line":"                # Delete an empty fpolicy"},{"line_number":3296,"context_line":"                # 1. Disable fpolicy policy"},{"line_number":3297,"context_line":"                vserver_client.disable_fpolicy_policy(policy_name)"},{"line_number":3298,"context_line":"                # 2. Retrieve fpoliocy info"},{"line_number":3299,"context_line":"                fpolicy_policies \u003d vserver_client.get_fpolicy_policies("}],"source_content_type":"text/x-python","patch_set":2,"id":"61a0287d_adce05e7","line":3296,"in_reply_to":"8c69a5e0_7b41d27e","updated":"2021-02-15 14:28:32.000000000","message":"I think that a driver lock would avoid this issue, sharing the lock between create/detele operations.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"07bfdc723abd34ebbb5496e2c0b55a09d02e9d7e","unresolved":true,"context_lines":[{"line_number":875,"context_line":"                hide_snapdir, share_name, vserver_client)"},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"        if create_fpolicy:"},{"line_number":878,"context_line":"            fpolicy_ext_to_include \u003d provisioning_options.get("},{"line_number":879,"context_line":"                \u0027fpolicy_extensions_to_include\u0027)"},{"line_number":880,"context_line":"            fpolicy_ext_to_exclude \u003d provisioning_options.get("},{"line_number":881,"context_line":"                \u0027fpolicy_extensions_to_exclude\u0027)"},{"line_number":882,"context_line":"            if fpolicy_ext_to_include or fpolicy_ext_to_exclude:"},{"line_number":883,"context_line":"                self._create_fpolicy_for_share(share, vserver, vserver_client,"},{"line_number":884,"context_line":"                                               **provisioning_options)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"    def _apply_snapdir_visibility("},{"line_number":887,"context_line":"            self, hide_snapdir, share_name, vserver_client):"}],"source_content_type":"text/x-python","patch_set":4,"id":"ffe52add_df11dcd5","line":884,"range":{"start_line":878,"start_character":12,"end_line":884,"end_character":70},"updated":"2021-03-05 08:27:44.000000000","message":"if replicas can\u0027t have fpolicies, shouldn\u0027t you error out if \"replication_type\" extra spec is set?","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[{"line_number":875,"context_line":"                hide_snapdir, share_name, vserver_client)"},{"line_number":876,"context_line":""},{"line_number":877,"context_line":"        if create_fpolicy:"},{"line_number":878,"context_line":"            fpolicy_ext_to_include \u003d provisioning_options.get("},{"line_number":879,"context_line":"                \u0027fpolicy_extensions_to_include\u0027)"},{"line_number":880,"context_line":"            fpolicy_ext_to_exclude \u003d provisioning_options.get("},{"line_number":881,"context_line":"                \u0027fpolicy_extensions_to_exclude\u0027)"},{"line_number":882,"context_line":"            if fpolicy_ext_to_include or fpolicy_ext_to_exclude:"},{"line_number":883,"context_line":"                self._create_fpolicy_for_share(share, vserver, vserver_client,"},{"line_number":884,"context_line":"                                               **provisioning_options)"},{"line_number":885,"context_line":""},{"line_number":886,"context_line":"    def _apply_snapdir_visibility("},{"line_number":887,"context_line":"            self, hide_snapdir, share_name, vserver_client):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bceb6521_5c204c1b","line":884,"range":{"start_line":878,"start_character":12,"end_line":884,"end_character":70},"in_reply_to":"ffe52add_df11dcd5","updated":"2021-03-10 12:16:37.000000000","message":"this validation is in \u0027validate_provisioning_options_for_share\u0027, which will always be called inside \u0027_get_provisioning_options_for_share\u0027, called in line 854. So we are safe here to continue.\nThanks for raising this question.","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"07bfdc723abd34ebbb5496e2c0b55a09d02e9d7e","unresolved":true,"context_lines":[{"line_number":3306,"context_line":"        \"\"\"Delete all associated fpolicy resources from a share.\"\"\""},{"line_number":3307,"context_line":"        share_name \u003d self._get_backend_share_name(share[\u0027id\u0027])"},{"line_number":3308,"context_line":""},{"line_number":3309,"context_line":"        @manila_utils.synchronized(\u0027netapp-fpolicy-%s\u0027 % vserver,"},{"line_number":3310,"context_line":"                                   external\u003dTrue)"},{"line_number":3311,"context_line":"        def _delete_fpolicy_with_lock():"},{"line_number":3312,"context_line":"            fpolicy_scopes \u003d vserver_client.get_fpolicy_scopes("}],"source_content_type":"text/x-python","patch_set":4,"id":"c8814424_8672881d","line":3309,"range":{"start_line":3309,"start_character":8,"end_line":3309,"end_character":34},"updated":"2021-03-05 08:27:44.000000000","message":"consider using the similar synchronizer from the coordination module - this rudimentary file lock does not support distributed locking - the one from the coordination module also defaults to file locks and provides a 1-1 compatibility, but, if deployers choose, they can use a DLM via tooz.","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[{"line_number":3306,"context_line":"        \"\"\"Delete all associated fpolicy resources from a share.\"\"\""},{"line_number":3307,"context_line":"        share_name \u003d self._get_backend_share_name(share[\u0027id\u0027])"},{"line_number":3308,"context_line":""},{"line_number":3309,"context_line":"        @manila_utils.synchronized(\u0027netapp-fpolicy-%s\u0027 % vserver,"},{"line_number":3310,"context_line":"                                   external\u003dTrue)"},{"line_number":3311,"context_line":"        def _delete_fpolicy_with_lock():"},{"line_number":3312,"context_line":"            fpolicy_scopes \u003d vserver_client.get_fpolicy_scopes("}],"source_content_type":"text/x-python","patch_set":4,"id":"cce1e7cb_98383506","line":3309,"range":{"start_line":3309,"start_character":8,"end_line":3309,"end_character":34},"in_reply_to":"c8814424_8672881d","updated":"2021-03-10 12:16:37.000000000","message":"Yes, didn\u0027t pay attention to that. I will switch to coordination module in the nest PS. Thanks","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2a9bb4a2db1839bcc4ac571dc5c9ef4a064822d0","unresolved":false,"context_lines":[{"line_number":3306,"context_line":"        \"\"\"Delete all associated fpolicy resources from a share.\"\"\""},{"line_number":3307,"context_line":"        share_name \u003d self._get_backend_share_name(share[\u0027id\u0027])"},{"line_number":3308,"context_line":""},{"line_number":3309,"context_line":"        @manila_utils.synchronized(\u0027netapp-fpolicy-%s\u0027 % vserver,"},{"line_number":3310,"context_line":"                                   external\u003dTrue)"},{"line_number":3311,"context_line":"        def _delete_fpolicy_with_lock():"},{"line_number":3312,"context_line":"            fpolicy_scopes \u003d vserver_client.get_fpolicy_scopes("}],"source_content_type":"text/x-python","patch_set":4,"id":"d39c69c6_03d53c33","line":3309,"range":{"start_line":3309,"start_character":8,"end_line":3309,"end_character":34},"in_reply_to":"cce1e7cb_98383506","updated":"2021-03-10 16:17:44.000000000","message":"Done","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"}],"manila/share/drivers/netapp/dataontap/cluster_mode/lib_multi_svm.py":[{"author":{"_account_id":31721,"name":"Felipe Rodrigues","email":"felipefuty01@gmail.com","username":"felipefutty"},"change_message_id":"0d194434d7a362b30afa346c0c68c7cdcaab4d51","unresolved":true,"context_lines":[{"line_number":816,"context_line":""},{"line_number":817,"context_line":"        if fpolicy_ext_include or fpolicy_ext_exclude:"},{"line_number":818,"context_line":"            fpolicies \u003d client.get_fpolicy_policies_status()"},{"line_number":819,"context_line":"            if len(fpolicies) \u003e\u003d self.FPOLICY_MAX_VSERVER_POLICIES:"},{"line_number":820,"context_line":"                # This share server already reached it maximum number of"},{"line_number":821,"context_line":"                # policies, we need to check if we can reuse one, otherwise,"},{"line_number":822,"context_line":"                # it is not suitable for this share."}],"source_content_type":"text/x-python","patch_set":2,"id":"6fc02fc9_d0f3a9fc","line":819,"updated":"2021-02-15 12:49:05.000000000","message":"same concurrent problem: you may report here that fpolicy is lower than limit. After, other thread creates the last one, than when the code reaches the fpolicy creation step it wont have enough space and might not reuse the 10 policies. It may be tracked by the manila in a thread safe manner.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"4eb76ac6799e580ac8fa05686c045b49af0b8bad","unresolved":true,"context_lines":[{"line_number":816,"context_line":""},{"line_number":817,"context_line":"        if fpolicy_ext_include or fpolicy_ext_exclude:"},{"line_number":818,"context_line":"            fpolicies \u003d client.get_fpolicy_policies_status()"},{"line_number":819,"context_line":"            if len(fpolicies) \u003e\u003d self.FPOLICY_MAX_VSERVER_POLICIES:"},{"line_number":820,"context_line":"                # This share server already reached it maximum number of"},{"line_number":821,"context_line":"                # policies, we need to check if we can reuse one, otherwise,"},{"line_number":822,"context_line":"                # it is not suitable for this share."}],"source_content_type":"text/x-python","patch_set":2,"id":"31be3443_25ec41bd","line":819,"in_reply_to":"6fc02fc9_d0f3a9fc","updated":"2021-02-15 14:28:32.000000000","message":"I think that this scenario should be solved by an external lock, managed by the manila itself. It is really hard to manage this resources here since we shouldn\u0027t do any reservation at this moment. So, anything could happend between \u0027choose_share_server_compatible_with_share\u0027 and the share creation/manage moment. Althrough, isn\u0027t the end of the world, since the result may be an create/manage error, operations that users can retry.","commit_id":"e0cd4451c4138d1c9037777c3284defd0bfbd768"}],"manila/share/drivers/netapp/options.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"07bfdc723abd34ebbb5496e2c0b55a09d02e9d7e","unresolved":true,"context_lines":[{"line_number":124,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":125,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"},{"line_number":126,"context_line":"               default\u003d\u0027snapmirror_policy_%(share_server_id)s\u0027),"},{"line_number":127,"context_line":"    cfg.StrOpt(\u0027netapp_fpolicy_default_file_operations\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027NetApp FPolicy file operations to apply to a FPolicy \u0027"},{"line_number":129,"context_line":"                    \u0027event, when not provided by the user using extra-specs. \u0027"},{"line_number":130,"context_line":"                    \u0027File operations should be provided as comma-separated \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"0997a3a6_30a75901","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":14},"updated":"2021-03-05 08:27:44.000000000","message":"ListOpt","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[{"line_number":124,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":125,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"},{"line_number":126,"context_line":"               default\u003d\u0027snapmirror_policy_%(share_server_id)s\u0027),"},{"line_number":127,"context_line":"    cfg.StrOpt(\u0027netapp_fpolicy_default_file_operations\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027NetApp FPolicy file operations to apply to a FPolicy \u0027"},{"line_number":129,"context_line":"                    \u0027event, when not provided by the user using extra-specs. \u0027"},{"line_number":130,"context_line":"                    \u0027File operations should be provided as comma-separated \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"2cebccd9_6d3bb3d3","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":14},"in_reply_to":"0997a3a6_30a75901","updated":"2021-03-10 12:16:37.000000000","message":"Yep, it is better to switch to ListOpt, thanks!","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2a9bb4a2db1839bcc4ac571dc5c9ef4a064822d0","unresolved":false,"context_lines":[{"line_number":124,"context_line":"               help\u003d\u0027NetApp SnapMirror policy name template for Storage \u0027"},{"line_number":125,"context_line":"                    \u0027Virtual Machines (Vservers).\u0027,"},{"line_number":126,"context_line":"               default\u003d\u0027snapmirror_policy_%(share_server_id)s\u0027),"},{"line_number":127,"context_line":"    cfg.StrOpt(\u0027netapp_fpolicy_default_file_operations\u0027,"},{"line_number":128,"context_line":"               help\u003d\u0027NetApp FPolicy file operations to apply to a FPolicy \u0027"},{"line_number":129,"context_line":"                    \u0027event, when not provided by the user using extra-specs. \u0027"},{"line_number":130,"context_line":"                    \u0027File operations should be provided as comma-separated \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"c8bd476b_8dc66c91","line":127,"range":{"start_line":127,"start_character":8,"end_line":127,"end_character":14},"in_reply_to":"2cebccd9_6d3bb3d3","updated":"2021-03-10 16:17:44.000000000","message":"Done","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"9a91b597acd2a9d3eeca27458efe6b45576df214","unresolved":true,"context_lines":[{"line_number":129,"context_line":"                    \u0027event, when not provided by the user using extra-specs. \u0027"},{"line_number":130,"context_line":"                    \u0027File operations should be provided as comma-separated \u0027"},{"line_number":131,"context_line":"                    \u0027list.\u0027,"},{"line_number":132,"context_line":"               default\u003d\u0027create,open,write,rename\u0027),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027netapp_fpolicy_policy_name_template\u0027,"},{"line_number":134,"context_line":"               help\u003d\u0027NetApp FPolicy policy name template.\u0027,"},{"line_number":135,"context_line":"               default\u003d\u0027fpolicy_policy_%(share_id)s\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"04d8b8b6_6785409c","line":132,"range":{"start_line":132,"start_character":23,"end_line":132,"end_character":49},"updated":"2021-03-10 12:16:37.000000000","message":"This default may not be compatible with both NFS and CIFS protocol.","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"2a9bb4a2db1839bcc4ac571dc5c9ef4a064822d0","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                    \u0027event, when not provided by the user using extra-specs. \u0027"},{"line_number":130,"context_line":"                    \u0027File operations should be provided as comma-separated \u0027"},{"line_number":131,"context_line":"                    \u0027list.\u0027,"},{"line_number":132,"context_line":"               default\u003d\u0027create,open,write,rename\u0027),"},{"line_number":133,"context_line":"    cfg.StrOpt(\u0027netapp_fpolicy_policy_name_template\u0027,"},{"line_number":134,"context_line":"               help\u003d\u0027NetApp FPolicy policy name template.\u0027,"},{"line_number":135,"context_line":"               default\u003d\u0027fpolicy_policy_%(share_id)s\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f32a793_a33859ff","line":132,"range":{"start_line":132,"start_character":23,"end_line":132,"end_character":49},"in_reply_to":"04d8b8b6_6785409c","updated":"2021-03-10 16:17:44.000000000","message":"Done","commit_id":"a92bcf83342f47b291bb598384009a18abbaa65a"}]}
