diff --git a/CHANGELOG.md b/CHANGELOG.md index bda29eb..60fc841 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### v3.9.x - [Unreleased] +#### Changed + +- Date format in backup name : /backup/30Aug2019035932 -> /backup/30Aug2019-03-59-32 + +#### Fixed + +- cache-enabler plugin not installed and configured with `wo site update site.tld --wpce` + ### v3.9.8.5 - 2019-08-30 #### Changed diff --git a/wo/cli/plugins/site.py b/wo/cli/plugins/site.py index 5df3201..fd991f3 100644 --- a/wo/cli/plugins/site.py +++ b/wo/cli/plugins/site.py @@ -1539,7 +1539,7 @@ class WOSiteUpdateController(CementBaseController): "enable_purge": 1, "enable_map": "0", "enable_log": 0, - "enable_stamp": 0, + "enable_stamp": 1, "purge_homepage_on_new": 1, "purge_homepage_on_edit": 1, "purge_homepage_on_del": 1, @@ -1580,7 +1580,7 @@ class WOSiteUpdateController(CementBaseController): "enable_purge": 1, "enable_map": "0", "enable_log": 0, - "enable_stamp": 0, + "enable_stamp": 1, "purge_homepage_on_new": 1, "purge_homepage_on_edit": 1, "purge_homepage_on_del": 1, diff --git a/wo/cli/plugins/site_functions.py b/wo/cli/plugins/site_functions.py index 219dd81..095479d 100644 --- a/wo/cli/plugins/site_functions.py +++ b/wo/cli/plugins/site_functions.py @@ -6,6 +6,7 @@ import json import re import string import subprocess +import csv from subprocess import CalledProcessError from wo.cli.plugins.sitedb import getSiteInfo @@ -1455,6 +1456,38 @@ def setupLetsEncrypt(self, wo_domain_name, subdomain=False, wildcard=False, "you are running Let\'s Encrypt Client " "\n to allow it to verify the site automatically.") +# check if a wildcard exist to secure a new subdomain + + +def checkWildcardExist(self, wo_domain_name): + + wo_acme_exec = ("/etc/letsencrypt/acme.sh --config-home " + "'/etc/letsencrypt/config'") + try: + # export certificates list from acme.sh + WOShellExec.cmd_exec(self, "{0} ".format(wo_acme_exec) + + "--list --list-raw > /var/lib/wo/cert.csv") + except CommandExecutionError as e: + Log.debug(self, "{0}".format(e)) + Log.error(self, "Failed to export cert list") + + # define new csv dialect + csv.register_dialect('acmeconf', delimiter='|') + # open file + with open('/var/lib/wo/cert.csv', 'rt') as wo_cert: + reader = csv.reader(wo_cert, 'acmeconf') + wo_wildcard = "*.{0}".format(wo_domain_name) + try: + for row in reader: + if wo_wildcard in row[2]: + break + return True + else: + return False + except csv.Error as e: + Log.debug(self, "{0}".format(e)) + Log.error(self, "Failed to read cert list") + # letsencrypt cert renewal