From f6f412a2906a65fa5281f46954fc07507bda35b5 Mon Sep 17 00:00:00 2001 From: VirtuBox Date: Fri, 30 Aug 2019 20:33:33 +0200 Subject: [PATCH] Prepare for release --- CHANGELOG.md | 12 ++++++++++++ config/bash_completion.d/wo_auto.rc | 29 ++++++++++++----------------- wo/cli/plugins/site.py | 10 +++------- wo/cli/plugins/stack.py | 1 - wo/core/variables.py | 9 ++++++++- 5 files changed, 35 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f0eb19..3eb70f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,14 +8,26 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ### v3.9.x - [Unreleased] +### v3.9.8.6 - 2019-08-30 + +#### Added + +- Subdomains are automatically secured with an existant Wildcard LetsEncrypt SSL certificate. +(If a wildcard certificate exist, WordOps will use this certificate for subdomains instead of issuing new certificates) +- MySQL & Redis stack to `wo stack remove/purge` +- Dump MySQL databases before purging MySQL Stack + #### Changed - Date format in backup name : /backup/30Aug2019035932 -> /backup/30Aug2019-03-59-32 +- Cleanup and update bash_completion #### Fixed - cache-enabler plugin not installed and configured with `wo site update site.tld --wpce` - possible issue with domain variable in `--letsencrypt=wildcard` +- python3-mysqldb not available on Debian 8 (Jessie) +- Fix mysql variable skip-name-resolved ### v3.9.8.5 - 2019-08-30 diff --git a/config/bash_completion.d/wo_auto.rc b/config/bash_completion.d/wo_auto.rc index d7e3cc9..56ec872 100644 --- a/config/bash_completion.d/wo_auto.rc +++ b/config/bash_completion.d/wo_auto.rc @@ -35,7 +35,7 @@ _wo_complete() "stack") COMPREPLY=( $(compgen \ - -W "upgrade install purge reload remove restart start status stop migrate" \ + -W "upgrade install purge reload remove restart start status stop" \ -- $cur) ) ;; @@ -74,12 +74,12 @@ _wo_complete() # HANDLE EVERYTHING AFTER THE THIRD LEVEL NAMESPACE "install" | "purge" | "remove" ) COMPREPLY=( $(compgen \ - -W "--web --admin --nginx --php --php73 --mysql --wpcli --phpmyadmin --adminer --utils --all --redis --phpredisadmin --composer --netdata --fail2ban --dashboard --proftpd" \ + -W "--recommended --web --admin --security --nginx --php --php73 --mysql --wpcli --phpmyadmin --adminer --utils --redis --phpredisadmin --composer --netdata --fail2ban --dashboard --proftpd --clamav --mysqlclient --mysqltuner --extplorer --all" \ -- $cur) ) ;; "upgrade" ) COMPREPLY=( $(compgen \ - -W "--web --nginx --php --php73 --mysql --all --netdata --composer --phpmyadmin --dashboard --no-prompt --wpcli" \ + -W "--web --admin --utils --nginx --php --php73 --mysql --all --netdata --composer --phpmyadmin --dashboard --no-prompt --mysqtuner --wpcli" \ -- $cur) ) ;; "start" | "stop" | "reload" | "restart" | "status") @@ -87,11 +87,6 @@ _wo_complete() -W "--nginx --php --php73 --mysql --redis --fail2ban --netdata -proftpd" \ -- $cur) ) ;; - "migrate") - COMPREPLY=( $(compgen \ - -W "--mariadb" \ - -- $cur) ) - ;; "list") COMPREPLY=( $(compgen \ -W "--enabled --disabled" \ @@ -159,13 +154,13 @@ _wo_complete() "create") COMPREPLY=( $(compgen \ - -W "--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --proxy= --wpredis --wprocket --wpce -le --letsencrypt --letsencrypt=wildcard -le=wildcard --dns --dns=dns_cf --dns=dns_do" \ + -W "--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --proxy= --wpredis --wprocket --wpce -le --letsencrypt --letsencrypt=wildcard -le=wildcard --dns --dns=dns_cf --dns=dns_do" \ -- $cur) ) ;; "update") COMPREPLY=( $(compgen \ - -W "--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce -le --letsencrypt --letsencrypt=off --letsencrypt=clean -le=wildcard --dns --dns=dns_cf --dns=dns_do" \ + -W "--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce -le -le=off --letsencrypt --letsencrypt=off --letsencrypt=clean -le=wildcard -le=clean --dns --dns=dns_cf --dns=dns_do" \ -- $cur) ) ;; "delete") @@ -230,9 +225,9 @@ _wo_complete() "--wpsubdir" | "--wpsubdomain") if [ ${COMP_WORDS[1]} != "debug" ]; then if [ ${COMP_WORDS[2]} == "create" ]; then - retlist="--wpsc --wpfc --user --email --pass --wpredis --wprocket --wpce --letsencrypt --letsencrypt=wildcard -le --php73 --dns --dns=dns_cf --dns=dns_do" + retlist="--wpsc --wpfc --user --email --pass --wpredis --wprocket --wpce -le -le=wildcard --letsencrypt --letsencrypt=wildcard --php73 --dns --dns=dns_cf --dns=dns_do" elif [ ${COMP_WORDS[2]} == "update" ]; then - retlist="--wpfc --wpsc --php73 --php73=off --wpredis --wprocket --wpce -le --letsencrypt --letsencrypt=wildcard --letsencrypt=off --letsencrypt=clean --dns --dns=dns_cf --dns=dns_do" + retlist="--wpfc --wpsc --php73 --php73=off --wpredis --wprocket --wpce -le -le=off -le=wildcard --letsencrypt --letsencrypt=wildcard --letsencrypt=off --letsencrypt=clean --dns --dns=dns_cf --dns=dns_do" else retlist="" fi @@ -248,7 +243,7 @@ _wo_complete() "--wpredis --wprocket --wpce" | "--wpfc" | "--wpsc" | "--wpsubdir" | "--wpsubdomain" | "--user" | "--pass" | "--email" | "--wp") if [ ${COMP_WORDS[2]} == "create" ]; then - retlist="--user --pass --email --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --php73 -le --letsencrypt --letsencrypt=wildcard --dns --dns=dns_cf --dns=dns_do" + retlist="--user --pass --email --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --php73 -le -le=off -le=wildcard --letsencrypt --letsencrypt=wildcard --dns --dns=dns_cf --dns=dns_do" else retlist="" fi @@ -261,7 +256,7 @@ _wo_complete() "--wpredis --wprocket --wpce" | "--wpfc") if [ ${COMP_WORDS[2]} == "update" ]; then - retlist="--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce -le --letsencrypt --letsencrypt=off --letsencrypt=clean --dns --dns=dns_cf --dns=dns_do" + retlist="--password --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce -le -le=off --letsencrypt --letsencrypt=off --letsencrypt=clean --dns --dns=dns_cf --dns=dns_do" else retlist="" fi @@ -274,7 +269,7 @@ _wo_complete() "--web" | "--admin" | "--nginx" | "--php" | "--php73" | "--mysql" | "--wpcli" | "--phpmyadmin" | "--adminer" | "--utils" | "--fail2ban" | "--redis | --phpredisadmin | --netdata") if [[ ${COMP_WORDS[2]} == "install" || ${COMP_WORDS[2]} == "purge" || ${COMP_WORDS[2]} == "remove" ]]; then - retlist="--web --admin --nginx --php --php73 --mysql --wpcli --phpmyadmin --adminer --utils --redis --fail2ban --phpredisadmin --netdata" + retlist="--web --admin --security --nginx --php --php73 --mysql --wpcli --phpmyadmin --adminer --utils --redis --fail2ban --phpredisadmin --netdata -f --force" elif [[ ${COMP_WORDS[2]} == "start" || ${COMP_WORDS[2]} == "reload" || ${COMP_WORDS[2]} == "restart" || ${COMP_WORDS[2]} == "stop" ]]; then retlist="--nginx --php --php73 --mysql --redis --netdata" elif [[ ${COMP_WORDS[1]} == "debug" ]]; then @@ -314,7 +309,7 @@ _wo_complete() elif [ ${COMP_WORDS[2]} == "delete" ]; then retlist="--db --files --force" elif [ ${COMP_WORDS[2]} == "update" ]; then - retlist="--password --php --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --letsencrypt --letsencrypt=off " + retlist="--password --php --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce -le -le=off -le=wildcard --letsencrypt --letsencrypt=off " else retlist="" fi @@ -363,7 +358,7 @@ _wo_complete() case "$mprev" in "--user" | "--email" | "--pass") if [ ${COMP_WORDS[2]} == "create" ]; then - retlist="--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce --letsencrypt --letsencrypt=wildcard -le --dns --dns=dns_cf --dns=dns_do" + retlist="--user --pass --email --html --php --php73 --mysql --wp --wpsubdir --wpsubdomain --wpfc --wpsc --wpredis --wprocket --wpce -le -le=wildcard --letsencrypt --letsencrypt=wildcard --dns --dns=dns_cf --dns=dns_do" fi ret="${retlist[@]/$prev}" COMPREPLY=( $(compgen \ diff --git a/wo/cli/plugins/site.py b/wo/cli/plugins/site.py index 1530857..9096a94 100644 --- a/wo/cli/plugins/site.py +++ b/wo/cli/plugins/site.py @@ -853,7 +853,8 @@ class WOSiteUpdateController(CementBaseController): (['--wprocket'], dict(help="update to WP-Rocket cache", action='store_true')), (['--wpce'], - dict(help="update to Cache-Enabler cache", action='store_true')), + dict(help="update to Cache-Enabler cache", + action='store_true')), (['--wpredis'], dict(help="update to redis cache", action='store_true')), (['-le', '--letsencrypt'], @@ -1238,12 +1239,6 @@ class WOSiteUpdateController(CementBaseController): return 0 if pargs.letsencrypt: - if ((wo_domain_type == 'subdomain') and - (not pargs.letsencrypt == 'wildcard') and - (not pargs.letsencrypt == 'off') and - (not pargs.letsencrypt == 'clean') and - (not pargs.letsencrypt == 'purge')): - pargs.letsencrypt == 'subdomain' if pargs.letsencrypt == 'on': data['letsencrypt'] = True letsencrypt = True @@ -1874,6 +1869,7 @@ class WOSiteDeleteController(CementBaseController): pargs.site_name = (input('Enter site name : ') .strip()) except IOError as e: + Log.debug(self, str(e)) Log.error(self, 'could not input site name') pargs.site_name = pargs.site_name.strip() diff --git a/wo/cli/plugins/stack.py b/wo/cli/plugins/stack.py index 33b6f01..39b6d2f 100644 --- a/wo/cli/plugins/stack.py +++ b/wo/cli/plugins/stack.py @@ -45,7 +45,6 @@ class WOStackController(CementBaseController): label = 'stack' stacked_on = 'base' stacked_type = 'nested' - exit_on_close = True description = 'Stack command manages stack operations' arguments = [ (['--all'], diff --git a/wo/core/variables.py b/wo/core/variables.py index 6fb7f9f..d31594e 100644 --- a/wo/core/variables.py +++ b/wo/core/variables.py @@ -147,11 +147,18 @@ class WOVariables(): if wo_distro == 'raspbian': wo_mysql = ["mariadb-server", "percona-toolkit", "python3-mysqldb"] + elif wo_distro == 'debian': + if wo_platform_codename == 'jessie': + wo_mysql = ["mariadb-server", "percona-toolkit", + "python3-mysql.connector"] else: wo_mysql = ["mariadb-server", "percona-toolkit", "python3-mysqldb", "mariadb-backup"] - wo_mysql_client = ["mariadb-client", "python3-mysqldb"] + if wo_platform_codename == 'jessie': + wo_mysql_client = ["mariadb-client", "python3-mysqldb"] + else: + wo_mysql_client = ["mariadb-client", "python3-mysql.connector"] wo_fail2ban = ["fail2ban"]