HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan_cli/cli/__pycache__/utils.cpython-310.pyc
o

t��f�)�@sdddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZdZ
dZe	eefZdd�Zd	d
�Zdd�Zd
edefdd�Zdd�Zdd�Zdedefdd�Zdeddfdd�Zd<dd�Zd<deded efd!d"�Zd#d$�Zd%d&�Zd'd(�Z d)d*�Z!d+d,�Z"d-d.�Z#d/d0�Z$d1d2�Z%d<d3d4�Z&d5d6�Z'd7efd8d9�Z(Gd:d;�d;ej)�Z*dS)=�N�)�ConfigurationError)�
NetDefinition�NetplanExceptionzNetworkManager.servicez+snap.network-manager.networkmanager.servicecCstj�dd�S)N�NETPLAN_GENERATE_PATHz/usr/libexec/netplan/generate)�os�environ�get�r
r
�+/usr/share/netplan/netplan_cli/cli/utils.py�get_generator_path%srcCstjdddtgtjd�dkS)N�	systemctl�--quiet�
is-enabled)�stderrr)�
subprocess�call�NM_SNAP_SERVICE_NAME�DEVNULLr
r
r
r�is_nm_snap_enabled)srcCstjdg|tjtjd�dS)N�nmcli��stdoutr�r�
check_callr��argsr
r
rr-srr�returncCstjdg|dd�S)NrT��text)r�check_outputrr
r
r�	nmcli_out3sr!c	Cs,ztdg�WdSttjfyYdSw)z"Check if NetworkManager is running�generalTF)r�OSErrorr�SubprocessErrorr
r
r
r�
nm_running9s
�r%cCs�t�d�}t�}|D]3}t|d��$}|D]}|�|�}|r-|�tt�||�d����nqWd�n1s8wYq
|S)Nz^interface-name=(.*)$�r�)	�re�compile�set�open�match�update�fnmatch�filter�group)�paths�devices�pat�
interfaces�path�f�line�mr
r
r�
nm_interfacesCs

����r9�	interfacecCs<tdddddd|g�}|���d�}|d}|d	kr|Sd
S)Nz-m�tabularz-fzGENERAL.CONNECTION�device�show�
r'z--�)r!�strip�split)r:�output�lines�
connectionr
r
r�nm_get_connection_for_interfaceQsrErDcCs,z
tdd|g�WdStjyYdSw)NrD�up)rr�CalledProcessError)rDr
r
r�nm_bring_interface_upXs
�rHFcCs"t�r
t|tg|�St|tg|�S�N)rr
r�NM_SERVICE_NAME)�action�syncr
r
r�systemctl_network_manager_srMrK�servicesrLcCs>t|�dkrd|g}|s|�d�|�|�t�|�dSdS)Nr'r
z
--no-block)�len�append�extendrr)rKrNrL�commandr
r
rr
gs

�r
cCs^t�}tjgd�dd�}|��D]}|���d�}|d��r,|ddvr,|�|d�q|S)N)�
networkctlz
--no-pagerz--no-legendTr� r���)�	unmanaged�linger)r*rr �
splitlinesr@rA�	isnumeric�add)r4�outr7�sr
r
r�networkd_interfacesss�r]cCst�ddg�dS)NrS�reload�rrr
r
r
r�networkctl_reload}sr`cCs*t|�dkrt�ddgt|��dSdS)Nr'rS�reconfigure)rOrr�list)r4r
r
r�networkctl_reconfigure�s�rccCst�ddd|g�dkr
dSdS)z4Return True if at least one matching unit is runningr
rz	is-activerTF)rr)�unit_patternr
r
r�systemctl_is_active�srecCs8tjdd|gtjtjdd�}|jdkrd|jvrdSdS)z5Return True if output is "masked" or "masked-runtime"r
rT�rrrr�maskedF)r�run�PIPE�
returncoder�rd�resr
r
r�systemctl_is_masked�s�rmcCs.tjdd|gtjtjdd�}|jdkrdSdS)z5Return True if returncode is other than a failure (1)r
rTrfr'F)rrhrirjrkr
r
r�systemctl_is_installed�s�
rncCst�ddg�dS)zEReload systemd unit files from disk and re-calculate its dependenciesr
z
daemon-reloadNr_r
r
r
r�systemctl_daemon_reload�srocCs tjddd|gtjtjd�dS)z8Flush all IP addresses of a given interface via iproute2�ip�addr�flushrNr)�ifacer
r
r�
ip_addr_flush�s rtc
Cstj�d|�}|r\z6ttj�|d���#}|����}|dkr/t�d||�	Wd�WdSWd�n1s9wYWnty[}zt�	d|t
|��WYd}~dSd}~wwztj�tj�|dd��}tj�|�}W|Sty�}zt�d||t
|��WYd}~dSd}~ww)	Nz/sys/class/net�	operstate�downz'device %s operstate is %s, not changingz$Cannot determine operstate of %s: %sr<�driverz0Cannot replug %s: cannot read link %s/device: %s)
rr5�joinr+�readr@�logging�debug�IOError�error�str�realpath�basename)r:�	only_down�devdirr6�state�erw�driver_namer
r
r�get_interface_driver_name�s4��������r�cCs&t�|��tjig�d}|�dd�S)Nrrqr?)�	netifaces�ifaddressesr	�AF_LINK)r:�linkr
r
r�get_interface_macaddress�sr�r4csPt�t�sJ��jsJ�tt�fdd�|��}t|�dkr$t�|�dS|dS)Ncs�j|t|�t|�d�S)N)�
iface_name�iface_driver�	iface_mac)�_match_interfacer�r�)�itf��netdefr
r�<lambda>�s
�z%find_matching_iface.<locals>.<lambda>r'r)�
isinstancer�
_has_matchrbr/rOrz�info)r4r��matchesr
r�r�find_matching_iface�s
�
r�c@sFeZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dS)�NetplanCommandTFcCs�||_||_||_||_d|_d|_d|_d|_i|_d|_	d|_
tjdt
jd|f|dd�|_|jjdddd	�|jjd
dtjd	�|sb|jjddd
d�|_|jjdddd�}|j|jd�dSdS)NFz%s %srT)�prog�description�add_helpz--debug�
store_truezEnable debug messages)rK�helpz--breakpointzAvailable commandsr?�
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_helpr
r
r�__init__�s>�
�
����zNetplanCommand.__init__cCs
||_dSrI)r�)r�rr
r
rr-�s
zNetplanCommand.updatecCsF|jj|j|d�\}|_|js|js!tdtjd�|��dSdSdS)N)r�	namespacezYou need to specify a command��file)	r��parse_known_argsr�r�r��printr�rr�)r��nsr
r
r�
parse_args�s
�zNetplanCommand.parse_argscCsD|jr
|j�|j�|jrd|jvr|��|jrt�|��dS)Nr�)r�r-r�r�r�r�r��r�r
r
r�run_commandszNetplanCommand.run_commandcCs |jjtjd�t�tj�dS)Nr�)r��
print_helpr�r�exitr�EX_USAGEr�r
r
rr�szNetplanCommand.print_usagecCs�|�}i|j|<||j|d<||j|d<|jr"tj�dd�s"dS|jj|j|j|jdd�}|j	|j
|d�||j|d<dS)N�class�instance�ENABLE_TEST_COMMANDSF)r�r�r�)r�r�r�)r�r�rrr	r�r�r�r�r�rh)r��namer�r��pr
r
r�_add_subparser_from_classs

�z(NetplanCommand._add_subparser_from_classcCs@ddl}|�|�D]\}}|�|�rt|t�r|�||�q	dS)Nr)�inspect�
getmembers�isclass�
issubclassr�r�)r��
submodulesr�r��objr
r
r�_import_subcommands"s��z"NetplanCommand._import_subcommandsN)TF)
�__name__�
__module__�__qualname__r�r-r�r�r�r�r�r
r
r
rr��s
r�)F)+r�rrzr�rr�r.r(�
configmanagerr�netplanrrrJr�RuntimeError�
config_errorsrrrrbr~r!r%r9rErHrM�boolr
r]r`rcrermrnrortr�r�r��	Namespacer�r
r
r
r�<module>sF