diff --git a/CyberCP/settings.py b/CyberCP/settings.py index 031ca5f63..0c4fe719b 100755 --- a/CyberCP/settings.py +++ b/CyberCP/settings.py @@ -24,7 +24,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY = 'xr%j*p!*$0d%(-(e%@-*hyoz4$f%y77coq0u)6pwmjg4)q&19f' # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = False +DEBUG = True ALLOWED_HOSTS = ['*'] diff --git a/databases/databaseManager.py b/databases/databaseManager.py index c2a17d05c..312f29acf 100755 --- a/databases/databaseManager.py +++ b/databases/databaseManager.py @@ -130,6 +130,14 @@ class DatabaseManager: proc = httpProc(request, template, data, 'admin') return proc.render() + def Upgardemysql(self, request = None, userID = None): + data={} + data['mysqlversions']=['10.6','10.11'] + template = 'databases/Updatemysql.html' + proc = httpProc(request, template, data, 'admin') + return proc.render() + + def fetchDatabases(self, userID = None, data = None): try: diff --git a/databases/static/databases/databases.js b/databases/static/databases/databases.js index d924674ce..6ca0b2c46 100755 --- a/databases/static/databases/databases.js +++ b/databases/static/databases/databases.js @@ -836,4 +836,61 @@ app.controller('OptimizeMysql', function ($scope, $http) { }); } } -}) \ No newline at end of file +}) + + +app.controller('mysqlupdate', function ($scope, $http, $timeout) { + $scope.cyberPanelLoading = true; + $scope.dbLoading = true; + $scope.installlogs = true; + + $scope.Upgardemysql = function () { + $scope.dbLoading = false; + $scope.installform = true; + + + url = "/dataBases/upgrademysqlnow"; + + var data = { + mysqlversion: $scope.version + }; + + var config = { + headers: { + 'X-CSRFToken': getCookie('csrftoken') + } + }; + + $http.post(url, data, config).then(ListInitialData, cantLoadInitialData); + + + function ListInitialData(response) { + $scope.cyberhosting = true; + if (response.data.status === 1) { + $scope.installlogs = false; + + $timeout(getRequestStatus, 1000); + + } else { + new PNotify({ + title: 'Error!', + text: response.data.error_message, + type: 'error' + }); + } + + } + + function cantLoadInitialData(response) { + $scope.cyberhosting = true; + new PNotify({ + title: 'Error!', + text: 'Could not connect to server, please refresh this page.', + type: 'error' + }); + } + } + + + $scope.getRequestStatus +}); \ No newline at end of file diff --git a/databases/templates/databases/Updatemysql.html b/databases/templates/databases/Updatemysql.html new file mode 100644 index 000000000..8e0749327 --- /dev/null +++ b/databases/templates/databases/Updatemysql.html @@ -0,0 +1,63 @@ +{% extends "baseTemplate/index.html" %} +{% load i18n %} +{% block title %}{% trans "List Databases - CyberPanel" %}{% endblock %} +{% block content %} + + {% load static %} + {% get_current_language as LANGUAGE_CODE %} + + + +
+
+

{% trans "Upgrade Mysql" %} + +

+

{% trans "On this page you can update mysql." %}

+
+
+
+

+ {% trans "Update Mysql" %} +

+
+ +
+ +
+ +
+ +
+
+
+ +
+ + +
+
+ + +
+ + +
+
+
+
+
+
+ + + + + +{% endblock %} diff --git a/databases/templates/databases/mysqlmanager.html b/databases/templates/databases/mysqlmanager.html index c38ae4c89..2fb55c533 100644 --- a/databases/templates/databases/mysqlmanager.html +++ b/databases/templates/databases/mysqlmanager.html @@ -21,6 +21,9 @@ Optimize MySQL + + Upgrade MySQL +
diff --git a/databases/urls.py b/databases/urls.py index 8e82d52cc..47e0b0937 100755 --- a/databases/urls.py +++ b/databases/urls.py @@ -9,6 +9,8 @@ urlpatterns = [ url(r'^fetchDatabases', views.fetchDatabases, name='fetchDatabases'), url(r'^MysqlManager', views.MySQLManager, name='MysqlManager'), url(r'^OptimizeMySQL', views.OptimizeMySQL, name='OptimizeMySQL'), + url(r'^upgrademysqlnow', views.upgrademysqlnow, name='upgrademysqlnow'), + url(r'^UpgradeMySQL', views.UpgradeMySQL, name='UpgradeMySQL'), url(r'^getMysqlstatus', views.getMysqlstatus, name='getMysqlstatus'), url(r'^restartMySQL', views.restartMySQL, name='restartMySQL'), url(r'^generateRecommendations', views.generateRecommendations, name='generateRecommendations'), diff --git a/databases/views.py b/databases/views.py index b6d2328ab..f8a61a71d 100755 --- a/databases/views.py +++ b/databases/views.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- - +import time +from random import randint from django.shortcuts import redirect, HttpResponse from django.views.decorators.csrf import csrf_exempt @@ -252,6 +253,7 @@ def generateAccess(request): json_data = json.dumps(data_ret) return HttpResponse(json_data) + @csrf_exempt def fetchDetailsPHPMYAdmin(request): try: @@ -260,15 +262,13 @@ def fetchDetailsPHPMYAdmin(request): admin = Administrator.objects.get(id=userID) currentACL = ACLManager.loadedACL(userID) - - token = request.POST.get('token') username = request.POST.get('username') from plogical.httpProc import httpProc proc = httpProc(request, None, ) - #return proc.ajax(0, str(request.POST.get('token'))) + # return proc.ajax(0, str(request.POST.get('token'))) if username != admin.userName: return redirect(loadLoginPage) @@ -295,7 +295,6 @@ def fetchDetailsPHPMYAdmin(request): data['userName'] = mysqluser data['password'] = password - proc = httpProc(request, 'databases/AutoLogin.html', data, 'admin') return proc.render() @@ -370,6 +369,15 @@ def OptimizeMySQL(request): return redirect(loadLoginPage) +def UpgradeMySQL(request): + try: + userID = request.session['userID'] + dm = DatabaseManager() + return dm.Upgardemysql(request, userID) + except KeyError: + return redirect(loadLoginPage) + + def getMysqlstatus(request): try: userID = request.session['userID'] @@ -461,3 +469,34 @@ def applyMySQLChanges(request): except KeyError: return redirect(loadLoginPage) + + +def upgrademysqlnow(request): + try: + from plogical.virtualHostUtilities import virtualHostUtilities + logging.writeToFile("----------------------habbi") + userID = request.session['userID'] + + currentACL = ACLManager.loadedACL(userID) + + if currentACL['admin'] == 1: + pass + else: + return ACLManager.loadErrorJson('FilemanagerAdmin', 0) + + data = json.loads(request.body) + version =data['mysqlversion'] + tempStatusPath = "/home/cyberpanel/" + str(randint(1000, 9999)) + + + + execPath = f"/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/mysqlUtilities.py UpgradeMariaDB --version {version} --tempStatusPath {tempStatusPath}" + ProcessUtilities.popenExecutioner(execPath) + time.sleep(2) + + data_ret = {'status': 1, 'error_message': "None", + 'tempStatusPath': tempStatusPath} + json_data = json.dumps(data_ret) + return HttpResponse(json_data) + except KeyError: + return redirect(loadLoginPage)