diff --git a/IncBackups/IncBackups.py b/IncBackups/IncBackups.py new file mode 100644 index 000000000..fe14fb3d2 --- /dev/null +++ b/IncBackups/IncBackups.py @@ -0,0 +1,42 @@ +#!/usr/local/CyberCP/bin/python2 +import os,sys +sys.path.append('/usr/local/CyberCP') +import django +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") +django.setup() +import threading as multi +from plogical.processUtilities import ProcessUtilities +import time +from .models import IncJob, JobSnapshots +from websiteFunctions.models import Websites + +class IncJobs(multi.Thread): + + def __init__(self, function, extraArgs): + multi.Thread.__init__(self) + self.function = function + self.extraArgs = extraArgs + + def run(self): + + if self.function == 'createBackup': + self.createBackup() + + + + def createBackup(self): + tempPath = self.extraArgs['tempPath'] + website = self.extraArgs['website'] + backupDestinations = self.extraArgs['backupDestinations'] + websiteData = self.extraArgs['websiteData'] + websiteEmails = self.extraArgs['websiteEmails'] + websiteSSLs = self.extraArgs['websiteSSLs'] + + website = Websites.objects.get(domain=website) + + newJob = IncJob(website=website) + newJob.save() + + writeToFile = open(tempPath, 'w') + writeToFile.write('Completed') + writeToFile.close() \ No newline at end of file diff --git a/IncBackups/models.py b/IncBackups/models.py index 1dfab7604..0b6c351d5 100644 --- a/IncBackups/models.py +++ b/IncBackups/models.py @@ -1,6 +1,14 @@ -# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models +from websiteFunctions.models import Websites +from datetime import datetime -# Create your models here. +class IncJob(models.Model): + website = models.ForeignKey(Websites) + date = models.DateTimeField(default=datetime.now, blank=True) + +class JobSnapshots(models.Model): + job = models.ForeignKey(IncJob) + type = models.CharField(max_length=50) + snapshotid = models.CharField(max_length=50) \ No newline at end of file diff --git a/IncBackups/static/IncBackups/IncBackups.js b/IncBackups/static/IncBackups/IncBackups.js index a144ea0dd..2a21a5984 100644 --- a/IncBackups/static/IncBackups/IncBackups.js +++ b/IncBackups/static/IncBackups/IncBackups.js @@ -6,50 +6,24 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { $scope.backupButton = true; $scope.cyberpanelLoading = true; $scope.runningBackup = true; - $scope.cancelButton = true; - populateCurrentRecords(); - - $scope.cancelBackup = function () { - - var backupCancellationDomain = $scope.websiteToBeBacked; - - url = "/backup/cancelBackupCreation"; - - var data = { - backupCancellationDomain: backupCancellationDomain, - fileName: $scope.fileName, - }; - - var config = { - headers: { - 'X-CSRFToken': getCookie('csrftoken') - } - }; - - $http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); - - }; $scope.fetchDetails = function () { getBackupStatus(); - populateCurrentRecords(); + $scope.populateCurrentRecords(); $scope.destination = false; $scope.runningBackup = true; - }; - function getBackupStatus() { $scope.cyberpanelLoadingBottom = false; - var websiteToBeBacked = $scope.websiteToBeBacked; - - url = "/backup/backupStatus"; + url = "/IncrementalBackups/getBackupStatus"; var data = { - websiteToBeBacked: websiteToBeBacked, + websiteToBeBacked: $scope.websiteToBeBacked, + tempPath: $scope.tempPath }; var config = { @@ -72,18 +46,16 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { $scope.cyberpanelLoadingBottom = true; $scope.destination = false; $scope.runningBackup = false; - $scope.cancelButton = true; $scope.backupButton = false; $scope.cyberpanelLoading = true; $scope.fileName = response.data.fileName; $scope.status = response.data.status; - populateCurrentRecords(); + $scope.populateCurrentRecords(); return; } else { $scope.destination = true; $scope.backupButton = true; $scope.runningBackup = false; - $scope.cancelButton = false; $scope.fileName = response.data.fileName; $scope.status = response.data.status; @@ -94,7 +66,6 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { $timeout.cancel(); $scope.cyberpanelLoadingBottom = true; $scope.cyberpanelLoading = true; - $scope.cancelButton = true; $scope.backupButton = false; } @@ -103,22 +74,18 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { function cantLoadInitialDatas(response) { } - }; - + } $scope.destinationSelection = function () { $scope.backupButton = false; }; + $scope.populateCurrentRecords = function () { - function populateCurrentRecords() { - - var websiteToBeBacked = $scope.websiteToBeBacked; - - url = "/backup/getCurrentBackups"; + url = "/IncrementalBackups/fetchCurrentBackups"; var data = { - websiteToBeBacked: websiteToBeBacked, + websiteToBeBacked: $scope.websiteToBeBacked, }; var config = { @@ -132,31 +99,42 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { function ListInitialDatas(response) { - - - if (response.data.fetchStatus == 1) { + if (response.data.status === 1) { $scope.records = JSON.parse(response.data.data); + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); } - } function cantLoadInitialDatas(response) { + new PNotify({ + title: 'Operation Failed!', + text: 'Could not connect to server, please refresh this page', + type: 'error' + }); } }; - $scope.createBackup = function () { - var websiteToBeBacked = $scope.websiteToBeBacked; $scope.cyberpanelLoading = false; - url = "/backup/submitBackupCreation"; + url = "/IncrementalBackups/submitBackupCreation"; var data = { - websiteToBeBacked: websiteToBeBacked, + websiteToBeBacked: $scope.websiteToBeBacked, + backupDestinations: $scope.backupDestinations, + websiteData: $scope.websiteData, + websiteEmails: $scope.websiteEmails, + websiteSSLs: $scope.websiteSSLs + }; var config = { @@ -171,8 +149,8 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { function ListInitialDatas(response) { - - if (response.data.metaStatus === 1) { + if (response.data.status === 1) { + $scope.tempPath = response.data.tempPath; getBackupStatus(); } @@ -183,11 +161,10 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { }; - $scope.deleteBackup = function (id) { - url = "/backup/deleteBackup"; + url = "/IncrementalBackups/deleteBackup"; var data = { backupID: id, @@ -206,20 +183,16 @@ app.controller('createIncrementalBackups', function ($scope, $http, $timeout) { function ListInitialDatas(response) { - if (response.data.deleteStatus == 1) { + if (response.data.status === 1) { - populateCurrentRecords(); + $scope.populateCurrentRecords(); - } else { - } } function cantLoadInitialDatas(response) { - - } @@ -256,9 +229,9 @@ app.controller('incrementalDestinations', function ($scope, $http) { url = "/IncrementalBackups/populateCurrentRecords"; var type = 'SFTP'; - if ($scope.destinationType === 'SFTP'){ + if ($scope.destinationType === 'SFTP') { type = 'SFTP'; - }else{ + } else { type = 'AWS'; } @@ -307,14 +280,14 @@ app.controller('incrementalDestinations', function ($scope, $http) { url = "/IncrementalBackups/addDestination"; - if(type === 'SFTP'){ + if (type === 'SFTP') { var data = { type: type, IPAddress: $scope.IPAddress, password: $scope.password, backupSSHPort: $scope.backupSSHPort }; - }else { + } else { var data = { type: type, AWS_ACCESS_KEY_ID: $scope.AWS_ACCESS_KEY_ID, diff --git a/IncBackups/templates/IncBackups/createBackup.html b/IncBackups/templates/IncBackups/createBackup.html index 23a65a281..6515cffb6 100755 --- a/IncBackups/templates/IncBackups/createBackup.html +++ b/IncBackups/templates/IncBackups/createBackup.html @@ -1,52 +1,58 @@ - {% extends "baseTemplate/index.html" %} {% load i18n %} {% block title %}{% trans "Create Incremental Backup" %}{% endblock %} {% block content %} -{% load static %} + {% load static %} -{% get_current_language as LANGUAGE_CODE %} - + {% get_current_language as LANGUAGE_CODE %} + -
{% trans "This page can be used to create incremental backups for your websites." %}
-{% trans "This page can be used to create incremental backups for your websites." %}
+
-
+