From 5d8923e67ad857e3a26a43a239a5f94c2fcbedc1 Mon Sep 17 00:00:00 2001 From: harshadyeola Date: Fri, 16 Jan 2015 16:27:44 +0530 Subject: [PATCH] updated messages --- ee/cli/plugins/site.py | 165 ++++++++++++++++++------------- ee/cli/plugins/site_functions.py | 117 +++++++++++++--------- 2 files changed, 167 insertions(+), 115 deletions(-) diff --git a/ee/cli/plugins/site.py b/ee/cli/plugins/site.py index 21505028..cdaa284b 100644 --- a/ee/cli/plugins/site.py +++ b/ee/cli/plugins/site.py @@ -35,8 +35,7 @@ class EESiteController(CementBaseController): @expose(hide=True) def default(self): - # TODO Default action for ee site command - print("Inside EESiteController.default().") + self.app.args.print_help() @expose(help="enable site example.com") def enable(self): @@ -44,12 +43,13 @@ class EESiteController(CementBaseController): if os.path.isfile('/etc/nginx/sites-available/{0}' .format(ee_domain)): EEFileUtils.create_symlink(self, - ['/etc/nginx/sites-available/{0}.conf' - .format(ee_domain_name), - '/etc/nginx/sites-enabled/{0}.conf' - .format(ee_domain_name)]) + ['/etc/nginx/sites-available/{0}' + .format(ee_domain), + '/etc/nginx/sites-enabled/{0}' + .format(ee_domain)]) + updateSiteInfo(self, ee_domain, enabled=True) else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) @expose(help="disable site example.com") def disable(self): @@ -57,12 +57,11 @@ class EESiteController(CementBaseController): if os.path.isfile('/etc/nginx/sites-available/{0}' .format(ee_domain)): EEFileUtils.remove_symlink(self, - ['/etc/nginx/sites-available/{0}.conf' - .format(ee_domain_name), - '/etc/nginx/sites-enabled/{0}.conf' - .format(ee_domain_name)]) + '/etc/nginx/sites-enabled/{0}' + .format(ee_domain)) + updateSiteInfo(self, ee_domain, enabled=False) else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) @expose(help="get example.com information") def info(self): @@ -94,7 +93,7 @@ class EESiteController(CementBaseController): dbpass=ee_db_pass) self.app.render((data), 'siteinfo.mustache') else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) @expose(help="Monitor example.com logs") def log(self): @@ -104,7 +103,7 @@ class EESiteController(CementBaseController): EEShellExec.cmd_exec(self, 'tail -f /var/log/nginx/{0}.*.log' .format(ee_domain)) else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) @expose(help="Edit example.com's nginx configuration") def edit(self): @@ -120,7 +119,7 @@ class EESiteController(CementBaseController): # Reload NGINX EEService.reload_service(self, 'nginx') else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) @expose(help="Display example.com's nginx configuration") def show(self): @@ -135,14 +134,9 @@ class EESiteController(CementBaseController): print(text) f.close() else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) - @expose(help="list sites currently available") - def list(self): - # TODO Write code for ee site list command here - print("Inside EESiteController.list().") - - @expose(help="change to example.com's webroot") + @expose(help="change directory to site webroot") def cd(self): (ee_domain, ee_www_domain) = ValidateDomain(self.app.pargs.site_name) @@ -154,7 +148,7 @@ class EESiteController(CementBaseController): subprocess.call(['bash']) except OSError as e: Log.debug(self, "{0}{1}".format(e.errno, e.strerror)) - Log.error(self, "!! cannot change directory") + Log.error(self, " cannot change directory") class EESiteCreateController(CementBaseController): @@ -166,31 +160,35 @@ class EESiteCreateController(CementBaseController): help of the following subcommands' arguments = [ (['site_name'], - dict(help='the notorious foo option')), + dict(help='domain name for the site to be created.')), (['--html'], - dict(help="html site", action='store_true')), + dict(help="create html site", action='store_true')), (['--php'], - dict(help="php site", action='store_true')), + dict(help="create php site", action='store_true')), (['--mysql'], - dict(help="mysql site", action='store_true')), + dict(help="create mysql site", action='store_true')), (['--wp'], - dict(help="wordpress site", action='store_true')), + dict(help="create wordpress single site", + action='store_true')), (['--wpsubdir'], - dict(help="wpsubdir site", action='store_true')), + dict(help="create wordpress multisite with subdirectory setup", + action='store_true')), (['--wpsubdomain'], - dict(help="wpsubdomain site", action='store_true')), + dict(help="create wordpress multisite with subdomain setup", + action='store_true')), (['--w3tc'], - dict(help="w3tc", action='store_true')), + dict(help="create wordpress single/multi site with w3tc cache", + action='store_true')), (['--wpfc'], - dict(help="wpfc", action='store_true')), + dict(help="create wordpress single/multi site with wpfc cache", + action='store_true')), (['--wpsc'], - dict(help="wpsc", action='store_true')), + dict(help="create wordpress single/multi site with wpsc cache", + action='store_true')), ] @expose(hide=True) def default(self): - # TODO Default action for ee site command - # data = dict(foo='EESiteCreateController.default().') # self.app.render((data), 'default.mustache') # Check domain name validation (ee_domain, ee_www_domain) = ValidateDomain(self.app.pargs.site_name) @@ -199,7 +197,7 @@ class EESiteCreateController(CementBaseController): # Check if doain previously exists or not if os.path.isfile('/etc/nginx/sites-available/{0}' .format(ee_domain)): - Log.error(self, "!! site {0} already exists" + Log.error(self, " site {0} already exists" .format(ee_domain)) # setup nginx configuration for site @@ -401,11 +399,15 @@ class EESiteCreateController(CementBaseController): stype = 'wpsubdomain' cache = 'wpsc' + if not data: + self.app.args.print_help() + self.app.close(1) + # setup NGINX configuration, and webroot - SetupDomain(self, data) + setupDomain(self, data) # Setup database for MySQL site if 'ee_db_name' in data.keys() and not data['wp']: - data = SetupDatabase(self, data) + data = setupDatabase(self, data) try: eedbconfig = open("{0}/ee-config.php".format(ee_site_webroot), 'w') @@ -422,11 +424,11 @@ class EESiteCreateController(CementBaseController): except IOError as e: Log.debug(self, "{2} ({0}): {1}" .format(e.errno, e.strerror, ee_domain)) - Log.error(self, "!! Unable to create ee-config.php for ") + Log.error(self, " Unable to create ee-config.php for ") # Setup WordPress if Wordpress site if data['wp']: - ee_wp_creds = SetupWordpress(self, data) + ee_wp_creds = setupWordpress(self, data) # Service Nginx Reload EEService.reload_service(self, 'nginx') @@ -485,7 +487,7 @@ class EESiteUpdateController(CementBaseController): check_site = getSiteInfo(self, ee_domain) if check_site is None: - Log.error(self, "!! Site {0} does not exist.".format(ee_domain)) + Log.error(self, " Site {0} does not exist.".format(ee_domain)) else: oldsitetype = check_site.site_type oldcachetype = check_site.cache_type @@ -506,7 +508,7 @@ class EESiteUpdateController(CementBaseController): if oldsitetype != 'html': - Log.error(self, "!! Cannot update {0} {1} to php" + Log.error(self, " Cannot update {0} {1} to php" .format(ee_domain, oldsitetype)) data = dict(site_name=ee_domain, www_domain=ee_www_domain, @@ -524,7 +526,7 @@ class EESiteUpdateController(CementBaseController): self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)): if oldsitetype not in ['html', 'php']: - Log.error(self, "!! Cannot update {0}, {1} to mysql" + Log.error(self, " Cannot update {0}, {1} to mysql" .format(ee_domain, oldsitetype)) data = dict(site_name=ee_domain, www_domain=ee_www_domain, @@ -548,7 +550,7 @@ class EESiteUpdateController(CementBaseController): if ((oldsitetype in ['html', 'php', 'mysql', 'wp']) and (oldcachetype not in ['w3tc', 'wpfc', 'wpsc'])): print(oldsitetype, oldcachetype) - Log.error(self, "!! Cannot update {0}, {1} {2} to wp basic" + Log.error(self, " Cannot update {0}, {1} {2} to wp basic" .format(ee_domain, oldsitetype, oldcachetype)) data = dict(site_name=ee_domain, www_domain=ee_www_domain, @@ -566,7 +568,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp'] and oldcachetype not in ['basic', 'wpfc', 'wpsc']): - Log.error(self, "!! Cannot update {0}, {1} {2}to wp w3tc" + Log.error(self, " Cannot update {0}, {1} {2}to wp w3tc" .format(ee_domain, oldsitetype, oldcachetype)) data = dict(site_name=ee_domain, www_domain=ee_www_domain, @@ -625,7 +627,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdir'] and oldcachetype not in ['w3tc', 'wpfc', 'wpsc']): - Log.error(self, "!! Cannot update {0}, {1} {2} " + Log.error(self, " Cannot update {0}, {1} {2} " "to wpsubdir basic" .format(ee_domain, oldsitetype, oldcachetype)) @@ -644,7 +646,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdir'] and oldcachetype not in ['basic', 'wpfc', 'wpsc']): - Log.error(self, "!! Cannot update {0} {1} {2}" + Log.error(self, " Cannot update {0} {1} {2}" "to wpsubdir w3tc" .format(ee_domain, oldsitetype, oldcachetype)) @@ -664,7 +666,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdir'] and oldcachetype not in ['basic', 'w3tc', 'wpsc']): - Log.error(self, "!! Cannot update {0} {1} {2}" + Log.error(self, " Cannot update {0} {1} {2}" " to wpsubdir wpfc" .format(ee_domain, oldsitetype, oldcachetype)) @@ -683,7 +685,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdir'] and oldcachetype not in ['basic', 'w3tc', 'wpfc']): - Log.error(self, "!! Cannot update {0} {1} {2}" + Log.error(self, " Cannot update {0} {1} {2}" " to wpsubdir wpsc" .format(ee_domain, oldsitetype, oldcachetype)) @@ -703,7 +705,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdomain'] and oldcachetype not in ['w3tc', 'wpfc', 'wpsc']): - Log.error(self, "!! Cannot update {0} {1} {2}" + Log.error(self, " Cannot update {0} {1} {2}" " to wpsubdomain basic" .format(ee_domain, oldsitetype, oldcachetype)) @@ -724,7 +726,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdomain'] and oldcachetype not in ['basic', 'wpfc', 'wpsc']): - Log.error(self, "!! Cannot update {0}, {1} {2}" + Log.error(self, " Cannot update {0}, {1} {2}" " to wpsubdomain w3tc" .format(ee_domain, oldsitetype, oldcachetype)) @@ -745,7 +747,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdomain'] and oldcachetype not in ['basic', 'w3tc', 'wpsc']): - Log.error(self, "!! Cannot update {0}, {1} {2} " + Log.error(self, " Cannot update {0}, {1} {2} " "to wpsubdomain wpfc" .format(ee_domain, oldsitetype, oldcachetype)) @@ -766,7 +768,7 @@ class EESiteUpdateController(CementBaseController): if (oldsitetype in ['html', 'php', 'mysql', 'wp', 'wpsubdomain'] and oldcachetype not in ['basic', 'w3tc', 'wpfc']): - Log.error(self, "!! Cannot update {0}, {1} {2}" + Log.error(self, " Cannot update {0}, {1} {2}" " to wpsubdomain wpsc" .format(ee_domain, oldsitetype, oldcachetype)) @@ -782,16 +784,16 @@ class EESiteUpdateController(CementBaseController): cache = 'wpsc' if not data: - Log.error(self, "!! Cannot update" + Log.error(self, " Cannot update" .format(ee_domain)) siteBackup(self, data) # TODO Check for required packages before update # setup NGINX configuration, and webroot - SetupDomain(self, data) + setupDomain(self, data) if 'ee_db_name' in data.keys() and not data['wp']: - data = SetupDatabase(self, data) + data = setupDatabase(self, data) try: eedbconfig = open("{0}/ee-config.php".format(ee_site_webroot), 'w') @@ -805,7 +807,7 @@ class EESiteUpdateController(CementBaseController): data['ee_db_host'])) eedbconfig.close() except IOError as e: - Log.error(self, "!! Unable to create ee-config.php for " + Log.error(self, " Unable to create ee-config.php for " "{0}" .format(ee_domain)) Log.debug(self, "{0} {1}".format(e.errno, e.strerror)) @@ -831,27 +833,27 @@ class EESiteUpdateController(CementBaseController): # Setup WordPress if old sites are html/php/mysql sites if data['wp'] and oldsitetype in ['html', 'php', 'mysql']: - ee_wp_creds = SetupWordpress(self, data) + ee_wp_creds = setupWordpress(self, data) # Uninstall unnecessary plugins if oldsitetype in ['wp', 'wpsubdir', 'wpsubdomain']: # Setup WordPress Network if update option is multisite # and oldsite is WordPress single site if data['multisite'] and oldsitetype == 'wp': - SetupWordpressNetwork(self, data) + setupWordpressNetwork(self, data) if (oldcachetype == 'w3tc' or oldcachetype == 'wpfc' and not data['w3tc', 'wpfc']): - UnInstallWP_Plugin(self, 'w3-total-cache', data) + uninstallWP_Plugin(self, 'w3-total-cache', data) if oldcachetype == 'wpsc' and not data['wpsc']: - UnInstallWP_Plugin(self, 'wp-super-cache', data) + uninstallWP_Plugin(self, 'wp-super-cache', data) - if oldcachetype != 'w3tc' or oldcachetype != 'wpfc'and data['w3tc']: - InstallWP_Plugin(self, 'w3-total-cache', data) + if (oldcachetype != 'w3tc' or oldcachetype != 'wpfc') and data['w3tc']: + installWP_Plugin(self, 'w3-total-cache', data) if oldcachetype != 'wpsc' and data['wpsc']: - InstallWP_Plugin(self, 'wp-super-cache', data) + installWP_Plugin(self, 'wp-super-cache', data) # Service Nginx Reload EEService.reload_service(self, 'nginx') @@ -941,7 +943,7 @@ class EESiteDeleteController(CementBaseController): .format(ee_domain)) deleteSiteInfo(self, ee_domain) else: - Log.error(self, "!! site {0} does not exists".format(ee_domain)) + Log.error(self, " site {0} does not exists".format(ee_domain)) @expose(hide=True) def deleteDB(self, webroot): @@ -972,19 +974,48 @@ class EESiteDeleteController(CementBaseController): EEMysql.execute(self, "flush privileges") except Exception as e: - Log.error(self, "!! Error occured while deleting database") + Log.error(self, " Error occured while deleting database") @expose(hide=True) def deleteWebRoot(self, webroot): EEFileUtils.rm(self, webroot) +class EESiteListController(CementBaseController): + class Meta: + label = 'list' + stacked_on = 'site' + stacked_type = 'nested' + description = 'list websites' + arguments = [ + (['--enabled'], + dict(help='list enabled sites', action='store_true')), + (['--disabled'], + dict(help="list disabled sites", action='store_true')), + ] + + @expose(help="delete example.com") + def default(self): + sites = getAllsites(self) + if not sites: + self.app.close(1) + + if self.app.pargs.enabled: + for site in sites: + if site.is_enabled: + Log.info(self, "{0}".format(site.sitename)) + elif self.app.pargs.disabled: + for site in sites: + if not site.is_enabled: + Log.info(self, "{0}".format(site.sitename)) + + def load(app): # register the plugin class.. this only happens if the plugin is enabled handler.register(EESiteController) handler.register(EESiteCreateController) handler.register(EESiteUpdateController) handler.register(EESiteDeleteController) - + handler.register(EESiteListController) # register a hook (function) to run after arguments are parsed. hook.register('post_argument_parsing', ee_site_hook) diff --git a/ee/cli/plugins/site_functions.py b/ee/cli/plugins/site_functions.py index bde91af8..b636a952 100644 --- a/ee/cli/plugins/site_functions.py +++ b/ee/cli/plugins/site_functions.py @@ -11,11 +11,11 @@ from ee.core.logging import Log import glob -def SetupDomain(self, data): +def setupDomain(self, data): ee_domain_name = data['site_name'] ee_site_webroot = data['webroot'] - self.app.log.info("Setting up NGINX config {0} ...".format(ee_domain_name)) + Log.info(self, "Setting up NGINX configuration ", end='') # write nginx config for file try: ee_site_nginx_conf = open('/etc/nginx/sites-available/{0}' @@ -25,12 +25,12 @@ def SetupDomain(self, data): out=ee_site_nginx_conf) ee_site_nginx_conf.close() except IOError as e: - Log.error(self, "Unable to create nginx conf for {2} ({0}): {1}" - .format(e.errno, e.strerror, ee_domain_name)) - sys.exit(1) + Log.debug(self, "{0}".format(e)) + Log.error(self, "\nUnable to create NGINX configuration") except Exception as e: - Log.error(self, "{0}".format(e)) - sys.exit(1) + Log.debug(self, "{0}".format(e)) + Log.error(self, "\nUnable to create NGINX configuration") + Log.info(self, "[Done]") # create symbolic link for EEFileUtils.create_symlink(self, ['/etc/nginx/sites-available/{0}' @@ -39,14 +39,15 @@ def SetupDomain(self, data): .format(ee_domain_name)]) # Creating htdocs & logs directory + Log.info(self, "Setting up webroot ", end='') try: if not os.path.exists('{0}/htdocs'.format(ee_site_webroot)): os.makedirs('{0}/htdocs'.format(ee_site_webroot)) if not os.path.exists('{0}/logs'.format(ee_site_webroot)): os.makedirs('{0}/logs'.format(ee_site_webroot)) except Exception as e: - Log.error(self, "{0}".format(e)) - sys.exit(1) + Log.debug(self, "{0}".format(e)) + Log.error(self, "\nUnable to setup webroot") EEFileUtils.create_symlink(self, ['/var/log/nginx/{0}.access.log' .format(ee_domain_name), @@ -56,9 +57,10 @@ def SetupDomain(self, data): .format(ee_domain_name), '{0}/logs/error.log' .format(ee_site_webroot)]) + Log.info(self, "[Done]") -def SetupDatabase(self, data): +def setupDatabase(self, data): ee_domain_name = data['site_name'] ee_random = (''.join(random.sample(string.ascii_uppercase + string.ascii_lowercase + string.digits, 15))) @@ -75,8 +77,8 @@ def SetupDatabase(self, data): ee_db_name = input('Enter the MySQL database name [{0}]:' .format(ee_replace_dot)) except EOFError as e: - Log.error(self, "{0} {1}".format(e.errorno, e.strerror)) - sys.exit(0) + Log.debug(self, "{0}".format(e)) + Log.error(self, "Unable to input database name") if not ee_db_name: ee_db_name = ee_replace_dot @@ -88,8 +90,8 @@ def SetupDatabase(self, data): ee_db_password = input('Enter the MySQL database password [{0}]: ' .format(ee_random)) except EOFError as e: - Log.error(self, "{0} {1}".format(e.errorno, e.strerror)) - sys.exit(1) + Log.debug(self, "{0}".format(e)) + Log.error(self, "Unable to input database credentials") if not ee_db_username: ee_db_username = ee_replace_dot @@ -97,26 +99,31 @@ def SetupDatabase(self, data): ee_db_password = ee_random if len(ee_db_username) > 16: - self.app.log.info('Autofix MySQL username (ERROR 1470 (HY000)),' - ' please wait...') + Log.info(self, 'Autofix MySQL username (ERROR 1470 (HY000)),' + ' please wait...') ee_random10 = (''.join(random.sample(string.ascii_uppercase + string.ascii_lowercase + string.digits, 10))) ee_db_name = (ee_db_name[0:6] + ee_random10) # create MySQL database - self.app.log.info("Setting Up Database ...") + Log.info(self, "Setting Up Database ", end='') + Log.debug(self, "creating databse {0}".format(ee_db_name)) EEMysql.execute(self, "create database {0}" .format(ee_db_name)) # Create MySQL User + Log.debug(self, "creating user {0}".format(ee_db_username)) EEMysql.execute(self, "create user {0}@{1} identified by '{2}'" .format(ee_db_username, ee_mysql_host, ee_db_password)) # Grant permission + Log.debug(self, "setting up user privileges") EEMysql.execute(self, "grant all privileges on {0}.* to {1}@{2}" .format(ee_db_name, ee_db_username, ee_mysql_host)) + Log.info(self, "[Done]") + data['ee_db_name'] = ee_db_name data['ee_db_user'] = ee_db_username data['ee_db_pass'] = ee_db_password @@ -124,7 +131,7 @@ def SetupDatabase(self, data): return(data) -def SetupWordpress(self, data): +def setupWordpress(self, data): ee_domain_name = data['site_name'] ee_site_webroot = data['webroot'] prompt_wpprefix = self.app.config.get('wordpress', 'prefix') @@ -138,25 +145,25 @@ def SetupWordpress(self, data): ee_wp_user = '' ee_wp_pass = '' - Log.info(self, "Downloading Wordpress...", end='') + Log.info(self, "Downloading Wordpress ", end='') EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEShellExec.cmd_exec(self, "wp --allow-root core download") Log.info(self, "[Done]") if not (data['ee_db_name'] and data['ee_db_user'] and data['ee_db_pass']): - data = SetupDatabase(self, data) + data = setupDatabase(self, data) if prompt_wpprefix == 'True' or prompt_wpprefix == 'true': try: ee_wp_prefix = input('Enter the WordPress table prefix [wp_]: ' .format(ee_replace_dot)) while re.match('^[A-Za-z0-9_]*$', ee_wp_prefix): - self.app.log.warn("table prefix can only " - "contain numbers, letters, and underscores") + Log.warn(self, "table prefix can only " + "contain numbers, letters, and underscores") ee_wp_prefix = input('Enter the WordPress table prefix [wp_]: ' ) except EOFError as e: - Log.error(self, "{0} {1}".format(e.errorno, e.strerror)) - sys.exit(1) + Log.debug(self, "{0}".format(e)) + Log.error(self, "Unable to input table prefix") if not ee_wp_prefix: ee_wp_prefix = 'wp_' @@ -164,14 +171,16 @@ def SetupWordpress(self, data): # Modify wp-config.php & move outside the webroot EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) - self.app.log.debug("Setting Up WordPress Configuration...") + Log.debug(self, "Setting up wp-config file") if not data['multisite']: + Log.debug(self, "Generating wp-config for WordPress Single site") EEShellExec.cmd_exec(self, "wp --allow-root core config " + "--dbname={0} --dbprefix={1} --dbuser={2} " .format(data['ee_db_name'], ee_wp_prefix, data['ee_db_user']) + "--dbpass={0}".format(data['ee_db_pass'])) else: + Log.debug(self, "Generating wp-config for WordPress multisite") EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root core config " + "--dbname={0} --dbprefix={1} " .format(data['ee_db_name'], ee_wp_prefix) @@ -183,16 +192,19 @@ def SetupWordpress(self, data): var2= "\n define('WPMU_ACCEL_REDIRECT', true);") ) - EEFileUtils.mvfile(self, './wp-config.php', '../') if not ee_wp_user: ee_wp_user = EEVariables.ee_user while not ee_wp_user: - self.app.log.warn("Usernames can have only alphanumeric" - "characters, spaces, underscores, hyphens," - "periods and the @ symbol.") - ee_wp_user = input('Enter WordPress username: ') + Log.warn(self, "Usernames can have only alphanumeric" + "characters, spaces, underscores, hyphens," + "periods and the @ symbol.") + try: + ee_wp_user = input('Enter WordPress username: ') + except EOFError as e: + Log.debug(self, "{0}".format(e)) + Log.error(self, "Unable to input wp user name") if not ee_wp_pass: ee_wp_pass = ee_random @@ -200,11 +212,16 @@ def SetupWordpress(self, data): if not ee_wp_email: ee_wp_email = EEVariables.ee_email while not ee_wp_email: - ee_wp_email = input('Enter WordPress email: ') + try: + ee_wp_email = input('Enter WordPress email: ') + except EOFError as e: + Log.debug(self, "{0}".format(e)) + Log.error(self, "Unable to input wp user email") - self.app.log.debug("Setting up WordPress Tables, please wait...") + Log.debug(self, "setting up WordPress Tables") if not data['multisite']: + Log.debug(self, "creating tables for WordPress Single site") EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root core install " "--url={0} --title={0} --admin_name={1} " .format(data['www_domain'], ee_wp_user) @@ -212,6 +229,7 @@ def SetupWordpress(self, data): .format(ee_wp_pass, ee_wp_email), errormsg="Unable to setup WordPress Tables") else: + Log.debug(self, "creating tables for WordPress multisite") EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root " "core multisite-install " "--url={0} --title={0} --admin_name={1} " @@ -223,22 +241,22 @@ def SetupWordpress(self, data): if not data['wpsubdir'] else ''), errormsg="Unable to setup WordPress Tables") - self.app.log.debug("Updating WordPress permalink, please wait...") + Log.debug(self, "Updating WordPress permalink") EEShellExec.cmd_exec(self, " php /usr/bin/wp --allow-root " "rewrite structure " "/%year%/%monthnum%/%day%/%postname%/", errormsg="Unable to Update WordPress permalink") """Install nginx-helper plugin """ - InstallWP_Plugin(self, 'nginx-helper', data) + installWP_Plugin(self, 'nginx-helper', data) """Install Wp Super Cache""" if data['wpsc']: - InstallWP_Plugin(self, 'wp-super-cache', data) + installWP_Plugin(self, 'wp-super-cache', data) """Install W3 Total Cache""" if data['w3tc'] or data['wpfc']: - InstallWP_Plugin(self, 'w3-total-cache', data) + installWP_Plugin(self, 'w3-total-cache', data) wp_creds = dict(wp_user=ee_wp_user, wp_pass=ee_wp_pass, wp_email=ee_wp_email) @@ -246,19 +264,20 @@ def SetupWordpress(self, data): return(wp_creds) -def SetupWordpressNetwork(self, data): +def setupWordpressNetwork(self, data): ee_site_webroot = data['webroot'] EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) - Log.info(self, "Setting up WordPress Network") + Log.info(self, "Setting up WordPress Network ", end='') EEShellExec.cmd_exec(self, 'wp --allow-root core multisite-convert' ' --title={0} {subdomains}' .format(data['www_domain'], subdomains='--subdomains' if not data['wpsubdir'] else '')) + Log.info(self, "Done") -def InstallWP_Plugin(self, plugin_name, data): +def installWP_Plugin(self, plugin_name, data): ee_site_webroot = data['webroot'] - self.app.log.debug("Installing plugin {0}".format(plugin_name)) + Log.debug(self, "Installing plugin {0}".format(plugin_name)) EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEShellExec.cmd_exec(self, "php /usr/bin/wp plugin --allow-root install " "{0}".format(plugin_name), @@ -273,18 +292,18 @@ def InstallWP_Plugin(self, plugin_name, data): .format(plugin_name)) -def UnInstallWP_Plugin(self, plugin_name, data): +def uninstallWP_Plugin(self, plugin_name, data): ee_site_webroot = data['webroot'] - self.app.log.debug("Uninstalling plugin {0}".format(plugin_name)) + Log.debug(self, "Uninstalling plugin {0}".format(plugin_name)) EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEShellExec.cmd_exec(self, "php /usr/bin/wp plugin --allow-root uninstall " "{0}".format(plugin_name), - errormsg="Unable to Install plugin {0}" + errormsg="Unable to UnInstall plugin {0}" .format(plugin_name)) def SetWebrootPermissions(self, webroot): - self.app.log.debug("Setting Up Permissions...") + Log.debug(self, "Setting Up Permissions...") EEFileUtils.chown(self, webroot, EEVariables.ee_php_user, EEVariables.ee_php_user, recursive=True) @@ -299,19 +318,21 @@ def siteBackup(self, data): .format(data['site_name']), backup_path) if data['currsitetype'] in ['html', 'php', 'mysql']: - Log.info(self, "Backup Webroot ...") + Log.info(self, "Backing up Webroot ", end='') EEFileUtils.mvfile(self, ee_site_webroot + '/htdocs', backup_path) + Log.info(self, "[Done]") configfiles = glob.glob(ee_site_webroot + '/*-config.php') - if EEFileUtils.isexist(self, configfiles[0]): + if configfiles and EEFileUtils.isexist(self, configfiles[0]): ee_db_name = (EEFileUtils.grep(self, configfiles[0], 'DB_NAME').split(',')[1] .split(')')[0].strip().replace('\'', '')) - Log.info(self, 'Backup Database, please wait') + Log.info(self, 'Backing up Database ', end='') EEShellExec.cmd_exec(self, "mysqldump {0} > {1}/{0}.sql" .format(ee_db_name, backup_path), - "Failed: Backup Database") + errormsg="\nFailed: Backup Database") + Log.info(self, "[Done]") # move wp-config.php/ee-config.php to backup if data['currsitetype'] in ['mysql']: EEFileUtils.mvfile(self, configfiles[0], backup_path)