HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-87-generic #88-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 11 09:28:41 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/cloudinit/net/__pycache__/activators.cpython-312.pyc
�

쑛h�-�	��UddlZddlmZmZddlmZddlmZmZm	Z	m
Z
mZmZddl
mZmZddlmZmZmZmZddlmZddlmZej2e�ZGd	�d
e�Z	d#deded
e de fd�Z!	d#ded
e de fd�Z"Gd�de�Z#Gd�de#�Z$Gd�de#�Z%Gd�de#�Z&Gd�de#�Z'Gd�de#�Z(gd�Z)e$e'e&e(e%d�Z*eeee#fe+d<d e
edeee#fd!�Z,	d$d ee
edee#fd"�Z-y)%�N)�ABC�abstractmethod)�partial)�Callable�Dict�Iterable�List�Optional�Type)�subp�util)�eni�netplan�network_manager�networkd)�Iproute2)�NetworkStatec��eZdZy)�NoActivatorExceptionN)�__name__�
__module__�__qualname__���:/usr/lib/python3/dist-packages/cloudinit/net/activators.pyrrs��rr�cmd�device_name�warn_on_stderr�returnc�J�tttj|�|�S)z2Attempt to alter an interface using a command list)�_alter_interface_callablerr)rrrs   r�_alter_interfacer"s��%�W�T�Y�Y��%<�n�M�Mr�callablec��	|�\}}t|�r+|rtjntj}|d|�y#tj
$r/}t
jtd|j�Yd}~yd}~wwxYw)z�Attempt to alter an interface using a callable

    this function standardizes logging and response to failure for
    various activators
    zReceived stderr output: %sTz#Running interface command %s failedNF)	�len�LOG�warning�debugr�ProcessExecutionErrorr
�logexcr)r#r�_out�err�
log_stderr�es      rr!r!sf����J�	��c��s�8�(6����C�I�I�J��3�S�9����%�%�����C�>����F����s�AA�B�%B�Bc��eZdZeedefd���Zeededefd���Zeededefd���Z	e
deedefd��Ze
de
defd	��Zedd��Zy
)
�NetworkActivatorrc��t��)z>Return True if activator is available, otherwise return False.��NotImplementedErrorrrr�	availablezNetworkActivator.available.s
��"�#�#rrc��t��)zWBring up interface.

        Return True is successful, otherwise return False
        r2�rs r�bring_up_interfacez#NetworkActivator.bring_up_interface4�
��"�#�#rc��t��)zYBring down interface.

        Return True is successful, otherwise return False
        r2r6s r�bring_down_interfacez%NetworkActivator.bring_down_interface=r8r�device_namesc�,��t�fd�|D��S)zjBring up specified list of interfaces.

        Return True is successful, otherwise return False
        c3�@�K�|]}�j|����y�w�N�r7��.0�device�clss  �r�	<genexpr>z7NetworkActivator.bring_up_interfaces.<locals>.<genexpr>Ls�����M�f�3�)�)�&�1�M���)�all)rCr;s` r�bring_up_interfacesz$NetworkActivator.bring_up_interfacesFs����M��M�M�Mr�
network_statec�l�|j|j�D�cgc]}|d��	c}�Scc}w)z\Bring up all interfaces.

        Return True is successful, otherwise return False
        �name)rG�iter_interfaces)rCrH�is   r�bring_up_all_interfacesz(NetworkActivator.bring_up_all_interfacesNs5���&�&� -� =� =� ?�@�1�Q�v�Y�@�
�	
��@s�1Nc��t��)zWait for network to come up.r2rrr�wait_for_networkz!NetworkActivator.wait_for_networkXs
��"�#�#r�rN)rrr�staticmethodr�boolr4�strr7r:�classmethodrrGrrMrOrrrr0r0-s�����$�t�$���$���$��$��$���$���$�#�$�$�$���$��N�x��}�N��N��N��
�L�
�T�
��
��$��$rr0c�V�eZdZedefd��Zededefd��Zededefd��Zy)�IfUpDownActivatorrc�*�tj�S�z3Return true if ifupdown can be used on this system.)rr4rrrr4zIfUpDownActivator.availablecs���}�}��rrc�"�d|g}t||�S)�bBring up interface using ifup.

        Return True is successful, otherwise return False
        �ifup�r"�rrs  rr7z$IfUpDownActivator.bring_up_interfacehs���{�#����[�1�1rc�"�d|g}t||�S)rZ�ifdownr\r]s  rr:z&IfUpDownActivator.bring_down_interfaceqs����%����[�1�1rN�	rrrrQrRr4rSr7r:rrrrVrV^sa��
��t�����2��2��2��2��2�#�2�$�2��2rrVc�V�eZdZedefd��Zededefd��Zededefd��Zy)�IfConfigActivatorrc�L�d}dg}ttj||���S)z3Return true if ifconfig can be used on this system.�ifconfigz/sbin)�search)rRr�which)�expectedres  rr4zIfConfigActivator.available|s&��������D�J�J�x��7�8�8rrc�$�d|dg}t||�S)zoBring up interface using ifconfig <dev> up.

        Return True is successful, otherwise return False
        rd�upr\r]s  rr7z$IfConfigActivator.bring_up_interface�s���;��-����[�1�1rc�$�d|dg}t||�S)zqBring up interface using ifconfig <dev> down.

        Return True is successful, otherwise return False
        rd�downr\r]s  rr:z&IfConfigActivator.bring_down_interface�s���;��/����[�1�1rNr`rrrrbrb{s_���9�t�9��9��2��2��2��2��2�#�2�$�2��2rrbc�v�eZdZedefd��Zededefd��Zededefd��Ze	de
edefd��Zy)	�NetworkManagerActivatorrc�*�tj�S)z9Return true if NetworkManager can be used on this system.)rr4rrrr4z!NetworkManagerActivator.available�s���(�(�*�*rrc���ddlm}||�}|�tjd�yddd|g}t	||�rdddd	|g}nt	gd
�|�dddd|g}t	||�S)zdBring up connection using nmcli.

        Return True is successful, otherwise return False
        r)�
conn_filenamezFUnable to find an interface config file. Unable to bring up interface.F�nmcli�
connection�loadri�filename)rqrr�reload�ifname)�cloudinit.net.network_managerrpr&r'r")rrprtrs    rr7z*NetworkManagerActivator.bring_up_interface�s~��	@� ��-�����K�K�0�
����f�h�7���C��-��L�$�
�H�E�C��>��L��L�$��+�F�C���[�1�1rc�&�ddd|g}t||�S)zeBring down interface using nmcli.

        Return True is successful, otherwise return False
        rqrB�
disconnectr\r]s  rr:z,NetworkManagerActivator.bring_down_interface�s����,��<����[�1�1rr;c����tjgd��jj�}d|k7rtj	d|�tgd�d�xrt
�fd�|D��S)z9Activate network

        Return True on success
        )�	systemctl�showz--property=SubState�NetworkManager.servicezSubState=runningz:Expected NetworkManager SubState=running, but detected: %s)r{ztry-reload-or-restartr}rFc3�@�K�|]}�j|����y�wr>r?r@s  �rrDz>NetworkManagerActivator.bring_up_interfaces.<locals>.<genexpr>�s�����L�V�#�(�(��0�L�rE)r�stdout�rstripr&r'r"rF)rCr;�states`  rrGz+NetworkManagerActivator.bring_up_interfaces�sp����	�	�
�
��&����	���&��K�K�L��
� �L��
�M��L�|�L�L�	MrN)rrrrQrRr4rSr7r:rTrrGrrrrmrm�s����+�t�+��+��2��2��2��2�.�2�#�2�$�2��2��M�x��}�M��M��Mrrmc��eZdZddgZedefd��Zededefd��Zede	edefd��Z
ed	edefd
��Zededefd��Z
edd
��Zy)�NetplanActivatorr�applyrc�*�tj�S)z2Return true if netplan can be used on this system.)rr4rrrr4zNetplanActivator.available�s��� � �"�"rrc�d�tjd�ttjdd��S��YApply netplan config.

        Return True is successful, otherwise return False
        zBCalling 'netplan apply' rather than altering individual interfacesrFF�r�r&r(r"r��NETPLAN_CMDr6s rr7z#NetplanActivator.bring_up_interface��1��	�	�	�
-�	
� ��(�(�%��
�	
rr;c�d�tjd�ttjdd��Sr�r�)r;s rrGz$NetplanActivator.bring_up_interfaces�r�rrHc�:�ttjdd��S)r�rFFr�)r"r�r�)rHs rrMz(NetplanActivator.bring_up_all_interfaces�s�� ��(�(�%��
�	
rc�d�tjd�ttjdd��Sr�r�r6s rr:z%NetplanActivator.bring_down_interfacer�rNc��tj�rtjd�ytj�y)z:On networkd systems, wait for systemd-networkd-wait-onlinez1NetworkManager is enabled, skipping networkd waitN)rr4r&r(�NetworkdActivatorrOrrrrOz!NetplanActivator.wait_for_networks,���$�$�&��I�I�I�J���*�*�,rrP)rrrr�rQrRr4rSr7rrGrrMr:rOrrrr�r��s����g�&�K��#�t�#��#��
��
��
��
��
�(�3�-�
�D�
��
��
�|�
��
��
��
�#�
�$�
��
��-��-rr�c��eZdZedefd��Zededefd��Zededefd��Z	ededefd��Z
ed
d	��Zy)r�rc�*�tj�SrX)rr4rrrr4zNetworkdActivator.availables���!�!�#�#rrc�H�tttj|��S��1Return True is successful, otherwise return False)r!rr�link_upr6s rr7z$NetworkdActivator.bring_up_interface"s!��)��H�$�$�k�2�
�	
rrHc�"�gd�}t|d�S)r�)r{�restartzsystemd-networkdzsystemd-resolvedrFr\)rHrs  rrMz)NetworkdActivator.bring_up_all_interfaces)s��O����U�+�+rc�H�tttj|��Sr�)r!rr�	link_downr6s rr:z&NetworkdActivator.bring_down_interface/s!��)��H�&�&��4�
�	
rNc�2�tjgd��y)z&Wait for systemd-networkd-wait-online.)r{�startz$systemd-networkd-wait-online.serviceN)rrrrrOz"NetworkdActivator.wait_for_network6s��	
�	�	�J�	
rrP)rrrrQrRr4rSr7rrMr:rOrrrr�r�s����$�t�$��$��
��
��
��
��,�|�,��,��,�
�
�#�
�$�
��
��
��
rr�)rrznetwork-managerrrd�NAME_TO_ACTIVATOR�priorityc��|D�cgc]
}|tvs�|��}}|rtd|����|D�cgc]}t|��
}}td�|D�d�Scc}wcc}w)zEReturns the first available activator from the priority list or None.z.Unknown activators provided in priority list: c3�@K�|]}|j�r|���y�wr>)r4)rA�
activator_clss  rrDz#search_activator.<locals>.<genexpr>Zs$����	
���&�&�(�
�	
�s�N)�DEFAULT_PRIORITY�
ValueErrorr��next)r�rL�unknownrJ�activator_classess     r�search_activatorr�Qs��"�@�Q�a�/?�&?�q�@�G�@���<�W�I�F�
�	
�>F�F�T�*�4�0�F��F��	
�!2�	
�
	
�
���
A��
Gs�
A�A�Ac�z�|�t}t|�}|std|����tj	d||�|S)Nz>No available network activators found. Searched through list: z.Using selected activator: %s from priority: %s)r�r�rr&r()r��selecteds  r�select_activatorr�csT����#����)�H��"�&�&.�Z�
1�
�	
��I�I�8�(�H���Or)Tr>).�logging�abcrr�	functoolsr�typingrrrr	r
r�	cloudinitrr
�
cloudinit.netrrrr�cloudinit.net.netops.iproute2r�cloudinit.net.network_stater�	getLoggerrr&�	Exceptionr�listrSrRr"r!r0rVrbrmr�r�r�r��__annotations__r�r�rrr�<module>r�sj���#��A�A� �A�A�2�4��g����!��	�9�	�
9=�N�	
�N��N�15�N�	�N�04����(,��	��&.$�s�.$�b2�(�2�:2�(�2�6=M�.�=M�@C-�'�C-�L
�(�
�H����.�!�!�8��4��T�"2�3�3�4���t�C�y��X�d�;K�6L�-M��&%)���t�C�y�!��	�
��r