@@ -38,6 +38,7 @@ use nexus_types::fm::ereport::Ena;
3838use nexus_types:: fm:: ereport:: Reporter ;
3939use omicron_uuid_kinds:: EreporterRestartUuid ;
4040use omicron_uuid_kinds:: GenericUuid ;
41+ use omicron_uuid_kinds:: RackUuid ;
4142use omicron_uuid_kinds:: SledUuid ;
4243use std:: collections:: HashMap ;
4344use tabled:: Tabled ;
@@ -376,16 +377,20 @@ async fn cmd_db_ereport_info(
376377 const CLASS : & str = "class" ;
377378 const REPORTER : & str = "reported by" ;
378379 const RESTART_ID : & str = "restart ID" ;
380+ const RACK_ID : & str = "rack ID" ;
379381 const SLED_ID : & str = " sled ID" ;
380382 const PART_NUMBER : & str = " part number" ;
381383 const SERIAL_NUMBER : & str = " serial number" ;
382384 const MARKED_SEEN_IN : & str = "marked seen in sitrep" ;
383385 const WIDTH : usize = const_max_len ( & [
386+ ENA ,
384387 CLASS ,
385388 TIME_COLLECTED ,
386389 TIME_DELETED ,
387390 COLLECTOR_ID ,
391+ RESTART_ID ,
388392 REPORTER ,
393+ RACK_ID ,
389394 SLED_ID ,
390395 PART_NUMBER ,
391396 SERIAL_NUMBER ,
@@ -467,6 +472,25 @@ async fn cmd_db_ereport_info(
467472 }
468473 }
469474 println ! ( " {RESTART_ID:>WIDTH$}: {restart_id}" ) ;
475+
476+ // Grab the reporter entry so that we can print the rack ID.
477+ let reporter = restart_dsl:: ereporter_restart
478+ . filter ( restart_dsl:: id. eq ( restart_id. into_untyped_uuid ( ) ) )
479+ . select ( db:: model:: EreporterRestart :: as_select ( ) )
480+ . first_async ( & * conn)
481+ . await ;
482+ match reporter {
483+ Ok ( reporter) => {
484+ println ! ( " {RACK_ID:>WIDTH$}: {}" , reporter. rack_id( ) ) ;
485+ }
486+ Err ( err) => {
487+ eprintln ! (
488+ "error: failed to fetch ereporter_restart entry for \
489+ {restart_id}: {err}"
490+ ) ;
491+ }
492+ }
493+
470494 println ! (
471495 " {PART_NUMBER:>WIDTH$}: {}" ,
472496 part_number. as_deref( ) . unwrap_or( "<unknown>" )
@@ -587,6 +611,7 @@ async fn cmd_db_ereporters(
587611 serial : Option < String > ,
588612 #[ tabled( display_with = "display_option_blank" , rename = "P/N" ) ]
589613 part_number : Option < String > ,
614+ rack_id : RackUuid ,
590615 ereports : i64 ,
591616 }
592617
@@ -628,6 +653,7 @@ async fn cmd_db_ereporters(
628653 serial,
629654 part_number,
630655 ereports,
656+ rack_id : * restart. rack_id ( ) ,
631657 } )
632658 } )
633659 . collect :: < Vec < _ > > ( ) ;
0 commit comments