PHP WebShell

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

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

o

��~f�k�	@s(dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZddl
Z
ddlZddlmmZe	e
edfedeeeeedfZe�d�ZdZzddlmZddlmZdd	lmZGd
d�de�Z dZWne!y�e�"d
�YnwGdd�d�Z#Gdd�dej$�Z%dS)znetplan status command line�N)�Union�Dict�List�Type�JSONz\[([a-z0-9]+)\].*\[\/\1\]F)�Console)�RegexHighlighter)�Themec@seZdZdZddgZdS)�NetplanHighlighterznetplan.z"(^|[\s\/])(?P<int>\d+)([\s:]?\s|$)z(?P<str>(\"|\').+(\"|\'))N)�__name__�
__module__�__qualname__�
base_style�
highlights�rr�1/usr/share/netplan/netplan/cli/commands/status.pyr
,s
�r
Tz4python3-rich not found, falling back to plain outputc@seZdZdedefdd�Zggddfdedededed	ef
d
d�Zdedefd
d�Z	dedefdd�Z
defdd�Zede
fdd��Zede
fdd��Zedefdd��Zedefdd��Zedefdd��Zedefdd��Zedefd d!��Zedefd"d#��Zedefd$d%��Zd&S)'�	Interface�ip�returncCs$t|�dd�}�dkr|��SdS)z�
        Extract the MAC address if it's set inside the JSON data and seems to
        have the correct format. Return 'None' otherwise.
        �address��N)�len�get�lower)�selfrrrrr�
__extract_mac8szInterface.__extract_mac)NN�nd_data�nm_data�
resolved_data�
route_datac
sb|�dd��_|�dd��_d|�dg�vrdnd�_|�dd����_��|��_|p-g}t�fd	d
�|D�d��_	t�fdd
�|D�d��_
d�_|dr~g�_|dD]'}t|d�t�j�kr}|d
}|d}�j�
t�|d�dd�|D����qVd�_|d
r�g�_|d
D]}	t|	d�t�j�kr��j�
t|	d
��q�g}
d�_|dr�|
|d7}
|d
r�|
|d
7}
|
�r#g�_|
D]]}|�d��jk�r"d|�d�i}|�d�}
|
r�|
|d<|�d�}
|
r�|
|d<|�d�}
|
r�|
|d<|�d�}
|
�r|
|d<|�d�}
|
�r|
|d<|�d�}
|
�r|
|d<�j�
|�q�d�_|�d�}�r�g�_|D]]}g}t�|d�j�rE|�
d��j�rr�jD]%}d|v�rpt�|d�t�|d�k�rp|dd k�rp|�
d �n�qL|d��}|d!|d"ii}|�r�|||d<�j�
|��q3d�_|�d#i��d$�}�r�|���_���j��p�d%�_dS)&N�ifindex����ifname�unknown�UP�flags�DOWN�	operstatec3�"�|]}|d�jkr|VqdS)�IndexN)�idx��.0�x�rrr�	<genexpr>K�� z%Interface.__init__.<locals>.<genexpr>c3r))�deviceN)�namer,r/rrr0Lr1r���cSsg|]}|�dd��qS)r4�big)�to_bytes)r-�vrrr�
<listcomp>V�z&Interface.__init__.<locals>.<listcomp>�dev�to�dst�gateway�via�prefsrc�from�metric�type�scope�protocol�	addr_info�local�link�dhcp�prefix�	prefixlen�linkinfo�	info_kindr)rr+r3�
adminstate�upperr(�_Interface__extract_mac�
macaddress�next�nd�nm�
dns_addresses�int�append�socket�	inet_ntop�join�
dns_search�str�routes�	addresses�	ipaddress�
ip_address�
is_link_localr�iproute_type�strip�query_networkctl�_networkctl)rrrrrr �itr�ipfamily�dnsr9�_routes�obj�elem�valrG�addrr&�route�ip_addrrNrr/r�__init__As�$��





�



�
zInterface.__init__�con_namec
Csbd}zt�ddddd|g�}|��WSty0}zt�d�|t|���WYd}~|Sd}~ww)Nz--get-valuesz802-11-wireless.ssid�con�show�idz+Cannot query NetworkManager SSID for {}: {})�utils�	nmcli_outrd�	Exception�logging�warning�formatr])rrr�ssid�errr�
query_nm_ssid�s�
���zInterface.query_nm_ssidr#c
Cs^d}ztjddd|gdd�}W|Sty.}zt�d�|t|���WYd}~|Sd}~ww)N�
networkctl�statusz--T��textz"Cannot query networkctl for {}: {})�
subprocess�check_outputrxryrzr{r])rr#�outputr}rrrre�s����zInterface.query_networkctlcCs�|j|j|jd�}|jr|j|d<|jr|j|d<|jr!|j|d<|jr)|j|d<|jr1|j|d<|jr9|j|d<|j	rA|j	|d<|j
rI|j
|d	<|jrQ|j|d
<|jrY|j|d<|j
ra|j
|d<|jri|j|d
<|j|fS)N)�indexrOr(rDr|�tunnel_mode�backendrurR�vendorr_rVr\r^�activation_mode)r+rOr(rDr|r�r��	netdef_idrRr�r_rVr\r^r�r3)r�jsonrrrr��s:�












zInterface.jsoncC�|jdko	|jdkS)Nr%�rOr(r/rrr�up��zInterface.upcCr�)Nr'r�r/rrr�down�r�zInterface.downcCs`tddddddddddddddd��}|jr|j�d	�nd}||vr&||St�d
�|��dS)N�bond�bridge�ethernet�tunnel�wifi�modem�vrf)r�r��ether�ipgre�ip6gre�loopback�sitr��tunnel6�	wireguard�wlan�wwanr��vxlanrzUnknown device type: {})�dictrTrryrzr{)r�match�nd_typerrrrD�s*�zInterface.typecCs|jdkr|jr|jSdS)Nr�)rDrcr/rrrr��szInterface.tunnel_modecCsN|jrd|j�dd�vrd|j�dd�vrdS|jr%d|j�dd�vr%d	SdS)
N�	unmanaged�
SetupStater�run/systemd/network/10-netplan-�NetworkFile�networkd�.run/NetworkManager/system-connections/netplan-�filename�NetworkManager)rTrrUr/rrrr��szInterface.backendcCs�|jdkr|j�dd��d�d�d�dS|jdkrK|j�d	d��d
�d�d�d}|j�dd�d
krI|�|j�d��}|rI|�d|�d}|SdS)Nr�r�rr�r4z.networkrr�r�r�z
.nmconnectionrDz802-11-wirelessr3�-)r�rTr�splitrUr~)r�netdefr|rrrr��s,
���
���zInterface.netdef_idcCs,|jrd|jvr|jdr|jd��SdS)N�Vendor)rTrdr/rrrr�szInterface.vendorcCsb|jdkr/|j��D]$}|��}d}|�|�r.|t|�td����}|r*|SdSq
dS)Nr�zWiFi access point: z (xB:SS:ID:xx:xx:xx))rDrf�
splitlinesrd�
startswithr)r�line�keyr|rrrr|s

�zInterface.ssidcCs�|jdkr0|j��D]#}|��}d}|�|�r-|t|�d���}|dkr)|SdSq
dS|jdkr@|jddkr>dSdSdS)Nr�zActivation Policy: r�r��autoconnect�no�manual)r�rfr�rdr�rrU)rr�r��moderrrr�s

�
�zInterface.activation_modeN)rrr
r�r]rQr�tuplerqr~rer��property�boolr�r�rDr�r�r�r�r|r�rrrrr7s<	��
�X	 	rcs�eZdZ�fdd�Zdd�Zdefdd�Zdedefd	d
�Z	de
defdd
�Zdefdd�Z
defdd�Zdefdd�Zdefdd�Zdefdd�Zdefdd�Zdefdd�Zdd�Zd%ded eddfd!d"�Zd#d$�Z�ZS)&�
NetplanStatuscst�jdddd�d|_dS)Nr�z,Query networking state of the running systemT)�
command_id�description�leafF)�superrq�allr/��	__class__rrrq1s
�
zNetplanStatus.__init__cCsZ|jjddtddd�|jjddddd	�|jjd
ddd
d�|j|_|��|��dS)Nr#�?zShow only this interface)�nargsrD�default�helpz-az--all�
store_truez(Show all interface data (incl. inactive))�actionr��-fz--format�tabularz2Output in machine readable `json` or `yaml` format)r�r�)�parser�add_argumentr]�command�func�
parse_args�run_commandr/rrr�run7s���zNetplanStatus.runrc
Cs�ggdd�}zZtd��K}|��}d|vrd|d<nd|vr!d|d<|g|��D]$}|�d�r=|d	|��d
d�7<|�d�rL|��d
d�|d<q(Wd�W|S1sYwYW|Sty}}zt�d�t	|���WYd}~|Sd}~ww)
N)r_�searchr�z/etc/resolv.confz/# This is /run/systemd/resolve/stub-resolv.conf�stubr�z*# This is /run/systemd/resolve/resolv.conf�compat�
nameserverr_r4r�z!Cannot parse /etc/resolv.conf: {})
�open�readline�	readlinesr�r�rxryrzr{r])r�res�f�	firstliner�r}rrr�resolvconf_jsonCs6�



�������zNetplanStatus.resolvconf_json�
interfacescCs�|D]A}|jrC|jrC|jrC|jrCg}|jD]}t|���d\}}d|vs+d|dvr0|�|�qdd�|jD�}|rC|rC|jrCdSqdS)Nrr&rIcSs g|]}|�dd�dkr|�qS)r=Nr�)rr,rrrr:d� z4NetplanStatus.query_online_state.<locals>.<listcomp>TF)r�r_r^rV�list�itemsrX)rr��itf�
non_local_ipsrnr�extra�default_routesrrr�query_online_stateZs

��z NetplanStatus.query_online_state�
cmd_outputcCs
t�|�S�N�r��loads�rr�rrr�process_genericis
zNetplanStatus.process_genericc
Csbd}ztjgd�dd�}|�|�}W|Sty0}zt�d�t|���WYd}~|Sd}~ww)N)r�-d�-jrnTr�z(Cannot query iproute2 interface data: {})r�r�r�rxry�criticalr{r]�r�datar�r}rrr�query_iproute2l�
����zNetplanStatus.query_iproute2cCst�|�dS)N�
Interfacesr�r�rrr�process_networkdvszNetplanStatus.process_networkdc
Csbd}ztjddgdd�}|�|�}W|Sty0}zt�d�t|���WYd}~|Sd}~ww)Nrz--json=shortTr�z(Cannot query networkd interface data: {})r�r�r�rxryr�r{r]r�rrr�query_networkdyr�zNetplanStatus.query_networkdc
Csdg}|��D])}|�d�}|dr|dnd}|r/|�||d|d|d|d|dd��q|S)	N�:rr4r5���)r2r3�uuidr�rDr�)r�r�rX)rr�r�r�r�r<rrr�
process_nm�s
��zNetplanStatus.process_nmc
Cs^d}zt�gd��}|�|�}W|Sty.}zt�d�t|���WYd}~|Sd}~ww)N)z-tr�z*DEVICE,NAME,UUID,FILENAME,TYPE,AUTOCONNECTrsrtz.Cannot query NetworkManager interface data: {})rvrwr�rxry�debugr{r]r�rrr�query_nm�s���zNetplanStatus.query_nmc
Cs�d}d}z!tjgd�dd�}|�|�}tjgd�dd�}|�|�}W||fStyD}zt�d�t|���WYd}~||fSd}~ww)N)rr�r�roTr�)rr�r�z-6roz$Cannot query iproute2 route data: {})r�r�r�rxryr�r{r])r�data4�data6�output4�output6r}rrr�query_routes�s"
�

����zNetplanStatus.query_routesc
Cs�d}d}z"t��}|�dd�}t�|d�}|�d�}|d}|d}W||fStyE}zt�d�t	|���WYd}~||fSd}~ww)Nzorg.freedesktop.resolve1z/org/freedesktop/resolve1zorg.freedesktop.DBus.Propertiesz org.freedesktop.resolve1.Manager�DNS�Domainsz"Cannot query resolved DNS data: {})
�dbus�	SystemBus�
get_objectr�GetAllrxryr�r{r])rr_r��ipc�resolve1�resolve1_ifr�r}rrr�query_resolved�s

���zNetplanStatus.query_resolvedcOsht|�r-t|�}t�|d�D]}|d�d�|�d��d�|�d�|d<qt|i|��St|i|��S)Nrz[{}]rz[/{}])rr��
MATCH_TAGS�findall�replacer{�print)r�args�kwargs�lst�tagrrr�plain_print�s�zNetplanStatus.plain_printNr��totalc&s�trtdddddddd��}tt�||d	d
�}|j}n|j}d}��di�}�fd
d��D�}	|d|djd|�dd	�r?dndd��|�di�}
|
�dg�}|
�d�}|
�dg�}
|r�t|�D]\}}|d|dj|dkrrdnd||r{d�|�ndd��qa|
r�t|
�D]\}}|d|dj|dkr�d nd|d��q�|�|	D�]\}���d!d"�d#��d$d"�}d%}|d&kr�d'}d}n|d(kr�d)}d*}��d+d,�}��d-�}��d.�}|d/kr�|r�|d0|d17}n|d2kr�|r�|d#|7}|d3j|��d4d5�|||��d6d7���d8��rd9���d8��ndd:����d;��r@|d|d<jd=��d;d���d>��r;d���d>d��ndd?����dg�}|�r�t|�D]U\}}t	|�
��d\}}g}|�d@��ri|�d@g�}d}d}|�rudA|v�rydB}dC}|d|dDj|dk�r�dEnd||�dFd�|�r�dGdH�|�dInd||dJ���qM��dKg�}|�r�t|�D]\}}|d|dj|dk�r�dnd|d���q���dLg�}|�r�t|�D]\}}|d|dj|dk�r�d nd|d���q׈�dMg�}|�r�t|�D]�\}}d}d}|dNdOk�rdB}dC}d}dP|v�rdQ|dP}d} dR|v�r+dS|dR} d}!dT|v�r:dUt|dT�}!g}dV|v�rQ|dVdWk�rQ|dV}"|�
|"�dX|v�rf|dXdYk�rf|dX}#|�
|#�d+|v�r{|d+dZk�r{|d+}$|�
|$�|d|d[j|dk�r�d\nd|dN|| |!|�r�dGdH�|�dInd||d]���q���d^�}|�r�|d|djd_|d��|�q�|t|	�}%|%dk�r�|d`�|%��dSdS)aNz	bold cyan�yellow�grey62z
green boldzred boldzyellow bold�bold)znetplan.intznetplan.str�muted�online�offliner$�	highlightF)�highlighter�theme�width�emoji�18�netplan-global-statecs g|]}|dkr|�|f�qS)r%r)r-r��r�rrr:�r�z.NetplanStatus.pretty_print.<locals>.<listcomp>z{title:>z	} {value}z
Online state:rz[online]online[/online]z[offline]offline[/offline])�title�value�nameserversr_r�r�z} {value}[muted]{mode}[/muted]rzDNS Addresses:rz ({}))r'r(r�zDNS Search:r(�UNKNOWN�/rOr$zUP/UPr%z	DOWN/DOWNr'rrD�otherr|r�r�z/"�"r�uU[{col}]●[/{col}] {idx:>2}: {name} {type} [{col}]{state}[/{col}] ({backend}{netdef})r�r�r�r�ruz: [highlight]{}[/highlight])�colr+r3rD�stater�r�rRz} {mac}[muted]{vendor}[/muted]zMAC Address:r�)r'�macr�r&rJz[highlight]z[/highlight]z1} {start}{ip}/{prefix}{end}[muted]{extra}[/muted]z
Addresses:rKz (z, �))r'rrKr��start�endrVr\r^r=r�r@z via rBz from rCz metric rF�kernelrE�global�unicastz:} {start}{to}{via}{src}{metric}{end}[muted]{extra}[/muted]zRoutes:)r'r=r@�srcrCr�r2r3r�zActivation Mode:z7{} inactive interfaces hidden. Use "--all" to show all.)�RICH_OUTPUTr	rr
rrrr{�	enumerater�r�r[r]rXr)&rr�r�_console_widthr!�console�pprint�pad�global_stater��ns�dns_addr�dns_moder\�irmr#r/�scolor�	full_typer|r�rrkrr�r&�highlight_start�
highlight_end�
default_start�default_endr@r7rC�protorErD�hiddenrr&r�pretty_print�s2�	��

�
�



�

 �
�	��





�

�
�zNetplanStatus.pretty_printcs�t�d�s!t�d�rt�d�t�d�t�d�t�ddgd���	�}��
��|r-�s7t�d�t�d��������\����
�\��������fdd	�|D�}t|�}d
d	�|D�}��|�}�jrut�fdd�|D�d�g}d
d	�|D�}�jr�|gkr�t�d��j��t�d�d|���d�i}�jr�|n|}|D]}|��\}	}
|
||	<q��j��}|dkr�ttj|dd��dS|dkr�ttj|dd��dS��||�dS)Nzsystemd-networkd.servicez^'netplan status' depends on networkd, but systemd-networkd.service is masked. Please start it.r4z3systemd-networkd.service is not active. Starting...r2Tz,Could not query iproute2 or systemd-networkdc	s$g|]}t|����f��f��qSr)r�r-r�)rVr\r��nmcli�route4�route6rrr:�s$z)NetplanStatus.command.<locals>.<listcomp>cSsg|]	}|jdkr|�qS)r')r(rLrrrr:�sc3s �|]}|j�jkr|VqdSr�)r3r#rLr/rrr0�s�z(NetplanStatus.command.<locals>.<genexpr>cSsg|]}|dur|�qSr�r)r-rlrrrr:�r;zCould not find interface {}r%)rr)r�)�indent�yamlF)�default_flow_style)rv�systemctl_is_active�systemctl_is_maskedry�error�sys�exitr��	systemctlr�r�r�rrrr�r#rSr{r�r�r�rr�dumpsrQ�dumprK)r�iproute2r�r�filtered�online_stater��itf_iterr�r#rk�
output_formatr)rVr\r�rMrNrOrrr�lsN








��

zNetplanStatus.commandr�)rrr
rqr�r�r�r�r�r�r]rr�r�r�r�r�r�r�rrrrWrKr��
__classcell__rrr�rr�0s"


)r�)&�__doc__r`r�ry�rerYr�rV�typingrrrrrrQ�netplan.cli.utils�clirvr]rW�floatr�r�compilerr8�rich.consoler�rich.highlighterr�
rich.themer	r
�ImportErrorr�r�NetplanCommandr�rrrr�<module>s6&
�z

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


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