Merge branch 'v2.5.5-dev' of https://github.com/master3395/cyberpanel into v2.5.5-dev

This commit is contained in:
Master3395
2025-10-09 23:00:46 +02:00
2 changed files with 116 additions and 0 deletions

View File

@@ -320,6 +320,10 @@ class FileManager:
command = "touch " + self.returnPathEnclosed(self.data['fileName'])
ProcessUtilities.executioner(command, website.externalApp)
self.changeOwner(self.returnPathEnclosed(self.data['fileName']))
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
except:
homePath = '/'
@@ -352,6 +356,10 @@ class FileManager:
ProcessUtilities.executioner(command, website.externalApp)
self.changeOwner(self.returnPathEnclosed(self.data['folderName']))
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
except:
homePath = '/'
@@ -431,6 +439,10 @@ class FileManager:
if result.find('cannot') > -1 or result.find('Permission denied') > -1:
return self.ajaxPre(0, f'Failed to delete {item}: {result}')
logging.CyberCPLogFileWriter.writeToFile(f"Successfully deleted: {itemPath}")
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
else:
# Move to trash
trashPath = '%s/.trash' % (self.homePath)
@@ -461,6 +473,10 @@ class FileManager:
return self.ajaxPre(0, f'Failed to move {item} to trash: {result}')
logging.CyberCPLogFileWriter.writeToFile(f"Successfully moved to trash: {itemPath}")
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
if RemoveOK == 0:
logging.CyberCPLogFileWriter.writeToFile(f"Restoring chattr +i flags for {self.homePath}")
@@ -590,6 +606,10 @@ class FileManager:
tItem.delete()
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)
@@ -622,6 +642,11 @@ class FileManager:
self.data['newPath'])
ProcessUtilities.executioner(command, website.externalApp)
self.changeOwner(self.data['newPath'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)
@@ -638,6 +663,10 @@ class FileManager:
ProcessUtilities.executioner(command, website.externalApp)
self.changeOwner(self.data['newPath'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
except:
@@ -657,6 +686,11 @@ class FileManager:
self.data['newPath'])
ProcessUtilities.executioner(command,)
self.changeOwner(self.data['newPath'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)
@@ -675,6 +709,10 @@ class FileManager:
self.changeOwner(self.data['newPath'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)
@@ -710,6 +748,10 @@ class FileManager:
self.data['newPath'] + '/' + item)
ProcessUtilities.executioner(command, website.externalApp)
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
#self.changeOwner(self.data['newPath'])
#self.fixPermissions(domainName)
@@ -739,6 +781,10 @@ class FileManager:
self.changeOwner(self.data['newPath'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)
@@ -925,6 +971,11 @@ class FileManager:
ProcessUtilities.executioner(command, website.externalApp)
self.changeOwner(self.returnPathEnclosed(self.data['completePath'] + '/' + myfile.name))
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
try:
os.remove(UploadPath + RanddomFileName)
except:
@@ -947,6 +998,11 @@ class FileManager:
ProcessUtilities.executioner(command)
self.changeOwner(self.returnPathEnclosed(self.data['completePath'] + '/' + myfile.name))
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
try:
os.remove(UploadPath + RanddomFileName)
except:
@@ -993,6 +1049,10 @@ class FileManager:
ProcessUtilities.executioner(command, website.externalApp)
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
#self.fixPermissions(domainName)
except:
@@ -1014,6 +1074,10 @@ class FileManager:
ProcessUtilities.executioner(command)
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)
@@ -1054,6 +1118,10 @@ class FileManager:
ProcessUtilities.executioner(finalCommand, website.externalApp)
self.changeOwner(self.data['compressedFileName'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
except:
if self.data['compressionType'] == 'zip':
compressedFileName = self.returnPathEnclosed(
@@ -1080,6 +1148,10 @@ class FileManager:
self.changeOwner(self.data['compressedFileName'])
## Update disk usage in background
command = "/usr/local/CyberCP/bin/python /usr/local/CyberCP/plogical/IncScheduler.py UpdateDiskUsageForceDomain --domainName %s" % (domainName)
ProcessUtilities.popenExecutioner(command)
json_data = json.dumps(finalData)
return HttpResponse(json_data)

View File

@@ -1173,6 +1173,42 @@ Automatic backup failed for %s on %s.
except BaseException as msg:
logging.writeToFile('%s. [CalculateAndUpdateDiskUsage:753]' % (str(msg)))
@staticmethod
def CalculateAndUpdateDiskUsageDomain(domainName):
"""Calculate and update disk usage for a specific domain"""
try:
website = Websites.objects.get(domain=domainName)
try:
config = json.loads(website.config)
except:
config = {}
# Calculate email disk usage
eDomains = website.domains_set.all()
for eDomain in eDomains:
for email in eDomain.eusers_set.all():
emailPath = '/home/vmail/%s/%s' % (website.domain, email.email.split('@')[0])
email.DiskUsage = virtualHostUtilities.getDiskUsageofPath(emailPath)
email.save()
print('Disk Usage of %s is %s' % (email.email, email.DiskUsage))
# Calculate website disk usage
config['DiskUsage'], config['DiskUsagePercentage'] = virtualHostUtilities.getDiskUsage(
"/home/" + website.domain, website.package.diskSpace)
# Calculate bandwidth usage
from plogical.vhost import vhost
config['bwInMB'], config['bwUsage'] = vhost.findDomainBW(website.domain, int(website.package.bandwidth))
# Save configuration
website.config = json.dumps(config)
website.save()
return 1
except BaseException as msg:
logging.writeToFile('Failed to update disk usage for %s: %s. [CalculateAndUpdateDiskUsageDomain]' % (domainName, str(msg)))
return 0
@staticmethod
def WPUpdates():
from cloudAPI.models import WPDeployments
@@ -1749,12 +1785,20 @@ def main():
parser = argparse.ArgumentParser(description='CyberPanel Installer')
parser.add_argument('function', help='Specific a function to call!')
parser.add_argument('--planName', help='Plan name for AWS!')
parser.add_argument('--domainName', help='Domain name for UpdateDiskUsageForceDomain')
args = parser.parse_args()
if args.function == 'UpdateDiskUsageForce':
IncScheduler.CalculateAndUpdateDiskUsage()
return 0
if args.function == 'UpdateDiskUsageForceDomain':
if args.domainName:
IncScheduler.CalculateAndUpdateDiskUsageDomain(args.domainName)
else:
print('Error: --domainName argument is required for UpdateDiskUsageForceDomain')
return 0
if args.function == '30 Minutes' or args.function == '1 Hour' or args.function == '6 Hours' or args.function == '12 Hours' or args.function == '1 Day' or args.function == '3 Days' or args.function == '1 Week':
# IncScheduler.refresh_access_token()