def _topology_map()

in cstar/endpoint_mapping.py [0:0]


def _topology_map(mapping, topology):
    res = {}
    # Fallback for case with no overlap
    for host in topology:
        res[host] = set()
    for raw_host, raw_friends in mapping.items():
        friends = (topology.get_host(raw_friend) for raw_friend in raw_friends)
        host = topology.get_host(raw_host)
        filtered_friends = set(friend for friend in friends
                               if friend.cluster == host.cluster and friend.dc == host.dc)
        res[host] = filtered_friends
    return res