HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan_cli/cli/__pycache__/utils.cpython-312.pyc
�

nG�f[.�	��ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZdZ
dZdZdZd	d
dddd
ddd�Ze	eefZd�Zd�Zd�Zdedefd�Zd�Zd�Zdedefd�Zdeddfd�Zd3d�Zd3deded efd!�Z d"�Z!d#�Z"d$�Z#d%�Z$d&�Z%d'�Z&d(�Z'd)�Z(d3d*�Z)d+�Z*d,efd-�Z+d.edefd/�Z,de-fd0�Z.Gd1�d2ej^�Z0y)4�N�)�ConfigurationError)�
NetDefinition�NetplanExceptionzNetworkManager.servicez+snap.network-manager.networkmanager.servicez/etc/iproute2/rt_tablesz/usr/share/iproute2/rt_tables�unspec�default�main�local���)rrrr
rrr	r
c�B�tjjdd�S)N�NETPLAN_GENERATE_PATHz/usr/libexec/netplan/generate)�os�environ�get���+/usr/share/netplan/netplan_cli/cli/utils.py�get_generator_pathr*s��
�:�:�>�>�1�3R�S�Src�b�tjdddtgtj��dk(S)N�	systemctl�--quiet�
is-enabled)�stderrr)�
subprocess�call�NM_SNAP_SERVICE_NAME�DEVNULLrrr�is_nm_snap_enabledr .s*���?�?�K��L�BV�W�`j�`r�`r�s�wx�x�xrc�t�tjdg|ztjtj��y)N�nmcli��stdoutr�r�
check_callr��argss rr"r"2s)�����7�)�d�*�:�3E�3E�j�N`�N`�arr(�returnc�8�tjdg|zd��S)Nr"T��text)r�check_outputr's r�	nmcli_outr.8s���"�"�G�9�t�#3�$�?�?rc�\�	tdg�y#ttjf$rYywxYw)z"Check if NetworkManager is running�generalTF)r"�OSErrorr�SubprocessErrorrrr�
nm_runningr3>s1���
�y�k�����Z�/�/�0����s��+�+c
�F�tjd�}t�}|D]p}t|d�5}|D]T}|j	|�}|s�|jtt
j||jd����nddd��r|S#1swY�~xYw)Nz^interface-name=(.*)$�r�)	�re�compile�set�open�match�update�fnmatch�filter�group)�paths�devices�pat�
interfaces�path�f�line�ms        r�
nm_interfacesrHHs���
�*�*�,�
-�C���J����
�$��_�	���
���I�I�d�O����%�%�c�'�.�.��!�'�'�!�*�*M�&N�O��
�	�	����	�	�s�B�AB�B 	�	interfacec	��tdddddd|g�}|j�jd�}|d}|d	k7r|Sd
S)Nz-m�tabularz-fzGENERAL.CONNECTION�device�show�
r6z--�)r.�strip�split)rI�output�lines�
connections    r�nm_get_connection_for_interfacerUVsN��
��i��/C�X�v�W`�a�
b�F��L�L�N� � ��&�E��q��J�#�t�+�:�3��3rrTc�T�	tdd|g�y#tj$rYywxYw)NrT�up)r"r�CalledProcessError)rTs r�nm_bring_interface_uprY]s.��
�
�|�T�:�.�/���(�(�
��
�s��'�'c�^�t�rt|tg|�St|tg|�S�N)r rr�NM_SERVICE_NAME)�action�syncs  r�systemctl_network_managerr_ds/������"6�!7��>�>��V�o�.��5�5rr]�servicesr^c��t|�dk\r>d|g}|s|jd�|j|�tj|�yy)Nr6rz
--no-block)�len�append�extendrr&)r]r`r^�commands    rrrlsF��
�8�}�����'����N�N�<�(����x� ����g�&�rc��t�}tjgd�d��}|j�D]Q}|j	�jd�}|dj
�s�6|ddvs�>|j|d��S|S)N)�
networkctlz
--no-pagerz--no-legendTr+� r���)�	unmanaged�linger)r9rr-�
splitlinesrPrQ�	isnumeric�add)rC�outrF�ss    r�networkd_interfacesrqxs{����J�
�
!�
!�"M�TX�
Y�C���� �!���J�J�L���s�#���Q�4�>�>���"��-D� D��N�N�1�Q�4� �!��rc�2�tjddg�y)Nrg�reload�rr&rrr�networkctl_reloadru�s�����<��2�3rc�h�t|�dk\r$tjddgt|�z�yy)Nr6rg�reconfigure)rbrr&�list)rCs r�networkctl_reconfigurery�s0��
�:��!�����|�]�;�d�:�>N�N�O�rc�>�tjddd|g�dk(ryy)z4Return True if at least one matching unit is runningrrz	is-activerTF)rr)�unit_patterns r�systemctl_is_activer|�s"������Y��\�J�K�q�P��rc��tjdd|gtjtjd��}|jdkDrd|jvryy)z5Return True if output is "masked" or "masked-runtime"rrT�r$rr,r�maskedF)r�run�PIPE�
returncoder$�r{�ress  r�systemctl_is_maskedr��sH��
�.�.�+�|�\�B� *���
���"�$�C��~�~���h�#�*�*�4��rc��tjdd|gtjtjd��}|jdk7ryy)z7Return True if returncode is other than "not-found" (4)rrTr~�F)rr�r�r�r�s  r�systemctl_is_installedr��s=��
�.�.�+�|�\�B� *���
���"�$�C��~�~����rc�2�tjgd��y)zEReload systemd unit files from disk and re-calculate its dependencies)rz
daemon-reloadz--no-ask-passwordNrtrrr�systemctl_daemon_reloadr��s�����M�Nrc�t�tjddd|gtjtj��y)z8Flush all IP addresses of a given interface via iproute2�ip�addr�flushr#Nr%)�ifaces r�
ip_addr_flushr��s*�����4���%�8��AS�AS�\f�\n�\n�orc	���tjjd|�}|rx	ttjj|d��5}|j	�j�}|dk7r!t
jd||�	ddd�y	ddd�	tjjtjj|dd��}tjj|�}|S#1swY�ixYw#t$r*}t
jd|t|��Yd}~yd}~wwxYw#t$r+}t
jd||t|��Yd}~yd}~wwxYw)	Nz/sys/class/net�	operstate�downz'device %s operstate is %s, not changingz$Cannot determine operstate of %s: %srL�driverz0Cannot replug %s: cannot read link %s/device: %s)
rrD�joinr:�readrP�logging�debug�IOError�error�str�realpath�basename)rI�	only_down�devdirrE�state�er��driver_names        r�get_interface_driver_namer��s'��
�W�W�\�\�*�I�
6�F��	��b�g�g�l�l�6�;�7�8�
 �A�������(���F�?��M�M�"K�Y�X]�^��	
 �
 �"�
 �����!�!�"�'�'�,�,�v�x��"J�K���g�g�&�&�v�.��
��!
 �
 ��
�	��M�M�@�)�S�QR�V�T���	�����
�
�H�)�U[�]`�ab�]c�d����sN�)D�
<C;�	D�D�AD=�;D�D�	D:� D5�5D:�=	E1�!E,�,E1c��tj|�jtjig�d}|jdd�S)Nrr�rO)�	netifaces�ifaddressesr�AF_LINK)rI�links  r�get_interface_macaddressr��s=��� � ��+�/�/�	�0A�0A�B�4�H��K�D��8�8�F�B��rrCc����t�t�sJ��jsJ�tt	�fd�|��}t|�dk7rt
j|�y|dS)Nc�P���j|t|�t|���S)N)�
iface_name�iface_driver�	iface_mac)�_match_interfacer�r�)�itf�netdefs �r�<lambda>z%find_matching_iface.<locals>.<lambda>�s*���f�&=�&=��2�3�7�.�s�3�'>�'5�rr6r)�
isinstancer�
_has_matchrxr>rbr��info)rCr��matchess ` r�find_matching_ifacer��sg����f�m�,�,�,�������6�5�7A�B�C�G��7�|�q�����W����1�:�r�
macaddressc�6�d}tj||�duS)NzT^[a-fA-F0-9][a-fA-F0-9](:[a-fA-F0-9][a-fA-F0-9]){5}((:[a-fA-F0-9][a-fA-F0-9]){14})?$)r7r;)r��MAC_PATTERNs  r�is_valid_macaddressr��s��h�K�
�8�8�K��,�D�8�8rc���i}t}tjj|�st}	t|d�5}|D]]}|j
�}t|�dk(s�"|dj�s�6|d|t|d�<t|d�||d<�_	ddd�|S#1swY|SxYw#t$r"tjd|�d��tcYSwxYw)Nr5rrr6z
Cannot open 'z
' for reading)�NEW_RT_TABLES_PATHrrD�exists�OLD_RT_TABLES_PATHr:rQrbrm�int�	Exceptionr�r��RT_TABLES_DEFAULT)�lookup_tablerD�	rt_tablesrF�
split_lines     r�route_table_lookupr��s����L��D�
�7�7�>�>�$��!��
!�
�$��_�	E�	�!�
E��!�Z�Z�\�
��z�?�a�'�J�q�M�,C�,C�,E�7A�!�}�L��Z��]�!3�4�25�j��m�2D�L��A��/�	
E�	E���	E�����!��
�
��t�f�N�;�<� � �!�s:�B6�$B)� B)�4*B)�B6�)B3�.B6�3B6�6(C!� C!c�8�eZdZd	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	y)
�NetplanCommandc�X�||_||_||_||_d|_d|_d|_d|_i|_d|_	d|_
tjtjd�d|��|d��|_|jj!ddd�	�|jj!d
dtj"�	�|s^|jj%ddd
��|_|j&j)ddd��}|j+|j,��yy)NFrrhT)�prog�description�add_helpz--debug�
store_truezEnable debug messages)r]�helpz--breakpointzAvailable commandsrO�
subcommand)�title�metavar�destr�zShow this help message)r�r�)�func)�
command_idr��leaf_command�testing�_argsr��
breakpoint�commandclass�subcommandsr�r��argparse�ArgumentParser�sys�argv�parser�add_argument�SUPPRESS�add_subparsers�
subparsers�
add_parser�set_defaults�print_usage)�selfr�r��leafr��p_helps      r�__init__zNetplanCommand.__init__�s%��$���&��� ��������
���
���� �����������	��-�-�c�h�h�q�k�:�3V�:E�7;�=���	
��� � ��<�&=�	!�	?���� � ���&.�&7�&7�	!�	9��"�k�k�8�8�?S�AC�,�9�X�D�O��_�_�/�/��<T�5M�0�O�F�
���T�%5�%5��6�
rc��||_yr[)r�)r�r(s  rr<zNetplanCommand.updates	����
rc���|jj|j|��\}|_|js9|js,tdtj��|j�yyy)N)r(�	namespacezYou need to specify a command��file)	r��parse_known_argsr�r�r��printr�rr�)r��nss  r�
parse_argszNetplanCommand.parse_argssW�����5�5�4�:�:�QU�5�V���D�J����t�'8�'8��1��
�
�C�����(9�rc��|jr%|jj|j�|jrd|jvr|j	�|j
r
t�|j
�y)Nr�)r�r<r�r�r�r�r��r�s r�run_commandzNetplanCommand.run_command sZ��������$�$�T�Z�Z�0�����4�:�:�!5������?�?��L��	�	�rc��|jjtj��tjt
j�y)Nr�)r��
print_helpr�r�exitr�EX_USAGEr�s rr�zNetplanCommand.print_usage,s+�������C�J�J��/�������rc��|�}i|j|<||j|d<||j|d<|jr!tjj	dd�sy|j
j
|j|j|jd��}|j|j|��||j|d<y)N�class�instance�ENABLE_TEST_COMMANDSF)r�r�r�)r�r�r�)r�r�rrrr�r�r�r�r�r�)r��namer�r��ps     r�_add_subparser_from_classz(NetplanCommand._add_subparser_from_class0s����>��!#������*.������w�'�-5������z�*�����:�:�>�>�"8�$�?���O�O�&�&�x�':�':�3;�3G�3G�,4�,@�,@�05�
'�
7��	
���H�L�L�x��@�+,������x�(rc��ddl}|j|�D]:\}}|j|�s�t|t�s�)|j||��<y)Nr)�inspect�
getmembers�isclass�
issubclassr�r)r��
submodulesrr��objs     r�_import_subcommandsz"NetplanCommand._import_subcommandsBsH��� �+�+�J�7�	:�I�D�#����s�#�
�3��(G��.�.�t�S�9�	:rN)TF)
�__name__�
__module__�__qualname__r�r<r�r�r�rr	rrrr�r��s%��7�8��
��-�$:rr�)F)1r�rr�r�rr�r=r7�
configmanagerr�netplanrrr\rr�r�r��RuntimeError�
config_errorsrr r"rxr�r.r3rHrUrYr_�boolrrqruryr|r�r�r�r�r�r�r�r��dictr��	Namespacer�rrr�<module>rsS��$�	������	�.�3�+��D��.��4�� �y�v�G� �S�#��M��$�%5�|�D�
�T�y�b�@�D�@�S�@���4�s�4�s�4�
�c�
�d�
�6�	'�c�	'�T�	'��	'��4�P�
���O�
p�
�. �
�D�
� 9�C�9�D�9�
�D��,N:�X�'�'�N:r