HEX
Server: LiteSpeed
System: Linux shams.tasjeel.ae 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 11 08:09:09 EST 2025 x86_64
User: infowars (1469)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //usr/lib/python3.9/site-packages/ipalib/__pycache__/dns.cpython-39.opt-1.pyc
a

}�f�
�@sdddlmZddlZddlmZdZdZdZdd�Zd	d
�Z	dd�Z
ddd�Zdd�Zddd�Z
dS)�)�absolute_importN)�errorsz%srecordz
%s_part_%sz%s_extra_%scCs&t�d|�}|durdS|�d���S)Nz([^_]+)record$���re�match�group�upper��namer�r�./usr/lib/python3.9/site-packages/ipalib/dns.py�get_record_rrtype!srcCs&t�d|�}|durdS|�d���S)Nz([^_]+)_part_.*$rrr
rrr
�get_part_rrtype)srcCs&t�d|�}|durdS|�d���S)Nz([^_]+)_extra_.*$rrr
rrr
�get_extra_rrtype1srFcsnd}t�fdd�|D��rdSd}���D]0}dd�|jD�}||vr*�|sR|r*d}q\q*|sjt�|��dS)N)�setattrZaddattr�delattr�renameZdnsttlc3s|]}|�vVqdS)Nr)�.0�k��optionsrr
�	<genexpr>;�z"has_cli_options.<locals>.<genexpr>FcSs g|]}t|�st|�r|�qSr)rr)r�nrrr
�
<listcomp>@s�z#has_cli_options.<locals>.<listcomp>T)�any�keys�paramsrZOptionError)�cmdrZ
no_option_msgZallow_empty_attrsZ
sufficientZhas_options�attrZ
obj_paramsrrr
�has_cli_options9sr!c	Cs\z>|j|}t|j�pt|j�}|s*WdS|jt|��}WnttfyVYdS0|S)z�
    Get an instance of DNSRecord parameter that has part_name as its part.
    If such parameter is not found, None is returned

    :param part_name Part parameter name
    N)rrrr�record_name_format�lower�KeyError�AttributeError)rZ	part_nameZparamZrrtype�rrparamrrr
�get_rrparam_from_partKs

�r'ccsPg}|D]B}t||�}|dur q|r.t|�r.q|j|vr|�|j�|VqdS)a�
    Iterates through all DNSRecord instances that has at least one of its
    parts or extra options in given dictionary. It returns the DNSRecord
    instance only for the first occurence of part/extra option.

    :param kw Dictionary with DNS record parts or extra options
    :param skip_extra Skip DNS record extra options, yield only DNS records
                      with a real record part
    N)r'rr�append)r�kwZ
skip_extraZ	processed�optr&rrr
�iterate_rrparams_by_partscs


r+)F)F)Z
__future__rrZipalibrr"Zpart_name_formatZextra_name_formatrrrr!r'r+rrrr
�<module>s