관리-도구
편집 파일: saltstack.cpython-39.pyc
a -�_gp � @ s4 d dl Z d dlmZ d dlmZ G dd� de�ZdS )� N)�quote)�Clusterc @ sh e Zd ZdZdZdZdgZdZg d�ZdZ dZ eed �d d�Z eed�d d�Zed�dd�Zdd� ZdS )� saltstackzh The saltstack cluster profile is intended to be used on saltstack clusters (Salt Project). Z Saltstack)zsalt-masterZ saltmasterT))Zcompound� z+Filter node list to those matching compound)�globr z/Filter node list to those matching glob pattern)Zgrainr 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.)Z nodegroupr z,Filter node list to those matching nodegroup)Zpillarr z.Filter node list to those with matching pillar)Zsubnetr z#Filter node list to those in subnetFz#salt-run --out=pprint manage.status)�output�returnc C s6 g }t �|�dd��}|�� D ]\}}|�|� q|S )N�'�")�json�loads�replace�items�extend)�selfr ZnodesZsalt_json_output�_�value� r �D/usr/lib/python3.9/site-packages/sos/collector/clusters/saltstack.py�_parse_manage_status( s zsaltstack._parse_manage_status)� manage_statusr c C sn g }|� � D ]\\}}|dkr:| �d|� d�� |�|� q|D ](}d|� d�}|�| �|�d �� � q>q|S )NZdownzNode(s) z are status down.zsalt --out=newline_values_only z grains.get fqdnr )r Zlog_warnr �append�exec_primary_cmd�strip)r r Z hostnames�statusZminionsZminion�node_cmdr r r �_get_hostnames_from_grain/ s ��z#saltstack._get_hostnames_from_grain)r c C sX | � | j�}|d dkr td��| �d�rJt�|d �dd��}| �|�S | �|d �S )Nr r z-Node enumeration did not return usable outputr r r r ) r r � Exception� get_optionr r r r r )r �resr r r r � _get_nodes@ s zsaltstack._get_nodesc C sX | j D ]H}|d dkr| �|d �}|r| jdt|�� d|d � �7 _ qPq| �� S )Nr r z tgt=z tgt_type=)�option_listr r r r! )r �option�optr r r � get_nodesI s "zsaltstack.get_nodesN)�__name__� __module__�__qualname__�__doc__Zcluster_nameZpackagesZsos_pluginsZstrict_node_listr"