HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan_cli/cli/__pycache__/ovs.cpython-310.pyc
o

t��f�!�@s�ddlZddlZddlZddlZddlmZmZdZdZddd�Z	dd	d
d�Z
Gdd
�d
e�ZGdd�de�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZdS)�N�)�systemctl_is_active�systemctl_is_installedz/usr/bin/ovs-vsctlzovsdb-server.service�false)�mcast_snooping_enable�rstp_enable)�del-sslzget-ssl)z
del-fail-modez
get-fail-mode)zdel-controllerzget-controller)zset-sslz
set-fail-modezset-controllerc@�eZdZdS)�OvsDbServerNotRunningN��__name__�
__module__�__qualname__�rr�)/usr/share/netplan/netplan_cli/cli/ovs.pyr
*�r
c@r	)�OvsDbServerNotInstalledNrrrrrr.rrc	Cs`t�|�}|durt�td||||g�dS|r,||kr.t�td||d||fg�dSdSdS)z2Cleanup values from a column (i.e. "column=value")N�remove�setz%s=%s)�DEFAULTS�get�
subprocess�
check_call�OPENVSWITCH_OVS_VSCTL)�type�iface�column�value�defaultrrr�_del_col2s
 �rc
Cs t�td||||t|�g�dS)z:Cleanup values from a dictionary (i.e. "column:key=value")rN)rrr�
_escape_colon)rrr�keyrrrr�	_del_dict=s r"cCst�dd|�S)Nz([^\\]):z\g<1>\:)�re�sub)�literalrrrr Dsr cs�t�|d�\}}|dkrd}|rBt|g}t|g}|r$|�|�|�|�tj|dd��t�fdd�|�d�D��r@t�|�dSdSt	d	|��)
z*Cleanup commands from the global namespace)NNrNT��textc3s�|]}|�vVqdS)Nr)�.0�item��outrr�	<genexpr>bs�z_del_global.<locals>.<genexpr>�,zReset command unknown for:)
�GLOBALSrr�appendr�check_output�all�splitr�	Exception)rrr!r�del_cmd�get_cmd�args_get�args_delrr*r�_del_globalHs

�
r8cCs�|�dd�}|d}|dkrt|�dkrt|||d|�nt|�dkr1t|||d|d|�n	t|||d|�t�td||d|g�dS)zDCheck if this setting is in a dict or a colum and delete accordingly�/�r�globalr�external-idsN)r2�lenr8r"rrrr)rr�settingrr2�colrrr�
clear_settinghsr@cCs(t|t�sJ�|�|d�}|o|jdkS)N�OpenVSwitch)�
isinstance�dictr�backend)r�np_interface_dict�np_defrrr�is_ovs_interfacevsrGcCs�tt�s
tdt��tt�std�t���|��t�}|j�	�D]
}t
||j�r.|�|�q!tj
�t�r�dD]Q}tjtdddddd	d
|dg	dd
�}|��D]8}d|vr�|�d�d}||vraqO|ddkr|t�td|g�jdkr|t�tdd|g�qOt�td|d|g�qOq7dD]a}d}	|dkr�d}	n|dkr�d}	tjtd|	ddddd	d
|g	dd
�}|��D]9}d|vr�d}|}
|dkr�|�dd�\}}
|
�d��d�D]}|�d�r�d |vr�|�d d�\}}
t||||
�q�q�q�d"S|s�|r�t�d!�d"Sd"S)#aQ
    Query OpenVSwitch state through 'ovs-vsctl' and filter for netplan=true
    tagged ports/bonds and bridges. Delete interfaces which are not defined
    in the current configuration.
    Also filter for individual settings tagged netplan/<column>[/<key]=value
    in external-ids and clear them if they have been set by netplan.
    z+Cannot apply OVS cleanup: %s is 'not-found'z{} is not running))�Portzdel-port)�Bridge�del-br)�	InterfacerJz--columns=name,external-idsz-f�csvz-d�barez
--no-headings�listrTr&znetplan=truer-rKz	br-existsz--if-existszdel-bond-ifacer)rHrIrK�Open_vSwitch�
Controllerzname,external-idsrOr<rPz_uuid,external-idsz--columns=%sznetplan/�.�"� �=zAovs-vsctl is missing, cannot tear down old OpenVSwitch interfacesN)r�OPENVSWITCH_OVSDB_SERVER_UNITrrr
�format�parser�netdefs�keysrG�add�os�path�isfilerrr0�
splitlinesr2�run�
returncoder�strip�
startswithr@�logging�warning)�config_manager�ovs_old�ovs_current�
ovs_ifaces�i�tr+�liner�cols�extids�entryr>�valrrr�apply_ovs_cleanup|sp�
���"��������rp)rcr[rr#�utilsrrrrUrr.r3r
rrr"r r8r@rGrprrrr�<module>s.��