HEX
Server: nginx/1.24.0
System: Linux localhost 5.15.0-46-generic #49-Ubuntu SMP Thu Aug 4 18:03:25 UTC 2022 x86_64
User: www (1000)
PHP: 8.3.27
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/share/netplan/netplan/cli/__pycache__/utils.cpython-310.pyc
o

�u�b/&�@s�ddlZddlZddlZddlZddlZddlZddlZddlZdZdZ	dd�Z
dd�Zdd	�Zd
d�Z
dd
�Zd-dd�Zd-dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd-dd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�ZGd+d,�d,ej�ZdS).�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#srcCs,d}t�rd}tj|g|tjtjd�dS)N�nmcliznetwork-manager.nmcli��stdoutr
)rr�
check_callr)�argsZbinary_namerrrr'src	Cs,ztdg�WdSttjfyYdSw)z"Check if NetworkManager is runningZgeneralTF)r�OSErrorrZSubprocessErrorrrrr�
nm_running0s
�rc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)�pathsZdevicesZpat�
interfaces�path�f�line�mrrr�
nm_interfaces:s

����r(FcCs"t�r
t|tg|�St|tg|�S�N)rrr
�NM_SERVICE_NAME)�action�syncrrr�systemctl_network_managerHsr-cCs>t|�dkrd|g}|s|�d�|�|�t�|�dSdS)Nrrz
--no-block)�len�append�extendrr)r+�servicesr,ZcommandrrrrPs

�rcCs^t�}tjgd�dd�}|��D]}|���d�}|d��r,|ddvr,|�|d�q|S)N)�
networkctlz
--no-pagerz--no-legendT)Zuniversal_newlines� r���)Z	unmanagedZlinger)rrZcheck_output�
splitlines�strip�split�	isnumeric�add)r#�outr&�srrr�networkd_interfaces\s�r<cCst�ddg�dS)Nr2�reload�rrrrrr�networkctl_reloadfsr?cCs*t|�dkrt�ddgt|��dSdS)Nrr2�reconfigure)r.rr�list)r#rrr�networkctl_reconfigurejs�rBcCst�ddd|g�dkr
dSdS)z4Return True if at least one matching unit is runningrr	z	is-activerTF)rr)Zunit_patternrrr�systemctl_is_activeosrCcCst�ddg�dS)zEReload systemd unit files from disk and re-calculate its dependenciesrz
daemon-reloadNr>rrrr�systemctl_daemon_reloadvsrDcCs tjddd|gtjtjd�dS)z8Flush all IP addresses of a given interface via iproute2Zip�addr�flushrN)rrr�Zifacerrr�
ip_addr_flush{s rHc
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/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�readr6�logging�debug�IOError�error�str�realpath�basename)�	interfaceZ	only_downZdevdirr%�state�erI�driver_namerrr�get_interface_driver_name�s4��������rWcCs&t�|��tjig�d}|�dd�S)NrrE�)�	netifacesZifaddressesrZAF_LINK)rS�linkrrr�get_interface_macaddress�sr[cCst�||�Sr)�rZfnmatchcase)rSZ
match_namerrr�is_interface_matching_name�sr]cs2|}t|t�r
|g}t|��t�fdd�|D��S)Nc3s�|]	}t��|�VqdSr)r\)�.0�pattern�rVrr�	<genexpr>�s
�
�
�z4is_interface_matching_driver_name.<locals>.<genexpr>)�
isinstancerPrW�any)rSZmatch_driverZdriver_globsrr`r�!is_interface_matching_driver_name�s
�rdcCst|�}|��|��kSr))r[�lower)rSZ	match_mac�
macaddressrrr� is_interface_matching_macaddress�srgcs�t�t�sJ���dd�r��d�nd}t�||�}t|�dkr0��d�r0tt�fdd�|��}t|�dkrF��d�rFtt�fd	d�|��}t|�dkrSt�|�dS|d
S)N�nameF�*rrfc�t|��d��S)Nrf)rgrrG�rrr�<lambda>��z%find_matching_iface.<locals>.<lambda>rIcrj)NrI)rdrrGrkrrrl�rmr)	rb�dictrrr r.rArL�info)r#rZ	name_globZmatchesrrkr�find_matching_iface�s
rpc@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	�|sU|jjd
ddd
�|_|jjdddd�}|j|jd�dSdS)NFz%s %srT)�prog�description�add_helpz--debug�
store_truezEnable debug messages)r+�helpzAvailable commandsrX�
subcommand)�title�metavar�destrvzShow this help message)rsrv)�func)�
command_idrs�leaf_command�testing�_argsrM�commandclass�subcommandsrwr{�argparse�ArgumentParser�sys�argv�parser�add_argumentZadd_subparsers�
subparsers�
add_parser�set_defaults�print_usage)�selfr|rs�leafr~Zp_helprrr�__init__�s6�
����zNetplanCommand.__init__cCs
||_dSr))r)r�rrrrr�s
zNetplanCommand.updatecCsF|jj|j|d�\}|_|js|js!tdtjd�|��dSdSdS)N)r�	namespacezYou need to specify a command��file)	r�Zparse_known_argsrrwr}�printr�r
r�)r��nsrrr�
parse_args�s
�zNetplanCommand.parse_argscCs8|jr
|j�|j�|jrd|jvr|��|��dS)Nrv)r�rrr}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<|jr"tj�dd�s"dS|jj|j|j|jdd�}|j	|j
|d�||j|d<dS)N�class�instanceZENABLE_TEST_COMMANDSF)rsrvrt)r{r�r�)r�r~rrrr�r�r|rsr��run)r�rhr�r��prrr�_add_subparser_from_class�s

�z(NetplanCommand._add_subparser_from_classcCs@ddl}|�|�D]\}}|�|�rt|t�r|�||�q	dS)Nr)�inspectZ
getmembersZisclass�
issubclassrqr�)r�Z
submodulesr�rh�objrrr�_import_subcommandss��z"NetplanCommand._import_subcommandsN)TF)
�__name__�
__module__�__qualname__r�rr�r�r�r�r�rrrrrq�s

rq)F)r�rrLr�rrYrrr*r
rrrrr(r-rr<r?rBrCrDrHrWr[r]rdrgrpZ	Namespacerqrrrr�<module>s<