Improved Website and Domain creation.

This commit is contained in:
usmannasir
2018-07-30 17:33:28 +05:00
parent b1b90e74fc
commit c5dd1e4ed7
7 changed files with 749 additions and 295 deletions

View File

@@ -36,19 +36,32 @@ class virtualHostUtilities:
cyberPanel = "/usr/local/CyberCP"
@staticmethod
def createVirtualHost(virtualHostName, administratorEmail, phpVersion, virtualHostUser, numberOfSites, ssl, sslPath,
dkimCheck, openBasedir, websiteOwner, packageName):
dkimCheck, openBasedir, websiteOwner, packageName, tempStatusPath = '/home/cyberpanel/fakePath'):
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Running some checks..,0')
statusFile.close()
try:
if Websites.objects.filter(domain=virtualHostName).count() > 0:
print "0, This website already exists."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("This website already exists. [404]")
statusFile.close()
return 0, "This website already exists."
if ChildDomains.objects.filter(domain=virtualHostName).count() > 0:
print "0, This website already exists as child domain."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("This website already exists as child domain. [404]")
statusFile.close()
return 0, "This website already exists as child domain."
####### Limitations Check End
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Creating DNS records..,10')
statusFile.close()
##### Zone creation
admin = Administrator.objects.get(userName=websiteOwner)
@@ -57,12 +70,20 @@ class virtualHostUtilities:
## zone creation
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Setting up directories..,25')
statusFile.close()
if vhost.checkIfVirtualHostExists(virtualHostName) == 1:
print "0, Virtual Host Directory already exists!"
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("Virtual Host Directory already exists. [404]")
statusFile.close()
return 0, "Virtual Host Directory already exists!"
if vhost.checkIfAliasExists(virtualHostName) == 1:
print "0, This domain exists as Alias."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("This domain exists as Alias. [404]")
statusFile.close()
return 0, "This domain exists as Alias."
if dkimCheck == 1:
@@ -78,10 +99,18 @@ class virtualHostUtilities:
if retValues[0] == 0:
raise BaseException(retValues[1])
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Creating configurations..,50')
statusFile.close()
retValues = vhost.createConfigInMainVirtualHostFile(virtualHostName)
if retValues[0] == 0:
raise BaseException(retValues[1])
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Setting up SSL..,70')
statusFile.close()
if ssl == 1:
installUtilities.installUtilities.reStartLiteSpeed()
retValues = sslUtilities.issueSSLForDomain(virtualHostName, administratorEmail, sslPath)
@@ -97,6 +126,10 @@ class virtualHostUtilities:
## Create Configurations ends here
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('DKIM Setup..,90')
statusFile.close()
## DKIM Check
if dkimCheck == 1:
@@ -110,13 +143,17 @@ class virtualHostUtilities:
website.save()
print "1,None"
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("Website successfully created. [200]")
statusFile.close()
return 1, 'None'
except BaseException, msg:
vhost.deleteVirtualHostConfigurations(virtualHostName, numberOfSites)
logging.CyberCPLogFileWriter.writeToFile(str(msg) + " [createVirtualHost]")
print "0," + str(msg)
statusFile = open(tempStatusPath, 'w')
statusFile.writelines(str(msg) + " [404]")
statusFile.close()
return 0, str(msg)
@staticmethod
@@ -774,8 +811,11 @@ class virtualHostUtilities:
print "0," + str(msg)
@staticmethod
def createDomain(masterDomain, virtualHostName, phpVersion, path, ssl, dkimCheck, openBasedir, restore, owner=None):
def createDomain(masterDomain, virtualHostName, phpVersion, path, ssl, dkimCheck, openBasedir, restore, owner=None, tempStatusPath = '/home/cyberpanel/fakePath'):
try:
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Running some checks..,0')
statusFile.close()
## Check if this domain either exists as website or child domain
@@ -784,11 +824,15 @@ class virtualHostUtilities:
DNS.dnsTemplate(virtualHostName, admin)
if Websites.objects.filter(domain=virtualHostName).count() > 0:
print "0, This Domain already exists as a website."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("This Domain already exists as a website. [404]")
statusFile.close()
return 0, "This Domain already exists as a website."
if ChildDomains.objects.filter(domain=virtualHostName).count() > 0:
print "0, This domain already exists as child domain."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("This domain already exists as child domain. [404]")
statusFile.close()
return 0, "This domain already exists as child domain."
####### Limitations check
@@ -801,7 +845,9 @@ class virtualHostUtilities:
elif domainsInPackage > master.childdomains_set.all().count():
pass
else:
print "0, Exceeded maximum number of domains for this package"
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("Exceeded maximum number of domains for this package. [404]")
statusFile.close()
return 0, "Exceeded maximum number of domains for this package"
@@ -809,13 +855,21 @@ class virtualHostUtilities:
if vhost.checkIfVirtualHostExists(virtualHostName) == 1:
print "0, Virtual Host Directory already exists!"
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("Virtual Host Directory already exists. [404]")
statusFile.close()
return 0, "Virtual Host Directory already exists!"
if vhost.checkIfAliasExists(virtualHostName) == 1:
print "0, This domain exists as Alias."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("This domain exists as Alias. [404]")
statusFile.close()
return 0, "This domain exists as Alias."
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('DKIM Setup..,30')
statusFile.close()
if dkimCheck == 1:
if mailUtilities.checkIfDKIMInstalled() == 0:
raise BaseException("OpenDKIM is not installed, install OpenDKIM from DKIM Manager.")
@@ -826,6 +880,10 @@ class virtualHostUtilities:
FNULL = open(os.devnull, 'w')
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Creating configurations..,50')
statusFile.close()
retValues = vhost.createDirectoryForDomain(masterDomain, virtualHostName, phpVersion, path,
master.adminEmail, master.externalApp, openBasedir)
if retValues[0] == 0:
@@ -838,6 +896,10 @@ class virtualHostUtilities:
## Now restart litespeed after initial configurations are done
statusFile = open(tempStatusPath, 'w')
statusFile.writelines('Creating SSL..,50')
statusFile.close()
if ssl == 1:
installUtilities.installUtilities.reStartLiteSpeed()
@@ -862,7 +924,9 @@ class virtualHostUtilities:
website.save()
print "1,None"
statusFile = open(tempStatusPath, 'w')
statusFile.writelines("Domain successfully created. [200]")
statusFile.close()
return 1, "None"
except BaseException, msg:
@@ -870,7 +934,9 @@ class virtualHostUtilities:
vhost.deleteCoreConf(virtualHostName, numberOfWebsites)
logging.CyberCPLogFileWriter.writeToFile(
str(msg) + " [createDomain]")
print "0," + str(msg)
statusFile = open(tempStatusPath, 'w')
statusFile.writelines(str(msg) + ". [404]")
statusFile.close()
return 0, str(msg)
@staticmethod
@@ -994,7 +1060,6 @@ def main():
## Arguments for OpenBasedir
parser.add_argument('--openBasedirValue', help='open_base dir protection value!')
parser.add_argument('--tempStatusPath', help='Temporary Status file path.')
@@ -1012,7 +1077,12 @@ def main():
except:
openBasedir = 0
virtualHostUtilities.createVirtualHost(args.virtualHostName, args.administratorEmail, args.phpVersion, args.virtualHostUser, int(args.numberOfSites), int(args.ssl), args.sslPath, dkimCheck, openBasedir, args.websiteOwner, args.package)
try:
tempStatusPath = args.tempStatusPath
except:
tempStatusPath = '/home/cyberpanel/fakePath'
virtualHostUtilities.createVirtualHost(args.virtualHostName, args.administratorEmail, args.phpVersion, args.virtualHostUser, int(args.numberOfSites), int(args.ssl), args.sslPath, dkimCheck, openBasedir, args.websiteOwner, args.package, tempStatusPath)
elif args.function == "deleteVirtualHostConfigurations":
vhost.deleteVirtualHostConfigurations(args.virtualHostName,int(args.numberOfSites))
elif args.function == "createDomain":
@@ -1026,7 +1096,12 @@ def main():
except:
openBasedir = 0
virtualHostUtilities.createDomain(args.masterDomain, args.virtualHostName, args.phpVersion, args.path, int(args.ssl), dkimCheck, openBasedir, args.restore, args.websiteOwner)
try:
tempStatusPath = args.tempStatusPath
except:
tempStatusPath = '/home/cyberpanel/fakePath'
virtualHostUtilities.createDomain(args.masterDomain, args.virtualHostName, args.phpVersion, args.path, int(args.ssl), dkimCheck, openBasedir, args.restore, args.websiteOwner, tempStatusPath)
elif args.function == "issueSSL":
virtualHostUtilities.issueSSL(args.virtualHostName,args.path,args.administratorEmail)
elif args.function == "changePHP":