Files
CyberPanel/cloudAPI/cloudManager.py

929 lines
32 KiB
Python
Raw Normal View History

2018-11-08 13:19:36 +05:00
from loginSystem.models import Administrator
from django.shortcuts import HttpResponse
import json
from plogical.website import WebsiteManager
2018-11-20 15:43:43 +05:00
from plogical.acl import ACLManager
2018-11-08 13:19:36 +05:00
from plogical.virtualHostUtilities import virtualHostUtilities
2018-11-20 15:43:43 +05:00
from websiteFunctions.models import Websites
2018-11-08 13:19:36 +05:00
import subprocess, shlex
from databases.databaseManager import DatabaseManager
from dns.dnsManager import DNSManager
from mailServer.mailserverManager import MailServerManager
from ftp.ftpManager import FTPManager
2018-11-26 02:32:30 +05:00
from manageSSL.views import issueSSL, obtainHostNameSSL, obtainMailServerSSL
2018-11-08 13:19:36 +05:00
from plogical.backupManager import BackupManager
2018-11-16 14:41:40 +05:00
import userManagment.views as um
from packages.packagesManager import PackagesManager
2018-11-20 15:43:43 +05:00
from plogical.processUtilities import ProcessUtilities
2018-11-21 14:50:27 +05:00
from firewall.firewallManager import FirewallManager
from serverLogs.views import getLogsFromFile
from random import randint
from highAvailability.haManager import HAManager
from plogical.httpProc import httpProc
2018-12-13 04:23:08 +05:00
from s3Backups.s3Backups import S3Backups
import os
2018-12-24 20:21:14 +05:00
from serverStatus.views import topProcessesStatus, killProcess
2018-11-08 13:19:36 +05:00
class CloudManager:
2018-11-20 15:43:43 +05:00
def __init__(self, data=None, admin = None):
2018-11-08 13:19:36 +05:00
self.data = data
2018-11-20 15:43:43 +05:00
self.admin = admin
2018-11-08 13:19:36 +05:00
def ajaxPre(self, status, errorMessage):
final_dic = {'status': status, 'error_message': errorMessage}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
2018-11-20 15:43:43 +05:00
def verifyLogin(self, request):
2018-11-08 13:19:36 +05:00
try:
2018-11-20 15:43:43 +05:00
if request.META['HTTP_AUTHORIZATION'] == self.admin.token:
return 1, self.ajaxPre(1, None)
2018-11-08 13:19:36 +05:00
else:
2018-11-20 15:43:43 +05:00
return 0, self.ajaxPre(0, 'Invalid login information.')
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchWebsites(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.getFurtherAccounts(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitWebsiteDeletion(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
wm = WebsiteManager()
return wm.submitWebsiteDeletion(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitWebsiteCreation(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.submitWebsiteCreation(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchWebsiteDataJSON(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.fetchWebsiteDataJSON(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchWebsiteData(self):
try:
2018-11-20 15:43:43 +05:00
currentACL = ACLManager.loadedACL(self.admin.pk)
website = Websites.objects.get(domain=self.data['domainName'])
admin = Administrator.objects.get(pk=self.admin.pk)
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
if ACLManager.checkOwnership(self.data['domainName'], admin, currentACL) == 1:
pass
else:
return ACLManager.loadErrorJson()
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
Data = {}
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
Data['ftpAllowed'] = website.package.ftpAccounts
Data['ftpUsed'] = website.users_set.all().count()
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
Data['dbUsed'] = website.databases_set.all().count()
Data['dbAllowed'] = website.package.dataBases
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
diskUsageDetails = virtualHostUtilities.getDiskUsage("/home/" + self.data['domainName'],
website.package.diskSpace)
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
## bw usage calculation
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
try:
execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"
execPath = execPath + " findDomainBW --virtualHostName " + self.data[
'domainName'] + " --bandwidth " + str(
website.package.bandwidth)
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
output = subprocess.check_output(shlex.split(execPath))
bwData = output.split(",")
except BaseException:
bwData = [0, 0]
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
## bw usage calculations
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
Data['bwAllowed'] = website.package.bandwidth
Data['bwUsed'] = bwData[0]
Data['bwUsage'] = bwData[1]
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
if diskUsageDetails != None:
if diskUsageDetails[1] > 100:
diskUsageDetails[1] = 100
2018-11-08 13:19:36 +05:00
2018-11-20 15:43:43 +05:00
Data['diskUsage'] = diskUsageDetails[1]
Data['diskUsed'] = diskUsageDetails[0]
Data['diskAllowed'] = website.package.diskSpace
2018-11-08 13:19:36 +05:00
else:
2018-11-20 15:43:43 +05:00
Data['diskUsed'] = 0
Data['diskUsage'] = 0
Data['diskInMBTotal'] = website.package.diskSpace
Data['status'] = 1
final_json = json.dumps(Data)
return HttpResponse(final_json)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchModifyData(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.submitWebsiteModify(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def saveModifications(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.saveWebsiteChanges(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitDBCreation(self):
try:
2018-11-20 15:43:43 +05:00
dm = DatabaseManager()
return dm.submitDBCreation(self.admin.pk, self.data, 1)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchDatabases(self):
try:
2018-11-20 15:43:43 +05:00
dm = DatabaseManager()
return dm.fetchDatabases(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitDatabaseDeletion(self):
try:
2018-11-20 15:43:43 +05:00
dm = DatabaseManager()
return dm.submitDatabaseDeletion(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def changePassword(self):
try:
2018-11-20 15:43:43 +05:00
dm = DatabaseManager()
return dm.changePassword(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def getCurrentRecordsForDomain(self):
try:
2018-11-20 15:43:43 +05:00
dm = DNSManager()
return dm.getCurrentRecordsForDomain(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deleteDNSRecord(self):
try:
2018-11-20 15:43:43 +05:00
dm = DNSManager()
return dm.deleteDNSRecord(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def addDNSRecord(self):
try:
2018-11-20 15:43:43 +05:00
dm = DNSManager()
return dm.addDNSRecord(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitEmailCreation(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.submitEmailCreation()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def getEmailsForDomain(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.getEmailsForDomain()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitEmailDeletion(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.submitEmailDeletion()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitPasswordChange(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.submitPasswordChange()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchCurrentForwardings(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.fetchCurrentForwardings()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitForwardDeletion(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.submitForwardDeletion()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitEmailForwardingCreation(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.submitEmailForwardingCreation()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchDKIMKeys(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.fetchDKIMKeys()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def generateDKIMKeys(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
msm = MailServerManager(request)
return msm.generateDKIMKeys()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitFTPCreation(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
fm = FTPManager(request)
return fm.submitFTPCreation()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def getAllFTPAccounts(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
fm = FTPManager(request)
return fm.getAllFTPAccounts()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitFTPDelete(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
fm = FTPManager(request)
return fm.submitFTPDelete()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def changeFTPPassword(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
fm = FTPManager(request)
return fm.changePassword()
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def issueSSL(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return issueSSL(request)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def statusFunc(self):
try:
statusFile = self.data['statusFile']
statusData = open(statusFile, 'r').readlines()
lastLine = statusData[-1]
if lastLine.find('[200]') > -1:
command = 'sudo rm -f ' + statusFile
subprocess.call(shlex.split(command))
data_ret = {'status': 1, 'abort': 1, 'installationProgress': "100", 'currentStatus': lastLine}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
elif lastLine.find('[404]') > -1:
data_ret = {'status': 0, 'abort': 1, 'installationProgress': "0", 'error_message': lastLine}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
else:
progress = lastLine.split(',')
currentStatus = progress[0]
try:
installationProgress = progress[1]
except:
installationProgress = 0
2018-11-20 15:43:43 +05:00
data_ret = {'status': 1, 'abort': 0, 'installationProgress': installationProgress,
'currentStatus': currentStatus}
2018-11-08 13:19:36 +05:00
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException, msg:
2018-11-20 15:43:43 +05:00
data_ret = {'status': 0, 'abort': 0, 'installationProgress': "0", 'errorMessage': str(msg)}
2018-11-08 13:19:36 +05:00
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def submitDomainCreation(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.submitDomainCreation(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchDomains(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.fetchDomains(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitDomainDeletion(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.submitDomainDeletion(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def changeOpenBasedir(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.changeOpenBasedir(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def changePHP(self):
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.changePHP(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def backupStatusFunc(self):
try:
2018-11-20 15:43:43 +05:00
bm = BackupManager()
return bm.backupStatus(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
2018-11-20 15:43:43 +05:00
data_ret = {'status': 0, 'abort': 0, 'installationProgress': "0", 'errorMessage': str(msg)}
2018-11-08 13:19:36 +05:00
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
def submitBackupCreation(self):
try:
2018-11-20 15:43:43 +05:00
bm = BackupManager()
return bm.submitBackupCreation(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def getCurrentBackups(self):
try:
2018-11-20 15:43:43 +05:00
bm = BackupManager()
return bm.getCurrentBackups(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deleteBackup(self):
try:
2018-11-20 15:43:43 +05:00
bm = BackupManager()
return bm.deleteBackup(self.admin.pk, self.data)
2018-11-08 13:19:36 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
def fetchACLs(self):
try:
2018-11-20 15:43:43 +05:00
userID = self.admin.pk
currentACL = ACLManager.loadedACL(userID)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if currentACL['admin'] == 1:
aclNames = ACLManager.unFileteredACLs()
elif currentACL['changeUserACL'] == 1:
aclNames = ACLManager.unFileteredACLs()
elif currentACL['createNewUser'] == 1:
aclNames = ['user']
else:
return ACLManager.loadError()
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
json_data = "["
checker = 0
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
for items in aclNames:
dic = {'acl': items}
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if checker == 0:
json_data = json_data + json.dumps(dic)
checker = 1
2018-11-16 14:41:40 +05:00
else:
2018-11-20 15:43:43 +05:00
json_data = json_data + ',' + json.dumps(dic)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
json_data = json_data + ']'
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
return HttpResponse(final_json)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitUserCreation(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.submitUserCreation(request)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchUsers(self):
try:
2018-11-20 15:43:43 +05:00
userID = self.admin.pk
allUsers = ACLManager.loadUserObjects(userID)
json_data = "["
checker = 0
for user in allUsers:
dic = {
"id": user.id,
"userName": user.userName,
"firstName": user.firstName,
"lastName": user.lastName,
"email": user.email,
"acl": user.acl.name,
"websitesLimit": user.initWebsitesLimit
}
if checker == 0:
json_data = json_data + json.dumps(dic)
checker = 1
else:
json_data = json_data + ',' + json.dumps(dic)
json_data = json_data + ']'
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
return HttpResponse(final_json)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitUserDeletion(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.submitUserDeletion(request)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def saveModificationsUser(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.saveModifications(request)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def userWithResellerPriv(self):
try:
2018-11-20 15:43:43 +05:00
userID = self.admin.pk
allUsers = ACLManager.userWithResellerPriv(userID)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
json_data = "["
checker = 0
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
for user in allUsers:
dic = {
"userName": user,
}
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if checker == 0:
json_data = json_data + json.dumps(dic)
checker = 1
else:
json_data = json_data + ',' + json.dumps(dic)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
json_data = json_data + ']'
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
return HttpResponse(final_json)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def saveResellerChanges(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.saveResellerChanges(request)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def changeACLFunc(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.changeACLFunc(request)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def createACLFunc(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.createACLFunc(request)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def findAllACLs(self, request):
try:
2018-11-20 15:43:43 +05:00
userID = self.admin.pk
currentACL = ACLManager.loadedACL(userID)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if currentACL['admin'] == 1:
aclNames = ACLManager.findAllACLs()
else:
return ACLManager.loadErrorJson()
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
json_data = "["
checker = 0
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
for items in aclNames:
dic = {'acl': items}
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if checker == 0:
json_data = json_data + json.dumps(dic)
checker = 1
2018-11-16 14:41:40 +05:00
else:
2018-11-20 15:43:43 +05:00
json_data = json_data + ',' + json.dumps(dic)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
json_data = json_data + ']'
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
return HttpResponse(final_json)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deleteACLFunc(self, request):
try:
2018-11-20 15:43:43 +05:00
request.session['userID'] = self.admin.pk
return um.deleteACLFunc(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
def fetchACLDetails(self, request):
try:
request.session['userID'] = self.admin.pk
return um.fetchACLDetails(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
def submitACLModifications(self, request):
try:
request.session['userID'] = self.admin.pk
return um.submitACLModifications(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
def submitPackage(self, request):
try:
request.session['userID'] = self.admin.pk
pm = PackagesManager(request)
return pm.submitPackage()
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-20 15:43:43 +05:00
def fetchPackages(self, request):
2018-11-16 14:41:40 +05:00
try:
2018-11-20 15:43:43 +05:00
userID = self.admin.pk
currentACL = ACLManager.loadedACL(userID)
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if ACLManager.currentContextPermission(currentACL, 'deletePackage') == 0:
return ACLManager.loadError()
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
packageList = ACLManager.loadPackageObjects(userID, currentACL)
json_data = "["
checker = 0
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
for items in packageList:
dic = {
'packageName': items.packageName,
'allowedDomains': items.allowedDomains,
'diskSpace': items.diskSpace,
'bandwidth': items.bandwidth,
'emailAccounts': items.emailAccounts,
'dataBases': items.dataBases,
'ftpAccounts': items.ftpAccounts,
}
if checker == 0:
json_data = json_data + json.dumps(dic)
checker = 1
else:
json_data = json_data + ',' + json.dumps(dic)
json_data = json_data + ']'
final_json = json.dumps({'status': 1, 'error_message': "None", "data": json_data})
return HttpResponse(final_json)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-20 15:43:43 +05:00
def submitPackageDelete(self, request):
2018-11-16 14:41:40 +05:00
try:
2018-11-20 15:43:43 +05:00
pm = PackagesManager(request)
return pm.submitDelete()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
def submitPackageModify(self, request):
try:
pm = PackagesManager(request)
return pm.saveChanges()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
def getDataFromLogFile(self, request):
try:
wm = WebsiteManager()
return wm.getDataFromLogFile(self.admin.pk, self.data)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-20 15:43:43 +05:00
def fetchErrorLogs(self, request):
2018-11-16 14:41:40 +05:00
try:
2018-11-20 15:43:43 +05:00
wm = WebsiteManager()
return wm.fetchErrorLogs(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
def submitApplicationInstall(self, request):
try:
request.session['userID'] = self.admin.pk
wm = WebsiteManager()
2018-11-16 14:41:40 +05:00
2018-11-20 15:43:43 +05:00
if self.data['selectedApplication'] == 'WordPress with LSCache':
return wm.installWordpress(self.admin.pk, self.data)
elif self.data['selectedApplication'] == 'Prestashop':
return wm.prestaShopInstall(self.admin.pk, self.data)
elif self.data['selectedApplication'] == 'Joomla':
return wm.installJoomla(self.admin.pk, self.data)
2018-11-16 14:41:40 +05:00
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-20 15:43:43 +05:00
def obtainServer(self, request):
try:
request.session['userID'] = self.admin.pk
data_ret = {'status': 1, 'serverStatus': ProcessUtilities.decideServer()}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-21 14:50:27 +05:00
def getSSHConfigs(self):
try:
fm = FirewallManager()
return fm.getSSHConfigs(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def saveSSHConfigs(self):
try:
fm = FirewallManager()
return fm.saveSSHConfigs(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deleteSSHKey(self):
try:
fm = FirewallManager()
return fm.deleteSSHKey(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def addSSHKey(self):
try:
fm = FirewallManager()
return fm.addSSHKey(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def getCurrentRules(self):
try:
fm = FirewallManager()
return fm.getCurrentRules(self.admin.pk)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def addRule(self):
try:
fm = FirewallManager()
return fm.addRule(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deleteRule(self):
try:
fm = FirewallManager()
return fm.deleteRule(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def getLogsFromFile(self, request):
try:
request.session['userID'] = self.admin.pk
return getLogsFromFile(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-11-26 02:32:30 +05:00
def serverSSL(self, request):
try:
request.session['userID'] = self.admin.pk
if self.data['type'] == 'hostname':
return obtainHostNameSSL(request)
else:
return obtainMailServerSSL(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def setupManager(self, request):
try:
request.session['userID'] = self.admin.pk
tempStatusPath = "/home/cyberpanel/" + str(randint(1000, 9999))
self.data['tempStatusPath'] = tempStatusPath
ham = HAManager(request, self.data, 'setupNode')
ham.start()
data = {}
data['tempStatusPath'] = tempStatusPath
proc = httpProc(request, None)
return proc.ajax(1, None, data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchManagerTokens(self, request):
try:
request.session['userID'] = self.admin.pk
ham = HAManager(request, self.data, 'fetchManagerTokens')
return ham.fetchManagerTokens()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def addWorker(self, request):
try:
request.session['userID'] = self.admin.pk
ham = HAManager(request, self.data, 'fetchManagerTokens')
return ham.addWorker()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchSSHKey(self, request):
try:
pubKey = os.path.join("/root", ".ssh", 'cyberpanel.pub')
execPath = "sudo cat " + pubKey
data = subprocess.check_output(shlex.split(execPath))
data_ret = {
'status': 1,
'error_message': "None",
'pubKey': data
}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def putSSHkeyFunc(self, request):
try:
fm = FirewallManager(request)
return fm.addSSHKey(self.admin.pk, self.data)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def leaveSwarm(self, request):
try:
request.session['userID'] = self.admin.pk
ham = HAManager(request, self.data, 'leaveSwarm')
return ham.leaveSwarm()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def setUpDataNode(self, request):
try:
request.session['userID'] = self.admin.pk
ham = HAManager(request, self.data, 'setUpDataNode')
return ham.setUpDataNode()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def submitEditCluster(self, request):
try:
request.session['userID'] = self.admin.pk
ham = HAManager(request, self.data, 'submitEditCluster')
return ham.submitEditCluster()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-12-13 04:23:08 +05:00
def connectAccount(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'connectAccount')
return s3.connectAccount()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchBuckets(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'fetchBuckets')
return s3.fetchBuckets()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def createPlan(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'createPlan')
return s3.createPlan()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchBackupPlans(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'fetchBackupPlans')
return s3.fetchBackupPlans()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deletePlan(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'deletePlan')
return s3.deletePlan()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchWebsitesInPlan(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'fetchWebsitesInPlan')
return s3.fetchWebsitesInPlan()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def deleteDomainFromPlan(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'deleteDomainFromPlan')
return s3.deleteDomainFromPlan()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def savePlanChanges(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'savePlanChanges')
return s3.savePlanChanges()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def fetchBackupLogs(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'fetchBackupLogs')
return s3.fetchBackupLogs()
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def forceRunAWSBackup(self, request):
try:
request.session['userID'] = self.admin.pk
s3 = S3Backups(request, self.data, 'forceRunAWSBackup')
s3.start()
return self.ajaxPre(1, None)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
2018-12-24 20:21:14 +05:00
def systemStatus(self, request):
try:
return topProcessesStatus(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))
def killProcess(self, request):
try:
request.session['userID'] = self.admin.pk
return killProcess(request)
except BaseException, msg:
return self.ajaxPre(0, str(msg))