Current File : //usr/lib/python3/dist-packages/sos/collector/clusters/__pycache__/saltstack.cpython-312.pyc
�

-�_gp��:�ddlZddlmZddlmZGd�de�Zy)�N)�quote)�Clusterc�d�eZdZdZdZdZdgZdZgd�ZdZ	dZ
d	ed
efd�Z
ded
efd
�Zd
efd�Zd�Zy)�	saltstackzh
    The saltstack cluster profile is intended to be used on saltstack
    clusters (Salt Project).
    �	Saltstack)zsalt-master�
saltmasterT))�compound�z+Filter node list to those matching compound)�globr
z/Filter node list to those matching glob pattern)�grainr
z-Filter node list to those with matching grain)�minion_id_unresolvableFz\Returns the FQDN grain of each minion in the node list when the minion ID is not a hostname.)�	nodegroupr
z,Filter node list to those matching nodegroup)�pillarr
z.Filter node list to those with matching pillar)�subnetr
z#Filter node list to those in subnetFz#salt-run --out=pprint manage.status�output�returnc��g}tj|jdd��}|j�D]\}}|j	|��|S)N�'�")�json�loads�replace�items�extend)�selfr�nodes�salt_json_output�_�values      �B/usr/lib/python3/dist-packages/sos/collector/clusters/saltstack.py�_parse_manage_statuszsaltstack._parse_manage_status(sN�����:�:�f�n�n�S�#�&>�?��(�.�.�0�	 �H�A�u��L�L���	 ����
manage_statusc��g}|j�D]o\}}|dk(r'|jd|�d��|j|��2|D]9}d|�d�}|j|j	|�dj���;�q|S)N�downzNode(s) z are status down.zsalt --out=newline_values_only z grains.get fqdnr)r�log_warnr�append�exec_primary_cmd�strip)rr#�	hostnames�status�minions�minion�node_cmds       r �_get_hostnames_from_grainz#saltstack._get_hostnames_from_grain/s����	�,�2�2�4�	�O�F�G�����
�
���	�1B�C�D�� � ��)�%��F�9�&��B*�+���$�$��-�-�h�7��A�G�G�I���	��r"c��|j|j�}|ddk7rtd��|jd�r9t	j
|dj
dd��}|j|�S|j|d�S)Nr+rz-Node enumeration did not return usable outputr
rrr)	r(r.�	Exception�
get_optionrrrr/r!)r�resr+s   r �
_get_nodeszsaltstack._get_nodes@s����#�#�D�M�M�2���x�=�A���K�L�L��?�?�3�4��Z�Z��H�
� 5� 5�c�3� ?�@�F��1�1�&�9�9��(�(��X��7�7r"c���|jD]Y}|ddk7s�|j|d�}|s�#|xjdt|��d|d��z
c_|j	�S|j	�S)Nrr
z tgt=z
 tgt_type=)�option_listr2r.rr4)r�option�opts   r �	get_nodeszsaltstack.get_nodesIs{���&�&�	�F��a�y�4�4��o�o�f�Q�i�0����M�M�u�U�3�Z�L�
�6�!�9�+�%N�N�M����� � �
	���� � r"N)�__name__�
__module__�__qualname__�__doc__�cluster_name�packages�sos_plugins�strict_node_listr6�targetedr.�str�listr!�dictr/r4r9�r"r rrsj���
�L��H��.�K���	�K��H�4�H��3��4���t����"8�D�8�!r"r)r�shlexr�sos.collector.clustersrrrFr"r �<module>rIs����*�A!��A!r"