HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan_cli/cli/__pycache__/ovs.cpython-312.pyc
�

nG�f�!���ddlZddlZddlZddlZddlmZmZdZdZddd�Z	dd	d
d�Z
Gd�d
e�ZGd�de�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zy)�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��eZdZy)�OvsDbServerNotRunningN��__name__�
__module__�__qualname__���)/usr/share/netplan/netplan_cli/cli/ovs.pyrr*���rrc��eZdZy)�OvsDbServerNotInstalledNrrrrrr.rrrc	���tj|�}|� tjtd||||g�y|r*||k7r$tjtd|||�d|��g�yyy)z2Cleanup values from a column (i.e. "column=value")N�remove�set�=)�DEFAULTS�get�
subprocess�
check_call�OPENVSWITCH_OVS_VSCTL)�type�iface�column�value�defaults     r�_del_colr$2sd���l�l�6�"�G������4�h��e�V�UZ�[�\�	�W��%����4�e�T�5�U[�]d�Je�f�g�&�rc�V�tjtd||||t|�g�y)z:Cleanup values from a dictionary (i.e. "column:key=value")rN)rrr�
_escape_colon)rr r!�keyr"s     r�	_del_dictr(=s*�����0�(�D�%��QT�Vc�di�Vj�k�lrc�0�tjdd|�S)Nz([^\\]):z\g<1>\:)�re�sub)�literals rr&r&Ds��
�6�6�+�z�7�3�3rc�j��tj|d�\}}|dk(rd}|r�t|g}t|g}|r"|j|�|j|�t	j
|d���t
�fd�|jd�D��rt	j|�yytd|��)	z*Cleanup commands from the global namespace)NNr	NT��textc3�&�K�|]}|�v���
y�w)Nr)�.0�item�outs  �r�	<genexpr>z_del_global.<locals>.<genexpr>bs�����8�t�t�s�{�8�s��,zReset command unknown for:)
�GLOBALSrr�appendr�check_output�all�splitr�	Exception)	rr r'r"�del_cmd�get_cmd�args_get�args_delr3s	        @r�_del_globalr@Hs�����{�{�3��5��G�W��)�����)�7�3��)�7�3����O�O�E�"��O�O�E�"��%�%�h�T�:���8�u�{�{�3�'7�8�8��!�!�(�+�9��4�c�:�:rc�$�|jdd�}|d}|dk(r t|�dkDrt|||d|�n5t|�dkDrt|||d|d|�nt	|||d|�tjtd||d|g�y)zDCheck if this setting is in a dict or a colum and delete accordingly�/�r�globalr�external-idsN)r:�lenr@r(r$rrr)rr �settingr"r:�cols      r�
clear_settingrIhs����M�M�#�q�!�E�
��(�C�
�h��3�u�:��>��D�%��q��5�1�	�U��a���$��u�Q�x��q��5�9���u�e�A�h��.����0�(�D�%��Y`�a�brc�p�t|t�sJ�|j|d�}|xr|jdk(S)N�OpenVSwitch)�
isinstance�dictr�backend)r �np_interface_dict�np_defs   r�is_ovs_interfacerQvs9���'��.�.�.�
�
"�
"�5�$�
/�F��5�f�n�n�
�5�5rc
�,�tt�stdtz��tt�st	djt���|j
�t�}|jj�D]*}t||j�s�|j|��,tjjt��r�dD]�}t!j"tdddddd	d
|dg	d�
�}|j%�D]�}d|vs�|j'd�d}||vr�!|ddk(rGt!j(td|g�j*dkDrt!j,tdd|g��pt!j,td|d|g�����dD]�}d}	|dk(rd}	n|dk(rd}	t!j"td|	zddddd	d
|g	d�
�}|j%�D]�}d|vs�d}|}
|dk7r|j'dd�\}}
|
j/d�j'd�D]<}|j1d�s�d |vs�|j'd d�\}}
t3||||
��>����y"|s|rt5j6d!�y"y")#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)�	InterfacerUz--columns=name,external-idsz-f�csvz-d�barez
--no-headings�listrTr.znetplan=truer5rVz	br-existsz--if-existszdel-bond-ifacer)rSrTrV�Open_vSwitch�
Controllerzname,external-idsrZrEr[z_uuid,external-idsz--columns=%sznetplan/�.�"� rzAovs-vsctl is missing, cannot tear down old OpenVSwitch interfacesN)r�OPENVSWITCH_OVSDB_SERVER_UNITrrr�format�parser�netdefs�keysrQ�add�os�path�isfilerrr8�
splitlinesr:�run�
returncoder�strip�
startswithrI�logging�warning)�config_manager�ovs_old�ovs_current�
ovs_ifaces�i�tr3�liner �cols�extids�entryrG�vals              r�apply_ovs_cleanuprz|s���"�"?�@�%�&S�&C�'D�E�	E��<�=�#�$7�$>�$>�?\�$]�^�^�������J�
�
#�
#�
(�
(�
*����Q�� 6� 6�7��N�N�1���
�w�w�~�~�+�,�V�
	c�A��)�)�+@�B_�+/���f�o�W]�_`�ab�_c�+e�/3�5�C����(�	
c��!�T�)� �J�J�s�O�A�.�E��
�*� ���t�{�*�z�~�~�?T�Va�ch�>i�/j�/u�/u�xy�/y�"�-�-�/D�m�Ue�gl�.m�n�"�-�-�/D�m�UV�WX�UY�[`�.a�b�	
c�	
	c� O�	B�A�&�D��N�"�%���l�"�+���)�)�+@�.�SW�BW�+/���f�o�W]�_`�+b�/3�5�C����(�
B����%��E�!�F��N�*�(,�
�
�3��(:�
��v�"(���c�!2�!8�!8��!=�B�� �+�+�J�7�C�5�L�+0�;�;�s�A�+>�L�G�S�)�!�U�G�S�A�B�
B�	B�0
�K����[�\� r)rmrerr*�utilsrrrr_rr6r;rrr$r(r&r@rIrQrzrrr�<module>r|s���$�	��	�>�,�� 6��
%����&�7�:�	��	�I�	�	�i�	�h�m�4�;�@c�6�B]r