HOME


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

K��^_1�@s�ddlZddlZddlZddlZddlmZmZddlmZddl	m
Z
ddddd	d
ddgZd
dgZe�
d�Zdd�ZGdd�dej�ZGdd�d�ZGdd�de�ZGdd�de�ZdS)�N)�AF_INET�AF_INET6)�pgettext)�netplan�loZbridgeZtunZtapZdummyZsitZcanz???�vlan�bondzsubiquitycore.models.networkcCst�|�jS�N)�	ipaddressZip_interface�version)�ip�r
�4/usr/share/subiquity/subiquitycore/models/network.py�addr_version"src@sZeZdZedd�Zedd�Zedd�Zedd�Zedd�Zedd�Z	edd�Z
dd	�Zd
S)�NetDevActionZInfoz	Edit Wifiz	Edit IPv4z	Edit IPv6z	Edit bondzAdd a VLAN tagZDeletecCstt|�j|j�Sr	)r�type�__name__�value��selfr
r
r�str0szNetDevAction.strN)r�
__module__�__qualname__r�INFOZ	EDIT_WLANZ	EDIT_IPV4Z	EDIT_IPV6Z	EDIT_BONDZADD_VLANZDELETErr
r
r
rr&s






rc@sDeZdZdddddddgZdddhZdd	d
ddgZdhZd
dgZdS)�BondParametersz
balance-rrz
active-backupzbalance-xorZ	broadcastz802.3adzbalance-tlbzbalance-albZlayer2zlayer2+3zlayer3+4zencap2+3zencap3+4ZslowZfastN)rrrZmodesZsupports_xmit_hash_policyZxmit_hash_policiesZsupports_lacp_rateZ
lacp_ratesr
r
r
rr4s.���	��rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zedd��Z	e	j
d
d��Z	dd�Zedd��Zdd�Z
edd��Zedd��Zedd��Zedd��Zedd��ZdZedd ��ZdZdZed!d ��Zed"d ��Zed#d ��Zd$d%�Zd&d'�Zd(S))�
NetworkDevcCs:||_||_||_i|_d|_d|_i|_ddd�|_dS)N���)�_model�_namer�config�infoZdisabled_reasonZdhcp_events�_dhcp_state)r�model�name�typr
r
r�__init__\s�zNetworkDev.__init__cCsjggd�}|jdk	rf|jj��D]D}|jtkr4d}n|jtkr d}nq |jdkr ||�t|j	��q |S)NrrrZdhcp)
r"�	addresses�valuesZfamilyrr�source�appendr�address)r�r�a�vr
r
r�dhcp_addressesis




zNetworkDev.dhcp_addressescCs(|jdkrdS|j�dj|d�d�SdS)NF�dhcp{v}�r/)r!�get�format�rrr
r
r�dhcp_enabledws
zNetworkDev.dhcp_enabledcCs$|j�dj|d�d�sdS|j|S)Nr1r2F)r!r3r4r#r5r
r
r�
dhcp_state}szNetworkDev.dhcp_statecCs||j|<dSr	)r#)rr�stater
r
r�set_dhcp_state�szNetworkDev.set_dhcp_statecCs|jSr	)r rr
r
rr%�szNetworkDev.namecCs�||jkrv|jrv|jdk	rv||jjkr:tdj|j|d���||jj|<t|j|j	�}|jj|j<d|_
|j|_d|_||_dS)Nz#renaming {old_name} over {new_name})Zold_name�new_name)r%�
is_virtualr"r$�devices_by_name�RuntimeErrorr4rrrr!r )rr:Zdead_devicer
r
rr%�s"���cCst|d|j�S)NZ
_supports_)�getattrr%)r�actionr
r
r�supports_action�szNetworkDev.supports_actioncCs4|j�di���D]\}}|�d�}||fSdS)N�
access-points�password)NN)r!r3�items)r�ssidZsettings�pskr
r
r�configured_ssid�s
zNetworkDev.configured_ssidcCs>|j�di�}|��|dk	r:i||<|dk	r:|||d<dS)NrArB)r!�
setdefault�clear)rrDrEZapsr
r
r�set_ssid_psk�szNetworkDev.set_ssid_pskcCs|jdk	r|jjSdSdSr	)r"�ifindexrr
r
rrJ�s
zNetworkDev.ifindexcCs
|jtkSr	)r�"NETDEV_ALLOWED_VIRTUAL_IFACE_TYPESrr
r
rr;�szNetworkDev.is_virtualcCs8|j��D](}|jdkr
|j|j�dg�kr
dSq
dS)Nr�
interfacesTF�r�get_all_netdevsrr%r!r3�r�devr
r
r�
is_bond_slave�s

zNetworkDev.is_bond_slavecCsZ|j��D]J}|jdkr2|j|j�dg�kr2dS|jdkr
|j|j�d�kr
dSq
dS)NrrLTr�linkFrMrOr
r
r�is_used�s

zNetworkDev.is_usedcCsdd�t|jj���D�S)NcSs g|]\}}|jdkr|j�qS)�global)Zscoper)�.0�_Zaddrr
r
r�
<listcomp>�s
�z9NetworkDev.actual_global_ip_addresses.<locals>.<listcomp>)�sortedr"r(rCrr
r
r�actual_global_ip_addresses�sz%NetworkDev.actual_global_ip_addressesTcCs
|jdkS)N�wlan�rrr
r
r�<lambda>��zNetworkDev.<lambda>cCs
|jdkS)Nrr[rr
r
rr\�r]cCs|jdko|jS)Nr)rrQrr
r
rr\�r]cCs|jo|jSr	)r;rSrr
r
rr\�r]cCs||j�dj|d�d�|j�dj|d�d�g}|j�dg�D]}t|�|kr>|�|�q>|rj||jd<n|j�dd�dS)Nr1r2�
gateway{v}r()r!�popr4r3rr+)rrZaddrsrr
r
r�remove_ip_networks_for_version�sz)NetworkDev.remove_ip_networks_for_versioncCs�|d�d�d}|d|d�d�d7}|j�dg��|�dj|d�}|d	rd|d	|j|<n|j�|d�|j�d
i�}|d
r�|�dg��|d
�|dr�|�dg��|d�dS)
Nr,�/r�network�r(r^r2ZgatewayZnameserversZ
searchdomains�search)�splitr!rGr+r4r_�extend)rrrbr,Zgwkey�nsr
r
r�add_network�szNetworkDev.add_networkN)rrrr'r0r6r7r9�propertyr%�setterr@rFrIrJr;rQrSrYZ_supports_INFOZ_supports_EDIT_WLANZ_supports_EDIT_IPV4Z_supports_EDIT_IPV6Z_supports_EDIT_BONDZ_supports_ADD_VLANZ_supports_DELETEr`rhr
r
r
rrZsH









��rc@steZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
ddd�Zdd�Zdd�Z
dd�Zdd�ZdS)�NetworkModel� TcCs||_i|_d|_||_dS)NF)�support_wlanr<Zhas_network�project)rrnrmr
r
rr'szNetworkModel.__init__cCst��|_|j�|�dSr	)rZConfigr!Zload_from_root)rZnetplan_rootr
r
r�parse_netplan_configss
z"NetworkModel.parse_netplan_configscCs�t�d||j|j�|jtkr"dS|js6|jdkr6dS|jrJ|jtkrJdS|j�	|j�}|dk	rt|j
dk	rlq�||_
n\|j�|�}|jr�|s�dSt
||j|j�}||_
||_t�d||jt�|j��||j|j<|S)Nznew_link %s %s %srZznew_link %s %s with config %s)�log�debugr%r�NETDEV_IGNORED_IFACE_TYPESrmr;rKr<r3r"r!Zconfig_for_devicerrZsanitize_interface_config)rrJrRrPr!r
r
r�new_link
s6
�


�zNetworkModel.new_linkcCs*|j��D]\}}|j|kr
|Sq
dSr	)r<rCrJ�rrJr%rPr
r
r�update_link+s
zNetworkModel.update_linkcCsR|j��D]B\}}|j|kr
d|_|jr<|jdkrD|j|=n|j|=|Sq
dSr	)r<rCrJr"r;r!rtr
r
r�del_link0s


zNetworkModel.del_linkcCs8dj|j|d�}t||d�}|j|<|j|d�|_|S)Nz{name}.{tag})r%�tagr)rR�id)r4r%rr<r!)rZdevicerwr%rPr
r
r�new_vlan@s�zNetworkModel.new_vlancCs&t||d�}|j|<||d�|_|S)Nr)rLZ
parameters)rr<r!)rr%rLZparamsrPr
r
r�new_bondIs
�zNetworkModel.new_bondFcCs.dd�t|j���D�}|s*dd�|D�}|S)NcSsg|]\}}|�qSr
r
)rU�kr/r
r
rrWRsz0NetworkModel.get_all_netdevs.<locals>.<listcomp>cSsg|]}|jdk	r|�qSr	)r!)rUr/r
r
rrWTs
)rXr<rC)rZinclude_deletedZdevsr
r
rrNQszNetworkModel.get_all_netdevscCs
|j|Sr	)r<)rr%r
r
r�get_netdev_by_nameWszNetworkModel.get_netdev_by_namecCs d�d�|j�tj|dd�g�S)N�
z,# This is the network config written by '{}'F)Zdefault_flow_style)�joinr4rn�yaml�dump)rr!r
r
r�stringify_configZs��zNetworkModel.stringify_configcCs^dddii}ddddd�}|��D]6}||j}|d�|i�}|jsL|jr"|j||j<q"|S)	Nrbr�Z	ethernetsZbondsZwifisZvlans)ZethrrZr)rNrrGr!rSr%)rr!Ztype_to_keyrP�keyZconfigsr
r
r�
render_configas ���
zNetworkModel.render_configcCs$dd|�|���d�ddd�d�iS)NZwrite_filesz$etc/netplan/00-installer-config.yaml)�pathZcontentz@etc/cloud/cloud.cfg.d/subiquity-disable-cloudinit-networking.cfgznetwork: {config: disabled}
)Zetc_netplan_installerZnonet)r�r�rr
r
r�renderus����zNetworkModel.renderN)T)F)rrr�__doc__r'rorsrurvryrzrNr|r�r�r�r
r
r
rrk�s
!	
rk)�enumr
ZloggingrZsocketrrZsubiquitycore.gettext38rZ
subiquitycorerrrrKZ	getLoggerrpr�Enumrr�objectrrkr
r
r
r�<module>s.�
&$