%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/share/netplan/netplan/cli/commands/__pycache__/
Upload File :
Create Path :
Current File : //usr/share/netplan/netplan/cli/commands/__pycache__/apply.cpython-36.pyc

3

�Bd]�)�@sndZddlZddlZddlZddlZddlZddlZddljj	Z	ddl
mZmZddl
Z
Gdd�de	j�ZdS)znetplan apply command line�N)�
ConfigManager�ConfigurationErrorcsJeZdZ�fdd�Zdd�Zed
dd��Zed	d
��Zedd��Z�Z	S)�NetplanApplycst�jdddd�dS)NZapplyz.Apply current netplan config to running systemT)�
command_id�description�leaf)�super�__init__)�self)�	__class__��0/usr/share/netplan/netplan/cli/commands/apply.pyr	#szNetplanApply.__init__cCstj|_|j�|j�dS)N)r�
command_apply�func�
parse_args�run_command)r
rrr
�run(szNetplanApply.runTFc
Cs�dtjkr~tjd�}|dkr$td��tj|ddddddd	g�}|d
krz|rVtj|�q~|dkrht	d��q~|d
kr~td��ndSt
tjd��}t
tjd��}|r�tjtj
�g�d
kr�|r�tjtj�ntd��t�}tj�}t
tjd��}	|	r�|r�d}	t
tjd��}
|
�r|�rd}
|	�r:tjd�tjd|dgd�n
tjd�|
�r�tjd�tj��r�x<|D]4}ytjdd|g�Wntjk
�r�YnX�qdWtjd|d�n
tjd�|j�tj||�}tj�}xd|D]\}tjd|�y$tjdddd |gtjtjd!�Wn$tjk
�r0tjd"|�YnX�q�WxJ|j�D]>\}
}|j d#��rBtjd$d%d&d'|
d#|j d#�gtjtjd!��qBWtjdd(g�|	�r�d)d*�tjd+�D�}tjd,||d�|
�r�tjd,|d�dS)-NZSNAP�busctlzmissing busctl utility�callz--quietz--systemzio.netplan.Netplanz/io/netplan/NetplanZApplyr�z'failed to communicate with dbus service�z/run/systemd/network/*netplan-*z0/run/NetworkManager/system-connections/netplan-*z(the configuration could not be generatedTzEnetplan generated networkd configuration changed, restarting networkd�stopznetplan-wpa@*.service)�sync�extra_servicesz2no netplan generated networkd configuration existsz9netplan generated NM configuration changed, restarting NM�deviceZ
disconnect)rz,no netplan generated NM configuration existsz%netplan triggering .link rules for %sZudevadmztest-builtinZnet_setup_linkz/sys/class/net/)�stdout�stderrz#Ignoring device without syspath: %s�nameZip�link�setZdevZsettlecSsg|]}tjj|��qSr)�os�path�basename)�.0�frrr
�
<listcomp>�sz.NetplanApply.command_apply.<locals>.<listcomp>z1/run/systemd/system/*.wants/netplan-wpa@*.service�start)!r �environ�shutilZwhich�RuntimeError�
subprocessr�sys�exit�PermissionError�bool�glob�utils�get_generator_path�	EX_CONFIGrr�	netifaces�
interfaces�logging�debug�systemctl_networkd�
nm_running�nmcli�CalledProcessError�systemctl_network_manager�parser�process_link_changes�
check_call�DEVNULL�items�get)Zrun_generaterZ
exit_on_errorr�resZold_files_networkdZold_files_nm�config_managerZdevicesZrestart_networkdZ
restart_nmr�changes�iface�settingsZnetplan_wparrr
r.s�










zNetplanApply.command_applycCsNxH|D]@}x:|j�D].\}}|jdg�}x|D]}||kr.dSq.WqWqWdS)zp
        Is this physical interface a member of a 'composite' virtual
        interface? (bond, bridge)
        r4TF)r@rA)Z
composites�phyZ	composite�idrF�membersrErrr
�is_composite_member�s

z NetplanApply.is_composite_memberc!Cs~i}t|j�}|j|jg}iid�}xx|j�D]l\}}|s<q.|dkrFq.|jd�}|sVq.|jd�}	|	sfq.|	jd�}
|	jd�}|
r�||d|
<|r.||d|<q.W�x�|D�]�}||kr�tjd	|�q�tj	||�r�tjd
|�q�t
jjd|�}
yHt
t
jj|
d���,}|j�j�}|d
k�r&tjd||�w�WdQRXWn8tk
�rj}ztjd|t|��w�WYdd}~XnXy(t
jjt
jj|
dd��}
t
jj|
�}Wn<tk
�r�}ztjd||
t|��d}WYdd}~XnXtj|�tjd}|jd�}||dk�r:|d|}tj|�tj|�||k�r:|j|d|ii�||dkr�|d|}||kr�|j|d|ii�q�Wtj|�|S)z�
        Go through the pending changes and pick what needs special
        handling. Only applies to "down" interfaces which can be safely
        updated.
        )z	by-driverzby-macZrendererzset-name�match�driver�
macaddressz	by-driverzby-macz#Skipping non-physical interface: %szSkipping composite member %sz/sys/class/netZ	operstateZdownz'device %s operstate is %s, not changingNz$Cannot determine operstate of %s: %srz0Cannot replug %s: cannot read link %s/device: %srZaddrr)�dictZphysical_interfacesZbridgesZbondsr@rAr5r6rrJr r!�join�open�read�strip�IOError�error�str�realpathr"r3ZifaddressesZAF_LINK�update)r4rCrDZphysZcomposite_interfaces�matchesrGrFZnewnamerKrLZmacZ	interfaceZdevdirr$�state�eZdriver_namerrM�new_namerrr
r=�sx










z!NetplanApply.process_link_changes)TFT)
�__name__�
__module__�__qualname__r	r�staticmethodrrJr=�
__classcell__rr)rr
r!snr)�__doc__r5r r+r/r*r(�netplan.cli.utils�clir0Znetplan.configmanagerrrr3�NetplanCommandrrrrr
�<module>s

Zerion Mini Shell 1.0