fn report_proxy_agent_service_status()

in proxy_agent_extension/src/service_main.rs [655:718]


fn report_proxy_agent_service_status(
    output: Result<Output, Error>,
    status_folder: PathBuf,
    seq_no: &str,
    status: &mut StatusObj,
    status_state_obj: &mut common::StatusState,
) {
    match output {
        Ok(output) => {
            logger::write(format!(
                "Update Proxy Agent command output: {}",
                String::from_utf8_lossy(&output.stdout)
            ));
            if output.status.success() {
                logger::write("Update Proxy Agent command output successfully".to_string());
                status.configurationAppliedTime = misc_helpers::get_date_time_string();
                status.code = constants::STATUS_CODE_OK;
                status.status = status_state_obj.update_state(false);
                status.formattedMessage.message =
                    "Update Proxy Agent command output successfully".to_string();
                status.substatus = Default::default();
                common::report_status(status_folder, seq_no, status);
            } else {
                telemetry::event_logger::write_event(
                    LoggerLevel::Info,
                    format!(
                        "Update Proxy Agent command failed with error: {}",
                        String::from_utf8_lossy(&output.stderr)
                    ),
                    "report_proxy_agent_service_status",
                    "service_main",
                    &logger::get_logger_key(),
                );
                status.configurationAppliedTime = misc_helpers::get_date_time_string();
                status.code = output
                    .status
                    .code()
                    .unwrap_or(constants::STATUS_CODE_NOT_OK);
                status.status = status_state_obj.update_state(false);
                status.formattedMessage.message =
                    "Update Proxy Agent command failed with error".to_string();
                status.substatus = Default::default();
                common::report_status(status_folder, seq_no, status);
            }
        }
        Err(e) => {
            telemetry::event_logger::write_event(
                LoggerLevel::Info,
                format!("Error in running Update Proxy Agent command: {}", e),
                "report_proxy_agent_service_status",
                "service_main",
                &logger::get_logger_key(),
            );
            // report proxyagent service update failed state
            status.configurationAppliedTime = misc_helpers::get_date_time_string();
            status.code = constants::STATUS_CODE_NOT_OK;
            status.status = status_state_obj.update_state(false);
            status.formattedMessage.message =
                format!("Update Proxy Agent command failed with error: {}", e);
            status.substatus = Default::default();
            common::report_status(status_folder, seq_no, status);
        }
    }
}