in identity/aziot-identityd/src/identity.rs [723:759]
fn get_backup_provisioning_info(
&self,
credentials: aziot_identity_common::Credentials,
) -> Option<IoTHubDevice> {
let mut prev_device_info_path = self.homedir_path.clone();
prev_device_info_path.push(DEVICE_BACKUP_LOCATION);
if !prev_device_info_path.exists() {
return None;
}
match HubDeviceInfo::new(&prev_device_info_path) {
Ok(device_info) => match device_info {
Some(device_info) => {
let device = IoTHubDevice {
local_gateway_hostname: device_info.local_gateway_hostname,
iothub_hostname: device_info.hub_name,
device_id: device_info.device_id,
credentials,
};
Some(device)
}
None => None,
},
Err(err) => {
log::warn!("Ignoring invalid device info backup: {}", err);
// Remove the invalid device info so it's not checked when reconciling identities.
if let Err(err) = std::fs::remove_file(&prev_device_info_path) {
log::warn!("Failed to delete invalid device info backup: {}", err);
}
None
}
}
}