)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Prevent clear_job_queue failures on older iDRACs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, clear_job_queue is only supported on iDRAC9 hardware."},{"line_number":10,"context_line":"However, Ironic still attempts to run it on iDRAC8 BMCs which results in"},{"line_number":11,"context_line":"verification failures. This change attempts to resolve it by catching"},{"line_number":12,"context_line":"related exception, logging a warning and continuing verification."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"13d18f2a_112d6996","line":9,"range":{"start_line":9,"start_character":30,"end_line":9,"end_character":44},"updated":"2022-06-22 13:00:30.000000000","message":"update to clarify that this is only true for Redfish API on iDRAC 8. iDRAC8 users still have option to use WS-Man implementation for clear_job_queue and other.","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Prevent clear_job_queue failures on older iDRACs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, clear_job_queue is only supported on iDRAC9 hardware."},{"line_number":10,"context_line":"However, Ironic still attempts to run it on iDRAC8 BMCs which results in"},{"line_number":11,"context_line":"verification failures. This change attempts to resolve it by catching"},{"line_number":12,"context_line":"related exception, logging a warning and continuing verification."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"b10a5507_3be1206d","line":9,"range":{"start_line":9,"start_character":30,"end_line":9,"end_character":44},"in_reply_to":"13d18f2a_112d6996","updated":"2022-06-23 01:57:08.000000000","message":"Done","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, clear_job_queue is only supported on iDRAC9 hardware."},{"line_number":10,"context_line":"However, Ironic still attempts to run it on iDRAC8 BMCs which results in"},{"line_number":11,"context_line":"verification failures. This change attempts to resolve it by catching"},{"line_number":12,"context_line":"related exception, logging a warning and continuing verification."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Story: 2010091"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5ce342a9_ec40baa7","line":11,"range":{"start_line":11,"start_character":21,"end_line":11,"end_character":22},"updated":"2022-06-22 13:00:30.000000000","message":"again, could narrow this to \"when using idrac-redfish for management interface\" as there are no such issues with \"idrac-wsman\" as management interface.","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, clear_job_queue is only supported on iDRAC9 hardware."},{"line_number":10,"context_line":"However, Ironic still attempts to run it on iDRAC8 BMCs which results in"},{"line_number":11,"context_line":"verification failures. This change attempts to resolve it by catching"},{"line_number":12,"context_line":"related exception, logging a warning and continuing verification."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Story: 2010091"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"d5a4789a_6522778a","line":11,"range":{"start_line":11,"start_character":21,"end_line":11,"end_character":22},"in_reply_to":"5ce342a9_ec40baa7","updated":"2022-06-23 01:57:08.000000000","message":"Please let me know if you\u0027re happy with the new phrasing.","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"c2db76b08b6fbdb60f9588442782cda6cd2b6873","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Prevent clear_job_queue and reset_idrac failures on older iDRACs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, clear_job_queue and reset_idrac steps are only supported on"},{"line_number":10,"context_line":"idrac-redfish driver on iDRAC9 hardware. However, Ironic still attempts to run"},{"line_number":11,"context_line":"these steps on iDRAC8 BMCs configured with idrac-redfish driver which results"},{"line_number":12,"context_line":"in verification failures. This change attempts to resolve it by catching the related"},{"line_number":13,"context_line":"exception, logging a warning and continuing verification."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fcb3614e_b9758bae","line":10,"updated":"2022-07-04 12:38:40.000000000","message":"nit: wrap commit message description to 72 chars otherwise in gerrit it breaks to next line","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6bb4090f40f4fb227357d416b070105f3fb76b3d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Prevent clear_job_queue and reset_idrac failures on older iDRACs"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, clear_job_queue and reset_idrac steps are only supported on"},{"line_number":10,"context_line":"idrac-redfish driver on iDRAC9 hardware. However, Ironic still attempts to run"},{"line_number":11,"context_line":"these steps on iDRAC8 BMCs configured with idrac-redfish driver which results"},{"line_number":12,"context_line":"in verification failures. This change attempts to resolve it by catching the related"},{"line_number":13,"context_line":"exception, logging a warning and continuing verification."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"ccab6482_200632a2","line":10,"in_reply_to":"fcb3614e_b9758bae","updated":"2022-07-05 11:27:45.000000000","message":"Done","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"c2db76b08b6fbdb60f9588442782cda6cd2b6873","unresolved":true,"context_lines":[{"line_number":10,"context_line":"idrac-redfish driver on iDRAC9 hardware. However, Ironic still attempts to run"},{"line_number":11,"context_line":"these steps on iDRAC8 BMCs configured with idrac-redfish driver which results"},{"line_number":12,"context_line":"in verification failures. This change attempts to resolve it by catching the related"},{"line_number":13,"context_line":"exception, logging a warning and continuing verification."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Story: 2010091"},{"line_number":16,"context_line":"Task: 45630"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"561ba2d3_540965a5","line":13,"updated":"2022-07-04 12:38:40.000000000","message":"to add: it fails/stops for cleaning","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6bb4090f40f4fb227357d416b070105f3fb76b3d","unresolved":false,"context_lines":[{"line_number":10,"context_line":"idrac-redfish driver on iDRAC9 hardware. However, Ironic still attempts to run"},{"line_number":11,"context_line":"these steps on iDRAC8 BMCs configured with idrac-redfish driver which results"},{"line_number":12,"context_line":"in verification failures. This change attempts to resolve it by catching the related"},{"line_number":13,"context_line":"exception, logging a warning and continuing verification."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Story: 2010091"},{"line_number":16,"context_line":"Task: 45630"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"c4fc826a_cf9c37bf","line":13,"in_reply_to":"561ba2d3_540965a5","updated":"2022-07-05 11:27:45.000000000","message":"Done","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"1cadbdecd1ada5af1442b809482dd634d93501c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d95f54b2_34ac1cbd","updated":"2022-06-21 03:22:21.000000000","message":"I have a general idea on the fix, but having issues trying to access the properties of the exception. Pushing the WIP patch for discussion with the team.","commit_id":"dbcc298aa710da43500022f4145151de41c6d73b"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"8225de330660741ebc4165182fb1e93bd443eab5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"331052ec_c97a5c55","updated":"2022-06-22 09:17:56.000000000","message":"Thank you for your review Dmitry. Some comments addressed, the other still outstanding.\n\nAdding Ajya to reviewers for her insights (with particular focus on the multiple managers question).","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b9db59de_e9c81fd2","updated":"2022-06-22 13:00:30.000000000","message":"Thanks for the patch. Some suggestions inline to rearrange the code, hope it\u0027s clear what I mean. \n\nAnd add release note.\n\nAnd one more question here --\n\n\nShould also handle another verify step `reset_idrac` [1]? It is not supported in iDRAC 8 via Redfish too and will not be covered by the proposed change as it\u0027s under another sub-resource `DelliDRACCardService` [2] and not `DellJobService`.\n\n[1] https://opendev.org/openstack/ironic/src/commit/39a7f58002eac8ad10720c7347f001c8afd24a6f/ironic/drivers/modules/drac/management.py#L631\n[2] https://opendev.org/openstack/sushy-oem-idrac/src/commit/aac2509f7b35b0a922f19165c61e71478616e75c/sushy_oem_idrac/resources/manager/manager.py#L145","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"59848c00_f696e719","in_reply_to":"03966796_861aea2a","updated":"2022-06-27 10:49:13.000000000","message":"thanks, the proposed approach is even simpler and no need to dance around different exception types.\n\nI would add reset iDRAC handling in this same patch as they are tightly related and caused by the same thing (old/unsupported firmware).","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0eec6d05_5a518141","in_reply_to":"59848c00_f696e719","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"03966796_861aea2a","in_reply_to":"b9db59de_e9c81fd2","updated":"2022-06-23 01:57:08.000000000","message":"Thank you for the review Aija. All makes sense. Proposing different approach hopefully achieving the same outcome in a more optimal way.\n\nRegarding iDRAC reset - 100% agreed (been looking into / testing that) just wasn\u0027t sure if it\u0027s desirable to have it in the same change. I am happy to bundle the two together for easier backporting - WDYT?","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"243d982d_cfae825b","updated":"2022-06-23 01:57:08.000000000","message":"Thank you for your reviews. I re-worked the change quite significantly, looking forward to further feedback. I haven\u0027t forgotten I need to add a release note - just haven\u0027t added it yet as I want to set on the approach first so it doesn\u0027t need re-writing if we need further changes.","commit_id":"0f6ca6e2a8f7629f0c9496d40ae1e3c98379bf23"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"e0018ecbe3c4faa8542b3d45a4cc06d2fd4e77e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"daa17b8a_5d5b832d","updated":"2022-06-23 03:20:54.000000000","message":"recheck","commit_id":"0f6ca6e2a8f7629f0c9496d40ae1e3c98379bf23"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"61ff1195bd9d85f11f815f7490f703760da1ba78","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fbc55ded_1b7d3c82","updated":"2022-06-24 12:04:52.000000000","message":"recheck","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1d0ecb0f_db10f643","updated":"2022-07-01 06:11:41.000000000","message":"Thank you for your review Aija. I addressed most comments (wanted to do this first and see if we still pass CI), now will add handling the iDRAC reset scenario within the same patch (it was my original intention to do it separately).","commit_id":"43f0f5e40e7f428cdb498f6eb97e772bf0f4a387"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6bb4090f40f4fb227357d416b070105f3fb76b3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"68eccf5a_1c8970f5","updated":"2022-07-05 11:27:45.000000000","message":"Thank you for your reviews Aija and Dmitry, I incorporated your feedback (with one exception of adding the helper function).","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"c2db76b08b6fbdb60f9588442782cda6cd2b6873","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"4e09e6ac_532e1eec","updated":"2022-07-04 12:38:40.000000000","message":"thanks for the updates, looks good, some comments inline.","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"77cd04284e7c6ed72575e2c00f4c86488e214403","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"11ff5f51_9462e913","updated":"2022-07-05 12:33:12.000000000","message":"thanks","commit_id":"1dda97c783653aef638113cb1faa250836ed99e1"}],"ironic/drivers/modules/drac/management.py":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[{"line_number":629,"context_line":"                task, \u0027clear job queue\u0027,"},{"line_number":630,"context_line":"                lambda m: m.job_service.delete_jobs(job_ids\u003d[\u0027JID_CLEARALL\u0027]))"},{"line_number":631,"context_line":"        except exception.RedfishError as exc:"},{"line_number":632,"context_line":"            if (task.node.provision_state \u003d\u003d states.VERIFYING"},{"line_number":633,"context_line":"                and \"Oem/Dell/DellJobService is missing\" in str(exc)):"},{"line_number":634,"context_line":"                # NOTE(janders) should we explicitly hint upgrading firmware"},{"line_number":635,"context_line":"                # in the log message? It won\u0027t apply to iDRAC8 (they don\u0027t"}],"source_content_type":"text/x-python","patch_set":5,"id":"d6985a93_ee044d71","line":632,"range":{"start_line":632,"start_character":45,"end_line":632,"end_character":61},"updated":"2022-06-27 10:49:13.000000000","message":"maybe not restrict this to verifying only? The to be logged error message could be useful for cleaning as well, although in that case could still fail the cleaning step so users readily are aware that it actually didn\u0027t clean anything.","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[{"line_number":629,"context_line":"                task, \u0027clear job queue\u0027,"},{"line_number":630,"context_line":"                lambda m: m.job_service.delete_jobs(job_ids\u003d[\u0027JID_CLEARALL\u0027]))"},{"line_number":631,"context_line":"        except exception.RedfishError as exc:"},{"line_number":632,"context_line":"            if (task.node.provision_state \u003d\u003d states.VERIFYING"},{"line_number":633,"context_line":"                and \"Oem/Dell/DellJobService is missing\" in str(exc)):"},{"line_number":634,"context_line":"                # NOTE(janders) should we explicitly hint upgrading firmware"},{"line_number":635,"context_line":"                # in the log message? It won\u0027t apply to iDRAC8 (they don\u0027t"}],"source_content_type":"text/x-python","patch_set":5,"id":"8b5563a5_00b75950","line":632,"range":{"start_line":632,"start_character":45,"end_line":632,"end_character":61},"in_reply_to":"d6985a93_ee044d71","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[{"line_number":631,"context_line":"        except exception.RedfishError as exc:"},{"line_number":632,"context_line":"            if (task.node.provision_state \u003d\u003d states.VERIFYING"},{"line_number":633,"context_line":"                and \"Oem/Dell/DellJobService is missing\" in str(exc)):"},{"line_number":634,"context_line":"                # NOTE(janders) should we explicitly hint upgrading firmware"},{"line_number":635,"context_line":"                # in the log message? It won\u0027t apply to iDRAC8 (they don\u0027t"},{"line_number":636,"context_line":"                # support this feature on idrac-redfish, only idrac-wsman)"},{"line_number":637,"context_line":"                # but is a common problem on iDRAC9 with out of date firmware."}],"source_content_type":"text/x-python","patch_set":5,"id":"8cede49e_b4a9b405","line":634,"range":{"start_line":634,"start_character":32,"end_line":634,"end_character":76},"updated":"2022-06-27 10:49:13.000000000","message":"yes, it will be useful for users who don\u0027t actively follow iDRAC versions and wsman/redfish differences. Could append to the message (rephrase as it fits): \"If using iDRAC9, consider upgrading firmware. If using iDRAC8, consider switching to idrac-wsman for management interface if possible.\"","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[{"line_number":631,"context_line":"        except exception.RedfishError as exc:"},{"line_number":632,"context_line":"            if (task.node.provision_state \u003d\u003d states.VERIFYING"},{"line_number":633,"context_line":"                and \"Oem/Dell/DellJobService is missing\" in str(exc)):"},{"line_number":634,"context_line":"                # NOTE(janders) should we explicitly hint upgrading firmware"},{"line_number":635,"context_line":"                # in the log message? It won\u0027t apply to iDRAC8 (they don\u0027t"},{"line_number":636,"context_line":"                # support this feature on idrac-redfish, only idrac-wsman)"},{"line_number":637,"context_line":"                # but is a common problem on iDRAC9 with out of date firmware."}],"source_content_type":"text/x-python","patch_set":5,"id":"4d6d675d_8c994243","line":634,"range":{"start_line":634,"start_character":32,"end_line":634,"end_character":76},"in_reply_to":"8cede49e_b4a9b405","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"38e00a173a8f02b82a5f6ae9f2d11de6a58bb18f","unresolved":false,"context_lines":[{"line_number":638,"context_line":"                            \u0027idrac-wsman for management interface if \u0027"},{"line_number":639,"context_line":"                            \u0027possible.\u0027,"},{"line_number":640,"context_line":"                            {\u0027node\u0027: task.node.uuid})"},{"line_number":641,"context_line":"            if task.node.provision_state !\u003d states.VERIFYING:"},{"line_number":642,"context_line":"                raise"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    @METRICS.timer(\u0027DracRedfishManagement.reset_idrac\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"0dbd7d78_68b68662","line":641,"updated":"2022-07-04 12:15:30.000000000","message":"This seems misplaced, did you want to add it to line 632? Otherwise \"skipping\" is misleading in the message.","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6bb4090f40f4fb227357d416b070105f3fb76b3d","unresolved":false,"context_lines":[{"line_number":638,"context_line":"                            \u0027idrac-wsman for management interface if \u0027"},{"line_number":639,"context_line":"                            \u0027possible.\u0027,"},{"line_number":640,"context_line":"                            {\u0027node\u0027: task.node.uuid})"},{"line_number":641,"context_line":"            if task.node.provision_state !\u003d states.VERIFYING:"},{"line_number":642,"context_line":"                raise"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    @METRICS.timer(\u0027DracRedfishManagement.reset_idrac\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"c874389e_003868be","line":641,"in_reply_to":"0dbd7d78_68b68662","updated":"2022-07-05 11:27:45.000000000","message":"Thank you Dmitry. I adjusted the log message (I had this conditional in 632 before but was asked to move it here in order to be able to reuse this log message for both verification and cleaning).","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"c2db76b08b6fbdb60f9588442782cda6cd2b6873","unresolved":true,"context_lines":[{"line_number":659,"context_line":"                     {\u0027node\u0027: task.node.uuid})"},{"line_number":660,"context_line":"        except exception.RedfishError as exc:"},{"line_number":661,"context_line":"            if \"Oem/Dell/DelliDRACCardService is missing\" in str(exc):"},{"line_number":662,"context_line":"                LOG.warning(\u0027iDRAC on node %(node)s does not support \u0027"},{"line_number":663,"context_line":"                            \u0027iDRAC reset using the idrac-redfish driver, \u0027"},{"line_number":664,"context_line":"                            \u0027skipping. \u0027"},{"line_number":665,"context_line":"                            \u0027If using iDRAC9, consider upgrading firmware. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"f2a2443b_a897f75b","line":662,"updated":"2022-07-04 12:38:40.000000000","message":"not sure if it\u0027s worth eliminating duplication for these 2 methods on not. Could create a little helper method to process this exception.","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"aee5820fb1b7b9d02d68280d9409c8316e6996ba","unresolved":true,"context_lines":[{"line_number":659,"context_line":"                     {\u0027node\u0027: task.node.uuid})"},{"line_number":660,"context_line":"        except exception.RedfishError as exc:"},{"line_number":661,"context_line":"            if \"Oem/Dell/DelliDRACCardService is missing\" in str(exc):"},{"line_number":662,"context_line":"                LOG.warning(\u0027iDRAC on node %(node)s does not support \u0027"},{"line_number":663,"context_line":"                            \u0027iDRAC reset using the idrac-redfish driver, \u0027"},{"line_number":664,"context_line":"                            \u0027skipping. \u0027"},{"line_number":665,"context_line":"                            \u0027If using iDRAC9, consider upgrading firmware. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"b13797a1_81212a21","line":662,"in_reply_to":"45c6ba8b_7c1c5267","updated":"2022-07-05 12:18:28.000000000","message":"up to you, existing unit tests should cover this change. The only significant effort would be waiting on CI results that could fail randomly.","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6bb4090f40f4fb227357d416b070105f3fb76b3d","unresolved":true,"context_lines":[{"line_number":659,"context_line":"                     {\u0027node\u0027: task.node.uuid})"},{"line_number":660,"context_line":"        except exception.RedfishError as exc:"},{"line_number":661,"context_line":"            if \"Oem/Dell/DelliDRACCardService is missing\" in str(exc):"},{"line_number":662,"context_line":"                LOG.warning(\u0027iDRAC on node %(node)s does not support \u0027"},{"line_number":663,"context_line":"                            \u0027iDRAC reset using the idrac-redfish driver, \u0027"},{"line_number":664,"context_line":"                            \u0027skipping. \u0027"},{"line_number":665,"context_line":"                            \u0027If using iDRAC9, consider upgrading firmware. \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"45c6ba8b_7c1c5267","line":662,"in_reply_to":"f2a2443b_a897f75b","updated":"2022-07-05 11:27:45.000000000","message":"If it\u0027s okay, I would leave this optimisation for later - we have several users asking for this fix to be released ASAP so I would be leaning to avoid refactoring and re-testing if possible.","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"aee5820fb1b7b9d02d68280d9409c8316e6996ba","unresolved":true,"context_lines":[{"line_number":661,"context_line":"            if \"Oem/Dell/DelliDRACCardService is missing\" in str(exc):"},{"line_number":662,"context_line":"                LOG.warning(\u0027iDRAC on node %(node)s does not support \u0027"},{"line_number":663,"context_line":"                            \u0027iDRAC reset using the idrac-redfish driver, \u0027"},{"line_number":664,"context_line":"                            \u0027skipping. \u0027"},{"line_number":665,"context_line":"                            \u0027If using iDRAC9, consider upgrading firmware. \u0027"},{"line_number":666,"context_line":"                            \u0027If using iDRAC8, consider switching to \u0027"},{"line_number":667,"context_line":"                            \u0027idrac-wsman for management interface if \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"4c8296fb_e1d03df5","line":664,"range":{"start_line":664,"start_character":29,"end_line":664,"end_character":39},"updated":"2022-07-05 12:18:28.000000000","message":"Same thing applies here too [1].\nAnd this shows why have helper method - duplicating code means necessity to fix in several places and not miss them.\n\n[1] https://review.opendev.org/c/openstack/ironic/+/846859/12..13/ironic/drivers/modules/drac/management.py#b641","commit_id":"e29fd767338c4e90bee4acb9509247976434c78a"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c89c9b51cecd469c0b2529aa27dd45dc72b6ee57","unresolved":false,"context_lines":[{"line_number":661,"context_line":"            if \"Oem/Dell/DelliDRACCardService is missing\" in str(exc):"},{"line_number":662,"context_line":"                LOG.warning(\u0027iDRAC on node %(node)s does not support \u0027"},{"line_number":663,"context_line":"                            \u0027iDRAC reset using the idrac-redfish driver, \u0027"},{"line_number":664,"context_line":"                            \u0027skipping. \u0027"},{"line_number":665,"context_line":"                            \u0027If using iDRAC9, consider upgrading firmware. \u0027"},{"line_number":666,"context_line":"                            \u0027If using iDRAC8, consider switching to \u0027"},{"line_number":667,"context_line":"                            \u0027idrac-wsman for management interface if \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"78d72eb2_35eb4948","line":664,"range":{"start_line":664,"start_character":29,"end_line":664,"end_character":39},"in_reply_to":"4c8296fb_e1d03df5","updated":"2022-07-05 12:28:41.000000000","message":"Haha, good pickup, you got me 😊","commit_id":"e29fd767338c4e90bee4acb9509247976434c78a"}],"ironic/drivers/modules/drac/utils.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"613fb276cf0e7575da675bfb0b1709aa2254d64c","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    :param lambda_oem_func: method to execute as lambda function with"},{"line_number":39,"context_line":"        input parameter OEM extension manager."},{"line_number":40,"context_line":"        Example: lambda m: m.reset_idrac()"},{"line_number":41,"context_line":"    :returns: Returned value of lambda_oem_func"},{"line_number":42,"context_line":"    :raises: RedfishError if can\u0027t execute OEM function either because"},{"line_number":43,"context_line":"        there are no managers to the system, failed to load OEM"},{"line_number":44,"context_line":"        extension or execution of the OEM method failed itself."}],"source_content_type":"text/x-python","patch_set":2,"id":"e4b1df73_6a884af8","line":41,"updated":"2022-06-22 08:18:35.000000000","message":"I don\u0027t think the callers expect this function to return None.","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    :param lambda_oem_func: method to execute as lambda function with"},{"line_number":39,"context_line":"        input parameter OEM extension manager."},{"line_number":40,"context_line":"        Example: lambda m: m.reset_idrac()"},{"line_number":41,"context_line":"    :returns: Returned value of lambda_oem_func"},{"line_number":42,"context_line":"    :raises: RedfishError if can\u0027t execute OEM function either because"},{"line_number":43,"context_line":"        there are no managers to the system, failed to load OEM"},{"line_number":44,"context_line":"        extension or execution of the OEM method failed itself."}],"source_content_type":"text/x-python","patch_set":2,"id":"4717769f_dbe35a1d","line":41,"in_reply_to":"341f1a03_6922bb59","updated":"2022-06-23 01:57:08.000000000","message":"I think moving this back to drac management interface / into the step itself will take care of this too.","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    :param lambda_oem_func: method to execute as lambda function with"},{"line_number":39,"context_line":"        input parameter OEM extension manager."},{"line_number":40,"context_line":"        Example: lambda m: m.reset_idrac()"},{"line_number":41,"context_line":"    :returns: Returned value of lambda_oem_func"},{"line_number":42,"context_line":"    :raises: RedfishError if can\u0027t execute OEM function either because"},{"line_number":43,"context_line":"        there are no managers to the system, failed to load OEM"},{"line_number":44,"context_line":"        extension or execution of the OEM method failed itself."}],"source_content_type":"text/x-python","patch_set":2,"id":"341f1a03_6922bb59","line":41,"in_reply_to":"e4b1df73_6a884af8","updated":"2022-06-22 13:00:30.000000000","message":"true, either this comment needs update, or the code at line 105. I vote for the code change - so that this function keeps returning whatever lambda returns or raises exception in case of errors.","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e1c6f23bf4bc00cfa30e77599e4712e7f252e01","unresolved":true,"context_lines":[{"line_number":87,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService is missing\" in e.message:"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f20bfcf_acece405","line":90,"updated":"2022-06-22 08:17:35.000000000","message":"I think you can avoid \"is missing\", it\u0027s already a MissingAttributeError, just check the attribute.\n\nAlso s/e.message/str(e)/","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"8225de330660741ebc4165182fb1e93bd443eab5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService is missing\" in e.message:"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""}],"source_content_type":"text/x-python","patch_set":2,"id":"924106d1_5435bd87","line":90,"in_reply_to":"7f20bfcf_acece405","updated":"2022-06-22 09:17:56.000000000","message":"Done","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e1c6f23bf4bc00cfa30e77599e4712e7f252e01","unresolved":true,"context_lines":[{"line_number":102,"context_line":"                           system.identity,"},{"line_number":103,"context_line":"                           \u0027node\u0027: task.node.uuid,"},{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"b75895b2_994cd270","line":105,"updated":"2022-06-22 08:17:35.000000000","message":"You don\u0027t need to update oem_error_msgs if you just return","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"8225de330660741ebc4165182fb1e93bd443eab5","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                           system.identity,"},{"line_number":103,"context_line":"                           \u0027node\u0027: task.node.uuid,"},{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"bd1abe9e_9b8cdc4f","line":105,"in_reply_to":"b75895b2_994cd270","updated":"2022-06-22 09:17:56.000000000","message":"Done","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4e1c6f23bf4bc00cfa30e77599e4712e7f252e01","unresolved":true,"context_lines":[{"line_number":103,"context_line":"                           \u0027node\u0027: task.node.uuid,"},{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"47c532c1_89b8e475","line":106,"updated":"2022-06-22 08:17:35.000000000","message":"I wonder if it\u0027s possible that only one manager does not have the attribute.. Need Dell folks to review","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":103,"context_line":"                           \u0027node\u0027: task.node.uuid,"},{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"f9c58a66_d08aff76","line":106,"in_reply_to":"47c532c1_89b8e475","updated":"2022-06-22 13:00:30.000000000","message":"theoretically yes, practically so far there is only 1 manager, but the code is written to accommodate existing Redfish schema and possible future implementation with more than 1 manager. Should handle possibility for more than one manager here as well, although it complicates the flow.","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":false,"context_lines":[{"line_number":103,"context_line":"                           \u0027node\u0027: task.node.uuid,"},{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"42dce2bb_a9b21b9d","line":106,"in_reply_to":"f9c58a66_d08aff76","updated":"2022-06-23 01:57:08.000000000","message":"Thank you Dmitry and Aija. I hope I removed this issue by moving handling of the missing attribute back to the verify step itself (Iury\u0027s suggestion - thanks Iury!). Let me know your thoughts.","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"8225de330660741ebc4165182fb1e93bd443eab5","unresolved":true,"context_lines":[{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"},{"line_number":110,"context_line":"            error_msg \u003d (_(\"Manager %(manager)s: %(error)s\" %"},{"line_number":111,"context_line":"                         {\u0027manager\u0027: manager.uuid if manager.uuid else"}],"source_content_type":"text/x-python","patch_set":2,"id":"73745bf2_8556ea9e","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":21},"updated":"2022-06-22 09:17:56.000000000","message":"Is it better to have this here, or is it better to have the \"else\" clause in https://review.opendev.org/c/openstack/ironic/+/846859/2/ironic/drivers/modules/drac/utils.py#132 handle such cases and raise a generic RedfishError?","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"},{"line_number":110,"context_line":"            error_msg \u003d (_(\"Manager %(manager)s: %(error)s\" %"},{"line_number":111,"context_line":"                         {\u0027manager\u0027: manager.uuid if manager.uuid else"}],"source_content_type":"text/x-python","patch_set":2,"id":"ed18b645_c4ca7a55","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":21},"in_reply_to":"73745bf2_8556ea9e","updated":"2022-06-22 13:00:30.000000000","message":"as in the comment ln 90, I\u0027m suggesting to only here save, e.g., `last_error \u003d e` and then in `else` decide whether to raise RedfishError as it is now or re-raise this MissingAttributeError that is handled in functions affected, in this case, it would be [1].\n\n[1] https://opendev.org/openstack/ironic/src/branch/master/ironic/drivers/modules/drac/management.py#L626-L628","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"},{"line_number":110,"context_line":"            error_msg \u003d (_(\"Manager %(manager)s: %(error)s\" %"},{"line_number":111,"context_line":"                         {\u0027manager\u0027: manager.uuid if manager.uuid else"}],"source_content_type":"text/x-python","patch_set":2,"id":"705a5446_beae03c0","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":21},"in_reply_to":"e34c7e78_ab3ff15b","updated":"2022-06-27 10:49:13.000000000","message":"This has turned into N/A with current proposal, and it\u0027s OK as it is.","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":true,"context_lines":[{"line_number":104,"context_line":"                           \u0027error\u0027: error_msg})"},{"line_number":105,"context_line":"                oem_error_msgs.append(error_msg)"},{"line_number":106,"context_line":"                return"},{"line_number":107,"context_line":"            else:"},{"line_number":108,"context_line":"                raise"},{"line_number":109,"context_line":"        except sushy.exceptions.SushyError as e:"},{"line_number":110,"context_line":"            error_msg \u003d (_(\"Manager %(manager)s: %(error)s\" %"},{"line_number":111,"context_line":"                         {\u0027manager\u0027: manager.uuid if manager.uuid else"}],"source_content_type":"text/x-python","patch_set":2,"id":"e34c7e78_ab3ff15b","line":108,"range":{"start_line":107,"start_character":0,"end_line":108,"end_character":21},"in_reply_to":"ed18b645_c4ca7a55","updated":"2022-06-23 01:57:08.000000000","message":"Thanks for that one - it may be a good improvement on top of resolving the main issue. Without setting a reasonable last_error, when we err out in verify steps, a missing attribute error lands in last error and that ain\u0027t good. But I would look at this at the end (or even in a separate change).","commit_id":"465596ad2d231a3ff7088cf3c73e51c9d7fc45ee"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":87,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService\" in str(e):"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""}],"source_content_type":"text/x-python","patch_set":3,"id":"ec435235_40260973","line":90,"range":{"start_line":90,"start_character":16,"end_line":90,"end_character":39},"updated":"2022-06-22 13:00:30.000000000","message":"as this attribute is specific to clear_job_queue and the list can grow for other functions if they need the same, suggest to move this closer to the functions where this is used, in this case at [1].\n\nHere leave `except`ing the MissingAttributeError and saving it for later use at `else` block.\n\n[1] https://opendev.org/openstack/ironic/src/commit/39a7f58002eac8ad10720c7347f001c8afd24a6f/ironic/drivers/modules/drac/management.py#L626-L628","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"797a84df9b928d023191ff67de88a1d482912b85","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService\" in str(e):"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""}],"source_content_type":"text/x-python","patch_set":3,"id":"53229c0f_45c56d62","line":90,"range":{"start_line":90,"start_character":16,"end_line":90,"end_character":39},"in_reply_to":"8e84dd8b_bfff0b4e","updated":"2022-06-23 01:57:44.000000000","message":"Done","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":true,"context_lines":[{"line_number":87,"context_line":"                      \u0027node\u0027: task.node.uuid})"},{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService\" in str(e):"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""}],"source_content_type":"text/x-python","patch_set":3,"id":"8e84dd8b_bfff0b4e","line":90,"range":{"start_line":90,"start_character":16,"end_line":90,"end_character":39},"in_reply_to":"ec435235_40260973","updated":"2022-06-23 01:57:08.000000000","message":"Thank you Aija, the new revision kind of follows this thinking (moving it into the verify step itself).","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"b04706e8c189d5546e94e97ad9a275a0493322e8","unresolved":true,"context_lines":[{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService\" in str(e):"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""},{"line_number":94,"context_line":"                               \"are  up to date. \" %"},{"line_number":95,"context_line":"                               {\u0027manager\u0027:"},{"line_number":96,"context_line":"                                manager.uuid if manager.uuid else"},{"line_number":97,"context_line":"                                manager.identity, \u0027error\u0027: e}))"}],"source_content_type":"text/x-python","patch_set":3,"id":"78b91285_98e14f99","line":94,"range":{"start_line":91,"start_character":32,"end_line":94,"end_character":47},"updated":"2022-06-22 13:00:30.000000000","message":"add that other option is to switch to idrac-wsman for iDRAC8 users as it\u0027s unlikely that upgrade will ever work for them. While idrac-wsman is not option in your case, there still might be some Ironic users who has that flexibility or they have configured idrac-redfish for 13G by accident.","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"c253ff408f870bee65c24a6e89c7580fea931a1d","unresolved":true,"context_lines":[{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService\" in str(e):"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""},{"line_number":94,"context_line":"                               \"are  up to date. \" %"},{"line_number":95,"context_line":"                               {\u0027manager\u0027:"},{"line_number":96,"context_line":"                                manager.uuid if manager.uuid else"},{"line_number":97,"context_line":"                                manager.identity, \u0027error\u0027: e}))"}],"source_content_type":"text/x-python","patch_set":3,"id":"aade7369_773e30be","line":94,"range":{"start_line":91,"start_character":32,"end_line":94,"end_character":47},"in_reply_to":"78b91285_98e14f99","updated":"2022-06-23 01:57:08.000000000","message":"I made there error generic in the new revision and left a note - let\u0027s have further discussion if we leave it generic or try to hint solutions. There are two distinct ones (using drac-wsman on iDRAC8 - or updating firmware on iDRAC9) so no golden bullet unless we add some more logic to determine the case and advise the user accordingly which I am not convinced if it\u0027s a good idea.","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"            return result"},{"line_number":89,"context_line":"        except sushy.exceptions.MissingAttributeError as e:"},{"line_number":90,"context_line":"            if \"Oem/Dell/DellJobService\" in str(e):"},{"line_number":91,"context_line":"                error_msg \u003d (_(\"MissingAttributeError for Manager %(manager)s:\""},{"line_number":92,"context_line":"                               \" %(error)s. This may be caused by oudated \""},{"line_number":93,"context_line":"                               \"firmware - please ensure BIOS and iDRAC \""},{"line_number":94,"context_line":"                               \"are  up to date. \" %"},{"line_number":95,"context_line":"                               {\u0027manager\u0027:"},{"line_number":96,"context_line":"                                manager.uuid if manager.uuid else"},{"line_number":97,"context_line":"                                manager.identity, \u0027error\u0027: e}))"}],"source_content_type":"text/x-python","patch_set":3,"id":"08e1c41b_cc6ac948","line":94,"range":{"start_line":91,"start_character":32,"end_line":94,"end_character":47},"in_reply_to":"aade7369_773e30be","updated":"2022-06-27 10:49:13.000000000","message":"left the comment for error message where it\u0027s raised.\n\nIt is possible to determine firmware_version and adjust the log message, but I think it should be sufficient to have generic one that includes possible solutions for both iDRAC 8 and iDRAC9, assuming that users are aware on which iDRAC they are or know how to find it out. If this will turn out to be confusing for users, can adjust log message after getting feedback. I find it useful that error message contains hints about resolving the issue.","commit_id":"2971c16db05759765121f5eb7b09a61445c7f8b5"}],"releasenotes/notes/skip-clear-job-queue-idrac-reset-if-attr-missing-b2a2b609c906c6c4.yaml":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"c2db76b08b6fbdb60f9588442782cda6cd2b6873","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Resolved clear_job_queue and reset_idrac verify step failures which occur"},{"line_number":5,"context_line":"    when the functionality is not supported by the iDRAC. When this condition"},{"line_number":6,"context_line":"    is detected, the code in the step handles the exception and logs a warning"},{"line_number":7,"context_line":"    but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"6d67997c_905acae8","line":7,"updated":"2022-07-04 12:38:40.000000000","message":"to add: fails for clean steps","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"6bb4090f40f4fb227357d416b070105f3fb76b3d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Resolved clear_job_queue and reset_idrac verify step failures which occur"},{"line_number":5,"context_line":"    when the functionality is not supported by the iDRAC. When this condition"},{"line_number":6,"context_line":"    is detected, the code in the step handles the exception and logs a warning"},{"line_number":7,"context_line":"    but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"d2b6df0f_21863a8a","line":7,"in_reply_to":"6d67997c_905acae8","updated":"2022-07-05 11:27:45.000000000","message":"Done","commit_id":"9a90fa1641c3764a104845ac211c21c4240d2be0"}],"releasenotes/notes/skip-clear-job-queue-if-delljobservice-attr-missing-b2a2b609c906c6c4.yaml":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Resolved clear_job_queue verify step failures which happen when"},{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"81ebb231_8de39685","line":5,"range":{"start_line":4,"start_character":50,"end_line":5,"end_character":37},"updated":"2022-06-27 10:49:13.000000000","message":"In release note I wouldn\u0027t go into technical details about attributes and their names as users might not be exposed to this level of implementation. I would replace this with something like \"when it\u0027s not supported in older iDRAC firmware\" and rearrange the remaining release note to not repeat - I also don\u0027t know what could be other reasons why this attribute is missing other than old firmware.","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Resolved clear_job_queue verify step failures which happen when"},{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a7067dd_4948755b","line":5,"range":{"start_line":4,"start_character":50,"end_line":5,"end_character":37},"in_reply_to":"81ebb231_8de39685","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Resolved clear_job_queue verify step failures which happen when"},{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"},{"line_number":9,"context_line":"    warning but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"e9f4df48_0ee25803","line":6,"range":{"start_line":6,"start_character":53,"end_line":6,"end_character":54},"updated":"2022-06-27 10:49:13.000000000","message":"closing ) missing","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Resolved clear_job_queue verify step failures which happen when"},{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"},{"line_number":9,"context_line":"    warning but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"24b55167_91df07eb","line":6,"range":{"start_line":6,"start_character":46,"end_line":6,"end_character":53},"updated":"2022-06-27 10:49:13.000000000","message":"nit: interface, driver/hardware type is \u0027idrac\u0027.","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Resolved clear_job_queue verify step failures which happen when"},{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"},{"line_number":9,"context_line":"    warning but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"b74bc013_80166364","line":6,"range":{"start_line":6,"start_character":46,"end_line":6,"end_character":53},"in_reply_to":"24b55167_91df07eb","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Resolved clear_job_queue verify step failures which happen when"},{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"},{"line_number":9,"context_line":"    warning but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"37e79f7f_56531050","line":6,"range":{"start_line":6,"start_character":53,"end_line":6,"end_character":54},"in_reply_to":"e9f4df48_0ee25803","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"9daff77d987c659edcc21d41c5acaff76d5408b5","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"},{"line_number":9,"context_line":"    warning but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"f4b93dd5_4aba281c","line":8,"range":{"start_line":8,"start_character":17,"end_line":8,"end_character":24},"updated":"2022-06-27 10:49:13.000000000","message":"detected","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"7f247e0f36f3fad64a57e055e75adf3560ab61cb","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    Oem/Dell/DellJobService attribute is absent from the iDRAC and"},{"line_number":6,"context_line":"    the node is configured with idrac-redfish driver (for example, this may be"},{"line_number":7,"context_line":"    the case on iDRAC8 systems or iDRAC9 with outdated firmware. When this"},{"line_number":8,"context_line":"    condition is deteted, verify step code handles the exception and logs a"},{"line_number":9,"context_line":"    warning but completes successfully."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"ec25c56b_7302bcf6","line":8,"range":{"start_line":8,"start_character":17,"end_line":8,"end_character":24},"in_reply_to":"f4b93dd5_4aba281c","updated":"2022-07-01 06:11:41.000000000","message":"Done","commit_id":"e4273a40325532ed549da947fe3ecba9e14ff46f"}]}
