File: //proc/self/root/lib/python3.9/site-packages/ipaclient/__pycache__/discovery.cpython-39.opt-1.pyc
a
}�f;] � @ sT d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm Z d dl
mZ d dlm
Z
d dlmZmZ d d lmZ d d
lmZmZ d dlmZ zd dlZW n ey� dZY n0 d dlmZ e�e�Zd Zd
Z dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)ede de!de"de#de$de%de&de'de(d i
Z*d!d"� Z+G d#d$� d$�Z,d%d&� Z-ed'k�rPe-� dS )(� )�absolute_importN)� rdatatype)�DNSException)�errors)�FQDN)�validate_domain_name)� query_srv�resolve)�paths)�valid_ip�realm_to_suffix)�DN)�ipaldap���������������i����i����i����i�zipa v2.0ZSuccess�NOT_FQDN�NO_LDAP_SERVER�REALM_NOT_FOUND�NOT_IPA_SERVER�NO_ACCESS_TO_LDAP�NO_TLS_LDAP�PYTHON_LDAP_NOT_INSTALLED�BAD_HOST_CONFIG�
UNKNOWN_ERRORc C s | j t� ddgd�}dd� |jd D �}d|v rd|jd \}|�d�}||v rX|�|� |�d|� |D ]�}t�d|� z| �t|�| j d �\}W n" t
jy� t�d
� Y qhY n0 |jd \}|�d��� }|t
kr�t�d|t
� qht�d
|� t|� S dS )z�
Get base DN of IPA suffix in given LDAP server.
None is returned if the suffix is not found
:param conn: Bound LDAPClient that will be used for searching
ZdefaultnamingcontextZnamingcontexts)Z
attrs_listc S s g | ]}|� d ��qS )�utf-8)�decode)�.0�c� r! �7/usr/lib/python3.9/site-packages/ipaclient/discovery.py�
<listcomp>T � z"get_ipa_basedn.<locals>.<listcomp>r r z'Check if naming context '%s' is for IPAz(info=IPA*)zBLDAP server did not return info attribute to check for IPA version�infoz>Detected IPA server version (%s) did not match the client (%s)z*Naming context '%s' is a valid IPA contextN)Z get_entryr
�rawr �remove�insert�logger�debug�get_entriesZ
SCOPE_BASEr �NotFound�lower�IPA_BASEDN_INFO)Zconn�entryZcontexts�default�contextr% r! r! r"