Current File : //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/ovn_central.cpython-312.pyc
�

-�_g�%��|�ddlZddlZddlZddlmZmZmZmZGd�de�ZGd�dee�Z	Gd�deee�Z
y)	�N)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPluginc�T�eZdZdZdZdZdZdZdZdZ	dZ
dZdZdZ
d�Zgfd�Zd�Zd	�Zy
)�
OVNCentralz
OVN Northd�ovn_central)�network�virt)zovn-dbs-bundle.*�ovn_cluster_north_db_server�c��|j||�}|jr�|jd|��|j��}|ddk7sd|dvr |jd|j���|St	j
|�}|dj
d�D]'}|j|�s�|j||�cS|S)Nzls )�	container�statusr�
�outputz=Could not retrieve ovn_controller socket path from container )�	path_join�container_name�exec_cmd�
_log_error�re�compile�split�match)�self�path�
regex_name�_sfile�res�pattern�filenames       �@/usr/lib/python3/dist-packages/sos/report/plugins/ovn_central.py�
_find_sockzOVNCentral._find_sock%s�������j�1������-�-�#�d�V���8K�8K�-�L�C��8�}��!�T��X��%>����&�&*�&9�&9�%:�<���
��*�*�Z�0�� #�H�
� 3� 3�D� 9�>�H��}�}�X�.�#�~�~�d�H�=�=�>��
�c��|jred|��}|j|dd|j��}|ddk7r|jd|j���y	tj|d�}n@	|j
|�}t|d
d��5}	tj|�}	ddd�	tjd�D�	cgc]}	|	|vr|	��
c}	S#t
$r|jd	|���YywxYw#t
$r|jd	|���Yddd�ywxYw#1swY��xYw#t$r!}|jd
|�d|���Yd}~yd}~wwxYwcc}	w#t$r|jd|�d��YywxYw)z Get tables from schema zcat NT)�timeout�
foregroundrrrz1Could not retrieve DB schema file from container rzCannot parse JSON file �rzUTF-8)�encodingzCould not open DB schema file z: �tablesz
DB schema z has no 'tables' key)
rrr�json�loads�	Exceptionr�open�load�IOError�dict�keys�AttributeError)
rr!�skip�cmdr�	db_schema�fname�file�ex�tables
          r"�get_tables_from_schemaz!OVNCentral.get_tables_from_schema6s��������
�#�C��-�-��T�d�*.�*=�*=� �?�C��8�}��!����!-�-1�-@�-@�,A�!C�D��
� �J�J�s�8�}�5�	�

����x�0���%��w�7�$�4�$�$(�I�I�d�O�	�$�	I�'+�y�y��(�#�(%�;�e�(-�T�(9��;�
;��#�
����"9�(�� D�E��
��%�$����*A�(��(L�M�#�$�$�$��$�$���
����4�X�J�b���E�G���
��
;���	I��O�O�j��
�2F�G�H��	I�s��C�3D7�D+�D�*D7�3E)�

E$�E)�C=�<C=�D(�D+�D7�'D(�(D+�+D4�0D7�7	E!�E�E!�$E)�)F
�	F
c�<�|r|D�cgc]	}|�d|����c}Sycc}w)z Collect OVN database output z list N�)rr*�ovn_cmdr:s    r"�add_database_outputzOVNCentral.add_database_outputYs*���;A�B�%�w�i�v�e�W�-�B�B���Cs�c
��|j|jd�r$|j|jd�|_n#|j|jd�|_tj
j
d�}dD]{}|j|jd|�|jd|�|jd|�|jd|�g�|s�[|j|j||���}|jd	�r|jd
�n|jd�|j|j|j�}|j|j|j�}d}g}|j}|�d
|j�d|�d�|�d
|j �d|�d�|�d|�d�|�d|�d�g}|j#|d|jd��|s)d}	|j#|�d|�d|	��d|jd��d}
|�d|
�d�|�d|
�d�|�d|
�d�g}|j#|d|jd��|�d|
�d�|�d|
�d�|�d|
�d�|�d|
�d�g}|j#|d|jd��dD]k}
|j%|j|
d ��s�%|j'|j|
d ��}|j)|j+||�d|
�����mdD]m}
|j%|j|
d!��s�%|j'|j|
d!�d"g�}|j)|j+||�d|
�����ot-t/|��}|j#|d|j�#�|jd$�tj
j
d%�}d&D]s}d'D]H}
|j|
|�}|j%|�s�'|j|�|j1|��J|s�S|j|j||���u|j3d(�)�y)*N�r�
OVS_RUNDIR)zovnnb_db.pidzovnsb_db.pidzovn-northd.pid�/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitch/�!/var/snap/microovn/common/run/ovn�all_logsz
/var/log/ovn/z/var/log/ovn/*.logzcluster/statuszovs-appctl -t � z OVN_Northboundz OVN_Southboundzovn-appctl -t z statusz connection-statusT�)r'rr&zdebug/chassis-features-listz--no-leader-onlyz
ovn-nbctl z showz get-sslz get-connectionz
ovn-sbctl z lflow-list)z/usr/share/openvswitchz/usr/share/ovnz /snap/microovn/current/share/ovnzovn-nb.ovsschemazovn-sb.ovsschema�Logical_Flow)r'rz/etc/sysconfig/ovn-northd�	OVS_DBDIR)zovnnb_db.dbzovnsb_db.db)rCz/usr/local/etc/openvswitchz/etc/openvswitchz/var/lib/openvswitchz/var/lib/ovn/etcz/var/lib/ovnz)/var/snap/microovn/common/data/central/dbz
ovn-northd)�units)�container_exists�
containers�get_container_by_namer�os�environ�get�
add_copy_specr�
get_optionr#�
ovn_socket�ovn_controller_sock_regex�ovn_northd_sock_regex�pfx�ovn_nbdb_socket�ovn_sbdb_socket�add_cmd_output�path_existsr;�extendr?�list�set�add_dir_listing�add_journal)r�
ovs_rundir�pidfile�ovn_controller_socket�
northd_socket�cs�cmdsrV�appctl_cmds�dfl�nolo�
nbctl_cmds�
sbctl_cmdsr�	nb_tables�	sb_tables�	ovs_dbdir�dbfile�
dbfilepaths                   r"�setupzOVNCentral.setup_s���� � �����!3�4�"&�"<�"<�����"�#$�D��#'�"<�"<�����"�#$�D���Z�Z�^�^�L�1�
�I�		H�G�������9�7�C����?��I����2�G�<����B�G�L�	 �
���"�"�4�>�>�*�g�#F�G�		H��?�?�:�&�����/����3�4� $����O�O�T�;�;�!=��������(,�(B�(B�D�
������h�h���e�>�$�"6�"6�!7�q���O�L��e�>�$�"6�"6�!7�q���O�L��e�>�-���8��e�>�"7�!8�8J�K�	
��	
���K�D�&*�&9�&9�2�	�	G��/�C����3�%�~�m�_�A�c�U� K�+/�*.�*=�*=�r�
 �
K�
"���e�:�d�V�5�)��e�:�d�V�8�,��e�:�d�V�?�3�
�
�	
���J�4�&*�&9�&9�2�	�	G��e�:�d�V�5�)��e�:�d�V�;�/��e�:�d�V�8�,��e�:�d�V�?�3�	
�
�	
���J�4�&*�&9�&9�2�	�	G�9�	P�D�������t�5G� H�I� �7�7�����,�9.�/�	����D�4�4�Y�8;�u�J�t�f�5M�O�P�	P�9�	P�D�������t�5G� H�I� �7�7�����,�9.�0>�/?�A�	����D�4�4�Y�8;�u�J�t�f�5M�O�P�	P��C��I�������T�T�-@�-@�	�	
�	
���6�7��J�J�N�N�;�/�	�4�	F�F��
5��"�^�^�D�&�9�
��#�#�J�/��&�&�z�2��(�(��4�
5���"�"�4�>�>�)�V�#D�E�!	F�$	
���|��,r$N)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profilesrLrrWrXrSrTrUrVr#r;r?rpr=r$r"rrsV���J��K�"�H�D�J��N��O��O��J� "����
�C��"57�!�F�y-r$rc�$�eZdZdZdZdZdZdZdZy)�RedHatOVNCentral)zopenvswitch-ovn-centralz
ovn.*-centralz!/var/run/openvswitch/ovnnb_db.ctlz!/var/run/openvswitch/ovnsb_db.ctlz/var/run/openvswitch�ovn-controller.*.ctl�ovn-northd.*.ctlN)	rqrrrs�packagesrWrXrSrTrUr=r$r"rxrx�s"��=�H�9�O�9�O�'�J� 6��.�r$rxc�*��eZdZdZ�fd�ZdZdZ�xZS)�DebianOVNCentral)zovn-central�microovnc����|jd�r7d|_|j�d�|_|j�d�|_d|_nd|_d|_d|_t
�|��y)	Nz/snap/bin/microovnrDz
/ovnnb_db.ctlz
/ovnsb_db.ctlz	microovn.z/var/run/ovnz/var/run/ovn/ovnnb_db.ctlz/var/run/ovn/ovnsb_db.ctl)rZrSrWrXrV�superrp)r�	__class__s �r"rpzDebianOVNCentral.setup�sh������0�1�A�D�O�&*�o�o�%6�m�#D�D� �&*�o�o�%6�m�#D�D� �"�D�H�,�D�O�#>�D� �#>�D� �
��
�r$ryrz)rqrrrsr{rprTrU�
__classcell__)r�s@r"r}r}�s���,�H�
�!7��.�r$r})r+rNr�sos.report.pluginsrrrrrrxr}r=r$r"�<module>r�sG���	�	���A-��A-�H/�z�<�/�/�z�<��/r$