)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"87a24950f4746a874c4c0618ce6da24b5a945b66","unresolved":true,"context_lines":[{"line_number":24,"context_line":"network is deleted, but network along-with its share servers are still"},{"line_number":25,"context_line":"present in db. Manila then internally run periodic function to cleanup"},{"line_number":26,"context_line":"those share servers and finally related share network. Any error in"},{"line_number":27,"context_line":"peridic callback processing will move share server and share network in"},{"line_number":28,"context_line":"\u0027error_deferred_deleting\u0027 state and admin must cleanup those resources."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Closes-bug: #2145137"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"04626fb7_654c1149","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":7},"updated":"2026-03-27 13:37:34.000000000","message":"typo: periodic","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c3ad865d1e4bd0ad3c92ecc8b105b60a6043af31","unresolved":true,"context_lines":[{"line_number":24,"context_line":"network is deleted, but network along-with its share servers are still"},{"line_number":25,"context_line":"present in db. Manila then internally run periodic function to cleanup"},{"line_number":26,"context_line":"those share servers and finally related share network. Any error in"},{"line_number":27,"context_line":"peridic callback processing will move share server and share network in"},{"line_number":28,"context_line":"\u0027error_deferred_deleting\u0027 state and admin must cleanup those resources."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Closes-bug: #2145137"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"db43ad6b_a1431f2f","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":7},"in_reply_to":"04626fb7_654c1149","updated":"2026-03-31 08:09:51.000000000","message":"ACK, Will address in next iteration.","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f3332302cff0e0d1d31e780b463ee25ad7ecd9f9","unresolved":false,"context_lines":[{"line_number":24,"context_line":"network is deleted, but network along-with its share servers are still"},{"line_number":25,"context_line":"present in db. Manila then internally run periodic function to cleanup"},{"line_number":26,"context_line":"those share servers and finally related share network. Any error in"},{"line_number":27,"context_line":"peridic callback processing will move share server and share network in"},{"line_number":28,"context_line":"\u0027error_deferred_deleting\u0027 state and admin must cleanup those resources."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Closes-bug: #2145137"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"2e42f1cb_fa3f45b6","line":27,"range":{"start_line":27,"start_character":0,"end_line":27,"end_character":7},"in_reply_to":"db43ad6b_a1431f2f","updated":"2026-05-14 10:54:02.000000000","message":"Done","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c61207d300f6d7a1fc2e6c6fe38780a01ae34f76","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Parent:     75f247b9 (Remove dead share network mocking from test helper)"},{"line_number":2,"context_line":"Author:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-03-23 12:04:52 +0530"},{"line_number":4,"context_line":"Commit:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"6afea999_bc2223f6","line":1,"updated":"2026-07-14 22:30:05.000000000","message":"Needs a release note. This changes user-facing delete behavior.","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     75f247b9 (Remove dead share network mocking from test helper)"},{"line_number":2,"context_line":"Author:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-03-23 12:04:52 +0530"},{"line_number":4,"context_line":"Commit:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"8f412a8d_79d59557","line":1,"in_reply_to":"6afea999_bc2223f6","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c61207d300f6d7a1fc2e6c6fe38780a01ae34f76","unresolved":true,"context_lines":[{"line_number":1,"context_line":"Parent:     75f247b9 (Remove dead share network mocking from test helper)"},{"line_number":2,"context_line":"Author:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-03-23 12:04:52 +0530"},{"line_number":4,"context_line":"Commit:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-06-25 15:41:37 +0000"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"c4dc3c03_fbdb6e42","line":3,"updated":"2026-07-14 22:30:05.000000000","message":"\"qouta\" -\u003e \"quota\"","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     75f247b9 (Remove dead share network mocking from test helper)"},{"line_number":2,"context_line":"Author:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-03-23 12:04:52 +0530"},{"line_number":4,"context_line":"Commit:     Kiran Pawar \u003ckinpaa@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-06-25 15:41:37 +0000"},{"line_number":6,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"415ee530_eb549179","line":3,"in_reply_to":"c4dc3c03_fbdb6e42","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"f0f50f2bf7b35937e0695f6847575daba850812a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"71c74b57_2be4cf89","updated":"2026-03-24 15:46:07.000000000","message":"Hi,\nCan you Please comment on approach (RFC) ?\n\nI will then continue to add more tests, releasenote and remaining things in PR.","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c61207d300f6d7a1fc2e6c6fe38780a01ae34f76","unresolved":true,"context_lines":[{"line_number":5191,"context_line":"    query \u003d exact_filter("},{"line_number":5192,"context_line":"        query, models.ShareNetwork, filters, legal_filter_keys,"},{"line_number":5193,"context_line":"    )"},{"line_number":5194,"context_line":"    if not filters.get(\u0027list_deferred_delete\u0027):"},{"line_number":5195,"context_line":"        query \u003d query.filter(and_("},{"line_number":5196,"context_line":"            models.ShareNetwork.status !\u003d ("},{"line_number":5197,"context_line":"                constants.STATUS_DEFERRED_DELETING),"}],"source_content_type":"text/x-python","patch_set":7,"id":"174a8e8a_bdc69751","line":5194,"updated":"2026-07-14 22:30:05.000000000","message":"The share network periodic task passes `filters\u003d{\u0027status\u0027: \u0027deferred_deleting\u0027}` to `share_network_get_all_by_filter`, but `\u0027status\u0027` is not in `legal_filter_keys` (line 5186) so `exact_filter` silently drops it. On top of that, lines 5194-5199 actively exclude deferred-deleting networks from the results when `list_deferred_delete` is not set. The periodic task will always get an empty list and network cleanup can never run.\n\nEasiest fix: pass `list_deferred_delete: True` in the filter dict and then post-filter by status in the caller. Or add `\u0027status\u0027` to the legal keys.","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":5191,"context_line":"    query \u003d exact_filter("},{"line_number":5192,"context_line":"        query, models.ShareNetwork, filters, legal_filter_keys,"},{"line_number":5193,"context_line":"    )"},{"line_number":5194,"context_line":"    if not filters.get(\u0027list_deferred_delete\u0027):"},{"line_number":5195,"context_line":"        query \u003d query.filter(and_("},{"line_number":5196,"context_line":"            models.ShareNetwork.status !\u003d ("},{"line_number":5197,"context_line":"                constants.STATUS_DEFERRED_DELETING),"}],"source_content_type":"text/x-python","patch_set":7,"id":"88d1bbd8_bd8e45f6","line":5194,"in_reply_to":"174a8e8a_bdc69751","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"}],"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c61207d300f6d7a1fc2e6c6fe38780a01ae34f76","unresolved":true,"context_lines":[{"line_number":1170,"context_line":"        Boolean, nullable\u003dFalse, default\u003dFalse)"},{"line_number":1171,"context_line":"    encryption_key_ref \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":1172,"context_line":"    application_credential_id \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":1173,"context_line":"    status \u003d Column(Enum("},{"line_number":1174,"context_line":"        constants.STATUS_INACTIVE, constants.STATUS_ACTIVE,"},{"line_number":1175,"context_line":"        constants.STATUS_ERROR, constants.STATUS_DELETING,"},{"line_number":1176,"context_line":"        constants.STATUS_CREATING, constants.STATUS_DELETED,"}],"source_content_type":"text/x-python","patch_set":7,"id":"d2f0a3dd_ec1ef7dd","line":1173,"updated":"2026-07-14 22:30:05.000000000","message":"The ShareServer model Enum wasn\u0027t updated with the new deferred statuses (the ShareNetwork one was, at line 1005). The DB column is a varchar so MySQL won\u0027t complain, but SQLAlchemy validates against the model Enum before it hits the DB. Any `share_server_update` with `deferred_deleting` will fail at the ORM layer.","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":1170,"context_line":"        Boolean, nullable\u003dFalse, default\u003dFalse)"},{"line_number":1171,"context_line":"    encryption_key_ref \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":1172,"context_line":"    application_credential_id \u003d Column(String(36), nullable\u003dTrue)"},{"line_number":1173,"context_line":"    status \u003d Column(Enum("},{"line_number":1174,"context_line":"        constants.STATUS_INACTIVE, constants.STATUS_ACTIVE,"},{"line_number":1175,"context_line":"        constants.STATUS_ERROR, constants.STATUS_DELETING,"},{"line_number":1176,"context_line":"        constants.STATUS_CREATING, constants.STATUS_DELETED,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f94b422_b0b35581","line":1173,"in_reply_to":"d2f0a3dd_ec1ef7dd","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"}],"manila/share/manager.py":[{"author":{"_account_id":18816,"name":"Maurice Escher","display_name":"carthaca","email":"maurice.escher@sap.com","username":"mapocace"},"change_message_id":"87a24950f4746a874c4c0618ce6da24b5a945b66","unresolved":true,"context_lines":[{"line_number":4002,"context_line":"            except Exception:"},{"line_number":4003,"context_line":"                LOG.exception("},{"line_number":4004,"context_line":"                    \"Deferred delete: failed to delete share server \u0027%s\u0027. \""},{"line_number":4005,"context_line":"                    \"Will retry on next periodic cycle.\", share_server_id)"},{"line_number":4006,"context_line":""},{"line_number":4007,"context_line":"    @periodic_task.periodic_task("},{"line_number":4008,"context_line":"        spacing\u003dCONF.periodic_deferred_delete_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"ec215746_0717f88e","line":4005,"updated":"2026-03-27 13:37:34.000000000","message":"Means we could end up in infinite loop here?\nMost likely if this is not working in the first 24 hours, it will never clean up on its own and needs human intervention","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"c3ad865d1e4bd0ad3c92ecc8b105b60a6043af31","unresolved":true,"context_lines":[{"line_number":4002,"context_line":"            except Exception:"},{"line_number":4003,"context_line":"                LOG.exception("},{"line_number":4004,"context_line":"                    \"Deferred delete: failed to delete share server \u0027%s\u0027. \""},{"line_number":4005,"context_line":"                    \"Will retry on next periodic cycle.\", share_server_id)"},{"line_number":4006,"context_line":""},{"line_number":4007,"context_line":"    @periodic_task.periodic_task("},{"line_number":4008,"context_line":"        spacing\u003dCONF.periodic_deferred_delete_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fc91aeee_52c35b50","line":4005,"in_reply_to":"ec215746_0717f88e","updated":"2026-03-31 08:09:51.000000000","message":"the share server and share network are in state of deferred_deleting as long as they are not throwing error in final stage i.e. deletion from db. In this case, if not found we are all good. But if any error then its error_deferred_deleting, which admin (human-intevention) needs to look into. Similar to share, share-network also has listing controlled to these states for admin. So far this seems less probabilistic","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":4002,"context_line":"            except Exception:"},{"line_number":4003,"context_line":"                LOG.exception("},{"line_number":4004,"context_line":"                    \"Deferred delete: failed to delete share server \u0027%s\u0027. \""},{"line_number":4005,"context_line":"                    \"Will retry on next periodic cycle.\", share_server_id)"},{"line_number":4006,"context_line":""},{"line_number":4007,"context_line":"    @periodic_task.periodic_task("},{"line_number":4008,"context_line":"        spacing\u003dCONF.periodic_deferred_delete_interval)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f5c1d47_05aef301","line":4005,"in_reply_to":"fc91aeee_52c35b50","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"665e0552cbbb129d584c5b2eb8d343766bff6897"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c61207d300f6d7a1fc2e6c6fe38780a01ae34f76","unresolved":true,"context_lines":[{"line_number":4011,"context_line":""},{"line_number":4012,"context_line":"            # check for share servers on share network for this host"},{"line_number":4013,"context_line":"            remaining_servers \u003d self.db.share_server_get_all_by_host("},{"line_number":4014,"context_line":"                context,"},{"line_number":4015,"context_line":"                self.host,"},{"line_number":4016,"context_line":"                filters\u003d{\u0027share_network_id\u0027: network_id})"},{"line_number":4017,"context_line":"            if remaining_servers:"}],"source_content_type":"text/x-python","patch_set":7,"id":"5f7aaca7_9b031711","line":4014,"updated":"2026-07-14 22:30:05.000000000","message":"`context` is not defined here, the method parameter is `ctxt` (line 3997). This will raise NameError every time the periodic task encounters a deferred-deleting network.","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":4011,"context_line":""},{"line_number":4012,"context_line":"            # check for share servers on share network for this host"},{"line_number":4013,"context_line":"            remaining_servers \u003d self.db.share_server_get_all_by_host("},{"line_number":4014,"context_line":"                context,"},{"line_number":4015,"context_line":"                self.host,"},{"line_number":4016,"context_line":"                filters\u003d{\u0027share_network_id\u0027: network_id})"},{"line_number":4017,"context_line":"            if remaining_servers:"}],"source_content_type":"text/x-python","patch_set":7,"id":"63d26350_e0ddffb0","line":4014,"in_reply_to":"5f7aaca7_9b031711","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c61207d300f6d7a1fc2e6c6fe38780a01ae34f76","unresolved":true,"context_lines":[{"line_number":4986,"context_line":"                if active_shares:"},{"line_number":4987,"context_line":"                    raise exception.ShareServerInUse(share_server_id\u003dserver_id)"},{"line_number":4988,"context_line":""},{"line_number":4989,"context_line":"                deferred_shares \u003d ["},{"line_number":4990,"context_line":"                    s for s in shares if s not in active_shares"},{"line_number":4991,"context_line":"                ]"},{"line_number":4992,"context_line":"                if deferred_shares:"}],"source_content_type":"text/x-python","patch_set":7,"id":"65f90e2e_86dcf0fd","line":4989,"updated":"2026-07-14 22:30:05.000000000","message":"You defined `constants.DEFERRED_DELETION_STATUSES` (constants.py:302) but then hardcode the same tuple inline here, at lines 4981-4983, and again in share/api.py:1692-1694. Use the constant.","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"19e9121eac02f84b2dea1bc4d17b452a6f8b61bf","unresolved":false,"context_lines":[{"line_number":4986,"context_line":"                if active_shares:"},{"line_number":4987,"context_line":"                    raise exception.ShareServerInUse(share_server_id\u003dserver_id)"},{"line_number":4988,"context_line":""},{"line_number":4989,"context_line":"                deferred_shares \u003d ["},{"line_number":4990,"context_line":"                    s for s in shares if s not in active_shares"},{"line_number":4991,"context_line":"                ]"},{"line_number":4992,"context_line":"                if deferred_shares:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3d798ea3_2d5e1862","line":4989,"in_reply_to":"65f90e2e_86dcf0fd","updated":"2026-07-16 14:32:53.000000000","message":"Done","commit_id":"82a17ba31546c1bb5fbca1d323f4cc66b225ed8e"}]}
