HEX
Server: Apache/2.4.67 (Debian)
System: Linux vps-b2547eb4 6.1.0-41-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64
User: root (0)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan/cli/__pycache__/utils.cpython-311.pyc
�

���c�%��"�ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z
ddlmZddlm
Z
dZdZee
efZd�Zd�Zd�Zd	�Zd
�Zdd�Zdd
ededefd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"dd�Z#d�Z$defd�Z%Gd�dej&��Z'dS)�N)�ConfigurationError)�LibNetplanExceptionzNetworkManager.servicez+snap.network-manager.networkmanager.servicec�B�tj�dd��S)N�NETPLAN_GENERATE_PATHz/lib/netplan/generate)�os�environ�get���'/usr/share/netplan/netplan/cli/utils.py�get_generator_pathr
&s��
�:�>�>�1�3J�K�K�Krc�\�tjdddtgtj���dkS)N�	systemctl�--quiet�
is-enabled)�stderrr)�
subprocess�call�NM_SNAP_SERVICE_NAME�DEVNULLr
rr�is_nm_snap_enabledr+s+���?�K��L�BV�W�`j�`r�s�s�s�wx�x�xrc��d}t��rd}tj|g|ztjtj���dS)N�nmcliznetwork-manager.nmcli��stdoutr)rr�
check_callr)�args�binary_names  rrr/sF���K����.�-����;�-�$�.�z�7I�R\�Rd�e�e�e�e�e�erc�b�	tdg��dS#ttjf$rYdSwxYw)z"Check if NetworkManager is running�generalTF)r�OSErrorr�SubprocessErrorr
rr�
nm_runningr#8sF���
�y�k�����t���Z�/�0�����u�u����s��.�.c
�p�tjd��}t��}|D]�}t|d��5}|D]c}|�|��}|rJ|�tt
j||�d��������n�dddd��n#1swxYwY��|S)Nz^interface-name=(.*)$�r�)	�re�compile�set�open�match�update�fnmatch�filter�group)�paths�devices�pat�
interfaces�path�f�line�ms        r�
nm_interfacesr8Bs���
�*�,�
-�
-�C����J�����
�$��_�_�	���
�
���I�I�d�O�O�����%�%�c�'�.��!�'�'�!�*�*�*M�*M�&N�&N�O�O�O��E��	�	�	�	�	�	�	�	�	�	�	����	�	�	�	���s�A'B*�*B.	�1B.	Fc�z�t��rt|tg|��St|tg|��S�N)rrr�NM_SERVICE_NAME)�action�syncs  r�systemctl_network_managerr>Ps=�����?���"6�!7��>�>�>��V�o�.��5�5�5rr<�servicesr=c��t|��dkrFd|g}|s|�d��|�|��tj|��dSdS)Nr&rz
--no-block)�len�append�extendrr)r<r?r=�commands    rrrXsh��
�8�}�}������'���	)��N�N�<�(�(�(����x� � � ���g�&�&�&�&�&��rc�L�t��}tjgd�d���}|���D]h}|����d��}|d���r%|ddvr|�|d���i|S)N)�
networkctlz
--no-pagerz--no-legendT)�universal_newlines� r���)�	unmanaged�linger)r)r�check_output�
splitlines�strip�split�	isnumeric�add)r3�outr6�ss    r�networkd_interfacesrTds������J�
�
!�"M�"M�"M�bf�
g�
g�
g�C���� � �!�!���J�J�L�L���s�#�#���Q�4�>�>���	!��"��-D� D� D��N�N�1�Q�4� � � ���rc�2�tjddg��dS)NrF�reload�rrr
rr�networkctl_reloadrXns����<��2�3�3�3�3�3rc�|�t|��dkr(tjddgt|��z��dSdS)Nr&rF�reconfigure)rArr�list)r3s r�networkctl_reconfigurer\rsD��
�:���!�����|�]�;�d�:�>N�>N�N�O�O�O�O�O��rc�B�tjddd|g��dkrdSdS)z4Return True if at least one matching unit is runningrrz	is-activerTF)rr)�unit_patterns r�systemctl_is_activer_ws*�����Y��\�J�K�K�q�P�P��t��5rc��tjdd|gtjtjd���}|jdkrd|jvrdSdS)z5Return True if output is "masked" or "masked-runtime"rrT)rrrGr�maskedF)r�run�PIPE�
returncoder)r^�ress  r�systemctl_is_maskedrf~sR��
�.�+�|�\�B� *��
��,0�2�2�2�C��~����h�#�*�4�4��t��5rc�2�tjddg��dS)zEReload systemd unit files from disk and re-calculate its dependenciesrz
daemon-reloadNrWr
rr�systemctl_daemon_reloadrh�s����;��8�9�9�9�9�9rc�d�tjddd|gtjtj���dS)z8Flush all IP addresses of a given interface via iproute2�ip�addr�flushrN)rrr)�ifaces r�
ip_addr_flushrn�s0����4���%�8��AS�\f�\n�o�o�o�o�o�orc	�&�tj�d|��}|r�	ttj�|d����5}|������}|dkr$t
jd||��	ddd��dS	ddd��n#1swxYwYn;#t$r.}t
j	d|t|����Yd}~dSd}~wwxYw	tj�tj�|dd����}tj�|��}n<#t$r/}t
jd||t|����Yd}~dSd}~wwxYw|S)	Nz/sys/class/net�	operstate�downz'device %s operstate is %s, not changingz$Cannot determine operstate of %s: %s�device�driverz0Cannot replug %s: cannot read link %s/device: %s)
rr4�joinr*�readrN�logging�debug�IOError�error�str�realpath�basename)�	interface�	only_down�devdirr5�state�ers�driver_names        r�get_interface_driver_namer��s���
�W�\�\�*�I�
6�
6�F��	�	��b�g�l�l�6�;�7�7�8�8�
 �A��������(�(���F�?�?��M�"K�Y�X]�^�^�^��	
 �
 �
 �
 �
 �
 �
 �
 �"�
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 ���
�	�	�	��M�@�)�S�QR�V�V�T�T�T��4�4�4�4�4�����	�������!�!�"�'�,�,�v�x��"J�"J�K�K���g�&�&�v�.�.���������
�H�)�U[�]`�ab�]c�]c�d�d�d��t�t�t�t�t����������s[�-B;�AB/�B;�#B;�/B3�3B;�6B3�7B;�;
C3�#C.�.C3�7AE�
F�$F	�	Fc��tj|���tjig��d}|�dd��S)Nrrk�)�	netifaces�ifaddressesr	�AF_LINK)r}�links  r�get_interface_macaddressr��s@��� ��+�+�/�/�	�0A�B�4�H�H��K�D��8�8�F�B���rr3c����t�tj��sJ��jsJ�t	t�fd�|����}t
|��dkrtj|��dS|dS)Nc�h����|t|��t|�����S)N)�itf_name�
itf_driver�itf_mac)�match_interfacer�r�)�itf�netdefs �r�<lambda>z%find_matching_iface.<locals>.<lambda>�s5���f�&<�&<��0��5�5�,�S�1�1�'=�'3�'3�rr&r)	�
isinstance�np�
NetDefinition�	has_matchr[r.rArv�info)r3r��matchess ` r�find_matching_ifacer��s�����f�b�.�/�/�/�/�/�������6�3�3�3�3�5?�@�@�A�A�G��7�|�|�q�����W�����t��1�:�rc�:�eZdZdd�Zd�Zd�Zd�Zd�Zd�Zd	�Z	d
S)�NetplanCommandTFc�F�||_||_||_||_d|_d|_d|_d|_i|_d|_	d|_
tjtjd�d|��|d���|_|j�ddd�	��|j�d
dtj�	��|s\|j�ddd
���|_|j�ddd���}|�|j���dSdS)NFrrHT)�prog�description�add_helpz--debug�
store_truezEnable debug messages)r<�helpz--breakpointzAvailable commandsr��
subcommand)�title�metavar�destr�zShow this help message)r�r�)�func)�
command_idr��leaf_command�testing�_argsrw�
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__�sX��$���&��� ��������
���
���� �����������	��-�c�h�q�k�k�k�:�:�3V�:E�7;�=�=�=���	
�� � ��<�&=�	!�	?�	?�	?��� � ���&.�&7�	!�	9�	9�	9��	7�"�k�8�8�?S�AC�,�9�X�X�D�O��_�/�/��<T�5M�0�O�O�F�
���T�%5��6�6�6�6�6�
	7�	7rc��||_dSr:)r�)r�rs  rr,zNetplanCommand.update�s
����
�
�
rc���|j�|j|���\}|_|js8|js3tdtj���|���dSdSdS)N)r�	namespacezYou need to specify a command��file)	r��parse_known_argsr�r�r��printr�rr�)r��nss  r�
parse_argszNetplanCommand.parse_args�s{����5�5�4�:�QU�5�V�V���D�J���	�t�'8�	��1��
�C�C�C�C���������	�	�	�	rc���|jr|j�|j��|jrd|jvr|���|jrt��|���dS)Nr�)r�r,r�r�r�r�r��r�s r�run_commandzNetplanCommand.run_command�su����	1���$�$�T�Z�0�0�0���	��4�:�!5�!5��������?�	��L�L�L��	�	�����rc��|j�tj���tjt
j��dS)Nr�)r��
print_helpr�r�exitr�EX_USAGEr�s rr�zNetplanCommand.print_usage�s5������C�J��/�/�/���������rc�r�|��}i|j|<||j|d<||j|d<|jr"tj�dd��sdS|j�|j|j|jd���}|�	|j
|���||j|d<dS)N�class�instance�ENABLE_TEST_COMMANDSF)r�r�r�)r�r�r�)r�r�rrr	r�r�r�r�r�rb)r��namer�r��ps     r�_add_subparser_from_classz(NetplanCommand._add_subparser_from_class�s����<�>�>��!#�����*.�����w�'�-5�����z�*���	��:�>�>�"8�$�?�?�
����O�&�&�x�':�3;�3G�,4�,@�05�
'�
7�
7��	
���H�L�x��@�@�@�+,�����x�(�(�(rc���ddl}|�|��D]E\}}|�|��r+t|t��r|�||���FdS)Nr)�inspect�
getmembers�isclass�
issubclassr�r�)r��
submodulesr�r��objs     r�_import_subcommandsz"NetplanCommand._import_subcommands	sr������ �+�+�J�7�7�	:�	:�I�D�#����s�#�#�
:�
�3��(G�(G�
:��.�.�t�S�9�9�9��	:�	:rN)TF)
�__name__�
__module__�__qualname__r�r,r�r�r�r�r�r
rrr�r��s�������7�7�7�7�8������
�
�
����-�-�-�$:�:�:�:�:rr�)F)(r�rrvr�rr�r-r'�netplan.libnetplan�
libnetplanr��netplan.configmanagerrrr;r�RuntimeError�
config_errorsr
rrr#r8r>rzr[�boolrrTrXr\r_rfrhrnr�r�r��	Namespacer�r
rr�<module>r�s)��$�
�
�
�	�	�	�	���������������������	�	�	�	�������4�4�4�4�4�4�2�2�2�2�2�2�+��D��#�%8�,�G�
�L�L�L�
y�y�y�f�f�f�������6�6�6�6�	'�	'�c�	'�T�	'��	'�	'�	'�	'����4�4�4�P�P�P�
������:�:�:�
p�p�p�
����. � � �
�D�
�
�
�
� N:�N:�N:�N:�N:�X�'�N:�N:�N:�N:�N:r