Function evaluate_protocol_status

Source
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.