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/IncBackups/__pycache__/views.cpython-310.pyc
o

��hD��@sFddlZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddl m!Z!ddl"m"Z"ddl#m#Z#ddl$m%Z%ddl&m'Z'm(Z(m)Z)dfdd�Z*dgde+fdd�Z,dd�Z-dd�Z.dd�Z/d d!�Z0d"d#�Z1d$d%�Z2d&d'�Z3d(d)�Z4d*d+�Z5d,d-�Z6d.d/�Z7d0d1�Z8d2d3�Z9d4d5�Z:d6d7�Z;d8d9�Z<d:d;�Z=d<d=�Z>d>d?�Z?d@dA�Z@dBdC�ZAdDdE�ZBdFdG�ZCdHdI�ZDdJdK�ZEdLdM�ZFdNdO�ZGdPdQ�ZHdRdS�ZIdTdU�ZJdVdW�ZKdXdY�ZLdZd[�ZMd\d]�ZNd^d_�ZOd`da�ZPdbdc�ZQddde�ZRdS)h�N)�Path)�randint)�HttpResponse�redirect)�
BackupManager)�
Administrator)�
loadLoginPage)�CPBackupsV2)�CyberCPLogFileWriter)�
ACLManager)�httpProc��ProcessUtilities)�virtualHostUtilities)�Websites�)�IncBackupProvider)�
IncBackupPath)�IncJobs)�IncJob�	BackupJob�JobSitescCst||||�}|��S�N)r�render)�request�templateName�args�context�proc�r�&/usr/local/CyberCP/IncBackups/views.py�def_renderers�r!F�localcCszg}|r	|�d�ttjj�}|��r"|��D]
}|�d|j�qttjj�}|��r;|��D]
}|�d|j�q0|S)Nr"zsftp:%szs3:s3.amazonaws.com/%s)	�appendrr�SFTP�value�exists�iterdir�name�AWS)r"�destinations�path�itemrrr �_get_destinations"s
r-cCs|jd}t�|�}||fS�N�userID)�sessionr�	loadedACL)r�user_id�current_aclrrr �
_get_user_acl2s

r4c
C�z)t|�\}}t�|d�dkrt��WSt�||�}tdd�}t|d||d�d�WStyF}zt�	t
|��tt�WYd}~Sd}~ww)N�createBackuprT�r"zIncBackups/createBackup.html��websiteListr*�
r4r�currentContextPermission�	loadError�findAllSitesr-r!�
BaseException�logging�writeToFile�strrr�rr2r3�websitesr*�msgrrr �
create_backup:s


���rEc
Csrzt|�\}}t�|d�dkrt��WSt|did�WSty8}zt�t|��t	t
�WYd}~Sd}~ww)N�addDeleteDestinationsrz'IncBackups/incrementalDestinations.html)r4rr;r<r!r>r?r@rArr)rr2r3rDrrr �backup_destinationsLs
��rGc
Cs0�zst|�\}}t�|d�dkrt�dd�WSt�|j�}|d��tj	j
��k�rttj	j
�}|jdd�|d}|d}||}|�d	d
�}|��r[ddd�}	t�|	�}
t|
�WStd
�}ttj�d}d|||df}
d|||
f}ttj���r�t�|�t�|�}ttj���r�t�|�|�d�dk�rd||f}t|d��
}|�|�Wd�n1s�wYd}t�|�}d}t|d��&}|�d�dkr�|�|�d||f}|�|�dkr�|�|�Wd�n1s�wYd|}t�|�d}t�|�ddd�}	nd|d�}	t�|	�}
t|
�WS|d��tjj
��k�rrttjj
�}|jdd�|d}|d}||}t|d��
}|�|�Wd�n	1�sVwY|�t j!t j"B�d di}	t�|	�}
t|
�WSWdSt#�y�}zdt$|�d�}	t�|	�}
t|
�WYd}~Sd}~ww)!NrFr�
destStatus�typeT)�exist_ok�	IPAddress�password�
backupSSHPort�22z This destination already exists.��status�
error_messagez/usr/local/CyberCP/bin/pythonzplogical/backupUtilities.pyzJsubmitDestinationCreation --ipAddress %s --password %s --port %s --user %s�rootz%s %s %sz1,���z%s
%s�wzcat /root/.ssh/configz/home/cyberpanel/sshconfig�catz7Host %s
    IdentityFile ~/.ssh/cyberpanel
    Port %s
zmv %s /root/.ssh/configz!chown root:root /root/.ssh/configr�None�AWS_ACCESS_KEY_ID�AWS_SECRET_ACCESS_KEYrP)%r4rr;�
loadErrorJson�json�loads�body�lowerrr$r(rrr%�mkdir�getr&�dumpsr�vhu�
cyberPanel�pu�	debugPathr?r@�outputExecutioner�find�open�write�executionerr)�chmod�stat�S_IRUSR�S_IWUSRr>rA)rr2r3�datar+�
ip_addressrL�address_file�port�	final_dic�
final_json�python_path�backup_utils�	exec_args�exec_cmd�output�content�outfile�command�current_config�tmp_file�
access_key�
secret_key�aws_filerDrrr �add_destinationXs�



�


�

�
��





�

�
��r�c
Cs�z�t|�\}}t�|d�dkrt�dd�WSt�|j�}g}|d��tj	j
��krrttj	j
�}|��rd|��D]*}t|d��}|��}|�|d�d�|dd��Wd�n1s]wYq8nt�dd	d
d��}	t|	�WS|d��tjj
��kr�ttjj
�}|��r�|��D]
}|�d|j
i�q�nt�dd	d
d��}	t|	�WSt�dd	|d��}	t|	�WSty�}
zdt|
�d
�}t�|�}	t|	�WYd}
~
Sd}
~
ww)NrFr�fetchStatusrI�r�
r)�iprqrV��rPrQrnrWrO)r4rr;rYrZr[r\r]rr$r(rrr%r&r'rg�	readlinesr#�stripr`rr)r>rA)rr2r3rn�	json_datar+r,�infile�_filersrDrrrrr �populate_current_records�sJ
����
�


��r�c	
Cs
zbt|�\}}t�|d�dkrt�dd�WSt�|j�}d|vrT|d}|d��tj	j
��kr<ttj	j
�|}|��|d��tjj
��krTttjj
�|}|��ddd�}t�|�}t|�WSty�}zdt|�d	�}t�|�}t|�WYd}~Sd}~ww)
NrFrrHrKrIrrVrO�rHrQ)r4rr;rYrZr[r\r]rr$r(rrr%�unlinkr)r`rr>rA)	rr2r3rn�	file_name�	dest_filerrrsrDrrr �remove_destination�s,



��r�c
Cs�z�t|�\}}tjj|d�}t�|j�}|d}t�|||�dkr"nt�	dd�WSd|vrX|d}||d�}d|vrA|d|d<n
t�
dd	d
��}t|�WStd|�}	|	�
�WStjj|d�}
|
j��}g}t|�D]'}
g}|
j��}|D]}|�|j|j|jd
��qu|�|
jt|
j�|d��qjt�
dd|d��}t|�WSty�}zdt|�d
�}t�
|�}t|�WYd}~Sd}~ww)N��pk�websiteToBeBackedrr�r�backupDestinations)�websiter�rLzPlease supply the password.rO�Dummy��domain)rI�
snapshotid�destination)�id�date�	snapshotsrVr�)r4r�objectsr_rZr[r\r�checkOwnershiprYr`rr�fetchCurrentBackupsr�
incjob_set�all�reversed�jobsnapshots_setr#rIr�r�r�rAr�r>)rr2r3�adminrn�
backup_domainrG�
extra_argsrs�	start_jobr��backupsr��backupr��jobs�jobrDrrrrr �fetch_current_backups�sJ






�

��r�c

Cs�z�t|�\}}tjj|d�}t�|j�}|d}|d}t�|||�dkr&nt�	dd�WSt
d�ttdd	��}i}||d
<t|�|d<||d<d|vrP|dnd
|d<d|vr\|dnd
|d<d|vrh|dnd
|d<d|vrt|dnd
|d<t
d|�}	|	��t�d�t�ddt|�d��}
t|
�WSty�}zt�t|��ddt|�d�}t�|�}
t|
�WYd}~Sd}~ww)Nr�r�r�r�
metaStatusr�/home/cyberpanel/���'r��tempPath�websiteDataF�
websiteEmails�websiteSSLs�websiteDatabasesr6�rV�rPrQr��rPr�rQ�r4rr�r_rZr[r\rr�rYrrArr�start�time�sleepr`rr>r?r@)
rr2r3r�rnr�rG�	temp_pathr�r�rsrDrrrrr �submit_backup_creation&s<



��r�c
Cs�z�t�|j�}|d}|d}t|�\}}tjj|d�}t�|||�dkr&nt�	dd�WSt�
|�r3nddddd	�}t�|�}t|�WSt
j�|�r�d
|}	t�|	d�}
|
�d�d
krot
�|�t�dd|
dd��}t|�WS|
�d�d
kr�zt
�|�WnYt�dd|
dd��}t|�WSt�dd|
dd��}t|�WSt�ddddd��}t|�WSty�}zdt|�d�}
t�|
�}t�t|�d�t|�WYd}~Sd}~ww)Nr�r�r�rr�r�100zInvalid status file.)�abort�
installStatus�installationProgress�
currentStatuszcat �
cyberpanel�	CompletedrSrV)�backupStatusrQrPr�z[5009])r�rQz [backupStatus])rZr[r\r4rr�r_rr�rY�CheckStatusFilleLocr`r�osr+r&rcrerf�remover>rAr?r@)rrnrPr�r2r3r��data_retr�r{�resultrsrDrrrrr �get_backup_statusLsf
�


�
��
��


��r�c
Cs�zPt|�\}}tjj|d�}t�|j�}|d}t�|||�dkr"nt�	dd�WS|d}t
jj|d�}tdd�}|�|�|�
�ddd	�}	t�|	�}
t|
�WStyr}zdt|�d
�}	t�|	�}
t|
�WYd}~Sd}~ww)Nr�r�rr�r�backupID�r�rVrOr�)r4rr�r_rZr[r\rr�rYrr�DeleteSnapShot�deleter`rr>rA)rr2r3r�rnr��	backup_id�inc_jobr�rrrsrDrrr �
delete_backup�s,





��r�c
Cszat|�\}}tjj|d�}t�|j�}|d}t�|||�dkr"nt�	dd�WSt�|j�}|d}t
jj|d�}|j��}g}	|D]}
|	�
|
j|
j|
j|
jd��qCt�dd	|	d
��}t|�WSty�}zdt|�d�}
t�|
�}t|�WYd}~Sd}~ww)Nr�r�rr�rr�r�)r�r�rIr�rVr�rO)r4rr�r_rZr[r\rr�rYrr�r�r#r�r�rIr�r`rr>rA)rr2r3r�rnr��job_idr�r�r��itemsrsrDrrrrr �fetch_restore_points�s6

�

��r�c

Cs�z�t|�\}}tjj|d�}t�|j�}|d}|d}t�|||�dkr&nt�	dd�WSt
d�ttdd	��}|d
dkrgi}||d<||d<t|�|d
<|d
|d
<|d|d<|d|d<|d|d<ni}||d<||d<t|�|d
<|d
|d
<t
d|�}	|	��t�d�t�ddt|�d��}
t|
�WSty�}zt�t|��ddt|�d�}t�|�}
t|
�WYd}~Sd}~ww)Nr�r��jobidrr�rr�r�r��reconstruct�remoter�r�r�rLr+�restorePointr�rVr�r�r�)
rr2r3r�rnr�r�r��	extraArgsr�rsrDrrrrr �
restore_point�sH



��r�c
Cr5)N�scheduleBackupsrTr7zIncBackups/backupSchedule.htmlr8r:rBrrr �schedule_backups�s


���r�c
Cszmt|�\}}t�|d�dkrt�dd�WSt�|j�}|d}|d}|d}|d}d|vr2d	nd}d
|vr:d	nd}	d|vrBd	nd}
t||	|
|||d�}|��|D]}t	||d
�}
|
��qTt�
d	dd��}t|�WSty�}zt�
dt
|�d��}t|�WYd}~Sd}~ww)Nr�r�scheduleStatusr��
backupFreq�backupRetention�websitesToBeBackedr�rr�r�)r��websiteDataEmailsr�r��	frequency�	retention�r�r�rVrO)r4rr;rYrZr[r\r�saverr`rr>rA)rr2r3rn�backup_dest�backup_freq�backup_retention�backup_sites�backup_data�
backup_emails�backup_databases�
backup_job�site�backup_site_jobrsrDrrr �submit_backup_schedule
s6�

��r�c	
Cs�zCt|�\}}t�|d�dkrt�dd�WStj��}g}|D]}|�|j|j	|j
|j|j���
�d��qt�dd|d��}t|�WStye}zdt|�d�}t�|�}t|�WYd}~Sd}~ww)	Nr�rr�)r�r�r�r��
numberOfSitesrrVr�rO)r4rr;rYrr�r�r#r�r�r�r��jobsites_set�countrZr`rr>rA)	rr2r3�recordsr�r�rsrDrrrrr �get_current_backup_schedules+s*

�

��r�c

Cs�zLt|�\}}t�|d�dkrt�dd�WSt�|j�}tjj	|dd�}g}|j
��D]}|�|j
|jd��q,t�dd||j|j|jd	��}t|�WStyn}zdt|�d
�}	t�|	�}t|�WYd}~Sd}~ww)Nr�rr�r�r�)r�r�rrV)rPrQrnr�r�r�rO)r4rr;rYrZr[r\rr�r_r�r�r#r�r�r`r�r�r�rr>rA)
rr2r3rnr�r��jobsitersrDrrrrr �fetch_sitesCs,
�
�

��r�c
Cs�z7t|�\}}t�|d�dkrt�dd�WSt�|j�}|d}tjj	|d�}|�
�t�ddd��}t|�WSt
yW}zt�dt|�d��}t|�WYd}~Sd}~ww)	Nr�rr�r�r�rrVrO)r4rr;rYrZr[r\rr�r_r�r`rr>rA)rr2r3rnr�r�rsrDrrr �schedule_delete\s
��r�c
Cs�z't|�\}}t�|d�dkrt��WSt�||�}t�}t|d||d�d�WStyD}zt�	t
|��tt�WYd}~Sd}~ww)Nr6rz$IncBackups/restoreRemoteBackups.htmlr8r:rBrrr �restore_remote_backupsps

���r�c
Cs
zdt|�\}}t�|d�dkrt�dd�WSt�|j�}|d}d|vr(|dnd}d|vr2|dnd}d|vr<|dnd}tjj	|d�}t
|�|_t
|�|_t
|�|_
|��t�d	d
d��}	t|	�WSty�}
zt�dt|
�d��}	t|	�WYd}
~
Sd}
~
ww)Nr�rr�r�r�r�r�r�rrVrO)r4rr;rYrZr[r\rr�r_�intr�r�r�r�r`rr>rA)rr2r3rnr�r�r�r�r�rsrDrrr �save_changes�s*



��rc

Cs�zCt|�\}}t�|d�dkrt�dd�WSt�|j�}|d}|d}tjj	|d�}t
jj	||d�}|��t�dd	d
��}t
|�WStyc}	zt�dt|	�d
��}t
|�WYd}	~	Sd}	~	ww�Nr�rr�r�r�r�r�rrVrO)r4rr;rYrZr[r\rr�r_rr�r`rr>rA�
r�_r3rnr�r�r�r�rsrDrrr �remove_site�s"
��rc

Cs�zUt|�\}}t�|d�dkrt�dd�WSt�|j�}|d}|d}tjj	|d�}z
t
jj	||d�WntyHt
||d�}|��Ynwt�
dd	d
��}t|�WStyu}	zt�
dt|	�d
��}t|�WYd}	~	Sd}	~	wwr)r4rr;rYrZr[r\rr�r_rr>r�r`rrArrrr �add_website�s*�
��rc
Cs�z1t|�\}}t�|d�dkrt��WSt�d�rd}nd}t�||�}t|d||d��}|��WStyN}zt	�
t|��tt
�WYd}~Sd}~ww)Nr6rr�rz!IncBackups/ConfigureV2Backup.html)r9�
BackupStat)r4rr;r<�CheckForPremFeaturer=rrr>r?r@rArr)rr2r3rrCrrDrrr �ConfigureV2Backup�s


��rc

Cs�z�|jd}i}d|d<|j�d�|d<|j�d�|d<|j�d�|d	<|j�d
�|d<|j�d�|d
<|j�d�|d<|j�d�|d<|j�d�}t�|�}tjj|d�}t�|||�dkr`nt��WSt	|dddddd��}|�
t	j|�\}}ddlm
}	tj�|	j�r�t�dt|��dt|����|dkr�d|d�}
t�|
�}t|�WSt|�WSty�}z#t�dt|��dt|�|��d�}
t�|
�}t|�WYd}~Sd}~ww)Nr/�GDriver(�t�tokenr��
refresh_token�to�	token_uri�s�scopes�n�accountname�	client_id�
client_secret�dr�r�/home/backup�
testremote)r��BasePath�BackupDatabase�
BackupData�BackupEmails�BackendNamerr
�$Response from SetupRcloneBackend is �
 and message rOzError configure)r0�GETr_rr1rr�r�r<r	�SetupRcloneBackendr	�plogical.processUtilitiesrr�r+r&rdr?r@rArZr`rrr>�get_raw_uri)
rr/�req_datar��
currentACLr��cpbuv2rP�messagerr�r�rDrrr �ConfigureV2BackupSetup�sL


��




��r'cC�:z|jd}t�}|�||�WStytt�YSwr.)r0r�CreateV2backupSite�KeyErrorrr�rr/�bmrrr �CreateV2Backup�
�r-cCr(r.)r0r�DeleteRepoV2r*rrr+rrr r/r.r/c
CsRz�|jd}t�|j�}|d}|d}t�|�}tjj|d�}t�	|||�dkr*nt�
�WSi}d|d<||d<||d	<d
|d<||d<d
|vrM|d
nd|d<d|vrY|dnd|d<d|vre|dnd|d<t|�}|��t
�d�dddd�}	t�|	�}
t|
�WSty�}zddt|�d�}	t�|	�}
t|
�WYd}~Sd}~ww)Nr/�Selectedwebsite�Selectedrepor�r�InitiateBackup�functionr�r�rrrr�Frr�rr�rr�rV�rPr�rQr)r0rZr[r\rr1rr�r_r�r<r	r�r�r�r`rr>rA)rr/rnr0r1r$r�r��
backgroundr�r�rDrrr �CreateV2BackupButton&s>






��r6cCsBz|jd}t�}|�|t�|j��WSty tt�YSwr.)	r0r�CreateV2BackupStatusrZr[r\r*rrr+rrr r7Ss
�r7cCr(r.)r0r�RestoreV2backupSiter*rrr+rrr r8[r.r8c
Cs$zn|jd}t�|j�}|d}|d}|d}|d}t�|�}tjj|d�}t�	t
|�||�dkr4nt��WSi}	d|	d	<||	d
<||	d<d|	d
<||	d<||	d<||	d<t|	�}
|
�
�dddd�}t�|�}t|�WSty�}
zddt
|
�d�}t�|�}t|�WYd}
~
Sd}
~
ww)Nr/r�r+�
selwebsite�selectedrepor�r�InitiateRestorer3r�r�rrrrVr4r)r0rZr[r\rr1rr�r_r�rAr<r	r�r`rr>)rr/rn�
SnapShotIdrr0r1r$r�r�r5r�r�rDrrr �
RestorePathV2cs>





��r=c

Cszg|jd}t�|j�}|d}|d}|d}t�|�}tjj|d�}t�	t
|�||�dkr0nt��WSi}d|d<||d	<||d
<d|d<||d
<||d<t|�}	|	�
|�dddd�}
t�|
�}t|�WSty�}zddt
|�d�}
t�|
�}t|�WYd}~Sd}~ww)Nr/r�r9r:r�rr;r3r�r�rrrrVr4r)r0rZr[r\rr1rr�r_r�rAr<r	�DeleteSnapshotsr`rr>)
rr/rnr<r0r1r$r�r�r5r�r�rDrrr �DeleteSnapshotV2Final�s:






��r?c
Cs.ddl}zo|jd}t�|j�}|d}t�|�}tjj	|d�}t�
t|�||�dkr,nt��WSt
jj	t|�d�}d|j}d|}	t�|	�}
|
�d	�d
krfd}|�||
�}t�ddd|d
��}
t|
�WSt�dddd��}
t|
�WSty�}zddt|�d�}t�|�}
t|
�WYd}~Sd}~ww)Nrr/r0r�rr��#/home/%s/.config/rclone/rclone.conf�cat %srIrS�	\[(.*?)\]rV�rPr�rQrn�Could not Find repo�rPr�rQ)�rer0rZr[r\rr1rr�r_r�rAr<rr�rcrerf�findallr`rr>)rrFr/rnr0r$r��objr+r{r��pattern�matchesrsrDrrrrr �selectwebsiteRetorev2�s6







��rKc
Cs�z�|jd}t�|j�}|d}|d}|d}|d}|d}t�|�}tjj|d�}	t�	t
|�|	|�dkr8nt��WSi}
d	|
d
<||
d<||
d<||
d
<||
d<z|d|
d<Wnd|
d<Yt|ddddd	dd��}|�
tj|
�\}}
ddlm}tj�|j�r�t�dt
|��dt
|
����|dkr�d|
d�}t�|�}t|�WSt�ddddd��}t|�WSty�}zddt
|�d�}t�|�}t|�WYd}~Sd}~ww)Nr/r0�
sfptpasswd�hostName�UserName�	Repo_Namer�rr$r(�host�userrL�sshPortrNr)r�rrrrrr3rr
rrrOrVrCrE)r0rZr[r\rr1rr�r_r�rAr<r	r r$r!rr�r+r&rdr?r@r`rr>)rr/rnr0rLrMrNrOr$r�r#r%rPr&rr�r�rsrDrrrrr �ConfigureSftpV2Backup�sX



��




��rSc
Cs�ddl}z�|jd}t�|j�}|d}t�|�}tjj	|d�}t�
t|�||�dkr,nt��WSt
jj	t|�d�}d|j}d|}	t�|	�}
t�t|��\}}|
�d	�d
kr�d|j�d�}
d
|
��}	t�|	|j�d|}	t�|	�}|�d�d
kr�d}|�||�}t�ddd||d��}t|�WSt�dddd��}t|�WSd|}	t�|	�}|�d�d
kr�d}|�||�}t�ddd||d��}t|�WSt�ddd|d��}t|�WSty�}zddt|�d�}t�|�}t|�WYd}~Sd}~ww)Nrr/r0r�rr�r@rAzNo such file or directoryrSz/home/z/.config/rclonez	mkdir -p rIrBrV)rPr�rQrn�currentSchedulesrDrE)rPr�rQrT)rFr0rZr[r\rr1rr�r_r�rAr<rr�rcrer	�FetchCurrentSchedulesrfri�externalApprGr`rr>)rrFr/rnr0r$r�rHr+r{�CurrentContentrPrT�LocalRclonePathr�rIrJrsrDrrrrr �selectwebsiteCreatev2sV





	





	
��rYc
Csz_|jd}t�|j�}|d}|d}t�|�}tjj|d�}t�	t
|�||�dkr,nt��WSt||dd��}|�
�\}}|dkrRt�ddd|d	��}	t|	�WSt�d
ddd��}	t|	�WSty�}
zd
d
t
|
�d�}t�|�}	t|	�WYd}
~
Sd}
~
ww)
Nr/r1r0r�rr�)r�rr3rVrCrzCannot Find!rE)r0rZr[r\rr1rr�r_r�rAr<r	�FetchSnapShotsr`rr>)rr/rnr1r0r$r��vmrPrsrDrrrrr �selectreporestorev2es.





��r\cCr(r.)r0r�schedulev2Backupsr*rrr+rrr r]�r.r]c
Cs�z[|jd}t�|j�}|d}|d}|d}|d}|d}|d}t�|�}	tjj|d�}
t�	t
|�|
|	�d	kr<nt��WSt�
||||||�\}}d	|d
�}
t�|
�}t|�WSty~}zddt
|�d�}
t�|
�}t|�WYd}~Sd}~ww)
Nr/r0�repor�r�r�r�r�rrOrrE)r0rZr[r\rr1rr�r_r�rAr<r	�DeleteScheduler`rr>)rr/rnr0r^r�r�r�r�r$r�rPr&rrrsrDrrr �DeleteScheduleV2�s0






��r`c
Cs,zr|jd}t�|j�}|d}|d}|d}|d}d|vr$|dnd}d|vr.|dnd}d	|vr8|d	nd}	t�|�}
tjj|d
�}t�	t
|�||
�dkrRnt��WSt�
||||||	|�\}}
d|
d�}t�|�}t|�WSty�}zd
d
t
|�d�}t�|�}t|�WYd}~Sd}~ww)Nr/r0r^r�r�r�Fr�r�r�rrOrrE)r0rZr[r\rr1rr�r_r�rAr<r	�CreateScheduleV2r`rr>)rr/rnr0r^r�r�r�r�r�r$r�rPr&rrrsrDrrr ra�s2






��rac
Csze|jd}t�|j�}|d}|d}t�|�}tjj|d�}t�	t
|�||�dkr,nt��WStjj|d�}|j
}t�|||�\}	}
|	dkrWd|
d�}t�|�}t|�WSd|
d�}t�|�}t|�WSty�}
zddt
|
�d	�}t�|�}t|�WYd}
~
Sd}
~
ww)
Nr/r0r1r�rr�rOrrE)r0rZr[r\rr1rr�r_r�rAr<rrVr	�DeleteRepoScheduleV2r`rr>)rr/rnr0r^r$r�rH�usrrPr&rrrsrDrrr �DeleteV2BackupButton�s4









��rdr)F)SrZr�rkr��pathlibr�randomr�django.shortcutsrr�backup.backupManagerr�loginSystem.modelsr�loginSystem.viewsr�plogical.Backupsv2r	�plogical.CyberCPLogFileWriterr
r?�plogical.aclr�plogical.httpProcrr!rrc�plogical.virtualHostUtilitiesrra�websiteFunctions.modelsrrr�IncBackupsControlr�modelsrrrr!�boolr-r4rErGr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr'r-r/r6r7r8r=r?rKrSrYr\r]r`rardrrrr �<module>sz
])-&?".!2	--+':I$#+