)]}'
{"/PATCHSET_LEVEL":[{"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":"a8fd136c3f6c3fcf9044095b03e0fe553e9b1933","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"827ac321_0f5bedce","updated":"2026-05-13 14:31:02.000000000","message":"The failing CI is real and needs fixing.","commit_id":"25fb9e2d8a0c230045aee10920914d5e38c65757"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"dd39496799a904b07e03a0ea23bf9c9afe3c5e31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"100bcf81_385f6db6","updated":"2026-05-15 10:50:22.000000000","message":"Made some update to only skip to early return for the \"system has controllers, but none of them exposed Volumes\" case, in which case we should preserve the existing raid_config I believe ? if the controller has 0 controllers, then we proceed to update_raid_info ?","commit_id":"b16e78202a6ba950a114d01e85c3dade6b6879dc"}],"ironic/drivers/modules/redfish/raid.py":[{"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":"238c588105464dc8ed18987e703a357e3600538a","unresolved":true,"context_lines":[{"line_number":696,"context_line":"        try:"},{"line_number":697,"context_line":"            volumes \u003d stor.volumes.get_members()"},{"line_number":698,"context_line":"        except sushy.exceptions.MissingAttributeError:"},{"line_number":699,"context_line":"            LOG.debug(\u0027Storage controller %s has no Volumes collection, \u0027"},{"line_number":700,"context_line":"                      \u0027skipping\u0027, stor.identity)"},{"line_number":701,"context_line":"            continue"},{"line_number":702,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"8574637a_fee12637","line":699,"range":{"start_line":699,"start_character":0,"end_line":699,"end_character":73},"updated":"2026-05-11 11:03:20.000000000","message":"Should we up this to info? Going from fatal to a debug log can hide this without DEBUG when something odd is going on. or is there a reason it\u0027s better this way?","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"9f61b86342adc069d0f67051f4a8e8c667a64c73","unresolved":true,"context_lines":[{"line_number":696,"context_line":"        try:"},{"line_number":697,"context_line":"            volumes \u003d stor.volumes.get_members()"},{"line_number":698,"context_line":"        except sushy.exceptions.MissingAttributeError:"},{"line_number":699,"context_line":"            LOG.debug(\u0027Storage controller %s has no Volumes collection, \u0027"},{"line_number":700,"context_line":"                      \u0027skipping\u0027, stor.identity)"},{"line_number":701,"context_line":"            continue"},{"line_number":702,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"2e5503d7_ec13147f","line":699,"range":{"start_line":699,"start_character":0,"end_line":699,"end_character":73},"in_reply_to":"2177d2d8_923a7b53","updated":"2026-05-11 21:00:27.000000000","message":"I\u0027m testing this on HPE DL365 Gen11, and the default sata controller (which afaik, you can\u0027t remove), reports this. That\u0027s why I initially put it as debug, cause I imagine this isn\u0027t the only platform on which you could have this issue ?","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"369d742c7913c70f145fcebc37bfd489e65af212","unresolved":true,"context_lines":[{"line_number":696,"context_line":"        try:"},{"line_number":697,"context_line":"            volumes \u003d stor.volumes.get_members()"},{"line_number":698,"context_line":"        except sushy.exceptions.MissingAttributeError:"},{"line_number":699,"context_line":"            LOG.debug(\u0027Storage controller %s has no Volumes collection, \u0027"},{"line_number":700,"context_line":"                      \u0027skipping\u0027, stor.identity)"},{"line_number":701,"context_line":"            continue"},{"line_number":702,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5bf56e1d_2373ff65","line":699,"range":{"start_line":699,"start_character":0,"end_line":699,"end_character":73},"in_reply_to":"2e5503d7_ec13147f","updated":"2026-05-11 21:07:28.000000000","message":"Yeah, I think debug is the right call as well. CID\u0027s other concern still is worth consideration.","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"8d9dbbddbdf2a695e38a6772b2fd2fca204aa7a8","unresolved":true,"context_lines":[{"line_number":696,"context_line":"        try:"},{"line_number":697,"context_line":"            volumes \u003d stor.volumes.get_members()"},{"line_number":698,"context_line":"        except sushy.exceptions.MissingAttributeError:"},{"line_number":699,"context_line":"            LOG.debug(\u0027Storage controller %s has no Volumes collection, \u0027"},{"line_number":700,"context_line":"                      \u0027skipping\u0027, stor.identity)"},{"line_number":701,"context_line":"            continue"},{"line_number":702,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"96ec362b_80310bf4","line":699,"range":{"start_line":699,"start_character":0,"end_line":699,"end_character":73},"in_reply_to":"5bf56e1d_2373ff65","updated":"2026-05-12 18:19:12.000000000","message":"I will take a look at the other point asap yes, I need to understand it cause it\u0027s not super clear right now.","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4b0e4266112280e7bb244313fe5646e6642c564c","unresolved":true,"context_lines":[{"line_number":696,"context_line":"        try:"},{"line_number":697,"context_line":"            volumes \u003d stor.volumes.get_members()"},{"line_number":698,"context_line":"        except sushy.exceptions.MissingAttributeError:"},{"line_number":699,"context_line":"            LOG.debug(\u0027Storage controller %s has no Volumes collection, \u0027"},{"line_number":700,"context_line":"                      \u0027skipping\u0027, stor.identity)"},{"line_number":701,"context_line":"            continue"},{"line_number":702,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"2177d2d8_923a7b53","line":699,"range":{"start_line":699,"start_character":0,"end_line":699,"end_character":73},"in_reply_to":"8574637a_fee12637","updated":"2026-05-11 20:27:59.000000000","message":"The real question to ask here, IMO, is: \"Is there ever a valid/expected case where there\u0027s no Volumes collection?\" if yes, this code is correct. If no, it should be logged at WARNING. There\u0027s really no case where this should be INFO.","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"dd39496799a904b07e03a0ea23bf9c9afe3c5e31","unresolved":false,"context_lines":[{"line_number":696,"context_line":"        try:"},{"line_number":697,"context_line":"            volumes \u003d stor.volumes.get_members()"},{"line_number":698,"context_line":"        except sushy.exceptions.MissingAttributeError:"},{"line_number":699,"context_line":"            LOG.debug(\u0027Storage controller %s has no Volumes collection, \u0027"},{"line_number":700,"context_line":"                      \u0027skipping\u0027, stor.identity)"},{"line_number":701,"context_line":"            continue"},{"line_number":702,"context_line":"        for vol in volumes:"}],"source_content_type":"text/x-python","patch_set":1,"id":"640f9f32_8a17c050","line":699,"range":{"start_line":699,"start_character":0,"end_line":699,"end_character":73},"in_reply_to":"96ec362b_80310bf4","updated":"2026-05-15 10:50:22.000000000","message":"Done","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"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":"238c588105464dc8ed18987e703a357e3600538a","unresolved":true,"context_lines":[{"line_number":719,"context_line":"                    \"type: %(vol_no_raid_type)s\","},{"line_number":720,"context_line":"                    {\u0027vol_no_raid_type\u0027: \", \".join(vol_no_raid_type)})"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    raid.update_raid_info(node, {\u0027logical_disks\u0027: logical_disks})"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"class RedfishRAID(base.RAIDInterface):"}],"source_content_type":"text/x-python","patch_set":1,"id":"b33f02b8_3b9d7861","line":722,"range":{"start_line":722,"start_character":0,"end_line":722,"end_character":65},"updated":"2026-05-11 11:03:20.000000000","message":"as-is, \"no controllers with a Volumes link\" now also updates logical disk to empty, which overwrites the last good RAID inventory we had in this node\u0027s `raid_config`","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"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":"cc8453d3daca6d73b46f5c5204c78d5cf9a36d15","unresolved":false,"context_lines":[{"line_number":719,"context_line":"                    \"type: %(vol_no_raid_type)s\","},{"line_number":720,"context_line":"                    {\u0027vol_no_raid_type\u0027: \", \".join(vol_no_raid_type)})"},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    raid.update_raid_info(node, {\u0027logical_disks\u0027: logical_disks})"},{"line_number":723,"context_line":""},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"class RedfishRAID(base.RAIDInterface):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9427d505_a2a674bf","line":722,"range":{"start_line":722,"start_character":0,"end_line":722,"end_character":65},"in_reply_to":"b33f02b8_3b9d7861","updated":"2026-05-13 14:21:51.000000000","message":"Acknowledged","commit_id":"a0502ed9ba23339b7745802e10194587dbfe7e32"},{"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":"e52d9af68cf50453a2d05efa89297fc2a493678d","unresolved":true,"context_lines":[{"line_number":723,"context_line":"                    \"type: %(vol_no_raid_type)s\","},{"line_number":724,"context_line":"                    {\u0027vol_no_raid_type\u0027: \", \".join(vol_no_raid_type)})"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    if controllers_total and not controllers_queried:"},{"line_number":727,"context_line":"        LOG.warning(\u0027No storage controllers with a Volumes collection found \u0027"},{"line_number":728,"context_line":"                    \u0027for node %s, skipping raid_config update\u0027, node.uuid)"},{"line_number":729,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"13e1852b_8fcf21ec","line":726,"range":{"start_line":726,"start_character":0,"end_line":726,"end_character":53},"updated":"2026-05-20 08:32:11.000000000","message":"So, this is the cause of the CI failures. Because of this branching, logical_disks may never get initialized in the node\u0027s raid_config which seems a little worst than my earlier concern of overwriting existing values. Turns, the key may end up not existing all together.\n\nPlease ignore my earlier feedback and remove this early return. tks!","commit_id":"e3e7cf4156725f0aae5c237e4c660df18fea36d3"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"6fe69a6c38c15871643f301f3ee71e8f55825833","unresolved":true,"context_lines":[{"line_number":723,"context_line":"                    \"type: %(vol_no_raid_type)s\","},{"line_number":724,"context_line":"                    {\u0027vol_no_raid_type\u0027: \", \".join(vol_no_raid_type)})"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    if controllers_total and not controllers_queried:"},{"line_number":727,"context_line":"        LOG.warning(\u0027No storage controllers with a Volumes collection found \u0027"},{"line_number":728,"context_line":"                    \u0027for node %s, skipping raid_config update\u0027, node.uuid)"},{"line_number":729,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"9d398fe7_4332c553","line":726,"range":{"start_line":726,"start_character":0,"end_line":726,"end_character":53},"in_reply_to":"13e1852b_8fcf21ec","updated":"2026-05-20 09:04:02.000000000","message":"still we keep logging what\u0027s going on ? keep it as WARN ? I\u0027d say yes but it\u0027s your call.","commit_id":"e3e7cf4156725f0aae5c237e4c660df18fea36d3"},{"author":{"_account_id":37203,"name":"Bertrand Lanson","display_name":"Bertrand Lanson","email":"bertrand.lanson@infomaniak.com","username":"lanson","status":"Infomaniak Network SA"},"change_message_id":"8c725c1fcdc3b46eca79f90a2751d3a3c420a48d","unresolved":false,"context_lines":[{"line_number":723,"context_line":"                    \"type: %(vol_no_raid_type)s\","},{"line_number":724,"context_line":"                    {\u0027vol_no_raid_type\u0027: \", \".join(vol_no_raid_type)})"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    if controllers_total and not controllers_queried:"},{"line_number":727,"context_line":"        LOG.warning(\u0027No storage controllers with a Volumes collection found \u0027"},{"line_number":728,"context_line":"                    \u0027for node %s, skipping raid_config update\u0027, node.uuid)"},{"line_number":729,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"c9801ea4_1d107dea","line":726,"range":{"start_line":726,"start_character":0,"end_line":726,"end_character":53},"in_reply_to":"9d398fe7_4332c553","updated":"2026-05-20 09:31:42.000000000","message":"Done","commit_id":"e3e7cf4156725f0aae5c237e4c660df18fea36d3"}]}
