in proxy_agent_extension/src/service_main.rs [313:397]
fn report_proxy_agent_aggregate_status(
proxyagent_file_version_in_extension: &String,
status: &mut StatusObj,
status_state_obj: &mut common::StatusState,
restored_in_error: &mut bool,
service_state: &mut ServiceState,
) {
let aggregate_status_file_path =
proxy_agent_aggregate_status::get_proxy_agent_aggregate_status_folder()
.join(proxy_agent_aggregate_status::PROXY_AGENT_AGGREGATE_STATUS_FILE_NAME);
let proxy_agent_aggregate_status_top_level: GuestProxyAgentAggregateStatus;
match misc_helpers::json_read_from_file::<GuestProxyAgentAggregateStatus>(
&aggregate_status_file_path,
) {
Ok(ok) => {
write_state_event(
constants::STATE_KEY_READ_PROXY_AGENT_STATUS_FILE,
constants::SUCCESS_STATUS,
"Successfully read proxy agent aggregate status file".to_string(),
"report_proxy_agent_aggregate_status",
"service_main",
&logger::get_logger_key(),
service_state,
);
proxy_agent_aggregate_status_top_level = ok;
extension_substatus(
proxy_agent_aggregate_status_top_level,
proxyagent_file_version_in_extension,
status,
status_state_obj,
service_state,
);
}
Err(e) => {
let error_message =
format!("Error in reading proxy agent aggregate status file: {}", e);
write_state_event(
constants::STATE_KEY_READ_PROXY_AGENT_STATUS_FILE,
constants::ERROR_STATUS,
error_message.to_string(),
"report_proxy_agent_aggregate_status",
"service_main",
&logger::get_logger_key(),
service_state,
);
status.status = status_state_obj.update_state(false);
status.configurationAppliedTime = misc_helpers::get_date_time_string();
status.substatus = {
vec![
SubStatus {
name: constants::PLUGIN_CONNECTION_NAME.to_string(),
status: constants::TRANSITIONING_STATUS.to_string(),
code: constants::STATUS_CODE_NOT_OK,
formattedMessage: FormattedMessage {
lang: constants::LANG_EN_US.to_string(),
message: error_message.to_string(),
},
},
SubStatus {
name: constants::PLUGIN_STATUS_NAME.to_string(),
status: constants::TRANSITIONING_STATUS.to_string(),
code: constants::STATUS_CODE_NOT_OK,
formattedMessage: FormattedMessage {
lang: constants::LANG_EN_US.to_string(),
message: error_message.to_string(),
},
},
SubStatus {
name: constants::PLUGIN_FAILED_AUTH_NAME.to_string(),
status: constants::TRANSITIONING_STATUS.to_string(),
code: constants::STATUS_CODE_NOT_OK,
formattedMessage: FormattedMessage {
lang: constants::LANG_EN_US.to_string(),
message: error_message.to_string(),
},
},
]
};
}
}
if !(*restored_in_error) {
*restored_in_error = restore_purge_proxyagent(status);
}
}