Refactor -le=renew
This commit is contained in:
@@ -19,3 +19,4 @@ class WOOutputHandler(MustacheOutputHandler):
|
|||||||
return open(full_path, encoding='utf-8', mode='r').read()
|
return open(full_path, encoding='utf-8', mode='r').read()
|
||||||
else:
|
else:
|
||||||
continue
|
continue
|
||||||
|
return 1
|
||||||
|
|||||||
@@ -1069,23 +1069,39 @@ class WOSiteUpdateController(CementBaseController):
|
|||||||
else:
|
else:
|
||||||
Log.error(self, 'ngxblocker stack is not installed')
|
Log.error(self, 'ngxblocker stack is not installed')
|
||||||
elif pargs.ngxblocker == "off":
|
elif pargs.ngxblocker == "off":
|
||||||
if os.path.isfile(
|
try:
|
||||||
'/var/www/{0}/conf/nginx/ngxblocker.conf'
|
setupngxblocker(self, wo_domain, False)
|
||||||
.format(wo_domain)):
|
except SiteError as e:
|
||||||
WOFileUtils.mvfile(self, '/var/www/{0}/conf/'
|
Log.debug(self, str(e))
|
||||||
'nginx/ngxblocker.conf'
|
Log.info(self, "\nngxblocker not enabled.")
|
||||||
.format(wo_domain),
|
|
||||||
'/var/www/{0}/conf/'
|
|
||||||
'nginx/ngxblocker.conf.disabled'
|
|
||||||
.format(wo_domain))
|
|
||||||
else:
|
|
||||||
Log.error(self, "ngxblocker isn't enabled")
|
|
||||||
|
|
||||||
# Service Nginx Reload
|
# Service Nginx Reload
|
||||||
if not WOService.reload_service(self, 'nginx'):
|
if not WOService.reload_service(self, 'nginx'):
|
||||||
Log.error(self, "service nginx reload failed. "
|
Log.error(self, "service nginx reload failed. "
|
||||||
"check issues with `nginx -t` command")
|
"check issues with `nginx -t` command")
|
||||||
return 0
|
return 0
|
||||||
|
#
|
||||||
|
if (pargs.letsencrypt == 'renew' and
|
||||||
|
not (pargs.html or
|
||||||
|
pargs.php or pargs.php73 or pargs.mysql or
|
||||||
|
pargs.wp or pargs.wpfc or pargs.wpsc or
|
||||||
|
pargs.wprocket or pargs.wpce or
|
||||||
|
pargs.wpsubdir or pargs.wpsubdomain or
|
||||||
|
pargs.ngxblocker or pargs.hsts)):
|
||||||
|
|
||||||
|
if WOAcme.cert_check(self, wo_domain):
|
||||||
|
if not pargs.force:
|
||||||
|
if (SSL.getexpirationdays(self, wo_domain) > 45):
|
||||||
|
Log.error(
|
||||||
|
self,
|
||||||
|
'Your certificate expire in more than 45 days.\n'
|
||||||
|
'Add \'--force\' to force to renew')
|
||||||
|
Log.wait(self, "Renewing SSL certificate")
|
||||||
|
if WOAcme.renew(self, wo_domain):
|
||||||
|
Log.valide(self, "Renewing SSL certificate")
|
||||||
|
else:
|
||||||
|
Log.error(self, "Certificate doesn't exist")
|
||||||
|
return 0
|
||||||
|
|
||||||
if ((stype == 'php' and
|
if ((stype == 'php' and
|
||||||
oldsitetype not in ['html', 'proxy', 'php73']) or
|
oldsitetype not in ['html', 'proxy', 'php73']) or
|
||||||
@@ -1281,10 +1297,10 @@ class WOSiteUpdateController(CementBaseController):
|
|||||||
if not (acme_subdomain is True):
|
if not (acme_subdomain is True):
|
||||||
if letsencrypt is check_ssl:
|
if letsencrypt is check_ssl:
|
||||||
if letsencrypt is False:
|
if letsencrypt is False:
|
||||||
Log.error(self, "SSl is not configured for given "
|
Log.error(self, "SSL is not configured for given "
|
||||||
"site")
|
"site")
|
||||||
elif letsencrypt is True:
|
elif letsencrypt is True:
|
||||||
Log.error(self, "SSl is already configured for given "
|
Log.error(self, "SSL is already configured for given "
|
||||||
"site")
|
"site")
|
||||||
pargs.letsencrypt = False
|
pargs.letsencrypt = False
|
||||||
|
|
||||||
|
|||||||
@@ -1554,19 +1554,31 @@ def setuprocketchat(self):
|
|||||||
|
|
||||||
|
|
||||||
def setupngxblocker(self, domain, block=True):
|
def setupngxblocker(self, domain, block=True):
|
||||||
if os.path.isdir('/var/www/{0}/conf/nginx'.format(domain)):
|
if block:
|
||||||
if not os.path.isfile('/var/www/{0}/conf/nginx/ngxblocker.disabled'
|
if os.path.isdir('/var/www/{0}/conf/nginx'.format(domain)):
|
||||||
.format(domain)):
|
if not os.path.isfile(
|
||||||
ngxconf = open("/var/www/{0}/conf/nginx/ngxblocker.conf"
|
'/var/www/{0}/conf/nginx/ngxblocker.conf.disabled'
|
||||||
.format(domain),
|
.format(domain)):
|
||||||
encoding='utf-8', mode='w')
|
ngxconf = open(
|
||||||
ngxconf.write("# Bad Bot Blocker\n"
|
"/var/www/{0}/conf/nginx/ngxblocker.conf"
|
||||||
"include /etc/nginx/bots.d/ddos.conf;\n"
|
.format(domain),
|
||||||
"include /etc/nginx/bots.d/blockbots.conf;\n")
|
encoding='utf-8', mode='w')
|
||||||
ngxconf.close()
|
ngxconf.write(
|
||||||
else:
|
"# Bad Bot Blocker\n"
|
||||||
|
"include /etc/nginx/bots.d/ddos.conf;\n"
|
||||||
|
"include /etc/nginx/bots.d/blockbots.conf;\n")
|
||||||
|
ngxconf.close()
|
||||||
|
else:
|
||||||
|
WOFileUtils.mvfile(
|
||||||
|
self, '/var/www/{0}/conf/nginx/ngxblocker.conf.disabled'
|
||||||
|
.format(domain), '/var/www/{0}/conf/nginx/ngxblocker.conf'
|
||||||
|
.format(domain))
|
||||||
|
else:
|
||||||
|
if os.path.isfile('/var/www/{0}/conf/nginx/ngxblocker.conf'
|
||||||
|
.format(domain)):
|
||||||
WOFileUtils.mvfile(
|
WOFileUtils.mvfile(
|
||||||
self, '/var/www/{0}/conf/nginx/ngxblocker.disabled'
|
self, '/var/www/{0}/conf/nginx/ngxblocker.conf'
|
||||||
.format(domain), '/var/www/{0}/conf/nginx/ngxblocker'
|
.format(domain),
|
||||||
|
'/var/www/{0}/conf/nginx/ngxblocker.conf.disabled'
|
||||||
.format(domain))
|
.format(domain))
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -132,6 +132,17 @@ class WOAcme:
|
|||||||
"ssl.conf")
|
"ssl.conf")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
def renew(self, domain):
|
||||||
|
"""Renew letsencrypt certificate with acme.sh"""
|
||||||
|
try:
|
||||||
|
WOShellExec.cmd_exec(
|
||||||
|
self, "{0} ".format(WOAcme.wo_acme_exec) +
|
||||||
|
"--renew -d {0} --ecc --force".format(domain))
|
||||||
|
except CommandExecutionError as e:
|
||||||
|
Log.debug(self, str(e))
|
||||||
|
Log.error(self, 'Unable to renew certificate')
|
||||||
|
return True
|
||||||
|
|
||||||
def check_dns(self, acme_domains):
|
def check_dns(self, acme_domains):
|
||||||
"""Check if a list of domains point to the server IP"""
|
"""Check if a list of domains point to the server IP"""
|
||||||
server_ip = requests.get('http://v4.wordops.eu/').text
|
server_ip = requests.get('http://v4.wordops.eu/').text
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class Log:
|
|||||||
"""
|
"""
|
||||||
Logs debug messages into log file
|
Logs debug messages into log file
|
||||||
"""
|
"""
|
||||||
self.app.log.debug(Log.HEADER + msg + Log.ENDC + __name__)
|
self.app.log.debug(Log.HEADER + msg + Log.ENDC)
|
||||||
|
|
||||||
def wait(self, msg, end='\r', log=True):
|
def wait(self, msg, end='\r', log=True):
|
||||||
"""
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user