HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sos/report/plugins/__pycache__/ovn_central.cpython-310.pyc
o

i��d��@sjddlmZmZmZmZddlZddlZddlZGdd�de�ZGdd�dee�Z	Gdd�deee�Z
dS)	�)�Plugin�RedHatPlugin�DebianPlugin�UbuntuPluginNc@s@eZdZdZdZdZdZdd�Zgfdd�Zd	d
�Z	dd�Z
d
S)�
OVNCentralz
OVN Northd�ovn_central)�network�virt)zovn-dbs-bundle.*�ovn_cluster_north_db_servercCs�tj�||�}|jrG|jd||jd�}|ddks d|dvr*|�d|j�|St�|�}|d�d�D]}|�	|�rFtj�||�Sq6|S)Nzls %s)�	container�statusr�
�outputz?Could not retrieve ovn_controller socket path from container %s)
�os�path�join�_container_name�exec_cmd�
_log_error�re�compile�split�match)�selfr�
regex_name�_sfile�res�pattern�filename�r�@/usr/lib/python3/dist-packages/sos/report/plugins/ovn_central.py�
_find_socks ��

�
�zOVNCentral._find_sockc
sh|jr<d|}|j|dd|jd�}|ddkr!|�d|j�dSz	t�|d�}Wnhty;|�d|�YdSwz:t|�|�d	��(}zt�|�}Wntye|�d|�YWd�WdSwWd�n1spwYWnt	y�}z|�d
||f�WYd}~dSd}~wwz�fdd�t
�|d
�D�WSty�|�d|�YdSw)Nzcat %sT)�timeout�
foregroundrrrz3Could not retrieve DB schema file from container %srzCannot parse JSON file %s�rz$Could not open DB schema file %s: %scsg|]}|�vr|�qSrr)�.0�table��skiprr �
<listcomp>Js�z5OVNCentral.get_tables_from_schema.<locals>.<listcomp>�tablesz DB schema %s has no 'tables' key)
rrr�json�loads�	Exception�open�	path_join�load�IOError�dict�keys�AttributeError)rrr(�cmdr�db�f�exrr'r �get_tables_from_schema.sX
��������
���
��z!OVNCentral.get_tables_from_schemacCs(|sdS|D]}|�d||f�qdS)Nz
%s list %s)�append)rr*�cmds�ovn_cmdr&rrr �add_database_outputOs
�zOVNCentral.add_database_outputc	Cs"|�|jd�r|�|jd�|_n	|�|jd�|_tj�d�}dD]!}|�|�d|�|�d|�|�d|�g�|rD|�|�||��q#|�	d�rP|�d	�n|�d
�|�
|j|j�}|�
|j|j
�}|jd�|j�d�|j�d
�|�d�|�d�|�gd|jdd�gd�}gd�}dD]}|�|�|d��}|�||d�q�|}	dD]}|�|�|d�dg�}
|�|
|d�q�|	|7}	tt|	��}	|j|	d|jd�|�d�tj�d�}dD]-}dD]}|�||�}
tj�|
�r�|�|
�|jd |
dd!�q�|�r|�|�||��q�|jd"d#�dS)$N�r�
OVS_RUNDIR)zovnnb_db.pidzovnsb_db.pidzovn-northd.pid�/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitch/�all_logsz
/var/log/ovn/z/var/log/ovn/*.logz.ovs-appctl -t {} cluster/status OVN_Northboundz.ovs-appctl -t {} cluster/status OVN_Southboundzovn-appctl -t {} statusz,ovn-appctl -t {} debug/chassis-features-listz"ovn-appctl -t {} connection-statusT�)r#rr")zovn-nbctl --no-leader-only showz"ovn-nbctl --no-leader-only get-sslz)ovn-nbctl --no-leader-only get-connection)zovn-sbctl --no-leader-only showz%ovn-sbctl --no-leader-only lflow-listz"ovn-sbctl --no-leader-only get-sslz)ovn-sbctl --no-leader-only get-connection)z/usr/share/openvswitchz/usr/share/ovnzovn-nb.ovsschemazovn-nbctl --no-leader-onlyzovn-sb.ovsschema�Logical_Flowzovn-sbctl --no-leader-only)r#rz/etc/sysconfig/ovn-northd�	OVS_DBDIR)zovnnb_db.dbzovnsb_db.db)r@z/usr/local/etc/openvswitchz/etc/openvswitchz/var/lib/openvswitchz/var/lib/ovn/etcz/var/lib/ovnz
ls -lan %s)r#z
ovn-northd)�units)�container_exists�
containers�get_container_by_namerr�environ�get�
add_copy_specr/�
get_optionr!�
ovn_sock_path�ovn_controller_sock_regex�ovn_northd_sock_regex�add_cmd_output�format�ovn_nbdb_sock_path�ovn_sbdb_sock_pathr9r=�list�setr�exists�add_journal)r�
ovs_rundir�pidfile�ovn_controller_sock_path�northd_sock_path�
nbctl_cmds�
sbctl_cmdsr�	nb_tablesr;�	sb_tables�	ovs_dbdir�dbfile�
dbfilepathrrr �setupUs���


��

��������������

���zOVNCentral.setupN)�__name__�
__module__�__qualname__�
short_desc�plugin_name�profilesrGr!r9r=rcrrrr rs!rc@�$eZdZdZdZdZdZdZdZdS)�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�	rdrerf�packagesrRrSrMrNrOrrrr rk��rkc@rj)�DebianOVNCentral)zovn-centralz/var/run/ovn/ovnnb_db.ctlz/var/run/ovn/ovnsb_db.ctlz/var/run/ovnrlrmNrnrrrr rq�rprq)�sos.report.pluginsrrrrr+rrrrkrqrrrr �<module>s
,