NineSec Team Shell
Server IP : 184.107.3.203  /  Your IP : 216.73.216.51
Web Server : Apache
System : Linux dedicated2.avenfashion.com.ph 4.18.0-553.40.1.el8_10.x86_64 #1 SMP Mon Feb 10 12:11:18 EST 2025 x86_64
User : adminteladeoro ( 1015)
PHP Version : 8.2.28
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/lib/python3.6/site-packages/sos/collector/clusters/__pycache__/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/lib/python3.6/site-packages/sos/collector/clusters/__pycache__/pacemaker.cpython-36.opt-1.pyc
3

~�g>�@s@ddlZddlmZddlmZddlmZGdd�de�ZdS)�N)�ElementTree)�Cluster)�sos_parse_versionc@sHeZdZdZdgZdZdZdddgZd
d�Zdd
�Z	dd�Z
dd�ZdS)�	pacemakerz+Pacemaker High Availability Cluster ManagerT�online�Collect nodes listed as online�offline�Collect nodes listed as offline�
only-corosyncF�)Only use corosync.conf to enumerate nodescCs�g|_y\|jd�sRy|j�Wn2tk
rP}z|jd|���WYdd}~XnX|js`|j�Wn2tk
r�}z|jd|���WYdd}~XnXdd�|jD�}|r�|jddj|��d��|jS)	Nz
only-corosynczHFalling back to sourcing corosync.conf. Could not parse crm_mon output: z(Could not determine nodes from cluster: cSsg|]}d|kr|�qS)�.�)�.0�nr
r
�/usr/lib/python3.6/pacemaker.py�
<listcomp>/sz'pacemaker.get_nodes.<locals>.<listcomp>zWARNING: Node addresses '�,z�' may not resolve locally if you are not running on a node in the cluster. Try using option '-c pacemaker.only-corosync' if these connections fail.)�nodes�
get_option�get_nodes_from_crm�	Exception�log_warn�get_nodes_from_corosyncZ	log_error�join)�self�errZ_shortsr
r
r�	get_nodess 
""zpacemaker.get_nodescCs�d}|jd�}|ddkrJ|dj�djd�d}t|�td�krNd	}nd
S|jd|��dd
�}|ddkr||j|d�d
S)zG
        Try to parse crm_mon output for node list and status.
        z--output-as=xmlzcrm_mon --versionZstatusr�output��-z2.0.3z--as-xmlNzcrm_mon --one-shot --inactive T)Z	need_root)Zexec_primary_cmd�splitr�
parse_crm_xml)rZxmloptZ_verZcverZ_outr
r
rr9s
zpacemaker.get_nodes_from_crmcCsztj|�}|jd�}x`|D]X}|j}|jd�rL|ddkrL|jj|d�q|jd�r|ddkr|jj|d�qWdS)zA
        Parse the xml output string provided by crm_mon
        rr�true�namerZfalseN)rZ
fromstring�findZattribrr�append)rZ	xmlstringZ_xmlr�nodeZ_noder
r
rr!Ms


zpacemaker.parse_crm_xmlcCsH|jd�|jjd�}tjd|�}x |D]}|jj|dj��q(WdS)z�
        As a fallback measure, read corosync.conf to get the node list. Note
        that this prevents us from separating online nodes from offline nodes.
        z_WARNING: unable to distinguish online nodes from offline nodes when sourcing from corosync.confz/etc/corosync/corosync.confz((\sring0_addr:)(.*))rN���)rZprimaryZ	read_file�re�findallrr%�strip)rZccrr&r
r
rrZs


z!pacemaker.get_nodes_from_corosyncN)r)rTr)rTr	)r
Fr)�__name__�
__module__�__qualname__Zcluster_nameZsos_pluginsZpackagesZstrict_node_listZoption_listrrr!rr
r
r
rrs
r)r(Z	xml.etreerZsos.collector.clustersrZ
sos.utilitiesrrr
r
r
r�<module>s

NineSec Team - 2022