File manager - Edit - /home/newsbmcs.com/public_html/static/img/logo/containerManager.py.tar
Back
usr/local/CyberCP/containerization/containerManager.py 0000644 00000015127 15027550255 0017161 0 ustar 00 from plogical.processUtilities import ProcessUtilities import threading as multi from plogical.acl import ACLManager import plogical.CyberCPLogFileWriter as logging from serverStatus.serverStatusUtil import ServerStatusUtil import os, stat from plogical.httpProc import httpProc class ContainerManager(multi.Thread): defaultConf = """group {groupName}{ cpu { cpu.cfs_quota_us = {cfs_quota_us}; cpu.cfs_period_us = {cfs_period_us}; } memory { memory.limit_in_bytes = {memory}m; } blkio { blkio.throttle.read_bps_device = "{major}:{minor} {io}"; blkio.throttle.write_bps_device = "{major}:{minor} {io}"; blkio.throttle.read_iops_device = "{major}:{minor} {iops}"; blkio.throttle.write_iops_device = "{major}:{minor} {iops}"; } net_cls { net_cls.classid = 0x10{net_cls}; } }""" def __init__(self, request=None, templateName=None, function=None, data=None): multi.Thread.__init__(self) self.request = request self.templateName = templateName self.function = function self.data = data def run(self): try: if self.function == 'submitContainerInstall': self.submitContainerInstall() elif self.function == 'addTrafficController': self.addTrafficController() elif self.function == 'removeLimits': self.removeLimits() except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg) + ' [ContainerManager.run]') @staticmethod def fetchHexValue(count): hexValue = format(count, '02x') if len(hexValue) == 1: return '000' + hexValue elif len(hexValue) == 2: return '00' + hexValue elif len(hexValue) == 3: return '0' + hexValue elif len(hexValue) == 3: return hexValue @staticmethod def prepConf(groupName, cfs_quota_us, cfs_period_us, memory, io, iops, net_cls): try: dev = os.stat('/')[stat.ST_DEV] major = str(os.major(dev)) minor = str(0) finalIO = str(int(io) * 1024 * 1024) ioConf = ContainerManager.defaultConf.replace('{groupName}', groupName) ioConf = ioConf.replace('{cfs_quota_us}', cfs_quota_us) ioConf = ioConf.replace('{cfs_period_us}', cfs_period_us) ioConf = ioConf.replace('{memory}', memory) ioConf = ioConf.replace('{major}', major) ioConf = ioConf.replace('{minor}', minor) ioConf = ioConf.replace('{io}', finalIO) ioConf = ioConf.replace('{iops}', str(iops)) ioConf = ioConf.replace('{net_cls}', str(net_cls)) return ioConf except BaseException as msg: logging.CyberCPLogFileWriter.writeToFile(str(msg)) return 0 def renderC(self): data = {} data['OLS'] = 0 data['notInstalled'] = 0 if ProcessUtilities.decideServer() == ProcessUtilities.OLS: data['OLS'] = 1 data['notInstalled'] = 0 proc = httpProc(self.request, 'containerization/notAvailable.html', data, 'admin') return proc.render() elif not ProcessUtilities.containerCheck(): data['OLS'] = 0 data['notInstalled'] = 1 proc = httpProc(self.request, 'containerization/notAvailable.html', data, 'admin') return proc.render() else: if self.data == None: self.data = {} self.data['OLS'] = 0 self.data['notInstalled'] = 0 proc = httpProc(self.request, self.templateName, data, 'admin') return proc.render() def submitContainerInstall(self): try: userID = self.request.session['userID'] currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass else: logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, 'Not authorized to install container packages. [404].', 1) return 0 execPath = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/containerization/container.py" execPath = execPath + " --function submitContainerInstall" ProcessUtilities.outputExecutioner(execPath) except BaseException as msg: logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, str(msg) + ' [404].', 1) def restartServices(self): command = 'sudo systemctl restart cgconfig' ProcessUtilities.executioner(command) command = 'sudo systemctl restart cgred' ProcessUtilities.executioner(command) def addTrafficController(self): command = 'sudo tc qdisc add dev eth0 root handle 10: htb default 1000' #logging.CyberCPLogFileWriter.writeToFile(command) ProcessUtilities.executioner(command) try: command = 'sudo tc class del dev eth0 classid 10:' + str(self.data['classID']) # logging.CyberCPLogFileWriter.writeToFile(command) ProcessUtilities.executioner(command) except: pass command = 'sudo tc class add dev eth0 parent 10: classid 10:1000 htb rate 100mbit' #logging.CyberCPLogFileWriter.writeToFile(command) ProcessUtilities.executioner(command) command = 'sudo tc class add dev eth0 parent 10: classid 10:' + str(self.data['classID']) + ' htb rate ' + str(self.data['rateLimit']) #logging.CyberCPLogFileWriter.writeToFile(command) ProcessUtilities.executioner(command) #if str(self.data['classID']) == '1': # command = 'sudo tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup' #else: # command = 'sudo tc filter add dev eth0 parent 10:' + str( # self.data['classID']) + ' protocol ip prio 10 handle 1: cgroup' command = 'sudo tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup' ProcessUtilities.executioner(command) self.restartServices() def removeLimits(self): command = 'sudo tc class del dev eth0 classid 10:' + str(self.data['classID']) #logging.CyberCPLogFileWriter.writeToFile(command) ProcessUtilities.executioner(command) self.restartServices()
| ver. 1.4 |
Github
|
.
| PHP 8.2.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings