HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/share/netplan/netplan/cli/__pycache__/utils.cpython-38.pyc
U

��~fd'�@sddlZddlZddlZddlZddlZddlZddlZddlZdZdZ	dd�Z
dd�Zdd	�Ze
ed
�dd�Zd
d�Zdd�Zd0dd�Zd1dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd2d"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�ZGd.d/�d/ej �Z!dS)3�NzNetworkManager.servicez+snap.network-manager.networkmanager.servicecCstj�dd�S)NZNETPLAN_GENERATE_PATHz/lib/netplan/generate)�os�environ�get�rr�'/usr/share/netplan/netplan/cli/utils.py�get_generator_pathsrcCstjdddtgtjd�dkS)N�	systemctl�--quietz
is-enabled)�stderrr)�
subprocess�call�NM_SNAP_SERVICE_NAME�DEVNULLrrrr�is_nm_snap_enabled#srcCstjdg|tjtjd�dS)N�nmcli��stdoutr
�r�
check_callr��argsrrrr'sr)r�returncCstjdg|dd�S)NrT�Zuniversal_newlines)r�check_outputrrrr�	nmcli_out-src	Cs2ztdg�WdSttjfk
r,YdSXdS)z"Check if NetworkManager is runningZgeneralTFN)r�OSErrorrZSubprocessErrorrrrr�
nm_running3s

rcCslt�d�}t�}|D]R}t|d��>}|D]2}|�|�}|r(|�tt�||�d����q\q(W5QRXq|S)Nz^interface-name=(.*)$�r�)	�re�compile�set�open�match�update�fnmatch�filter�group)�pathsZdevicesZpat�
interfaces�path�f�line�mrrr�
nm_interfaces=s

r.FcCs"t�rt|tg|�St|tg|�S�N)rrr
�NM_SERVICE_NAME)�action�syncrrr�systemctl_network_managerKsr3cCs:t|�dkr6d|g}|s"|�d�|�|�t�|�dS)Nrrz
--no-block)�len�append�extendrr)r1�servicesr2ZcommandrrrrSs

rcCs`t�}tjdddgdd�}|��D]8}|���d�}|d��r"|dd	kr"|�|d�q"|S)
N�
networkctlz
--no-pagerz--no-legendTr� r���)Z	unmanagedZlinger)r!rr�
splitlines�strip�split�	isnumeric�add)r)�outr,�srrr�networkd_interfaces_srBcCst�ddg�dS)Nr8�reload�rrrrrr�networkctl_reloadisrEcCs&t|�dkr"t�ddgt|��dS)Nrr8�reconfigure)r4rr�list)r)rrr�networkctl_reconfiguremsrHcCst�ddd|g�dkrdSdS)z4Return True if at least one matching unit is runningrr	z	is-activerTF)rr)Zunit_patternrrr�systemctl_is_activersrIcCst�ddg�dS)zEReload systemd unit files from disk and re-calculate its dependenciesrz
daemon-reloadNrDrrrr�systemctl_daemon_reloadysrJcCs tjddd|gtjtjd�dS)z8Flush all IP addresses of a given interface via iproute2Zip�addr�flushrNr�Zifacerrr�
ip_addr_flush~srNc
Cstj�d|�}|r�zTttj�|d���8}|����}|dkrZt�d||�W5QR�WdSW5QRXWn:tk
r�}zt�	d|t
|��WY�dSd}~XYnXz(tj�tj�|dd��}tj�|�}Wn>tk
�r}zt�d||t
|��WY�dSd}~XYnX|S)	Nz/sys/class/netZ	operstateZdownz'device %s operstate is %s, not changingz$Cannot determine operstate of %s: %sZdevice�driverz0Cannot replug %s: cannot read link %s/device: %s)
rr*�joinr"�readr<�logging�debug�IOError�error�str�realpath�basename)�	interfaceZ	only_downZdevdirr+�state�erO�driver_namerrr�get_interface_driver_name�s$r]cCs&t�|��tjig�d}|�dd�S)NrrK�)�	netifacesZifaddressesrZAF_LINK)rY�linkrrr�get_interface_macaddress�sracCst�||�Sr/�r%Zfnmatchcase)rYZ
match_namerrr�is_interface_matching_name�srccs2|}t|t�r|g}t|��t�fdd�|D��S)Nc3s|]}t��|�VqdSr/rb)�.0�pattern�r\rr�	<genexpr>�s�z4is_interface_matching_driver_name.<locals>.<genexpr>)�
isinstancerVr]�any)rYZmatch_driverZdriver_globsrrfr�!is_interface_matching_driver_name�s
�rjcCst|�}|��|��kSr/)ra�lower)rYZ	match_mac�
macaddressrrr� is_interface_matching_macaddress�srmcs�t�t�st���dd�r$��d�nd}t�||�}t|�dkr`��d�r`tt�fdd�|��}t|�dkr���d�r�tt�fd	d�|��}t|�dkr�t�	|�dS|d
S)N�nameF�*rrlcst|��d��S)Nrl)rmrrM�r#rr�<lambda>��z%find_matching_iface.<locals>.<lambda>rOcst|��d��S)NrO)rjrrMrprrrq�rrr)
rh�dict�AssertionErrorrr%r&r4rGrR�info)r)r#Z	name_globZmatchesrrpr�find_matching_iface�s
rvc@sFeZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Z	dS)�NetplanCommandTFcCs�||_||_||_||_d|_d|_d|_i|_d|_d|_	t
jdtj
d|f|dd�|_|jjdddd	�|s�|jjd
ddd
�|_|jjdddd�}|j|jd�dS)NFz%s %srT)�prog�description�add_helpz--debug�
store_truezEnable debug messages)r1�helpzAvailable commandsr^�
subcommand)�title�metavar�destr|zShow this help message)ryr|)�func)�
command_idry�leaf_command�testing�_argsrS�commandclass�subcommandsr}r��argparse�ArgumentParser�sys�argv�parser�add_argumentZadd_subparsers�
subparsers�
add_parser�set_defaults�print_usage)�selfr�ry�leafr�Zp_helprrr�__init__�s6�
���zNetplanCommand.__init__cCs
||_dSr/)r�)r�rrrrr$�szNetplanCommand.updatecCs>|jj|j|d�\}|_|js:|js:tdtjd�|��dS)N)r�	namespacezYou need to specify a command��file)	r�Zparse_known_argsr�r}r��printr�r
r�)r��nsrrr�
parse_args�szNetplanCommand.parse_argscCs8|jr|j�|j�|jr,d|jkr,|��|��dS)Nr|)r�r$r�r�r�r��r�rrr�run_command�s
zNetplanCommand.run_commandcCs |jjtjd�t�tj�dS)Nr�)r�Z
print_helpr�r
�exitr�EX_USAGEr�rrrr��szNetplanCommand.print_usagecCs�|�}i|j|<||j|d<||j|d<|jrDtj�dd�sDdS|jj|j|j|jdd�}|j	|j
|d�||j|d<dS)N�class�instanceZENABLE_TEST_COMMANDSF)ryr|rz)r�r�r�)r�r�rrrr�r�r�ryr��run)r�rnr�r��prrr�_add_subparser_from_classs

�z(NetplanCommand._add_subparser_from_classcCs@ddl}|�|�D](\}}|�|�rt|t�r|�||�qdS)Nr)�inspectZ
getmembersZisclass�
issubclassrwr�)r�Z
submodulesr�rn�objrrr�_import_subcommandssz"NetplanCommand._import_subcommandsN)TF)
�__name__�
__module__�__qualname__r�r$r�r�r�r�r�rrrrrw�s

rw)F)F)F)"r�rrRr�rr_r%rr0r
rrrrGrVrrr.r3rrBrErHrIrJrNr]rarcrjrmrvZ	Namespacerwrrrr�<module>s<