File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/roster/__pycache__/range.cpython-310.pyc
o
�N�g � @ s~ d Z ddlZddlZddlZe�e�ZdZzddlZ dZW n e
y+ e�d� Y nw dd� Zdd d
�Z
dd� Zd
d� ZdS )a$
This roster resolves targets from a range server.
:depends: seco.range, https://github.com/ytoolshed/range
When you want to use a range query for target matching, use ``--roster range``. For example:
.. code-block:: bash
salt-ssh --roster range '%%%example.range.cluster' test.ping
� NFTzUnable to load range libraryc C s t S )N)� HAS_RANGE� r r �E/opt/saltstack/salt/lib/python3.10/site-packages/salt/roster/range.py�__virtual__ s r �rangec
K s� t j�td �}t�dtd � g }z
t�d| � |�| �}W n t jjy; } zt�d|� i W Y d}~S d}~ww t�d|� t t d�}t�d|� z || | |�}W n t
y_ t�w t�d |� |S )
z/
Return the targets from a range query
Zrange_serverz$Range connection to '%s' establishedzQuerying range for '%s'zRange server exception: %sNzRange responded with: '%s')r �globzFiltering using tgt_type: '%s'z!Targeting data for salt-ssh: '%s')�secor ZRange�__opts__�log�debug�expandZRangeException�error�target_range�KeyError�NotImplementedError)�tgtZtgt_type�kwargs�r�hosts�errZtgt_funcZtargeted_hostsr r r �targets# s. ����r c C sZ i }|D ]&}t �t�di ��||<