관리-도구
편집 파일: activators.cpython-39.opt-1.pyc
a ����'�Dg�.����������������������@���s���U�d�dl�Z�d�dlmZmZ�d�dlmZ�d�dlmZmZm Z m Z mZmZm Z �d�dlmZmZ�d�dlmZmZmZmZ�d�dlmZ�d�dlmZ�e��e�ZG�d d ��d e�Zd%ee e!e!d�d d�Z"d&ee!e!d�dd�Z#G�dd��de�Z$G�dd��de$�Z%G�dd��de$�Z&G�dd��de$�Z'G�dd��de$�Z(G�dd��de$�Z)g�d�Z*e%e(e'e)e&d�Z+ee ee$�f�e,d<�e e �e e df�eee$��d �d!d"�Z-d'ee e ��ee �ee$�d �d#d$�Z.dS�)(�����N)�ABC�abstractmethod)�partial)�Callable�Dict�Iterable�List�Optional�Type�Union)�subp�util)�eni�netplan�network_manager�networkd)�Iproute2)�NetworkStatec�������������������@���s���e�Zd�ZdS�)�NoActivatorExceptionN)�__name__� __module__�__qualname__��r���r����</usr/lib/python3.9/site-packages/cloudinit/net/activators.pyr������s���r���T)�cmd�device_name�warn_on_stderr�returnc�����������������C���s���t�ttj|��|�S�)z2Attempt to alter an interface using a command list)�_alter_interface_callabler���r���)r���r���r���r���r���r����_alter_interface���s����r���)�callabler���r���c�������������� ���C���sp���z2|���\}}t�|�r.|rtjntj}|d|��W�dS��tjyj�}�zt�td|j��W�Y�d}~dS�d}~0�0�dS�)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���ZProcessExecutionErrorr ���Zlogexcr���)r ���r���Z_out�errZ log_stderr�er���r���r���r������s���� r���c�������������������@���s����e�Zd�Zeedee�ed�dd���Zeeeed�dd���Z eeeed�dd ���Z eee�ed �dd��Z eeed �dd��Zedd�dd��ZdS�)�NetworkActivatorN��targetr���c�����������������C���s ���t����dS�)z>Return True if activator is available, otherwise return False.N��NotImplementedError�r)���r���r���r���� available.���s����zNetworkActivator.available�r���r���c�����������������C���s ���t����dS�)zWBring up interface. Return True is successful, otherwise return False Nr*����r���r���r���r����bring_up_interface4���s����z#NetworkActivator.bring_up_interfacec�����������������C���s ���t����dS�)zYBring down interface. Return True is successful, otherwise return False Nr*���r/���r���r���r����bring_down_interface=���s����z%NetworkActivator.bring_down_interface��device_namesr���c��������������������s���t���fdd�|D���S�)zjBring up specified list of interfaces. Return True is successful, otherwise return False c�����������������3���s���|�]}����|�V��qd�S��N)r0���)�.0�device��clsr���r���� <genexpr>L��������z7NetworkActivator.bring_up_interfaces.<locals>.<genexpr>)�all)r8���r3���r���r7���r����bring_up_interfacesF���s����z$NetworkActivator.bring_up_interfaces�� network_stater���c�����������������C���s���|���dd��|���D���S�)z\Bring up all interfaces. Return True is successful, otherwise return False c�����������������S���s���g�|�]}|d���qS�)�namer����r5����ir���r���r���� <listcomp>U���r:���z<NetworkActivator.bring_up_all_interfaces.<locals>.<listcomp>)r<���Ziter_interfaces)r8���r>���r���r���r����bring_up_all_interfacesN���s�����z(NetworkActivator.bring_up_all_interfaces�r���c�������������������C���s ���t����dS�)zWait for network to come up.Nr*���r���r���r���r����wait_for_networkX���s����z!NetworkActivator.wait_for_network)N)r���r���r����staticmethodr���r ����str�boolr-���r0���r1����classmethodr���r<���r���rC���rE���r���r���r���r���r'���-���s��� r'���c�������������������@���sN���e�Zd�Zed ee�ed�dd��Zeeed�dd��Zeeed�dd ��Z dS�)�IfUpDownActivatorNr(���c�����������������C���s���t�j|�d�S��z3Return true if ifupdown can be used on this system.r,���)r���r-���r,���r���r���r���r-���c���s����zIfUpDownActivator.availabler.���c�����������������C���s���d|�g}t�||��S�)�bBring up interface using ifup. Return True is successful, otherwise return False Zifup�r����r���r���r���r���r���r0���h���s����z$IfUpDownActivator.bring_up_interfacec�����������������C���s���d|�g}t�||��S�)rL���ZifdownrM���rN���r���r���r���r1���q���s����z&IfUpDownActivator.bring_down_interface)N) r���r���r���rF���r ���rG���rH���r-���r0���r1���r���r���r���r���rJ���^���s���rJ���c�������������������@���sH���e�Zd�Zed ed�dd��Zeeed�dd��Zeeed�dd ��ZdS�)�IfConfigActivatorNrD���c�����������������C���s���d}dg}t�tj|||�d��S�)z3Return true if ifconfig can be used on this system.�ifconfigz/sbin)�searchr)���)rH���r����which)r)���ZexpectedrQ���r���r���r���r-���|���s����zIfConfigActivator.availabler.���c�����������������C���s���d|�dg}t�||��S�)zoBring up interface using ifconfig <dev> up. Return True is successful, otherwise return False rP����uprM���rN���r���r���r���r0�������s���� z$IfConfigActivator.bring_up_interfacec�����������������C���s���d|�dg}t�||��S�)zqBring up interface using ifconfig <dev> down. Return True is successful, otherwise return False rP���ZdownrM���rN���r���r���r���r1�������s���� z&IfConfigActivator.bring_down_interface)N) r���r���r���rF���rH���r-���rG���r0���r1���r���r���r���r���rO���{���s���rO���c�������������������@���s`���e�Zd�Zed ed�dd��Zeeed�dd��Zeeed�dd ��Ze e e�ed �dd��ZdS�)�NetworkManagerActivatorNrD���c�����������������C���s���t�j|�d�S�)z9Return true if NetworkManager can be used on this system.r,���)r���r-���r,���r���r���r���r-�������s����z!NetworkManagerActivator.availabler.���c�����������������C���sv���ddl�m}�||��}|du�r*t�d��dS�ddd|g}t||��rPddd d |g}ntg�d�|���ddd d|�g}t||��S�) zdBring up connection using nmcli. Return True is successful, otherwise return False r���)� conn_filenameNzFUnable to find an interface config file. Unable to bring up interface.F�nmcli� connection�loadrS����filename)rV���rW����reloadZifname)Zcloudinit.net.network_managerrU���r"���r#���r���)r���rU���rY���r���r���r���r���r0�������s����� z*NetworkManagerActivator.bring_up_interfacec�����������������C���s���ddd|�g}t�||��S�)zeBring down interface using nmcli. Return True is successful, otherwise return False rV���r6���Z disconnectrM���rN���r���r���r���r1�������s����z,NetworkManagerActivator.bring_down_interfacer2���c�����������������C���s6���t���g�d��j���}d|kr(t�d|��tg�d�d�S�)z9Activate network Return True on success )� systemctlZshowz--property=SubState�NetworkManager.servicezSubState=runningz:Expected NetworkManager SubState=running, but detected: %s)r[���zreload-or-try-restartr\���r;���)r����stdout�rstripr"���r#���r���)r8���r3����stater���r���r���r<�������s����� ��z+NetworkManagerActivator.bring_up_interfaces)N)r���r���r���rF���rH���r-���rG���r0���r1���rI���r���r<���r���r���r���r���rT�������s���rT���c�������������������@���s����e�Zd�ZddgZeded�dd��Zeeed�dd ��Zee e�ed �dd��Z eeed �dd��Zeeed�dd��Z edd�dd��ZdS�)�NetplanActivatorr���ZapplyNrD���c�����������������C���s���t�j|�d�S�)z2Return true if netplan can be used on this system.r,���)r���r-���r,���r���r���r���r-�������s����zNetplanActivator.availabler.���c�����������������C���s���t��d��ttjddd�S���YApply netplan config. Return True is successful, otherwise return False zBCalling 'netplan apply' rather than altering individual interfacesr;���F�r����r"���r$���r���r`����NETPLAN_CMDr/���r���r���r���r0�������s������z#NetplanActivator.bring_up_interfacer2���c�����������������C���s���t��d��ttjddd�S�ra���rd���)r3���r���r���r���r<�������s������z$NetplanActivator.bring_up_interfacesr=���c�����������������C���s���t�tjddd�S�)rb���r;���Frc���)r���r`���re���)r>���r���r���r���rC�������s�����z(NetplanActivator.bring_up_all_interfacesc�����������������C���s���t��d��ttjddd�S�ra���rd���r/���r���r���r���r1�����s������z%NetplanActivator.bring_down_interfacec�������������������C���s"���t����rt�d��dS�t����dS�)z:On networkd systems, wait for systemd-networkd-wait-onlinez1NetworkManager is enabled, skipping networkd waitN)r���r-���r"���r$����NetworkdActivatorrE���r���r���r���r���rE�����s���� z!NetplanActivator.wait_for_network)N)r���r���r���re���rF���rH���r-���rG���r0���r���r<���r���rC���r1���rE���r���r���r���r���r`�������s��� r`���c�������������������@���sn���e�Zd�Zeded�dd��Zeeed�dd��Zeeed�d d ��Z eeed�dd��Z edd�d d��ZdS�)rf���NrD���c�����������������C���s���t�j|�d�S�rK���)r���r-���r,���r���r���r���r-�����s����zNetworkdActivator.availabler.���c�����������������C���s���t�ttj|���S���1Return True is successful, otherwise return False)r���r���r���Zlink_upr/���r���r���r���r0���"��s���� �z$NetworkdActivator.bring_up_interfacer=���c�����������������C���s���g�d�}t�|d�S�)rh���)r[���Zrestartzsystemd-networkdzsystemd-resolvedr;���rM���)r>���r���r���r���r���rC���)��s����z)NetworkdActivator.bring_up_all_interfacesc�����������������C���s���t�ttj|���S�rg���)r���r���r���Z link_downr/���r���r���r���r1���/��s���� �z&NetworkdActivator.bring_down_interfacec�������������������C���s���t���g�d���dS�)z&Wait for systemd-networkd-wait-online.)r[����startz$systemd-networkd-wait-online.serviceN)r���r���r���r���r���rE���6��s�����z"NetworkdActivator.wait_for_network)N)r���r���r���rF���rH���r-���rG���r0���r���rC���r1���rE���r���r���r���r���rf�����s���rf���)r���r���znetwork-managerr���rP����NAME_TO_ACTIVATOR)�priorityr)���r���c��������������������sF���dd��|�D��}|r t�d|�����dd��|�D��}t��fdd�|D��d�S�)zEReturns the first available activator from the priority list or None.c�����������������S���s���g�|�]}|t�vr|�qS�r���)�DEFAULT_PRIORITYr@���r���r���r���rB���U��r:���z$search_activator.<locals>.<listcomp>z.Unknown activators provided in priority list: c�����������������S���s���g�|�]}t�|��qS�r���)rj���)r5���r?���r���r���r���rB���Z��r:���c�����������������3���s���|�]}|�����r|V��qd�S�r4���)r-���)r5���Z activator_clsr,���r���r���r9���\��s��� �z#search_activator.<locals>.<genexpr>N)� ValueError�next)rk���r)����unknownZactivator_classesr���r,���r����search_activatorQ��s����� ��rp���c�����������������C���sZ���|�d�u�rt�}�t|�|�}|sH|r0|dkr0d|���nd}td|��d|������t�d||���|S�)N�/z in target=��z%No available network activators foundz. Searched through list: z.Using selected activator: %s from priority: %s)rl���rp���r���r"���r$���)rk���r)���Zselected�tmsgr���r���r����select_activatore��s���� ���rt���)T)T)NN)/Zlogging�abcr���r���� functoolsr����typingr���r���r���r���r ���r ���r���Z cloudinitr���r ���Z cloudinit.netr���r���r���r���Zcloudinit.net.netops.iproute2r���Zcloudinit.net.network_stater���Z getLoggerr���r"���� Exceptionr����listrG���rH���r���r���r'���rJ���rO���rT���r`���rf���rl���rj����__annotations__rp���rt���r���r���r���r����<module>���sP��� $ ������1@F$ � ����