)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"129cc90c6c2eb85c0ca9162aedac1d0565b38802","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     dlawton \u003cdlawton@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-09-03 16:51:34 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Bug Fix: Fixed bug in server delete function using Exception Handling"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8e5339f07b43dd0a9422eaf33346bbfdf2c9b328"},{"line_number":10,"context_line":"Signed-off-by: dlawton \u003cdlawton@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"27355f7d_bcaa62bc","line":7,"updated":"2025-09-03 16:12:04.000000000","message":"How about:\n\n```\nSkip invalid server ID during multi-server delete\n```","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     dlawton \u003cdlawton@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-09-03 16:51:34 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Bug Fix: Fixed bug in server delete function using Exception Handling"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8e5339f07b43dd0a9422eaf33346bbfdf2c9b328"},{"line_number":10,"context_line":"Signed-off-by: dlawton \u003cdlawton@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"71e31e1b_f13ad672","line":7,"in_reply_to":"27355f7d_bcaa62bc","updated":"2025-09-05 11:37:18.000000000","message":"Done","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"450bb894ae2ded6836344d851ffbf8baa78a5676","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b054c700_00400055","line":11,"updated":"2025-09-03 16:13:26.000000000","message":"You might want to file a bug about this behavior difference on [launchpad](https://bugs.launchpad.net/python-openstackclient). You can then link to it here with:\n\n```\nCloses-bug: #\u003cbug_id\u003e\n```\n\n(if you look through the git logs you\u0027ll find plenty of other examples)","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fea30f44_c10aac9e","line":11,"in_reply_to":"b054c700_00400055","updated":"2025-09-05 11:37:18.000000000","message":"Done","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"88a0319534c44875ffb1d3f953a90b673ef01881","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Bug Fix: Skip invalid server ID during multi-server delete"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8e5339f07b43dd0a9422eaf33346bbfdf2c9b328"},{"line_number":10,"context_line":"Signed-off-by: dlawton \u003cdlawton@redhat.com\u003e"},{"line_number":11,"context_line":"Closes-Bug: #2122056"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"27386e6f_af24c867","line":10,"updated":"2025-09-05 08:25:44.000000000","message":"fyi, people usually (though not always) use their full name here. Up to you, really.","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d735eba8d5cc25ec2a5736e6209a8799bda914e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"439f4532_504d4cec","updated":"2025-09-03 16:11:03.000000000","message":"This is a good start. Some comments inline. I\u0027d also like to see a unit test in `openstackclient/tests/unit/compute/v2/test_server.py` for multiple servers with an error. You can likely find existing tests that you can base it on in e.g. `test_volume.py`.","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"81c97195473d01b166bfc8376c7a85be61c24073","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"409e43ca_1822fd0e","updated":"2025-09-05 08:25:02.000000000","message":"-1 is for the failing tests. I have a couple of other suggestions inline also though.\n\nPlease mark comments as *Done* when you\u0027ve addressed them. It\u0027ll help reviewers and yourself.","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7bcfffdc2a0106425d4904331eb817d2c7c62e10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5babadc5_a3fb0a78","updated":"2025-09-08 09:47:29.000000000","message":"Two more nits","commit_id":"4e422a4b5c5f08fbd4c3eab05c5e4934a6570515"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0429de1e97f7627fdc24c07613847776e198f417","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3e9e40c4_033fde29","updated":"2025-09-08 16:48:19.000000000","message":"On the assumption CI is happy. Nice work here.","commit_id":"3dfeb5ed08579a7a617f9c696ea3dea012f4a023"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d735eba8d5cc25ec2a5736e6209a8799bda914e","unresolved":true,"context_lines":[{"line_number":2236,"context_line":"                    msg \u003d _(\u0027Error deleting server: %s\u0027) % server_obj.id"},{"line_number":2237,"context_line":"                    raise exceptions.CommandError(msg)"},{"line_number":2238,"context_line":""},{"line_number":2239,"context_line":""},{"line_number":2240,"context_line":"class PercentAction(argparse.Action):"},{"line_number":2241,"context_line":"    def __init__("},{"line_number":2242,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2e2bdb09_cbfbeaf6","side":"PARENT","line":2239,"updated":"2025-09-03 16:11:03.000000000","message":"You don\u0027t want to delete this. To ensure code is auto-formatted, I\u0027d suggest installing and enabling pre-commit. That will run linters automatically each time you commit:\n\n```\nsudo dnf install pre-commit  # or pipx install pre-commit\n# from the OSC repository root\npre-commit install\n```\n\nAlternatively, you can run this manually with `tox -e pep8`.","commit_id":"94e447af80ee3e5197e588946e13b2574c49e752"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":2236,"context_line":"                    msg \u003d _(\u0027Error deleting server: %s\u0027) % server_obj.id"},{"line_number":2237,"context_line":"                    raise exceptions.CommandError(msg)"},{"line_number":2238,"context_line":""},{"line_number":2239,"context_line":""},{"line_number":2240,"context_line":"class PercentAction(argparse.Action):"},{"line_number":2241,"context_line":"    def __init__("},{"line_number":2242,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":2,"id":"68131951_8320443e","side":"PARENT","line":2239,"in_reply_to":"2e2bdb09_cbfbeaf6","updated":"2025-09-05 11:37:18.000000000","message":"Pre-Commit was enabled to ensure code was auto-formatted as outlined.","commit_id":"94e447af80ee3e5197e588946e13b2574c49e752"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d735eba8d5cc25ec2a5736e6209a8799bda914e","unresolved":true,"context_lines":[{"line_number":2227,"context_line":"                    all_projects\u003dparsed_args.all_projects,"},{"line_number":2228,"context_line":"                )"},{"line_number":2229,"context_line":""},{"line_number":2230,"context_line":"                compute_client.delete_server(server_obj, force\u003dparsed_args.force)"},{"line_number":2231,"context_line":"            except Exception as e:"},{"line_number":2232,"context_line":"                result +\u003d 1"},{"line_number":2233,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":2,"id":"bb9983a6_f39a6d67","line":2230,"updated":"2025-09-03 16:11:03.000000000","message":"How about we save `server_obj` in a list here so we have something to iterate on later (see below).","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":2227,"context_line":"                    all_projects\u003dparsed_args.all_projects,"},{"line_number":2228,"context_line":"                )"},{"line_number":2229,"context_line":""},{"line_number":2230,"context_line":"                compute_client.delete_server(server_obj, force\u003dparsed_args.force)"},{"line_number":2231,"context_line":"            except Exception as e:"},{"line_number":2232,"context_line":"                result +\u003d 1"},{"line_number":2233,"context_line":"                LOG.error("}],"source_content_type":"text/x-python","patch_set":2,"id":"32db2da3_52c52bcf","line":2230,"in_reply_to":"bb9983a6_f39a6d67","updated":"2025-09-05 11:37:18.000000000","message":"Implemented List to save previously deleted servers, instead of the being lost because they weren\u0027t saved anywhere, easier to keep track of all successfully deleted servers and not just the last one.","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d735eba8d5cc25ec2a5736e6209a8799bda914e","unresolved":true,"context_lines":[{"line_number":2238,"context_line":"                    {\u0027server\u0027: server, \u0027e\u0027: e},"},{"line_number":2239,"context_line":"                )"},{"line_number":2240,"context_line":""},{"line_number":2241,"context_line":"        if result \u003e 0:"},{"line_number":2242,"context_line":"            total \u003d len(parsed_args.server)"},{"line_number":2243,"context_line":"            msg \u003d _(\"%(result)s of %(total)s servers failed to delete.\") % {"},{"line_number":2244,"context_line":"                \u0027result\u0027: result,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fe4e44ec_d1b93aac","line":2241,"updated":"2025-09-03 16:11:03.000000000","message":"Do we want to do this here or after the wait? I\u0027d have expected if I pass 3 IDs and 1 is invalid, then the 2 valid ones should be deleted and we should wait until they are deleted before reporting the issue with the invalid one, no?","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":2238,"context_line":"                    {\u0027server\u0027: server, \u0027e\u0027: e},"},{"line_number":2239,"context_line":"                )"},{"line_number":2240,"context_line":""},{"line_number":2241,"context_line":"        if result \u003e 0:"},{"line_number":2242,"context_line":"            total \u003d len(parsed_args.server)"},{"line_number":2243,"context_line":"            msg \u003d _(\"%(result)s of %(total)s servers failed to delete.\") % {"},{"line_number":2244,"context_line":"                \u0027result\u0027: result,"}],"source_content_type":"text/x-python","patch_set":2,"id":"8ec52224_b30e46b9","line":2241,"in_reply_to":"fe4e44ec_d1b93aac","updated":"2025-09-05 11:37:18.000000000","message":"Yes I see what you mean, a change was made, with the deleted servers being saved, it waits until all servers are deleted before reporting an issue with the invalid one.","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6d735eba8d5cc25ec2a5736e6209a8799bda914e","unresolved":true,"context_lines":[{"line_number":2247,"context_line":"            raise exceptions.CommandError(msg"},{"line_number":2248,"context_line":"                                          )"},{"line_number":2249,"context_line":"        if parsed_args.wait:"},{"line_number":2250,"context_line":"                try:"},{"line_number":2251,"context_line":"                    compute_client.wait_for_delete("},{"line_number":2252,"context_line":"                        server_obj, callback\u003d_show_progress"},{"line_number":2253,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":2,"id":"46b5f3cf_bd597ee0","line":2250,"updated":"2025-09-03 16:11:03.000000000","message":"This was previously inside the for loop but no longer is. You probably want to iterate over _something_ (see comment above).","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":2247,"context_line":"            raise exceptions.CommandError(msg"},{"line_number":2248,"context_line":"                                          )"},{"line_number":2249,"context_line":"        if parsed_args.wait:"},{"line_number":2250,"context_line":"                try:"},{"line_number":2251,"context_line":"                    compute_client.wait_for_delete("},{"line_number":2252,"context_line":"                        server_obj, callback\u003d_show_progress"},{"line_number":2253,"context_line":"                    )"}],"source_content_type":"text/x-python","patch_set":2,"id":"178dc9e9_aa14008c","line":2250,"in_reply_to":"46b5f3cf_bd597ee0","updated":"2025-09-05 11:37:18.000000000","message":"Done","commit_id":"f39800a358b192853972893bb1e3c4420c171f83"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"44f0f12115f7664aaa5150de7c82a2fa5bdef71f","unresolved":true,"context_lines":[{"line_number":2218,"context_line":"                self.app.stdout.flush()"},{"line_number":2219,"context_line":""},{"line_number":2220,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":2221,"context_line":"        result \u003d 0"},{"line_number":2222,"context_line":"        deleted_servers \u003d []"},{"line_number":2223,"context_line":"        for server in parsed_args.server:"},{"line_number":2224,"context_line":"            try:"},{"line_number":2225,"context_line":"                server_obj \u003d compute_client.find_server("}],"source_content_type":"text/x-python","patch_set":3,"id":"41e82989_cf0f3bc1","line":2222,"range":{"start_line":2221,"start_character":0,"end_line":2222,"end_character":28},"updated":"2025-09-05 08:24:17.000000000","message":"I think we could optimise this to only use one variable (hint: what will `len(deleted_servers)` be in the success/error cases)","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":2218,"context_line":"                self.app.stdout.flush()"},{"line_number":2219,"context_line":""},{"line_number":2220,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":2221,"context_line":"        result \u003d 0"},{"line_number":2222,"context_line":"        deleted_servers \u003d []"},{"line_number":2223,"context_line":"        for server in parsed_args.server:"},{"line_number":2224,"context_line":"            try:"},{"line_number":2225,"context_line":"                server_obj \u003d compute_client.find_server("}],"source_content_type":"text/x-python","patch_set":3,"id":"d0b7a654_6f1abdfb","line":2222,"range":{"start_line":2221,"start_character":0,"end_line":2222,"end_character":28},"in_reply_to":"41e82989_cf0f3bc1","updated":"2025-09-05 11:37:18.000000000","message":"Done","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"44f0f12115f7664aaa5150de7c82a2fa5bdef71f","unresolved":true,"context_lines":[{"line_number":2250,"context_line":"                    )"},{"line_number":2251,"context_line":"                except sdk_exceptions.ResourceTimeout:"},{"line_number":2252,"context_line":"                    msg \u003d _(\u0027Error deleting server: %s\u0027) % server_obj.id"},{"line_number":2253,"context_line":"                    raise exceptions.CommandError(msg)"},{"line_number":2254,"context_line":""},{"line_number":2255,"context_line":"        if result \u003e 0:"},{"line_number":2256,"context_line":"            total \u003d len(parsed_args.server)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ddb5fcd6_40d3e508","line":2253,"updated":"2025-09-05 08:24:17.000000000","message":"Do we want to hold off erroring here like we do above now? If we get to this point, we know that we at least succeeded in deleting the server (otherwise it wouldn\u0027t be in `deleted_servers`) so we won\u0027t have to worry about double counting them. If we do delay and end up using `deleted_servers` to check for errors, we should probably `pop` the server out here if we get an error.","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":2250,"context_line":"                    )"},{"line_number":2251,"context_line":"                except sdk_exceptions.ResourceTimeout:"},{"line_number":2252,"context_line":"                    msg \u003d _(\u0027Error deleting server: %s\u0027) % server_obj.id"},{"line_number":2253,"context_line":"                    raise exceptions.CommandError(msg)"},{"line_number":2254,"context_line":""},{"line_number":2255,"context_line":"        if result \u003e 0:"},{"line_number":2256,"context_line":"            total \u003d len(parsed_args.server)"}],"source_content_type":"text/x-python","patch_set":3,"id":"840169f7_504e0c8f","line":2253,"in_reply_to":"ddb5fcd6_40d3e508","updated":"2025-09-05 11:37:18.000000000","message":"Used a slice of the list [:] to create a copy, will allow for deleted_servers to be popped out of the loop without messing with the iteration.","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7bcfffdc2a0106425d4904331eb817d2c7c62e10","unresolved":true,"context_lines":[{"line_number":2242,"context_line":"                )"},{"line_number":2243,"context_line":""},{"line_number":2244,"context_line":"        if parsed_args.wait:"},{"line_number":2245,"context_line":"            for server_obj in deleted_servers[:]:"},{"line_number":2246,"context_line":"                try:"},{"line_number":2247,"context_line":"                    compute_client.wait_for_delete("},{"line_number":2248,"context_line":"                        server_obj, callback\u003d_show_progress"}],"source_content_type":"text/x-python","patch_set":4,"id":"f7a459ba_45699641","line":2245,"range":{"start_line":2245,"start_character":45,"end_line":2245,"end_character":48},"updated":"2025-09-08 09:47:29.000000000","message":"This is a shorthand for creating a copy of the list. You don\u0027t need to do that here.\n\n\n```suggestion\n            for server_obj in deleted_servers:\n```","commit_id":"4e422a4b5c5f08fbd4c3eab05c5e4934a6570515"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"5da125ac3101fdb39bd03bb51f9d8a8663a13fd4","unresolved":false,"context_lines":[{"line_number":2242,"context_line":"                )"},{"line_number":2243,"context_line":""},{"line_number":2244,"context_line":"        if parsed_args.wait:"},{"line_number":2245,"context_line":"            for server_obj in deleted_servers[:]:"},{"line_number":2246,"context_line":"                try:"},{"line_number":2247,"context_line":"                    compute_client.wait_for_delete("},{"line_number":2248,"context_line":"                        server_obj, callback\u003d_show_progress"}],"source_content_type":"text/x-python","patch_set":4,"id":"3123fd68_4d163607","line":2245,"range":{"start_line":2245,"start_character":45,"end_line":2245,"end_character":48},"in_reply_to":"f7a459ba_45699641","updated":"2025-09-08 16:16:40.000000000","message":"Removed [:]","commit_id":"4e422a4b5c5f08fbd4c3eab05c5e4934a6570515"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7bcfffdc2a0106425d4904331eb817d2c7c62e10","unresolved":true,"context_lines":[{"line_number":2248,"context_line":"                        server_obj, callback\u003d_show_progress"},{"line_number":2249,"context_line":"                    )"},{"line_number":2250,"context_line":"                except sdk_exceptions.ResourceTimeout:"},{"line_number":2251,"context_line":"                    msg \u003d _(\u0027Error deleting server: %s\u0027) % server_obj.id"},{"line_number":2252,"context_line":"                    raise exceptions.CommandError(msg)"},{"line_number":2253,"context_line":""},{"line_number":2254,"context_line":"        fails \u003d len(parsed_args.server) - len(deleted_servers)"}],"source_content_type":"text/x-python","patch_set":4,"id":"60d5cc73_31297ce3","line":2251,"updated":"2025-09-08 09:47:29.000000000","message":"Do we want to update `deleted_servers` in this case? Maybe we could use `pop` or `remove`?","commit_id":"4e422a4b5c5f08fbd4c3eab05c5e4934a6570515"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"5da125ac3101fdb39bd03bb51f9d8a8663a13fd4","unresolved":false,"context_lines":[{"line_number":2248,"context_line":"                        server_obj, callback\u003d_show_progress"},{"line_number":2249,"context_line":"                    )"},{"line_number":2250,"context_line":"                except sdk_exceptions.ResourceTimeout:"},{"line_number":2251,"context_line":"                    msg \u003d _(\u0027Error deleting server: %s\u0027) % server_obj.id"},{"line_number":2252,"context_line":"                    raise exceptions.CommandError(msg)"},{"line_number":2253,"context_line":""},{"line_number":2254,"context_line":"        fails \u003d len(parsed_args.server) - len(deleted_servers)"}],"source_content_type":"text/x-python","patch_set":4,"id":"02e1db0a_01fbbbcc","line":2251,"in_reply_to":"60d5cc73_31297ce3","updated":"2025-09-08 16:16:40.000000000","message":"Done","commit_id":"4e422a4b5c5f08fbd4c3eab05c5e4934a6570515"}],"openstackclient/tests/unit/compute/v2/test_server.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"44f0f12115f7664aaa5150de7c82a2fa5bdef71f","unresolved":true,"context_lines":[{"line_number":4451,"context_line":""},{"line_number":4452,"context_line":"    def test_server_delete_multi_servers_with_exceptions(self):"},{"line_number":4453,"context_line":"        self.compute_client.find_server.side_effect \u003d ["},{"line_number":4454,"context_line":"            self.server[0],"},{"line_number":4455,"context_line":"            sdk_exceptions.ResourceNotFound(),"},{"line_number":4456,"context_line":"            self.server[1],"},{"line_number":4457,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"040d2490_944a5c4d","line":4454,"updated":"2025-09-05 08:24:17.000000000","message":"Are you sure about this? The name of this variable suggests it contains only a single server object. How are the others tests that work with multiple servers (like `test_server_delete_multi_servers` above) working?","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"},{"author":{"_account_id":38331,"name":"Daniel Lawton","display_name":"DanLawton","email":"dlawton@redhat.com","username":"DanLawton"},"change_message_id":"7cf3ebe975fb866a4c3209a9bb31433d9cdcc53a","unresolved":false,"context_lines":[{"line_number":4451,"context_line":""},{"line_number":4452,"context_line":"    def test_server_delete_multi_servers_with_exceptions(self):"},{"line_number":4453,"context_line":"        self.compute_client.find_server.side_effect \u003d ["},{"line_number":4454,"context_line":"            self.server[0],"},{"line_number":4455,"context_line":"            sdk_exceptions.ResourceNotFound(),"},{"line_number":4456,"context_line":"            self.server[1],"},{"line_number":4457,"context_line":"        ]"}],"source_content_type":"text/x-python","patch_set":3,"id":"df3ced6a_ea838565","line":4454,"in_reply_to":"040d2490_944a5c4d","updated":"2025-09-05 11:37:18.000000000","message":"Thanks, now using multiple server objects to test valid server objects being deleted.","commit_id":"baccbba50d273c2cc7a3e6c39d2fe9318c69785d"}]}
