)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"912a091d1b4c4c2c23e4129af32370292d78b0a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a905a685_6f3ca0e9","updated":"2024-07-05 11:46:16.000000000","message":"Late for the party, sorry, but this is not quite correct. Could you follow-up?","commit_id":"944ee5eee15b8969980a51c11efafa8a08d1a7b6"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c2e1af46796ff55593524fc00ac426238ea2a85e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a4ec41a5_337d55a7","updated":"2024-07-05 07:51:34.000000000","message":"thanks!","commit_id":"944ee5eee15b8969980a51c11efafa8a08d1a7b6"}],"ironic/drivers/modules/redfish/raid.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"13ec291eea5d50d77d3ca241716cdc3502961842","unresolved":true,"context_lines":[{"line_number":125,"context_line":"    try:"},{"line_number":126,"context_line":"        collection \u003d system.storage"},{"line_number":127,"context_line":"        for storage in collection.get_members():"},{"line_number":128,"context_line":"            controller \u003d (storage.controllers[0]"},{"line_number":129,"context_line":"                          if storage.controllers else None)"},{"line_number":130,"context_line":"            if controller and controller.raid_types \u003d\u003d []:"},{"line_number":131,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"c52b5196_01c5c003","line":128,"updated":"2024-06-27 17:41:31.000000000","message":"The unfortunate reality of Redfish is that vendors don\u0027t switch to new fields immediately (until they suddenly do and immediately drop the support for old fields, sigh). We need to support both the old and the new way, giving priority to the new one.\n\nMaybe add a helper function get_first_controller(storage) that will handle the transition?","commit_id":"c9dd650fe06b95c2cdf2adf18c82d01da7ac26b3"}],"ironic/drivers/modules/redfish/utils.py":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"e57e0e1f334378177f6c10fe7cd48fc0809f1a80","unresolved":true,"context_lines":[{"line_number":333,"context_line":"        controller \u003d storage.controllers[0]"},{"line_number":334,"context_line":"    except AttributeError:"},{"line_number":335,"context_line":"        controller \u003d storage.storage_controllers[0]"},{"line_number":336,"context_line":"    return controller"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def get_system(node):"}],"source_content_type":"text/x-python","patch_set":5,"id":"c927418b_69c679ad","line":336,"updated":"2024-07-01 08:06:03.000000000","message":"storage_controllers may also not exist, we need to handle that too as we did before returning None","commit_id":"5c7c02333f0ec6ab776d2a18588a1c1e3a163ea2"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"f4127c54d3c42af556d1cfbb15da8fa712abcb8b","unresolved":false,"context_lines":[{"line_number":333,"context_line":"        controller \u003d storage.controllers[0]"},{"line_number":334,"context_line":"    except AttributeError:"},{"line_number":335,"context_line":"        controller \u003d storage.storage_controllers[0]"},{"line_number":336,"context_line":"    return controller"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"def get_system(node):"}],"source_content_type":"text/x-python","patch_set":5,"id":"f64446af_5ccc9cb6","line":336,"in_reply_to":"c927418b_69c679ad","updated":"2024-07-01 10:56:59.000000000","message":"Acknowledged","commit_id":"5c7c02333f0ec6ab776d2a18588a1c1e3a163ea2"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"912a091d1b4c4c2c23e4129af32370292d78b0a4","unresolved":true,"context_lines":[{"line_number":328,"context_line":"    :param storage: a storage object"},{"line_number":329,"context_line":"    :returns: the first storage controller or None"},{"line_number":330,"context_line":"    \"\"\""},{"line_number":331,"context_line":"    if hasattr(storage, \u0027controllers\u0027):"},{"line_number":332,"context_line":"        return storage.controllers[0]"},{"line_number":333,"context_line":"    elif hasattr(storage, \u0027storage_controllers\u0027):"},{"line_number":334,"context_line":"        return storage.storage_controllers[0]"}],"source_content_type":"text/x-python","patch_set":6,"id":"eb5bbab8_8e1748fe","line":331,"updated":"2024-07-05 11:46:16.000000000","message":"This is always true: this field simply exists in sushy. You needed\n\n if storage.controllers:","commit_id":"944ee5eee15b8969980a51c11efafa8a08d1a7b6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"912a091d1b4c4c2c23e4129af32370292d78b0a4","unresolved":true,"context_lines":[{"line_number":330,"context_line":"    \"\"\""},{"line_number":331,"context_line":"    if hasattr(storage, \u0027controllers\u0027):"},{"line_number":332,"context_line":"        return storage.controllers[0]"},{"line_number":333,"context_line":"    elif hasattr(storage, \u0027storage_controllers\u0027):"},{"line_number":334,"context_line":"        return storage.storage_controllers[0]"},{"line_number":335,"context_line":"    return None"},{"line_number":336,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3dcbc1e9_2d74887c","line":333,"updated":"2024-07-05 11:46:16.000000000","message":"same, there is no reason for hasattr to ever return false.","commit_id":"944ee5eee15b8969980a51c11efafa8a08d1a7b6"}]}
