a >h @s&ddlmZmZGdddeeZdS))PluginIndependentPluginc@s4eZdZdZdZdZdZddZddZd d Z d S) Opensvcz:OpenSVC cluster and services (config and state collection)opensvc)ZclusterZservicessystem)rcCsR|d|d}|d}|ddkrN|dD]}|jd|d|dq2d S) z. Get the status of opensvc management service zom z ls --color=noZ_statusstatusroutputz print status --color=no)ZsubdirN)Zcollect_cmd_output splitlinesadd_cmd_output)selfkindZgetobjsdirnameliner>/usr/lib/python3.9/site-packages/sos/report/plugins/opensvc.py get_statuss  zOpensvc.get_statusc Cs0|gd|gd|jddd|d|dd}zt|d d d }|}|s||d WdWdS|s|d |d|WdWdS|d|dWdn1s0YWnBt t t fy*}z"|d|d|WYd}~n d}~00dS)N)z/etc/opensvc/*z/var/log/opensvc/*z/etc/conf.d/opensvcz/etc/default/opensvcz/etc/sysconfig/opensvcz/var/lib/opensvc/*.jsonz/var/lib/opensvc/list.*z/var/lib/opensvc/ccfgz/var/lib/opensvc/cfgz&/var/lib/opensvc/certs/ca_certificatesz(/var/lib/opensvc/certs/certificate_chainz/var/lib/opensvc/compliance/*z/var/lib/opensvc/namespaces/*z/var/lib/opensvc/node/*z/var/lib/opensvc/sec/*z/var/lib/opensvc/svc/*z/var/lib/opensvc/usr/*z/var/lib/opensvc/vol/*)z#om pool status --verbose --color=noz"om net status --verbose --color=nozom mon --color=nozom daemon dns dump --color=noz!om daemon relay status --color=noz.om daemon status --format flat_json --color=noz/var/lib/opensvcT) recursiveZvolZsvcz/var/lib/opensvc/osvcd.pidrzutf-8)encodingz is emptyzInvalid PID in z: z/proc/z/task/*/statuszError while reading PID file ) Z add_copy_specr Zadd_dir_listingropenreadstripZ _log_debugisdigitIOErrorFileNotFoundErrorPermissionError)r Zpid_filefilepiderrorrrrsetups(   4z Opensvc.setupcCsd}|d|ddS)Nz(\s*secret =\s*)\S+z/etc/opensvc/cluster.confz\1****************************)Z do_file_sub)r ZregexprrrpostprocNs zOpensvc.postprocN) __name__ __module__ __qualname__Z short_descZ plugin_nameZprofilesZpackagesrrr rrrrr s 0rN)Zsos.report.pluginsrrrrrrr s