in nfm-controller/src/kubernetes/kubernetes_metadata_collector.rs [212:237]
fn handle_endpoint_update(
slice: EndpointSlice,
mut pod_info_root_map: MutexGuard<'_, HashMap<IpAddr, HashMap<i32, PodInfo>>>,
) {
let ports: Vec<i32> = Self::get_tcp_ports_from_endpoint_slice(&slice);
for endpoint in &slice.endpoints {
for address in &endpoint.addresses {
let pod_ip = match IpAddr::from_str(address) {
Ok(ip) => ip,
Err(_) => continue, // should never happen, but if happens, we dont care
};
let pod_name = Self::get_pod_name_from_endpoint(endpoint);
for port in &ports {
pod_info_root_map.entry(pod_ip).or_default().insert(
*port,
PodInfo {
name: pod_name.clone(),
namespace: slice.metadata.namespace.as_ref().unwrap().clone(),
service_name: Self::get_service_name_from_endpoint_slice(&slice),
},
);
}
}
}
}