)]}'
{"/PATCHSET_LEVEL":[{"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":"f37d1323879e099ec3bed5fe31d8d6cc83a617a8","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e20e7ddc_4d948d7d","updated":"2026-05-12 17:48:47.000000000","message":"I think CI failure is real, but I can\u0027t figure out how/why -- it looks like _send_sensor_data periodic never ran?","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"5a0464167920ea71e15128c43308626a7ca8eae9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"61ed55e4_6f4ee65c","updated":"2026-05-20 13:07:43.000000000","message":"recheck","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b7ae65154128e2a695d82d0d73a273acf980f1a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"61042854_3964f9de","updated":"2026-05-13 07:48:54.000000000","message":"recheck failure is not related to this change","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"204940afc2ec2e5b3afda050ca89c0dca358aca3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"22900252_61f8aa58","updated":"2026-06-24 13:33:07.000000000","message":"recheck maybe now?","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"62f112fe1c89a88f905fbeee6240783080185cb1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5ce3ff4b_92641592","updated":"2026-06-23 15:17:20.000000000","message":"recheck should be fixed now","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"9840bbe7be89cd35e1f94b3eedb8494dd612fa3c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"25fb5a36_60f8dec7","updated":"2026-06-26 13:06:32.000000000","message":"recheck we should be good now","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"40f70afe7aa7637848a9ae6a155a284a07fab210","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"04bfb623_3356ccdb","in_reply_to":"e20e7ddc_4d948d7d","updated":"2026-05-13 14:34:55.000000000","message":"yep, fix should be https://review.opendev.org/c/openstack/ironic/+/988469","commit_id":"b9b686e567e9edf057345b26b72881d8556633c1"}],"ironic_prometheus_exporter/parsers/redfish.py":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a659e53cff0ec7685f0901566d9bf6e4c1bcc154","unresolved":true,"context_lines":[{"line_number":32,"context_line":"def _build_labels(node_message):"},{"line_number":33,"context_line":"    fields \u003d [\u0027node_name\u0027, \u0027node_uuid\u0027, \u0027instance_uuid\u0027]"},{"line_number":34,"context_line":"    if not node_message.get(\u0027node_name\u0027):"},{"line_number":35,"context_line":"        fields.remove(\u0027node_name\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    labels \u003d {}"},{"line_number":38,"context_line":"    extra \u003d node_message.get(\u0027payload\u0027, {}).get(\u0027Extra\u0027, {})"}],"source_content_type":"text/x-python","patch_set":2,"id":"7b261878_a1d00de5","line":35,"updated":"2026-07-02 16:58:41.000000000","message":"That\u0027s not correct now. Cause if its missing we\u0027re gonna call remove. I believe the intention was to call remove when the node_name is something false-y.","commit_id":"447894f0f4f61f8990b35798e298efdb9f8df67b"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"a24950bf41e072e192b4731c0dd0033f4626e7b1","unresolved":true,"context_lines":[{"line_number":32,"context_line":"def _build_labels(node_message):"},{"line_number":33,"context_line":"    fields \u003d [\u0027node_name\u0027, \u0027node_uuid\u0027, \u0027instance_uuid\u0027]"},{"line_number":34,"context_line":"    if not node_message.get(\u0027node_name\u0027):"},{"line_number":35,"context_line":"        fields.remove(\u0027node_name\u0027)"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    labels \u003d {}"},{"line_number":38,"context_line":"    extra \u003d node_message.get(\u0027payload\u0027, {}).get(\u0027Extra\u0027, {})"}],"source_content_type":"text/x-python","patch_set":2,"id":"e8085c94_f1540c0c","line":35,"in_reply_to":"7b261878_a1d00de5","updated":"2026-07-03 07:56:06.000000000","message":"Right, the previous code used direct access (node_message[\u0027node_name\u0027]) which would raise a KeyError on a missing key. Switching to .get() intentionally makes this more defensive: if node_name is missing from the message, we treat it the same as an empty value and skip the label rather than crashing. Both \"missing\" and \"present but falsy\" mean we have nothing useful to put in the label, so removing it seems correct in either case. The alternative would be crashing the exporter on a malformed message, which seems worse.","commit_id":"447894f0f4f61f8990b35798e298efdb9f8df67b"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"a659e53cff0ec7685f0901566d9bf6e4c1bcc154","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        labels[k.lower()] \u003d v"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    for field in fields:"},{"line_number":47,"context_line":"        labels[field] \u003d node_message.get(field)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return labels"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"b6a7c0d1_c514a7d2","line":47,"updated":"2026-07-02 16:58:41.000000000","message":"The singular update is going to be much more efficient. I would leave the comprehension and change it to something like:\n\n\n\n```suggestion\n    labels.update({k: node_message[k] for k in fields if k in node_message})\n```","commit_id":"447894f0f4f61f8990b35798e298efdb9f8df67b"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"82709c29fb31c2496e69214098e6001209414bcf","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        labels[k.lower()] \u003d v"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    for field in fields:"},{"line_number":47,"context_line":"        labels[field] \u003d node_message.get(field)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return labels"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"248bcca3_581ebd80","line":47,"in_reply_to":"50c5beab_b30c58dd","updated":"2026-07-03 07:59:18.000000000","message":"Done","commit_id":"447894f0f4f61f8990b35798e298efdb9f8df67b"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"a24950bf41e072e192b4731c0dd0033f4626e7b1","unresolved":true,"context_lines":[{"line_number":44,"context_line":"        labels[k.lower()] \u003d v"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    for field in fields:"},{"line_number":47,"context_line":"        labels[field] \u003d node_message.get(field)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    return labels"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"50c5beab_b30c58dd","line":47,"in_reply_to":"b6a7c0d1_c514a7d2","updated":"2026-07-03 07:56:06.000000000","message":"I agree\nI will update this","commit_id":"447894f0f4f61f8990b35798e298efdb9f8df67b"}]}
