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: //usr/local/CyberCP/plogical/__pycache__/mysqlUtilities.cpython-310.pyc
o

��h֥�@s&ddlZddlZddlZddlZddlmZej�d�ddlZej	�
dd�ze��WnYddlm
ZddlZddlZzddlmZddlmZdd	lmZWnYddlZddlZdd
lmZddlmZddlmZddl m!Z!ddl"Z"Gd
d�d�Z#dd�Z$e%dkr�e$�dSdS)�N)�unquotez/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�CyberCPLogFileWriter)�Websites)�	Databases)�DBUsers)�randint)�ProcessUtilities)�ceilc@s~eZdZdZdZdZedd��Zedd��Zedd	��Z	ed@dd
��Z
edd��Zedd��Zedd��Z
edAdd��ZedBdd��Zedd��Zedd��Zedd��Zedd��Zed d!��Zed"d#��Zed$d%��Zed&d'��Zed(d)��Zed*d+��Zed,d-��Zed.d/��Zed0d1��ZedCd2d3��Zed4d5��Zed6d7��Zed8d9��Z edDd:d;��Z!ed<d=��Z"ed>d?��Z#dS)E�mysqlUtilities�	localhostr�cCslt|�t|�}g}d}|dkrd}|�|�|St|�}t|�d}td|�D]}|�|�|d}q(|S)N�g�?)�float�appendr
�int�range)�records�toShow�pages�
pagination�counter�
finalPages�i�r�-/usr/local/CyberCP/plogical/mysqlUtilities.py�
getPagination$s
	�

zmysqlUtilities.getPaginationcCs|||}||}||fS)Nr)�pager�finalPageNumber�
endPageNumberrrr�recordsPointer8szmysqlUtilities.recordsPointerc
Cs�z�d}zct�t|d����}|d}|d}|d}|d}|t_|�d�dkr+d	t_d
}t|�}|��}|�dd	�d}	|	t_	t
j�t
j�rPtj�d
tj	�tj|||t|�tjd�}
|
��}|
|fWWSty�}zAt
j�t
j�rtj�dt|��t|�}|��}
|
�dd	�d}|�d��d�}tjd|tjd�}
|
��}|
|fWYd}~WSd}~wwty�}ztj�t|��WYd}~dSd}~ww)N�/etc/cyberpanel/mysqlPassword�r�	mysqluser�
mysqlpassword�	mysqlport�	mysqlhostz
rds.amazon���r�/etc/cyberpanel/machineIP�
rzLocal IP for MySQL: %s)�host�user�passwd�port�cursorclassz%s. [setupConnection:75]�
�root)r+r,r.)rr)�json�loads�open�readr�
REMOTEHOST�find�RDS�split�	LOCALHOST�os�path�existsr	�	debugPath�loggingr�writeToFile�mysql�connectr�cursors�SSCursor�cursor�
BaseException�str�strip)�passFile�jsonDatar#r$r%r&�ipFile�f�ipData�ipAddressLocal�connrD�msg�data�passwordrrr�setupConnection>sL����zmysqlUtilities.setupConnectionrNc

Cs�z�t��\}}|dkrWdS|dkrtj}n|}|r0d|}tj�tj�r+tj	�
|�|�|�tj�
d�dkr@d|||f}nd|d||d	}tj�tj�rYtj	�
|�|�|�tjdkr�|�d
|d|d|�tj�tj�r�tj	�
d
|d|d|�n&|�d
|d|d|�tj�tj�r�tj	�
d
|d|d|�|��WdSty�}	z"|r�tj�tj�r�tj	�
d|�tj	�
t|	�d�WYd}	~	dSd}	~	ww)NrrzCREATE DATABASE %s�ondigitaloceanr'zCCREATE USER '%s'@'%s' IDENTIFIED WITH mysql_native_password BY '%s'�
CREATE USER '�'@'%s' IDENTIFIED BY '�'�GRANT ALL PRIVILEGES ON �.* TO '�'@'%s'�DGRANT INDEX, DROP, UPDATE, ALTER, CREATE, SELECT, INSERT, DELETE ON z-Deleting database because failed to create %s�[createDatabase])rrRr9r:r;r<r	r=r>rr?�executer5r6r7�closerErF)
�dbname�dbuser�
dbpassword�dbcreater*�
connectionrD�	HostToUse�queryrOrrr�createDatabasets\
����

 �� ��zmysqlUtilities.createDatabasec
Cs�z't��\}}|dkrWdS|�d|�|�d|dtj|d�WdStyD}ztj�t|�d�WYd}~dSd}~ww)NrzCREATE DATABASE rTrUrVrz[createDBUser])	rrRr\r9rEr>rr?rF)r_r`rbrDrOrrr�createDBUser�s ��zmysqlUtilities.createDBUserc
Cs�z:t��\}}|dkrWdStjdkr$|�d|d|dtj�n|�d|d|dtj�|��WdStyW}ztj�	t
|�d�WYd}~dSd}~ww)NrrWrXrYrZrr[)rrRr7r\r9r]rEr>rr?rF)�
globalUser�dbNamerbrDrOrrr�allowGlobalUserAccess�s 
"���z$mysqlUtilities.allowGlobalUserAccessc	
Cs�zGd|}d|}t�|�t��\}}|dkrWdS|�d|�|�d|�|��}|D]}|�d|dd|d�q/|��WdStyg}ztj	�
t|�d	�t|�WYd}~Sd}~ww)
Nz/var/lib/mysql/%s/.gitz	rm -rf %srzDROP DATABASE `%s`z,select user,host from mysql.db where db='%s'zDROP USER 'rYr�[deleteDatabase])r	�executionerrrRr\�fetchallr]rEr>rr?rF)	r^r_�dbPath�commandrbrD�
databaseUsers�databaseUserrOrrr�deleteDatabase�s&
 ��zmysqlUtilities.deleteDatabasecCs��z3d}zt�t|d����}|d}|d}|d}	|d}
|}Wnd}t|�}|��}
|
�dd�d	}d
}
d}	d}Yd
}tj�|�sad||f}t|d�}|�|�|�	�t�
|d�d}|d	kr�d|d|d}t�|�d||
|	|f}t
�|�}t|d|dd��7}tj||tj|d�}|jd	kr�tj�d|d�tj�|j�d��	Wd�Wd	SWd�WdS1s�wYWdSd}d|�d|
�d|	�d|�d|�d |�d!|�d"�}tj�tj�r�tj�|�t�t�|dd��d��}z|d#}|d$d%}|d$d&}d|fWWSt�y4}z
d	t|�fWYd}~WSd}~wwt�yR}ztj�t|�d'�WYd}~d	Sd}~ww)(Nr!r"r#r$r%r&r)rrr�3306r0�/home/cyberpanel/.my.cnf�Y[mysqldump]
user=root
password=%s
max_allowed_packet=1024M
[mysql]
user=root
password=%s
�w�Fzrm -f �/�.sqlzOmysqldump --defaults-file=/home/cyberpanel/.my.cnf -u %s --host=%s --port %s %s)�stdout�stderr�shellz
Database: z/ could not be backed up! [createDatabaseBackup]zutf-8Tz6mysqldump --defaults-file=/home/cyberpanel/.my.cnf -u z --host=z --port zS --add-drop-table --allow-keywords --complete-insert --quote-names --skip-comments z 2>/dev/null | sudo -u � rustic -r z backup --stdin-filename z'.sql - --password "" --json 2>/dev/null�id�summary�	files_new�total_durationz[createDatabaseBackup])r1r2r3r4r8r:r;r<�writer]�chmodr	rk�shlex�
subprocess�run�PIPE�
returncoder>rr?rz�decoder=�outputExecutioner�rstriprErF)�databaseName�tempStoragePath�rustic�RusticRepoName�externalApprHrIr#r$r%r&rQrKrP�cnfPath�
cnfContentr?�SHELLrn�cmd�result�
SnapShotIDrr�rOrrr�createDatabaseBackup�s��



�

��

�)�)�0�����z#mysqlUtilities.createDatabaseBackupc	
Cs�zad}	zt�t|	d����}
|
d}|
d}|
d}
|
d}|}Wnd}	t|	�}|��}|�dd�d	}d
}d}
d}Yd
}tj�|�smd||f}t|d�}|�|�|�	�t�
|d�d|}t�t
�|��|d	k�r-d|||
|f}tj�tj�r�tj�|�d|�d|�d��t
�|�}|dkr�t|d|dd��}tj||d�}Wd�n1s�wY|d	kr�tj�d|d�Wd	Sn4t|d|dd��}tj||d�}Wd�n1s�wY|d	k�rtj�d|d�Wd	S|dk�r*t��\}}|d	k�rWd	Sd|dtj|d}|�|�|�	�WdSd|�d|�d|�d|�d �	|||
|f}tj�tj��rYtj�|�d|�d|�d��t�|dd!�WdSt�y�}ztj�t|�d"�WYd}~d	Sd}~ww)#Nr!r"r#r$r%r&r)rrrrrr0rsrtrurvzchown cyberpanel:cyberpanel %szKmysql --defaults-file=/home/cyberpanel/.my.cnf -u %s --host=%s --port %s %s� rwrx)�stdinz"Could not restore MYSQL database: z! [restoreDatabaseBackup]zuse mysql;SET PASSWORD FOR '�
'@'%s' = 'z';FLUSH PRIVILEGES;zsudo -u r|z dump �:zm.sql --password "" 2>/dev/null | mysql --defaults--file=/home/cyberpanel/.my.cnf -u %s --host=%s --port %s %sTz[restoreDatabaseBackup])r1r2r3r4r8r:r;r<r�r]r�r��callr�r	r=r>rr?rrRr9r\r�rErF)r�r��
dbPassword�
passwordCheck�additionalNamer�r�r��
snapshotidrHrIr#r$r%r&rQrKrPr�r�r?rnr��resrbrD�passwordCMDrOrrr�restoreDatabaseBackuprs��



���



���z$mysqlUtilities.restoreDatabaseBackupc
Cszbt|�dks
t|�dkrtd��tjj|d�}|jjdkrn|jj|j���	�kr+ntd��t
jj|d���sAt
jj|d���rEtd��t
�|||�}|d	krQnt|��t
|||d
�}|��WdSty�}ztj�t|��dt|�fWYd}~Sd}~ww)N� z=Length of Database name or Database user should be 32 at max.��domainrz0Maximum database limit reached for this website.�rh)�dbUserz'This database or user is already taken.r)�websiterhr��r�None)�lenrEr�objects�get�package�	dataBases�
databases_set�all�countr�filterr<rre�saver>rr?rF)rh�
dbUsernamer��databaseWebsiter�r��dbrOrrr�submitDBCreation�s.$��zmysqlUtilities.submitDBCreationc
Cs�z(tjj|d�}t�||j�}|dkr|��WdS|��tj�	d|�WdSt
yH}ztj�	t|��dt|�fWYd}~Sd}~ww)Nr�rr�z,Deleted database with some errors. Error: %sr)rr�r�rrqr��deleter>rr?rErF)rh�databaseToBeDeletedr�rOrrr�submitDBDeletion�s��zmysqlUtilities.submitDBDeletioncCs(z
tjj|d�}|j��WSYdS)Nr�)rr�r�r�r�)�virtualHostNamer�rrr�getDatabases�s
zmysqlUtilities.getDatabasesc
Cs�z�t��\}}|dkrWdS|�d�|��}i}d|d<|D]+}|ddkr1t�|d�|d<q|ddkr>|d|d<q|dd	krJ|d|d	<q|�d
�|��}d}d}|D]a}tt|d��dkrid}n|d}tt|d
��dkrzd}n|d
}tt|d��dkr�d}	n|d}	|d|d||d|d||	|dd�}
|dkr�|t�|
�}d}qZ|dt�|
�}qZ|d}||d<|WSt	y�}zt
j�t|�d�WYd}~dSd}~ww)NrzSHOW GLOBAL STATUSr�status�Uptime�uptime�Connections�connections�Slow_querieszshow processlist�[�NULL��r
���)r}r+�databasern�time�state�info�progress�,�]�	processes�[showStatus])
rrRr\rl�GetTimer�rFr1�dumpsrEr>rr?)rbrDr�rP�items�	json_data�checkerr�r�r��dicrOrrr�
showStatussf
�
���zmysqlUtilities.showStatuscCsLt|�}|d}|d}|d}|d;}|d}|d;}|}d||||fS)Ni�Qi�<z%d:%d:%d:%d)r)�secondsr��day�hour�minutesrrrr�RszmysqlUtilities.GetTimec
Cs`ztt��tjkst��tjkr"d}tj�|d�}|�dd�|d<nd}tj�|d�}|�dd�|d<t�|�dt	t
dd��}t|d	�}|�|d�|�
�t��tjks`t��tjkrgd
|d}nd
|d}t�|�Wd
Sty�}z/t��tjks�t��tjkr�d}nd}t�t�|��tj�t	|��dt	|�fWYd}~Sd}~ww)Nz#sudo mv /etc/my.cnf /etc/my.cnf.bak�suggestedContentz/var/lib/mysql/mysql.sockz/var/run/mysqld/mysqld.sockz/sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bakz/home/cyberpanel/i�i'ruzsudo mv z /etc/my.cnfz /etc/mysql/my.cnf�rN�#sudo mv /etc/my.cnf.bak /etc/my.cnfz0sudo mv /etc/mysql/my.cnf.bak /etc/mysql//my.cnfr)r	�decideDistro�centos�cent8�urllib�parser�replacerkrFrr3r�r]rEr�r�r�r8r>rr?)rPrn�decoded_content�tempPathr?rOrrr�applyMySQLChanges_s:
�


��z mysqlUtilities.applyMySQLChangesc
Cs�z&t��\}}|dkrWdS|�d�|��}|D]
}tj�t|��qWdStyC}ztj�t|�d�WYd}~dSd}~ww)NrzSHOW VARIABLESr�)	rrRr\rlr>rr?rFrE)rbrDr�r�rOrrr�fetchVariables�s
���zmysqlUtilities.fetchVariablesc
Csjz
d}t�|�WdSty4}zd}t�t�|��tj�	t
|��dt
|�fWYd}~Sd}~ww)Nzsudo systemctl restart mariadbr�r�r)r	rkrEr�r�r�r8r>rr?rF)rnrOrrr�restartMySQL�s
��zmysqlUtilities.restartMySQLc

Cs
zgt��\}}|dkrWdSi}d|d<|�d�|��}d}d}d}|D]7}|ddks9|ddks9|ddkr:q%||dd	�}|d}|dkrS|t�|�}d}q%|d
t�|�}q%|d}||d<|WSty�}	ztj�	t
|	�d
�WYd}	~	dSd}	~	ww)Nrrr�zSHOW DATABASESr��information_schemar@�performance_schema)r}r�r�r��	databases�[fetchDatabases]�rrRr\rlr1r�rEr>rr?rF)
rbrDrPr�rr�r�r�r�rOrrr�fetchDatabases�s<
$���zmysqlUtilities.fetchDatabasesc
Cszkt��\}}|dkrWdSi}d|d<|�d|d�|�d�|��}d}d}d}|D]2}|d|d|d|d	|d
|dd�}	|d}|dkrW|t�|	�}d}q.|d
t�|	�}q.|d}||d<|WSty�}
ztj�	t
|
�d�WYd}
~
dSd}
~
ww)Nrrr��use r�zSHOW TABLE STATUSr���r��)�Name�Engine�Version�	rowFormat�rows�	Collationr�r��tablesr�r�)�namerbrDrPr�rr�r�r�r�rOrrr�fetchTables�sB
���zmysqlUtilities.fetchTablesc
Cs�z(t��\}}|dkrWdSi}d|d<|�d|d�|�d|d�|WStyE}ztj�t|�d�WYd}~dSd}~ww)	Nrrr�r�r�zDROP TABLE �	tableNamer�)rrRr\rEr>rr?rF)r�rbrDrPrOrrr�deleteTable	s��zmysqlUtilities.deleteTablec

Cs�z�t��\}}|dkrWdSt|d�}t|d�}i}d|d<|�d|d�|�d|d	�|��dd}|�d
|d	�|��}d|d<|D]}|dd
|dd|d<qM|dd|d<|dd|d<t�||�|d<t�||�\}	}
|�d|d	�|��}||
|	�D]%}|dd|d<|D]}|ddt|�d|d<q�|dd|d<q�|dd|d<|WSty�}zt	j
�t|�d�WYd}~dSd}~ww)Nr�
recordsToShow�currentPagerr�r�r�zselect count(*) from r�desc z<thead><tr>�completeDataz<th>z</th>z
</tr></thead>z<tbody>rzselect * from z<tr>z<td>z</td>z</tr>z</tbody>z[fetchTableData])rrRrr\rlrr rFrEr>rr?)
r�rbrDrrrPr�r�r�rr�itrOrrr�fetchTableDatasD��zmysqlUtilities.fetchTableDatac

Cszit��\}}|dkrWdS|�d|d�|�d|d�|��}i}d|d<d}d}|D].}|d|d|d	|d
|d|dd
�}|dkrU|t�|�}d}q0|dt�|�}q0|d}||d<|WSty�}	ztj�	t
|	�d�WYd}	~	dSd}	~	ww)Nrr�r�rrrr�r�r�r�r�r�)r��Type�Null�Key�Default�Extrar�r��columnsr�r�)
r�rbrDr�rPr�r�r�r�rOrrr�fetchStructureZs>�	��zmysqlUtilities.fetchStructurec

Cszqt��\}}|dkrWdS|�d�|dkr|}ntj}|dkrMztjj|d�}d|d||d}Wn"t�|�}d|d||d}Ynd|d||d}tj	�
tj�rft
j�|�|�|�|��Wd	Sty�}	zt
j�t|	�d
�WYd}	~	dSd}	~	ww)Nr�	use mysql)r+zSET PASSWORD FOR 'z'@'%s' = PASSWORD('z')r�rVrz[mysqlUtilities.changePassword])rrRr\r9rr�r��	fetchuserr:r;r<r	r=r>rr?r]rErF)
�userNamer��encryptr*rbrDr9r_rdrOrrr�changePassword�s4


��zmysqlUtilities.changePasswordc

Cszpt��\}}|�d�tjj|d�}|�dd�}d|}|dkr$WdS|�|�|��}d}|D]8}|d�d�dkre|d|_	|�
�z|��WnYd|d|f}tj
�|�|dWS|d	}q1|��Wd	Sty�}	ztj
�t|	�d
�WYd}	~	dSd}	~	ww)Nrr��_z\_z#select user from db where db = '%s'rr'z.Detected databaser user is %s for database %s.rz[mysqlUtilities.fetchuser])rrRr\rr�r�r�rlr6r�r�r]r>rr?rErF)
r�rbrDr�rdr�r�row�messagerOrrrr�s<



��zmysqlUtilities.fetchuserc
CsPz
d}t�|�WdSty'}ztj�t|�d�WYd}~dSd}~ww)Nz]/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/mysqlUtilities.py enableRemoteMYSQLrz"[mysqlUtilities.allowRemoteAccess]r)r	rkrEr>rr?rF)rhr�remoteIP�execPathrOrrr�allowRemoteAccess�s
��z mysqlUtilities.allowRemoteAccessc

Cs�z`t��tjkst��tjkrd}nd}t|d���}|�d�r'td�WdSd}t|�}|��}|�dd�d	}d
|}t|d�}|�	|�|�
�td�d	dlm}|d
�t�
d�WdSty{}	ztdt|	��WYd}	~	d	Sd}	~	ww)Nz/etc/mysql/my.cnf�/etc/my.cnfr"zbind-addressz1,Nonerr(r)rz
[mysqld] 
bind-address=%s
�a)�sleepr�zsystemctl restart mariadbz(0,%s "[mysqlUtilities.enableRemoteMYSQL])r	r��ubuntu20�ubuntur3r4r6�printr8r�r]r�r�popenExecutionerrErF)
r�rPrJrKrLrM�
mysqldContentr?rrOrrr�enableRemoteMYSQL�s8
�


��z mysqlUtilities.enableRemoteMYSQLc
Cs�z�t��\}}|dkrWdS|r�z|�d|dtj|d�WWdSty�}zStj�dt|��z|�d|tjf�|�d|dtj|d�Wntyn}ztj�dt|��WYd}~n
d}~wwWYd}~WdSWYd}~WdSd}~wwtj	dkr�|�d|d	|d
tj�n/z|�d|d	|d
tj�Wnty�}ztj�dt|��WYd}~nd}~ww|�
�Wd
Sty�}ztj�t|�d�WYd}~dSd}~ww)NrrTrUrVz%s [addUserToDB:937]zDROP USER '%s'@'%s'z%s [addUserToDB:943]rWrXrYrZz%s [addUserToDB:953]rz
[addUserToDB])rrRr\r9rEr>rr?rFr7r])r�r+rQ�
createUserrbrDrOrrr�addUserToDBs\��� ��
�
���
�� ����zmysqlUtilities.addUserToDBc
Cs�z"t��\}}|dkrWdS|�d|�|�d|�|��WdStyB}ztj�t|�d�t|�WYd}~Sd}~ww)Nrzuse %szGUPDATE `wp_users` SET `user_pass`= MD5('%s') WHERE `user_login`='usman'rrj)	rrRr\r]rEr>rr?rF)r^rQrbrDrOrrr�UpdateWPTempPassword9s��z#mysqlUtilities.UpdateWPTempPasswordcCsjd}t�|�}|�|�dkr#td|�d��tj�|d|�d��dStj�|d�d}ddlm}|�dkr@tj�|d	�d
Stj	�
|�sTd}t�|�tj�|d�t��tj
ksbt��tjkr�d
}d}d|�d|��}t�|�d}t�|dd�d}t�|dd�d}t�|dd�d}t�|dd�d}d|�d|�d|�d�}	t|d�}
|
�|	�|
��d}t�|dd�d}t�|dd�nfd}d}d|�d|��}t�|�tj	�
d �r�t�d |�d!��d"}t�|dd�d#}d$|�d%�}	t|d�}
|
�|	�|
��d&}t�|dd�}t|�d'}t�|dd�}t|�d(}t�|dd�}t|�tj�|d)�dS)*Nzmysql --versionr'zMySQL is already z. [200]rzCreating backup of MySQL..,10z/var/lib/mysql-backupcp)�getuidz'This function should run as root. [404])rz!This function should run as root.z2rsync -av /var/lib/mysql/ /var/lib/mysql-backupcp/zMySQL backup created..,20z/etc/mysql/ z/etc/cnfbackup/z
rsync -av r�z]sudo apt-get remove --purge mariadb-server mariadb-client galera -y && sudo apt autoremove -yr0Tz+apt-get install apt-transport-https curl -yzmkdir -p /etc/apt/keyrings zccurl -o /etc/apt/keyrings/mariadb-keyring.pgp 'https://mariadb.org/mariadb_release_signing_key.pgp'z'/etc/apt/sources.list.d/mariadb.sourcesz
# MariaDB a repository list - created 2023-12-11 07:53 UTC
# https://mariadb.org/download/
X-Repolib-Name: MariaDB
Types: deb
# deb.mariadb.org is a dynamic mirror if your preferred mirror goes offline. See https://mariadb.org/mirrorbits/ for details.
# URIs: https://deb.mariadb.org/z7/ubuntu
URIs: https://mirrors.gigenet.com/mariadb/repo/zc/ubuntu
Suites: jammy
Components: main main/debug
Signed-By: /etc/apt/keyrings/mariadb-keyring.pgp
ruzapt-get update -yzEDEBIAN_FRONTEND=noninteractive sudo apt-get install mariadb-server -yz/etc/my.cnf.d/ rz/my.cnfzyum remove mariadb* -yz/etc/yum.repos.d/mariadb.repoz;
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/zi/rhel8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1            
z
dnf update -yzdnf install mariadb-server -yz3systemctl start mariadb && systemctl enable mariadbzCompleted [200])r	r�r6r r>r�statusWriterr:r'r;r<rkr�rrr3r�r]�shutil�copy)�versionToInstall�tempStatusPathrnr��MySQLBackupDirr'�CNFCurrentPath�
CNFBackupPath�RepoPath�RepoContent�WriteToFilerrr�UpgradeMariaDBNs�



���


�
	
zmysqlUtilities.UpgradeMariaDBr�)rNN)NNrNNN)NN)r)$�__name__�
__module__�__qualname__r9r7r5�staticmethodrr rRrerfrirqr�r�r�r�r�r�r�r�r�r�r�rrrrrrrr#r%r&r3rrrrrs|


5:


"vU
"


K

*


,
-

;
1&
&

')
rcCsvtjdd�}|jddd�|jddd�|jddd�|��}|jd	kr*t��dS|jd
kr9t�|j|j	�dSdS)N�
CyberPanel)�description�functionzSpecific a function to call!)�helpz	--versionzMySQL version to upgrade to.z--tempStatusPathr#r3)
�argparse�ArgumentParser�add_argument�
parse_argsr:rr#r3�versionr,)�parser�argsrrr�main�s

�rC�__main__)&r:�sysr)r��urllib.parserr;r�django�environ�
setdefault�setup�plogicalrr>r�r��websiteFunctions.modelsr�databases.modelsr�
backup.modelsr�MySQLdbr@r1�randomr�plogical.processUtilitiesr	�MySQLdb.cursorsrB�mathr
r<rrCr4rrrr�<module>sR3
�