configure how cloudbackup process is executed

This commit is contained in:
Usman Nasir
2020-12-03 21:56:52 +05:00
parent 47cf699dd0
commit 8c162b3cb1
3 changed files with 47 additions and 2 deletions

View File

@@ -1694,3 +1694,41 @@ class CloudManager:
final_dic = {'status': 0, 'fetchStatus': 0, 'error_message': str(msg)}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
def fetchCloudBackupSettings(self):
try:
from plogical.backupUtilities import backupUtilities
if os.path.exists(backupUtilities.CloudBackupConfigPath):
result = json.loads(open(backupUtilities.CloudBackupConfigPath, 'r').read())
self.nice = result['nice']
self.cpu = result['cpu']
self.time = result['time']
else:
self.nice = backupUtilities.NiceDefault
self.cpu = backupUtilities.CPUDefault
self.time = backupUtilities.time
data_ret = {'status': 1, 'nice': self.nice, 'cpu': self.cpu, 'time': self.time}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'status': 0, 'abort': 0, 'installationProgress': "0", 'errorMessage': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def saveCloudBackupSettings(self):
try:
from plogical.backupUtilities import backupUtilities
writeToFile = open(backupUtilities.CloudBackupConfigPath, 'w')
writeToFile.write(json.dumps(self.data))
writeToFile.close()
data_ret = {'status': 1}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'status': 0, 'abort': 0, 'installationProgress': "0", 'errorMessage': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)

View File

@@ -55,6 +55,10 @@ def router(request):
return cm.SubmitCloudBackup()
elif controller == 'getCurrentCloudBackups':
return cm.getCurrentCloudBackups()
elif controller == 'fetchCloudBackupSettings':
return cm.fetchCloudBackupSettings()
elif controller == 'saveCloudBackupSettings':
return cm.saveCloudBackupSettings()
elif controller == 'fetchWebsites':
return cm.fetchWebsites()
elif controller == 'fetchWebsiteDataJSON':

View File

@@ -60,6 +60,7 @@ class backupUtilities:
NiceDefault = '10'
CPUDefault = '1000'
CloudBackupConfigPath = '/home/cyberpanel/CloudBackup.json'
time = 10
def __init__(self, extraArgs):
self.extraArgs = extraArgs
@@ -1259,9 +1260,9 @@ class backupUtilities:
logging.CyberCPLogFileWriter.writeToFile('Current CPU percent %s.' % (int(psutil.cpu_percent(interval=None))))
if int(psutil.cpu_percent(interval=None)) > int(self.cpu):
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Current CPU usage exceeds %s percent. Backup process will sleep for 10 seconds..,0' % (self.cpu))
'Current CPU usage exceeds %s percent. Backup process will sleep for %s seconds..,0' % (self.cpu, str(self.time)))
import time
time.sleep(10)
time.sleep(self.time)
else:
break
@@ -1416,9 +1417,11 @@ class backupUtilities:
result = json.loads(open(backupUtilities.CloudBackupConfigPath, 'r').read())
self.nice = result['nice']
self.cpu = result['cpu']
self.time = int(result['time'])
else:
self.nice = backupUtilities.NiceDefault
self.cpu = backupUtilities.CPUDefault
self.time = int(backupUtilities.time)
self.BackupPath = '/home/cyberpanel/backups/%s/backup-' % (self.extraArgs['domain']) + self.extraArgs['domain'] + "-" + time.strftime("%m.%d.%Y_%H-%M-%S")
self.website = Websites.objects.get(domain=self.extraArgs['domain'])