HOME


Mini Shell 1.0
DIR: /snap/core20/current/usr/share/subiquity/subiquitycore/ui/views/__pycache__/
Upload File :
Current File : //snap/core20/current/usr/share/subiquity/subiquitycore/ui/views/__pycache__/network.cpython-38.pyc
U

K��^�=�@s�dZddlZddlmZmZddlmZmZddlm	Z	ddl
mZmZm
Z
ddlmZddlmZdd	lmZdd
lmZmZmZddlmZmZmZmZddlmZd
dlm Z m!Z!m"Z"m#Z#d
dl$m%Z%ddl&m'Z'e�(d�Z)dd�Z*Gdd�de'�Z+dS)zS Network Model

Provides network device listings and extended network information

�N)�connect_signal�Text)�addr_version�NetDevAction)�
ActionMenu)�back_btn�done_btn�menu_btn)�Pile)�Spinner)�StretchyOverlay)�ColSpec�	TablePile�TableRow)�button_pile�Color�make_action_menu_row�screen)�widget_width�)�AddVlanStretchy�BondStretchy�EditNetworkStretchy�ViewInterfaceInfo)�NetworkConfigureWLANStretchy)�BaseViewzsubiquitycore.views.networkcs��fdd�}d|_|S)Ncs2�||f���}|�|jj�|��|�|�dS�N)�attach_context�
controller�context�child�show_stretchy_overlay)�self�name�device�stretchy��args�cls��6/usr/share/subiquity/subiquitycore/ui/views/network.py�implBsz_stretchy_shower.<locals>.implT)�opens_dialog)r(r'r+r)r&r*�_stretchy_showerAsr-cs�eZdZed�Zed�Z�fdd�Zee�Z	ee
�Zeed�Z
eed�Zee�Zee�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd*dd�Zd d!�Zd+d"d#�Z d,d$d%�Z!d-d&d'�Z"d.d(d)�Z#�Z$S)/�NetworkViewzNetwork connectionsz�Configure at least one interface this server can use to talk to other machines, and which preferably provides sufficient access for updates.cs�||_||_i|_g|_tddd�|_tdd�tdd�tddd	�d
�|_t|�	��|_
ttd�|j
d�|_t|jg�}d
|_|j
|g}ttd|jd�ttd�|jd�g�|_td|jfg�|_|jj�|j�d|_t��t||jdt|j�d��dS)N��center��alignr)�rpad�)Z	min_widthT)Z
can_shrinkr3)r��zCreate bond)Zon_press�leftZTBDZBack�packF)�rows�buttonsZ
focus_buttons�excerpt)�modelr�dev_to_table�cur_netdevsr�errorr
�device_colspecsr
�_build_model_inputs�device_piler	�_�_create_bondZ_create_bond_btnrr2r�doner�cancelr:�bottom�network_event_receiverZadd_default_route_watcher�_route_watcher�
error_showing�super�__init__rr;)r"r<rZbpr9��	__class__r)r*rLPsH
�������zNetworkView.__init__r6�c	Cs~|jj�|��ft�}|jdkrB|jdD]}|�|j�|��q*d|_|�	|�|D]}|�
|�qV|j��W5QRXdS)N�bond�
interfaces)rrr �set�type�config�addr<Zget_netdev_by_name�del_link�update_linkZapply_config)r"r#r$Ztouched_devs�devr)r)r*�_action_DELETE�s

zNetworkView._action_DELETEcCs"|\}}|d�|j|j�|�dS)Nz{}/{})�formatr#)r"�sender�actionr$�methr)r)r*�_action�szNetworkView._actioncCs`t�d|�|rtd�}ntd�}|jjd�|�tdt|jjd�t|jjd��|j_dS)Nzview route_watcher %sZDonezContinue without networkr�r)	�log�debugrCr:�base_widgetZ	set_label�maxr�width)r"Zroutes�labelr)r)r*rI�s
�zNetworkView._route_watchercCsdt|jjj�}|��ttttd��|g�gdd�}||j	�
�ftd�|j	�
�fg|j	jdd�<dS)NzApplying changesr0r1r/r)rr�app�aio_loop�startrrrrCrG�options�contents)r"�s�cr)r)r*�show_apply_spinner�s
����zNetworkView.show_apply_spinnercCs$t|jj�dkr g|jjdd�<dS)N�r)�lenrGrj)r"r)r)r*�hide_apply_spinner�szNetworkView.hide_apply_spinnercCs�g}|jdkr$|jjs$|�td��|j��D]@}|jdkr>q.|j|j�	dg�kr.|�td�j
|jd��qpq.|r�d�|�}nd}|S)	NZethz
not connectedrPrQzenslaved to {device})r$�, �-)rS�infoZis_connected�appendrCr<�get_all_netdevsr#rT�getrZ�join)r"rXZnotes�dev2r)r)r*�_notes_for_device�s
�zNetworkView._notes_for_devicec
s�g}|��}dD�]N}|�|��rtdj|d���|�|�}|rZ|��fdd�|D��n�|�|�dkr�t|jj	j
dd�}d	|_|��|�
�|f�nl|�|�d
kr�|�
�ttd��f�nF|�|�dkr�|�
�td
�f�n$|�
�ttdj|�|�d���f�qg}|j�dg�D]"}t|�|k�r|�
t|���q|r|�
ttd��td�|��f�qt|�dk�r�|j�s�|j}|dk�r�d}|�
ttd��t|�f�g}	|D]&\�}
|	�
ttd��d|
fg���q�|	S)N)r6rOzDHCPv{v})�vcsg|]}�t|�f�qSr))r)�.0Zaddr�rer)r*�
<listcomp>�sz8NetworkView._address_rows_for_device.<locals>.<listcomp>ZPENDINGr7r1g333333�?ZTIMEDOUTz	timed outZRECONFIGURErrzunknown state {state})�stateZ	addressesZstaticrqrr/Zdisabledrn)�dhcp_addressesZdhcp_enabledrrZrv�extendZ
dhcp_staterrrfrgZraterhrtrCrTr�strrwroZis_usedZdisabled_reasonr)r"rXZaddress_inforrzZaddrsrkZip�reasonr9�valuer)r|r*�_address_rows_for_device�sZ

�����
 z$NetworkView._address_rows_for_devicecCs�t�d|j|j||jk�||jkr2|�|�dSt|j�D]\}}|j|jkr<|}qdq<t|j�}|�	||�}||j
�d�fg|j
j|d|d�<dS)Nznew_link %s %s %sr8r)
r`rar#�ifindexr>r=rW�	enumeratero�_device_widgetrBrirj)r"Znew_dev�iZcur_dev�netdev_i�wr)r)r*�new_link�s"�


�zNetworkView.new_linkcCs�t�d|j|j||jk�||jkr(dS|j|}|jdj}|jdd�	|j�|jdd�	|j
�|jdd�	|�|��|�dt
|j��|�d|�|��dS)Nzupdate_link %s %s %srrrnr5)r`rar#r�r>r=Z
table_rowsrbZcells�set_textrSryZremove_rowsroZinsert_rowsr�)r"rXZ	old_tableZ	first_rowr)r)r*rWs�


zNetworkView.update_linkcCsdt|jj�d}|jj|k}|jj|=|r6|j��n*|jj��sT|jjd7_q6|jj��dS)Nr)rorBrjZfocus_positionZ_select_last_selectableZfocusZ
selectableZ_select_first_selectable)r"r�Z
new_lengthZrefocusr)r)r*�_remove_rows
zNetworkView._remove_rowcCs�t�d|j|j||jk�|jr.|jdk	r.dS||jkrb|j�|�}|�|d�|j|=|j	|=t
|jt�r�|jj
}t|dd�|kr�|��dS)Nzdel_link %s %s %srr$)r`rar#r�r>Z
is_virtualrT�indexr�r=�
isinstanceZ_wrr%�getattrZremove_overlay)r"rXr�r%r)r)r*rV+s"�
zNetworkView.del_linkNcCs�|dkrt|j�}|g|j||�<g}tD]D}t|d|j�}t|dd�}|�|�r*|�|��d||f|f�q*t|�}t	|d|j
|�ttd�t|j�t|j
�t|�|�dd�|td	�g|�g|�|�}t||jd
d�}	|	|j|<|	�|j�|j
dk�rtd
�jf|j�}
nF|j
dk�r<td�jd�|jd�d�}
nd�|jj|jj|jjg�}
td|	fdt�td|
��fdtd�fg�S)NZ_action_r,FTr\�[Zclip)Zwrap�]rn)�colspecs�spacingZvlanzVLAN {id} on interface {link}rPzbond master for {interfaces}rqrQ)rQz / r8z  r/) ror>rr�r#Zsupports_actionrtr�rrr^rrrSryr�rr@r=Zbind�
heading_tablerCrZrTrwrsZhwaddrZvendorr<r
r�
info_minor)r"rXr�Zactionsr\r]r,ZmenuZtrows�tablersr)r)r*r�=s\


����	

���
�zNetworkView._device_widgetcCsNttdd�dD��gd|jd�|_|jg}|j��D]}|�|�|��q4|S)NcSsg|]}t�t|���qSr))rr�r)r{�headerr)r)r*r}usz3NetworkView._build_model_inputs.<locals>.<listcomp>)r/�NAMEZTYPEZNOTESr/rn)r�r�)rrr@r�r<rurtr�)r"r9rXr)r)r*rAss���zNetworkView._build_model_inputscCs*t|�}|�|jj�d��|�|�dS)NZadd_bond)rrrrr r!)r"r[r%r)r)r*rD�szNetworkView._create_bondcCs�d|_t�|j�|j��ftd�|j��fg|jjdd�<|dkr`|d}|j�d|j	f�nz|dkrv|j�d�nd|dkr�|j�d	�nN|d
kr�|j�d�n8|dkr�|j�d
�n"|dkr�|j�d�n|j�d�dS)NTr/rz
stop-networkdz$Stopping systemd-networkd-failed: %rZapplyzHNetwork configuration could not be applied; please verify your settings.Ztimeoutz=Network configuration timed out; please verify your settings.Zdownz"Downing network interfaces failed.zadd-vlanzFailed to add a VLAN tag.zrm-devz%Failed to delete a virtual interface.z>An unexpected error has occurred; please verify your settings.)
rJrZ
info_errorr?rGrirrjr��stderr)r"r\rs�excr)r)r*�show_network_error�s(�
�zNetworkView.show_network_errorcCs4|jrg|jjdd�<|jj�|j�|j��dS)Nrrn)rJrGrjrrH�remove_default_route_watcherrIrE)r"�resultr)r)r*rE�s�zNetworkView.donecCs|jj�|j�|j��dSr)rrHr�rIrF)r"Zbuttonr)r)r*rF�s�zNetworkView.cancel)N)N)N)N)N)%�__name__�
__module__�__qualname__rC�titler;rLr-rZ_action_INFOrZ_action_EDIT_WLANrZ_action_EDIT_IPV4Z_action_EDIT_IPV6rZ_action_EDIT_BONDrZ_action_ADD_VLANrYr^rIrmrpryr�r�rWr�rVr�rArDr�rErF�
__classcell__r)r)rMr*r.Js4,


1
6


r.),�__doc__ZloggingZurwidrrZsubiquitycore.models.networkrrZsubiquitycore.ui.actionmenurZsubiquitycore.ui.buttonsrrr	Zsubiquitycore.ui.containerr
Zsubiquitycore.ui.spinnerrZsubiquitycore.ui.stretchyrZsubiquitycore.ui.tabler
rrZsubiquitycore.ui.utilsrrrrZsubiquitycore.ui.widthrZ"network_configure_manual_interfacerrrrZ network_configure_wlan_interfacerZsubiquitycore.viewrZ	getLoggerr`r-r.r)r)r)r*�<module>s"