pub(crate) fn evaluate_protocol_status(
recommendation_timestamp: SystemTime,
recommendation: &ProtoStatuses,
software_protocols: &Protocols,
override_status: &SoftwareStatusOverrideConfig,
) -> Result<(), ErrorDetail>
Expand description
Check whether we should take action based on the protocol recommendation
from recommendation_timestamp
,
given that our own supported subprotocols are software_protocols
.
- If any required protocols are missing, log and return an error.
- If no required protocols are missing, but some recommended protocols are missing,
log and return
Ok(())
. - If no protocols are missing, return
Ok(())
.
Note: This function should ONLY return an error when the error is fatal.