a >hm'@sjddlZddlZddlZddlmZmZmZmZGdddeZGdddeeZ GdddeeeZ dS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@s\eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ ddZgfdd Zd d Zd d ZdS) OVNCentralz OVN NorthdZ ovn_central)networkZvirt)zovn-dbs-bundle.*Zovn_cluster_north_db_servercCs|||}|jr|jd||jd}|ddks@d|dvrT|d|jn8t|}|ddD]}||rl|||Sql|S)Nzls ) containerstatusr outputz=Could not retrieve ovn_controller socket path from container ) path_joincontainer_nameexec_cmd _log_errorrecompilesplitmatch)selfpathZ regex_nameZ_sfilerespatternfilenamerB/usr/lib/python3.9/site-packages/sos/report/plugins/ovn_central.py _find_sock%s   zOVNCentral._find_sockc s|jrd|}|j|dd|jd}|ddkrF|d|jdSzt|d}Wn$ty||d |YdS0nz~||}t|d d d R}zt|}Wn2ty|d |YWdWdS0Wdn1s0YWn>t y<}z$|d |d|WYd}~dSd}~00zfddt |dDWSt y|d|dYn0dS)z Get tables from schema zcat NT)timeout foregroundr r rz1Could not retrieve DB schema file from container r zCannot parse JSON file rzUTF-8)encodingzCould not open DB schema file z: csg|]}|vr|qSrr.0tableskiprr Ssz5OVNCentral.get_tables_from_schema..tablesz DB schema z has no 'tables' key) rrrjsonloads Exceptionr openloadIOErrordictkeysAttributeError) rrr%cmdrZ db_schemafnamefileexrr$rget_tables_from_schema6sF       8 z!OVNCentral.get_tables_from_schemacs|rfdd|DSdS)z Collect OVN database output csg|]}d|qS)z list rr!ovn_cmdrrr&\z2OVNCentral.add_database_output..Nr)rr'r7rr6radd_database_outputYszOVNCentral.add_database_outputc Csz||jdr$||jd|_n||jd|_tjd}dD]L}||d||d||d||d|g|rF||||qF| d r|d n |d | |j |j }| |j |j }d }g}|j}|d |jd|d|d |jd|d|d|d|d|dg}|j|d|jdd|spd} |j|d|d| d|jddd} |d| d|d| d|d| dg} |j| d|jdd|d| d|d| d|d| d|d| dg} |j| d|jdddD]H} ||| d r ||| d }||||d| q dD]L} ||| d!rX||| d!d"g}||||d| qXtt|}|j|d|jd#d$D]$} || r|d%| d&q|d'|d(tjd)}d*D]V}d+D]2} || |}||r||||q|r||||q|jd,d-dS).NrZ 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/ovnZall_logsz /var/log/ovn/z/var/log/ovn/*.logzcluster/statuszovs-appctl -t  z OVN_Northboundz OVN_Southboundzovn-appctl -t z statusz connection-statusT)rr rzdebug/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.ovsschemaZ Logical_Flow)rr )z/etc/ovn/ovn-central.crtz/etc/ovn/cert_hostzopenssl x509 -in z -noout -datesz/etc/sysconfig/ovn-northdz"/etc/ovn/ovn-northd-db-params.confZ OVS_DBDIR)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/dbz ovn-northd)Zunits)Zcontainer_exists containersZget_container_by_namerosenvirongetZ add_copy_specr Z get_optionr ovn_socketovn_controller_sock_regexovn_northd_sock_regexpfxovn_nbdb_socketovn_sbdb_socketZadd_cmd_output path_existsr5extendr9listsetZadd_dir_listingZ add_journal)rZ ovs_rundirZpidfileZovn_controller_socketZ northd_socketcsZcmdsrFZ appctl_cmdsZdflZnoloZ nbctl_cmdsZ sbctl_cmdsrZ nb_tablesZ sb_tablesZ ovs_dbdirZdbfileZ dbfilepathrrrsetup_s                     zOVNCentral.setupN)__name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesr?rrGrHrCrDrErFrr5r9rNrrrrrs #rc@s$eZdZdZdZdZdZdZdZdS)RedHatOVNCentral)zopenvswitch-ovn-centralz ovn.*-centralz!/var/run/openvswitch/ovnnb_db.ctlz!/var/run/openvswitch/ovnsb_db.ctlz/var/run/openvswitchovn-controller.*.ctlovn-northd.*.ctlN) rOrPrQpackagesrGrHrCrDrErrrrrRs rRcs(eZdZdZfddZdZdZZS)DebianOVNCentral)z ovn-centralZmicroovncsT|dr4d|_|jd|_|jd|_d|_nd|_d|_d|_tdS) Nz/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.ctl)rIrCrGrHrFsuperrN)r __class__rrrNs zDebianOVNCentral.setuprSrT)rOrPrQrUrNrDrE __classcell__rrrXrrVs rV) r(r@rZsos.report.pluginsrrrrrrRrVrrrr sN