GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan/cli/__pycache__/ovs.cpython-38.pyc
U

ci�_��@sfddlZddlZddlZdZddd�Zdddd�Zd	d
�Zdd�Zd
d�Zdd�Z	dd�Z
dd�ZdS)�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	Cst�td|||||g�dS)z:Cleanup values from a dictionary (i.e. "column:key=value")rN)rr	r
)rrr
�keyrrrr�	_del_dict1srcs�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>Qsz_del_global.<locals>.<genexpr>�,zReset command unkown for:)
�GLOBALSrr
�appendr�check_output�all�splitr	�	Exception)rrrrZdel_cmdZget_cmdZargs_getZargs_delrrr�_del_global7s

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_settingWsr-cs~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��
interfacesrrrmsz#is_ovs_interface.<locals>.<genexpr>r2)�
isinstance�dict�AssertionErrorr�logging�debug�format�any)rr2rr1rr/esr/c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=truerr=ziface-to-brz--if-existszdel-bond-ifacer')r:r;r=�Open_vSwitch�
Controllerzname,external-idsr?r)r@z_uuid,external-idsz--columns=%sznetplan/�.�"� �=zAovs-vsctl is missing, cannot tear down old OpenVSwitch interfacesN)�parserr2�keysr/�add�os�path�isfiler
rr �
splitlinesr"�run�
returncoder	�strip�
startswithr-r6�warning)�config_manager�ovs_old�ovs_currentZ
ovs_ifacesr0�tr�linerZcolsZextids�entryr+�valrrr�apply_ovs_cleanuppsn��"

��

rX)r6rHrr
rrrrr$r-r/rXrrrr�<module>s ��