Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/ifconfig.cpython-310.pyc
o

}��f�#�@s�ddlZddlZddlZddlmZddlmZddlmZm	Z	m
Z
ddlmZm
Z
mZmZmZe�e�ZGdd�d�ZGdd	�d	�ZdS)
�N)�defaultdict)�	lru_cache)�IPv4Address�
IPv4Interface�
IPv6Interface)�Dict�List�Optional�Tuple�Unionc@sreZdZdZdd�Zedefdd��Zedefdd��Zedefd	d
��Z	edefdd��Z
edefd
d��ZdS)�Ifstatez�
    This class holds the parsed state of a BSD network interface.
    It is itself side-effect free.
    All methods with side-effects should be implemented on one of the
    ``BSDNetworking`` classes.
    cCsp||_d|_i|_i|_d|_g|_g|_g|_d|_d|_	g|_
d|_d|_d|_
d|_g|_i|_g|_dS)NrF)�name�index�inet�inet6�up�options�nd6�flags�mtu�metric�groups�description�media�status�mac�macs�vlan�members)�selfr
�r �D/usr/lib/python3/dist-packages/cloudinit/distros/parsers/ifconfig.py�__init__s$
zIfstate.__init__�returncCsd|jvp	d|jvS)N�loopback�lo)rr�rr r r!�is_loopback.�zIfstate.is_loopbackcCs0d|jvrdS|jgkr|jrd|jvrdSdS)N�egressT�EthernetF)rrr&r r r!�is_physical2s

zIfstate.is_physicalcC�
d|jvS)N�bridge�rr&r r r!�	is_bridge;�
zIfstate.is_bridgecCr,)N�laggr.r&r r r!�is_bond?r0zIfstate.is_bondcCsd|jvp	|jikS)Nr)rrr&r r r!�is_vlanCr(zIfstate.is_vlanN)�__name__�
__module__�__qualname__�__doc__r"�property�boolr'r+r/r2r3r r r r!rsrc
@s�eZdZdZdd�Ze�dedeeee	e
e	fffdd��Zdd	�Zd
e
deeeffdd�Zd
d�Zd
e
deeeffdd�Zd
e
defdd�ZdS)�Ifconfiga8
    A parser for BSD style ``ifconfig(8)`` output.
    For documentation here:
    - https://man.freebsd.org/ifconfig(8)
    - https://man.netbsd.org/ifconfig.8
    - https://man.openbsd.org/ifconfig.8
    All output is considered equally, and then massaged into a singular form:
    an ``Ifstate`` object.
    cCsi|_i|_dS�N)�_ifs_by_name�_ifs_by_macr&r r r!r"Ss
zIfconfig.__init__�textr#cCs�d}tt�}d}|��D�]�}t|�dkrq|ddvr=|d7}|��d}|�d�r1|dd�}t|�}||_||j|<|s@q|�	��
���}t|�dkr}|d�d�r}|�|�}|ikr}t
�|d�|_|d	|_d
|vrt|d
|_d|vr}|d|_|d�d�r�t�d
|d�}	|j�|	�|ddkr�t|d�|_|ddkr�||�d�dd�|_|d�d�s�|d�d�s�|d�d�r�t�d
|d�}
t|
�dkr�|j|
d�d�7_|ddkr�|d|_|j�|d�||d�|�|ddk�r|j�|d�||d�|�|ddk�r&|j|dd�7_|ddk�r9||�d�dd�|_|ddk�rWt�d
|d�}t|�dk�rW|d�d�|_|ddk�rc|d|_|ddk�r{|�|�}t
�|d�|j|d<|ddk�r�|� |�}t
�|d�|j!|d<|ddk�s�|ddk�r�|j"|d7_"|dd k�r�i|_#|d|j#d!<t$dt|��D]}
||
d"k�r�||
d|j#d#<�q�qt%|�|_&i|j�|j&�S)$a
        Parse the ``ifconfig -a`` output ``text``, into a dict of ``Ifstate``
        objects, referenced by ``name`` *and* by ``mac`` address.

        This dict will always be the same, given the same input, so we can
        ``@lru_cache()`` it. n.b.: ``@lru_cache()`` takes only the
        ``__hash__()`` of the input (``text``), so it should be fairly quick,
        despite our giant inputs.

        @param text: The output of ``ifconfig -a``
        @returns: A dict of ``Ifstate``s, referenced by ``name`` and ``mac``
        rN)�	� ��:���zflags=rrrrz
capabilities=�<|>rzdescription:�zoptions=�ec_capabilities�
ec_enabled�,�ether�hwaddrzgroups:zmedia:z: rrrrzmember:z	laggport:zvlan:�idz
interface:�link)'r�list�
splitlines�len�split�endswithrrr<�lower�strip�
startswith�_parse_flags�copy�deepcopyrrrr�re�append�intrrrrrrrr�_parse_inetr�_parse_inet6rrr�range�dictr=)rr>�ifindex�
ifs_by_mac�dev�line�curif�toksr�capsr�nd6_opts�ip�ir r r!�parseWs�





���



�
zIfconfig.parsecCs|jSr;)r=r&r r r!r`�szIfconfig.ifs_by_macrdcCs�d}d|dvrt|d�}t|j�}nttt|dd���}td|d|f�}d|vr6||�d�d}|j�d�d}t|j�|||d�fS)N�/rA�r�%s/%s�	broadcast)�netmaskrm�	prefixlen)	r�strrnrrZr�with_prefixlenrPrg)rrdrmrgrnror r r!r[�s��zIfconfig._parse_inetcCs4tdt|��D]}||dkr||dSqdS)NrErorA)r]rO)rrdrhr r r!�_get_prefixlen�s
��zIfconfig._get_prefixlencCs�d}d|dvr-d}|d�d�\}}d|vr|�d�d}n|�|�}td||f�}n%d|dvrCt|d�}|d�d�d}n|�|�}td|d|f�}|sZ|jrZd}n|sa|jrad}t|j�||d�fS)N�%rAz
link-localrjrlz
site-local)ro�scope)rPrrr�
is_link_local�
is_site_localrprg)rrdrt�ip6�restrorgr r r!r\�s$



zIfconfig._parse_inet6cCs�t�d|d�}i}t|�dkrS|d�d�|d<d|dvr$d|d<nd|d<tdt|��D]#}||d	krBt||d�|d	<q/||d
krRt||d�|d
<q/|S)NrDrArHrrTFrErr)rXrPrOr]rZ)rrdr�ret�tr r r!rUs
�zIfconfig._parse_flagsN)r4r5r6r7r"rrprrrrrir`rMr
r^r[rrr\rUr r r r!r:Hs
(sr:)rV�loggingrX�collectionsr�	functoolsr�	ipaddressrrr�typingrrr	r
r�	getLoggerr4�LOGrr:r r r r!�<module>s
6

Spamworldpro Mini