Browse Source

working ee site create

bugfixes
harshadyeola 10 years ago
parent
commit
48444c2102
  1. 163
      ee/cli/plugins/site.py
  2. 70
      ee/cli/plugins/site_functions.py
  3. 5
      ee/core/domainvalidate.py
  4. 5
      ee/core/fileutils.py
  5. 8
      ee/core/services.py
  6. 11
      ee/core/shellexec.py
  7. 2
      ee/core/variables.py

163
ee/cli/plugins/site.py

@ -2,9 +2,10 @@
from cement.core.controller import CementBaseController, expose from cement.core.controller import CementBaseController, expose
from cement.core import handler, hook from cement.core import handler, hook
from ee.core.variables import EEVariables from ee.core.variables import EEVariables
from ee.core.domainvalidate import validate_domain from ee.core.domainvalidate import ValidateDomain
from ee.core.fileutils import EEFileUtils from ee.core.fileutils import EEFileUtils
from ee.cli.plugins.site_functions import * from ee.cli.plugins.site_functions import *
from ee.core.services import EEService
import sys import sys
import os import os
@ -113,152 +114,184 @@ class EESiteCreateController(CementBaseController):
# data = dict(foo='EESiteCreateController.default().') # data = dict(foo='EESiteCreateController.default().')
# self.app.render((data), 'default.mustache') # self.app.render((data), 'default.mustache')
# Check domain name validation # Check domain name validation
ee_domain_name = validate_domain(self.app.pargs.site_name) (ee_domain,
ee_site_webroot = EEVariables.ee_webroot + ee_domain_name ee_www_domain) = ValidateDomain(self.app.pargs.site_name)
ee_site_webroot = EEVariables.ee_webroot + ee_domain
# Check if doain previously exists or not # Check if doain previously exists or not
if os.path.isfile('/etc/nginx/sites-available/{0}.conf' if os.path.isfile('/etc/nginx/sites-available/{0}.conf'
.format(ee_domain_name)): .format(ee_domain)):
self.app.log.error("site {0} already exists" self.app.log.error("site {0} already exists"
.format(ee_domain_name)) .format(ee_domain))
return False sys.exit(1)
# setup nginx configuration for site # setup nginx configuration for site
# HTmL
if (self.app.pargs.html and not (self.app.pargs.php or if (self.app.pargs.html and not (self.app.pargs.php or
self.app.pargs.mysql or self.app.pargs.wp or self.app.pargs.w3tc self.app.pargs.mysql or self.app.pargs.wp or self.app.pargs.w3tc
or self.app.pargs.wpfc or self.app.pargs.wpsc or or self.app.pargs.wpfc or self.app.pargs.wpsc or
self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)): self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=True, basic=False, wp=False, w3tc=False, static=True, basic=False, wp=False, w3tc=False,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot) wpsubdir=False, webroot=ee_site_webroot)
#PHP
if (self.app.pargs.php and not (self.app.pargs.html or if (self.app.pargs.php and not (self.app.pargs.html or
self.app.pargs.mysql or self.app.pargs.wp or self.app.pargs.w3tc self.app.pargs.mysql or self.app.pargs.wp or self.app.pargs.w3tc
or self.app.pargs.wpfc or self.app.pargs.wpsc or or self.app.pargs.wpfc or self.app.pargs.wpsc or
self.app.pargs.wsubdir or self.app.pargs.wsubdomain)): self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=True, wp=False, w3tc=False, static=False, basic=True, wp=False, w3tc=False,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot) wpsubdir=False, webroot=ee_site_webroot)
#ySQL
if (self.app.pargs.mysql and not (self.app.pargs.html or if (self.app.pargs.mysql and not (self.app.pargs.html or
self.app.pargs.php or self.app.pargs.wp or self.app.pargs.w3tc self.app.pargs.php or self.app.pargs.wp or self.app.pargs.w3tc
or self.app.pargs.wpfc or self.app.pargs.wpsc or or self.app.pargs.wpfc or self.app.pargs.wpsc or
self.app.pargs.wsubdir or self.app.pargs.wsubdomain)): self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=True, wp=False, w3tc=False, static=False, basic=True, wp=False, w3tc=False,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
#WP
if ((self.app.pargs.wp or self.app.pargs.w3tc or self.app.pargs.wpfc or if ((self.app.pargs.wp or self.app.pargs.w3tc or self.app.pargs.wpfc or
self.app.pargs.wpsc) and not (self.app.pargs.html or self.app.pargs.wpsc) and not (self.app.pargs.html or
self.app.pargs.php or self.app.pargs.mysql or self.app.pargs.php or self.app.pargs.mysql or
self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)): self.app.pargs.wpsubdir or self.app.pargs.wpsubdomain)):
if (self.app.pargs.wp and not (self.app.pargs.w3tc if (self.app.pargs.wp and not (self.app.pargs.w3tc
or self.app.pargs.wpfc or self.app.pargs.wpsc)): or self.app.pargs.wpfc or self.app.pargs.wpsc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=True, wp=True, w3tc=False, static=False, basic=True, wp=True, w3tc=False,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.w3tc and not if (self.app.pargs.w3tc and not
(self.app.pargs.wpfc or self.app.pargs.wpsc)): (self.app.pargs.wpfc or self.app.pargs.wpsc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=True, static=False, basic=False, wp=True, w3tc=True,
wpfc=False, wpsc=False, multisite=False, wpfc=False, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.wpfc and not if (self.app.pargs.wpfc and not
(self.app.pargs.wpsc or self.app.pargs.w3tc)): (self.app.pargs.wpsc or self.app.pargs.w3tc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=False, static=False, basic=False, wp=True, w3tc=False,
wpfc=True, wpsc=False, multisite=False, wpfc=True, wpsc=False, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.wpsc and not if (self.app.pargs.wpsc and not
(self.app.pargs.w3tc or self.app.pargs.wpfc)): (self.app.pargs.w3tc or self.app.pargs.wpfc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=False, static=False, basic=False, wp=True, w3tc=False,
wpfc=False, wpsc=True, multisite=False, wpfc=False, wpsc=True, multisite=False,
wpsubdir=False, webroot=ee_site_webroot, wpsubdir=False, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
#WPSUBDIR
if (self.app.pargs.wpsubdir and not (self.app.pargs.html or if (self.app.pargs.wpsubdir and not (self.app.pargs.html or
self.app.pargs.php or self.app.pargs.mysql or self.app.pargs.php or self.app.pargs.mysql or
self.app.pargs.wpsubdomain or self.app.pargs.wp)): self.app.pargs.wpsubdomain or self.app.pargs.wp)):
print("Inside wpsubdir")
if (self.app.pargs.wpsubdir and not (self.app.pargs.w3tc if (self.app.pargs.wpsubdir and not (self.app.pargs.w3tc
or self.app.pargs.wpfc or self.app.pargs.wpsc)): or self.app.pargs.wpfc or self.app.pargs.wpsc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=True, wp=True, w3tc=False, static=False, basic=True, wp=True, w3tc=False,
wpfc=False, wpsc=False, multisite=True, wpfc=False, wpsc=False, multisite=True,
wpsubdir=True, webroot=ee_site_webroot, wpsubdir=True, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.w3tc and not if (self.app.pargs.w3tc and not
(self.app.pargs.wpfc or self.app.pargs.wpsc)): (self.app.pargs.wpfc or self.app.pargs.wpsc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=True, static=False, basic=False, wp=True, w3tc=True,
wpfc=False, wpsc=False, multisite=True, wpfc=False, wpsc=False, multisite=True,
wpsubdir=True, webroot=ee_site_webroot, wpsubdir=True, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.wpfc and not if (self.app.pargs.wpfc and not
(self.app.pargs.wpsc or self.app.pargs.w3tc)): (self.app.pargs.wpsc or self.app.pargs.w3tc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=False, static=False, basic=False, wp=True, w3tc=False,
wpfc=True, wpsc=False, multisite=True, wpfc=True, wpsc=False, multisite=True,
wpsubdir=True, webroot=ee_site_webroot, wpsubdir=True, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.wpsc and not if (self.app.pargs.wpsc and not
(self.app.pargs.w3tc or self.app.pargs.wpfc)): (self.app.pargs.w3tc or self.app.pargs.wpfc)):
data = dict(site_name=ee_domain_name, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=False, static=False, basic=False, wp=True, w3tc=False,
wpfc=False, wpsc=True, multisite=True, wpfc=False, wpsc=True, multisite=True,
wpsubdir=True, webroot=ee_site_webroot, wpsubdir=True, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='') ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
if (self.app.pargs.wpsubdomain and not (self.app.pargs.html or #WPSUBDOAIN
self.app.pargs.php or self.app.pargs.mysql or if (self.app.pargs.wpsubdomain and not (self.app.pargs.html or
self.app.pargs.wpsubdir or self.app.pargs.wp)): self.app.pargs.php or self.app.pargs.mysql or
if (self.app.pargs.wpsubdomain and not (self.app.pargs.w3tc self.app.pargs.wpsubdir or self.app.pargs.wp)):
or self.app.pargs.wpfc or self.app.pargs.wpsc)): if (self.app.pargs.wpsubdomain and not (self.app.pargs.w3tc
data = dict(site_name=ee_domain_name, or self.app.pargs.wpfc or self.app.pargs.wpsc)):
static=False, basic=True, wp=True, w3tc=False, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
wpfc=False, wpsc=False, multisite=True, static=False, basic=True, wp=True, w3tc=False,
wpsubdir=False, webroot=ee_site_webroot, wpfc=False, wpsc=False, multisite=True,
ee_db_name='', ee_db_user='', ee_db_pass='') wpsubdir=False, webroot=ee_site_webroot,
if (self.app.pargs.w3tc and not ee_db_name='', ee_db_user='', ee_db_pass='',
(self.app.pargs.wpfc or self.app.pargs.wpsc)): ee_db_host='')
data = dict(site_name=ee_domain_name, if (self.app.pargs.w3tc and not
static=False, basic=False, wp=True, w3tc=True, (self.app.pargs.wpfc or self.app.pargs.wpsc)):
wpfc=False, wpsc=False, multisite=True, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
wpsubdir=False, webroot=ee_site_webroot, static=False, basic=False, wp=True, w3tc=True,
ee_db_name='', ee_db_user='', ee_db_pass='') wpfc=False, wpsc=False, multisite=True,
if (self.app.pargs.wpfc and not wpsubdir=False, webroot=ee_site_webroot,
(self.app.pargs.wpsc or self.app.pargs.w3tc)): ee_db_name='', ee_db_user='', ee_db_pass='',
data = dict(site_name=ee_domain_name, ee_db_host='')
static=False, basic=False, wp=True, w3tc=False, if (self.app.pargs.wpfc and not
wpfc=True, wpsc=False, multisite=True, (self.app.pargs.wpsc or self.app.pargs.w3tc)):
wpsubdir=False, webroot=ee_site_webroot, data = dict(site_name=ee_domain, www_domain=ee_www_domain,
ee_db_name='', ee_db_user='', ee_db_pass='') static=False, basic=False, wp=True, w3tc=False,
if (self.app.pargs.wpsc and not wpfc=True, wpsc=False, multisite=True,
(self.app.pargs.w3tc or self.app.pargs.wpfc)): wpsubdir=False, webroot=ee_site_webroot,
data = dict(site_name=ee_domain_name, ee_db_name='', ee_db_user='', ee_db_pass='',
static=False, basic=False, wp=True, w3tc=False, ee_db_host='')
wpfc=False, wpsc=True, multisite=True, if (self.app.pargs.wpsc and not
wpsubdir=False, webroot=ee_site_webroot, (self.app.pargs.w3tc or self.app.pargs.wpfc)):
ee_db_name='', ee_db_user='', ee_db_pass='') data = dict(site_name=ee_domain, www_domain=ee_www_domain,
static=False, basic=False, wp=True, w3tc=False,
wpfc=False, wpsc=True, multisite=True,
wpsubdir=False, webroot=ee_site_webroot,
ee_db_name='', ee_db_user='', ee_db_pass='',
ee_db_host='')
# setup NGINX configuration, and webroot # setup NGINX configuration, and webroot
SetupDomain(self, data) SetupDomain(self, data)
# Setup database for MySQL site # Setup database for MySQL site
if 'ee_db_name' in data.keys() and not data['wp']: if 'ee_db_name' in data.keys() and not data['wp']:
data = SetupDatabase(self, data) data = SetupDatabase(self, data)
eedbconfig = open("{0}/ee-config.php".format(ee_site_webroot), 'w')
eedbconfig.write("<?php \ndefine('DB_NAME', '{0}');"
"\ndefine('DB_USER', '{1}'); "
"\ndefine('DB_PASSWORD', '{2}');"
"\ndefine('DB_HOST', '{3}');\n?>"
.format(data['ee_db_name'], data['ee_db_user'],
data['ee_db_pass'], data['ee_db_host']))
eedbconfig.close()
# Setup WordPress if Wordpress site # Setup WordPress if Wordpress site
if data['wp']: if data['wp']:
ee_wp_creds = SetupWordpress(self, data) ee_wp_creds = SetupWordpress(self, data)
# Service Nginx Reload
# TODO setup Perissions for webroot EEService.reload_service(self, 'nginx')
# Setup Permissions for webroot
SetWebrootPermissions(self, data['webroot'])
if data['wp']:
print("WordPress Admin User : {0}".format(ee_wp_creds['wp_user']))
print("WordPress Admin User Password : {0}"
.format(ee_wp_creds['wp_pass']))
print("Successfully created site http://{0}".format(ee_www_domain))
class EESiteUpdateController(CementBaseController): class EESiteUpdateController(CementBaseController):

70
ee/cli/plugins/site_functions.py

@ -101,11 +101,10 @@ def SetupDatabase(self, data):
ee_db_name = (ee_db_name[0:6] + ee_random10) ee_db_name = (ee_db_name[0:6] + ee_random10)
# create MySQL database # create MySQL database
print("Setting Up Database for {0}...".format(ee_domain_name))
EEMysql.execute(self, "create database {0}" EEMysql.execute(self, "create database {0}"
.format(ee_db_name)) .format(ee_db_name))
print("create user {0}@{1} identified by '{2}'"
.format(ee_db_username, ee_mysql_host, ee_db_password))
# Create MySQL User # Create MySQL User
EEMysql.execute(self, EEMysql.execute(self,
"create user {0}@{1} identified by '{2}'" "create user {0}@{1} identified by '{2}'"
@ -114,11 +113,12 @@ def SetupDatabase(self, data):
# Grant permission # Grant permission
EEMysql.execute(self, EEMysql.execute(self,
"grant all privileges on {0}.* to {1}@{2}" "grant all privileges on {0}.* to {1}@{2}"
.format(ee_db_name, ee_db_username, ee_db_password)) .format(ee_db_name, ee_db_username, ee_mysql_host))
data['ee_db_name'] = ee_db_name data['ee_db_name'] = ee_db_name
data['ee_db_user'] = ee_db_username data['ee_db_user'] = ee_db_username
data['ee_db_pass'] = ee_db_password data['ee_db_pass'] = ee_db_password
return data data['ee_db_host'] = ee_mysql_host
return(data)
def SetupWordpress(self, data): def SetupWordpress(self, data):
@ -159,24 +159,25 @@ def SetupWordpress(self, data):
# Modify wp-config.php & move outside the webroot # Modify wp-config.php & move outside the webroot
EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot))
print("Setting up WordPress Configuration...")
if not data['multisite']: if not data['multisite']:
print("Generating wp-config")
EEShellExec.cmd_exec(self, "wp --allow-root core config " EEShellExec.cmd_exec(self, "wp --allow-root core config "
+ "--dbname={0} --dbprefix={1} --dbuser={2} " + "--dbname={0} --dbprefix={1} --dbuser={2} "
.format(data['ee_db_name'], ee_wp_prefix, .format(data['ee_db_name'], ee_wp_prefix,
data['ee_db_user']) data['ee_db_user'])
+ "--dbpass={0}".format(data['ee_db_pass'])) + "--dbpass={0}".format(data['ee_db_pass']))
else: else:
EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root core config " EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root core config "
+ "--dbname={0} --dbprefix={1} " + "--dbname={0} --dbprefix={1} "
.format(data['ee_db_name'], ee_wp_prefix) .format(data['ee_db_name'], ee_wp_prefix)
+ "--dbuser={0} --dbpass={1} --extra-php<<PHP" + "--dbuser={0} --dbpass={1} "
+ "\n define('WP_ALLOW_MULTISITE', true);" "--extra-php<<PHP \n {var1} {var2} \nPHP"
+ "\n define('WPMU_ACCEL_REDIRECT', true);" .format(data['ee_db_user'], data['ee_db_pass'],
+ "\n PHP" var1=
.format(data['ee_db_user'], data['ee_db_pass'])) "\n define('WP_ALLOW_MULTISITE', true);",
var2=
"\n define('WPMU_ACCEL_REDIRECT', true);")
)
EEFileUtils.mvfile(self, './wp-config.php', '../') EEFileUtils.mvfile(self, './wp-config.php', '../')
@ -199,24 +200,29 @@ def SetupWordpress(self, data):
print("Setting up WordPress, please wait...") print("Setting up WordPress, please wait...")
if not data['multisite']: if not data['multisite']:
EEShellExec.cmd_exec(self, "wp --allow-root core install" EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root core install "
"--url=www.{0} --title=www.{0} --admin_name={1}" "--url={0} --title={0} --admin_name={1} "
.format(ee_domain_name, ee_wp_user) .format(data['www_domain'], ee_wp_user)
+ "--admin_password={0} --admin_email={1}" + "--admin_password={0} --admin_email={1}"
.format(ee_wp_pass, ee_wp_email)) .format(ee_wp_pass, ee_wp_email),
errormsg="Unable to setup WordPress Tables")
else: else:
EEShellExec.cmd_exec(self, "wp --allow-root core multisite-install" EEShellExec.cmd_exec(self, "php /usr/bin/wp --allow-root "
"--url=www.{0} --title=www.{0} --admin_name={1}" "core multisite-install "
.format(ee_domain_name, ee_wp_user) "--url={0} --title={0} --admin_name={1} "
.format(data['www_domain'], ee_wp_user)
+ "--admin_password={0} --admin_email={1} " + "--admin_password={0} --admin_email={1} "
"{subdomains}" "{subdomains}"
.format(ee_wp_pass, ee_wp_email, .format(ee_wp_pass, ee_wp_email,
subdomains='--subdomains' subdomains='--subdomains'
if not data['wpsubdir'] else '')) if not data['wpsubdir'] else ''),
errormsg="Unable to setup WordPress Tables")
print("Updating WordPress permalink, please wait...") print("Updating WordPress permalink, please wait...")
EEShellExec.cmd_exec(self, "wp --allow-root rewrite structure " EEShellExec.cmd_exec(self, " php /usr/bin/wp --allow-root "
"/%year%/%monthnum%/%day%/%postname%/") "rewrite structure "
"/%year%/%monthnum%/%day%/%postname%/",
errormsg="Unable to Update WordPress permalink")
"""Install nginx-helper plugin """ """Install nginx-helper plugin """
InstallWP_Plugin(self, 'nginx-helper', data) InstallWP_Plugin(self, 'nginx-helper', data)
@ -231,7 +237,8 @@ def SetupWordpress(self, data):
wp_creds = dict(wp_user=ee_wp_user, wp_pass=ee_wp_pass, wp_creds = dict(wp_user=ee_wp_user, wp_pass=ee_wp_pass,
wp_email=ee_wp_email) wp_email=ee_wp_email)
return wp_creds
return(wp_creds)
def SetupWordpressNetwork(self, data): def SetupWordpressNetwork(self, data):
@ -245,9 +252,20 @@ def InstallWP_Plugin(self, plugin_name, data):
ee_site_webroot = data['webroot'] ee_site_webroot = data['webroot']
print("Installing plugin {0}".format(plugin_name)) print("Installing plugin {0}".format(plugin_name))
EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot)) EEFileUtils.chdir(self, '{0}/htdocs/'.format(ee_site_webroot))
EEShellExec.cmd_exec(self, "wp plugin --allow-root install {0}" EEShellExec.cmd_exec(self, "php /usr/bin/wp plugin --allow-root install "
"{0}".format(plugin_name),
errormsg="Unable to Install plugin {0}"
.format(plugin_name)) .format(plugin_name))
EEShellExec.cmd_exec(self, "wp plugin --allow-root activate {0} {na}" EEShellExec.cmd_exec(self, "php /usr/bin/wp plugin --allow-root activate "
"{0} {na}"
.format(plugin_name, .format(plugin_name,
na='--network' if data['multisite'] else '')) na='--network' if data['multisite'] else ''),
errormsg="Unable to Activate plugin {0}"
.format(plugin_name))
def SetWebrootPermissions(self, webroot):
print("Setting up Webroot Permissions...")
EEFileUtils.chown(self, webroot, EEVariables.ee_php_user,
EEVariables.ee_php_user, recursive=True)

5
ee/core/domainvalidate.py

@ -1,7 +1,7 @@
from urllib.parse import urlparse from urllib.parse import urlparse
def validate_domain(url): def ValidateDomain(url):
# Check if http:// or https:// present remove it if present # Check if http:// or https:// present remove it if present
domain_name = url.split('/') domain_name = url.split('/')
@ -9,7 +9,6 @@ def validate_domain(url):
domain_name = domain_name[2] domain_name = domain_name[2]
else: else:
domain_name = domain_name[0] domain_name = domain_name[0]
www_domain_name = domain_name.split('.') www_domain_name = domain_name.split('.')
final_domain = '' final_domain = ''
if www_domain_name[0] == 'www': if www_domain_name[0] == 'www':
@ -17,4 +16,4 @@ def validate_domain(url):
return final_domain return final_domain
else: else:
final_domain = domain_name final_domain = domain_name
return final_domain return (final_domain, domain_name)

5
ee/core/fileutils.py

@ -91,7 +91,10 @@ class EEFileUtils():
else: else:
shutil.chown(path, user=user, group=group) shutil.chown(path, user=user, group=group)
except shutil.Error as e: except shutil.Error as e:
self.log.error("Unable to change owner {0}".format(e.strerror)) self.app.log.error("Unable to change owner : {0} ".format(e))
sys.exit(1)
except Exception as e:
self.app.log.error("Unable to change owner {0}".format(e))
sys.exit(1) sys.exit(1)
def chmod(self, path, perm, recursive=False): def chmod(self, path, perm, recursive=False):

8
ee/core/services.py

@ -20,7 +20,7 @@ class EEService():
else: else:
self.app.log.error(retcode[1]) self.app.log.error(retcode[1])
except OSError as e: except OSError as e:
self.app.log.error("Unable to start service \ {0} {1}" self.app.log.error("Failed to start service {0} {1}"
.format(e.errno, e.strerror)) .format(e.errno, e.strerror))
return False return False
@ -34,7 +34,7 @@ class EEService():
else: else:
return False return False
except OSError as e: except OSError as e:
self.app.log.error("Unable to stop services \ {0}{1}" self.app.log.error("Failed to stop service : {0}{1}"
.format(e.errno, e.strerror)) .format(e.errno, e.strerror))
return False return False
@ -43,7 +43,7 @@ class EEService():
EEService.stop_service(self, service_name) EEService.stop_service(self, service_name)
EEService.start_service(self, service_name) EEService.start_service(self, service_name)
except OSError as e: except OSError as e:
self.app.log.error("Unable to restart services \{0} {1}" self.app.log.error("Failed to restart services \{0} {1}"
.format(e.errno, e.strerror)) .format(e.errno, e.strerror))
def reload_service(self, service_name): def reload_service(self, service_name):
@ -56,7 +56,7 @@ class EEService():
else: else:
return False return False
except OSError as e: except OSError as e:
self.app.log.error("Execution failed:", e) self.app.log.error("Failed to reload NGINX:", e)
return False return False
def get_service_status(self, service_name): def get_service_status(self, service_name):

11
ee/core/shellexec.py

@ -10,7 +10,7 @@ class EEShellExec():
def __init__(): def __init__():
pass pass
def cmd_exec(self, command): def cmd_exec(self, command, errormsg=''):
try: try:
retcode = subprocess.getstatusoutput(command) retcode = subprocess.getstatusoutput(command)
if retcode[0] == 0: if retcode[0] == 0:
@ -19,6 +19,11 @@ class EEShellExec():
self.app.log.warn(retcode[1]) self.app.log.warn(retcode[1])
return False return False
except OSError as e: except OSError as e:
self.app.log.error("Unable to execute command \ {0}{1}" if errormsg:
self.app.log.error("{0}", errormsg)
else:
self.app.log.error("Unable to execute command \ {0}{1}"
.format(e.errno, e.strerror))
self.app.log.debug("Unable to execute command \ {0}{1}"
.format(e.errno, e.strerror)) .format(e.errno, e.strerror))
return False sys.exit(1)

2
ee/core/variables.py

@ -22,6 +22,8 @@ class EEVariables():
ee_webroot = '/var/www/' ee_webroot = '/var/www/'
ee_php_user = 'www-data'
# Get git user name and EMail # Get git user name and EMail
try: try:
ee_user = config['user']['name'] ee_user = config['user']['name']

Loading…
Cancel
Save