HEX
Server: nginx/1.24.0
System: Linux webserver 6.8.0-90-generic #91-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 18 14:14:30 UTC 2025 x86_64
User: wpuser (1002)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //usr/share/netplan/netplan_cli/cli/__pycache__/ovs.cpython-312.pyc
�

ʖ%i!���ddlZddlZddlZdZddd�Zdddd�ZGd	�d
e�ZGd�de�Zd
�Z	e	�Z
d�Zd�Zd�Z
d�Zd�Zd�Zd�Zd�Zy)�Nz	ovs-vsctl�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	r
rrrr*rrrc��tjjdtz�s&tjjdtz�s	dtzSdtzS)Nz	/usr/bin/z
/snap/bin/)�os�path�exists�OPENVSWITCH_OVS_VSCTLr
rr�_ovs_vsctl_pathr.sF��	�w�w�~�~�k�"7�7�8������|�,A�A�B��0�0�0��1�1�1rc�H�tjjt�S�N)rrr�OVS_VSCTL_PATHr
rr�_ovs_installedr9s��
�7�7�>�>�.�)�)rc�|�tjtdgtjtj��dk(S)N�show)�stdout�stderrr)�
subprocess�callr�DEVNULLr
rr�_ovs_activer$=s-���?�?�N�F�3�J�<N�<N�Wa�Wi�Wi�j�no�o�orc�n�tj|�}|�Itd||||g}tjddj|�z�t
j|�y|rS||k7rMtd|||�d|��g}tjddj|�z�t
j|�yyy)z2Cleanup values from a column (i.e. "column=value")N�remove�Running: %s� �set�=)�DEFAULTS�getr�logging�debug�joinr!�
check_call)�type�iface�column�value�default�cmds      r�_del_colr7As����l�l�6�"�G����x��u�f�e�D���
�
�m�c�h�h�s�m�3�4����c�"�	�W��%��u�d�E�f�g�3N�O���
�
�m�c�h�h�s�m�3�4����c�"�	&�rc	��td||||�d|�d�g}tjddj|�z�t	j
|�y)z:Cleanup values from a dictionary (i.e. "column:key=value")r&z="�"r'r(N)rr-r.r/r!r0)r1r2r3�keyr4r6s      r�	_del_dictr;PsB���8�T�5�&��e�:T�
U�C��M�M�-�#�(�(�3�-�/�0����#�rc�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)NNrNT��textc3�&�K�|]}|�v���
y�wrr
)�.0�item�outs  �r�	<genexpr>z_del_global.<locals>.<genexpr>rs�����8�t�t�s�{�8�s��,zReset command unknown for:)
�GLOBALSr,r�appendr!�check_output�all�splitr0�	Exception)	r1r2r:r4�del_cmd�get_cmd�args_get�args_delrBs	        @r�_del_globalrOXs�����{�{�3��5��G�W��)�����"�G�,��"�G�,����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�/���globalr&�external-idsN)rI�lenrOr;r7r!r0r)r1r2�settingr4rI�cols      r�
clear_settingrYxs����M�M�#�q�!�E�
��(�C�
�h��3�u�:��>��D�%��q��5�1�	�U��a���$��u�Q�x��q��5�9���u�e�A�h��.����>�8�T�5�.�RY�Z�[rc�p�t|t�sJ�|j|d�}|xr|jdk(S)N�OpenVSwitch)�
isinstance�dictr,�backend)r2�np_interface_dict�np_defs   r�is_ovs_interfacera�s9���'��.�.�.�
�
"�
"�5�$�
/�F��5�f�n�n�
�5�5rc
�f�t�std��t�std��|j	�t�}|jj�D]*}t||j�s�|j|��,dD]�}tjtdddddd	d
|dg	d�
�}|j�D]�}d|vs�|jd�d}||vr�!|ddk(rGtjtd|g�j dkDrtj"tdd|g��ptj"td|d|g�����dD]�}d}	|dk(rd}	n|dk(rd}	tjtd|	zddddd	d
|g	d�
�}|j�D]�}d|vs�d}|}
|dk7r|jdd�\}}
|
j%d�jd�D]<}|j'd�s�d |vs�|jd d�\}}
t)||||
��>����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 OpenvSwitch cleanup: ovs-vsctl is 'not-found'z#OpenvSwitch database is not running))�Portzdel-port)�Bridge�del-br)�	Interfacerez--columns=name,external-idsz-f�csvz-d�barez
--no-headings�listrTr=znetplan=truerDrfz	br-existsz--if-existszdel-bond-ifacerS)rcrdrf�Open_vSwitch�
Controllerzname,external-idsrjrUrkz_uuid,external-idsz--columns=%sznetplan/�.r9r(r*N)rrr$r�parser)�netdefs�keysra�addr!rGr�
splitlinesrI�run�
returncoder0�strip�
startswithrY)�config_manager�ovs_old�ovs_current�
ovs_ifaces�i�trB�liner2�cols�extids�entryrW�vals              r�apply_ovs_cleanupr��sa����%�&b�c�c��=�#�$I�J�J�������J�
�
#�
#�
(�
(�
*����Q�� 6� 6�7��N�N�1���S�
X���%�%�~�7T�'+�U�D�&�/�SY�[\�]^�[_�'a�+/�1���N�N�$�		X�D���%��
�
�3���*���J�&���Q�4�;�&�:�>�>�>�;�X]�:^�+_�+j�+j�mn�+n��)�)�>�=�JZ�\a�*b�c��)�)�>�=�!�A�$�PU�*V�W�		X�	
X� K�>��"�����!�D�
�,�
�'�D��%�%�~�~��7L�'+�U�D�&�/�SY�[\�'^�+/�1���N�N�$�	>�D��T�!�������&�$(�J�J�s�A�$6�M�E�6�$�\�\�#�.�4�4�S�9�>�E��'�'�
�3��u��',�{�{�3��':����%�a����=�>�	>�>r)r-rr!rr+rErJrrrrrr$r7r;rOrYrar�r
rr�<module>r�s���$�	��#��
%����&�7�:�	��	�I�	�	�i�	�2�!�"��*�p�#��;�@\�6�=>r