+
    im'  c                   s~    ^ RI t ^ RIt^ RIt^ RIHtHtHtHt  ! R R]4      t ! R R]]4      t	 ! R R]]]4      t
R# )	i    N)PluginRedHatPluginDebianPluginUbuntuPluginc                   sj   a  ] tR t^t o RtRtR
tRtRtRt	Rt
RtRtRtRtR t. 3R ltR tR tRtV tR	# )
OVNCentralz
OVN NorthdZovn_centralZ c                s   V P                  W4      pV P                  '       d   V P                  R V 2V P                  R7      pVR,          ^ 8w  g   RVR,          9  d!   V P                  RV P                   24       V# \        P
                  ! V4      pVR,          P                  R4       F-  pVP                  V4      '       g   K  V P                  W4      u # 	  V# )zls )	containerstatusZ
outputz=Could not retrieve ovn_controller socket path from container )	path_joincontainer_nameexec_cmd
_log_errorreZcompileZsplitZmatch)selfpathZ
regex_nameZ_sfileresZpatternfilenames   &&&    C/usr/lib/python3.14/site-packages/sos/report/plugins/ovn_central.py
_find_sockZOVNCentral._find_sock%   s    1--#dV8K8K-LC8}!TX%>&&*&9&9%:<  **Z0 #H 3 3D 9H}}X..#~~d== !:     c                s   V P                   '       dr   RV 2pV P                  VRRV P                   R7      pVR,          ^ 8w  d!   V P                  RV P                    24       R#  \        P                  ! VR,          4      pMI V P                  V4      p\        VR	R
R7      ;_uu_ 4       p \        P                  ! V4      p RRR4        \        P                  XR,          4       U	u. uF  p	W9  g   K  V	NK  	  up	#   \
         d    T P                  RT 24        R# i ; i  \
         d!    T P                  RT 24        RRR4       R# i ; i  + '       g   i     L; i  \         d#   pT P                  RT RT 24        Rp?R# Rp?ii ; iu up	i   \         d    T P                  RT R24        R# i ; i)zGet tables from schema zcat NT)timeout
foregroundr   r   z1Could not retrieve DB schema file from container r   zCannot parse JSON file ZrzUTF-8)ZencodingzCould not open DB schema file z: tablesz
DB schema z has no 'tables' key)r	   r
   r   jsonZloadsZ	Exceptionr   ZopenZloadZIOErrorZdictZkeysZAttributeError)
r   r   ZskipZcmdr   Z	db_schemaZfnameZfileZextables
   &&&       r   get_tables_from_schemaZ!OVNCentral.get_tables_from_schema6   s   
#C--Td*.*=*=   ?C8}! !--1-@-@,A!C D JJs8}5	
x0%w774$$(IIdO	 8	I'+yy(#(% ; (%e(-(9 E (% ; ;#  "9( DE % $*A((LM# 87$ 87  4XJbEG
; 	IOOj
2FGH	Is   &D 'E) ,E.D(E) F ,F9F?F D%$D%(EEE) EEE&	!E) &E) )F4FFF  GGc                sL    V'       d   V Uu. uF	  q2 RV 2NK  	  up# R# u upi )zCollect OVN database output z list N )r   r   Zovn_cmdr   s   &&& r   add_database_outputZOVNCentral.add_database_outputY   s,    ;AB6%iveW-6BB Cs   !c           
     s	   V P                  V P                  ^,          4      '       d)   V P                  V P                  ^,          4      V n        M'V P                  V P                  ^ ,          4      V n        \        P
                  P                  R4      pR' F  pV P                  V P                  RV4      V P                  RV4      V P                  RV4      V P                  RV4      .4       V'       g   Kb  V P                  V P                  W4      4       K  	  V P                  R4      '       d   V P                  R4       MV P                  R4       V P                  V P                  V P                  4      pV P                  V P                  V P                  4      pR	p. pV P                  pV R
V P                   RV R2V R
V P                    RV R2V RV R2V RV R2.pV P#                  VRV P                  ^R7       V'       g*   Rp	V P#                  V RV RV	 2RV P                  ^R7       Rp
V RV
 R2V RV
 R2V RV
 R2.pV P#                  VRV P                  ^R7       V RV
 R2V RV
 R2V RV
 R2V RV
 R2.pV P#                  VRV P                  ^R7       R( Fs  pV P%                  V P                  VR4      4      '       g   K,  V P'                  V P                  VR4      4      pVP)                  V P+                  VV RV
 24      4       Ku  	  R( Fu  pV P%                  V P                  VR4      4      '       g   K,  V P'                  V P                  VR4      R.4      pVP)                  V P+                  VV RV
 24      4       Kw  	  \-        \/        V4      4      pV P#                  VRV P                  R7       R) F1  pV P%                  V4      '       g   K  V P#                  RV R 24       K3  	  V P                  R!4       V P                  R"4       \        P
                  P                  R#4      pR* F  pR+ FP  pV P                  VV4      pV P%                  V4      '       g   K.  V P                  V4       V P1                  V4       KR  	  V'       g   Kc  V P                  V P                  VV4      4       K  	  V P3                  R$R%7       R&# ),i   Z
OVS_RUNDIR/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitch/!/var/snap/microovn/common/run/ovnZall_logsz/var/log/ovn/z/var/log/ovn/*.logzcluster/statuszovs-appctl -t Z z OVN_Northboundz OVN_Southboundzovn-appctl -t z statusz connection-statusT)r   r   r   zdebug/chassis-features-listz--no-leader-onlyz
ovn-nbctl z showz get-sslz get-connectionz
ovn-sbctl z lflow-listzovn-nb.ovsschemazovn-sb.ovsschemaZLogical_Flow)r   r   zopenssl x509 -in z -noout -datesz/etc/sysconfig/ovn-northdz"/etc/ovn/ovn-northd-db-params.confZ	OVS_DBDIRz
ovn-northd)ZunitsN)zovnnb_db.pidzovnsb_db.pidzovn-northd.pid)z/usr/share/openvswitchz/usr/share/ovnz /snap/microovn/current/share/ovn)z/etc/ovn/ovn-central.crtz/etc/ovn/cert_host)zovnnb_db.dbzovnsb_db.db)r   z/usr/local/etc/openvswitchz/etc/openvswitchz/var/lib/openvswitchz/var/lib/ovn/etcz/var/lib/ovnz)/var/snap/microovn/common/data/central/db)Zcontainer_exists
containersZget_container_by_namer	   osZenvironZgetZadd_copy_specr   Z
get_optionr   
ovn_socketovn_controller_sock_regexovn_northd_sock_regexpfxovn_nbdb_socketovn_sbdb_socketZadd_cmd_outputpath_existsr   Zextendr   ZlistZsetZadd_dir_listingZadd_journal)r   Z
ovs_rundirZpidfileZovn_controller_socketZnorthd_socketZcsZcmdsr#   Zappctl_cmdsZdflZnoloZ
nbctl_cmdsZ
sbctl_cmdsr   Z	nb_tablesZ	sb_tablesZ	ovs_dbdirZdbfileZ
dbfilepaths   &                  r   setupZOVNCentral.setup_   s     !344"&"<"<"#$D #'"<"<"#$D ZZ^^L1
IG97C?I2G<BGL	   z""4>>*#FG J ??:&&/34 $OOT;;!= (,(B(BD hh e>$"6"6!7qOLe>$"6"6!7qOLe>-8e>"7!88JK	
 	KD&*&9&92 	 	G /C3%~m_AcU K+/*.*=*=r   K
 "e:dV5)e:dV8,e:dV?3

 	J4&*&9&92 	 	G e:dV5)e:dV;/e:dV8,e:dV?3	

 	J4&*&9&92 	 	G9Dt5G HII 77,9. /	D44Y8;uJtf5MO P99Dt5G HII 77,9.0>/?A	D44Y8;uJtf5MO P9 CITT-@-@ 	 	

 GD%%##&tfN; G 	67?@JJNN;/	4F "^^D&9
##J//&&z2((4 y""4>>)V#DE! 5$ 	|,r   )r	   N)ZnetworkZvirt)zovn-dbs-bundle.*Zovn_cluster_north_db_server)__name__
__module____qualname____firstlineno__Z
short_descZplugin_nameZprofilesr   r	   r$   r%   r    r!   r"   r#   r   r   r   r'   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s_     JK"HDJNOOJ "
C" 57 !FB- B-r   r   c                   s.    ] tR t^tRtRtRtRtRtRt	Rt
R# )	RedHatOVNCentralz!/var/run/openvswitch/ovnnb_db.ctlz!/var/run/openvswitch/ovnsb_db.ctlz/var/run/openvswitchovn-controller.*.ctlovn-northd.*.ctlr   N)zopenvswitch-ovn-centralzovn.*-central)r(   r)   r*   r+   packagesr$   r%   r    r!   r"   r,   r   r   r   r/   r/      s"    =H9O9O'J 6.r   r/   c                   s>   a a ] tR t^t oRtV 3R ltRtRtRtVt	V ;t
# )DebianOVNCentralc                s   < V P                  R 4      '       d8   RV n        V P                   R2V n        V P                   R2V n        RV n        MRV n        RV n        RV n        \
        SV `  4        R# )	z/snap/bin/microovnr   z/ovnnb_db.ctlz/ovnsb_db.ctlz	microovn.z/var/run/ovnz/var/run/ovn/ovnnb_db.ctlz/var/run/ovn/ovnsb_db.ctlN)r&   r    r$   r%   r#   Zsuperr'   )r   	__class__s   &r   r'   ZDebianOVNCentral.setup   sk    011ADO&*oo%6m#DD &*oo%6m#DD "DH,DO#>D #>D r   r0   r1   )r$   r%   r    r#   )zovn-centralZmicroovn)r(   r)   r*   r+   r2   r'   r!   r"   r,   r-   Z__classcell__)r4   r.   s   @@r   r3   r3      s      ,H
 !7.r   r3   )r   r   r   Zsos.report.pluginsr    r   r   r   r   r/   r3   r   r   r   <module>r5      sG     	 	 J- J-Z/z< //z< /r   