From 3a28a419fbae3aaafe463cbb10c46296e424a7f9 Mon Sep 17 00:00:00 2001 From: VirtuBox Date: Fri, 30 Aug 2019 03:51:25 +0200 Subject: [PATCH] Fix `wo site update site.tld --wpce` not installing plugin --- wo/cli/plugins/site.py | 206 ++++++++++++++----------------- wo/cli/plugins/site_functions.py | 32 +++-- 2 files changed, 116 insertions(+), 122 deletions(-) diff --git a/wo/cli/plugins/site.py b/wo/cli/plugins/site.py index a5259f1..5df3201 100644 --- a/wo/cli/plugins/site.py +++ b/wo/cli/plugins/site.py @@ -626,84 +626,56 @@ class WOSiteCreateController(CementBaseController): "and please try again") # Setup WordPress if Wordpress site - if (data['wp'] and (not pargs.vhostonly)): - try: - wo_wp_creds = setupwordpress(self, data) - # Add database information for site into database - updateSiteInfo(self, wo_domain, - db_name=data['wo_db_name'], - db_user=data['wo_db_user'], - db_password=data['wo_db_pass'], - db_host=data['wo_db_host']) - except SiteError as e: - # call cleanup actions on failure - Log.debug(self, str(e)) - Log.info(self, Log.FAIL + - "There was a serious error encountered...") - Log.info(self, Log.FAIL + "Cleaning up afterwards...") - doCleanupAction(self, domain=wo_domain, - webroot=data['webroot'], - dbname=data['wo_db_name'], - dbuser=data['wo_db_user'], - dbhost=data['wo_mysql_grant_host']) - deleteSiteInfo(self, wo_domain) - Log.error(self, "Check the log for details: " - "`tail /var/log/wo/wordops.log` " - "and please try again") - - if (data['wp'] and (pargs.vhostonly)): - try: - wo_wp_creds = setupwordpress(self, data) - # Add database information for site into database - updateSiteInfo(self, wo_domain, db_name=data['wo_db_name'], - db_user=data['wo_db_user'], - db_password=data['wo_db_pass'], - db_host=data['wo_db_host']) - except SiteError as e: - # call cleanup actions on failure - Log.debug(self, str(e)) - Log.info(self, Log.FAIL + - "There was a serious error encountered...") - Log.info(self, Log.FAIL + "Cleaning up afterwards...") - doCleanupAction(self, domain=wo_domain, - webroot=data['webroot'], - dbname=data['wo_db_name'], - dbuser=data['wo_db_user'], - dbhost=data['wo_db_host']) - deleteSiteInfo(self, wo_domain) - Log.error(self, "Check the log for details: " - "`tail /var/log/wo/wordops.log` " - "and please try again") - try: - wodbconfig = open("{0}/wo-config.php" - .format(wo_site_webroot), - encoding='utf-8', mode='w') - wodbconfig.write("" - .format(data['wo_db_name'], - data['wo_db_user'], - data['wo_db_pass'], - data['wo_db_host'])) - wodbconfig.close() - - except IOError as e: - Log.debug(self, str(e)) - Log.debug(self, "Error occured while generating " - "wo-config.php") - Log.info(self, Log.FAIL + - "There was a serious error encountered...") - Log.info(self, Log.FAIL + "Cleaning up afterwards...") - doCleanupAction(self, domain=wo_domain, - webroot=data['webroot'], - dbname=data['wo_db_name'], - dbuser=data['wo_db_user'], - dbhost=data['wo_db_host']) - deleteSiteInfo(self, wo_domain) - Log.error(self, "Check the log for details: " - "`tail /var/log/wo/wordops.log` " - "and please try again") + if data['wp']: + if not pargs.vhostonly: + try: + wo_wp_creds = setupwordpress(self, data) + # Add database information for site into database + updateSiteInfo(self, wo_domain, + db_name=data['wo_db_name'], + db_user=data['wo_db_user'], + db_password=data['wo_db_pass'], + db_host=data['wo_db_host']) + except SiteError as e: + # call cleanup actions on failure + Log.debug(self, str(e)) + Log.info(self, Log.FAIL + + "There was a serious error encountered...") + Log.info(self, Log.FAIL + "Cleaning up afterwards...") + doCleanupAction(self, domain=wo_domain, + webroot=data['webroot'], + dbname=data['wo_db_name'], + dbuser=data['wo_db_user'], + dbhost=data['wo_mysql_grant_host']) + deleteSiteInfo(self, wo_domain) + Log.error(self, "Check the log for details: " + "`tail /var/log/wo/wordops.log` " + "and please try again") + else: + try: + wo_wp_creds = setupwordpress( + self, data, vhostonly=True) + # Add database information for site into database + updateSiteInfo(self, wo_domain, + db_name=data['wo_db_name'], + db_user=data['wo_db_user'], + db_password=data['wo_db_pass'], + db_host=data['wo_db_host']) + except SiteError as e: + # call cleanup actions on failure + Log.debug(self, str(e)) + Log.info(self, Log.FAIL + + "There was a serious error encountered...") + Log.info(self, Log.FAIL + "Cleaning up afterwards...") + doCleanupAction(self, domain=wo_domain, + webroot=data['webroot'], + dbname=data['wo_db_name'], + dbuser=data['wo_db_user'], + dbhost=data['wo_mysql_grant_host']) + deleteSiteInfo(self, wo_domain) + Log.error(self, "Check the log for details: " + "`tail /var/log/wo/wordops.log` " + "and please try again") # Service Nginx Reload call cleanup if failed to reload nginx if not WOService.reload_service(self, 'nginx'): @@ -1557,7 +1529,8 @@ class WOSiteUpdateController(CementBaseController): "and please try again") return 1 - if ((oldcachetype in ['wpsc', 'basic', 'wpredis', 'wprocket', 'wpce'] and + if ((oldcachetype in ['wpsc', 'basic', 'wpredis', 'wprocket', + 'wpce'] and (data['wpfc'])) or (oldsitetype == 'wp' and data['multisite'] and data['wpfc'])): try: @@ -1584,9 +1557,9 @@ class WOSiteUpdateController(CementBaseController): "redis_port": "6379", "redis_prefix": "nginx-cache:"} plugin_data = json.dumps(plugin_data_object) - setupwp_plugin( - self, 'nginx-helper', - 'rt_wp_nginx_helper_options', plugin_data, data) + setupwp_plugin(self, 'nginx-helper', + 'rt_wp_nginx_helper_options', + plugin_data, data) except SiteError as e: Log.debug(self, str(e)) Log.info(self, Log.FAIL + "Update nginx-helper " @@ -1596,7 +1569,8 @@ class WOSiteUpdateController(CementBaseController): "and please try again") return 1 - elif ((oldcachetype in ['wpsc', 'basic', 'wpfc', 'wprocket', 'wpce'] and + elif ((oldcachetype in ['wpsc', 'basic', 'wpfc', + 'wprocket', 'wpce'] and (data['wpredis'])) or (oldsitetype == 'wp' and data['multisite'] and data['wpredis'])): @@ -1624,9 +1598,9 @@ class WOSiteUpdateController(CementBaseController): "redis_port": "6379", "redis_prefix": "nginx-cache:"} plugin_data = json.dumps(plugin_data_object) - setupwp_plugin( - self, 'nginx-helper', - 'rt_wp_nginx_helper_options', plugin_data, data) + setupwp_plugin(self, 'nginx-helper', + 'rt_wp_nginx_helper_options', + plugin_data, data) except SiteError as e: Log.debug(self, str(e)) Log.info(self, Log.FAIL + "Update nginx-helper " @@ -1635,37 +1609,9 @@ class WOSiteUpdateController(CementBaseController): " `tail /var/log/wo/wordops.log` " "and please try again") return 1 - - elif ((oldcachetype in ['wpsc', 'basic', 'wpfc', 'wprocket', 'wpredis'] and - (data['wpce'])) or (oldsitetype == 'wp' and - data['multisite'] and - data['wpce'])): - try: - plugin_data_object = {"expires": 24, - "new_post": 1, - "new_comment": 0, - "webp": 0, - "clear_on_upgrade": 1, - "compress": 0, - "excl_ids": "", - "excl_regexp": "", - "excl_cookies": "", - "incl_attributes": "", - "minify_html": 1} - plugin_data = json.dumps(plugin_data_object) - setupwp_plugin( - self, 'cache-enabler', - 'cache-enabler', plugin_data, data) - except SiteError as e: - Log.debug(self, str(e)) - Log.info(self, Log.FAIL + "Update cache-enabler " - "settings failed. " - "Check the log for details:" - " `tail /var/log/wo/wordops.log` " - "and please try again") - return 1 else: try: + # disable nginx-helper plugin_data_object = {"log_level": "INFO", "log_filesize": 5, "enable_purge": 0, @@ -1701,6 +1647,36 @@ class WOSiteUpdateController(CementBaseController): "and please try again") return 1 + if ((oldcachetype in ['wpsc', 'basic', 'wpfc', 'wprocket', 'wpredis'] and + (data['wpce'])) or (oldsitetype == 'wp' and + data['multisite'] and + data['wpce'])): + try: + installwp_plugin(self, 'cache-enabler', data) + # setup cache-enabler + plugin_data_object = {"expires": 24, + "new_post": 1, + "new_comment": 0, + "webp": 0, + "clear_on_upgrade": 1, + "compress": 0, + "excl_ids": "", + "excl_regexp": "", + "excl_cookies": "", + "incl_attributes": "", + "minify_html": 1} + plugin_data = json.dumps(plugin_data_object) + setupwp_plugin(self, 'cache-enabler', + 'cache-enabler', plugin_data, data) + except SiteError as e: + Log.debug(self, str(e)) + Log.info(self, Log.FAIL + "Update cache-enabler " + "settings failed. " + "Check the log for details:" + " `tail /var/log/wo/wordops.log` " + "and please try again") + return 1 + if oldcachetype == 'wpsc' and not data['wpsc']: try: uninstallwp_plugin(self, 'wp-super-cache', data) diff --git a/wo/cli/plugins/site_functions.py b/wo/cli/plugins/site_functions.py index c0b9b17..0c333dd 100644 --- a/wo/cli/plugins/site_functions.py +++ b/wo/cli/plugins/site_functions.py @@ -229,7 +229,7 @@ def setupdatabase(self, data): return(data) -def setupwordpress(self, data): +def setupwordpress(self, data, vhostonly=False): wo_domain_name = data['site_name'] wo_site_webroot = data['webroot'] prompt_wpprefix = self.app.config.get('wordpress', 'prefix') @@ -531,13 +531,13 @@ def setupwordpress(self, data): "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, "purge_archive_on_new": 1, - "purge_archive_on_edit": 0, - "purge_archive_on_del": 0, + "purge_archive_on_edit": 1, + "purge_archive_on_del": 1, "purge_archive_on_new_comment": 0, "purge_archive_on_deleted_comment": 0, "purge_page_on_mod": 1, @@ -557,13 +557,13 @@ def setupwordpress(self, data): "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, "purge_archive_on_new": 1, - "purge_archive_on_edit": 0, - "purge_archive_on_del": 0, + "purge_archive_on_edit": 1, + "purge_archive_on_del": 1, "purge_archive_on_new_comment": 0, "purge_archive_on_deleted_comment": 0, "purge_page_on_mod": 1, @@ -588,6 +588,7 @@ def setupwordpress(self, data): """Install Cache-Enabler""" if data['wpce']: + installwp_plugin(self, 'cache-enabler', data) plugin_data_object = {"expires": 24, "new_post": 1, "new_comment": 0, @@ -603,6 +604,13 @@ def setupwordpress(self, data): setupwp_plugin(self, 'cache-enabler', 'cache-enabler', plugin_data, data) + if vhostonly: + try: + WOShellExec.cmd_exec(self, "/bin/bash -c \"{0} --allow-root " + .format(WOVariables.wo_wpcli_path) + + "db clean --yes\"") + WOFileUtils.rm(self, "{0}/htdocs/*".format(wo_site_webroot)) + wp_creds = dict(wp_user=wo_wp_user, wp_pass=wo_wp_pass, wp_email=wo_wp_email) @@ -988,6 +996,16 @@ def display_cache_settings(self, data): "\thttp://{0}/wp-admin/options-general.php?" "page=nginx".format(data['site_name'])) + if data['wpce']: + if data['multisite']: + Log.info(self, "Nginx-Helper configuration :" + "\thttp://{0}/wp-admin/network/settings.php?" + "page=cache-enabler".format(data['site_name'])) + else: + Log.info(self, "Nginx-Helper configuration :" + "\thttp://{0}/wp-admin/options-general.php?" + "page=cache-enabler".format(data['site_name'])) + def logwatch(self, logfiles): import zlib