3 ܓim'@sjddlZddlZddlZddlmZmZmZmZGdddeZGdddeeZ GdddeeeZ dS) N)Plugin RedHatPlugin DebianPlugin UbuntuPluginc@s\eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dd Zgfd d Zd d ZddZdS) OVNCentralz OVN NorthdZ ovn_centralnetworkvirtovn-dbs-bundle.*ovn_cluster_north_db_servercCs|j||}|jr|jd||jd}|ddks@d|dkrT|jd|jn8tj|}x,|djdD]}|j|rn|j||SqnW|S)Nzls ) containerstatusr outputz=Could not retrieve ovn_controller socket path from container ) path_joincontainer_nameexec_cmd _log_errorrecompilesplitmatch)selfpathZ regex_nameZ_sfilerespatternfilenamer!/usr/lib/python3.6/ovn_central.py _find_sock%s   zOVNCentral._find_sockc s`|jrd|}|j|dd|jd}|ddkrF|jd|jdSytj|d}Wn$tk r||jd |dSXny\|j|}t|d d d :}ytj|}Wn$tk r|jd |dSXWdQRXWn8t k r}z|jd |d|dSd}~XnXyfddt j |dDSt k rZ|jd|dYnXdS)z Get tables from schema zcat NT)timeout foregroundr r rz1Could not retrieve DB schema file from container rzCannot parse JSON file rzUTF-8)encodingzCould not open DB schema file z: csg|]}|kr|qSrr).0table)skiprr Ssz5OVNCentral.get_tables_from_schema..tablesz DB schema z has no 'tables' key) rrrjsonloads ExceptionropenloadIOErrordictkeysAttributeError) rrr&cmdrZ db_schemaZfnamefileZexr)r&rget_tables_from_schema6s<     z!OVNCentral.get_tables_from_schemacs|rfdd|DSdS)z Collect OVN database output csg|]}d|qS)z list r)r$r%)ovn_cmdrrr'\sz2OVNCentral.add_database_output..Nr)rr(r5r)r5radd_database_outputYszOVNCentral.add_database_outputcCs|j|jdr$|j|jd|_n|j|jd|_tjjd}xTd9D]L}|j|jd||jd||jd ||jd |g|rH|j|j||qHW|j d r|jd n |jd |j |j |j }|j |j |j }d}g}|j}|d|jd|d|d|jd|d|d|d|d|dg}|j|d|jdd|std} |j|d|d| d|jddd} |d| d|d| d|d| dg} |j| d|jdd|d| d|d| d |d| d|d| dg} |j| d|jddxPd:D]H} |j|j| d$r|j|j| d$}|j|j||d| qWxTd;D]L} |j|j| d%rb|j|j| d%d&g}|j|j||d| qbWtt|}|j|d|jd'x,dD]2} |j| |}|j|r.|j||j|q.W|r$|j|j||q$W|jd7d8dS)?NrZ OVS_RUNDIR ovnnb_db.pid ovnsb_db.pidovn-northd.pid/var/lib/openvswitch/ovnz/usr/local/var/run/openvswitchz/run/openvswitch/z!/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)r!r r zdebug/chassis-features-listz--no-leader-onlyz ovn-nbctl z showz get-sslz get-connectionz ovn-sbctl z lflow-list/usr/share/openvswitch/usr/share/ovn /snap/microovn/current/share/ovnzovn-nb.ovsschemazovn-sb.ovsschemaZ Logical_Flow)r!r /etc/ovn/ovn-central.crt/etc/ovn/cert_hostzopenssl x509 -in z -noout -datesz/etc/sysconfig/ovn-northdz"/etc/ovn/ovn-northd-db-params.confZ OVS_DBDIR ovnnb_db.db ovnsb_db.db/usr/local/etc/openvswitch/etc/openvswitch/var/lib/openvswitch/var/lib/ovn/etc /var/lib/ovn)/var/snap/microovn/common/data/central/dbz ovn-northd)Zunits)r8r9r:)r>r?r@)r>r?r@)rArB)rCrD)r;rErFrGrHrIrJ)Zcontainer_exists containersZget_container_by_namerosenvirongetZ add_copy_specrZ get_optionr ovn_socketovn_controller_sock_regexovn_northd_sock_regexpfxovn_nbdb_socketovn_sbdb_socketZadd_cmd_output path_existsr4extendr6listsetZadd_dir_listingZ add_journal)rZ ovs_rundirZpidfileZovn_controller_socketZ northd_socketZcsZcmdsrRZ appctl_cmdsZdflZnoloZ nbctl_cmdsZ sbctl_cmdsrZ nb_tablesZ sb_tablesZ ovs_dbdirZdbfileZ dbfilepathrrrsetup_s                          zOVNCentral.setupN)rr)r r )__name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesrKrrSrTrOrPrQrRrr4r6rYrrrrrs #rc@s$eZdZd ZdZdZdZdZdZdS) RedHatOVNCentralopenvswitch-ovn-central ovn.*-centralz!/var/run/openvswitch/ovnnb_db.ctlz!/var/run/openvswitch/ovnsb_db.ctlz/var/run/openvswitchzovn-controller.*.ctlzovn-northd.*.ctlN)r^r_) rZr[r\packagesrSrTrOrPrQrrrrr]s r]cs(eZdZdZfddZdZdZZS)DebianOVNCentral ovn-centralmicroovncsT|jdr4d|_|jd|_|jd|_d|_nd|_d|_d|_tjdS) Nz/snap/bin/microovnz!/var/snap/microovn/common/run/ovnz /ovnnb_db.ctlz /ovnsb_db.ctlz microovn.z /var/run/ovnz/var/run/ovn/ovnnb_db.ctlz/var/run/ovn/ovnsb_db.ctl)rUrOrSrTrRsuperrY)r) __class__rrrYs zDebianOVNCentral.setupzovn-controller.*.ctlzovn-northd.*.ctl)rbrc)rZr[r\r`rYrPrQ __classcell__rr)rerras ra) r)rLrZsos.report.pluginsrrrrrr]rarrrr sN