HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/usr/share/netplan/netplan/cli/__pycache__/ovs.cpython-38.pyc
U

��~f� �@svddlZddlZddlZddlZdZddd�Zdddd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�Nz/usr/bin/ovs-vsctl�false)Zmcast_snooping_enableZrstp_enable)�del-sslzget-ssl)z
del-fail-modez
get-fail-mode)zdel-controllerzget-controller)zset-sslz
set-fail-modezset-controllerc	CsVt�|�}|dkr*t�td||||g�n(|rR||krRt�td||d||fg�dS)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�default�r�%/usr/share/netplan/netplan/cli/ovs.py�_del_col's

rc
Cs t�td||||t|�g�dS)z:Cleanup values from a dictionary (i.e. "column:key=value")rN)rr	r
�
_escape_colon)rrr
�keyrrrr�	_del_dict2srcCst�dd|�S)Nz([^\\]):z\g<1>\:)�re�sub)�literalrrrr9srcs�t�|d�\}}|dkrd}|r~t|g}t|g}|rH|�|�|�|�tj|dd��t�fdd�|�d�D��r�t�|�n
t	d	|��dS)
z*Cleanup commands from the global namespace)NNrNT��universal_newlinesc3s|]}|�kVqdS�Nr)�.0�item��outrr�	<genexpr>Wsz_del_global.<locals>.<genexpr>�,zReset command unkown for:)
�GLOBALSrr
�appendr�check_output�all�splitr	�	Exception)rrrrZdel_cmdZget_cmdZargs_getZargs_delrrr�_del_global=s

r(cCs�|�dd�}|d}|dkr<t|�dkr<t|||d|�n8t|�dkrbt|||d|d|�nt|||d|�t�td||d|g�dS)zDCheck if this setting is in a dict or a colum and delete accordingly�/���globalr�external-idsN)r&�lenr(rrrr	r
)rr�settingrr&�colrrr�
clear_setting]sr1cs~t�t�st�t��|�t�s:t�d�|��|���dS��|i��d�dk	rTdSt�fdd���|i��dg�D��SdS)NzIgnoring special key: {} ({})F�openvswitchTc3s|]}t|��VqdSr)�is_ovs_interface)r�i��
interfacesrrr ssz#is_ovs_interface.<locals>.<genexpr>r6)�
isinstance�dict�AssertionErrorr�logging�debug�format�any)rr6rr5rr3ksr3cCs�|��t�}|j��D]}t||j�r|�|�qtj�t	��r�dD]�}t
jt	ddddddd|d	g	d
d�}|��D]p}d|krv|�
d
�d	}||kr�qv|d	dkr�t
�t	d|g�jd	kr�t
�t	dd|g�qvt
�t	d|d|g�qvqFdD]�}d}	|dk�rd}	n|dk�rd}	t
jt	d|	dddddd|g	d
d�}|��D]~}d|k�r@d}|}
|dk�rp|�
d
d�\}}
|
�d��
d�D]:}|�d��r�d|k�r�|�
dd�\}}
t||||
��q��q@q�n|�s�|�r�t�d�d 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.
    ))�Portzdel-port)�Bridge�del-br)�	Interfacer@z--columns=name,external-idsz-fZcsvz-dZbarez
--no-headings�listrTrznetplan=truer!rAz	br-existsz--if-existszdel-bond-ifacer+)r>r?rA�Open_vSwitch�
Controllerzname,external-idsrCr-rDz_uuid,external-idsz--columns=%sznetplan/�.�"� �=zAovs-vsctl is missing, cannot tear down old OpenVSwitch interfacesN)�parserr6�keysr3�add�os�path�isfiler
rr$�
splitlinesr&�run�
returncoder	�strip�
startswithr1r:�warning)�config_manager�ovs_old�ovs_currentZ
ovs_ifacesr4�tr�linerZcolsZextids�entryr/�valrrr�apply_ovs_cleanupvsn��"

��

r\)r:rLrrr
rr"rrrr(r1r3r\rrrr�<module>s$��