HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/pyobjects.cpython-310.pyc
o

�N�g�*�@s�dZddlZddlZddlmZdZe�e�ZGdd�de	�Z
Gdd�de
�ZGd	d
�d
e
�ZGdd�d�Z
Gd
d�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�de�Zdd�ZGdd�ded�ZdS)z�
:maintainer: Evan Borgstrom <evan@borgstrom.ca>

Pythonic object interface to creating state data, see the pyobjects renderer
for more documentation.
�N��OrderedDict)�listenZ	onchangesZonfail�requireZwatchZuseZ	listen_inZonchanges_inZ	onfail_inZ
require_inZwatch_inZuse_inc@�eZdZdS)�StateExceptionN��__name__�
__module__�__qualname__�rr�H/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/pyobjects.pyr�rc@r)�DuplicateStateNrrrrr
r#rrc@r)�InvalidFunctionNrrrrr
r'rrc@s�eZdZdZe�ZgZgZe�ZdZ	e
dd��Ze
dd��Ze
dd��Z
e
dd
d��Ze
dd
��Ze
dd��Ze
dd��Ze
dd��ZdS)�RegistryzK
    The StateRegistry holds all of the states that have been created.
    TcCs t�|_g|_g|_t�|_dS�N)r�states�
requisites�includes�extends��clsrrr
�empty6szRegistry.emptycGs|jsdS|j|7_dSr)�enabledr)r�argsrrr
�include=szRegistry.includecCsVtdd�|j��D��}|jr|j|d<|jr%tdd�|j��D��|d<|��|S)NcS�g|]\}}||f�qSrr��.0�id_Zstates_rrr
�
<listcomp>F�z&Registry.salt_data.<locals>.<listcomp>rcSrrrrrrr
r!Mr"�extend)rr�itemsrrr)rrrrr
�	salt_dataDs
�zRegistry.salt_dataFcCs�|jsdS|r|j}n|j}||vr#|j||vr"td�||j���nt�||<|jrG|jD]}|j|j	vr<g|j	|j<|j	|j�
|��q.||�|��dS)Nz*A state with id ''{}'', type ''{}'' exists)rrr�	full_funcr�formatrr�	requisite�kwargs�append�update)rr �stater#�attr�reqrrr
�addTs(���

zRegistry.addcCs|j||dd�dS)NT)r#)r/)rr r,rrr
r#qszRegistry.extendcCst|�Sr)�StateExtend)r�namerrr
�make_extenduszRegistry.make_extendcCs|jsdS|j�|�dSr)rrr*)rr(rrr
�push_requisiteyszRegistry.push_requisitecCs|jsdS|jd=dS)N���)rrrrrr
�
pop_requisite�szRegistry.pop_requisiteN)F)r	r
r�__doc__rrrrrr�classmethodrrr%r/r#r2r3r5rrrr
r+s.





rc@seZdZdd�ZdS)r0cC�
||_dSr)r1)�selfr1rrr
�__init__��
zStateExtend.__init__N)r	r
rr:rrrr
r0�sr0c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�StateRequisitecCs||_||_||_dSr)r(�moduler )r9r(r=r rrr
r:�s
zStateRequisite.__init__cC�|j|jiSr)r=r �r9rrr
�__call__��zStateRequisite.__call__cCst�|�dSr)rr3r?rrr
�	__enter__�szStateRequisite.__enter__cC�t��dSr�rr5�r9�type�value�	tracebackrrr
�__exit__�rAzStateRequisite.__exit__N)r	r
rr:r@rBrIrrrr
r<�s
r<c@s,eZdZdZd
dd�Zdd�Zddd	�ZdS)�StateFactorya�
    The StateFactory is used to generate new States through a natural syntax

    It is used by initializing it with the name of the salt module::

        File = StateFactory("file")

    Any attribute accessed on the instance returned by StateFactory is a lambda
    that is a short cut for generating State objects::

        File.managed('/path/', owner='root', group='root')

    The kwargs are passed through to the State object
    NcCs||_|dur	g}||_dSr)r=�valid_funcs)r9r=rKrrr
r:�s
zStateFactory.__init__cs4�jr��jvrtd���j�����fdd�}|S)Nz=The function '{}' does not exist in the StateFactory for '{}'cst|�j�fi|��Sr)�Stater=)r r)��funcr9rr
�
make_state�sz,StateFactory.__getattr__.<locals>.make_state)rKrr'r=)r9rNrOrrMr
�__getattr__�s��zStateFactory.__getattr__rcCst||j|�S)zJ
        When an object is called it is being used as a requisite
        )r<r=)r9r r(rrr
r@�szStateFactory.__call__r)r)r	r
rr6r:rPr@rrrr
rJ�s


rJc@sPeZdZdZdd�Zedd��Zedd��Zdd	�Zd
d�Z	dd
�Z
dd�ZdS)rLz�
    This represents a single item in the state tree

    The id_ is the id of the state, the func is the full name of the salt
    state (i.e. file.managed). All the keyword args you pass in become the
    properties of your state.
    c	Ks�||_||_||_tD]}||vr*zt||�Wqty)||g||<Yqwq||_t|jt�rBt	�
|jj|�|jj|_nt	�|j|�t
d|j|j�|_dS)Nr)r r=rN�
REQUISITES�iter�	TypeErrorr)�
isinstancer0rr#r1r/r<r()r9r r=rNr)r-rrr
r:�s"��zState.__init__csH|j�tD]}|�vrdd��|D��|<q�fdd�t����D�S)NcSs g|]}t|t�r|�n|�qSr)rTr<)rr.rrr
r!�s��zState.attrs.<locals>.<listcomp>csg|]}|�|i�qSrr)r�k�r)rr
r!�r")r)rQ�sorted�keys)r9r-rrVr
�attrs�s
��zState.attrscCs|j�d|j��S�N�.)r=rNr?rrr
r&�szState.full_funccCs|j�d|j�d|j��S)Nz = �:)r r&rYr?rrr
�__str__�sz
State.__str__cCr>r)r&rYr?rrr
r@rAzState.__call__cCst�|j�dSr)rr3r(r?rrr
rBszState.__enter__cCrCrrDrErrr
rIrAzState.__exit__N)r	r
rr6r:�propertyrYr&r]r@rBrIrrrr
rL�s

rLc@s eZdZdZdd�Zdd�ZdS)�
SaltObjectz�
    Object based interface to the functions in __salt__

    .. code-block:: python
       :linenos:

        Salt = SaltObject(__salt__)
        Salt.cmd.run(bar)
    cCr8r)�_salt)r9�saltrrr
r:r;zSaltObject.__init__csG��fdd�d�}|�S)NcseZdZ��fdd�ZdS)z+SaltObject.__getattr__.<locals>.__wrapper__cs*z�j��d|��WStyt�wrZ)r`�KeyError�AttributeError)ZwselfrN��modr9rr
rPs
�z7SaltObject.__getattr__.<locals>.__wrapper__.__getattr__N)r	r
rrPrrdrr
�__wrapper__srfr)r9rerfrrdr
rPszSaltObject.__getattr__N)r	r
rr6r:rPrrrr
r_s
r_cs<eZdZdZedd��Zdd�Z�fdd�Zdd	�Z�Z	S)
�MapMetazk
    This is the metaclass for our Map class, used for building data maps based
    off of grain data.
    cCst�Srr)�metaclsr1�basesrrr
�__prepare__+szMapMeta.__prepare__cCst�||||�}|��|_|Sr)rF�__new__rX�__ordered_attrs__)rr1rirY�crrr
rk/s
zMapMeta.__new__cs|��t��|||�dSr)�__set_attributes__�superr:)rr1riZnmspc��	__class__rr
r:4szMapMeta.__init__c
Cs�g}t�}|jD]B}|ddkrq|j|}t�|�sqt|dd�}|�|�t|d|�}i}|jD]}|ddkrA|j|||<q2|�|||f�qzGt|j	d�sXt
�d�n9g}	|j	D]'}tt
|��D]\}
}z|d|kry|	�|�d||
<Wqety�Yqewq]|	�dd	�|D��|	}Wn	ty�Ynwi}|r�tjd
|�}|D]\}}}||vr�q�|||kr�|�|�q�t|d�r�tjd|j�}
|
r�|�|
�|D]
}t||||�q�dS)
Nr�_Z	__grain__Z	os_familyZ	__match__�__iter__z'pyobjects: priority must be an iterablecSsg|]}|dur|�qSrr)r�xrrr
r!lr"z.MapMeta.__set_attributes__.<locals>.<listcomp>zgrains.item�merge�
pillar.get)�setrl�__dict__�inspectZisclass�getattrr/r*�hasattr�priority�log�error�list�	enumeraterSr#rc�Map�__salt__r+ru�setattr)rZ
match_infoZ
grain_targets�itemZfiltZgrain�matchZmatch_attrsr1Znew_match_info�indexrYZ
grain_valsZpillarrrr
rn8sl




�

�����
�

�zMapMeta.__set_attributes__)
r	r
rr6r7rjrkr:rn�
__classcell__rrrpr
rg%s
rgcOst�d�iS)Nz-Map needs __salt__ set before it can be used!)r}r~)�arUrrr
�	need_salt�s
r�c@seZdZeed�ZdS)r�)zgrains.filter_byrvN)r	r
rr�r�rrrr
r��sr�)�	metaclass)r6ry�loggingZsalt.utils.odictrrQ�	getLoggerr	r}�	Exceptionrrrrr0r<rJrLr_rFrgr�r�rrrr
�<module>s$
]+D`