%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /snap/core20/current/lib/python3/dist-packages/cloudinit/net/__pycache__/
Upload File :
Create Path :
Current File : //snap/core20/current/lib/python3/dist-packages/cloudinit/net/__pycache__/activators.cpython-38.pyc

U

Ӈg�.�@s�UddlZddlmZmZddlmZddlmZmZm	Z	m
Z
mZmZm
Z
ddlmZmZddlmZmZmZmZddlmZddlmZe�e�ZGd	d
�d
e�Zd*ee e!e!d�d
d�Z"d+ee!e!d�dd�Z#Gdd�de�Z$Gdd�de$�Z%Gdd�de$�Z&Gdd�de$�Z'Gdd�de$�Z(Gdd�de$�Z)ddd d!d"gZ*e%e(e'e)e&d#�Z+ee ee$fe,d$<e
e e
e dfeee$d%�d&d'�Z-d,ee
e ee ee$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eZdZdS)�NoActivatorExceptionN)�__name__�
__module__�__qualname__�rr�:/usr/lib/python3/dist-packages/cloudinit/net/activators.pyrsrT)�cmd�device_name�warn_on_stderr�returncCstttj|�|�S)z2Attempt to alter an interface using a command list)�_alter_interface_callablerr)rrrrrr�_alter_interfacesr)�callablerrc
Csrz2|�\}}t|�r.|rtjntj}|d|�WdStjk
rl}zt�td|j�WY�dSd}~XYnXdS)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 failedFN)	�len�LOG�warning�debugrZProcessExecutionErrorr
Zlogexcr)r rZ_out�errZ
log_stderr�errrrs

rc@s�eZdZeedeeed�dd���Zeeeed�dd���Z	eeeed�dd	���Z
eeeed
�dd��Z
eeed
�dd��Zedd�dd��ZdS)�NetworkActivatorN��targetrcCs
t��dS)z>Return True if activator is available, otherwise return False.N��NotImplementedError�r)rrr�	available.szNetworkActivator.available�rrcCs
t��dS)zWBring up interface.

        Return True is successful, otherwise return False
        Nr*�rrrr�bring_up_interface4sz#NetworkActivator.bring_up_interfacecCs
t��dS)zYBring down interface.

        Return True is successful, otherwise return False
        Nr*r/rrr�bring_down_interface=sz%NetworkActivator.bring_down_interface��device_namesrcst�fdd�|D��S)zjBring up specified list of interfaces.

        Return True is successful, otherwise return False
        c3s|]}��|�VqdS�N)r0)�.0�device��clsrr�	<genexpr>Lsz7NetworkActivator.bring_up_interfaces.<locals>.<genexpr>)�all)r8r3rr7r�bring_up_interfacesFsz$NetworkActivator.bring_up_interfaces��
network_statercCs|�dd�|��D��S)z\Bring up all interfaces.

        Return True is successful, otherwise return False
        cSsg|]}|d�qS)�namer�r5�irrr�
<listcomp>Usz<NetworkActivator.bring_up_all_interfaces.<locals>.<listcomp>)r;Ziter_interfaces)r8r=rrr�bring_up_all_interfacesNs�z(NetworkActivator.bring_up_all_interfaces�rcCs
t��dS)zWait for network to come up.Nr*rrrr�wait_for_networkXsz!NetworkActivator.wait_for_network)N)rrr�staticmethodrr	�str�boolr-r0r1�classmethodrr;rrBrDrrrrr'-s	r'c@sNeZdZed
eeed�dd��Zeeed�dd��Zeeed�dd	��Z	dS)�IfUpDownActivatorNr(cCstj|d�S�z3Return true if ifupdown can be used on this system.r,)rr-r,rrrr-cszIfUpDownActivator.availabler.cCsd|g}t||�S)�bBring up interface using ifup.

        Return True is successful, otherwise return False
        Zifup�r�rrrrrr0hsz$IfUpDownActivator.bring_up_interfacecCsd|g}t||�S)rKZifdownrLrMrrrr1qsz&IfUpDownActivator.bring_down_interface)N)
rrrrEr	rFrGr-r0r1rrrrrI^srIc@sHeZdZed
ed�dd��Zeeed�dd��Zeeed�dd	��ZdS)�IfConfigActivatorNrCcCsd}dg}ttj|||d��S)z3Return true if ifconfig can be used on this system.�ifconfigz/sbin)�searchr))rGrZwhich)r)ZexpectedrPrrrr-|szIfConfigActivator.availabler.cCsd|dg}t||�S)zoBring up interface using ifconfig <dev> up.

        Return True is successful, otherwise return False
        rO�uprLrMrrrr0�s
z$IfConfigActivator.bring_up_interfacecCsd|dg}t||�S)zqBring up interface using ifconfig <dev> down.

        Return True is successful, otherwise return False
        rOZdownrLrMrrrr1�s
z&IfConfigActivator.bring_down_interface)N)	rrrrErGr-rFr0r1rrrrrN{srNc@s`eZdZed
ed�dd��Zeeed�dd��Zeeed�dd	��Ze	e
eed
�dd��ZdS)�NetworkManagerActivatorNrCcCstj|d�S)z9Return true if NetworkManager can be used on this system.r,)rr-r,rrrr-�sz!NetworkManagerActivator.availabler.cCsxddlm}||�}|dkr*t�d�dSddd|g}t||�rPddd	d
|g}ntdddg|�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�nmcliZ
connection�loadrQ�filename�reloadZifname)Zcloudinit.net.network_managerrSr"r#r)rrSrVrrrrr0�s�
z*NetworkManagerActivator.bring_up_interfacecCsddd|g}t||�S)zeBring down interface using nmcli.

        Return True is successful, otherwise return False
        rTr6Z
disconnectrLrMrrrr1�sz,NetworkManagerActivator.bring_down_interfacer2cCs<t�ddddg�j��}d|kr,t�d|�tdddgd�S)	z9Activate network

        Return True on success
        �	systemctlZshowz--property=SubStatezNetworkManager.servicezSubState=runningz:Expected NetworkManager SubState=running, but detected: %szreload-or-try-restartr:)r�stdout�rstripr"r#r)r8r3�staterrrr;�s ��
��z+NetworkManagerActivator.bring_up_interfaces)N)rrrrErGr-rFr0r1rHrr;rrrrrR�srRc@s�eZdZddgZeded�dd��Zeeed�dd	��Zee	eed
�dd��Z
eeed
�dd��Zeeed�dd��Z
edd�dd��ZdS)�NetplanActivatorrZapplyNrCcCstj|d�S)z2Return true if netplan can be used on this system.r,)rr-r,rrrr-�szNetplanActivator.availabler.cCst�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$rr\�NETPLAN_CMDr/rrrr0�s��z#NetplanActivator.bring_up_interfacer2cCst�d�ttjddd�Sr]r`)r3rrrr;�s��z$NetplanActivator.bring_up_interfacesr<cCsttjddd�S)r^r:Fr_)rr\ra)r=rrrrB�s
�z(NetplanActivator.bring_up_all_interfacescCst�d�ttjddd�Sr]r`r/rrrr1s��z%NetplanActivator.bring_down_interfacecCs"t��rt�d�dSt��dS)z:On networkd systems, wait for systemd-networkd-wait-onlinez1NetworkManager is enabled, skipping networkd waitN)rr-r"r$�NetworkdActivatorrDrrrrrDs
z!NetplanActivator.wait_for_network)N)rrrrarErGr-rFr0rr;rrBr1rDrrrrr\�s

	
r\c@sneZdZeded�dd��Zeeed�dd��Zeeed�d	d
��Z	eeed�dd��Z
edd�d
d��ZdS)rbNrCcCstj|d�SrJ)rr-r,rrrr-szNetworkdActivator.availabler.cCstttj|��S��1Return True is successful, otherwise return False)rrrZlink_upr/rrrr0"s
�z$NetworkdActivator.bring_up_interfacer<cCsddddg}t|d�S)rdrXZrestartzsystemd-networkdzsystemd-resolvedr:rL)r=rrrrrB)sz)NetworkdActivator.bring_up_all_interfacescCstttj|��Src)rrrZ	link_downr/rrrr1/s
�z&NetworkdActivator.bring_down_interfacecCst�dddg�dS)z&Wait for systemd-networkd-wait-online.rX�startz$systemd-networkd-wait-online.serviceN)rrrrrrD6s�z"NetworkdActivator.wait_for_network)N)rrrrErGr-rFr0rrBr1rDrrrrrbsrbrr�network-managerrrO)rrrfrrO�NAME_TO_ACTIVATOR)�priorityr)rcsFdd�|D�}|r td|����dd�|D�}t�fdd�|D�d�S)zEReturns the first available activator from the priority list or None.cSsg|]}|tkr|�qSr)�DEFAULT_PRIORITYr?rrrrAUsz$search_activator.<locals>.<listcomp>z.Unknown activators provided in priority list: cSsg|]}t|�qSr)rg)r5r>rrrrAZsc3s|]}|���r|VqdSr4)r-)r5Z
activator_clsr,rrr9\s
�z#search_activator.<locals>.<genexpr>N)�
ValueError�next)rhr)�unknownZactivator_classesrr,r�search_activatorQs�
��rmcCsZ|dkrt}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)rirmrr"r$)rhr)ZselectedZtmsgrrr�select_activatores
��rp)T)T)NN)/Zlogging�abcrr�	functoolsr�typingrrrrr	r
rZ	cloudinitrr
Z
cloudinit.netrrrrZcloudinit.net.netops.iproute2rZcloudinit.net.network_staterZ	getLoggerrr"�	Exceptionr�listrFrGrrr'rIrNrRr\rbrirg�__annotations__rmrprrrr�<module>sh$
����1@F%�	�


��
�

Zerion Mini Shell 1.0