in cstar/nodetoolparser/status.py [0:0]
def parse_nodetool_status(text, cluster_name, reverse_dns_preheat, resolve_hostnames=False):
topology = []
datacenter_sections = text.split("Datacenter: ")[1:]
datacenter_names_and_nodes = [_parse_datacenter_name_and_nodes(section) for section in datacenter_sections]
if resolve_hostnames:
reverse_dns_preheat([node[1] for (_, nodes) in datacenter_names_and_nodes for node in nodes])
for (datacenter_name, nodes) in datacenter_names_and_nodes:
for node in nodes:
fqdn = node[1]
if resolve_hostnames:
try:
fqdn=socket.gethostbyaddr(node[1])[0]
except socket.herror:
pass
topology.append(Host(fqdn=fqdn, ip=node[1], dc=datacenter_name, cluster=cluster_name,
is_up=(node[0] == "UN"), rack=node[7], host_id=node[6]))
return Topology(topology)