HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux mail.btech-izolacje.pl 5.15.0-140-generic #150-Ubuntu SMP Sat Apr 12 06:00:09 UTC 2025 x86_64
User: pewna6876 (1017)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan/cli/__pycache__/ovs.cpython-310.pyc
o

�
ed� �@s�ddlZddlZddlZddlZddlmZdZdZddd�Zddd	d
�Z	Gdd�de
�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZdS)�N)�systemctl_is_activez/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@seZdZdS)�OvsDbServerNotRunningN)�__name__�
__module__�__qualname__�rr�%/usr/share/netplan/netplan/cli/ovs.pyr*src	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_col.s
 �rc
Cs t�td||||t|�g�dS)z:Cleanup values from a dictionary (i.e. "column:key=value")r
N)rrr�
_escape_colon)rrr�keyrrrr�	_del_dict9s rcCst�dd|�S)Nz([^\\]):z\g<1>\:)�re�sub)�literalrrrr@srcs�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>^s�z_del_global.<locals>.<genexpr>�,zReset command unknown for:)
�GLOBALSrr�appendr�check_output�all�splitr�	Exception)rrrr�del_cmd�get_cmd�args_get�args_delrr$r�_del_globalDs

�
r2cCs�|�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�/���globalr
�external-idsN)r,�lenr2rrrrr)rr�settingrr,�colrrr�
clear_settingdsr;cCs(t|t�sJ�|�|d�}|o|jdkS)N�OpenVSwitch)�
isinstance�dictr�backend)r�np_interface_dict�np_defrrr�is_ovs_interfacersrBcCs�tt�std�t���|��t�}|j��D]
}t||j�r$|�	|�qt
j�t
�r�dD]Q}tjt
ddddddd	|d
g	dd�}|��D]8}d
|vr}|�d�d
}||vrWqE|d
dkrrt�t
d|g�jd
krrt�t
dd|g�qEt�t
d|d|g�qEq-dD]a}d}	|dkr�d}	n|dkr�d}	tjt
d|	dddddd	|g	dd�}|��D]9}d|vr�d}|}
|dkr�|�dd�\}}
|
�d��d�D]}|�d�r�d|vr�|�dd�\}}
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{} is not running))�Portzdel-port)�Bridge�del-br)�	InterfacerEz--columns=name,external-idsz-f�csvz-d�barez
--no-headings�listrTr znetplan=truer'rFz	br-existsz--if-existszdel-bond-ifacer5)rCrDrF�Open_vSwitch�
Controllerzname,external-idsrJr7rKz_uuid,external-idsz--columns=%sznetplan/�.�"� �=zAovs-vsctl is missing, cannot tear down old OpenVSwitch interfacesN)r�OPENVSWITCH_OVSDB_SERVER_UNITr�format�parser�all_defs�keysrB�add�os�path�isfilerrr*�
splitlinesr,�run�
returncoder�strip�
startswithr;�logging�warning)�config_manager�ovs_old�ovs_current�
ovs_ifaces�i�tr%�liner�cols�extids�entryr9�valrrr�apply_ovs_cleanupxsh
���"��������rk)r^rVrr�netplan.cli.utilsrrrPrr(r-rrrrr2r;rBrkrrrr�<module>s,��