From 8c162b3cb1749b9559c24e80e5eb2b981b185636 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 3 Dec 2020 21:56:52 +0500 Subject: [PATCH] configure how cloudbackup process is executed --- cloudAPI/cloudManager.py | 38 +++++++++++++++++++++++++++++++++++++ cloudAPI/views.py | 4 ++++ plogical/backupUtilities.py | 7 +++++-- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/cloudAPI/cloudManager.py b/cloudAPI/cloudManager.py index b6a2d8c60..736fdba6f 100755 --- a/cloudAPI/cloudManager.py +++ b/cloudAPI/cloudManager.py @@ -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) diff --git a/cloudAPI/views.py b/cloudAPI/views.py index 18f132bea..9e21468ce 100755 --- a/cloudAPI/views.py +++ b/cloudAPI/views.py @@ -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': diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py index f803aedce..cd843cbca 100755 --- a/plogical/backupUtilities.py +++ b/plogical/backupUtilities.py @@ -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'])