)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"2172b11437062d3a404e56ed500ceb01b9c58173","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4e84396f_3d18f1fb","updated":"2025-12-17 12:18:53.000000000","message":"recheck","commit_id":"0eb1ef7411c258ca73540721fb997ed1abba932c"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"1699a702fafff3bd180ecf3b1638f016436bc29a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6a467d61_d9fae6bd","updated":"2026-01-30 19:32:04.000000000","message":"comments addressed. PTAL.","commit_id":"14c5d551c4d3b03407baff66ba152254142eeb3f"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a80073c0cb06d5f0410cb10ffb43643359571a4c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bbaf857d_08fa9181","updated":"2026-02-04 05:28:51.000000000","message":"I won\u0027t -1 it but I think there\u0027s a couple of things that should be fixed given this patch is a fix to some existing issues.","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"904c39a9442acbb0cd805d5a5932a588f48956d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a714231c_e9e3ec75","in_reply_to":"bbaf857d_08fa9181","updated":"2026-02-05 12:51:38.000000000","message":"Fixed.","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"374962f206b6bacbadbea1c5be97c961d916fa21","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"03fdfc4d_72e1bb91","updated":"2026-02-08 01:33:37.000000000","message":"Recheck metal3 deps setuptools","commit_id":"4aa834e8d34aebbf17806666cdc70e57219a9f9c"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"904c39a9442acbb0cd805d5a5932a588f48956d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"384b9b2c_f7282475","updated":"2026-02-05 12:51:38.000000000","message":"comments addressed.  PTAL.","commit_id":"4aa834e8d34aebbf17806666cdc70e57219a9f9c"}],"ironic/networking/manager.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"86e8c4bea6c16f2820c9873650cc2d986b2d27c6","unresolved":true,"context_lines":[{"line_number":601,"context_line":"        for driver_name in driver_names:"},{"line_number":602,"context_line":"            try:"},{"line_number":603,"context_line":"                driver \u003d self._switch_driver_factory.get_driver(driver_name)"},{"line_number":604,"context_line":"            except Exception as e:"},{"line_number":605,"context_line":"                LOG.exception("},{"line_number":606,"context_line":"                    \"Error accessing driver %(driver)s: %(error)s\","},{"line_number":607,"context_line":"                    {\"driver\": driver_name, \"error\": e}"}],"source_content_type":"text/x-python","patch_set":4,"id":"0010a917_5f97c083","line":604,"range":{"start_line":604,"start_character":19,"end_line":604,"end_character":28},"updated":"2026-01-29 18:53:04.000000000","message":"Do we have any insight what the exception which is being raised up by get_driver?\n\nWe should likely be specific, fwiw.","commit_id":"6c524c65bdf626936c5eb00aa46b3dc6ba39a723"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"22b26965e8e89ce8cdcd70f3f5dc1f1e2f3bebb2","unresolved":true,"context_lines":[{"line_number":601,"context_line":"        for driver_name in driver_names:"},{"line_number":602,"context_line":"            try:"},{"line_number":603,"context_line":"                driver \u003d self._switch_driver_factory.get_driver(driver_name)"},{"line_number":604,"context_line":"            except Exception as e:"},{"line_number":605,"context_line":"                LOG.exception("},{"line_number":606,"context_line":"                    \"Error accessing driver %(driver)s: %(error)s\","},{"line_number":607,"context_line":"                    {\"driver\": driver_name, \"error\": e}"}],"source_content_type":"text/x-python","patch_set":4,"id":"3392bcb9_354908e4","line":604,"range":{"start_line":604,"start_character":19,"end_line":604,"end_character":28},"in_reply_to":"0010a917_5f97c083","updated":"2026-01-29 20:30:54.000000000","message":"Yes, this one should only be a couple of options.  I will revise this.","commit_id":"6c524c65bdf626936c5eb00aa46b3dc6ba39a723"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"1699a702fafff3bd180ecf3b1638f016436bc29a","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        for driver_name in driver_names:"},{"line_number":602,"context_line":"            try:"},{"line_number":603,"context_line":"                driver \u003d self._switch_driver_factory.get_driver(driver_name)"},{"line_number":604,"context_line":"            except Exception as e:"},{"line_number":605,"context_line":"                LOG.exception("},{"line_number":606,"context_line":"                    \"Error accessing driver %(driver)s: %(error)s\","},{"line_number":607,"context_line":"                    {\"driver\": driver_name, \"error\": e}"}],"source_content_type":"text/x-python","patch_set":4,"id":"eb15d0d1_340bffee","line":604,"range":{"start_line":604,"start_character":19,"end_line":604,"end_character":28},"in_reply_to":"3392bcb9_354908e4","updated":"2026-01-30 19:32:04.000000000","message":"Done","commit_id":"6c524c65bdf626936c5eb00aa46b3dc6ba39a723"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"86e8c4bea6c16f2820c9873650cc2d986b2d27c6","unresolved":true,"context_lines":[{"line_number":618,"context_line":"                    switch_info \u003d driver.get_switch_info(switch_id)"},{"line_number":619,"context_line":"                    if switch_info:"},{"line_number":620,"context_line":"                        switches[switch_id] \u003d switch_info"},{"line_number":621,"context_line":"            except Exception as e:"},{"line_number":622,"context_line":"                LOG.exception("},{"line_number":623,"context_line":"                    \"Failed to get switch information from driver \""},{"line_number":624,"context_line":"                    \"%(driver)s: %(error)s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"5eec7564_ed69c974","line":621,"range":{"start_line":621,"start_character":19,"end_line":621,"end_character":28},"updated":"2026-01-29 18:53:04.000000000","message":"Same comment as above, likely should be a bit more specific.","commit_id":"6c524c65bdf626936c5eb00aa46b3dc6ba39a723"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"22b26965e8e89ce8cdcd70f3f5dc1f1e2f3bebb2","unresolved":true,"context_lines":[{"line_number":618,"context_line":"                    switch_info \u003d driver.get_switch_info(switch_id)"},{"line_number":619,"context_line":"                    if switch_info:"},{"line_number":620,"context_line":"                        switches[switch_id] \u003d switch_info"},{"line_number":621,"context_line":"            except Exception as e:"},{"line_number":622,"context_line":"                LOG.exception("},{"line_number":623,"context_line":"                    \"Failed to get switch information from driver \""},{"line_number":624,"context_line":"                    \"%(driver)s: %(error)s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"72962f58_e18e45d6","line":621,"range":{"start_line":621,"start_character":19,"end_line":621,"end_character":28},"in_reply_to":"5eec7564_ed69c974","updated":"2026-01-29 20:30:54.000000000","message":"In this one though, since we are invoking a driver method... then yes it \"should\" be one of SwitchBaseException, but if a driver doesn\u0027t follow the rules an throws some other exception then we should be prepared to catch the generic Exception.","commit_id":"6c524c65bdf626936c5eb00aa46b3dc6ba39a723"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"1699a702fafff3bd180ecf3b1638f016436bc29a","unresolved":false,"context_lines":[{"line_number":618,"context_line":"                    switch_info \u003d driver.get_switch_info(switch_id)"},{"line_number":619,"context_line":"                    if switch_info:"},{"line_number":620,"context_line":"                        switches[switch_id] \u003d switch_info"},{"line_number":621,"context_line":"            except Exception as e:"},{"line_number":622,"context_line":"                LOG.exception("},{"line_number":623,"context_line":"                    \"Failed to get switch information from driver \""},{"line_number":624,"context_line":"                    \"%(driver)s: %(error)s\","}],"source_content_type":"text/x-python","patch_set":4,"id":"cc4d4f95_2a763d9f","line":621,"range":{"start_line":621,"start_character":19,"end_line":621,"end_character":28},"in_reply_to":"72962f58_e18e45d6","updated":"2026-01-30 19:32:04.000000000","message":"fixed.","commit_id":"6c524c65bdf626936c5eb00aa46b3dc6ba39a723"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a80073c0cb06d5f0410cb10ffb43643359571a4c","unresolved":true,"context_lines":[{"line_number":411,"context_line":"            LOG.exception("},{"line_number":412,"context_line":"                \"Failed to configure port %(port)s on switch \""},{"line_number":413,"context_line":"                \"%(switch)s: %(error)s\","},{"line_number":414,"context_line":"                {\"port\": port_name, \"switch\": switch_id, \"error\": e},"},{"line_number":415,"context_line":"            )"},{"line_number":416,"context_line":"            raise exception.NetworkError("},{"line_number":417,"context_line":"                _(\"Failed to configure network port: %s\") % e"}],"source_content_type":"text/x-python","patch_set":6,"id":"567f7c59_804dcd05","line":414,"updated":"2026-02-04 05:28:51.000000000","message":"LOG.exception() is going to print the exception for you. Why print it twice?","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"904c39a9442acbb0cd805d5a5932a588f48956d2","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            LOG.exception("},{"line_number":412,"context_line":"                \"Failed to configure port %(port)s on switch \""},{"line_number":413,"context_line":"                \"%(switch)s: %(error)s\","},{"line_number":414,"context_line":"                {\"port\": port_name, \"switch\": switch_id, \"error\": e},"},{"line_number":415,"context_line":"            )"},{"line_number":416,"context_line":"            raise exception.NetworkError("},{"line_number":417,"context_line":"                _(\"Failed to configure network port: %s\") % e"}],"source_content_type":"text/x-python","patch_set":6,"id":"e9033b70_677e2d1c","line":414,"in_reply_to":"567f7c59_804dcd05","updated":"2026-02-05 12:51:38.000000000","message":"Done","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a80073c0cb06d5f0410cb10ffb43643359571a4c","unresolved":true,"context_lines":[{"line_number":508,"context_line":"            LOG.exception("},{"line_number":509,"context_line":"                \"Failed to reset port %(port)s on switch \""},{"line_number":510,"context_line":"                \"%(switch)s: %(error)s\","},{"line_number":511,"context_line":"                {\"port\": port_name, \"switch\": switch_id, \"error\": e},"},{"line_number":512,"context_line":"            )"},{"line_number":513,"context_line":"            raise exception.NetworkError("},{"line_number":514,"context_line":"                _(\"Failed to reset network port: %s\") % e"}],"source_content_type":"text/x-python","patch_set":6,"id":"284f8027_41f56a48","line":511,"updated":"2026-02-04 05:28:51.000000000","message":"LOG.exception() is going to print the exception for you. Why print it twice?","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"904c39a9442acbb0cd805d5a5932a588f48956d2","unresolved":false,"context_lines":[{"line_number":508,"context_line":"            LOG.exception("},{"line_number":509,"context_line":"                \"Failed to reset port %(port)s on switch \""},{"line_number":510,"context_line":"                \"%(switch)s: %(error)s\","},{"line_number":511,"context_line":"                {\"port\": port_name, \"switch\": switch_id, \"error\": e},"},{"line_number":512,"context_line":"            )"},{"line_number":513,"context_line":"            raise exception.NetworkError("},{"line_number":514,"context_line":"                _(\"Failed to reset network port: %s\") % e"}],"source_content_type":"text/x-python","patch_set":6,"id":"9c62619c_91a7c731","line":511,"in_reply_to":"284f8027_41f56a48","updated":"2026-02-05 12:51:38.000000000","message":"Done","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a80073c0cb06d5f0410cb10ffb43643359571a4c","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                      \"%(driver)s: %(error)s\") % {"},{"line_number":631,"context_line":"                        \"driver\": driver_name, \"error\": e"},{"line_number":632,"context_line":"                    }"},{"line_number":633,"context_line":"                )"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        LOG.info(\"Successfully retrieved %(count)d switch config sections\","},{"line_number":636,"context_line":"                 {\"count\": len(switches)})"}],"source_content_type":"text/x-python","patch_set":6,"id":"ab1312ff_062eaf75","line":633,"updated":"2026-02-04 05:28:51.000000000","message":"```suggestion\n                ) from e\n```\n\nif you\u0027re really wanting that carried through","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"904c39a9442acbb0cd805d5a5932a588f48956d2","unresolved":false,"context_lines":[{"line_number":630,"context_line":"                      \"%(driver)s: %(error)s\") % {"},{"line_number":631,"context_line":"                        \"driver\": driver_name, \"error\": e"},{"line_number":632,"context_line":"                    }"},{"line_number":633,"context_line":"                )"},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        LOG.info(\"Successfully retrieved %(count)d switch config sections\","},{"line_number":636,"context_line":"                 {\"count\": len(switches)})"}],"source_content_type":"text/x-python","patch_set":6,"id":"cc7a7a6f_050c95ea","line":633,"in_reply_to":"ab1312ff_062eaf75","updated":"2026-02-05 12:51:38.000000000","message":"Done","commit_id":"eeeef29156e78b90902854ebdc4297ea8c1939c5"}]}
