)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c776ce192bebbc788fd18f4559aefefcd3907542","unresolved":true,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2021-06-22 05:36:57 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Redfish: Skip non-RAID controllers for storage"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related to: I369bdbb17064baf34f90e864d0ece600529de509"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I728f03dc829fb76cad9804c8f8df20810307ce2c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"615be5e7_8af687ca","line":8,"updated":"2021-06-24 18:30:21.000000000","message":"Could we get a bit more of a description and understanding? I\u0027m kind of curious why we\u0027re discounting non-raid controllers.","commit_id":"cdd2d2ef44a3faff90d32bfaaea6c180a9303fb3"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f58b30973b74fb1895bc04b00a941fb81846973a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2021-06-22 05:36:57 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Redfish: Skip non-RAID controllers for storage"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related to: I369bdbb17064baf34f90e864d0ece600529de509"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I728f03dc829fb76cad9804c8f8df20810307ce2c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"936ec66f_89c5fec2","line":8,"in_reply_to":"615be5e7_8af687ca","updated":"2021-06-28 14:43:23.000000000","message":"Done","commit_id":"cdd2d2ef44a3faff90d32bfaaea6c180a9303fb3"}],"ironic/drivers/modules/redfish/raid.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":"301cf6c0cfd97ae3517c80f0ba12d969248b2ce8","unresolved":true,"context_lines":[{"line_number":591,"context_line":"def _get_storage_controller(node, system, physical_disks):"},{"line_number":592,"context_line":"    collection \u003d system.storage"},{"line_number":593,"context_line":"    for storage in collection.get_members():"},{"line_number":594,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":595,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":596,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":597,"context_line":"            continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"7680d4d2_77dcdb9e","line":594,"range":{"start_line":594,"start_character":8,"end_line":594,"end_character":52},"updated":"2021-06-21 14:20:01.000000000","message":"This is an apparent side effect of data structure in redfish, I think it would be good to add a comment to that effect.","commit_id":"cf24f3f7788a9c206f5de5226741f276d691e541"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"4579a64f694d2414ba0049284925bffc82ae7392","unresolved":false,"context_lines":[{"line_number":591,"context_line":"def _get_storage_controller(node, system, physical_disks):"},{"line_number":592,"context_line":"    collection \u003d system.storage"},{"line_number":593,"context_line":"    for storage in collection.get_members():"},{"line_number":594,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":595,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":596,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":597,"context_line":"            continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"dc05d7fa_3ce461e2","line":594,"range":{"start_line":594,"start_character":8,"end_line":594,"end_character":52},"in_reply_to":"7680d4d2_77dcdb9e","updated":"2021-06-22 09:45:35.000000000","message":"Done","commit_id":"cf24f3f7788a9c206f5de5226741f276d691e541"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c776ce192bebbc788fd18f4559aefefcd3907542","unresolved":true,"context_lines":[{"line_number":594,"context_line":"        # Using first controller as expecting only one"},{"line_number":595,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":596,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":597,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":598,"context_line":"            continue"},{"line_number":599,"context_line":"        for drive in storage.drives:"},{"line_number":600,"context_line":"            if drive.identity in physical_disks:"}],"source_content_type":"text/x-python","patch_set":2,"id":"d3e2b1f7_6c7bdd45","line":597,"updated":"2021-06-24 18:30:21.000000000","message":"So the field that raid_types is based on is SupportedRAIDTypes which came in v1.6+ of the schema 2018.3. I suspect if not present this may not work, so *likely* at a minimum release note worthy.","commit_id":"cdd2d2ef44a3faff90d32bfaaea6c180a9303fb3"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"f58b30973b74fb1895bc04b00a941fb81846973a","unresolved":true,"context_lines":[{"line_number":594,"context_line":"        # Using first controller as expecting only one"},{"line_number":595,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":596,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":597,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":598,"context_line":"            continue"},{"line_number":599,"context_line":"        for drive in storage.drives:"},{"line_number":600,"context_line":"            if drive.identity in physical_disks:"}],"source_content_type":"text/x-python","patch_set":2,"id":"71817270_12cef402","line":597,"in_reply_to":"d3e2b1f7_6c7bdd45","updated":"2021-06-28 14:43:23.000000000","message":"if not present, then sushy returns raid_types \u003d None and then this is false. If can\u0027t know if this is RAID controller or not, then still try with it and possibly fail at later stage if somehow all the logic here decides to use physical disks of controller not capable of RAID.\n\nIf different behavior is necessary, then it can be updated accordingly. I went with this option as it\u0027s the same workflow as it is without this change and don\u0027t see alternative way to determine RAID capability without SupportedRAIDTypes.\n\nThis change helps those who implement SupportedRAIDTypes and does not change anything for those who don\u0027t.","commit_id":"cdd2d2ef44a3faff90d32bfaaea6c180a9303fb3"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"43ffebe1d2dad515830abf0d8c222fcc2e99e27b","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        # Using first controller as expecting only one"},{"line_number":595,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":596,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":597,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":598,"context_line":"            continue"},{"line_number":599,"context_line":"        for drive in storage.drives:"},{"line_number":600,"context_line":"            if drive.identity in physical_disks:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fec37bef_126d9a78","line":597,"updated":"2021-07-02 15:32:57.000000000","message":"Maybe even \"not controller.raid_types\" to also exclude None?","commit_id":"c779be9f7d18779d9befed9c6d92253d50448a12"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"4c9749b947b21b0f0e0d693e22b9fb4413cf3ba2","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        # Using first controller as expecting only one"},{"line_number":595,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":596,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":597,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":598,"context_line":"            continue"},{"line_number":599,"context_line":"        for drive in storage.drives:"},{"line_number":600,"context_line":"            if drive.identity in physical_disks:"}],"source_content_type":"text/x-python","patch_set":3,"id":"b391af8d_4c7c1471","line":597,"updated":"2021-07-05 16:53:31.000000000","message":"Mmm, yeah, I think I see the reason.","commit_id":"c779be9f7d18779d9befed9c6d92253d50448a12"},{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"34cbf1d0f4e2300841309b96d9d45c2e6a17e4df","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        # Using first controller as expecting only one"},{"line_number":595,"context_line":"        controller \u003d (storage.storage_controllers[0]"},{"line_number":596,"context_line":"                      if storage.storage_controllers else None)"},{"line_number":597,"context_line":"        if controller and controller.raid_types \u003d\u003d []:"},{"line_number":598,"context_line":"            continue"},{"line_number":599,"context_line":"        for drive in storage.drives:"},{"line_number":600,"context_line":"            if drive.identity in physical_disks:"}],"source_content_type":"text/x-python","patch_set":3,"id":"6a468008_725fae8b","line":597,"in_reply_to":"fec37bef_126d9a78","updated":"2021-07-02 15:48:57.000000000","message":"for now it\u0027s on purpose to check only [] to allow None for systems that haven\u0027t implemented raid_types. Thinking a bit - I\u0027ll check if I can get more information about such systems and what is better - to include or exclude None.","commit_id":"c779be9f7d18779d9befed9c6d92253d50448a12"}]}
