mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-06-27 16:49:05 +02:00
centralized execution ph2
This commit is contained in:
@@ -1,17 +1,11 @@
|
||||
#!/usr/local/CyberCP/bin/python2
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
import django
|
||||
sys.path.append('/usr/local/CyberCP')
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
|
||||
#django.setup()
|
||||
import plogical.CyberCPLogFileWriter as logging
|
||||
import argparse
|
||||
import subprocess
|
||||
import shlex
|
||||
from plogical.processUtilities import ProcessUtilities
|
||||
from xml.etree import ElementTree
|
||||
from plogical.mailUtilities import mailUtilities
|
||||
from serverStatus.serverStatusUtil import ServerStatusUtil
|
||||
|
||||
|
||||
class Container:
|
||||
packages = ['talksho']
|
||||
@@ -71,11 +65,38 @@ class Container:
|
||||
except BaseException, msg:
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||
|
||||
@staticmethod
|
||||
def submitContainerInstall():
|
||||
try:
|
||||
|
||||
mailUtilities.checkHome()
|
||||
|
||||
statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w')
|
||||
|
||||
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath,
|
||||
"Starting Packages Installation..\n", 1)
|
||||
|
||||
command = 'sudo yum install -y libcgroup-tools'
|
||||
ServerStatusUtil.executioner(command, statusFile)
|
||||
|
||||
command = 'sudo systemctl enable cgconfig'
|
||||
ServerStatusUtil.executioner(command, statusFile)
|
||||
|
||||
command = 'sudo systemctl enable cgred'
|
||||
ServerStatusUtil.executioner(command, statusFile)
|
||||
|
||||
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath,
|
||||
"Packages successfully installed.[200]\n", 1)
|
||||
|
||||
except BaseException, msg:
|
||||
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, str(msg) + ' [404].', 1)
|
||||
|
||||
def main():
|
||||
|
||||
parser = argparse.ArgumentParser(description='CyberPanel Container Manager')
|
||||
parser.add_argument('--userid', help='User ID')
|
||||
parser.add_argument('--package', help='Package')
|
||||
parser.add_argument('--function', help='Function')
|
||||
parser.add_argument('--list-all', help='List all users/packages.', action='store_true')
|
||||
parser.add_argument('--list-packages', help='List all packages.', action='store_true')
|
||||
|
||||
@@ -90,6 +111,11 @@ def main():
|
||||
Container.listAll()
|
||||
elif args['list_packages']:
|
||||
Container.listPackages()
|
||||
elif args['list_packages']:
|
||||
Container.listPackages()
|
||||
elif args["function"] == "submitContainerInstall":
|
||||
Container.submitContainerInstall()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@ from django.shortcuts import render
|
||||
from plogical.processUtilities import ProcessUtilities
|
||||
import threading as multi
|
||||
from plogical.acl import ACLManager
|
||||
from plogical.mailUtilities import mailUtilities
|
||||
import plogical.CyberCPLogFileWriter as logging
|
||||
from serverStatus.serverStatusUtil import ServerStatusUtil
|
||||
import os, stat
|
||||
from plogical.virtualHostUtilities import virtualHostUtilities
|
||||
|
||||
|
||||
class ContainerManager(multi.Thread):
|
||||
@@ -125,24 +125,9 @@ class ContainerManager(multi.Thread):
|
||||
1)
|
||||
return 0
|
||||
|
||||
mailUtilities.checkHome()
|
||||
|
||||
statusFile = open(ServerStatusUtil.lswsInstallStatusPath, 'w')
|
||||
|
||||
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath,
|
||||
"Starting Packages Installation..\n", 1)
|
||||
|
||||
command = 'sudo yum install -y libcgroup-tools'
|
||||
ServerStatusUtil.executioner(command, statusFile)
|
||||
|
||||
command = 'sudo systemctl enable cgconfig'
|
||||
ServerStatusUtil.executioner(command, statusFile)
|
||||
|
||||
command = 'sudo systemctl enable cgred'
|
||||
ServerStatusUtil.executioner(command, statusFile)
|
||||
|
||||
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath,
|
||||
"Packages successfully installed.[200]\n", 1)
|
||||
execPath = "sudo python /usr/local/CyberCP/containerization/container.py"
|
||||
execPath = execPath + " --function submitContainerInstall"
|
||||
ProcessUtilities.outputExecutioner(execPath)
|
||||
|
||||
except BaseException, msg:
|
||||
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, str(msg) + ' [404].', 1)
|
||||
|
||||
@@ -162,7 +162,7 @@ def saveWebsiteLimits(request):
|
||||
cgrules = '/etc/cgrules.conf'
|
||||
enforceString = '{} cpu,memory,blkio,net_cls {}/\n'.format(website.externalApp, website.externalApp)
|
||||
|
||||
cgrulesData = ProcessUtilities.outputExecutioner(shlex.split('sudo cat /etc/cgrules.conf')).splitlines()
|
||||
cgrulesData = ProcessUtilities.outputExecutioner('sudo cat /etc/cgrules.conf').splitlines()
|
||||
|
||||
writeToFile = open(cgrulesTemp, 'w')
|
||||
|
||||
@@ -219,7 +219,7 @@ def saveWebsiteLimits(request):
|
||||
cgrulesTemp = "/home/cyberpanel/" + str(randint(1000, 9999))
|
||||
cgrules = '/etc/cgrules.conf'
|
||||
|
||||
cgrulesData = ProcessUtilities.outputExecutioner(shlex.split('sudo cat /etc/cgrules.conf')).splitlines()
|
||||
cgrulesData = ProcessUtilities.outputExecutioner('sudo cat /etc/cgrules.conf').splitlines()
|
||||
|
||||
writeToFile = open(cgrulesTemp, 'w')
|
||||
|
||||
@@ -293,7 +293,7 @@ def getUsageData(request):
|
||||
if type == 'memory':
|
||||
|
||||
command = 'sudo cat /sys/fs/cgroup/memory/' + website.externalApp + '/memory.usage_in_bytes'
|
||||
output = str(ProcessUtilities.outputExecutioner(command, shell=True))
|
||||
output = str(ProcessUtilities.outputExecutioner(command))
|
||||
finalData['memory'] = int(float(output)/float(1024 * 1024))
|
||||
|
||||
elif type == 'io':
|
||||
@@ -305,7 +305,7 @@ def getUsageData(request):
|
||||
os.mkdir(path)
|
||||
|
||||
command = 'sudo cat /sys/fs/cgroup/blkio/' + website.externalApp + '/blkio.throttle.io_service_bytes'
|
||||
output = ProcessUtilities.outputExecutioner(command, shell=True).splitlines()
|
||||
output = ProcessUtilities.outputExecutioner(command).splitlines()
|
||||
|
||||
readCurrent = output[0].split(' ')[2]
|
||||
writeCurrent = output[1].split(' ')[2]
|
||||
@@ -332,8 +332,8 @@ def getUsageData(request):
|
||||
finalData['readRate'] = 0
|
||||
finalData['writeRate'] = 0
|
||||
except:
|
||||
command = "sudo top -b -n 1 -u " + website.externalApp + " | awk 'NR>7 { sum += $9; } END { print sum; }'"
|
||||
output = str(ProcessUtilities.outputExecutioner(command, shell=True))
|
||||
command = "top -b -n 1 -u " + website.externalApp + " | awk 'NR>7 { sum += $9; } END { print sum; }'"
|
||||
output = str(subprocess.check_output(command, shell=True))
|
||||
|
||||
finalData = {}
|
||||
if len(output) == 0:
|
||||
|
||||
Reference in New Issue
Block a user