HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/net/__pycache__/activators.cpython-310.pyc
o

�Ad9'�@s�UddlZddlmZmZddlmZmZmZmZm	Z	m
Z
ddlmZm
Z
ddlmZddlmZddlmZddlmZddlmZe�e�ZGdd�de�Zd	efd
d�ZGdd
�d
e�Z Gdd�de �Z!Gdd�de �Z"Gdd�de �Z#Gdd�de �Z$gd�Z%e!e#e"e$d�Z&ee'e	e fe(d<dee'de
e'dfd	ee	e fdd�Z)	ddeee'dee'd	e	e fdd�Z*dS)�N)�ABC�abstractmethod)�Dict�Iterable�List�Optional�Type�Union)�subp�util��	available)�NetworkStatec@seZdZdS)�NoActivatorExceptionN)�__name__�
__module__�__qualname__�rr�:/usr/lib/python3/dist-packages/cloudinit/net/activators.pyrsr�returncCs^t�d||�zt�|�\}}t|�rt�d||�WdStjy.t�td|�YdSw)Nz#Attempting command %s for device %sz(Running %s resulted in stderr output: %sTz#Running interface command %s failedF)�LOG�debugr
�len�warning�ProcessExecutionErrorr�logexc)�cmd�device_name�_out�errrrr�_alter_interfaces�r c@s�eZdZeeddeedefdd���Zeededefdd���Z	eededefd	d
���Z
edeedefdd
��Z
ededefdd��Zedeedefdd��Zededefdd��ZdS)�NetworkActivatorN�targetrcC�t��)z>Return True if activator is available, otherwise return False.��NotImplementedError�r"rrrr
!szNetworkActivator.availablercCr#)zWBring up interface.

        Return True is successful, otherwise return False
        r$�rrrr�bring_up_interface'�z#NetworkActivator.bring_up_interfacecCr#)zYBring down interface.

        Return True is successful, otherwise return False
        r$r'rrr�bring_down_interface0r)z%NetworkActivator.bring_down_interface�device_namesc�t�fdd�|D��S)zjBring up specified list of interfaces.

        Return True is successful, otherwise return False
        c3��|]}��|�VqdS�N)r(��.0�device��clsrr�	<genexpr>?��z7NetworkActivator.bring_up_interfaces.<locals>.<genexpr>��all�r3r+rr2r�bring_up_interfaces9�z$NetworkActivator.bring_up_interfaces�
network_statecC�|�dd�|��D��S)z\Bring up all interfaces.

        Return True is successful, otherwise return False
        cS�g|]}|d�qS��namer�r0�irrr�
<listcomp>H�z<NetworkActivator.bring_up_all_interfaces.<locals>.<listcomp>)r9�iter_interfaces�r3r;rrr�bring_up_all_interfacesA��z(NetworkActivator.bring_up_all_interfacescr,)zlBring down specified list of interfaces.

        Return True is successful, otherwise return False
        c3r-r.)r*r/r2rrr4Qr5z9NetworkActivator.bring_down_interfaces.<locals>.<genexpr>r6r8rr2r�bring_down_interfacesKr:z&NetworkActivator.bring_down_interfacescCr<)z^Bring down all interfaces.

        Return True is successful, otherwise return False
        cSr=r>rr@rrrrBZrCz>NetworkActivator.bring_down_all_interfaces.<locals>.<listcomp>)rHrDrErrr�bring_down_all_interfacesSrGz*NetworkActivator.bring_down_all_interfacesr.)rrr�staticmethodrr�str�boolr
r(r*�classmethodrr9rrFrHrIrrrrr! s$	r!c@sTeZdZeddeedefdd��Zededefdd��Zededefd	d
��Z	dS)�IfUpDownActivatorNr"rcC�
t|d�S�z3Return true if ifupdown can be used on this system.r&)�
eni_availabler&rrrr
c�
zIfUpDownActivator.availablercC�d|g}t||�S)�bBring up interface using ifup.

        Return True is successful, otherwise return False
        �ifup�r �rrrrrr(h�
z$IfUpDownActivator.bring_up_interfacecCrS)rT�ifdownrVrWrrrr*qrXz&IfUpDownActivator.bring_down_interfacer.)
rrrrJrrKrLr
r(r*rrrrrN^srNc@sLeZdZed
defdd��Zededefdd��Zededefdd	��ZdS)�NetworkManagerActivatorNrcCrO)z9Return true if NetworkManager can be used on this system.r&)�nm_availabler&rrrr
|rRz!NetworkManagerActivator.availablercCs`ddlm}||�}ddd|g}t||�rdddd|g}ntgd�|�dddd	|g}t||�S)
zdBring up connection using nmcli.

        Return True is successful, otherwise return False
        r)�
conn_filename�nmcli�
connection�load�up�filename)r]r^�reload�ifname)�cloudinit.net.network_managerr\r )rr\rarrrrr(�s

z*NetworkManagerActivator.bring_up_interfacecCsddd|g}t||�S)zeBring down interface using nmcli.

        Return True is successful, otherwise return False
        r]r1�
disconnectrVrWrrrr*�s
z,NetworkManagerActivator.bring_down_interfacer.)	rrrrJrLr
rKr(r*rrrrrZ{srZc@s�eZdZddgZeddefdd��Zededefdd	��Zed
e	edefdd��Z
ed
edefdd��Zededefdd��Z
ed
e	edefdd��Zed
edefdd��ZdS)�NetplanActivator�netplan�applyNrcCrO)z2Return true if netplan can be used on this system.r&)�netplan_availabler&rrrr
�rRzNetplanActivator.availablercC�t�d�ttjd�S��YApply netplan config.

        Return True is successful, otherwise return False
        zBCalling 'netplan apply' rather than altering individual interfacesr7�rrr rf�NETPLAN_CMDr'rrrr(���z#NetplanActivator.bring_up_interfacer+cCrjrkrm�r+rrrr9�roz$NetplanActivator.bring_up_interfacesr;cC�ttjd�S�rlr7�r rfrn�r;rrrrF��z(NetplanActivator.bring_up_all_interfacescCrjrkrmr'rrrr*�roz%NetplanActivator.bring_down_interfacecCrjrkrmrprrrrH�roz&NetplanActivator.bring_down_interfacescCrqrrrsrtrrrrI�ruz*NetplanActivator.bring_down_all_interfacesr.)rrrrnrJrLr
rKr(rr9rrFr*rHrIrrrrrf�s rfc@sbeZdZed
defdd��Zededefdd��Zededefd	d
��Z	ededefdd��Z
dS)�NetworkdActivatorNrcCrOrP)�networkd_availabler&rrrr
�rRzNetworkdActivator.availablercC�dddd|g}t||�S)�1Return True is successful, otherwise return False�ip�link�setr`rVrWrrrr(��
z$NetworkdActivator.bring_up_interfacer;cCsgd�}t|d�S)ry)�	systemctl�restartzsystemd-networkdzsystemd-resolvedr7rV)r;rrrrrF�s
z)NetworkdActivator.bring_up_all_interfacescCrx)ryrzr{r|�downrVrWrrrr*�r}z&NetworkdActivator.bring_down_interfacer.)rrrrJrLr
rKr(rrFr*rrrrrv�srv)�enirgznetwork-manager�networkd�NAME_TO_ACTIVATOR�priorityr"cs>dd�|D�}|rtd|��dd�|D�}�fdd�|D�S)NcSsg|]}|tvr|�qSr)�DEFAULT_PRIORITYr@rrrrBsz$search_activator.<locals>.<listcomp>z0Unknown activators provided in priority list: %scSsg|]}t|�qSr)r�)r0r?rrrrBrCcsg|]	}|���r|�qSrr)r0�
activator_clsr&rrrBs��)�
ValueError)r�r"�unknown�activator_classesrr&r�search_activators�
�r�cCs\|durt}t||�}|s!d}|r|dkrd|}td||f��|d}t�d||�|S)N��/z
 in target=%szBNo available network activators found%s. Searched through list: %srz.Using selected activator: %s from priority: %s)r�r�rrr)r�r"�found�tmsg�selectedrrr�select_activators"
���r�)NN)+�logging�abcrr�typingrrrrrr	�	cloudinitr
r�cloudinit.net.enir
rQ�cloudinit.net.netplanrirdr[�cloudinit.net.network_stater�cloudinit.net.networkdrw�	getLoggerrr�	ExceptionrrLr r!rNrZrfrvr�r�rK�__annotations__r�r�rrrr�<module>sL
 
>!I��
�

��
���