def get_dc_server_names()

in Templates/kerberosSideCar/krb_side_car.py [0:0]


def get_dc_server_names(directory_name_arg):
    """
    Get DNS servers that resolve to directory name
    :param directory_name_arg: Directory name such as example.com
    :type directory_name_arg: basestring
    :return: list of DNS server names
    :rtype: basestring
    """
    # Find IP of DNS server
    ip_list = dns.resolver.resolve(directory_name_arg)
    # Get server name of DNS server, such as server.example.com
    if ip_list is None or len(ip_list) == 0:
        print("**ERROR DNS resolution failed for %s" % directory_name_arg)
        raise NameError("**ERROR DNS resolution failed for %s" % directory_name_arg)

    server_names = []
    for ip in ip_list:
        name, _, _ = socket.gethostbyaddr(str(ip))
        server_names.append(name)

    return server_names