Your IP : 216.73.216.52


Current Path : /usr/share/netplan/netplan/cli/commands/__pycache__/
Upload File :
Current File : //usr/share/netplan/netplan/cli/commands/__pycache__/ip.cpython-38.pyc

U

�]a��@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/dhclient-{lease_id}-{interface}.leaseZ
nm_connection)Znetworkd�NetworkManagercs$eZdZ�fdd�Zdd�Z�ZS)�	NetplanIpcst�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*s�zNetplanIp.__init__cCsBt�|_|jjdddd�}|j|jj|jd�|��|��dS)NZleases�Display IP leasesF)�help�add_help)�func�commandclass)�NetplanIpLeasesZcommand_leases�
subparsers�
add_parser�set_defaults�run�
parse_args�run_command)rZp_ip_leasesrrrr/s�z
NetplanIp.run)�__name__�
__module__�__qualname__rr�
__classcell__rrrrr(srcs,eZdZ�fdd�Zdd�Zdd�Z�ZS)rcst�jdddd�dS)Nz	ip leasesrTr	r
rrrrr>s�zNetplanIpLeases.__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!rrrrrCs��zNetplanIpLeases.runc	s��jdkr����fdd�}t��g}�jr<|d�jg7}|d�jg7}t�d|�ztj|dd�}Wnt	k
r�t
�d	�YnXi}|�d
�}|D]}|�
��d�\}}|||<q�||�dS)Nrc	
s��fdd�}�fdd�}t|dd}t|dd}zltd|��}ttj�d	�jrftj��j�nd
|j�j	|d���� }|�
�D]}t|���q�W5QRXWnHt
k
r�}z*td�j	t|�ftjd
�t�d�W5d}~XYnXdS)Nc
s�tj�d�jd�}z2t|�� }|��d��W5QR�WSQRXWn6tk
rz}zt�	d|t
|���W5d}~XYnXdS)Nz/sys/class/netrrzCannot read file %s: %s)�os�path�joinr&�open�	readlines�strip�	Exception�logging�debug�str)Z	ifindex_f�f�errr�lease_method_ifindexTs
(zXNetplanIpLeases.command_ip_leases.<locals>.find_lease_file.<locals>.lease_method_ifindexc
s�z�tjddd�jgdditjd�}|jD]�}|�d�}d|kr(|�d	�d
����}tjdddd|gdditjd�}|jD]6}|�d�}d
|krz|�d	�d
����WSqzq(Wn2t	k
r�}zt	dt
|���W5d}~XYnXt	d��dS)N�nmcli�devZshow�LC_ALL�C)�env�stdoutzutf-8zGENERAL.CONNECTION�:�Zcon�idzconnection.uuidz@Could not find a NetworkManager connection for the interface: %sz<Could not find a NetworkManager connection for the interface)�
subprocess�Popenr&�PIPEr=�decode�split�rstripr0r1r4)Z
nmcli_dev_out�lineZconn_idZ
nmcli_con_outr6rrr�lease_method_nm_connection]s(�

�

("z^NetplanIpLeases.command_ip_leases.<locals>.find_lease_file.<locals>.lease_method_nm_connectionZbackendrrZ
lease_method_�/�)r&�lease_idz%No lease found for interface '%s': %s)�filer?)�
lease_path�evalr.r+r,r-�root_dir�abspath�formatr&r/�printrFr1r4�sys�stderr�exit)	�mappingr7rHZ
lease_patternZlease_methodrKr5rGr6rrr�find_lease_fileSs(	
���z:NetplanIpLeases.command_ip_leases.<locals>.find_lease_filer'z	--mappingzcommand ip leases: running %sT)�universal_newlinesr?�,�=)r&�print_usage�utils�get_generator_pathrOr2r3rA�check_outputrrSrUrEr0)	rrW�argv�outrVZ	mapping_sZkeyvalue�key�valuerrrr*Ns$
5


z!NetplanIpLeases.command_ip_leases)r"r#r$rrr*r%rrrrr<sr)
�__doc__r2r+rSrAr�netplan.cli.utils�clir\rM�NetplanCommandrrrrrr�<module>s���