403Webshell
Server IP : 202.155.9.38  /  Your IP : 216.73.216.252
Web Server : LiteSpeed
System : Linux srv733443859 5.15.0-179-generic #189-Ubuntu SMP Tue May 5 18:20:56 UTC 2026 x86_64
User : rabbi4843 ( 1044)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/local/CyberCP/plogical/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/CyberCP/plogical/__pycache__/applicationInstaller.cpython-310.pyc
o

�$>g�o�@sbddlZddlZddlZddlZddlZddlZddlmZddlZddl	m
Z
ddlmZddl
mZddlmZej�d�ddlZej�dd	�e��ddlZdd
lmZddlZddlmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%ddl&m'Z'dd
l(m)Z)ddl*m+Z+ddl,m-Z-ddl.m/Z/ddl0m1Z1ddl2Z2Gdd�dej3�Z4dd�Z5e6dkr�e5�dSdS)�N)�StringIO)�ApacheVhost)�
Administrator��
PHPManager)�
ACLManagerz/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�CyberCPLogFileWriter)�ChildDomains�Websites�WPSites�	WPStaging�	wpplugins�
WPSitesBackup�RemoteBackupConfig�NormalBackupDests)�randomPassword)�mysqlUtilities)�	Databases��installUtilities)�ProcessUtilities)�randintc@seZdZdZdZdZdZdZdd�Zdd	�Z	d
d�Z
edd
��Zdd�Z
dd�Zdd�Zdd�Zdd�ZdAdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Z d7d8�Z!d9d:�Z"d;d<�Z#d=d>�Z$d?d@�Z%dS)B�ApplicationInstaller�	localhostr�3306z4.4.9z1.7.8.3cCsFtj�|�||_||_|dkrz|jd|_WnY|j|_dS)N�tempStatusPath)�multi�Thread�__init__�
installApp�	extraArgsr�data)�selfr r!�r$�3/usr/local/CyberCP/plogical/applicationInstaller.pyr*szApplicationInstaller.__init__c
Cs
z�|jdkr
|��WdS|jdkr|��WdS|jdkr%|��WdS|jdkr1|��WdS|jdkr=|��WdS|jdkrI|��WdS|jdkrU|��WdS|jdkra|��WdS|jd	krm|�	�WdS|jd
kry|�
�WdS|jdkr�|��WdS|jdkr�|��WdS|jd
kr�|�
�WdS|jdkr�|��WdS|jdkr�|��WdS|jdkr�|��WdS|jdkr�|��WdS|jdkr�|��WdS|jdkr�|��WdSWdSt�y}zt�t|�d�WYd}~dSd}~ww)N�	wordpress�joomla�
prestashop�magento�convertDomainToSite�
updatePackage�mautic�wordpressInstallNew�
UpdateWPTheme�UpdateWPPlugin�DeleteThemes�
DeletePlugins�ChangeStatusThemes�CreateStagingNow�DeploytoProduction�WPCreateBackup�RestoreWPbackupNow�	UpgradeCP�StartOCRestorez [ApplicationInstaller.run])r �installWordPress�
installJoomla�installPrestaShop�installMagentor*r+�
installMauticr-r.r/r0r1r2r3r4r5r6r7r8�
BaseException�logging�writeToFile�str)r#�msgr$r$r%�run6sX


















� ��zApplicationInstaller.runcCs d|jd�d�}t�|�dS)NzU/usr/local/CyberPanel/bin/python /usr/local/CyberCP/plogical/upgrade.py "SoftUpgrade,�branchSelect�")r"r�executioner)r#�commandr$r$r%r7cszApplicationInstaller.UpgradeCPcCs`tj�d�rt�d�tj�d�s.d}t�|dd�d}t�|dd�d}t�|dd�dSdS)Nzcomposer.shz/usr/bin/composerz&wget https://cyberpanel.sh/composer.sh�rootTzchmod +x composer.shz
./composer.sh)�os�path�exists�removerrF)rGr$r$r%�
setupComposergs
�z"ApplicationInstaller.setupComposercCs8d}t�|�}|�d�dkrdSt��}t��rZd|�d|�d�}t�|dd	�d
|�d�}t�|dd	�d|�d
�}t�|dd	�d}t�|dd	�d|�d�}t�|dd	�dSd|�d|�d�}t�|dd	�d
|�d�}t�|dd	�d|�d�}t�|dd	�d}t�|dd	�d|�d�}t�|dd	�dS)N�npmz
npm <command>����zwget https://nodejs.org/dist/z/node-z-linux-arm64.tar.xzrHTz
tar -xf node-z-linux-arm64.tar.xz zcp node-z#-linux-arm64/bin/node /usr/bin/nodez.curl -qL https://www.npmjs.com/install.sh | shzrm -rf node-z
-linux-arm64*z-linux-x64.tar.xzz!-linux-x64/bin/node /usr/bin/nodez-linux-x64*)r�outputExecutioner�find�!fetch_latest_lts_version_for_noder�ISARMrF)r#rG�result�nodeVr$r$r%�
InstallNodeJSws8
�z"ApplicationInstaller.InstallNodeJSc"Csx�z�|jd}|jd}|jd}|jd}||_|jd}|jd}|jd}t|d�}|�d	�|��|��d
dlm}	t�	�d
dl
m}
d
|�d�}|
�||�}t
j�|�sot|d�}|�d�|��|
�d�tj|d}
t
j�|
�r�t��tjks�t��tjkr�d}nd}t�|�tt
jd�}d}d|_zYtjj|d�}|jj}|jj|_ |dkr�|jd}|j�!d�d|d}n|j}|jj"j#|jj$�%��&�kr�nt'd��t|d�}|�d�|��|�(||j�\}}}|j|_Wn[t)jj|d�}|j}|j|_ |dk�r|jd}d|d|d}nd|d}|j"j#|j$�%��&�k�r2nt'd��t|d�}|�d�|��|�(||�\}}}d|j|_Y|�*d�dk�r`t'd ��t
j�|��sqd!|}t�||�d"|�d#�}t�||�d"|�d$�}t�||�|�+|||�d
k�r�t'd%��t|d�}|�d&�|��|�d'|��}t�,||d�t|d�}|�d(�|��t|d�}|�d)�|��|dk�r�|jd}|d|}n|}|�d*|�d+|�d,|�d-|�d.|�d/|�d0|�d1�}t�,||d|�}|�*d2�dk�rt'|��|�d3�}t�,||d|�t-�.d|�}|�*d4�dk�r1|�/d4d�}|�d5�}t-�0d||�t�1�tj2k�rnz$t-�3d|�}|�*d4�dk�rZ|�d4�}n|}|dk�rht-�4d||�WnYt�1�tj5k�r�|�d6�}d7|��}t�||d8�d9|��}t�||d8�d:tj6��}t�|�t7�8�t9�:d;�d:tj6��}t�|�t|d�}|�d<�|��Wd
St'�y;}zltt
jd�}d|d=}t��tjk�s�t��tjk�r�d>} nd?} t
j�|��sd@|dA| dB|}t�||�zt;�<||�t=jj|dC�}!|!�>�WnYt|jd�}|�t?|�dD�|��WYd}~d
Sd}~ww)EN�admin�
domainName�homer�username�password�email�w�Setting up paths,0r)�Upgrade��phpUtilities�/usr/local/lsws/conf/vhosts/�/vhost.confz#PHP 8.1 missing installing now..,20�81�.confzBdnf install php7.?-bcmath php7.?-imap php8.?-bcmath php8.?-imap -yzeDEBIAN_FRONTEND=noninteractive apt-get install php7.?-bcmath php7.?-imap php8.?-bcmath php8.?-imap -y���domain�0rJ�/�0Maximum database limit reached for this website.�Setting up Database,20�/home/�
/public_html/�/home/%s/public_html�..rO�0Specified path must be inside virtual host home.�	mkdir -p �rm -rf �*z.*�Directory is not empty.zDownloading Mautic Core,30z@ /usr/bin/composer create-project mautic/recommended-project:^5 zExtracting Mautic Core,50zRunning Mautic installer,70zR -d memory_limit=256M bin/console mautic:install --db_host='localhost' --db_name='z
' --db_user='z' --db_password='z' --admin_username='z' --admin_email='z' --admin_password='z' --db_port='3306' http://z -fzInstall completez9 -d memory_limit=256M bin/console  mautic:assets:generate�docrootz/docrootzdocroot/.htaccessz7sed -i '/# Fallback for Apache < 2.4/,/<\/IfModule>/d' Tz)sed -i '/# Apache 2.4+/,/<\/IfModule>/d' zsystemctl restart ��Successfully Installed. [200]�/public_html�nobody�nogroup�chown �:� ��dbName� [404])@r!r�open�
writelines�closerW�plogical.upgrader`rrM�plogical.phpUtilitiesrb�GetPHPVersionFromFilerIrJrK�InstallSaidPHPr�configBasePathr�decideDistro�cent8�centosrF�devnull�permPathr
�objects�get�master�externalAppri�masterDomain�rstrip�package�	dataBases�
databases_set�all�countr>�
dbCreationrrR�
dataLossCheckrQr�FindDocRootOfSite�replace�ReplaceDocRoot�decideServer�OLS�FindDocRootOfSiteApache�ReplaceDocRootApache�ent�serviceNamer�reStartLiteSpeedSocket�time�sleepr�deleteDatabaser�deleterA)"r#rXrYrZrr[r\r]�
statusFiler`rb�vhFile�phpPath�
finalConfPathrG�FNULL�	finalPath�websiter�rJr��dbUser�
dbPassword�finalURLrU�ExistingDocRoot�
NewDocRoot�ExistingDocRootApache�NewDocRootApache�htAccessPathrB�homeDir�	groupName�dbr$r$r%r=�s*




























4


�







 ��z"ApplicationInstaller.installMauticc
CsVz�|jd}ddlm}t|jd�}t��tjks t��tjkrN|dkr=d}|�	t�
|��|��d}|�	t�
|��nd|}|�	t�
|��|��n)t��tj
ks\t��tjkrw|dkrkd	}|�	t�
|��nd
|}|�	t�
|��|��t�|jdd�WdSty�}zddlm}t�|jd
t|�d�WYd}~dSd}~ww)Nr�r)�ServerStatusUtil�ar�z0DEBIAN_FRONTEND=noninteractive apt-get update -yzapt-get upgrade -yz$apt-get install --only-upgrade %s -yz
yum update -yzyum update %s -yz'Package(s) upgraded successfully. [200]rPzFailed. Error: %s. [404])r!�serverStatus.serverStatusUtilr�r��lswsInstallStatusPathrr��ubuntu�ubuntu20�writerQ�flushr�r�r�r?�statusWriterr>rA)r#r�r��frGrBr$r$r%r+�s>


���z"ApplicationInstaller.updatePackagec
Cs|�zddlm}ddl}ddl}|jd}t|jd�}|�d�|��|�	|j
�}|ddksH|ddksH|ddksH|d	dksH|d
dkrLtd��|d}tj
j|d�}|j}	|�}
|
�|jd
d|i�|�d�t|jd�}|�d�|��|
�|jd
|�}|�	|j�d��}	t�d|d�}
|
�d�dkr�n2|
�d�dkr�t|jd�}|�|
dd�|��WdSt|jd�}|�|
�|��|�d�q�t|jd�}|�d�|��d|}t�|�d|	|f}t�|�ddlm}|dd�}|�|�t|jd�}|�d�|��WdSt�y=}zt|jd�}|�t|�d �|��WYd}~dSd}~ww)!Nr��WebsiteManager�requestr^zDeleting domain as child..,20r�rY�
adminEmail�phpSelection�websiteOwnerzPlease provide all values.rh�userID�websiteName�zCreating domain as website..,40zutf-8T�cat r�[200]rO�[404]�
currentStatusz  [404]rPzMoving data..,80zrm -rf  /home/%s/public_htmlzmv %s /home/%s/public_html��FileManagerzSuccessfully converted. [200]r�)�websiteFunctions.websiter��jsonr�r!r�rr�r��loads�bodyr>r
r�r�rJ�submitDomainDeletion�sessionr��submitWebsiteCreation�content�decoderrQrRrF�filemanager.filemanagerr��fixPermissionsrA)r#r�r�r�r�r�r"rY�childDomainrJ�wm�resp�respData�respDataStatusrGr��fmrBr$r$r%r*�sp

$



�





��z(ApplicationInstaller.convertDomainToSitec
Cs\zd}t�|�d}t�|�WdSty-}zt�t|�d�WYd}~dSd}~ww)Nz]wget -O /usr/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharzchmod +x /usr/bin/wpz$ [ApplicationInstaller.installWPCLI])rrFr>r?r@rA�r#rGrBr$r$r%�installWPCLIs
 ��z!ApplicationInstaller.installWPCLINcCsV|dkrt�|�}t|�dkrdSdSd|}t�||d��d�}t|�dkr)dSdS)NrxrPrz
ls %s | wc -lT�
)rI�listdir�lenrrQr��int)r#r�r�user�dirFilesrGrUr$r$r%r�$s
z"ApplicationInstaller.dataLossCheckc
Csnztj�d�rd}t�|�WdSd}t�|�WdSty6}zt�t|�d�WYd}~dSd}~ww)Nz/etc/lsb-releasezapt -y install gitzyum install git -yz" [ApplicationInstaller.installGit])	rIrJrKrrFr>r?r@rAr�r$r$r%�
installGit6s ��zApplicationInstaller.installGitc
Cs<d}zddl}|�t|d����}|d}|t_dt_|dt_WnYz[t�	�}|}t�	�}	t
jj|d��
�sCt
jj|d��
�rTt|d	�}
|
�d
�|
��WdSt�|||	�}|dkr`nt|d	�}
|
�d�|
��WdSt
|||d�}|��|||	fWSty�}
zt�t|
�d
�WYd}
~
dSd}
~
ww)Nz/etc/cyberpanel/mysqlPasswordr�r�	mysqlhostrP�	mysqlportr�)r�r^z-This database or user is already taken. [404]z"Not able to create database. [404])r�r�r�z [ApplicationInstallerdbCreation])r�r�r��readr�	LOCALHOST�REMOTE�PORTr�
generate_passrr��filterrKr�r�r�createDatabase�saver>r?r@rA)r#rr��passFiler��jsonDatar�r�r�r�r�rUr�rBr$r$r%r�CsR��
�
� ��zApplicationInstaller.dbCreationc!
Csb	�zh|jd}|jd}|jd}||_|jd}|jd}|jd}|jd}ttjd�}zd	}	t�|	�}
|
�d
�dksA|��Wnt	j
yP|��Ynwt|d�}|�d�|��d
dl
m}d|�d�}
d|jd}|d|
}t�|�d
dlm}d|�d�}z|�|�}Wnd}Ytj�|�s�t|d�}|�d�|��|�d�d}d|_zYtjj|d�}|jj}|jj|_|dkr�|jd}|j�d�d|d}n|j}|jj j!|jj"�#��$�kr�nt%d��t|d�}|�d�|��|�&||j�\}}}|j|_Wnzt%�y�}zmt'jj|d�}|j}|j|_|dk�r:|jd}d|d |d}nd|d }|�d!�}d"|��}	t�|	|�|j j!|j"�#��$�k�r]nt%d��t|d�}|�d�|��|�&||�\}}}d#|j|_WYd}~nd}~wwd$|d!}	t�|	|�|}|�d%�dk�r�t%d&��d'|}	t�|	|�|�(|||�d
k�r�t%d(��t|d�}|�d)�|��z|�d*|�d+|jd,��}	Wnd-|}	Yt�|	|�}tj�tj)��r�t*�+t,|��|�d.�dk�rt%|��t|d�}|�d/�|��|�d0|�d1|�d2|�d3t-j.�d4t-j/�d5|��
}	t�|	|�}tj�tj)��r=t*�+t,|��|�d.�dk�rIt%|��|dk�rZ|jd}|d|}n|}|�d6|�d7|�d8|�d9|�d:|�d;|��
}	t�|	|�}tj�tj)��r�t*�+t,|��|�d.�dk�r�t%|��t|d�}|�d<�|��|�d=�|}	t�|	|�}tj�tj)��r�t*�+t,|��|�d.�dk�r�t%|��t|d�}|�d>�|��|�d?�|}	t�|	|�}tj�tj)��r�t*�+t,|��|�d.�dk�r�t%|��ze|jd@�rc|jd@dAk�r(|�dB�|}	t�|	|�}|�d.�dk�r't%|��n;|jd@dCk�rJ|�dD�|}	t�|	|�}|�d.�dk�rIt%|��n|�dE�|}	t�|	|�}|�d.�dk�rct%|��WnYz�|jdFdGk�r�dH|}	t�|	|�}|�d.�dk�r�t%|��t|d�}|�dI�|��dJ|}	t�|	|�}|�d.�dk�r�t%|��nB|jdFdKk�r�dL|}	t�|	|�}|�d.�dk�r�t%|��t|d�}|�dM�|��dN|}	t�|	|�}|�d.�dk�r�t%|��WnYzG|jdOdPk�r;|jdQ}t0t1|��D]1}|�dR�|||f}	t�|	|�}|�d.�dk�r(t%|��|�dS�|||f}	t�|	|�}�q	Wnt%�yX}zt*�+dTt,|��WYd}~nd}~wwt|d�}|�dU�|��Wd
St%�y�}z:tj�tj)��s�zt2�3||�t4jj|dV�} | �5�WnYt|jd�}|�t,|�dW�|��WYd}~d
Sd}~ww)XNrYrZr�	blogTitle�	adminUser�
adminPasswordr�r^z	wp --infozWP-CLI root dir:rOr_r��virtualHostUtilitiesrcrdz/usr/local/CyberCP/bin/python z!/plogical/virtualHostUtilities.pyz) changePHP --phpVersion 'PHP 8.0' --path raz/usr/local/lsws/lsphp80/bin/phpz#PHP 8.0 missing installing now..,20�80rgrhrjrJrkrlrmrnro�
index.htmlzrm -f rprtrqrrrsrvzDownloading WordPress Core,30zD -d error_reporting=0 /usr/bin/wp core download --allow-root --path=� --version=�	WPVersionz%wp core download --allow-root --path=zSuccess:�Configuring the installation,40�7 -d error_reporting=0 /usr/bin/wp core config --dbname=�
 --dbuser=�
 --dbpass=�
 --dbhost=r~z --dbprefix=wp_ --path=z= -d error_reporting=0 /usr/bin/wp core install --url="http://z" --title="z" --admin_user="z" --admin_password="z" --admin_email="z	" --path=zInstalling LSCache Plugin,80zU -d error_reporting=0 /usr/bin/wp plugin install litespeed-cache --allow-root --path=zActivating LSCache Plugin,90zV -d error_reporting=0 /usr/bin/wp plugin activate litespeed-cache --allow-root --path=�updates�Disabledza -d error_reporting=0 /usr/bin/wp config set WP_AUTO_UPDATE_CORE false --raw --allow-root --path=zMinor and Security Updatesz[ -d error_reporting=0 /usr/bin/wp config set WP_AUTO_UPDATE_CORE minor --allow-root --path=z` -d error_reporting=0 /usr/bin/wp config set WP_AUTO_UPDATE_CORE true --raw --allow-root --path=�appsSetz$WordPress + LSCache + Classic Editorz5wp plugin install classic-editor --allow-root --path=z#Activating Classic Editor Plugin,90z6wp plugin activate classic-editor --allow-root --path=z!WordPress + LSCache + WooCommercez2wp plugin install woocommerce --allow-root --path=z Activating WooCommerce Plugin,90z3wp plugin activate woocommerce --allow-root --path=�SavedPluginsT�AllPluginsListzJ -d error_reporting=0 /usr/bin/wp plugin install %s --allow-root --path=%szK -d error_reporting=0 /usr/bin/wp plugin activate %s --allow-root --path=%sz!Error in istall plugin bucket: %sryr�r�)6r!rr�rIr�rrQrRr��
subprocess�CalledProcessErrorr�r��plogical.virtualHostUtilitiesr�
cyberPanelrFr�rbr�rJrKr�r�r
r�r�r�r�rir�r�r�r�r�r�r�r>r�rr��	debugPathr?r@rArr�r��ranger�rr�rr�)!r#rYrZrr�r�r�r�r�rG�outoutr�r�completePathToConfigFile�execPathrbr�r�r�r�r�rJr�r�r�rB�	IndexFile�FinalPHPPathrUr��
AllPluginList�ir�r$r$r%r9rs�







��















��




0

,



���

�

�
�����

��z%ApplicationInstaller.installWordPressc
Csd�z=|jd}|jd}|jd}|jd}|jd}|jd}|jd}|jd}|jd	}	|jd
}
|
|_ttjd�}t|
d�}|�d�|��d
}
d
|_z[tj	j
|d�}|jj}|jj
|_|dkrw|jd}|j�d�d|d}
n|jd}
|jjj|jj����kr�ntd��t|
d�}|�d�|��|�|
|j�\}}}|j|_WnYtj	j
|d�}|j}|j
|_|dkr�|jd}d|d|d}
nd|d}
|jj|j����kr�ntd��t|
d�}|�d�|��|�|
|�\}}}d|j
|_Y|
�d�dk�rtd��d|
}t�||�|�|
|
|�dk�r)td��d|
d}t�||�ddlm}d |�d!�}|�||�}tj� |��sat|
d�}|�d"�|��|�!d#�t"j#|d$}tj� |��s�t�$�tj%k�r�t|jd�}|�d%�|��WdSt|
d�}|�d&�|��t�&�}d'|�d(|�d)|
��}t�||�d*|
|f|
}t�||�d+|
|
}t�||�t|
d�}|�d,�|��|dk�r�|jd}|}n|}t|
d�}|�d-�|��|�d.�|
d/|d0|d1|d2|d3|d4|d5|d6|d7|	}t�||�d|
d8}t�||�t|
d�}|�d9�|��WdSt�y�}zfd|d:}t�'�tj(k�s]t�'�tj)k�r`d;}nd<}tj� |��s{d=|d>|d.|}t�||�zt*�+||�t,j	j
|d?�}|�-�WnYt|jd�}|�t.|�d@�|��WYd}~dSd}~ww)ANrXrYrZ�shopName�	firstName�lastName�databasePrefixr]r\rr^r_rgrhrjrJrkrlrmrnrorprqrOrrrsrrvrtrrarcrdz#PHP 8.3 missing installing now..,20�83rfz�Your server is currently using OpenLiteSpeed, please switch your website to use Apache otherwise Prestashop installation will not work. [404]z/Downloading and extracting PrestaShop Core..,30z@wget https://github.com/PrestaShop/PrestaShop/releases/download/z/prestashop_z.zip -P z unzip -o %sprestashop_%s.zip -d zunzip -o %sprestashop.zip -d rz*Installing and configuring PrestaShop..,60rzinstall/index_cli.php --domain=z! --db_server=localhost --db_name=z --db_user=z --db_password=z	 --name='z' --firstname=z --lastname=z	 --email=z --password=�installryrzr{r|�	chown -R r~r�r�)/r!rr�rIr�r�r�r�r
r�r�r�r�rir�rJr�r�r�r�r�r�r>r�rrRrrFr�r�rbr�rKr�rr�r�r��fetch_latest_prestashop_versionr�r�r�rr�rr�rA)r#rXrYrZrrrr r]r\rr�r�r�r�r�rJr�r�r�rGrbr�r�r��pVersionr�rBr�r�r�r$r$r%r;�s0































����������������

 ��z&ApplicationInstaller.installPrestaShopcCsdS)Nr):r!rr
r�r�r�r�rir�rJr�r�r�r�r�r�r>r�r�r�r�r�rrrQrRrFr��getpass�getuserrr��hashlib�md5�encode�	hexdigest�MySQLdb.cursors�cursors�MySQLdb�connect�SSCursor�cursor�executer?r@rArIrLr�r�r�rr��printrr�rr�)r#rYr\�prefixrZ�siteNamerr�r�r�rJr�r�r�r�r�rGrUr&�
joomlaPath�salt�
password_hashr-�mysql�connr1rBr�r�r�r�r$r$r%r:�sz"ApplicationInstaller.installJoomlacCs8�za|jdrlt�|jdd�ddl}ddlm}dttdd��}d	�|�	d
|jd��dd�ttdd��}|�
|jd|jd
d|dddddd|d�t|d���}|�
d�dkrlt�|jdd|�WdSt�|jdd�|jd}|jd|jd<dttdd��|jd<|jd|jd<|jd|jd<|jd|jd<|jd
|jd<|��t|jdd���}|�
d�dkr�||jd<td|��||jd<t�|jdd �zJdd!lm}dd"lm}ddl}	|jj|jdd#�}
|jd=|jd=|jd=|jd=|jd=|jd=|jd=|jd$=||
|	�|j�d%�}|��WnYt��tjk�s;t��tjk�r>d&}nd'}t|d���}
|
�
d(�dk�r`t|d)�}|�d*�|��WdSWdSt�y�}z,|jd|jd+<dd,lm }|�}|�!d|j�t�|jdd-t|��WYd}~dSd}~ww).N�
createSiterzCreating this application..,10rr�/home/cyberpanel/���'rgz	[a-zA-Z]+rir�r]zPHP 7.4rPrX�Defaultr�r�rOz-Failed to create application. Error: %s [404]zInstalling WordPress.,50rY�titler��userNamer�r\r�r�z,Failed to install WordPress. Error: %s [404]zCompleted [200].)�
WPDeployments)rrhr
)�owner�configz/var/spool/cron/rootz/var/spool/cron/crontabs/rootzWPAutoUpdates.pyr�zV0 12 * * * /usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/WPAutoUpdates.py
r�r�z	%s [404].)"r!r?r��rerrrAr�join�findall�createVirtualHostr�r�rRr9r>�cloudAPI.modelsrB�websiteFunctions.modelsrr�r�r��dumpsr�rr�r�r�r�r�r�r��submitWebsiteDeletion)r#rErrr�rU�currentTemprBrr�r��wpDeploy�
localCronPath�cronDatar@rBr�r�r$r$r%�DeployWordPresss�
.��


 
��(��z$ApplicationInstaller.DeployWordPressc!
Cs��z_|jd}|jd}|jd}|jd}|jd}|jd}|jd}|jd}|jd	}	|jd
}
|jd}||_ttjd�}t|d�}
|
�d
�|
��d}d|_z[tj	j
|d�}|jj}|jj
|_|dkr||jd}|j�d�d|d}n|jd}|jjj|jj����kr�ntd��t|d�}
|
�d�|
��|�||j�\}}}|j|_WnYtj	j
|d�}|j}|j
|_|dkr�|jd}d|d|d}nd|d}|jj|j����kr�ntd��t|d�}
|
�d�|
��|�||�\}}}d|j
|_Yd|j}t�|�|�d�dk�r td��tj�|��s1d|}t�||�|�||�dk�r>td��t|d�}
|
�d�|
��d |	|f}t�||�t|d�}
|
�d!�|
��|dk�rs|jd}|}n|}t|d�}
|
�d"�|
��d#|d$|d%|}t�||�d&|}t�||�d&|}t�||�d'||f}t�||�d(|
|||f}d)||||||f}d*|d+}t�||�t|d�}
|
�d,�|
��z:ddlm}ddl }|j!d-||d.|j"d/�}|�#�}|�$d0||f�|�$d1||f�|�$d2||f�|��Wnt�y5}z
t%�&t'|��WYd}~nd}~wwd3|}t�|�dd4l(m)}|dd�}|�*|j�t|d�}
|
�d5�|
��WdSt�y�}zpd|d6}t�+�tj,k�st�+�tj-k�r�d7}nd8}tj�|��s�d#|d$|d%|}t�||�zt.�/||�t0j	j
|d9�} | �1�WnYd:|j}t�|�t|jd�}
|
�t'|�d;�|
��WYd}~dSd}~ww)<NrXrYrZrrr]r[r\�whmcsinstallerpath�whmcslicensekeyrr^r_rgrhrjrJrkrlrmrnrorpzchmod 755 %srqrOrrrsrrvz#Extracting WHMCS Installer zip..,30zunzip -qq %s -d %srz%Installing and configuring WHMCS..,60r#r~rz]curl %s/install/install.php?step=2 --insecure --silent --output /dev/null --show-error --failz0mv %s/configuration.php.new %s/configuration.phpa�
            curl %s/install/install.php?step=4"             -H 'Content-Type: application/x-www-form-urlencoded'             --data "licenseKey=%s&databaseHost=localhost&databasePort=&databaseUsername=%s&databasePassword=%s&databaseName=%s"             --compressed             --insecure             --silent             --output /dev/null             --show-error             --fail
            ap
            curl %s/install/install.php?step=5"             -H 'Content-Type: application/x-www-form-urlencoded'             --data "firstName=%s&lastName=%s&email=%s&username=%s&password=%s&confirmPassword=%s"             --compressed             --insecure             --silent             --output /dev/null             --show-error             --fail
            rtr"z!Update whmcs urls to siteurl..,70ri�)�hostr��passwd�port�cursorclasszHuse %s;UPDATE tblconfiguration SET value='%s' WHERE setting='SystemURL';zEuse %s;UPDATE tblconfiguration SET value='%s' WHERE setting='Domain';zKuse %s;UPDATE tblconfiguration SET value='%s' WHERE setting='SystemSSLURL';zchmod 400 %s/configuration.phpr�ryrzr{r|r�zchmod 750 %sr�)2r!rr�rIr�r�r�r�r
r�r�r�r�rir�rJr�r�r�r�r�r�r>r�rrrFrRrKr�r,r-r.r/r0r1r2r?r@rAr�r�r�r�r�r�rr�rr�)!r#rXrYrZrrr]r[r\�whmcs_installer�whmcs_licensekeyrr�r�r�r�r�rJr�r�r�rGr�r�r�r-r9r:r1rBr�r�r�r$r$r%�installWhmcsys,






























��

�

�

�
�
�
���



 

��z!ApplicationInstaller.installWhmcsc
Csb�z�ddlm}ddl}|jd}t|d�}|�d�|��i}|jd}|jd|d<|jd|d<d|d	<|jd
|d
<|jd|d<d|d
<d|d<d|d<d|d<|jd|d<|jd}tj	�
tj�rst
�dt|����z@tjj|dd�}|jdkr�d|_|��tjj|jdd�}	t�|j|	|jd�dkr�t|d�}|�d�|��WWdSWn�t�yt}
z�tj	�
tj�r�t
�dt|
����|�}|�||�}|�|j�}
|
ddkr�t|d�}|�d|
d�|��WYd}
~
WdSt
�d|
�|
d}	t|d���}tj	�
tj��rt
�d|�|�d �d!k�r'n5|�d"�d!k�rGt|d�}|�d|�|��WYd}
~
WdSt|d�}|�d#�|��t� d$��qt|d�}|�d%�|��WYd}
~
nd}
~
wwd&}g}z-|jd'dk�r�t!jj|jd'd�}|�|j"�}d(}t#t$|��D]
}|�%||��q�Wnt�y�}
zWYd}
~
nd}
~
ww|jd}d)tt&d*d+��|jd<||jd,<||jd-<|�'�	t|jdd���}|�d �d!k�r�n0|�d"�d!k�rt|d�}|�d.|�|��WdSt|d�}|�d/�|��t� d$��q�t|d�}|�d0�|��tjj|jdd�}|jd1d2k�rZ|jd3}d4|jdd5|d6}|jd�d6|��}nd4|jdd5}|jd}t(||jd7|||jd8|jd9|jd:d;�}|��t|d�}|�d<�|��WdSt�y�}
zt
�d=t|
��WYd}
~
dSd}
~
ww)>Nrr�rr^zCreating Website...,10rYr�zPHP 8.0r�r�r�rP�ssl�	dkimCheck�openBasedir�
mailDomain�
apacheBackend�adminIDz&Data passed to wordpressInstallNew is rhzPHP 7.3��pk�
currentACLzYou dont own this site.[404]z9Error in finding existing site in wordpressInstallNew is �statusz*Failed to Create Website: error: %s. [404]�errorMessage�Creating website result....%sr�z%Info web creating lastline ....... %sr�rOr��Creating Website....,20��Installing WordPress....,30F�pluginbucketTr<r=r>rrz+Failed to install WordPress: error: %s[404]zInstalling WordPress....,50zWordPress installed..,70rZrjrJrnrorkr�r�Plugins�Themes)rCr@rJ�FinalURL�AutoUpdates�
PluginUpdates�ThemeUpdateszWordPress installed..,[200]z!Error WP web creating  ....... %s))r�r�r�r"r�r�r�r!rIrJrKrrr?r@rArr�r�r�r�rr�checkOwnershiprir>r�r�r�r�rRr�r�rrDrr��appendrr9r)r#r�r�rr��
DataToPassrM�UserIDr�rXrB�ab�
coreResult�coreResult1�
reutrntempath�lastLinerr�bucktobj�pluginlisttr�webobjrJr��Finalurl�wpobjr$r$r%r-cs






��

�




�

��*���






�



�

��z(ApplicationInstaller.wordpressInstallNewc	
Cs�z_|jd}|jd}|jd}|jddkr&d|||f}t�|�}WdS|jddkrMd}|jd	D]}d
||f}q4d||||f}t�|�}WdSd|||jd|f}t�|�}WdSty{}zt�dt|��WYd}~d
Sd}~ww)Nr�VhuserrJ�Themer��hsudo -u %s %s -d error_reporting=0 /usr/bin/wp theme update --all --skip-plugins --skip-themes --path=%s�selectedrg�
Themearray�%s %s�esudo -u %s %s -d error_reporting=0 /usr/bin/wp theme update %s --skip-plugins --skip-themes --path=%s�!Error WP UpdateWPTheme ....... %sr�r"rrQr>r?r@rA)	r#rrrJrG�	stdoutput�	ThemeList�pluginrBr$r$r%r.�s4


�����z"ApplicationInstaller.UpdateWPThemec	
Cs�z_|jd}|jd}|jd}|jddkr&d|||f}t�|�}WdS|jddkrMd}|jd	D]}d
||f}q4d||||f}t�|�}WdSd|||jd|f}t�|�}WdSty{}zt�d
t|��WYd}~dSd}~ww)NrrrJr�r�r�r�rg�pluginarrayr�zfsudo -u %s %s -d error_reporting=0 /usr/bin/wp plugin update %s --skip-plugins --skip-themes --path=%sr�r�rr�)	r#rrrJrGr��pluginsList�plugrBr$r$r%r/s4


�����z#ApplicationInstaller.UpdateWPPluginc	
Cs�zI|jd}|jd}|jd}|jddkr7d}|jdD]}d||f}qd	||||f}t�|�}WdSd	|||jd|f}t�|�}WdStye}zt�d
t|��WYd}~dSd}~ww)NrrrJr�r�rgr�r�zesudo -u %s %s -d error_reporting=0 /usr/bin/wp theme delete %s --skip-plugins --skip-themes --path=%sz Error WP DeleteThemes ....... %srr�)	r#rrrJr�r�rGr�rBr$r$r%r0:s*


����z!ApplicationInstaller.DeleteThemesc
Cs�zJ|jd}|jd}|jd}|jd}|jd}|dkr;d}|D]}d||f}d	||||f}t�|�}	q"WdSd	||||f}t�|�}	WdStyf}
zt�d
t|
��WYd}
~
dSd}
~
ww)NrrrJr�r�r�rgr�zfsudo -u %s %s -d error_reporting=0 /usr/bin/wp plugin delete %s --skip-plugins --skip-themes --path=%sz!Error WP DeletePlugins ....... %srr�)r#rrrJr�r�r�r�rGr�rBr$r$r%r1Ss0




�����z"ApplicationInstaller.DeletePluginsc
Cs�zH|jd}|jd}|jd}|jd}d||||f}t�|�}|�d�dkr9d||||f}t�|�}WdSd	||||f}t�|�}WdStyd}zt�d
t|��WYd}~dSd}~ww)NrrrJr�zesudo -u %s %s -d error_reporting=0 /usr/bin/wp theme status %s --skip-plugins --skip-themes --path=%szStatus: ActiverOzisudo -u %s %s -d error_reporting=0 /usr/bin/wp theme deactivate %s --skip-plugins --skip-themes --path=%szgsudo -u %s %s -d error_reporting=0 /usr/bin/wp theme activate %s --skip-plugins --skip-themes --path=%sz&Error WP ChangeStatusThemes ....... %sr)r"rrQrRr>r?r@rA)r#rrrJr�rGr�rBr$r$r%r2os.



�
����z'ApplicationInstaller.ChangeStatusThemesc#
Cs�zYddlm}ddl}tjj|jdd�}t�|j	j
�}d|}|j}|�d|�d�}t�
||j	j�}|�d�}	t�d	|	�t��d
dttdd
��f}
|
|_d|
��}t�|�d|j	j�d|j	j�d|
��}t�|�|jd}||_t|d�}|�d�|��i}
|jd}|jd|
d<|j	j|
d<|j	j
|
d<|j	jj|
d<d|
d<d|
d<d|
d<d|
d<d|
d <|jd!}|�}|� ||
�}|�!|j"�}t#j�$d"�r�t�d#|�|d}	t|d$��%�}|�&d%�d&kr�n/|�&d'�d&k�rt|d�}|�d(|�|��WdSt|d�}|�d)�|��t'�(d*�q�t|d�}|�d+�|��t|d�}|�d,�|��t)jj|jdd-�}|�*||�\}}}t|d�}|�d.�|��|j	j+}|jd}|j}|j
}t�|�}d|}d/|j+�d0�}|�d1|�d2|	��}t�||j�dk�r�t,d3��|�d4|�d5|�d6|�d7t-j.�dt-j/�d8|��
}t�||j�dk�r�t,d9��|�d:|��}t�
||j	j��d�}|�d;|�d<|
�d=�}t�||j	j�dk�r�t,d>��|�d?|��}t�
||j	j��0�d&�1d@dA�}dB|�d|
�dC�}t�||j	j�dk�rt,dD��dE|�dF|
�dC�}t�||j	j�dk�r-t�dG�|�dH|�d8|��}t�||j�dk�rEt,dI��d|j�d|j�d|
��}t�|�|�d;|�dJ|
�d=�}t�||j�dk�rpt,dK��z
dL|
}t�||j�WnYdM|�dN�}t�||j�dO|
�dP|�dC�}t�||j�dk�r�t,dQ��dE|
�dF|�dC�}t�||j	j�dk�r�t�dG�|�dR|�dS|j2�dT|�dU�}t�||j�dk�r�t,dV��|�dR|�dW|j2�dT|�dU�}t�||j�dk�r�t,dX��|�dR|�dY|�dZ|�dU�}t�||j�dk�rt,d[��dd\l3m4} | �5�t||jd]d^|jdd_|jdd`�}!|!�6�dM|
��}t�|�t7|!|da��6�t|d�}|�db�|��WdSt,�y�}"z&dM|j��}t�|�t|jd�}|�t|"��d'��|��WYd}"~"dSd}"~"ww)cNrr��WPidra�/usr/local/lsws/lsphp%s/bin/phpz* -d error_reporting=0 /usr/bin/wp --path='z+' core version --skip-plugins --skip-themesr�zOld site wp version:%s�%s/%s�/usr/local/CyberCP/tmpr=r>rsr#r~rrr^zCreating Website...,15�
StagingDomainrYr�r�r�r?r�rPr[r\r]r^r`z/usr/local/CyberCP/debugrfr�r�rOr�z(Failed to Create Website: error: %s[404]rgrhrizCreating DataBase....,30rhzCreating Staging....,50rnrzz7 -d error_reporting=0 /usr/bin/wp core download --path=rz!Failed to download wp core. [404]rrr	r
z --path=z#WP Core congiruations failed. [404]z^ -d error_reporting=0 /usr/bin/wp config get table_prefix --skip-plugins --skip-themes --path=�S -d error_reporting=0 /usr/bin/wp --allow-root --skip-plugins --skip-themes --path=� db export �/dbexport-stage.sqlz1Failed to export database from master site. [404]�^ -d error_reporting=0 /usr/bin/wp theme path --skip-plugins --skip-themes --allow-root --path=�themesrg�cp -R rkz;Failed to copy wp-content from master to temp folder. [404]�cp -f �/.htaccess z2While staging creation .htaccess file did not copyz: -d error_reporting=0 /usr/bin/wp config set table_prefix z1Failed to set table prefix on staging site. [404]� --quiet db import z0Failed to import database on staging site. [404]�rm -f %s/dbexport-stage.sqlrtz/wp-contentzmv z/wp-content z:Failed to copy wp-content from temp to staging site. [404]�U -d error_reporting=0 /usr/bin/wp search-replace --skip-plugins --skip-themes --path=� "�" "rE�search-replace failed 1. [404]� "www.�search-replace failed 2. [404]�
 "https://�
" "http://�search-replace failed 3. [404]r�StagingNamerpz%s)rCr@rJrm)�wpsiterCzStaging site created,[200])8r�r�r�rr�r�r"r�getPHPStringrCr�rJrrQr�r�r?r@r�CreateSecureDirrAr�tempPathrFrr�r�r�r!r�rXrAr�r�r�rIrKr�rRr�r�rr�rir>rr�r��
splitlinesr�rm�plogical.installUtilitiesr�reStartLiteSpeedr�r
)#r#r�r�r~�phpr�path_to_wordpressrG�
Wp_version�old_wp_versionr�rr�rsrMrtrurvrwrxryr��
dbNameRestorer�r�r�rirJ�
PHPVersion�StagingPath�TablePrefix�
WpContentPathrr�rBr$r$r%r3�s(












�







0��


�




��z%ApplicationInstaller.CreateStagingNowc
Cs��z�|jd|_|jd|_|jd|_tjj|jd�}tjj|jd�}t��ddt	t
dd��f|_d	|j��}t�
|�d
|jj�d|jj�d|j��}t�
|�d
dlm}|�|jj�}d|}t�|jd�|�d|j�d|j�d�}t�
||jj�d
kr�td��|�d|j��}t�||jj���d�dd�}t�|jd�d|j�d|j�d�}t�
||jj�d
kr�td��d|j�d|j�d�}t�
||jj�d
|jj�d|jj�d|j��}t�
|�t�|jd �|�d|j�d!|j�d�}t�
||jj�d
k�r
td"��zd#|j}t�
|�WnYt�|jd$�d|j�d%|��}t�
||jj�d
k�r:td&��|�d'|j�d(|j�d)|j�d*�}t�
||jj�d
k�rZtd+��|�d'|j�d,|j�d)|j�d*�}t�
||jj�d
k�rztd-��|�d'|j�d.|j�d/|j�d*�}t�
||jj�d
k�r�td0��d
d1lm}|��d2|j��}t�
|�t�|jd3�Wd
St�y�}	zd2|j��}t�
|�d4t	|	�}
t�|j|
�WYd}	~	dSd}	~	ww)5Nr�
statgingIDr�rar�r�r=r>rsr#r~rrrr�zCreating database backup..,10r�r�r�z7Failed to create database backup of staging site. [404]r�rOr�rgz Moving staging site content..,20r�z
/wp-content/ rkz9Failed copy wp-content from staging to temp folder. [404]r�r�zImporting database..,60r�z8Failed to import database backup into master site. [404]r�zMoving content..,80z/wp-content/* z/Failed to copy wp-content to master site. [404]r�r�r�rEr�r�r�r�r�r�rrt�Completed.[200]z	%s. [404])r!rr�r�rr�r�rr�rArr�rrFrCr��managePHP.phpManagerrr�r�r?r�rJr>rQr�r�rmr�rr�)r#�StagingSite�WPSiterGrr�rr�rrB�mesgr$r$r%r4g	s�
 
�� 

"""

��z'ApplicationInstaller.DeploytoProductionc 
Csv�z�ddlm}ddl}|jd|_t�|jd�tjj	|jdd�}t
jj	|jdd�}|jd}z|jd	}|jd
}Wnd}d}Yddlm}d
|j
j�d�}	|j
}
|�|	�}|
j}|j}
|
j}|�|�}d|}|dk�rQt�|jd�d|�d|�d|
��}t|�t�|dddd�\}}t|�|�d�dkr�|�d�}nt|��d|�d|�d|
��}t�|dddd�\}}|�d�dkr�|�d�}nt|��tj�tj�r�t�d|���t��tt dd��}dd|f|_!d|j!��}t�|dddd�\}}|dk�rt|��d |j
j�d!|j
j�d|j!��}t�|dddd�\}}|dk�r0t|��t�|jd"�d|�d#|j!�d$�}t�|dddd�\}}|dk�rUt|��i}|j"|d%<|j#|d&<|j$|d'<|j%|d(<|j&|d)<|j'|d*<|j|d+<||d,<||d-<||d.<||d/<|
j(|d0<|
j)|d1<|
j*|d2<|
j+|d3<|
j|d4<|
j,|d5<|
j-|d6<d7|d8t.�/d9�|d:<d;|d<||d	<||d<<|j0|d=d>�}d?tt dd��}t1|d@�}|�2|�|�3�t�4|dA�dB|�d|j!��}t�|dddd�\}}|dk�rt|��dC|��}t�|dddd�\}}|dk�r t|��t�|jdD�dE||
|j!f}t�|dddd�\}}|dk�rCt|��tj�tj��rPt�|�dF||
|j!f}t�|dddd�\}}|dk�rlt|��tj�tj��ryt�|�t�|jdG�tj�tj��r�t�dH|���dI|||
|j!|f}tj�tj��r�t�|�t�|dddd�\}}|dk�r�t|��tj�tj��r�t�|�t�|jdJ�dK}t�|dddd�\}}|dk�r�t|��dL|d:�dM|j!��}t�|dddd�\}}|dk�rt|��t5||j6|
j6|dN�}|�7�dO|j!��}|dk�r!t|��dP|d:�dQ�}t�|dddd�\}}|dk�r=t|��t�|jdR�ddS|d:�dQ�|j6fWS|dTk�r�t��tt dd��}dd|f|_!d|j!��}t�|dddd�\}}|dk�r�t|��d |j
j�d!|j
j�d|j!��}t�|dddd�\}}|dk�r�t|��t�|jd"�d|j!�d$�}t�||ddd�\}}|dk�r�t|��i}|j"|d%<|j#|d&<|j$|d'<|j%|d(<|j&|d)<|j'|d*<|j|d+<dU|d,<dU|d-<||d.<||d/<|
j(|d0<|
j)|d1<|
j*|d2<|
j+|d3<|
j|d4<|
j,|d5<|
j-|d6<d7|d8t.�/d9�|d:<dV|d<||d	<||d<<|j0|d=d>�}d?tt dd��}t1|d@�}|�2|�|�3�t�4|dA�dB|�d|j!��}t�|dddd�\}}|dk�rzt|��dC|��}t�|dddd�\}}|dk�r�t|��t�|jdD�dE||
|j!f}t�|dddd�\}}|dk�r�t|��tj�tj��r�t�|�dF||
|j!f}t�|dddd�\}}|dk�r�t|��tj�tj��r�t�|�t�|jdJ�dW|}dK}t�|dddd�\}}|dk�r
t|��dL|d:�dM|j!��}t�|dddd�\}}|dk�r,t|��t5||j6|
j6|dN�}|�7�tj�tj��rGt�|�dO|j!��}t�|dddd�\}}|dk�rat|��dP|d:�dQ�}t�|dddd�\}}|dk�r}t|��t�|jdR�ddS|d:�dQ�|j6fWSt�|jd�d|�d|�dX|
��}t�|dddd�\}}|�d�dk�r�|�d�}nt|��tj�tj��r�t�d|���d|�d|�dY|
��}t�|dddd�\}}|�d�dk�r�|�d�}nt|��t��tt dd��}dd|f|_!d|j!��}t�|dddd�\}}|dk�r$t|��d |j
j�d!|j
j�d|j!��}t�|dddd�\}}|dk�rHt|��t�|jd"�i}|j"|d%<|j#|d&<|j$|d'<|j%|d(<|j&|d)<|j'|d*<|j|d+<||d,<||d-<||d.<||d/<|
j(|d0<|
j)|d1<|
j*|d2<|
j+|d3<|
j|d4<|
j,|d5<|
j-|d6<d7|d8t.�/d9�|d:<dZ|d<||d	<||d<<|j0|d=d>�}d?tt dd��}t1|d@�}|�2|�|�3�t�4|dA�dB|�d|j!��}t�8|�dk�r�td[��dC|��}t�8|�dk�r
td\��t�|jd]�tj�tj��r!t�d^|���dI|||
|j!|f}tj�tj��r8t�|�t�|dddd�\}}|dk�rLt|��tj�tj��rYt�|�t�|jdJ�dK}t�|dddd�\}}|dk�rvt|��dL|d:�dM|j!��}t�|dddd�\}}|dk�r�t|��t5||j6|
j6|dN�}|�7�tj�tj��r�t�|�dO|j!��}t�|dddd�\}}|dk�r�t|��dP|d:�dQ�}t�|dddd�\}}|dk�r�t|��t�|jdR�ddS|d:�dQ�|j6fWSt�y:}z4t�d_t|��z
dO|j!��}t�8|�WnYt�|jt|��d`��dt|�dfWYd}~Sd}~ww)aNrrrzCreating BackUp...,10r�rar`�
Backuptype�BackupDestination�SFTPID�Localrarcrdr��1zGetting database...,20�sudo -u rzZ -d error_reporting=0 /usr/bin/wp config get DB_NAME  --skip-plugins --skip-themes --path=rP�Error:rOr�zZ -d error_reporting=0 /usr/bin/wp config get DB_USER  --skip-plugins --skip-themes --path=z	DB Name: r=r>r�r�rsr#r~zCreating Backup Directory...,40z
 mkdir -p rz�WPtitle�
WPAutoUpdates�
WPFinalURL�WPPluginUpdates�WPThemeUpdates�
WPowner_id�
WPsitepath�DatabaseName�DatabaseUser�
RandomPath�	WebDomain�
WebadminEmail�WebphpSelection�Webssl�Webstate�	WebVHuser�
Webpackage_id�Webadmin_idzbackup-�-z%m.%d.%Y_%H-%M-%S�namezBoth Website and DataBase�SFTP_ID�)�indentr<r^i�r�zrm -r zCopying website data.....,50z#sudo -u %s cp -R %s* %s/public_htmlz)sudo -u %s cp -R %s.[^.]* %s/public_html/zCopying database.....,70zDB Name Dump: z�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp --allow-root --skip-plugins --skip-themes --path=%s db export %s/%s.sqlz Compressing backup files.....,80zmkdir -p /home/backup/ztar -czvf /home/backup/z.tar.gz -P )rC�WPSiteID�	WebsiteIDrDrtzchmod 600 /home/backup/�.tar.gzr��
/home/backup/�2zNot availabe�Website Backupz/home/%sz� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_NAME  --skip-plugins --skip-themes --path=z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_USER  --skip-plugins --skip-themes --path=�DataBase Backupz(Failed to copy config file to temp path.z"Failed to remove config temp file.zCopying DataBase.....,70zDB Name MySQL Dump: zError WPCreateBackup ....... %s�. [404])9r�rr�r!rr?r�rr�r�rr�rbrCri�,WrapGetPHPVersionFromFileToGetVersionWithPHPr�rJr�r3rrQrRr�r>rIrKrr@rr�rArr�r@rnrmrorp�owner_idr�r�r[�state�
package_id�admin_idr��strftimerKr�r�r��chmodr�idr�rF) r#rr�r��Adminobjr�r�r�rbr�r��
PhpVersion�VHuserr��
websitedomainr�rrG�	retStatusr��DataBaseName�DataBaseUserr�rU�stdoutrD�json_object�
configPath�file�	backupobj�websitepathrBr$r$r%r5�	s�





 
























�








 


























�



 

















�







��z#ApplicationInstaller.WPCreateBackupc_
Cs6�
z�ddl}ddlm}ddlm}ddlm}ddl}ddl}ddl}t	j
�tj
�r5t�d|jd�|jd|_t�|jd�|jd	}|jd
}	|jd}
|jd}tjj|	d�}|�|j�}
|
d
}|
d}|
d}|d}|
d}z|jj|
dd�}Wn|jjdd�}Y|j}tjj|
dd�}|j}|
d}|
d}|
d}t	j
�tj
�r�t�dt|
����|dk�rtjj|d�}|�|j�}|d}|d}|d}|d}t	j
�tj
�r�t�dt|����ddl} | ��}!|!�| � ��|!j!|||d �t	j
�tj
��rt�d!�d"}"|!�"|"�\}#}$}%t	j
�tj
��r(t�d#�d$}&d%}'d&|'��}"|!�"|"�\}#}$}%|$�#��$��%�}(t	j
�tj
��rQt�d'|(���d(|(�d)�})t�&|)d*d+�d,})t�&|)d*d+�d-})t�'|)d*d+�}*t	j
�tj
��r�t�d.|*���|!�(�}t�|jd/�d0|}+d1||f},t�d2�dd3l)m*}-|-�+�d4|&�d5t|-j,��d6|,�d7t-�.��d8|+��
})|!�"|)�\}#}$}%|$�#��$��%�}.|%�#��$��%�}/t	j
�tj
��r�t�d9|)���|/�r�t�d:|/���nt�d;|.���|�r�|�/�|!�r|!�/�d<|+})t�&|)�n�|d=k�r�|
d>}0|
d?}1tjj|d�}|�|j�}|d@}2|2dAk�r6|dB}3n|2dCk�r>dD}3n|2dEk�rEdF}3|dG}4|dH}5|j0�1�}6|6j2dI|3|4|5dJdK�}7d0|0}8z	|7�3|1|0|8�Wnt4�y�}9zt�dLt|9��WYd}9~9nd}9~9wwd<|8})t�&|)�t	j
�tj
��r�t�dM|���t-�5�tt6dNdO��}:dPdQ|:f|_7dR|j7��})t�'|)ddddS�\};}$|;dk�r�t4|$��dT||j7f})t�'|)ddddS�\};}$|;dk�r�t4|$��t	j
�tj
��r
t	j
�dU|����r
t�dVt|$����t�dWt|j7����t�|jdX�dY|j7})t�'|)ddddS�\};}$|;dk�r-t4|$��dZ|j7||j7f})t�'|)ddddS�\};}$|;dk�rJt4|$��t	j
�tj
��r�t�d[t|$����d\|j7�d]�})t�'|)ddddS�\};}$t	j
�tj
��r�t�d^t|$����|d_k�r�|
d`k�r�t8|jd	�dak�r�t9jj|d�}<|<j:j;}=|<j:j<}>|<j
}?|<j=}@ddbl>m?}Adc|<j:j@�dd�}B|A�A|B|<j:j@�}Cde|j7||f}Ddf|=|C|?|Df})t�'|)ddddS�\};}$|;dk�r�t4|$��t�|jdg�t�|jdh�di|C�dj�|=|?||@f})t�'|)ddddS�\};}$|$�Bdk�dak�rt4|$��di|C�dl�|=|?|@|@f})t�'|)ddddS�\};}$|$�Bdk�dak�r7t4|$��di|C�dm�|=|?|@|@f})t�'|)ddddS�\};}$|$�Bdk�dak�rZt4|$��dn|=�d6|C�do|?��})t�'|)ddddS�dp|j7��})t�'|)ddddS�\};}$|;dk�r�t4|$��ddqlCmD}E|E�E��	n|drk�r>|
d`k�r�t8|jd	�dak�r�t9jj|d�}<tFjj|<jGd�}Ft9jjH|Fds��I�}G|Gdk�r�dt|Fj@||�Bdu�d�f}Hz/t9jj|H|Fdv�}I|<j:j;}=|Ij:j<}>|Ij
}?|?}Jddbl>m?}Adc|<j:j@�dd�}B|A�A|B|<j:j@�}C|H}KWn$|<j=}K|<j
}J|<j:j;}=ddbl>m?}Adc|<j:j@�dd�}B|A�A|B|<j:j@�}CYdw|j7|f}Ldx|=|L|Jf})t�'|)ddddS�\};}$|;dk�rIt4|$��dy|=|L|Jf})t�'|)ddddS�\};}$|;dk�rdt4|$��dn|=�d6|C�do|J��})t�'|)ddddS�dp|j7��})t�'|)ddddS�\};}$|;dk�r�t4|$���n|
d`k�r<t8|jd	�dak�r<i}M|
dz|Md{<|
|Md|<d}|Md~<|
d|Md�<|
d�|Md�<|
d�|Md�<|
d�|Md�<|
d�|Md�<|
d�|Md�<||Md�<||Md�<z|
d�}N|N�Jdu�}O|Od�}Pd�}QWnt4�y}9zd�}QWYd}9~9nd}9~9ww|jd�d`k�r|
}@n	dP|
|jd�f}@|jd�|Md�<|jd�|Md�<|�}R|R�K||M�}S|�|SjL�}Tt�d�|T�|Td}U	tM|Ud���#�}Vt�d�|V�|V�Bd��dak�rZn"|V�Bd��dak�rnt�|jd�|V�WdSt�|jd��tN�Od���qCt�|jd��t9jj|@d��}W|Wj:j;}=|Wj:j<}>|Wj
}?|�P|>�}Xd�|X}Ct-�5�tt6dNdO��}:dPdQ|:f|_7dR|j7��})t�'|)ddddS�\};}$|;dk�r�t4|$��d�|Wj:j;�d8|Wj:j;�d6|j7��})t�'|)ddddS�\};}$|;dk�r�t4|$��t�|jd��d�|=||j7f})t�'|)ddddS�\};}$|;dk�rt4|$��d�|=|j7f})t�'|)ddddS�\};}$|;dk�r,t4|$��d�|=�d8|=�d6|j7�du|�d��	})t�'|)ddddS�\};}$|;dk�rPt4|$��d�|=|j7||j7f})t�'|)ddddS�\};}$|;dk�rnt4|$��t�|jd��|Qd�k�r�dw|j7|f}Lnd�|j7|f}Ldx|=|L|?f})t�'|)ddddS�\};}$|;dk�r�t4|$��dy|=|L|?f})t�'|)ddddS�\};}$|;dk�r�t4|$��t�|jdh�d�|=|?||@f})t�'|)ddddS�\};}$|$�Bdk�dak�r�t4|$��d�|=|?|@|@f})t�'|)ddddS�\};}$|$�Bdk�dak�rt4|$��dn|=�d�|?��})t�'|)ddddS�dp|j7��})t�'|)ddddS�\};}$|$�Bdk�dak�r2t4|$��ddqlCmD}E|E�E��no|
d`k�
r�t8|jd	�dak�
r�t9jj|d�}<tFjj|<jGd�}Ft9jjH|Fds��I�}G|Gdk�
r�dt|Fj@||�Bdu�d�f}Hz+t9jj|H|Fdv�}I|<j:j;}=|Ij
}?|?}J|H}Kddbl>m?}Adc|<j:j@�dd�}B|A�A|B|<j:j@�}CWn&|<j=}K|<j
}J|J}?|<j:j;}=ddbl>m?}Adc|<j:j@�dd�}B|A�A|B|<j:j@�}CYt	j
�tj
��r�t�d�|?���dn|=�d6|C�d��|?})t�'|)ddddS�\};}$|$�Bdk�dak�r�t4|$��|$�Qd��}Ydn|=�d6|C�d��|?})t�'|)ddddS�\};}$|$�Bdk�dak�	r#t4|$��|$�Qd��}Zdn|=�d6|C�d��|?})t�'|)ddddS�\};}$|$�Bdk�dak�	rJt4|$��|$�Qd��}[dw|j7|f}Ldx|=|L|Jf})t�'|)ddddS�\};}$|;dk�	rqt4|$��dy|=|L|Jf})t�'|)ddddS�\};}$|;dk�	r�t4|$��d�|Z�d�|J�d��})t�'|)|=dddS�\};}$|;dk�	r�t4|$��d�|Y�d�|J�d��})t�'|)|=dddS�\};}$|;dk�	r�t4|$��d�|[�d�|J�d��})t�'|)ddddS�\};}$|;dk�	r�t4|$��de|j7||f}\dn|=�d6|C�d��|?|\f})t�'|)ddddS�\};}$|;dk�
rt4|$��t�|jd��t�|jdh�dn|=�d6|C�d��|J||Kf})t�'|)ddddS�\};}$|$�Bdk�dak�
r?t4|$��dn|=�d6|C�dm�|J|K|Kf})t�'|)ddddS�\};}$|$�Bdk�dak�
rdt4|$��dn|=�d6|C�do|J��})t�'|)ddddS�t	j
�tj
��
s�dp|j7��})t�'|)ddddS�\};}$|;dk�
r�t4|$���n|
d`k�
r�t8|jd	�dak�
r�i}M|
dz|Md{<|
|Md|<d}|Md~<|
d|Md�<|
d�|Md�<|
d�|Md�<|
d�|Md�<|
d�|Md�<|
d�|Md�<||Md�<||Md�<d|Md�<z|
d�}N|N�Jdu�}O|Od�}Pd�}QWnt4�y}9zd�}QWYd}9~9nd}9~9ww|jd�d`k�r|
}@n	dP|
|jd�f}@|jd�|Md�<|jd�|Md�<|�}R|R�K||M�}S|�|SjL�}Tt�d�|T�|Td}U	tM|Ud���#�}Vt�d�|V�|V�Bd��dak�rfn"|V�Bd��dak�rzt�|jd�|V�WdSt�|jd��tN�Od���qOt�|jd��t9jj|@d��}W|Wj:j;}=|Wj:j<}>|Wj
}?dd�lRmS}]dc|Wj:j@�dd�}Bd�}^|^d�|
d��d��|B}^t�T|^�ddbl>m?}Adc|Wj:j@�dd�}B|A�A|B|Wj:j@�}Cd�|=|C|?f})t�'|)ddddS�\};}$|$�Bdk�dak�r�t4|$��|$�Qd��}Yd�|=|C|?f})t�'|)ddddS�\};}$|$�Bdk�dak�rt4|$��|$�Qd��}Zd�|=|C|?f})t�'|)ddddS�\};}$|$�Bdk�dak�r<t4|$��|$�Qd��}[t�|jd��|Qd�k�rUdw|j7|f}Lnd�|j7|f}Ldx|=|L|?f})t�'|)ddddS�\};}$|;dk�rwt4|$��dy|=|L|?f})t�'|)ddddS�\};}$|;dk�r�t4|$��d�|=|C|Y|?f})t�'|)ddddS�\};}$|$�Bdk�dak�r�t4|$��d�|=|C|Z|?f})t�'|)ddddS�\};}$|$�Bdk�dak�r�t4|$��d�|=|C|[|?f})t�'|)ddddS�\};}$|$�Bdk�dak�r�t4|$��de|j7||f}\t�|jdád�|=|C|?|\f})t�'|)ddddS�\};}$|$�Bdk�dak�
rt4|$��t�|jdh�di|C�dj�|=|?||@f})t�'|)ddddS�\};}$|$�Bdk�dak�
rGt4|$��di|C�dm�|=|?|@|@f})t�'|)ddddS�\};}$|$�Bdk�dak�
rjt4|$��dn|=�d6|C�do|?��})t�'|)ddddS�t	j
�tj
��
s�dp|j7��})t�'|)ddddS�\};}$|$�Bdk�dak�
r�t4|$��ddqlCmD}E|E�E�t	j
�tj
��
s�|dk�
s�|d=k�
r�d�|+��})t�&|)�t�|jdơWdSt4�y}9z;t�d�t|9��zt	j
�tj
��
s�dp|j7��})t�&|)�WnYt�|jt|9��dȝ�dt|9�fWYd}9~9Sd}9~9ww)�Nrrr�)�Packagez&Restore WP backup Now ....... start:%s�DomainrzRestoring backup...,10�	DesSiteID�backupidr`rar�r�r�z.sqlr�r�r?)�packageNamer�r�r�r�zStarting sftp download �SFTP�Hostname�Username�Password�PathzMaking sftp connection to )r[r\�SFTP Connected successfully..�=ssh-keygen -t rsa -b 2048 -f ~/.ssh/cyberpanelbackup -q -N ''�SSH key generated..�~/.ssh/cyberpanelbackup�~/.ssh/cyberpanelbackup.pubr��Key from remote server �echo "�" >> ~/.ssh/authorized_keysrHT�Qawk '!seen[$0]++' ~/.ssh/authorized_keys > temp && mv temp ~/.ssh/authorized_keys�cat ~/.ssh/authorized_keys�'Updated content of authorized key file �Downloading Backups...,15z/home/cyberpanel/%s.tar.gzz%s/%s.tar.gz�Downloading start��	SSHServer�#scp -o StrictHostKeyChecking=no -i � -P r� root@r~� Command used to retrieve backup �(Error in scp command to retrieve backup �*Success in scp command to retrieve backup zmv %s /home/backup/�S3�uploadfilename�
BucketName�Provider�	Backblaze�EndUrl�Amazonz"https://s3.us-east-1.amazonaws.com�Wasabizhttps://s3.wasabisys.com�	AccessKey�	SecertKey�s3F)�endpoint_url�aws_access_key_id�aws_secret_access_key�verifyzError in downloadfile: ..%sz
Backup type: r=r>r�r�rsrPzcp -R /home/backup/%s* %sr�z&Backup file is present and downloaded zExtracting to  zExtracting Backup File...,30zmkdir %s/abz$sudo tar -xvf  %s/%s.tar.gz -C %s/abzOutput of archive zls -lh z/abzListing files r�rgrOrarcrdz!%s/ab/usr/local/CyberCP/tmp/%s/%sz�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp --allow-root --skip-plugins --skip-themes --path=%s --quiet db import %szRestoreing Data Base...,70zReplacing URLs...,90zsudo -u %s z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp search-replace --skip-plugins --skip-themes --path=%s "%s" "%s"r�z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp search-replace --skip-plugins --skip-themes --path=%s "https://%s" "http://%s"z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp search-replace --skip-plugins --skip-themes --allow-root --path=%s "https://www.%s" "http://%s"r�zl -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp litespeed-purge all --path=rtrr�)rCz%s%srk)rmrCz+%s/ab/usr/local/CyberCP/tmp/%s/public_html/zsudo -u %s cp -R %s* %szsudo -u %s cp -R %s.[^.]* %sr�r@riz6.0rr�r�r��Emailr��PasswordByPassr��AutomaticUpdatesr�rkr�rlr�r�r�r�rjr�rJrZz WP Creating website result....%sr�z%Error WP creating lastline ....... %sr�r�z,Failed to Create WordPress: error: %s. [404]zCreating WordPress....,20rhzRestoring site ....,30)rmr�r#zExtracting Backup File...,40z$sudo -u %s cp -R /home/backup/%s* %szsudo -u %s mkdir %s/abr}r�z*sudo -u %s tar -xvf  %s/%s.tar.gz -C %s/abzCopying Data File...,60z7%s/ab/usr/local/CyberCP/tmp/%s/public_html/public_html/z�sudo -u %s /usr/local/lsws/lsphp74/bin/php -d error_reporting=0 /usr/bin/wp search-replace --skip-plugins --skip-themes --path=%s "%s" "%s"z�sudo -u %s /usr/local/lsws/lsphp74/bin/php -d error_reporting=0 /usr/bin/wp search-replace --skip-plugins --skip-themes --allow-root --path=%s "https://www.%s" "http://%s"z] /usr/local/lsws/lsphp74/bin/php -d error_reporting=0 /usr/bin/wp litespeed-purge all --path=z$WP Path where things are happening: z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_NAME  --skip-plugins --skip-themes --path=%sr�z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_USER  --skip-plugins --skip-themes --path=%sz� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_PASSWORD  --skip-plugins --skip-themes --path=%sz9sed -i "s/define( 'DB_USER', '.*' );/define( 'DB_USER', 'z' );/" z
wp-config.phpz9sed -i "s/define( 'DB_NAME', '.*' );/define( 'DB_NAME', 'zAsed -i "s/define( 'DB_PASSWORD', '.*' );/define( 'DB_PASSWORD', 'z� -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp --allow-root --skip-plugins --skip-themes --path=%s --quiet db import %szRestoring Database...,70za -d error_reporting=0 /usr/bin/wp search-replace --skip-plugins --skip-themes --path=%s "%s" "%s"r_)�vhostzQ/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/virtualHostUtilities.pyz changePHP --phpVersion 'r�z
'  --path z�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_NAME  --skip-plugins --skip-themes --path=%sz�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_USER  --skip-plugins --skip-themes --path=%sz�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config get DB_PASSWORD  --skip-plugins --skip-themes --path=%sz�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config set DB_NAME %s --skip-plugins --skip-themes --path=%sz�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config set DB_USER %s --skip-plugins --skip-themes --path=%sz�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp config set DB_PASSWORD %s --skip-plugins --skip-themes --path=%szRestoring Data Base...,80z�sudo -u %s %s -d error_reporting=0 -d memory_limit=350M -d max_execution_time=400 /usr/bin/wp --skip-plugins --skip-themes --path=%s db import %szrm -rf /home/backup/r�z#Error RestoreWPbackupNow ....... %sr�)Ur�r�rr�r��packages.modelsr��pysftp�boto3rIrJrKrrr?r@r!rr�rr�r�r�rDr�rrArAr�paramiko�	SSHClient�set_missing_host_key_policy�
AutoAddPolicyr/�exec_commandr�r��striprFrQ�	open_sftp�WebTerminal.CPWebSocketr�findSSHPort�DEFAULT_PORTr�fetchIPr�r��Session�client�
download_filer>r�rr�r�rrCr�r�rmr�rbrir�rRr�rr�rr�r�r��split�submitWorpressCreationr�r�r�r�r�r��plogical.vhostr)�popenExecutioner)_r#r�rr�r�r+�sftpr,r�r��
DomainNamer�r�rD�BackUpFileName�oldtemppath�DatabaseNameold�DumpFileName�oldurl�packgobj�packegs�WebOwnerobj�WebOwner�
BackupTyper��RemoteBackupID�RemoteBackupOBJ�RemoteBackupconf�HostNamer�rrr-�ssh�ssh_keygen_command�stdinr��stderr�remote_private_key�remote_public_key�public_key_contentrG�updatedAuth�	loaclpath�
remotepathr�
successRet�errorRetrr�provider�EndURlrr r�r9�FinalZipPathrBr�rUr�r�r��	newWPpath�newurlrbr�r�unzippathdbrr|�ag�finalurl�WPobj�WPpath�Newurl�	unzippathrs�oldpath�abc�newpath�oldhomerurvrwrxry�	NewWPsiter��Finaldbname�Finaldbuser�
Finaldbpasswd�
unzippath2r)rr$r$r%r6�s�








,
n




���
V





#�

�
�
�
�

3


�
���
�


 


 
�

�

���
�
�
�





���
����
�
���
�
�
�
�

�

����
�
�


���z'ApplicationInstaller.RestoreWPbackupNowcCs8||d}t|jd�}|�t|��d��|��dS)N�dr^z/% of file is downloaded from remote server..,50)r�rr�r�r�)r#�transferred�total�
percentager�r$r$r%�UpdateDownloadStatus�sz)ApplicationInstaller.UpdateDownloadStatusc#
Cs>�z�|jd}|jd}|jd}|jd}|jd}||_t|d�}|�d�|��dd	lm}|jj|d
�}t	jj|j
d�}	t�|	j
�d}
t��}|�t���d
}t�d|����d�}
t|
�}tj�|�}|j|
|j
|d�tj�tj�r�t�d�d}|�|�\}}}tj�tj�r�t�d�d}d}d|��}|�|�\}}}|� ��!��"�}t#|�dkr�t|d�}|�d�|��WdStj�tj�r�t�d|���d|�d�}t�$|dd�d}t�$|dd�d}t�|dd�}tj�tj��rt�d|���|�%�}t�&|jd �d!|��}d"|�d#|��}t�d$�dd%l'm(}|�)�d&|�d't*|j+��d(|�d)t,�-��d*|��
}|�|�\}}}|� ��!��"�}|� ��!��"�}tj�tj��r�t�d+|���|�r�t�d,|���t|d�}|�d,|�d-��|��z|jd"|�d#|��d!|��|j.d.�Wn<t/�y�}z't�d/t*|��d0��t|d�}|�d/t*|��d0��|��WYd}~WdSd}~wwt�d1|���|�r�|��|�r�|��tj�d2��s�d3}t�$|�d4|�d5|��}t�$|�dd6l0m1} | �}!|!�2d7|i|�}"t|d�}|�d8�|��t3�4d9�t�|"j5�d:dk�rTt|d�}|�d;t�|"j5�d<�d=��|��d>|��}t�$|�WdStj�tj��rdt�d?|���	|!�6d7|i�}"t�|"j5�}"tj�tj��r�t�d@t*|"����|"dAdBk�r�|"dCdDk�r�t|d�}|�dE�|��d>|��}t�$|�WdS|"dAdBk�r�|"dCdFk�r�t|d�}|�d;t*|"dG��d=��|��d>|��}t�$|�WdSt|d�}|�|"dG�dH��|��t3�4dI��qet/�y}zt|jd�}|�t*|�d0�|��WYd}~dSd}~ww)JNr��folder�
backupfilerr�r^zDownload started..,30r)�OneClickBackupsra)r��ipz/root/.ssh/cyberpanelr�r�)r[�pkeyrrrrr�
z*Failed to get content of public key. [404]rrr	rHTr
rrr
r<z
cpbackups/rkrrrrrrr~rr�.)�callbackzFailed to download file r�rz/home/backupzmkdir /home/backupzmv /home/cyberpanel/z /home/backup/)�
BackupManager�
backupFilezDownload finished..,60��
restoreStatusz Failed to restore backup. Error �
error_messager�zrm -f /home/backup/z(Name of  of the backup file downloaded: zResponce from status function: �abortrP�running�	CompletedzSuccessfully Restored. [200]�Errorrdz,60rx)7r!rr�r�r��IncBackups.modelsrwr�r�r�sftpUserr�r�rDr-r.r/r0rrQr�r�RSAKey�from_private_keyr/rIrJrKrr?r@r1r�r�r2r�rFr3r�r4rr5rAr6rr7rtr>�backup.backupManagerr}�
submitRestorer�r�r�r�)#r#r�rurvrr�r�rw�ocb�nbdrxrO�private_key_path�key_content�key_file�keyrPrQr�rRrSrTrUrGrVr?rWrXrrYrZrBr}r�r�r$r$r%r8�s













,

�
��












�



���z#ApplicationInstaller.StartOCRestore)N)&�__name__�
__module__�__qualname__r�r�r��
MauticVersion�
PrestaVersionrrCr7�staticmethodrMrWr=r+r*r�r�r�r�r9r;r:rQrZr-r.r/r0r1r2r3r4r5r6rtr8r$r$r$r%r#s�-
,z+R

/_DZk"!^c}p	rcCs�tjdd�}|jddd�|jddd�|jddd�|jd	dd�|jd
dd�|jddd�|jddd�|jd
dd�|jddd�|jddd�|jddd�|jddd�|jddd�|jddd�|��}|jdkr�i}|j|d<|j|d<|j|d<|j|d<|j	|d<|j
|d<|j|d<|j|d<|j
|d<|j|d<|j|d<t|j�|d <|jdkr�|j|d!<d"|d#<nd$|d#<td|�}|��dSdS)%Nz CyberPanel Application Installer)�description�functionzSpecify a function to call!)�helpz--tempStatusPathrgz	--appsSetz--domainz--emailz
--passwordz--pluginUpdatesz--themeUpdatesz--titlez	--updatesz
--userNamez	--versionz--pathz--createSiterQrirr
r]r\�
pluginUpdates�themeUpdatesr@rrA�versionr;rJrjrZr�)�argparse�ArgumentParser�add_argument�
parse_argsr�rirr
r]r\r�r�r@rrAr�r�r;rJrrQ)�parser�argsr!�air$r$r%�mainzsJ















�r��__main__)7r�r�rI�sys�shutilr��iorr-�ApachController.ApacheVhostsr�loginSystem.modelsrr�r�plogical.aclrrJrr�django�environ�
setdefault�setup�	threadingr�plogical.CyberCPLogFileWriterr	r?rrJr
rrr
rrrr�plogicalr�plogical.mysqlUtilitiesr�databases.modelsrr�r�plogical.processUtilitiesr�randomrr(rrr�r�r$r$r$r%�<module>s�(-
�

Youez - 2016 - github.com/yon3zu
LinuXploit