From aa24855963dea34afaf65624812010f2e3523570 Mon Sep 17 00:00:00 2001 From: Hassan Hashmi <75794688+habbi-hb@users.noreply.github.com> Date: Wed, 29 Jun 2022 15:41:05 +0500 Subject: [PATCH] s3keysaved --- .../websiteFunctions/websiteFunctions.js | 159 ++++++++++++------ .../websiteFunctions/RemoteBackupConfig.html | 80 ++++++--- websiteFunctions/website.py | 63 ++++++- 3 files changed, 220 insertions(+), 82 deletions(-) diff --git a/websiteFunctions/static/websiteFunctions/websiteFunctions.js b/websiteFunctions/static/websiteFunctions/websiteFunctions.js index 7b10360e8..7542b08a8 100755 --- a/websiteFunctions/static/websiteFunctions/websiteFunctions.js +++ b/websiteFunctions/static/websiteFunctions/websiteFunctions.js @@ -1961,9 +1961,11 @@ app.controller('RestoreWPBackup', function ($scope, $http, $timeout, $window) { function DeleteBackupConfigNow(url) { window.location.href = url; } + function DeleteRemoteBackupsiteNow(url) { window.location.href = url; } + function DeleteBackupfileConfigNow(url) { window.location.href = url; } @@ -1972,15 +1974,47 @@ function DeleteBackupfileConfigNow(url) { app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) { $scope.RemoteBackupLoading = true; $scope.SFTPBackUpdiv = true; - $scope.S3backupdiv = true; + + $scope.EndpointURLdiv = true; + $scope.Selectprovider = true; + $scope.S3keyNamediv = true; + $scope.Accesskeydiv = true; + $scope.SecretKeydiv = true; $scope.SelectRemoteBackuptype = function () { var val = $scope.RemoteBackuptype; if (val == "SFTP") { $scope.SFTPBackUpdiv = false; - $scope.S3backupdiv = true; - } else { - $scope.S3backupdiv = false; + $scope.EndpointURLdiv = true; + $scope.Selectprovider = true; + $scope.S3keyNamediv = true; + $scope.Accesskeydiv = true; + $scope.SecretKeydiv = true; + } else if (val == "S3") { + $scope.EndpointURLdiv = true; + $scope.Selectprovider = false; + $scope.S3keyNamediv = false; + $scope.Accesskeydiv = false; + $scope.SecretKeydiv = false; $scope.SFTPBackUpdiv = true; + } else { + $scope.RemoteBackupLoading = true; + $scope.SFTPBackUpdiv = true; + + $scope.EndpointURLdiv = true; + $scope.Selectprovider = true; + $scope.S3keyNamediv = true; + $scope.Accesskeydiv = true; + $scope.SecretKeydiv = true; + } + } + + $scope.SelectProvidertype = function () { + $scope.EndpointURLdiv = true; + var provider = $scope.Providervalue + if (provider == 'Backblaze') { + $scope.EndpointURLdiv = false; + } else { + $scope.EndpointURLdiv = true; } } @@ -1991,59 +2025,81 @@ app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) var Passwd = $scope.Password; var path = $scope.path; var type = $scope.RemoteBackuptype; - + var Providervalue = $scope.Providervalue; + var data; if (type == "SFTP") { - var data = { + data = { Hname: Hname, Uname: Uname, Passwd: Passwd, path: path, type: type } - var url = "/websites/SaveBackupConfig"; - - - var config = { - headers: { - 'X-CSRFToken': getCookie('csrftoken') + } else if (type == "S3") { + if (Providervalue == "Backblaze") { + data = { + S3keyname: $scope.S3keyName, + Provider: Providervalue, + AccessKey: $scope.Accesskey, + SecertKey: $scope.SecretKey, + EndUrl: $scope.EndpointURL, + type: type } - }; - $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - - - function ListInitialDatas(response) { - $scope.RemoteBackupLoading = true; - if (response.data.status === 1) { - new PNotify({ - title: 'Success!', - text: 'Successfully Saved!.', - type: 'success' - }); - location.reload(); - - - } else { - new PNotify({ - title: 'Error!', - text: response.data.error_message, - type: 'error' - }); + } else { + data = { + S3keyname: $scope.S3keyName, + Provider: Providervalue, + AccessKey: $scope.Accesskey, + SecertKey: $scope.SecretKey, + type: type } + } - function cantLoadInitialDatas(response) { - $scope.RemoteBackupLoading = true; + } + var url = "/websites/SaveBackupConfig"; + + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); + + + function ListInitialDatas(response) { + $scope.RemoteBackupLoading = true; + if (response.data.status === 1) { new PNotify({ - title: 'Operation Failed!', + title: 'Success!', + text: 'Successfully Saved!.', + type: 'success' + }); + location.reload(); + + + } else { + new PNotify({ + title: 'Error!', text: response.data.error_message, type: 'error' }); - - } } + function cantLoadInitialDatas(response) { + $scope.RemoteBackupLoading = true; + new PNotify({ + title: 'Operation Failed!', + text: response.data.error_message, + type: 'error' + }); + + + } + } @@ -2062,7 +2118,7 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) { FileRetention: FileRetention, Backfrequency: Backfrequency, ScheduleName: $scope.ScheduleName, - RemoteConfigID : $('#RemoteConfigID').html(), + RemoteConfigID: $('#RemoteConfigID').html(), BackupType: $scope.BackupType } var url = "/websites/SaveBackupSchedule"; @@ -2111,23 +2167,21 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) { }; - - $scope.getupdateid = function (ID) { UpdatescheduleID = ID; } $scope.UpdateRemoteschedules = function () { - $scope.RemoteBackupLoading = false; - var Frequency = $scope.RemoteFrequency; - var fretention = $scope.RemoteFileretention; + $scope.RemoteBackupLoading = false; + var Frequency = $scope.RemoteFrequency; + var fretention = $scope.RemoteFileretention; - var data = { - ScheduleID:UpdatescheduleID, - Frequency: Frequency, - FileRetention: fretention - } - var url = "/websites/UpdateRemoteschedules"; + var data = { + ScheduleID: UpdatescheduleID, + Frequency: Frequency, + FileRetention: fretention + } + var url = "/websites/UpdateRemoteschedules"; var config = { @@ -2174,10 +2228,9 @@ app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) { $scope.RemoteBackupLoading = false; - var data = { - WpsiteID: $('#Wpsite').val(), - RemoteScheduleID : $('#RemoteScheduleID').html() + WpsiteID: $('#Wpsite').val(), + RemoteScheduleID: $('#RemoteScheduleID').html() } var url = "/websites/AddWPsiteforRemoteBackup"; diff --git a/websiteFunctions/templates/websiteFunctions/RemoteBackupConfig.html b/websiteFunctions/templates/websiteFunctions/RemoteBackupConfig.html index 5b18dc1f3..d0c4c790c 100644 --- a/websiteFunctions/templates/websiteFunctions/RemoteBackupConfig.html +++ b/websiteFunctions/templates/websiteFunctions/RemoteBackupConfig.html @@ -30,6 +30,7 @@ @@ -68,8 +69,45 @@ -
- S3 BAckups + +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
@@ -93,30 +131,31 @@ Backup Type HostName - Path + Path / Key Name Action - + {% for sub in backupconfigs %} - - {{ sub.Type }} - {{ sub.HostName }} - {{ sub.Path }} - - + {{ sub.Type }} + {{ sub.HostName }} + {{ sub.Path }} + + + - Schedule Backups - - + type="button" class="btn btn-border btn-alt border-green btn-link font-green"> + Schedule Backups + + {% endfor %} @@ -124,7 +163,6 @@
- diff --git a/websiteFunctions/website.py b/websiteFunctions/website.py index 928e471c4..ec7b08b9e 100755 --- a/websiteFunctions/website.py +++ b/websiteFunctions/website.py @@ -222,12 +222,30 @@ class WebsiteManager: Data['backupconfigs'] =[] for i in allcon: configr = json.loads(i.config) - Data['backupconfigs'].append({ - 'id':i.pk, - 'Type': i.configtype, - 'HostName': configr['Hostname'], - 'Path': configr['Path'] - }) + if i.configtype == "SFTP": + Data['backupconfigs'].append({ + 'id': i.pk, + 'Type': i.configtype, + 'HostName': configr['Hostname'], + 'Path': configr['Path'] + }) + elif i.configtype == "S3": + Provider = configr['Provider'] + if Provider == "Backblaze": + Data['backupconfigs'].append({ + 'id': i.pk, + 'Type': i.configtype, + 'HostName': Provider, + 'Path': configr['S3keyname'] + }) + else: + Data['backupconfigs'].append({ + 'id': i.pk, + 'Type': i.configtype, + 'HostName': Provider, + 'Path': configr['S3keyname'] + }) + proc = httpProc(request, 'websiteFunctions/RemoteBackupConfig.html', Data, 'createWebsite') return proc.render() @@ -1153,8 +1171,37 @@ class WebsiteManager: "Password": Passwd, "Path": path } - mkobj = RemoteBackupConfig(owner=admin, configtype=ConfigType, config=json.dumps(config)) - mkobj.save() + elif ConfigType == "S3": + Provider = data['Provider'] + if Provider == "Backblaze": + S3keyname = data['S3keyname'] + SecertKey = data['SecertKey'] + AccessKey = data['AccessKey'] + EndUrl = data['EndUrl'] + config = { + "Provider": Provider, + "S3keyname": S3keyname, + "SecertKey": SecertKey, + "AccessKey": AccessKey, + "EndUrl": EndUrl + + } + else: + S3keyname = data['S3keyname'] + SecertKey = data['SecertKey'] + AccessKey = data['AccessKey'] + config = { + "Provider": Provider, + "S3keyname": S3keyname, + "SecertKey": SecertKey, + "AccessKey": AccessKey, + + } + + + + mkobj = RemoteBackupConfig(owner=admin, configtype=ConfigType, config=json.dumps(config)) + mkobj.save() time.sleep(1)