)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"b4cbfe793bc5fb81c4d9f4fb1a5db42f8af5dbb2","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Manila share support Recycle Bin"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add support share Recycle Bin, the end user can soft delete"},{"line_number":10,"context_line":"share to Recycle Bin, and can restore the share within 7 dyas,"},{"line_number":11,"context_line":"otherwise the share will be deleted automatically."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially-Implements: blueprint manila-share-support-recycle-bin"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3c9d882e_a7d55197","line":10,"range":{"start_line":10,"start_character":57,"end_line":10,"end_character":62},"updated":"2021-06-29 14:18:03.000000000","message":"nit: daya","commit_id":"cb6cdefacc57d8b1d589eed029a4f102eacf6757"}],"specs/xena/share-support-recycle-bin.rst":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Manila doesn\u0027t support share Recycle Bin. This BP is to add support for share"},{"line_number":14,"context_line":"Recycle Bin. The end user can soft delete share to Recycle Bin, and can restore"},{"line_number":15,"context_line":"share from Recycle Bin."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"97360e11_f7f980f7","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":22},"updated":"2021-05-12 12:14:11.000000000","message":"it.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Manila doesn\u0027t support share Recycle Bin. This BP is to add support for share"},{"line_number":14,"context_line":"Recycle Bin. The end user can soft delete share to Recycle Bin, and can restore"},{"line_number":15,"context_line":"share from Recycle Bin."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"a013efbd_21ec7cdd","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":22},"in_reply_to":"97360e11_f7f980f7","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If user want to remove an share from manila. he can use delete share or"},{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b1313389_75845fb3","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":71},"updated":"2021-05-12 12:14:11.000000000","message":"By saying \"if user want to remove an share from manila\", we can lead people to think that the share would be still existing in the backend, and this behavior would only happen when the share gets unmanaged.\n\nMy suggestion would be replacing this fragment by: If users wants to remove a share from Manila, it is possible to delete a given share. Or if they want the share only not being managed by Manila anymore, they can unmanage it and the share would still exist in the share backend.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If user want to remove an share from manila. he can use delete share or"},{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"}],"source_content_type":"text/x-rst","patch_set":2,"id":"63574e26_3f0b822f","line":23,"range":{"start_line":20,"start_character":0,"end_line":23,"end_character":71},"in_reply_to":"b1313389_75845fb3","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"02876017_d6a7454b","line":24,"range":{"start_line":24,"start_character":54,"end_line":24,"end_character":74},"updated":"2021-05-12 12:14:11.000000000","message":"nit: please surround this and the following attributes with `` for formatting purposes :)","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1ab26958_6fca7035","line":24,"range":{"start_line":24,"start_character":39,"end_line":24,"end_character":42},"updated":"2021-05-12 12:14:11.000000000","message":"they","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":20,"context_line":"If user want to remove an share from manila. he can use delete share or"},{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d53a74d8_434ecfbd","line":24,"range":{"start_line":23,"start_character":75,"end_line":24,"end_character":4},"updated":"2021-05-12 12:14:11.000000000","message":"users","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"714de1ca_5056a8f7","line":24,"range":{"start_line":24,"start_character":39,"end_line":24,"end_character":42},"in_reply_to":"1ab26958_6fca7035","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":20,"context_line":"If user want to remove an share from manila. he can use delete share or"},{"line_number":21,"context_line":"unmanage share. If the user ensure that the share will never be used again,"},{"line_number":22,"context_line":"he can just simply use the delete operation, but if the user not sure if he"},{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d2acb2d3_6b317fc3","line":24,"range":{"start_line":23,"start_character":75,"end_line":24,"end_character":4},"in_reply_to":"d53a74d8_434ecfbd","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"},{"line_number":28,"context_line":"becoming garbage data. So users need a way to temporarily delete and easily"},{"line_number":29,"context_line":"restore. that is share Recycle Bin."}],"source_content_type":"text/x-rst","patch_set":2,"id":"96dcc7e8_c2196e7e","line":26,"range":{"start_line":26,"start_character":5,"end_line":26,"end_character":44},"updated":"2021-05-12 12:14:11.000000000","message":"I think this sentence could be removed","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":23,"context_line":"will use the share in the future, maybe will choice unmanage operation. If the"},{"line_number":24,"context_line":"user later wants to restore the share, he must record export_location_path,"},{"line_number":25,"context_line":"host, share_proto and so on, and end users do not have permission to manage"},{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"},{"line_number":28,"context_line":"becoming garbage data. So users need a way to temporarily delete and easily"},{"line_number":29,"context_line":"restore. that is share Recycle Bin."}],"source_content_type":"text/x-rst","patch_set":2,"id":"49dd70eb_79418068","line":26,"range":{"start_line":26,"start_character":5,"end_line":26,"end_character":44},"in_reply_to":"96dcc7e8_c2196e7e","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"},{"line_number":28,"context_line":"becoming garbage data. So users need a way to temporarily delete and easily"},{"line_number":29,"context_line":"restore. that is share Recycle Bin."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"574251dc_6dcbdf6d","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":35},"updated":"2021-05-12 12:14:11.000000000","message":"I think this could be removed as well...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":26,"context_line":"share, this is very troublesome for end user. If the user never uses the share"},{"line_number":27,"context_line":"again, this share data will remain permanently on the back-end storage,"},{"line_number":28,"context_line":"becoming garbage data. So users need a way to temporarily delete and easily"},{"line_number":29,"context_line":"restore. that is share Recycle Bin."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"f78ff1ba_0e9b1336","line":29,"range":{"start_line":29,"start_character":7,"end_line":29,"end_character":35},"in_reply_to":"574251dc_6dcbdf6d","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The following are the changes to be made:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* A new column ``soft_deleted`` will be added in ``shares`` table to show which"},{"line_number":45,"context_line":"  share is in Recycle Bin."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* A new column ``expire_time`` will be added in ``shares`` table, the shares in"},{"line_number":48,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7364a3e2_a27e1134","line":45,"range":{"start_line":44,"start_character":69,"end_line":45,"end_character":25},"updated":"2021-05-12 12:14:11.000000000","message":"identify shares placed in the recycle bin.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"The following are the changes to be made:"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"* A new column ``soft_deleted`` will be added in ``shares`` table to show which"},{"line_number":45,"context_line":"  share is in Recycle Bin."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"* A new column ``expire_time`` will be added in ``shares`` table, the shares in"},{"line_number":48,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"}],"source_content_type":"text/x-rst","patch_set":2,"id":"13ec2939_15802840","line":45,"range":{"start_line":44,"start_character":69,"end_line":45,"end_character":25},"in_reply_to":"7364a3e2_a27e1134","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":49,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":52,"context_line":"  the maximum storage time of a share in the Recycle Bin, the default value is"},{"line_number":53,"context_line":"  604800 seconds(7 days)."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Add new request parameter ``soft_delete`` to the original delete share API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"2308c5bc_e21a8ec2","line":52,"range":{"start_line":52,"start_character":14,"end_line":52,"end_character":56},"updated":"2021-05-12 12:14:11.000000000","message":"time people want to keep a share in the recycle bin. The default...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":52,"context_line":"  the maximum storage time of a share in the Recycle Bin, the default value is"},{"line_number":53,"context_line":"  604800 seconds(7 days)."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"* Add new request parameter ``soft_delete`` to the original delete share API."}],"source_content_type":"text/x-rst","patch_set":2,"id":"243e08c7_6da46870","line":52,"range":{"start_line":52,"start_character":14,"end_line":52,"end_character":56},"in_reply_to":"2308c5bc_e21a8ec2","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":57,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":58,"context_line":"  and calculate the ``expire_time`` of the share."},{"line_number":59,"context_line":"  ``expire_time`` \u003d now_time + ``soft_deleted_share_expire_time``."},{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"56152dfb_99e49a2b","line":60,"range":{"start_line":60,"start_character":2,"end_line":60,"end_character":3},"updated":"2021-05-12 12:14:11.000000000","message":"Shares","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":57,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":58,"context_line":"  and calculate the ``expire_time`` of the share."},{"line_number":59,"context_line":"  ``expire_time`` \u003d now_time + ``soft_deleted_share_expire_time``."},{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"d9c7c69c_09ab609c","line":60,"range":{"start_line":60,"start_character":9,"end_line":60,"end_character":12},"updated":"2021-05-12 12:14:11.000000000","message":"in the","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":57,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":58,"context_line":"  and calculate the ``expire_time`` of the share."},{"line_number":59,"context_line":"  ``expire_time`` \u003d now_time + ``soft_deleted_share_expire_time``."},{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"80a32c74_3ae10da3","line":60,"range":{"start_line":60,"start_character":33,"end_line":60,"end_character":40},"updated":"2021-05-12 12:14:11.000000000","message":"nit: consume","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":58,"context_line":"  and calculate the ``expire_time`` of the share."},{"line_number":59,"context_line":"  ``expire_time`` \u003d now_time + ``soft_deleted_share_expire_time``."},{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"834759de_87669b01","line":60,"range":{"start_line":60,"start_character":2,"end_line":60,"end_character":3},"in_reply_to":"56152dfb_99e49a2b","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":58,"context_line":"  and calculate the ``expire_time`` of the share."},{"line_number":59,"context_line":"  ``expire_time`` \u003d now_time + ``soft_deleted_share_expire_time``."},{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dd0d4294_bfdbe64f","line":60,"range":{"start_line":60,"start_character":33,"end_line":60,"end_character":40},"in_reply_to":"80a32c74_3ae10da3","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":57,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":58,"context_line":"  and calculate the ``expire_time`` of the share."},{"line_number":59,"context_line":"  ``expire_time`` \u003d now_time + ``soft_deleted_share_expire_time``."},{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dd8ba938_b40057b4","line":60,"range":{"start_line":60,"start_character":9,"end_line":60,"end_character":12},"in_reply_to":"d9c7c69c_09ab609c","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"},{"line_number":64,"context_line":"  ``soft_deleted`` marker. that means list shares in Recycle Bin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"8411e85c_782a6549","line":64,"range":{"start_line":63,"start_character":57,"end_line":64,"end_character":64},"updated":"2021-05-12 12:14:11.000000000","message":"only list shares that were soft deleted.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  shares in Recycle Bin will not occupy project quota."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Add new request parameter ``soft_delete`` to the original list shares API."},{"line_number":63,"context_line":"  ``soft_delete`` default is False, if set True, it will list shares with"},{"line_number":64,"context_line":"  ``soft_deleted`` marker. that means list shares in Recycle Bin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"93e44b97_695dd943","line":64,"range":{"start_line":63,"start_character":57,"end_line":64,"end_character":64},"in_reply_to":"8411e85c_782a6549","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Add new periodic task in manage layer to check shares in Recycle Bin whether"},{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"d8837dc5_18b33735","line":68,"range":{"start_line":68,"start_character":2,"end_line":68,"end_character":33},"updated":"2021-05-12 12:14:11.000000000","message":"A new periodic task will be added to the share manager ...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Add new periodic task in manage layer to check shares in Recycle Bin whether"},{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"ab5d4306_d09d60e6","line":68,"range":{"start_line":68,"start_character":2,"end_line":68,"end_character":33},"in_reply_to":"d8837dc5_18b33735","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Add new periodic task in manage layer to check shares in Recycle Bin whether"},{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"}],"source_content_type":"text/x-rst","patch_set":2,"id":"82386886_d8d319e1","line":69,"range":{"start_line":68,"start_character":49,"end_line":69,"end_character":19},"updated":"2021-05-12 12:14:11.000000000","message":"if the shares in the recycle bin have reached they expire time","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Add new periodic task in manage layer to check shares in Recycle Bin whether"},{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"},{"line_number":73,"context_line":"  reach expire time, user can restore share from Recycle Bin."}],"source_content_type":"text/x-rst","patch_set":2,"id":"e6769f70_ef77d4d3","line":70,"range":{"start_line":69,"start_character":20,"end_line":70,"end_character":33},"updated":"2021-05-12 12:14:11.000000000","message":". If the expire time gets reached, manila will delete the share.\n\nAlso, is there a specific reason to call the share api to delete a given share? If we already are in the share manager, and quotas and other validations were already performed when the share was being moved to the recycle bin, I guess we\u0027d be able to trigger the deletion of the share without calling the share api...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":true,"context_lines":[{"line_number":66,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Add new periodic task in manage layer to check shares in Recycle Bin whether"},{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"},{"line_number":73,"context_line":"  reach expire time, user can restore share from Recycle Bin."}],"source_content_type":"text/x-rst","patch_set":2,"id":"d357c1df_6a9f6a1f","line":70,"range":{"start_line":69,"start_character":20,"end_line":70,"end_character":33},"in_reply_to":"e6769f70_ef77d4d3","updated":"2021-05-13 07:58:18.000000000","message":"sure, i will add a new function in manage for delete share.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"},{"line_number":73,"context_line":"  reach expire time, user can restore share from Recycle Bin."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* List share instances will will filter the share\u0027s ``soft_deleted`` is False."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"99f9785b_630657c4","line":73,"range":{"start_line":72,"start_character":49,"end_line":73,"end_character":61},"updated":"2021-05-12 12:14:11.000000000","message":"I\u0027d this is implicit... What do you think?\nI mean, you\u0027ve mentioned that shares would be automatically deleted when they have reached their expire time, so...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":true,"context_lines":[{"line_number":69,"context_line":"  reach expire time, if expire time reached, will call force-delete share api"},{"line_number":70,"context_line":"  to completely delete the share. the default periodic interval set 10 minutes."},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"},{"line_number":73,"context_line":"  reach expire time, user can restore share from Recycle Bin."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* List share instances will will filter the share\u0027s ``soft_deleted`` is False."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"5bc1d78e_934cd089","line":73,"range":{"start_line":72,"start_character":49,"end_line":73,"end_character":61},"in_reply_to":"99f9785b_630657c4","updated":"2021-05-13 07:58:18.000000000","message":"i will remove superfluous statement","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"},{"line_number":73,"context_line":"  reach expire time, user can restore share from Recycle Bin."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* List share instances will will filter the share\u0027s ``soft_deleted`` is False."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* The above API changes will bump a new microversion."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"337a9eb1_5570fe09","line":75,"range":{"start_line":75,"start_character":2,"end_line":75,"end_character":22},"updated":"2021-05-12 12:14:11.000000000","message":"Do you intend to have the models for share instances being updated as well? If so, I guess this should be mentioned above and below...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":true,"context_lines":[{"line_number":72,"context_line":"* Add new API to restore share from Recycle Bin. before shares in Recycle Bin"},{"line_number":73,"context_line":"  reach expire time, user can restore share from Recycle Bin."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* List share instances will will filter the share\u0027s ``soft_deleted`` is False."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* The above API changes will bump a new microversion."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"e8982fb8_e4f88c91","line":75,"range":{"start_line":75,"start_character":2,"end_line":75,"end_character":22},"in_reply_to":"337a9eb1_5570fe09","updated":"2021-05-13 07:58:18.000000000","message":"yes, share instance will add a new property in _proxified_properties, that is \u0027soft_deleted\u0027, which get from share model.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":87,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":88,"context_line":"  ``shares``."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* Soft delete a share to Recycle Bin"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1627038b_ea8db47c","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":15},"updated":"2021-05-12 12:14:11.000000000","message":"I guess you could mention the possible failure and success response codes that the APIs can be responding as well... An example of how it was done in the past is available here: https://review.opendev.org/c/openstack/manila-specs/+/735970/11/specs/victoria/share-server-migration.rst#204","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":false,"context_lines":[{"line_number":87,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":88,"context_line":"  ``shares``."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"REST API impact"},{"line_number":91,"context_line":"---------------"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"* Soft delete a share to Recycle Bin"}],"source_content_type":"text/x-rst","patch_set":2,"id":"22163044_714b1e5f","line":90,"range":{"start_line":90,"start_character":0,"end_line":90,"end_character":15},"in_reply_to":"1627038b_ea8db47c","updated":"2021-05-13 07:58:18.000000000","message":"Done","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8aa47ad3c97a9264c305a85e2b6c65c257f664bf","unresolved":true,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The following OpenStack documentations will be updated to reflect this change:"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"* OpenStack User Guide"},{"line_number":202,"context_line":"* OpenStack API Reference"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"85f9463f_f0a6c2de","line":201,"updated":"2021-05-12 12:14:11.000000000","message":"The administrator guide should be modified as well, right?\nI mean, admins will need to configure the expiration for shares in a configuration option...","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"64c4afbd55d4b1b576d5fb5c0af36addcc1c0418","unresolved":true,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"The following OpenStack documentations will be updated to reflect this change:"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"* OpenStack User Guide"},{"line_number":202,"context_line":"* OpenStack API Reference"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b5c6cac3_57e46959","line":201,"in_reply_to":"85f9463f_f0a6c2de","updated":"2021-05-13 07:58:18.000000000","message":"yes, i missed it.","commit_id":"aed67b4d99928d968eaa7a51c6d6239a84adce1a"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":22,"context_line":"they can unmanage it and the share would still exist in the share backend. If"},{"line_number":23,"context_line":"users later wants to restore the share, they must record"},{"line_number":24,"context_line":"``export_location_path``, ``host``, ``share_proto`` and so on, and end users"},{"line_number":25,"context_line":"do not have permission to manage share. If the user never uses the share"},{"line_number":26,"context_line":"again, this share data will remain permanently on the back-end storage,"},{"line_number":27,"context_line":"becoming garbage data. So users need a way to temporarily delete and easily"},{"line_number":28,"context_line":"restore."}],"source_content_type":"text/x-rst","patch_set":3,"id":"e9c85f2b_63df9e0d","line":25,"range":{"start_line":25,"start_character":33,"end_line":25,"end_character":38},"updated":"2021-05-13 11:55:55.000000000","message":"nit: a share","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":22,"context_line":"they can unmanage it and the share would still exist in the share backend. If"},{"line_number":23,"context_line":"users later wants to restore the share, they must record"},{"line_number":24,"context_line":"``export_location_path``, ``host``, ``share_proto`` and so on, and end users"},{"line_number":25,"context_line":"do not have permission to manage share. If the user never uses the share"},{"line_number":26,"context_line":"again, this share data will remain permanently on the back-end storage,"},{"line_number":27,"context_line":"becoming garbage data. So users need a way to temporarily delete and easily"},{"line_number":28,"context_line":"restore."}],"source_content_type":"text/x-rst","patch_set":3,"id":"b41b896b_83655f48","line":25,"range":{"start_line":25,"start_character":33,"end_line":25,"end_character":38},"in_reply_to":"e9c85f2b_63df9e0d","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* The user wants to soft delete share to Recycle Bin."},{"line_number":34,"context_line":"* The user wants to list shares in Recycle Bin."},{"line_number":35,"context_line":"* The user wants to restore share from Recycle Bin."},{"line_number":36,"context_line":"* The user wants to completely delete share from Recycle Bin."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fa0f3590_59f8f685","line":33,"range":{"start_line":33,"start_character":32,"end_line":33,"end_character":38},"updated":"2021-05-13 11:55:55.000000000","message":"shares","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":30,"context_line":"Use Cases"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* The user wants to soft delete share to Recycle Bin."},{"line_number":34,"context_line":"* The user wants to list shares in Recycle Bin."},{"line_number":35,"context_line":"* The user wants to restore share from Recycle Bin."},{"line_number":36,"context_line":"* The user wants to completely delete share from Recycle Bin."}],"source_content_type":"text/x-rst","patch_set":3,"id":"f7f044ba_dd055b64","line":33,"range":{"start_line":33,"start_character":32,"end_line":33,"end_character":38},"in_reply_to":"fa0f3590_59f8f685","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* The user wants to soft delete share to Recycle Bin."},{"line_number":34,"context_line":"* The user wants to list shares in Recycle Bin."},{"line_number":35,"context_line":"* The user wants to restore share from Recycle Bin."},{"line_number":36,"context_line":"* The user wants to completely delete share from Recycle Bin."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"668a62cf_a206e76c","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":34},"updated":"2021-05-13 11:55:55.000000000","message":"shares","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"* The user wants to soft delete share to Recycle Bin."},{"line_number":34,"context_line":"* The user wants to list shares in Recycle Bin."},{"line_number":35,"context_line":"* The user wants to restore share from Recycle Bin."},{"line_number":36,"context_line":"* The user wants to completely delete share from Recycle Bin."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b6d2e205_825fe35b","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":34},"in_reply_to":"668a62cf_a206e76c","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":47,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"},{"line_number":48,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"},{"line_number":51,"context_line":"  property get from the share which it belongs."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5bbfe6d4_d8a71016","line":51,"range":{"start_line":50,"start_character":74,"end_line":51,"end_character":46},"updated":"2021-05-13 11:55:55.000000000","message":"This property will inherit the parent share\u0027s value.","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"},{"line_number":48,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"},{"line_number":51,"context_line":"  property get from the share which it belongs."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"}],"source_content_type":"text/x-rst","patch_set":3,"id":"50d37fa7_24e1dce5","line":51,"range":{"start_line":50,"start_character":74,"end_line":51,"end_character":46},"in_reply_to":"5bbfe6d4_d8a71016","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"},{"line_number":55,"context_line":"  value is 604800 seconds(7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Add new request parameter ``soft_delete`` to the original delete share API."},{"line_number":58,"context_line":"  ``soft_delete`` default is False, if set True, it will soft delete the share"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ffb11b40_bf0b8d31","line":55,"range":{"start_line":55,"start_character":24,"end_line":55,"end_character":26},"updated":"2021-05-13 11:55:55.000000000","message":"please add a blank space between s and (","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"},{"line_number":55,"context_line":"  value is 604800 seconds(7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Add new request parameter ``soft_delete`` to the original delete share API."},{"line_number":58,"context_line":"  ``soft_delete`` default is False, if set True, it will soft delete the share"}],"source_content_type":"text/x-rst","patch_set":3,"id":"b8680377_f6ffab71","line":55,"range":{"start_line":55,"start_character":24,"end_line":55,"end_character":26},"in_reply_to":"ffb11b40_bf0b8d31","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"},{"line_number":55,"context_line":"  value is 604800 seconds(7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Add new request parameter ``soft_delete`` to the original delete share API."},{"line_number":58,"context_line":"  ``soft_delete`` default is False, if set True, it will soft delete the share"},{"line_number":59,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":60,"context_line":"  and calculate the ``expire_time`` of the share."}],"source_content_type":"text/x-rst","patch_set":3,"id":"f76355bf_543bf8d1","line":57,"range":{"start_line":57,"start_character":43,"end_line":57,"end_character":44},"updated":"2021-05-13 11:55:55.000000000","message":"will be added","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"},{"line_number":55,"context_line":"  value is 604800 seconds(7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Add new request parameter ``soft_delete`` to the original delete share API."},{"line_number":58,"context_line":"  ``soft_delete`` default is False, if set True, it will soft delete the share"},{"line_number":59,"context_line":"  to Recycle Bin, in the meantime set ``soft_deleted`` of share to be True."},{"line_number":60,"context_line":"  and calculate the ``expire_time`` of the share."}],"source_content_type":"text/x-rst","patch_set":3,"id":"fd59ce38_4f339c28","line":57,"range":{"start_line":57,"start_character":43,"end_line":57,"end_character":44},"in_reply_to":"f76355bf_543bf8d1","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":68,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached they expire time. If the expire time"},{"line_number":72,"context_line":"  gets reached, manila will delete the share. the default periodic interval set"},{"line_number":73,"context_line":"  10 minutes."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bc22c187_afb5cddb","line":71,"range":{"start_line":71,"start_character":41,"end_line":71,"end_character":46},"updated":"2021-05-13 11:55:55.000000000","message":"their","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":68,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached they expire time. If the expire time"},{"line_number":72,"context_line":"  gets reached, manila will delete the share. the default periodic interval set"},{"line_number":73,"context_line":"  10 minutes."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"6a79fa8c_65a31994","line":71,"range":{"start_line":71,"start_character":41,"end_line":71,"end_character":46},"in_reply_to":"bc22c187_afb5cddb","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached they expire time. If the expire time"},{"line_number":72,"context_line":"  gets reached, manila will delete the share. the default periodic interval set"},{"line_number":73,"context_line":"  10 minutes."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Add new API to restore share from Recycle Bin."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"7258c9ad_9939dcb6","line":73,"range":{"start_line":72,"start_character":46,"end_line":73,"end_character":13},"updated":"2021-05-13 11:55:55.000000000","message":"I think this could be removed, because it was already mentioned in the third bullet.","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached they expire time. If the expire time"},{"line_number":72,"context_line":"  gets reached, manila will delete the share. the default periodic interval set"},{"line_number":73,"context_line":"  10 minutes."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"* Add new API to restore share from Recycle Bin."},{"line_number":76,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"6c254053_e1d95521","line":73,"range":{"start_line":72,"start_character":46,"end_line":73,"end_character":13},"in_reply_to":"7258c9ad_9939dcb6","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":90,"context_line":"  ``shares``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"acae23b7_c8008c57","line":89,"range":{"start_line":89,"start_character":55,"end_line":89,"end_character":59},"updated":"2021-05-13 11:55:55.000000000","message":"will be","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Data model impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":90,"context_line":"  ``shares``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c96a9fc1_aa4aa2af","line":89,"range":{"start_line":89,"start_character":55,"end_line":89,"end_character":59},"in_reply_to":"acae23b7_c8008c57","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":89,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":90,"context_line":"  ``shares``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"},{"line_number":93,"context_line":"  property get from the share which it belongs."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5c3668dd_61fba221","line":92,"range":{"start_line":92,"start_character":42,"end_line":92,"end_character":46},"updated":"2021-05-13 11:55:55.000000000","message":"added","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":90,"context_line":"  ``shares``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"},{"line_number":93,"context_line":"  property get from the share which it belongs."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"ff08d7ae_aeb823cc","line":92,"range":{"start_line":92,"start_character":42,"end_line":92,"end_character":46},"in_reply_to":"5c3668dd_61fba221","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":89,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":90,"context_line":"  ``shares``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"},{"line_number":93,"context_line":"  property get from the share which it belongs."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"REST API impact"},{"line_number":96,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"d53eb5d6_186d9f19","line":93,"range":{"start_line":92,"start_character":74,"end_line":93,"end_character":47},"updated":"2021-05-13 11:55:55.000000000","message":"This property will inherit the parent share\u0027s value.","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":89,"context_line":"* Two new columns ``soft_deleted`` and ``expire_time`` are added to model of"},{"line_number":90,"context_line":"  ``shares``."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. this"},{"line_number":93,"context_line":"  property get from the share which it belongs."},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"REST API impact"},{"line_number":96,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"641b3450_dab0d5ce","line":93,"range":{"start_line":92,"start_character":74,"end_line":93,"end_character":47},"in_reply_to":"d53eb5d6_186d9f19","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":109,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":110,"context_line":"``404 Not Found``."},{"line_number":111,"context_line":"If the operation can\u0027t be performed due to not meet the above constraints, the"},{"line_number":112,"context_line":"API will respond with ``400 Bad Request``."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* List shares in Recycle Bin"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"e9310928_5278eb2a","line":112,"range":{"start_line":112,"start_character":22,"end_line":112,"end_character":41},"updated":"2021-05-13 11:55:55.000000000","message":"I guess it isn\u0027t only HTTPBadRequest that could be raised here... It could also be HTTPForbidden and HTTPConflict... It will depend on what was the exception the share API raised.\nFor example, if it had replicas, it will raise Conflict and then HTTPConflict...","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"6e12689d8ebfc2bbda83ba7fce2f13934caf78f2","unresolved":true,"context_lines":[{"line_number":109,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":110,"context_line":"``404 Not Found``."},{"line_number":111,"context_line":"If the operation can\u0027t be performed due to not meet the above constraints, the"},{"line_number":112,"context_line":"API will respond with ``400 Bad Request``."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* List shares in Recycle Bin"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"657d28a0_d44af3ea","line":112,"range":{"start_line":112,"start_character":22,"end_line":112,"end_character":41},"in_reply_to":"c0e04616_049f17f6","updated":"2021-05-14 11:35:57.000000000","message":"Actually, there are different kinds of exception that the share delete can raise. You can look at them here: https://github.com/openstack/manila/blob/master/manila/api/v1/shares.py#L91-L96.\nIt will be bad request in the v1/shares layer just in case the predescribed share group conditions weren\u0027t matched. Otherwise, it will call the share/api and then, depending on the exception raised, it will raise one of the three exceptions I\u0027ve mentioned.\nBut to me, it is not a big deal to do not add all of them here... I\u0027ll let it up to you :)","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":true,"context_lines":[{"line_number":109,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":110,"context_line":"``404 Not Found``."},{"line_number":111,"context_line":"If the operation can\u0027t be performed due to not meet the above constraints, the"},{"line_number":112,"context_line":"API will respond with ``400 Bad Request``."},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"* List shares in Recycle Bin"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"c0e04616_049f17f6","line":112,"range":{"start_line":112,"start_character":22,"end_line":112,"end_character":41},"in_reply_to":"e9310928_5278eb2a","updated":"2021-05-14 01:45:04.000000000","message":"I looked at the API layer function for deleting share，The types of errors are classified.","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"3a7f3447c5dcc0718341ec872d16ea5c75c0ecfe","unresolved":true,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":135,"context_line":"``404 Not Found``."},{"line_number":136,"context_line":"If the quota is exceeded, the API will respond with ``400 Bad Request``."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"},{"line_number":139,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"de946a36_9f054a5d","line":136,"range":{"start_line":136,"start_character":52,"end_line":136,"end_character":71},"updated":"2021-05-13 11:55:55.000000000","message":"When we exceed quotas at the moment, we raise HTTP 413... So I guess that would be the case here as well... An example:\nhttps://github.com/openstack/manila/blob/master/manila/exception.py#L412-L422","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"ec013f0462b90eece58ffb66437e8d7786367f84","unresolved":false,"context_lines":[{"line_number":133,"context_line":""},{"line_number":134,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":135,"context_line":"``404 Not Found``."},{"line_number":136,"context_line":"If the quota is exceeded, the API will respond with ``400 Bad Request``."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"},{"line_number":139,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"c76f8d48_159e453e","line":136,"range":{"start_line":136,"start_character":52,"end_line":136,"end_character":71},"in_reply_to":"de946a36_9f054a5d","updated":"2021-05-14 01:45:04.000000000","message":"Done","commit_id":"12259e9c0f5f20b3a11497fe55cdc89f5cfd5cea"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"5c6856ae305333dfc249bf1b7aff5c9f57b125b9","unresolved":true,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If users wants to remove a share from Manila, it is possible to delete a given"},{"line_number":21,"context_line":"share. Or if they want the share only not being managed by Manila anymore,"},{"line_number":22,"context_line":"they can unmanage it and the share would still exist in the share backend. If"},{"line_number":23,"context_line":"users later wants to restore the share, they must record"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fcd51439_22ed469f","line":20,"range":{"start_line":20,"start_character":9,"end_line":20,"end_character":15},"updated":"2021-05-17 05:43:35.000000000","message":"nit: want","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"375d1f0a459d8dbf51ea6b9a18d2443bddbfddfb","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"If users wants to remove a share from Manila, it is possible to delete a given"},{"line_number":21,"context_line":"share. Or if they want the share only not being managed by Manila anymore,"},{"line_number":22,"context_line":"they can unmanage it and the share would still exist in the share backend. If"},{"line_number":23,"context_line":"users later wants to restore the share, they must record"}],"source_content_type":"text/x-rst","patch_set":4,"id":"33f8ce37_020e2eb9","line":20,"range":{"start_line":20,"start_character":9,"end_line":20,"end_character":15},"in_reply_to":"fcd51439_22ed469f","updated":"2021-06-25 02:34:38.000000000","message":"Done","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"8ca7e4f7d411a15eecc4b75a701195df3b035663","unresolved":true,"context_lines":[{"line_number":51,"context_line":"  property will inherit the parent share\u0027s value."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"},{"line_number":55,"context_line":"  value is 604800 seconds (7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* A new request parameter ``soft_delete`` will be added to the original delete"}],"source_content_type":"text/x-rst","patch_set":4,"id":"84571ff4_61259580","line":54,"updated":"2021-06-24 17:02:02.000000000","message":"suggest s/people/cloud administrators/","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"375d1f0a459d8dbf51ea6b9a18d2443bddbfddfb","unresolved":false,"context_lines":[{"line_number":51,"context_line":"  property will inherit the parent share\u0027s value."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"},{"line_number":54,"context_line":"  the maximum time people want to keep a share in the recycle bin. The default"},{"line_number":55,"context_line":"  value is 604800 seconds (7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* A new request parameter ``soft_delete`` will be added to the original delete"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d0302252_b78a0944","line":54,"in_reply_to":"84571ff4_61259580","updated":"2021-06-25 02:34:38.000000000","message":"Done","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"830bae8daa941e25cb14c37c887cec6ad26a83ed","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":66,"context_line":"  shares that were soft deleted."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached their expire time. If the expire time"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7f2da53f_2c2bd9c9","line":68,"range":{"start_line":68,"start_character":2,"end_line":68,"end_character":62},"updated":"2021-06-24 20:25:29.000000000","message":"Can you describe these a little bit more.\nWhat happens to quotas when you soft-delete a share.\nWhat happens to quotas when you restore a share.","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"375d1f0a459d8dbf51ea6b9a18d2443bddbfddfb","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":66,"context_line":"  shares that were soft deleted."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"* Delete shares in Recycle Bin will not cut project quota again."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached their expire time. If the expire time"}],"source_content_type":"text/x-rst","patch_set":4,"id":"f166dece_72988f32","line":68,"range":{"start_line":68,"start_character":2,"end_line":68,"end_character":62},"in_reply_to":"7f2da53f_2c2bd9c9","updated":"2021-06-25 02:34:38.000000000","message":"Based on everyone\u0027s discussion, I also agree that the quota is still occupied after the soft deletion, and the quota is not occupied until it is completely removed from the recycle bin","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"830bae8daa941e25cb14c37c887cec6ad26a83ed","unresolved":true,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Add new API to restore share from Recycle Bin."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* List share instances will will filter the share\u0027s ``soft_deleted`` is False."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* The above API changes will bump a new microversion."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"059cbd70_894a4f89","line":76,"range":{"start_line":76,"start_character":28,"end_line":76,"end_character":32},"updated":"2021-06-24 20:25:29.000000000","message":"duplicated","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"375d1f0a459d8dbf51ea6b9a18d2443bddbfddfb","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"* Add new API to restore share from Recycle Bin."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* List share instances will will filter the share\u0027s ``soft_deleted`` is False."},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"* The above API changes will bump a new microversion."},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"90f76f97_81af0ec7","line":76,"range":{"start_line":76,"start_character":28,"end_line":76,"end_character":32},"in_reply_to":"059cbd70_894a4f89","updated":"2021-06-25 02:34:38.000000000","message":"Done","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"830bae8daa941e25cb14c37c887cec6ad26a83ed","unresolved":true,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    manila soft-delete \u003cshare_id\u003e"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"* The command of list shares in Recycle Bin, the supported parameters are the"},{"line_number":159,"context_line":"  same as the Manila list, it will be like::"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    manila recycle-bin-list"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* The command of restore share from Recycle Bin will be like::"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    manila recycle-bin-restore \u003cshare_id\u003e"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Performance Impact"},{"line_number":168,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9a1e9717_e0167985","line":165,"range":{"start_line":158,"start_character":0,"end_line":165,"end_character":41},"updated":"2021-06-24 20:25:29.000000000","message":"i wourld prefer avoid recycle-bin name and user\nmanila soft-delete-list and manila soft-delete-restore (something like that).","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"375d1f0a459d8dbf51ea6b9a18d2443bddbfddfb","unresolved":true,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    manila soft-delete \u003cshare_id\u003e"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"* The command of list shares in Recycle Bin, the supported parameters are the"},{"line_number":159,"context_line":"  same as the Manila list, it will be like::"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    manila recycle-bin-list"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"* The command of restore share from Recycle Bin will be like::"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    manila recycle-bin-restore \u003cshare_id\u003e"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"Performance Impact"},{"line_number":168,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5dc339b9_a06b59fb","line":165,"range":{"start_line":158,"start_character":0,"end_line":165,"end_character":41},"in_reply_to":"9a1e9717_e0167985","updated":"2021-06-25 02:34:38.000000000","message":"sound better!","commit_id":"8b0808df45ae8971a5dd22834b8dac62ceff2f1f"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"dcde67b2f110df0a7d3ee1327d488273bc2d6d33","unresolved":true,"context_lines":[{"line_number":64,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":65,"context_line":"  shares that were soft deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  the preject quota is still occupied after share soft_deleted, and the quota"},{"line_number":68,"context_line":"   will not occupied until it is completely removed from the recycle bin."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"27c2f36a_b0b4c1ac","line":67,"range":{"start_line":67,"start_character":7,"end_line":67,"end_character":15},"updated":"2021-06-25 20:26:36.000000000","message":"project","commit_id":"3701c0ab114561a53103cde175e46c7ff040a6ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"dcde67b2f110df0a7d3ee1327d488273bc2d6d33","unresolved":true,"context_lines":[{"line_number":64,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":65,"context_line":"  shares that were soft deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  the preject quota is still occupied after share soft_deleted, and the quota"},{"line_number":68,"context_line":"   will not occupied until it is completely removed from the recycle bin."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d94e19aa_05e3164d","line":67,"range":{"start_line":67,"start_character":21,"end_line":67,"end_character":62},"updated":"2021-06-25 20:26:36.000000000","message":"will remain allocated after the share is soft deleted","commit_id":"3701c0ab114561a53103cde175e46c7ff040a6ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"4a706dbdbce706b14e1fbb7c4b3214db16380186","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":65,"context_line":"  shares that were soft deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  the preject quota is still occupied after share soft_deleted, and the quota"},{"line_number":68,"context_line":"   will not occupied until it is completely removed from the recycle bin."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e3a87f27_975939f1","line":67,"range":{"start_line":67,"start_character":7,"end_line":67,"end_character":15},"in_reply_to":"27c2f36a_b0b4c1ac","updated":"2021-06-28 02:20:36.000000000","message":"Done","commit_id":"3701c0ab114561a53103cde175e46c7ff040a6ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"4a706dbdbce706b14e1fbb7c4b3214db16380186","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":65,"context_line":"  shares that were soft deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  the preject quota is still occupied after share soft_deleted, and the quota"},{"line_number":68,"context_line":"   will not occupied until it is completely removed from the recycle bin."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c7b1d7bd_35517db8","line":67,"range":{"start_line":67,"start_character":21,"end_line":67,"end_character":62},"in_reply_to":"d94e19aa_05e3164d","updated":"2021-06-28 02:20:36.000000000","message":"Done","commit_id":"3701c0ab114561a53103cde175e46c7ff040a6ba"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"dcde67b2f110df0a7d3ee1327d488273bc2d6d33","unresolved":true,"context_lines":[{"line_number":64,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":65,"context_line":"  shares that were soft deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  the preject quota is still occupied after share soft_deleted, and the quota"},{"line_number":68,"context_line":"   will not occupied until it is completely removed from the recycle bin."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached their expire time. If the expire time"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9abc3fdd_db6d2bb4","line":68,"range":{"start_line":67,"start_character":65,"end_line":68,"end_character":72},"updated":"2021-06-25 20:26:36.000000000","message":"and it will not be released until the shares are deleted from the recycle bin.","commit_id":"3701c0ab114561a53103cde175e46c7ff040a6ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"4a706dbdbce706b14e1fbb7c4b3214db16380186","unresolved":false,"context_lines":[{"line_number":64,"context_line":"  shares API. ``soft_delete`` default is False, if set True, it will only list"},{"line_number":65,"context_line":"  shares that were soft deleted."},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"*  the preject quota is still occupied after share soft_deleted, and the quota"},{"line_number":68,"context_line":"   will not occupied until it is completely removed from the recycle bin."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":71,"context_line":"  shares in the recycle bin have reached their expire time. If the expire time"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8660fe54_d6e2890d","line":68,"range":{"start_line":67,"start_character":65,"end_line":68,"end_character":72},"in_reply_to":"9abc3fdd_db6d2bb4","updated":"2021-06-28 02:20:36.000000000","message":"Done","commit_id":"3701c0ab114561a53103cde175e46c7ff040a6ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The following are the changes to be made:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* A new column ``soft_deleted`` will be added in ``shares`` table to identify"},{"line_number":44,"context_line":"  shares placed in the recycle bin."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* A new column ``expire_time`` will be added in ``shares`` table, the shares in"}],"source_content_type":"text/x-rst","patch_set":6,"id":"a56cb542_055573af","line":43,"range":{"start_line":43,"start_character":17,"end_line":43,"end_character":29},"updated":"2021-06-28 20:58:47.000000000","message":"is_soft_deleted\n\nIt is a convention to have the \"is_\" prefix to boolean fields. This makes it easier to read:\n\n\"share xyzzy is soft deleted\"","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"The following are the changes to be made:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* A new column ``soft_deleted`` will be added in ``shares`` table to identify"},{"line_number":44,"context_line":"  shares placed in the recycle bin."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* A new column ``expire_time`` will be added in ``shares`` table, the shares in"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cedcc9e1_183f7aab","line":43,"range":{"start_line":43,"start_character":17,"end_line":43,"end_character":29},"in_reply_to":"a56cb542_055573af","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":43,"context_line":"* A new column ``soft_deleted`` will be added in ``shares`` table to identify"},{"line_number":44,"context_line":"  shares placed in the recycle bin."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* A new column ``expire_time`` will be added in ``shares`` table, the shares in"},{"line_number":47,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"},{"line_number":48,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"4b93748f_5d0a5082","line":46,"range":{"start_line":46,"start_character":17,"end_line":46,"end_character":28},"updated":"2021-06-28 20:58:47.000000000","message":"scheduled_deletion_time perhaps?\n\nbecause users may not be sure what \"expiry\" means when looking at a share object","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"* A new column ``soft_deleted`` will be added in ``shares`` table to identify"},{"line_number":44,"context_line":"  shares placed in the recycle bin."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"* A new column ``expire_time`` will be added in ``shares`` table, the shares in"},{"line_number":47,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"},{"line_number":48,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":49,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"1f2979a2_96a077eb","line":46,"range":{"start_line":46,"start_character":17,"end_line":46,"end_character":28},"in_reply_to":"4b93748f_5d0a5082","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":47,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"},{"line_number":48,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. This"},{"line_number":51,"context_line":"  property will inherit the parent share\u0027s value."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cc9e5142_025b6d71","line":50,"range":{"start_line":50,"start_character":19,"end_line":50,"end_character":31},"updated":"2021-06-28 20:58:47.000000000","message":"is_soft_deleted","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  Recycle Bin will be automatically and completely deleted once the expire time"},{"line_number":48,"context_line":"  reached. Shares not in Recycle Bin ``expire_time`` will be None."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"* A new property ``soft_deleted`` will be add in ``ShareInstance`` model. This"},{"line_number":51,"context_line":"  property will inherit the parent share\u0027s value."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Add new configuration item ``soft_deleted_share_expire_time``, which means"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5e89e428_c140fb3e","line":50,"range":{"start_line":50,"start_character":19,"end_line":50,"end_character":31},"in_reply_to":"cc9e5142_025b6d71","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":54,"context_line":"  the maximum time cloud administrators want to keep a share in the recycle"},{"line_number":55,"context_line":"  bin. The default value is 604800 seconds (7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* A new request parameter ``soft_delete`` will be added to the original delete"},{"line_number":58,"context_line":"  share API. ``soft_delete`` default is False, if set True, it will soft delete"},{"line_number":59,"context_line":"  the share to Recycle Bin, in the meantime set ``soft_deleted`` of share to be"},{"line_number":60,"context_line":"  True. and calculate the ``expire_time`` of the share."}],"source_content_type":"text/x-rst","patch_set":6,"id":"e4459487_d3dadadd","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":25},"updated":"2021-06-28 20:58:47.000000000","message":"See comment regarding this below","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  the maximum time cloud administrators want to keep a share in the recycle"},{"line_number":55,"context_line":"  bin. The default value is 604800 seconds (7 days)."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* A new request parameter ``soft_delete`` will be added to the original delete"},{"line_number":58,"context_line":"  share API. ``soft_delete`` default is False, if set True, it will soft delete"},{"line_number":59,"context_line":"  the share to Recycle Bin, in the meantime set ``soft_deleted`` of share to be"},{"line_number":60,"context_line":"  True. and calculate the ``expire_time`` of the share."}],"source_content_type":"text/x-rst","patch_set":6,"id":"264f707e_33360621","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":25},"in_reply_to":"e4459487_d3dadadd","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":96,"context_line":"---------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Soft delete a share to Recycle Bin"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"DELETE /v2/{project_id}/shares/{share_id}?soft_delete\u003dtrue"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Preconditions"},{"line_number":103,"context_line":"    * (1)Share status must be available, error or inactive"}],"source_content_type":"text/x-rst","patch_set":6,"id":"69b1bdcb_c5b3e93e","line":100,"range":{"start_line":99,"start_character":0,"end_line":100,"end_character":58},"updated":"2021-06-28 20:58:47.000000000","message":"we don\u0027t have any APIs that currently support adding queries to the HTTP delete method. In general, while RFC7321 doesn\u0027t prohibit it, queries to DELETE must be treated like sending content; it is possible that clients will have to make changes to accommodate this unusual behavior. [1]\n\nWe\u0027ve overloaded the POST verb with \"/action\" APIs in order to provide content; so:\n\n POST /v2/shares/{share_id}/action\n\nwith content:\n\n \u0027{\"soft_delete\": null}\u0027\n\nwill be consistent.\n\n\n[1] https://datatracker.ietf.org/doc/html/rfc7231.html#page-29","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Soft delete a share to Recycle Bin"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"DELETE /v2/{project_id}/shares/{share_id}?soft_delete\u003dtrue"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Preconditions"},{"line_number":103,"context_line":"    * (1)Share status must be available, error or inactive"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b9da3bad_febf2674","line":100,"range":{"start_line":100,"start_character":12,"end_line":100,"end_character":22},"updated":"2021-06-28 20:58:47.000000000","message":"{project_id} is optional, and can be removed from all these APIs","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":96,"context_line":"---------------"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Soft delete a share to Recycle Bin"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"DELETE /v2/{project_id}/shares/{share_id}?soft_delete\u003dtrue"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Preconditions"},{"line_number":103,"context_line":"    * (1)Share status must be available, error or inactive"}],"source_content_type":"text/x-rst","patch_set":6,"id":"6bcd7b1c_1ad3507f","line":100,"range":{"start_line":99,"start_character":0,"end_line":100,"end_character":58},"in_reply_to":"69b1bdcb_c5b3e93e","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"* Soft delete a share to Recycle Bin"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"DELETE /v2/{project_id}/shares/{share_id}?soft_delete\u003dtrue"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"Preconditions"},{"line_number":103,"context_line":"    * (1)Share status must be available, error or inactive"}],"source_content_type":"text/x-rst","patch_set":6,"id":"2b7c596a_baf9dc71","line":100,"range":{"start_line":100,"start_character":12,"end_line":100,"end_character":22},"in_reply_to":"b9da3bad_febf2674","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":104,"context_line":"    * (2)You cannot soft delete share already in Recycle Bin."},{"line_number":105,"context_line":"    * (3)You cannot already have a snapshot of the share."},{"line_number":106,"context_line":"    * (4)You cannot already have a group snapshot of the share."},{"line_number":107,"context_line":"    * (5)You cannot already have a replica of the share."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":110,"context_line":"``404 Not Found``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"3d7a348c_73f30790","line":107,"range":{"start_line":107,"start_character":9,"end_line":107,"end_character":56},"updated":"2021-06-28 20:58:47.000000000","message":"(6) You cannot soft delete a share that doesn\u0027t belong to the project you\u0027re a part of\n\n\nThis applies to public shares.","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":104,"context_line":"    * (2)You cannot soft delete share already in Recycle Bin."},{"line_number":105,"context_line":"    * (3)You cannot already have a snapshot of the share."},{"line_number":106,"context_line":"    * (4)You cannot already have a group snapshot of the share."},{"line_number":107,"context_line":"    * (5)You cannot already have a replica of the share."},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":110,"context_line":"``404 Not Found``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"c3854657_b3a8dfff","line":107,"range":{"start_line":107,"start_character":9,"end_line":107,"end_character":56},"in_reply_to":"3d7a348c_73f30790","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"* List shares in Recycle Bin"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"GET /v2/{project_id}/shares?soft_delete\u003dtrue"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* List shares in Recycle Bin with details"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"b6a9db3b_7477c8af","line":118,"range":{"start_line":118,"start_character":28,"end_line":118,"end_character":39},"updated":"2021-06-28 20:58:47.000000000","message":"is_soft_deleted","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"* List shares in Recycle Bin"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"GET /v2/{project_id}/shares?soft_delete\u003dtrue"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"* List shares in Recycle Bin with details"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"61f7d20d_62733a53","line":118,"range":{"start_line":118,"start_character":28,"end_line":118,"end_character":39},"in_reply_to":"b6a9db3b_7477c8af","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* Restore share from Recycle Bin"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"POST /v2/{project_id}/shares/{share_id}/restore"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":137,"context_line":"``404 Not Found``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"d6203e6d_e6b8cdc3","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":47},"updated":"2021-06-28 20:58:47.000000000","message":"this can be a /action API too:\n\n POST /v2/shares/{share_id}/action\n\nContent:\n\n  {\u0027restore\u0027: null}","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":131,"context_line":""},{"line_number":132,"context_line":"* Restore share from Recycle Bin"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"POST /v2/{project_id}/shares/{share_id}/restore"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":137,"context_line":"``404 Not Found``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"99740da9_18dac58b","line":134,"range":{"start_line":134,"start_character":0,"end_line":134,"end_character":47},"in_reply_to":"d6203e6d_e6b8cdc3","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":134,"context_line":"POST /v2/{project_id}/shares/{share_id}/restore"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":137,"context_line":"``404 Not Found``."},{"line_number":138,"context_line":"If the quota is exceeded, the API will respond with ``413 Quota exceeded``."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baec01cf_8ef2c23b","line":137,"range":{"start_line":137,"start_character":17,"end_line":137,"end_character":18},"updated":"2021-06-28 20:58:47.000000000","message":"If a \u0027restore\u0027 call is made on a non soft-deleted share? We should treat it like how we treat promoting an already active replica: https://opendev.org/openstack/manila/src/commit/2bc27c5678945d92ffd6b885eeaf6f86c9f16f8c/manila/api/v2/share_replicas.py#L240-L241","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":true,"context_lines":[{"line_number":134,"context_line":"POST /v2/{project_id}/shares/{share_id}/restore"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":137,"context_line":"``404 Not Found``."},{"line_number":138,"context_line":"If the quota is exceeded, the API will respond with ``413 Quota exceeded``."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"f45cb648_3be9e405","line":137,"range":{"start_line":137,"start_character":17,"end_line":137,"end_character":18},"in_reply_to":"baec01cf_8ef2c23b","updated":"2021-06-29 02:43:40.000000000","message":"yes","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":137,"context_line":"``404 Not Found``."},{"line_number":138,"context_line":"If the quota is exceeded, the API will respond with ``413 Quota exceeded``."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Security impact"},{"line_number":141,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"3060e245_09185bd6","line":138,"range":{"start_line":138,"start_character":0,"end_line":138,"end_character":75},"updated":"2021-06-28 20:58:47.000000000","message":"Why will we get into this situation?","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":true,"context_lines":[{"line_number":135,"context_line":""},{"line_number":136,"context_line":"If the provided `share_id` doesn\u0027t exist, the API will respond with"},{"line_number":137,"context_line":"``404 Not Found``."},{"line_number":138,"context_line":"If the quota is exceeded, the API will respond with ``413 Quota exceeded``."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Security impact"},{"line_number":141,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"c16428d8_bab68cc8","line":138,"range":{"start_line":138,"start_character":0,"end_line":138,"end_character":75},"in_reply_to":"3060e245_09185bd6","updated":"2021-06-29 02:43:40.000000000","message":"This situation will not exist when the shares in the Recycle Bin are still occupying the quota, and I will delete it.","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"The Manila client, CLI will be extended to support share Recycle Bin."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* The command of soft delete share will be like::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    manila soft-delete \u003cshare_id\u003e"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7cca5e78_f03d0527","line":155,"range":{"start_line":155,"start_character":2,"end_line":155,"end_character":49},"updated":"2021-06-28 20:58:47.000000000","message":"Can you also please add the OSC equivalents?\n\n openstack share soft delete \u003c\u003e\n openstack share list --soft-deleted\n openstack share restore \u003c\u003e","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":true,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"The Manila client, CLI will be extended to support share Recycle Bin."},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"* The command of soft delete share will be like::"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    manila soft-delete \u003cshare_id\u003e"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5a2fbcad_53877061","line":155,"range":{"start_line":155,"start_character":2,"end_line":155,"end_character":49},"in_reply_to":"7cca5e78_f03d0527","updated":"2021-06-29 02:43:40.000000000","message":"after this BP, i will commit another patch to complete it.","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":159,"context_line":"* The command of list shares in Recycle Bin, the supported parameters are the"},{"line_number":160,"context_line":"  same as the Manila list, it will be like::"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    manila soft-delete-list"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* The command of restore share from Recycle Bin will be like::"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"c03f317a_55f619ef","line":162,"range":{"start_line":162,"start_character":11,"end_line":162,"end_character":27},"updated":"2021-06-28 20:58:47.000000000","message":"list --soft-deleted","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":true,"context_lines":[{"line_number":159,"context_line":"* The command of list shares in Recycle Bin, the supported parameters are the"},{"line_number":160,"context_line":"  same as the Manila list, it will be like::"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    manila soft-delete-list"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* The command of restore share from Recycle Bin will be like::"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bf0e2ce4_7308acb6","line":162,"range":{"start_line":162,"start_character":11,"end_line":162,"end_character":27},"in_reply_to":"c03f317a_55f619ef","updated":"2021-06-29 02:43:40.000000000","message":"more better!","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* The command of restore share from Recycle Bin will be like::"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    manila soft-delete-restore \u003cshare_id\u003e"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Performance Impact"},{"line_number":169,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"cf8ebb00_f4da8bac","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":30},"updated":"2021-06-28 20:58:47.000000000","message":"restore","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* The command of restore share from Recycle Bin will be like::"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    manila soft-delete-restore \u003cshare_id\u003e"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Performance Impact"},{"line_number":169,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b4143274_e1033c1f","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":30},"in_reply_to":"cf8ebb00_f4da8bac","updated":"2021-06-29 02:43:40.000000000","message":"Done","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"71237eb6ece5fad822f34db36d16b7cf7985c0d1","unresolved":true,"context_lines":[{"line_number":199,"context_line":"* Update Manila CLI commands."},{"line_number":200,"context_line":"* Update unit and tempest test."},{"line_number":201,"context_line":"* Update related documents."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Dependencies"},{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":205,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7ebd4e15_fa6502ea","line":202,"range":{"start_line":202,"start_character":0,"end_line":202,"end_character":0},"updated":"2021-06-28 20:58:47.000000000","message":"UI needs to be updated as well; although its a backlog of features that need to be implemented in the UI, calling it out here would present the complete picture","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"75fae9a4edce91081c1e8e528e7abe447564d74a","unresolved":true,"context_lines":[{"line_number":199,"context_line":"* Update Manila CLI commands."},{"line_number":200,"context_line":"* Update unit and tempest test."},{"line_number":201,"context_line":"* Update related documents."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"Dependencies"},{"line_number":204,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":205,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"a038defe_480edd05","line":202,"range":{"start_line":202,"start_character":0,"end_line":202,"end_character":0},"in_reply_to":"7ebd4e15_fa6502ea","updated":"2021-06-29 02:43:40.000000000","message":"now manila UI has bump micversion to 2.47, this featuer maybe 2.64, i will try to complete this feature in manila UI later,","commit_id":"2676a6190ff099b20be7a8f42196160cdb7296ba"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"11354cc342c57f0e1e557a418c5cb80b158c46b5","unresolved":true,"context_lines":[{"line_number":46,"context_line":"* A new column ``scheduled_deletion_time`` will be added in ``shares`` table,"},{"line_number":47,"context_line":"  the shares in Recycle Bin will be automatically and completely deleted once"},{"line_number":48,"context_line":"  the expire time reached. Shares not in Recycle Bin"},{"line_number":49,"context_line":"  ``scheduled_deletion_time`` will be None."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* A new property ``is_soft_deleted`` will be added in ``ShareInstance`` model."},{"line_number":52,"context_line":"  This property will inherit the parent share\u0027s value."}],"source_content_type":"text/x-rst","patch_set":8,"id":"7bd72326_fe985916","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":27},"updated":"2021-06-29 21:21:26.000000000","message":"Sorry, we can take this to code review; but I had another thought about this - since this is a timestamp, we should be consistent with the other timestamp fields like \"created_at\", \"updated_at\", and \"deleted_at\"; so perhaps \"scheduled_to_be_deleted_at\" may be consistent.","commit_id":"cb6cdefacc57d8b1d589eed029a4f102eacf6757"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"78ea3746961b64df710b41b6d54d6de0b2e16930","unresolved":true,"context_lines":[{"line_number":46,"context_line":"* A new column ``scheduled_deletion_time`` will be added in ``shares`` table,"},{"line_number":47,"context_line":"  the shares in Recycle Bin will be automatically and completely deleted once"},{"line_number":48,"context_line":"  the expire time reached. Shares not in Recycle Bin"},{"line_number":49,"context_line":"  ``scheduled_deletion_time`` will be None."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"* A new property ``is_soft_deleted`` will be added in ``ShareInstance`` model."},{"line_number":52,"context_line":"  This property will inherit the parent share\u0027s value."}],"source_content_type":"text/x-rst","patch_set":8,"id":"f5f221d4_5455aa76","line":49,"range":{"start_line":49,"start_character":4,"end_line":49,"end_character":27},"in_reply_to":"7bd72326_fe985916","updated":"2021-06-30 02:25:53.000000000","message":"ok, this may be more consistent.","commit_id":"cb6cdefacc57d8b1d589eed029a4f102eacf6757"},{"author":{"_account_id":30002,"name":"Douglas Viroel","email":"viroel@gmail.com","username":"dviroel"},"change_message_id":"0958891225a380362cafbd551366a5fc65cbcbe5","unresolved":true,"context_lines":[{"line_number":68,"context_line":"  and it will not be released until the shares are deleted from the Recycle"},{"line_number":69,"context_line":"  Bin."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* A new periodic task will be added to the share manager layer to check if the"},{"line_number":72,"context_line":"  shares in the Recycle Bin have reached their ``scheduled_to_be_deleted_at``."},{"line_number":73,"context_line":"  If the ``scheduled_to_be_deleted_at`` gets reached, the periodic task will"},{"line_number":74,"context_line":"  delete the share automatically."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* Add new API to restore share from Recycle Bin."},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"406352e6_d9518c0a","line":74,"range":{"start_line":71,"start_character":0,"end_line":74,"end_character":33},"updated":"2021-06-30 13:16:56.000000000","message":"One idea: an new user message to warn users that a share will be completed delete in X hours, when it gets closer to be deleted. This is totally optional, but might be interesting to users.","commit_id":"a11b04fb6312bd515dfb6ff43f15b98918eaee75"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d0ea8f4f57b584fdfb8b4fc54f1338403dcc4cf9","unresolved":true,"context_lines":[{"line_number":137,"context_line":""},{"line_number":138,"context_line":"* Restore share from Recycle Bin"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"POST /v2/shares/{share_id}/restore"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"{\u0027restore\u0027: null}"},{"line_number":143,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"9055c1d0_b82ff06f","line":140,"range":{"start_line":140,"start_character":27,"end_line":140,"end_character":34},"updated":"2021-06-30 11:10:26.000000000","message":"action\nThis can be updated in the future...","commit_id":"a11b04fb6312bd515dfb6ff43f15b98918eaee75"}]}
