Skip to content

Commit bc16d05

Browse files
author
gau1991
committed
Merge branch 'master' into stable
2 parents 3755e0c + 80f9be0 commit bc16d05

20 files changed

+302
-136
lines changed

CHANGELOG.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
v 3.0.1 - Feb 12,2015
2+
- Fixed #411, #40, #409
3+
- Improved installation script
4+
15
v 3.0.0 - Feb 11,2015
26
- Refactored complete code in Python 3
37
- Updated WP-CLI to 0.18

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ EasyEngine (ee) is a python tool, which makes it easy to manage your wordpress s
2424

2525
```bash
2626
wget -q http://rt.cx/ee && sudo bash ee # install easyengine 3.0.0-beta
27-
sudo ee site create example.com --wp # Install required packages & setup WordPress on example.com
27+
sudo ee site create example.com --wp # Install required packages & setup WordPress on example.com
2828
```
2929

3030
## Update EasyEngine
@@ -84,8 +84,8 @@ ee site create example.com --mysql # create example.com with php & mysql supp
8484

8585

8686
## Useful Links
87-
- [Documentation] (http://docs.rtcamp.com/easyengine/docs/)
88-
- [FAQ] (http://docs.rtcamp.com/easyengine/faq/)
87+
- [Documentation] (http://docs.rtcamp.com/easyengine/)
88+
- [FAQ] (http://docs.rtcamp.com/easyengine/faq.html)
8989
- [Conventions used] (http://rtcamp.com/wordpress-nginx/tutorials/conventions/)
9090

9191
## Donations

ee/cli/main.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ def main():
9494
# Default Cement signals are SIGINT and SIGTERM, exit 0 (non-error)
9595
code = 0
9696
print(e)
97+
except Exception as e:
98+
code = 1
99+
print(e)
97100
finally:
98101
# Print an exception (if it occurred) and --debug was passed
99102
if app.debug:

ee/cli/plugins/debug.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def debug_nginx(self):
6363
debug_address = ['0.0.0.0/0']
6464
for ip_addr in debug_address:
6565
if not ("debug_connection "+ip_addr in open('/etc/nginx/'
66-
'nginx.conf').read()):
66+
'nginx.conf', encoding='utf-8').read()):
6767
Log.info(self, "Setting up Nginx debug connection"
6868
" for "+ip_addr)
6969
EEShellExec.cmd_exec(self, "sed -i \"/events {{/a\\ \\ \\ "
@@ -79,7 +79,8 @@ def debug_nginx(self):
7979

8080
# stop global debug
8181
elif not self.start and not self.app.pargs.site_name:
82-
if "debug_connection " in open('/etc/nginx/nginx.conf').read():
82+
if "debug_connection " in open('/etc/nginx/nginx.conf',
83+
encoding='utf-8').read():
8384
Log.info(self, "Disabling Nginx debug connections")
8485
EEShellExec.cmd_exec(self, "sed -i \"/debug_connection.*/d\""
8586
" /etc/nginx/nginx.conf")
@@ -146,7 +147,8 @@ def debug_php(self):
146147
data = dict(php="9001", debug="9001")
147148
Log.info(self, 'Writting the Nginx debug configration to file '
148149
'/etc/nginx/conf.d/upstream.conf ')
149-
ee_nginx = open('/etc/nginx/conf.d/upstream.conf', 'w')
150+
ee_nginx = open('/etc/nginx/conf.d/upstream.conf',
151+
encoding='utf-8', mode='w')
150152
self.app.render((data), 'upstream.mustache', out=ee_nginx)
151153
ee_nginx.close()
152154
self.trigger_php = True
@@ -165,7 +167,8 @@ def debug_php(self):
165167
data = dict(php="9000", debug="9001")
166168
Log.debug(self, 'Writting the Nginx debug configration to file'
167169
' /etc/nginx/conf.d/upstream.conf ')
168-
ee_nginx = open('/etc/nginx/conf.d/upstream.conf', 'w')
170+
ee_nginx = open('/etc/nginx/conf.d/upstream.conf',
171+
encoding='utf-8', mode='w')
169172
self.app.render((data), 'upstream.mustache', out=ee_nginx)
170173
ee_nginx.close()
171174
self.trigger_php = True
@@ -186,7 +189,8 @@ def debug_fpm(self):
186189
config.remove_option('global', 'include')
187190
config['global']['log_level'] = 'debug'
188191
config['global']['include'] = '/etc/php5/fpm/pool.d/*.conf'
189-
with open('/etc/php5/fpm/php-fpm.conf', 'w') as configfile:
192+
with open('/etc/php5/fpm/php-fpm.conf',
193+
encoding='utf-8', mode='w') as configfile:
190194
Log.debug(self, "Writting php5-FPM configuration into "
191195
"/etc/php5/fpm/php-fpm.conf")
192196
config.write(configfile)
@@ -206,7 +210,8 @@ def debug_fpm(self):
206210
config.remove_option('global', 'include')
207211
config['global']['log_level'] = 'notice'
208212
config['global']['include'] = '/etc/php5/fpm/pool.d/*.conf'
209-
with open('/etc/php5/fpm/php-fpm.conf', 'w') as configfile:
213+
with open('/etc/php5/fpm/php-fpm.conf',
214+
encoding='utf-8', mode='w') as configfile:
210215
Log.debug(self, "writting php5 configuration into "
211216
"/etc/php5/fpm/php-fpm.conf")
212217
config.write(configfile)
@@ -278,7 +283,7 @@ def debug_wp(self):
278283
" grep true".format(wp_config)):
279284
Log.info(self, "Starting WordPress debug")
280285
open("{0}/htdocs/wp-content/debug.log".format(webroot),
281-
'a').close()
286+
encoding='utf-8', mode='a').close()
282287
EEShellExec.cmd_exec(self, "chown {1}: {0}/htdocs/wp-"
283288
"content/debug.log"
284289
"".format(webroot,

ee/cli/plugins/secure.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,23 @@ def secure_auth(self):
6060
self.app.pargs.user_pass = password
6161
if password == "":
6262
self.app.pargs.user_pass = passwd
63+
Log.debug(self, "printf username:"
64+
"$(openssl passwd -crypt "
65+
"password 2> /dev/null)\n\""
66+
"> /etc/nginx/htpasswd-ee 2>/dev/null")
6367
EEShellExec.cmd_exec(self, "printf \"{username}:"
6468
"$(openssl passwd -crypt "
6569
"{password} 2> /dev/null)\n\""
6670
"> /etc/nginx/htpasswd-ee 2>/dev/null"
6771
.format(username=self.app.pargs.user_input,
68-
password=self.app.pargs.user_pass))
72+
password=self.app.pargs.user_pass),
73+
log=False)
6974
Log.info(self, "Successfully changed HTTP authentication"
7075
" username to : {username}"
71-
.format(username=self.app.pargs.user_input))
76+
.format(username=self.app.pargs.user_input), log=False)
7277
Log.info(self, "Successfully changed HTTP authentication"
7378
" password to : {password}"
74-
.format(password=self.app.pargs.user_pass))
79+
.format(password=self.app.pargs.user_pass), log=False)
7580

7681
@expose(hide=True)
7782
def secure_port(self):
@@ -92,12 +97,12 @@ def secure_port(self):
9297
if EEVariables.ee_platform_distro == 'Ubuntu':
9398
EEShellExec.cmd_exec(self, "sed -i \"s/listen.*/listen "
9499
"{port} default_server ssl spdy;/\" "
95-
"/etc/nginx/sites-available/22222.conf"
100+
"/etc/nginx/sites-available/22222"
96101
.format(port=self.app.pargs.user_input))
97102
if EEVariables.ee_platform_distro == 'debian':
98103
EEShellExec.cmd_exec(self, "sed -i \"s/listen.*/listen "
99104
"{port} default_server ssl;/\" "
100-
"/etc/nginx/sites-available/22222.conf"
105+
"/etc/nginx/sites-available/22222"
101106
.format(port=self.app.pargs.user_input))
102107
Log.info(self, "Successfully port changed {port}"
103108
.format(port=self.app.pargs.user_input))

ee/cli/plugins/site.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,14 @@ def enable(self):
4747
.format(ee_domain),
4848
'/etc/nginx/sites-enabled/{0}'
4949
.format(ee_domain)])
50-
50+
EEGit.add(self, ["/etc/nginx"],
51+
msg="Enabled {0} "
52+
.format(ee_domain))
5153
updateSiteInfo(self, ee_domain, enabled=True)
5254
Log.info(self, "[" + Log.ENDC + "OK" + Log.OKBLUE + "]")
5355
EEService.reload_service(self, 'nginx')
5456
else:
55-
Log.error(self, " site {0} does not exists".format(ee_domain))
57+
Log.error(self, "\nsite {0} does not exists".format(ee_domain))
5658

5759
@expose(help="Disable site example.com")
5860
def disable(self):
@@ -62,12 +64,15 @@ def disable(self):
6264
.format(ee_domain)):
6365
if not os.path.isfile('/etc/nginx/sites-enabled/{0}'
6466
.format(ee_domain)):
65-
Log.debug(self, "Site {0} already disabled" + ee_domain)
67+
Log.debug(self, "Site {0} already disabled".format(ee_domain))
6668
Log.info(self, "[" + Log.FAIL + "Failed" + Log.OKBLUE+"]")
6769
else:
6870
EEFileUtils.remove_symlink(self,
6971
'/etc/nginx/sites-enabled/{0}'
7072
.format(ee_domain))
73+
EEGit.add(self, ["/etc/nginx"],
74+
msg="Disabled {0} "
75+
.format(ee_domain))
7176
updateSiteInfo(self, ee_domain, enabled=False)
7277
Log.info(self, "[" + Log.ENDC + "OK" + Log.OKBLUE + "]")
7378
EEService.reload_service(self, 'nginx')
@@ -152,7 +157,8 @@ def show(self):
152157
.format(ee_domain)):
153158
Log.info(self, "Display NGINX configuration for {0}"
154159
.format(ee_domain))
155-
f = open('/etc/nginx/sites-available/{0}'.format(ee_domain), "r")
160+
f = open('/etc/nginx/sites-available/{0}'.format(ee_domain),
161+
encoding='utf-8', mode='r')
156162
text = f.read()
157163
Log.info(self, Log.ENDC + text)
158164
f.close()
@@ -436,7 +442,7 @@ def default(self):
436442
data = setupdatabase(self, data)
437443
try:
438444
eedbconfig = open("{0}/ee-config.php".format(ee_site_webroot),
439-
'w')
445+
encoding='utf-8', mode='w')
440446
eedbconfig.write("<?php \ndefine('DB_NAME', '{0}');"
441447
"\ndefine('DB_USER', '{1}'); "
442448
"\ndefine('DB_PASSWORD', '{2}');"
@@ -469,9 +475,9 @@ def default(self):
469475

470476
if data['wp']:
471477
Log.info(self, Log.ENDC + "WordPress admin user :"
472-
" {0}".format(ee_wp_creds['wp_user']))
478+
" {0}".format(ee_wp_creds['wp_user']), log=False)
473479
Log.info(self, Log.ENDC + "WordPress admin user password : {0}"
474-
.format(ee_wp_creds['wp_pass']))
480+
.format(ee_wp_creds['wp_pass']), log=False)
475481

476482
display_cache_settings(self, data)
477483
addNewSite(self, ee_www_domain, stype, cache, ee_site_webroot)
@@ -851,7 +857,7 @@ def default(self):
851857
data = setupdatabase(self, data)
852858
try:
853859
eedbconfig = open("{0}/ee-config.php".format(ee_site_webroot),
854-
'w')
860+
encoding='utf-8', mode='w')
855861
eedbconfig.write("<?php \ndefine('DB_NAME', '{0}');"
856862
"\ndefine('DB_USER', '{1}'); "
857863
"\ndefine('DB_PASSWORD', '{2}');"
@@ -934,7 +940,7 @@ class Meta:
934940
label = 'delete'
935941
stacked_on = 'site'
936942
stacked_type = 'nested'
937-
description = 'To delete website'
943+
description = 'delete an existing website'
938944
arguments = [
939945
(['site_name'],
940946
dict(help='domain name to be deleted')),
@@ -950,6 +956,7 @@ class Meta:
950956
]
951957

952958
@expose(help="Delete website configuration and files")
959+
@expose(hide=True)
953960
def default(self):
954961
# TODO Write code for ee site update here
955962
(ee_domain, ee_www_domain) = ValidateDomain(self.app.pargs.site_name)
@@ -1011,7 +1018,11 @@ def default(self):
10111018
Log.debug(self, "Removing Nginx configuration")
10121019
EEFileUtils.rm(self, '/etc/nginx/sites-available/{0}'
10131020
.format(ee_domain))
1021+
EEGit.add(self, ["/etc/nginx"],
1022+
msg="Deleted {0} "
1023+
.format(ee_domain))
10141024
deleteSiteInfo(self, ee_domain)
1025+
10151026
Log.info(self, "Deleted site {0}".format(ee_domain))
10161027
else:
10171028
Log.error(self, " site {0} does not exists".format(ee_domain))

ee/cli/plugins/site_functions.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def setupdomain(self, data):
2222
# write nginx config for file
2323
try:
2424
ee_site_nginx_conf = open('/etc/nginx/sites-available/{0}'
25-
.format(ee_domain_name), 'w')
25+
.format(ee_domain_name), encoding='utf-8',
26+
mode='w')
2627

2728
self.app.render((data), 'virtualconf.mustache',
2829
out=ee_site_nginx_conf)
@@ -112,20 +113,24 @@ def setupdatabase(self, data):
112113
Log.info(self, "Setting up database\t\t", end='')
113114
Log.debug(self, "Creating databse {0}".format(ee_db_name))
114115
EEMysql.execute(self, "create database {0}"
115-
.format(ee_db_name))
116+
.format(ee_db_name), errormsg="Cannot create database")
116117

117118
# Create MySQL User
118119
Log.debug(self, "Creating user {0}".format(ee_db_username))
120+
Log.debug(self, "create user {0}@{1} identified by ''"
121+
.format(ee_db_username, ee_mysql_grant_host))
119122
EEMysql.execute(self,
120123
"create user {0}@{1} identified by '{2}'"
121124
.format(ee_db_username, ee_mysql_grant_host,
122-
ee_db_password))
125+
ee_db_password),
126+
errormsg="Cannot setup database user", log=False)
123127

124128
# Grant permission
125129
Log.debug(self, "Setting up user privileges")
126130
EEMysql.execute(self,
127131
"grant all privileges on {0}.* to {1}@{2}"
128-
.format(ee_db_name, ee_db_username, ee_mysql_grant_host))
132+
.format(ee_db_name, ee_db_username, ee_mysql_grant_host),
133+
errormsg="Cannot setup database user privileges")
129134
Log.info(self, "[" + Log.ENDC + "Done" + Log.OKBLUE + "]")
130135

131136
data['ee_db_name'] = ee_db_name
@@ -442,7 +447,12 @@ def updatewpuserpassword(self, ee_domain, ee_site_webroot):
442447
Log.error(self, "{0} does not seem to be a WordPress site"
443448
.format(ee_domain))
444449

445-
ee_wp_user = input("Provide WordPress user name [admin]: ")
450+
try:
451+
ee_wp_user = input("Provide WordPress user name [admin]: ")
452+
except Exception as e:
453+
Log.debug(self, "{0}".format(e))
454+
Log.error(self, "\nCould not update password")
455+
446456
if ee_wp_user == "?":
447457
Log.info(self, "Fetching WordPress user list")
448458
EEShellExec.cmd_exec(self, "wp --allow-root user list "
@@ -457,8 +467,14 @@ def updatewpuserpassword(self, ee_domain, ee_site_webroot):
457467
.format(ee_wp_user))
458468

459469
if is_user_exist:
460-
ee_wp_pass = input("Provide password for {0} user: "
461-
.format(ee_wp_user))
470+
try:
471+
ee_wp_pass = getpass.getpass(prompt="Provide password for "
472+
"{0} user: "
473+
.format(ee_wp_user))
474+
except Exception as e:
475+
Log.debug(self, "{0}".format(e))
476+
Log.error(self, "Could not update password")
477+
462478
if len(ee_wp_pass) > 8:
463479
EEShellExec.cmd_exec(self, "wp --allow-root user update {0}"
464480
" --user_pass={1}"

0 commit comments

Comments
 (0)