PHP WebShell

Текущая директория: /usr/share/netplan/netplan/cli/commands/__pycache__

Просмотр файла: ip.cpython-310.pyc

o

�
edc�@s�dZddlZddlZddlZddlZddlmZddlmmZddd�ddd�d	�Z	Gd
d�dej
�ZGdd
�d
ej
�ZdS)znetplan ip command line�N)�CalledProcessErrorz#run/systemd/netif/leases/{lease_id}�ifindex)�pattern�methodz<var/lib/NetworkManager/internal-{lease_id}-{interface}.lease�
nm_connection)�networkd�NetworkManagercs$eZdZ�fdd�Zdd�Z�ZS)�	NetplanIpc�t�jdddd�dS)N�ipz'Retrieve IP information from the systemF��
command_id�description�leaf��super�__init__��self��	__class__��-/usr/share/netplan/netplan/cli/commands/ip.pyr*�
�zNetplanIp.__init__cCsBt�|_|jjdddd�}|j|jj|jd�|��|��dS)N�leases�Display IP leasesF)�help�add_help)�func�commandclass)�NetplanIpLeases�command_leases�
subparsers�
add_parser�set_defaults�run�
parse_args�run_command)r�p_ip_leasesrrrr%/s�z
NetplanIp.run)�__name__�
__module__�__qualname__rr%�
__classcell__rrrrr	(sr	cs,eZdZ�fdd�Zdd�Zdd�Z�ZS)r cr
)Nz	ip leasesrTrrrrrrr>rzNetplanIpLeases.__init__cCs<|jjddd�|jjddd�|j|_|��|��dS)N�	interfacez1Interface for which to display IP lease settings.)r�
--root-dirzBSearch for configuration files in this root directory instead of /)�parser�add_argument�command_ip_leasesrr&r'rrrrr%Cs��zNetplanIpLeases.runc	s��jdkr	����fdd�}t��g}�jr|d�jg7}|d�jg7}t�d|�z	tj|dd�}Wnt	yLt
d	�jtjd
�t�
d�Ynwi}|�d�}|D]}|���d
�\}}|||<qV||�dS)Nrc

s(�fdd�}�fdd�}t|dd}t|dd}zQtd|��}tj�d	�jr2tj��j�nd
|j�j|d��}tj�	|�sH|�
dd
�}t|��}|��D]}t
|���qQWd�WdS1sfwYWdSty�}	zt
d�jt|	�ftjd�t�d�WYd}	~	dSd}	~	ww)Nc
s�tj�d�jd�}z t|��}|��d��Wd�WS1s"wYWdSty?}z
t�	d|t
|���d}~ww)Nz/sys/class/netrrzCannot read file %s: %s)�os�path�joinr-�open�	readlines�strip�	Exception�logging�debug�str)�	ifindex_f�f�errr�lease_method_ifindexTs
(���zXNetplanIpLeases.command_ip_leases.<locals>.find_lease_file.<locals>.lease_method_ifindexc
s�zHt�dd�jg�}|��D]5}d|vrC|�d�d����}t�ddd|g�}|��D]}d|vrB|�d�d����WSq,qWtd
��ty\}ztd	t|���d}~ww)N�dev�showzGENERAL.CONNECTION�:��con�idzconnection.uuidz@Could not find a NetworkManager connection for the interface: %sz<Could not find a NetworkManager connection for the interface)	�utils�	nmcli_outr-�
splitlines�split�rstripr7r8r;)�
nmcli_dev_out�line�conn_id�
nmcli_con_outr>rrr�lease_method_nm_connection]s" ���	���z^NetplanIpLeases.command_ip_leases.<locals>.find_lease_file.<locals>.lease_method_nm_connection�backendrr�
lease_method_�/�)r-�lease_idzNetworkManager/internal-zNetworkManager/dhclient-z%No lease found for interface '%s': %s��filerC)�
lease_path�evalr2r3r4�root_dir�abspath�formatr-�isfile�replacer5r6�printrJr8r;�sys�stderr�exit)
�mappingr?rO�
lease_pattern�lease_methodrTr3r=rLr>rrr�find_lease_fileSs4	��
�&����z:NetplanIpLeases.command_ip_leases.<locals>.find_lease_filer.z	--mappingzcommand ip leases: running %sT)�textz:No lease found for interface '%s' (not managed by Netplan)rUrC�,�=)r-�print_usagerF�get_generator_pathrYr9r:�
subprocess�check_outputrr^r_r`rarIr7)	rre�argv�outrb�	mapping_s�keyvalue�key�valuerrrr1Ns(

4�

z!NetplanIpLeases.command_ip_leases)r)r*r+rr%r1r,rrrrr <sr )
�__doc__r9r2r_rkr�netplan.cli.utils�clirFrW�NetplanCommandr	r rrrr�<module>s ���

Выполнить команду


Для локальной разработки. Не используйте в интернете!