HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/self/root/usr/local/CyberCP/highAvailability/__pycache__/haManager.cpython-310.pyc
o

��h�!�@s�ddlZddlZddlZej�d�ej�dd�e��ddl	Z	ddl
Z
ddlmZ
ddlmZddlmZddlmZddlZddlZdd	lmZdd
lmZGdd�dej�Zd
d�Zedkrge�dSdS)�Nz/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�CyberCPLogFileWriter)�httpProc)�ProcessUtilities)�
ACLManager)�FirewallUtilities)�
FirewallRulesc@sNeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)�	HAManagerNcCs"tj�|�||_||_||_dS)N)�multi�Thread�__init__�request�data�function)�selfr
rr�r�0/usr/local/CyberCP/highAvailability/haManager.pyrs
zHAManager.__init__c
Cspz|jdkr
|��WdS|jdkr|��WdSWdSty7}zt�t|�d�WYd}~dSd}~ww)N�	setupNode�
addManagerz [HAManager.run])rr�
BaseException�logging�writeToFile�str)r�msgrrr�runs

� ��z
HAManager.runc	
Cs�z�t��tjkst��tjkrd}t�|jd|�WdS|jjd}t	�
|�}|ddkr<d}t�|jd|�WdSt�|jdd�|jd}|D]-}ztj|d	d
�}|dkrat�
|d�WqLtyyt�|jd|d�YWdSwzt�d
dd�tddd
d�}|��WnYd}t�|jd|�WdSty�}zt�
t|��t�|jdt|�d�WYd}~dSd}~ww)Nz2Clusters are only supported on Ubuntu 18.04. [404]�tempStatusPathr�userID�adminz.Only administrators can create clusters. [404]zSetting up node in progress..�commandsT��shell� Failed.z Failed. [404]�tcp�2377z	0.0.0.0/0�Docker)�name�port�protoz#Node successfully configured. [200]z. [404])r�decideDistro�centos�cent8r�statusWriterrr
�sessionr�	loadedACL�
subprocess�callrrr�addRuler�saver)	r�mesgr�
currentACLr�command�result�fwRulerrrrr$sH

�
�(��zHAManager.setupNodec
Csnz�t|jdd�}|jjd}t�|�}|ddkr |�dd�WSd}t|�}|��}|�dd�d}d|}t	�
|�d	}	d	}
d
}t�t
�|���d���}|D]}|�d�d
kr`|�d�d}	qPd}t�t
�|���d���}|D]}|�d�d
kr�|�d�d}
qri}
|	|
d<|
|
d<|�dd|
�WSty�}zt|jdd�}|�ddt|��WYd}~Sd}~ww)Nrrr�(Only administrators can create clusters.z/etc/cyberpanel/machineIP�
�z(sudo docker swarm init --advertise-addr �z$sudo docker swarm join-token managerzutf-8z--token���� ���z#sudo docker swarm join-token worker�managerToken�workerToken)rr
r,rr-�ajax�open�read�splitr�executionerr.�check_output�shlex�decode�
splitlines�findrr)r�procrr3�ipFile�f�ipData�	ipAddressr4r>r?�output�itemsrrrrr�fetchManagerTokensOsF

����zHAManager.fetchManagerTokensc
Cs�zHt|jdd�}|jjd}t�|�}|ddkr |�dd�WS|jd}|jd}d|d|d	}t�|�dkrB|�dd
�WS|�dd�WSt	yj}zt|jdd�}|�ddt
|��WYd}~Sd}~ww)Nrrrr7�tokenrNzsudo docker swarm join --token r<z:2377zFailed to join as worker.r9)rr
r,rr-r@rrrDrr)rrJrr3rRrNr4rrrr�	addWorker}s"


��zHAManager.addWorkercCs�z\|jjd}t�|�}t|jdd�}|ddkr |�dd�WS|jd}|D]2}ztj|dd�}|dkr<t	�
|d�Wq'tyY}zt	�
|d	�WYd}~WdSd}~wwWdStyv}zt	�
t|��WYd}~dSd}~ww)
Nrrrr7rTrr!zFailed.)
r
r,rr-rr@rr.r/rrrr)rrr3rJrr4r5rrrr�
leaveSwarm�s.

����	��zHAManager.leaveSwarmc	
Cs�zM|jjd}t�|�}t|jdd�}|ddkr |�dd�WSd}tj�|�s-t�	|�|d}t
|d�}|jdD]}|�|�q;|�
�|�d	d�WStyu}zt�t|��t|jdd�}|�dt|��WYd}~Sd}~ww)
Nrrrr7�/home/cyberpanel/composePath�/docker-compose.yml�w�composeDatar9)r
r,rr-rr@�os�path�exists�mkdirrAr�
writelines�closerrrr)	rrr3rJ�composePath�composeFile�composerPrrrr�
setUpDataNode�s*


��zHAManager.setUpDataNodec

CsZz�|jjd}t�|�}t|jdd�}|ddkr |�dd�WSd}|d}t|d���}t|d�}|D]E}|�d	�d
krL|�	dt
|jd�d
�q4|�d�d
kr`|�	d|jdd
�q4|�d�d
krt|�	d|jdd�q4|�	|�q4|��|�dd�WSt
y�}	zt�t
|	��t|jdd�}|�dt
|	��WYd}	~	Sd}	~	ww)Nrrrr7rUrV�rrW�replicasr;z      replicas: �
containersr8�memoryz          memory: �containerRamzcpus:z          cpus: "�containerCPUz"
r9)r
r,rr-rr@rA�	readlinesrIr]rrr^rrr)
rrr3rJr_r`rrarPrrrr�submitEditCluster�s4

��zHAManager.submitEditCluster)NNN)�__name__�
__module__�__qualname__rrrrQrSrTrbrjrrrrr	s
	+.r	cCsBtjdd�}|jddd�|jddd�|jdd	d�|��}dS)
NzCyberPanel HA Manager)�descriptionrzSpecific a function to call!)�helpz--idzID!z--ipAddresszIP Address!)�argparse�ArgumentParser�add_argument�
parse_args)�parser�argsrrr�main�s
rv�__main__)�os.pathrY�sys�djangorZ�append�environ�
setdefault�setupr.rF�plogical.CyberCPLogFileWriterrr�plogical.httpProcr�plogical.processUtilitiesr�plogical.aclr�	threadingr
rp�plogical.firewallUtilitiesr�firewall.modelsrrr	rvrkrrrr�<module>s*Y	
�