@@ -65,41 +65,30 @@ impl Bmc {
6565
6666 /// LenovoAMI-specific lockdown status via OEM ConfigBMC endpoint.
6767 async fn lockdown_status_lenovo_ami ( & self ) -> Result < Status , RedfishError > {
68- let url = "Managers/Self/Oem/ConfigBMC" ;
69- let ( _status, body) : ( _ , serde_json:: Value ) = self . s . client . get ( url) . await ?;
70-
71- let lockout_host = body
72- . get ( "LockoutHostControl" )
73- . and_then ( |v| v. as_str ( ) )
74- . unwrap_or ( "unknown" ) ;
75- let lockout_bios_var = body
76- . get ( "LockoutBiosVariableWriteMode" )
77- . and_then ( |v| v. as_str ( ) )
78- . unwrap_or ( "unknown" ) ;
79- let lockdown_settings = body
80- . get ( "LockdownBiosSettingsChange" )
81- . and_then ( |v| v. as_str ( ) )
82- . unwrap_or ( "unknown" ) ;
83- let lockdown_upgrade = body
84- . get ( "LockdownBiosUpgradeDowngrade" )
85- . and_then ( |v| v. as_str ( ) )
86- . unwrap_or ( "unknown" ) ;
68+ const LOCKDOWN_FIELDS : & [ & str ] = & [
69+ "LockoutHostControl" ,
70+ "LockoutBiosVariableWriteMode" ,
71+ "LockdownBiosSettingsChange" ,
72+ "LockdownBiosUpgradeDowngrade" ,
73+ ] ;
8774
88- let message = format ! (
89- "lockout_host_control={lockout_host}, \
90- lockout_bios_variable_write={lockout_bios_var}, \
91- lockdown_bios_settings={lockdown_settings}, \
92- lockdown_bios_upgrade={lockdown_upgrade}"
93- ) ;
75+ let ( _status, body) : ( _ , serde_json:: Value ) =
76+ self . s . client . get ( "Managers/Self/Oem/ConfigBMC" ) . await ?;
9477
95- let all_fields = [
96- lockout_host,
97- lockout_bios_var,
98- lockdown_settings,
99- lockdown_upgrade,
100- ] ;
101- let is_locked = all_fields. iter ( ) . all ( |& v| v == "Enable" ) ;
102- let is_unlocked = all_fields. iter ( ) . all ( |& v| v == "Disable" ) ;
78+ let values: Vec < & str > = LOCKDOWN_FIELDS
79+ . iter ( )
80+ . map ( |key| body. get ( key) . and_then ( |v| v. as_str ( ) ) . unwrap_or ( "unknown" ) )
81+ . collect ( ) ;
82+
83+ let message = LOCKDOWN_FIELDS
84+ . iter ( )
85+ . zip ( & values)
86+ . map ( |( k, v) | format ! ( "{k}={v}" ) )
87+ . collect :: < Vec < _ > > ( )
88+ . join ( ", " ) ;
89+
90+ let is_locked = values. iter ( ) . all ( |& v| v == "Enable" ) ;
91+ let is_unlocked = values. iter ( ) . all ( |& v| v == "Disable" ) ;
10392
10493 Ok ( Status {
10594 message,
0 commit comments