def switchTOLSWS(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson('status', 0) data = json.loads(request.body) try: licenseKey = data['licenseKey'] except: licenseKey = 'trial' execPath = "sudo /usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/serverStatus/serverStatusUtil.py" execPath = execPath + " switchTOLSWS --licenseKey " + licenseKey ProcessUtilities.popenExecutioner(execPath) time.sleep(2) data_ret = { 'status': 1, 'error_message': "None", } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'status': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def submitRestore(self, data = None, userID = None): try: backupFile = data['backupFile'] originalFile = "/home/backup/" + backupFile if not os.path.exists(originalFile): dir = data['dir'] else: dir = "CyberPanelRestore" currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() execPath = "sudo nice -n 10 /usr/local/CyberCP/bin/python2 " + virtualHostUtilities.cyberPanel + "/plogical/backupUtilities.py" execPath = execPath + " submitRestore --backupFile " + backupFile + " --dir " + dir ProcessUtilities.popenExecutioner(execPath) time.sleep(4) final_dic = {'restoreStatus': 1, 'error_message': "None"} final_json = json.dumps(final_dic) return HttpResponse(final_json) except BaseException, msg: final_dic = {'restoreStatus': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def remoteBackupRestore(self, userID = None, data = None): try: currentACL = ACLManager.loadedACL(userID) if ACLManager.currentContextPermission(currentACL, 'remoteBackups') == 0: return ACLManager.loadErrorJson('remoteTransferStatus', 0) backupDir = data['backupDir'] backupDirComplete = "/home/backup/transfer-" + str(backupDir) # adminEmail = admin.email ## execPath = "/usr/local/CyberCP/bin/python2 " + virtualHostUtilities.cyberPanel + "/plogical/remoteTransferUtilities.py" execPath = execPath + " remoteBackupRestore --backupDirComplete " + backupDirComplete + " --backupDir " + str( backupDir) ProcessUtilities.popenExecutioner(execPath) time.sleep(3) data = {'remoteRestoreStatus': 1, 'error_message': 'None'} json_data = json.dumps(data) return HttpResponse(json_data) except BaseException, msg: data = {'remoteRestoreStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data) return HttpResponse(json_data)
def installSpamAssassin(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() try: execPath = "/usr/local/CyberCP/bin/python2 " + virtualHostUtilities.cyberPanel + "/plogical/mailUtilities.py" execPath = execPath + " installSpamAssassin" ProcessUtilities.popenExecutioner(execPath) final_json = json.dumps({'status': 1, 'error_message': "None"}) return HttpResponse(final_json) except BaseException,msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json) except KeyError: final_dic = {'status': 0, 'error_message': "Not Logged In, please refresh the page or login again."} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def remoteTransfer(request): try: if request.method == "POST": data = json.loads(request.body) username = data['username'] password = data['password'] admin = Administrator.objects.get(userName=username) if admin.api == 0: data_ret = { "transferStatus": 0, 'error_message': "API Access Disabled." } json_data = json.dumps(data_ret) return HttpResponse(json_data) ipAddress = data['ipAddress'] accountsToTransfer = data['accountsToTransfer'] if hashPassword.check_password(admin.password, password): dir = str(randint(1000, 9999)) ## mailUtilities.checkHome() path = "/home/cyberpanel/accounts-" + str(randint(1000, 9999)) writeToFile = open(path, 'w') for items in accountsToTransfer: writeToFile.writelines(items + "\n") writeToFile.close() ## Accounts to transfer is a path to file, containing accounts. execPath = "/usr/local/CyberCP/bin/python2 " + virtualHostUtilities.cyberPanel + "/plogical/remoteTransferUtilities.py" execPath = execPath + " remoteTransfer --ipAddress " + ipAddress + " --dir " + dir + " --accountsToTransfer " + path ProcessUtilities.popenExecutioner(execPath) return HttpResponse( json.dumps({ "transferStatus": 1, "dir": dir })) ## else: data_ret = { 'transferStatus': 0, 'error_message': "Could not authorize access to API." } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data = {'transferStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data) return HttpResponse(json_data)
def saveSettings(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() data = json.loads(request.body) name = data['name'] SPEED = data['SPEED'] VMEM = data['VMEM'] PMEM = data['PMEM'] IO = data['IO'] IOPS = data['IOPS'] EP = data['EP'] NPROC = data['NPROC'] INODESsoft = data['INODESsoft'] INODEShard = data['INODEShard'] clPackage = CLPackages.objects.get(name=name) clPackage.speed = SPEED clPackage.vmem = VMEM clPackage.pmem = PMEM clPackage.io = IO clPackage.iops = IOPS clPackage.ep = EP clPackage.nproc = NPROC clPackage.inodessoft = INODESsoft clPackage.inodeshard = INODEShard clPackage.save() command = 'sudo lvectl package-set %s --speed=%s --pmem=%s --io=%s --nproc=%s --iops=%s --vmem=%s --ep=%s' % ( name, SPEED, PMEM, IO, NPROC, IOPS, VMEM, EP) ProcessUtilities.executioner(command) command = 'sudo lvectl apply all' ProcessUtilities.popenExecutioner(command) data_ret = {'status': 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'status': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def submitCreatePackage(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: return ACLManager.loadErrorJson() data = json.loads(request.body) selectedPackage = data['selectedPackage'] package = Package.objects.get(packageName=selectedPackage) if package.clpackages_set.all().count() == 1: data_ret = {'status': 0, 'error_message': 'This package already have one associated CloudLinux Package.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) name = data['name'] SPEED = data['SPEED'] VMEM = data['VMEM'] PMEM = data['PMEM'] IO = data['IO'] IOPS = data['IOPS'] EP = data['EP'] NPROC = data['NPROC'] INODESsoft = data['INODESsoft'] INODEShard = data['INODEShard'] clPackage = CLPackages(name=name, owner=package, speed=SPEED, vmem=VMEM, pmem=PMEM, io=IO, iops=IOPS, ep=EP, nproc=NPROC, inodessoft=INODESsoft, inodeshard=INODEShard) clPackage.save() command = 'sudo lvectl package-set %s --speed=%s --pmem=%s --io=%s --nproc=%s --iops=%s --vmem=%s --ep=%s' % (name, SPEED, PMEM, IO, NPROC, IOPS, VMEM, EP) ProcessUtilities.executioner(command) command = 'sudo lvectl apply all' ProcessUtilities.popenExecutioner(command) data_ret = {'status': 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'status': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def changePermissions(request): try: userID = request.session['userID'] admin = Administrator.objects.get(pk=userID) try: data = json.loads(request.body) domainName = data['domainName'] currentACL = ACLManager.loadedACL(userID) if ACLManager.checkOwnership(domainName, admin, currentACL) == 1: pass else: return ACLManager.loadErrorJson('permissionsChanged', 0) website = Websites.objects.get(domain=domainName) externalApp = website.externalApp command = "sudo chown -R " + externalApp + ":" + externalApp + " /home/" + domainName ProcessUtilities.popenExecutioner(command) command = "sudo chown -R lscpd:lscpd /home/" + domainName + "/logs" ProcessUtilities.popenExecutioner(command) command = "sudo find %s -type d -exec chmod 0755 {} \;" % ( "/home/" + domainName + "/public_html") ProcessUtilities.popenExecutioner(command) command = "sudo find %s -type f -exec chmod 0644 {} \;" % ( "/home/" + domainName + "/public_html") ProcessUtilities.popenExecutioner(command) data_ret = {'permissionsChanged': 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: logging.CyberCPLogFileWriter.writeToFile(str(msg)) data_ret = {'permissionsChanged': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: return redirect(loadLoginPage)
def switchTOLSWSStatus(request): try: command = 'sudo cat ' + serverStatusUtil.ServerStatusUtil.lswsInstallStatusPath output = ProcessUtilities.outputExecutioner(command) if output.find('[404]') > -1: command = "sudo rm -f " + serverStatusUtil.ServerStatusUtil.lswsInstallStatusPath ProcessUtilities.popenExecutioner(command) data_ret = { 'status': 1, 'abort': 1, 'requestStatus': output, 'installed': 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data) elif output.find('[200]') > -1: command = "sudo rm -f " + serverStatusUtil.ServerStatusUtil.lswsInstallStatusPath ProcessUtilities.popenExecutioner(command) data_ret = { 'status': 1, 'abort': 1, 'requestStatus': output, 'installed': 1 } json_data = json.dumps(data_ret) return HttpResponse(json_data) else: data_ret = { 'status': 1, 'abort': 0, 'requestStatus': output, 'installed': 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: command = "sudo rm -f " + serverStatusUtil.ServerStatusUtil.lswsInstallStatusPath ProcessUtilities.popenExecutioner(command) data_ret = { 'status': 0, 'abort': 1, 'requestStatus': str(msg), 'installed': 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data)