HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/bridge.cpython-310.pyc
o

�N�g�)�@sdZddlZddlZddlZddiZgd�Zdd�Zdd	�Zd8d
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zd8dd�Zd8dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd8d&d'�Zd(d�Zd8d)d*�Zd+d,�Zd8d-d.�Zd8d/d0�Zd9d1d2�Zd9d3d4�Zd:d6d7�ZdS);z8
Module for gathering and managing bridging information
�N�list_�list)�FreeBSD�NetBSD�OpenBSDcCsDddddd�}td}|D]}||krtjj�||�rdSq
dS)zZ
    Confirm this module is supported by the OS and the system has
    required tools
    �ifconfig�brctl�brconfig)r�Linuxrr�kernelT)Fz�The bridge execution module failed to load: requires one of the following tool/os combinations: ifconfig on FreeBSD/OpenBSD, brctl on Linux or brconfig on NetBSD.)�
__grains__�salt�utils�path�which)Zsupported_os_toolZcur_os�_os�r�G/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/bridge.py�__virtual__s��rcCstjj�|�S)z&
    Internal, returns tools path
    )r
rrr)Zostoolrrr�
_tool_path(srcCs�td�}|r|�d|��}n|�d�}i}td|dd���D]F}|�d�r'q|��}|s.qt|�dkrR|d	}|d|d
d�||<t|�dkrR|dg||d
<t|�dkre|re||d
�|d	�q|rxz||WStywYdSw|S)zO
    Internal, returns bridges and enslaved interfaces (GNU/Linux - brctl)
    rz show z show�cmd.runF�Zpython_shellzbridge name�r�)�id�stp��
interfacesN)r�__salt__�
splitlines�
startswith�split�len�append�KeyError)�brr�cmd�brs�line�vals�brnamerrr�
_linux_brshow/s8


��
�r+cC�"td�}td|�d|��dd�S)�&
    Internal, creates the bridge
    rrz addbr Fr�rr�r%rrrr�_linux_bradd^�r0cCr,)�&
    Internal, deletes the bridge
    rrz delbr Frr.r/rrr�_linux_brdelfr1r3cC�(td�}td|�d|�d|��dd�S)�1
    Internal, adds an interface to a bridge
    rrz addif � Frr.�r%�ifacerrrr�_linux_addifn� r9cCr4)�6
    Internal, removes an interface from a bridge
    rrz delif r6Frr.r7rrr�_linux_delifvr:r<cCr4)z"
    Internal, sets STP state
    rrz stp r6Frr.)r%�staterrrr�
_linux_stp~r:r>cCs�tddkr
t|�Std�}i}|r|||<n|�d�}td|dd���D]}|||<q&i}|D]>}|�d|��}td|dd���D]*}gd	d
�||<|��}|�d�rn||d�|�d�d
�d|vrnd||d<qDq1|rv||S|S)zN
    Internal, returns bridges and member interfaces (BSD-like: ifconfig)
    rrrz
 -g bridgerFrr6�no�rrzmember:rr�STP�yesr)	r�_netbsd_brshowrrr�lstripr r#r!)r%rZifacesr&r(r'r8rrr�_bsd_brshow�s0



��rEcCs�td�}|r|�d|��}n|�d�}i}d}td|dd���D]@}|�d�r8d}|�d�d	}gd
d�||<d|vr?d
}q!|ra|rat�d|�}|ra||d�|�d��d|vrad||d<q!|rtz||WSt	ysYdSw|S)zO
    Internal, returns bridges and enslaved interfaces (NetBSD - brconfig)
    r	r6z -aFrrZbridge�:rr?r@zInterfaces:Tz\s*([a-z0-9]+)\s.*<.*>rrrArBrN)
rrrr r!�re�matchr#�groupr$)r%r	r&r'Z	start_intr(r*�mrrrrC�s8

�
�rCcCsttd}td�}|sdStd|�d|�d�dd�dkrdS|d	kr8td
�}td|�d|�d�dd�dkr8dSdS)
r-rrFzcmd.retcoder6z
 create uprrrr	z upT�rrr)r%rrr	rrr�
_bsd_bradd�s  rLcCs,td�}|sdStd|�d|�d�dd�S)r2rFrr6z destroyrr.)r%rrrr�
_bsd_brdel�srMcC�\td}|dkrtd�}d}ntd�}d}|r|sdStd|�d	|�d	|�d	|��dd
�S)r5rrr	�addrZaddemFrr6rrK�r%r8rr&Zbrcmdrrr�
_bsd_addif��&rQcCrN)r;rrr	�deleterZdeletemFrr6rrKrPrrr�
_bsd_delifrRrTcCsTtd}|dkr
td�}ntd�}|r|sdStd|�d|�d|�d|��dd�S)	zi
    Internal, sets STP state. On BSD-like, it is required to specify the
    STP physical interface
    rrr	rFrr6rrK)r%r=r8rr&rrr�_bsd_stps
&rUcOsTtdtvr	d}ntd��}ttjtd|�d|���}t|�r(||i|��SdS)z<
    Internal, dispatches functions by operating system
    rZbsd�_N)r�SUPPORTED_BSD_LIKE�lower�getattr�sys�modules�__name__�callable)�func�args�kwargsrZ_os_funcrrr�_os_dispatch#s�racC�
td|�S)a%
    Returns bridges interfaces along with enslaved physical interfaces. If
    no interface is given, all bridges are shown, else only the specified
    bridge values are returned.

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.show
        salt '*' bridge.show br0
    �brshow�ra�r%rrr�show5s

rfcCs,td�}|sdSg}|D]}|�|�q|S)zv
    Returns the machine's bridges list

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.list
    rcN)rar#)r'Zbrlistr%rrrrEs
cCs"|sdStd|�}|r|dSdS)z�
    Returns interfaces attached to a bridge

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.interfaces br0
    Nrcrrd)r%Zbr_retrrrrYs

�rc
GsZtd�}|sdSi}|D]}|D]}z|||dvr|||<Wqty)Yqwq|S)z�
    Returns the bridge to which the interfaces are bond to

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.find_interfaces eth0 [eth1...]
    rcNr)ra�	Exception)r_r'Ziflistr8r%rrr�find_interfacesks
���rhcCrb)zg
    Creates a bridge

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.add br0
    ZbraddrdrerrrrO��

rOcCrb)zj
    Deletes a bridge

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.delete br0
    ZbrdelrdrerrrrS�rirScC�td||�S)z{
    Adds an interface to a bridge

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.addif br0 eth0
    �addifrd�r%r8rrrrk��
rkcCrj)z�
    Removes an interface from a bridge

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.delif br0 eth0
    �delifrdrlrrrrn�rmrn�disablecCsRtd}|dkrddd�}td|||�S|tvr'ddd�}td||||�SdS)	a�
    Sets Spanning Tree Protocol state for a bridge

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.stp br0 enable
        salt '*' bridge.stp br0 disable

    For BSD-like operating systems, it is required to add the interface on
    which to enable the STP.

    CLI Example:

    .. code-block:: bash

        salt '*' bridge.stp bridge0 enable fxp0
        salt '*' bridge.stp bridge0 disable fxp0
    rr
�onZoff)�enablerorz-stpF)rrarW)r%r=r8rZstatesrrrr�s

r)N)NN)NroN) �__doc__rGrZZsalt.utils.pathr
Z__func_alias__rWrrr+r0r3r9r<r>rErCrLrMrQrTrUrarfrrrhrOrSrkrnrrrrr�<module>s>
/

#%