)]}'
{"/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"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9fe2e3f0cf21d72112f62b96eb96e15d9b11e9cc","unresolved":true,"context_lines":[{"line_number":14,"context_line":"network assuming all shares are deleted, the share server deletion fails"},{"line_number":15,"context_line":"due to those hidden shares."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"To overcome, \u0027deferred-deletion\u0027 feature is extended to share server and"},{"line_number":18,"context_line":"share network. When configured, share server deletion will move server"},{"line_number":19,"context_line":"to deferred_deleting state when all share instances on that share server"},{"line_number":20,"context_line":"are in deferred_deletion states. Similarly when share network is"},{"line_number":21,"context_line":"deleted, if all share instances are in deferred_deletion states, share"},{"line_number":22,"context_line":"server and hence share network cleanup will happen in deferred manner"},{"line_number":23,"context_line":"i.e. periodic callback. This means non-admin user will receive API"},{"line_number":24,"context_line":"response as share network is deleted, but network along-with its share"},{"line_number":25,"context_line":"servers are still present in db. Manila then internally run periodic"},{"line_number":26,"context_line":"function to cleanup those share servers and finally related share"},{"line_number":27,"context_line":"network. Any error in periodic callback processing will move share"},{"line_number":28,"context_line":"server and share network in \u0027error_deferred_deleting\u0027 state and admin"},{"line_number":29,"context_line":"must cleanup those resources."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Closes-bug: #2145137"},{"line_number":32,"context_line":"Change-Id: I3a502c3d7f88204cad9aa8525fe47d51a61a8de8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"d4c58ebe_10bbbfde","line":29,"range":{"start_line":17,"start_character":0,"end_line":29,"end_character":29},"updated":"2026-08-20 13:04:10.000000000","message":"this part of the commit message makes it sound like the deletion will no longer be triggered manually, which is not true. It will and should be. Can you please update it?","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"25f50b361eaeabd9aaf6c2b55ce4d9fe65a42fd2","unresolved":false,"context_lines":[{"line_number":14,"context_line":"network assuming all shares are deleted, the share server deletion fails"},{"line_number":15,"context_line":"due to those hidden shares."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"To overcome, \u0027deferred-deletion\u0027 feature is extended to share server and"},{"line_number":18,"context_line":"share network. When configured, share server deletion will move server"},{"line_number":19,"context_line":"to deferred_deleting state when all share instances on that share server"},{"line_number":20,"context_line":"are in deferred_deletion states. Similarly when share network is"},{"line_number":21,"context_line":"deleted, if all share instances are in deferred_deletion states, share"},{"line_number":22,"context_line":"server and hence share network cleanup will happen in deferred manner"},{"line_number":23,"context_line":"i.e. periodic callback. This means non-admin user will receive API"},{"line_number":24,"context_line":"response as share network is deleted, but network along-with its share"},{"line_number":25,"context_line":"servers are still present in db. Manila then internally run periodic"},{"line_number":26,"context_line":"function to cleanup those share servers and finally related share"},{"line_number":27,"context_line":"network. Any error in periodic callback processing will move share"},{"line_number":28,"context_line":"server and share network in \u0027error_deferred_deleting\u0027 state and admin"},{"line_number":29,"context_line":"must cleanup those resources."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Closes-bug: #2145137"},{"line_number":32,"context_line":"Change-Id: I3a502c3d7f88204cad9aa8525fe47d51a61a8de8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"06081ab9_60b70ca7","line":29,"range":{"start_line":17,"start_character":0,"end_line":29,"end_character":29},"in_reply_to":"d4c58ebe_10bbbfde","updated":"2026-08-25 09:15:22.000000000","message":"Done","commit_id":"6350eaecafb769093370acf457952e3110423834"}],"/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"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9fe2e3f0cf21d72112f62b96eb96e15d9b11e9cc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"63e33d1a_290e1f56","updated":"2026-08-20 13:04:10.000000000","message":"Thank you for working on this change, Kiran. Some thoughts inline, but I think my biggest concern on this change is the way we\u0027re handling the share network deferred deletion as a periodic task in the share/manager.\n\nA share network can span multiple share servers in different hosts, meaning that if we have 10 manila-share services and a share network spans all 10 of them, the 10 periodic tasks will attempt deleting the same share network, which can lead to a lot of other problems. If we scale the number of manila shares, the problem grows. Is deferred deletion of share networks a must? Can we keep it out of the share/manager in a periodic task?","commit_id":"6350eaecafb769093370acf457952e3110423834"}],"manila/api/v2/share_networks.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9fe2e3f0cf21d72112f62b96eb96e15d9b11e9cc","unresolved":true,"context_lines":[{"line_number":164,"context_line":"                    has_deferred_server \u003d True"},{"line_number":165,"context_line":"                    continue"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"                server_instances \u003d ("},{"line_number":168,"context_line":"                    db_api.share_instance_get_all_by_share_server("},{"line_number":169,"context_line":"                        context, share_server[\u0027id\u0027]))"},{"line_number":170,"context_line":"                deferred_instances \u003d ["},{"line_number":171,"context_line":"                    si for si in server_instances"},{"line_number":172,"context_line":"                    if si[\u0027status\u0027] in constants.DEFERRED_DELETION_STATUSES"}],"source_content_type":"text/x-python","patch_set":11,"id":"95a33803_804cc1f6","line":169,"range":{"start_line":167,"start_character":16,"end_line":169,"end_character":53},"updated":"2026-08-20 13:04:10.000000000","message":"this is already covered by the share_instance_get_all_by_share_network, isn\u0027t it? share instance get all by share network will return all share instances within the share network - the share network spans multiple share servers, so if we have two share servers with 50 shares each, share_instance_get_all_by_share_network will return the 100 and share_instance_get_all_by_share_server will return 50 for each share server, meaning we will have 200 iterations when we should only have 100.","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"25f50b361eaeabd9aaf6c2b55ce4d9fe65a42fd2","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                    has_deferred_server \u003d True"},{"line_number":165,"context_line":"                    continue"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"                server_instances \u003d ("},{"line_number":168,"context_line":"                    db_api.share_instance_get_all_by_share_server("},{"line_number":169,"context_line":"                        context, share_server[\u0027id\u0027]))"},{"line_number":170,"context_line":"                deferred_instances \u003d ["},{"line_number":171,"context_line":"                    si for si in server_instances"},{"line_number":172,"context_line":"                    if si[\u0027status\u0027] in constants.DEFERRED_DELETION_STATUSES"}],"source_content_type":"text/x-python","patch_set":11,"id":"a0ce9fcd_647b2f0c","line":169,"range":{"start_line":167,"start_character":16,"end_line":169,"end_character":53},"in_reply_to":"95a33803_804cc1f6","updated":"2026-08-25 09:15:22.000000000","message":"Done","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9fe2e3f0cf21d72112f62b96eb96e15d9b11e9cc","unresolved":true,"context_lines":[{"line_number":271,"context_line":"                \u0027security_service_id\u0027)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        policy_str \u003d \"list_networks_in_deferred_deletion_states\""},{"line_number":274,"context_line":"        show_deferred_deleted \u003d policy.check_policy("},{"line_number":275,"context_line":"            context, RESOURCE_NAME, policy_str, do_raise\u003dFalse)"},{"line_number":276,"context_line":"        if show_deferred_deleted:"},{"line_number":277,"context_line":"            filters[\u0027list_deferred_delete\u0027] \u003d True"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        networks \u003d db_api.share_network_get_all_by_filter(context,"},{"line_number":280,"context_line":"                                                          filters\u003dfilters)"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"18391e58_ce7fb64e","line":278,"range":{"start_line":274,"start_character":8,"end_line":278,"end_character":0},"updated":"2026-08-20 13:04:10.000000000","message":"```suggestion\n        filters[\u0027list_deferred_delete\u0027]\u003d policy.check_policy(\n            context, RESOURCE_NAME, policy_str, do_raise\u003dFalse)\n\n```","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"25f50b361eaeabd9aaf6c2b55ce4d9fe65a42fd2","unresolved":false,"context_lines":[{"line_number":271,"context_line":"                \u0027security_service_id\u0027)"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        policy_str \u003d \"list_networks_in_deferred_deletion_states\""},{"line_number":274,"context_line":"        show_deferred_deleted \u003d policy.check_policy("},{"line_number":275,"context_line":"            context, RESOURCE_NAME, policy_str, do_raise\u003dFalse)"},{"line_number":276,"context_line":"        if show_deferred_deleted:"},{"line_number":277,"context_line":"            filters[\u0027list_deferred_delete\u0027] \u003d True"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        networks \u003d db_api.share_network_get_all_by_filter(context,"},{"line_number":280,"context_line":"                                                          filters\u003dfilters)"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"2ee935fa_c33a63a6","line":278,"range":{"start_line":274,"start_character":8,"end_line":278,"end_character":0},"in_reply_to":"18391e58_ce7fb64e","updated":"2026-08-25 09:15:22.000000000","message":"Done","commit_id":"6350eaecafb769093370acf457952e3110423834"}],"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"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"eeb06ca6a6f0107d979043acc5b91e5f75fb1f27","unresolved":true,"context_lines":[{"line_number":3962,"context_line":"    @periodic_task.periodic_task("},{"line_number":3963,"context_line":"        spacing\u003dCONF.periodic_deferred_delete_interval)"},{"line_number":3964,"context_line":"    @utils.require_driver_initialized"},{"line_number":3965,"context_line":"    def do_deferred_share_server_deletion(self, ctxt):"},{"line_number":3966,"context_line":"        \"\"\"Retry deletion of share servers in STATUS_DEFERRED_DELETING."},{"line_number":3967,"context_line":""},{"line_number":3968,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"9d4a57dd_6b20b1ad","line":3965,"updated":"2026-08-20 13:10:53.000000000","message":"both periodic tasks have no unit tests... please add tests for them","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"25f50b361eaeabd9aaf6c2b55ce4d9fe65a42fd2","unresolved":false,"context_lines":[{"line_number":3962,"context_line":"    @periodic_task.periodic_task("},{"line_number":3963,"context_line":"        spacing\u003dCONF.periodic_deferred_delete_interval)"},{"line_number":3964,"context_line":"    @utils.require_driver_initialized"},{"line_number":3965,"context_line":"    def do_deferred_share_server_deletion(self, ctxt):"},{"line_number":3966,"context_line":"        \"\"\"Retry deletion of share servers in STATUS_DEFERRED_DELETING."},{"line_number":3967,"context_line":""},{"line_number":3968,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"9ff0ff31_1c509a69","line":3965,"in_reply_to":"9d4a57dd_6b20b1ad","updated":"2026-08-25 09:15:22.000000000","message":"Done","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"c1fa1fcc3a7d608025779d9208e6c2b7e378c23a","unresolved":true,"context_lines":[{"line_number":4017,"context_line":"            network_id \u003d network[\u0027id\u0027]"},{"line_number":4018,"context_line":""},{"line_number":4019,"context_line":"            # check for share servers on share network for this host"},{"line_number":4020,"context_line":"            remaining_servers \u003d self.db.share_server_get_all_by_host("},{"line_number":4021,"context_line":"                ctxt,"},{"line_number":4022,"context_line":"                self.host,"},{"line_number":4023,"context_line":"                filters\u003d{\u0027share_network_id\u0027: network_id})"}],"source_content_type":"text/x-python","patch_set":11,"id":"b31c2fec_915a5a81","line":4020,"range":{"start_line":4020,"start_character":31,"end_line":4020,"end_character":69},"updated":"2026-08-20 13:10:00.000000000","message":"we\u0027re filtering by host - if there are other share servers in a different host, we\u0027ll be dropping the security services and \"completing\" the deletion before actually making it happen. We must change this","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"25f50b361eaeabd9aaf6c2b55ce4d9fe65a42fd2","unresolved":false,"context_lines":[{"line_number":4017,"context_line":"            network_id \u003d network[\u0027id\u0027]"},{"line_number":4018,"context_line":""},{"line_number":4019,"context_line":"            # check for share servers on share network for this host"},{"line_number":4020,"context_line":"            remaining_servers \u003d self.db.share_server_get_all_by_host("},{"line_number":4021,"context_line":"                ctxt,"},{"line_number":4022,"context_line":"                self.host,"},{"line_number":4023,"context_line":"                filters\u003d{\u0027share_network_id\u0027: network_id})"}],"source_content_type":"text/x-python","patch_set":11,"id":"8b91b1a8_1e2dba65","line":4020,"range":{"start_line":4020,"start_character":31,"end_line":4020,"end_character":69},"in_reply_to":"b31c2fec_915a5a81","updated":"2026-08-25 09:15:22.000000000","message":"Done","commit_id":"6350eaecafb769093370acf457952e3110423834"}],"manila/share/rpcapi.py":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"9fe2e3f0cf21d72112f62b96eb96e15d9b11e9cc","unresolved":true,"context_lines":[{"line_number":265,"context_line":"    def delete_share_server(self, context, share_server,"},{"line_number":266,"context_line":"                            deferred_delete\u003dFalse):"},{"line_number":267,"context_line":"        host \u003d utils.extract_host(share_server[\u0027host\u0027])"},{"line_number":268,"context_line":"        call_context \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.31\u0027)"},{"line_number":269,"context_line":"        call_context.cast(context,"},{"line_number":270,"context_line":"                          \u0027delete_share_server\u0027,"},{"line_number":271,"context_line":"                          share_server\u003dshare_server,"}],"source_content_type":"text/x-python","patch_set":11,"id":"8d39f5fb_6b1d7c74","line":268,"range":{"start_line":268,"start_character":8,"end_line":268,"end_character":71},"updated":"2026-08-20 13:04:10.000000000","message":"there\u0027s a drawback to doing this, which is we need to make sure that in an upgrade, manila api, scheduler and share are all updated at the same time, or requests will fail. Nova, cinder and other projects all default to a fallback approach with a can_send_version call - maybe we should look into that here too? https://opendev.org/openstack/cinder/src/branch/master/cinder/backup/rpcapi.py#L74","commit_id":"6350eaecafb769093370acf457952e3110423834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"25f50b361eaeabd9aaf6c2b55ce4d9fe65a42fd2","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    def delete_share_server(self, context, share_server,"},{"line_number":266,"context_line":"                            deferred_delete\u003dFalse):"},{"line_number":267,"context_line":"        host \u003d utils.extract_host(share_server[\u0027host\u0027])"},{"line_number":268,"context_line":"        call_context \u003d self.client.prepare(server\u003dhost, version\u003d\u00271.31\u0027)"},{"line_number":269,"context_line":"        call_context.cast(context,"},{"line_number":270,"context_line":"                          \u0027delete_share_server\u0027,"},{"line_number":271,"context_line":"                          share_server\u003dshare_server,"}],"source_content_type":"text/x-python","patch_set":11,"id":"6a90fd11_e267a982","line":268,"range":{"start_line":268,"start_character":8,"end_line":268,"end_character":71},"in_reply_to":"8d39f5fb_6b1d7c74","updated":"2026-08-25 09:15:22.000000000","message":"Done","commit_id":"6350eaecafb769093370acf457952e3110423834"}]}
