in nfm-controller/src/metadata/eni.rs [137:171]
fn retrieve_network_information(client: &aws_config::imds::Client) -> Vec<NetworkInterfaceInfo> {
let rt = match tokio::runtime::Runtime::new() {
Ok(rt) => rt,
Err(err) => {
error!(error = err.to_string(); "Error creating tokio runtime");
return vec![];
}
};
rt.block_on(async {
match client
.get("/latest/meta-data/network/interfaces/macs/")
.await
{
Ok(macs) => {
let mut network_information = vec![];
let macs = String::from(macs);
for mac in macs.split('\n') {
// There is trailing backslash in each line.
let mut mac = mac.to_string();
if !mac.is_empty() && mac.ends_with('/') {
mac.pop();
}
network_information.extend(retrieve_mac_information(client, mac).await)
}
network_information
}
Err(err) => {
error!(error = err.to_string(); "Error retrieving network information");
vec![]
}
}
})
}