File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/__pycache__/network.cpython-310.pyc
o
�N�g� � @ sX d Z ddlZddlZddlZddlZddlZe�e�Z ddd�Z
ddd�Zd
d
d�ZdS )z&
Network tools to run from the Master
� N�255.255.255.255� c
C s� g }z=t jj�| d��*}|D ]}t jj�|��� }t|||� td|� �� |� |� qW d � W |S 1 s8w Y W |S t
y^ } zt�dd|� �id� g W Y d}~S d}~ww )ag
Send a "Magic Packet" to wake up a list of Minions.
This list must contain one MAC hardware address per line
CLI Example:
.. code-block:: bash
salt-run network.wollist '/path/to/maclist'
salt-run network.wollist '/path/to/maclist' 255.255.255.255 7
salt-run network.wollist '/path/to/maclist' 255.255.255.255 7
�rz
Waking up N�errorz$Failed to open the MAC file. Error: Zprogress)
�salt�utils�filesZfopenZstringutilsZ
to_unicode�strip�wol�print�append� ExceptionZ
__jid_event__Z
fire_event)Zmaclist�bcast�destport�retZifile�mac�err� r �H/opt/saltstack/salt/lib/python3.10/site-packages/salt/runners/network.py�wollist s(
�������r c C sP t jj�| �}t�tjtj�}|�tjtj d� |�
d|d |t|�f� dS )a
Send a "Magic Packet" to wake up a Minion
CLI Example:
.. code-block:: bash
salt-run network.wol 08-00-27-13-69-77
salt-run network.wol 080027136977 255.255.255.255 7
salt-run network.wol 08:00:27:13:69:77 255.255.255.255 7
� s ������� T)r r �networkZmac_str_to_bytes�socket�AF_INET�
SOCK_DGRAM�
setsockopt�
SOL_SOCKET�SO_BROADCAST�sendto�int)r r r �dest�sockr r r r
, s
r
�globc C sn g }t d | |�}|D ])}|| d �� D ]\}}|dkrq|�� }t|||� t�d|� |�|� qq|S )a
Send a "Magic Packet" to wake up Minions that are matched in the grains cache
CLI Example:
.. code-block:: bash
salt-run network.wolmatch minion_id
salt-run network.wolmatch 192.168.0.0/16 tgt_type='ipcidr' bcast=255.255.255.255 destport=7
zcache.grainsZhwaddr_interfaces�lozWaking up %s)Z__salt__�itemsr r
�log�infor ) ZtgtZtgt_typer r r ZminionsZminionZifacer r r r �wolmatch? s �r( )r r )r# r r )
�__doc__�loggingr Zsalt.utils.filesr Zsalt.utils.networkZsalt.utils.stringutils� getLogger�__name__r&