HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux mail.btech-izolacje.pl 5.15.0-140-generic #150-Ubuntu SMP Sat Apr 12 06:00:09 UTC 2025 x86_64
User: pewna6876 (1017)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan/cli/__pycache__/utils.cpython-310.pyc
o

�
ed�&�@s@ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z
ddlmZddlm
Z
dZdZee
efZdd�Zdd	�Zd
d�Zded
efdd�Zdd�Zdd�Zd3dd�Zd3dededefdd�Zdd�Zdd�Zd d!�Zd"d#�Z d$d%�Z!d&d'�Z"d(d)�Z#d3d*d+�Z$d,d-�Z%d.efd/d0�Z&Gd1d2�d2ej'�Z(dS)4�N)�ConfigurationError)�LibNetplanExceptionzNetworkManager.servicez+snap.network-manager.networkmanager.servicecCstj�dd�S)N�NETPLAN_GENERATE_PATHz/usr/libexec/netplan/generate)�os�environ�get�rr�'/usr/share/netplan/netplan/cli/utils.py�get_generator_path&sr
cCstjdddtgtjd�dkS)N�	systemctl�--quiet�
is-enabled)�stderrr)�
subprocess�call�NM_SNAP_SERVICE_NAME�DEVNULLrrrr	�is_nm_snap_enabled*srcCstjdg|tjtjd�dS)N�nmcli��stdoutr�r�
check_callr��argsrrr	r.srr�returncCstjdg|dd�S)NrT��text)r�check_outputrrrr	�	nmcli_out4src	Cs,ztdg�WdSttjfyYdSw)z"Check if NetworkManager is running�generalTF)r�OSErrorr�SubprocessErrorrrrr	�
nm_running:s
�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�mrrr	�
nm_interfacesDs

����r7FcCs"t�r
t|tg|�St|tg|�S�N)rrr�NM_SERVICE_NAME)�action�syncrrr	�systemctl_network_managerRsr<r:�servicesr;cCs>t|�dkrd|g}|s|�d�|�|�t�|�dSdS)Nr%rz
--no-block)�len�append�extendrr)r:r=r;�commandrrr	rZs

�rcCs^t�}tjgd�dd�}|��D]}|���d�}|d��r,|ddvr,|�|d�q|S)N)�
networkctlz
--no-pagerz--no-legendTr� r���)�	unmanaged�linger)r(rr�
splitlines�strip�split�	isnumeric�add)r2�outr5�srrr	�networkd_interfacesfs�rNcCst�ddg�dS)NrB�reload�rrrrrr	�networkctl_reloadpsrQcCs*t|�dkrt�ddgt|��dSdS)Nr%rB�reconfigure)r>rr�list)r2rrr	�networkctl_reconfigurets�rTcCst�ddd|g�dkr
dSdS)z4Return True if at least one matching unit is runningrrz	is-activerTF)rr)�unit_patternrrr	�systemctl_is_activeysrVcCs8tjdd|gtjtjdd�}|jdkrd|jvrdSdS)z5Return True if output is "masked" or "masked-runtime"rr
T)rrrr�maskedF)r�run�PIPE�
returncoder)rU�resrrr	�systemctl_is_masked�s�r\cCst�ddg�dS)zEReload systemd unit files from disk and re-calculate its dependenciesrz
daemon-reloadNrPrrrr	�systemctl_daemon_reload�sr]cCs tjddd|gtjtjd�dS)z8Flush all IP addresses of a given interface via iproute2�ip�addr�flushrNr)�ifacerrr	�
ip_addr_flush�s rbc
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: %s�device�driverz0Cannot replug %s: cannot read link %s/device: %s)
rr3�joinr)�readrH�logging�debug�IOError�error�str�realpath�basename)�	interface�	only_down�devdirr4�state�erf�driver_namerrr	�get_interface_driver_name�s4��������rvcCs&t�|��tjig�d}|�dd�S)Nrr_�)�	netifaces�ifaddressesr�AF_LINK)rp�linkrrr	�get_interface_macaddress�sr|r2csRt�tj�sJ��js
J�tt�fdd�|��}t|�dkr%t�|�dS|dS)Ncs�j|t|�t|�d�S)N)�itf_name�
itf_driver�itf_mac)�match_interfacervr|)�itf��netdefrr	�<lambda>�s
�z%find_matching_iface.<locals>.<lambda>r%r)	�
isinstance�np�
NetDefinition�	has_matchrSr-r>ri�info)r2r��matchesrr�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)r:�helpz--breakpointzAvailable commandsrw�
subcommand)�title�metavar�destr�zShow this help message)r�r�)�func)�
command_idr��leaf_command�testing�_argsrj�
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_helprrr	�__init__�s>�
�
����zNetplanCommand.__init__cCs
||_dSr8)r�)r�rrrr	r+�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��nsrrr	�
parse_args�s
�zNetplanCommand.parse_argscCsD|jr
|j�|j�|jrd|jvr|��|jrt�|��dS)Nr�)r�r+r�r�r�r�r��r�rrr	�run_command�szNetplanCommand.run_commandcCs |jjtjd�t�tj�dS)Nr�)r��
print_helpr�r�exitr�EX_USAGEr�rrr	r��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�rrrr�r�r�r�r�rX)r��namer�r��prrr	�_add_subparser_from_class�s

�z(NetplanCommand._add_subparser_from_classcCs@ddl}|�|�D]\}}|�|�rt|t�r|�||�q	dS)Nr)�inspect�
getmembers�isclass�
issubclassr�r�)r��
submodulesr�r��objrrr	�_import_subcommandss��z"NetplanCommand._import_subcommandsN)TF)
�__name__�
__module__�__qualname__r�r+r�r�r�r�r�rrrr	r��s
r�)F))r�rrir�rrxr,r&�netplan.libnetplan�
libnetplanr��netplan.configmanagerrrr9r�RuntimeError�
config_errorsr
rrrSrmrr#r7r<�boolrrNrQrTrVr\r]rbrvr|r��	Namespacer�rrrr	�<module>sB