fn handle_endpoint_update()

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),
                        },
                    );
                }
            }
        }
    }