|
|
@ -22,158 +22,250 @@ class EEStackStatusController(CementBaseController): |
|
|
|
def start(self): |
|
|
|
"""Start services""" |
|
|
|
services = [] |
|
|
|
if not (self.app.pargs.nginx and self.app.pargs.php |
|
|
|
and self.app.pargs.mysql and self.app.pargs.postfix |
|
|
|
and self.app.pargs.hhvm and self.app.pargs.memcache |
|
|
|
and self.app.pargs.dovecot): |
|
|
|
self.app.pargs.nginx = True |
|
|
|
self.app.pargs.php = True |
|
|
|
self.app.pargs.mysql = True |
|
|
|
self.app.pargs.postfix = True |
|
|
|
|
|
|
|
if self.app.pargs.nginx: |
|
|
|
Log.debug(self, "nginx service start") |
|
|
|
services = services + ['nginx'] |
|
|
|
if EEVariables.ee_platform_distro == 'debian': |
|
|
|
check_nginx = 'nginx-extras' |
|
|
|
else: |
|
|
|
check_nginx = 'nginx-custom' |
|
|
|
|
|
|
|
if EEAptGet.is_installed(self, check_nginx): |
|
|
|
services = services + ['nginx'] |
|
|
|
else: |
|
|
|
Log.info(self, "Nginx is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.php: |
|
|
|
Log.debug(self, "php5-fpm service start") |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
if EEAptGet.is_installed(self, 'php5-fpm'): |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
else: |
|
|
|
Log.info(self, "PHP5-FPM is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.mysql: |
|
|
|
if EEVariables.ee_mysql_host is "localhost": |
|
|
|
Log.debug(self, "mysql service start") |
|
|
|
services = services + ['mysql'] |
|
|
|
else: |
|
|
|
Log.warn(self, "Remote MySQL found," |
|
|
|
"unable to start MySQL service") |
|
|
|
"Unable to start MySQL service") |
|
|
|
if self.app.pargs.postfix: |
|
|
|
Log.debug(self, "postfix service start") |
|
|
|
services = services + ['postfix'] |
|
|
|
if EEAptGet.is_installed(self, 'postfix'): |
|
|
|
services = services + ['postfix'] |
|
|
|
else: |
|
|
|
Log.info(self, "Postfix is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.hhvm: |
|
|
|
services = services + ['hhvm'] |
|
|
|
Log.debug(self, "hhvm service start") |
|
|
|
if EEAptGet.is_installed(self, 'hhvm'): |
|
|
|
services = services + ['hhvm'] |
|
|
|
else: |
|
|
|
Log.info(self, "HHVM is not installed") |
|
|
|
if self.app.pargs.memcache: |
|
|
|
Log.debug(self, "memcached service start") |
|
|
|
services = services + ['memcached'] |
|
|
|
if EEAptGet.is_installed(self, 'memcached'): |
|
|
|
services = services + ['memcached'] |
|
|
|
else: |
|
|
|
Log.info(self, "Memcache is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.dovecot: |
|
|
|
Log.debug(self, "dovecot service start") |
|
|
|
services = services + ['dovecot'] |
|
|
|
if not services and EEVariables.ee_mysql_host is "localhost": |
|
|
|
services = services + ['nginx', 'php5-fpm', 'mysql', 'postfix', |
|
|
|
'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,mysql,postfix,hhvm services start") |
|
|
|
elif not services: |
|
|
|
services = services + ['nginx', 'php5-fpm', 'postfix', 'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,postfix,hhvm services start") |
|
|
|
if EEAptGet.is_installed(self, 'dovecot-core'): |
|
|
|
services = services + ['dovecot'] |
|
|
|
else: |
|
|
|
Log.info(self, "Mail server is not installed") |
|
|
|
|
|
|
|
for service in services: |
|
|
|
Log.debug(self, "Starting service: {0}".format(service)) |
|
|
|
EEService.start_service(self, service) |
|
|
|
|
|
|
|
@expose(help="Stop stack services") |
|
|
|
def stop(self): |
|
|
|
"""Stop services""" |
|
|
|
services = [] |
|
|
|
if not (self.app.pargs.nginx and self.app.pargs.php |
|
|
|
and self.app.pargs.mysql and self.app.pargs.postfix |
|
|
|
and self.app.pargs.hhvm and self.app.pargs.memcache |
|
|
|
and self.app.pargs.dovecot): |
|
|
|
self.app.pargs.nginx = True |
|
|
|
self.app.pargs.php = True |
|
|
|
self.app.pargs.mysql = True |
|
|
|
self.app.pargs.postfix = True |
|
|
|
|
|
|
|
if self.app.pargs.nginx: |
|
|
|
Log.debug(self, "nginx service stop") |
|
|
|
services = services + ['nginx'] |
|
|
|
if EEVariables.ee_platform_distro == 'debian': |
|
|
|
check_nginx = 'nginx-extras' |
|
|
|
else: |
|
|
|
check_nginx = 'nginx-custom' |
|
|
|
|
|
|
|
if EEAptGet.is_installed(self, check_nginx): |
|
|
|
services = services + ['nginx'] |
|
|
|
else: |
|
|
|
Log.info(self, "Nginx is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.php: |
|
|
|
Log.debug(self, "php5-fpm service stop") |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
if EEAptGet.is_installed(self, 'php5-fpm'): |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
else: |
|
|
|
Log.info(self, "PHP5-FPM is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.mysql: |
|
|
|
if EEVariables.ee_mysql_host is "localhost": |
|
|
|
Log.debug(self, "mysql service stop") |
|
|
|
services = services + ['mysql'] |
|
|
|
else: |
|
|
|
Log.warn(self, "Remote MySQL found, " |
|
|
|
"unable to stop MySQL service") |
|
|
|
Log.warn(self, "Remote MySQL found," |
|
|
|
"Unable to stop MySQL service") |
|
|
|
if self.app.pargs.postfix: |
|
|
|
Log.debug(self, "postfix service stop") |
|
|
|
services = services + ['postfix'] |
|
|
|
if EEAptGet.is_installed(self, 'postfix'): |
|
|
|
services = services + ['postfix'] |
|
|
|
else: |
|
|
|
Log.info(self, "Postfix is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.hhvm: |
|
|
|
services = services + ['hhvm'] |
|
|
|
Log.debug(self, "hhvm service stop") |
|
|
|
if EEAptGet.is_installed(self, 'hhvm'): |
|
|
|
services = services + ['hhvm'] |
|
|
|
else: |
|
|
|
Log.info(self, "HHVM is not installed") |
|
|
|
if self.app.pargs.memcache: |
|
|
|
Log.debug(self, "memcached service stop") |
|
|
|
services = services + ['memcached'] |
|
|
|
if EEAptGet.is_installed(self, 'memcached'): |
|
|
|
services = services + ['memcached'] |
|
|
|
else: |
|
|
|
Log.info(self, "Memcache is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.dovecot: |
|
|
|
Log.debug(self, "dovecot service stop") |
|
|
|
services = services + ['dovecot'] |
|
|
|
if not services and EEVariables.ee_mysql_host is "localhost": |
|
|
|
services = services + ['nginx', 'php5-fpm', 'mysql', 'postfix', |
|
|
|
'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,mysql,postfix,hhvm services stop") |
|
|
|
elif not services: |
|
|
|
services = services + ['nginx', 'php5-fpm', 'postfix', 'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,postfix,hhvm services stop") |
|
|
|
if EEAptGet.is_installed(self, 'dovecot-core'): |
|
|
|
services = services + ['dovecot'] |
|
|
|
else: |
|
|
|
Log.info(self, "Mail server is not installed") |
|
|
|
|
|
|
|
for service in services: |
|
|
|
Log.debug(self, "Stopping service: {0}".format(service)) |
|
|
|
EEService.stop_service(self, service) |
|
|
|
|
|
|
|
@expose(help="Restart stack services") |
|
|
|
def restart(self): |
|
|
|
"""Restart services""" |
|
|
|
services = [] |
|
|
|
if not (self.app.pargs.nginx and self.app.pargs.php |
|
|
|
and self.app.pargs.mysql and self.app.pargs.postfix |
|
|
|
and self.app.pargs.hhvm and self.app.pargs.memcache |
|
|
|
and self.app.pargs.dovecot): |
|
|
|
self.app.pargs.nginx = True |
|
|
|
self.app.pargs.php = True |
|
|
|
self.app.pargs.mysql = True |
|
|
|
self.app.pargs.postfix = True |
|
|
|
|
|
|
|
if self.app.pargs.nginx: |
|
|
|
Log.debug(self, "nginx service restart") |
|
|
|
services = services + ['nginx'] |
|
|
|
if EEVariables.ee_platform_distro == 'debian': |
|
|
|
check_nginx = 'nginx-extras' |
|
|
|
else: |
|
|
|
check_nginx = 'nginx-custom' |
|
|
|
|
|
|
|
if EEAptGet.is_installed(self, check_nginx): |
|
|
|
services = services + ['nginx'] |
|
|
|
else: |
|
|
|
Log.info(self, "Nginx is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.php: |
|
|
|
Log.debug(self, "php5-fpm service restart") |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
if EEAptGet.is_installed(self, 'php5-fpm'): |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
else: |
|
|
|
Log.info(self, "PHP5-FPM is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.mysql: |
|
|
|
if EEVariables.ee_mysql_host is "localhost": |
|
|
|
Log.debug(self, "mysql service restart") |
|
|
|
services = services + ['mysql'] |
|
|
|
else: |
|
|
|
Log.warn(self, "Remote MySQL found, " |
|
|
|
"unable to restart MySQL service") |
|
|
|
Log.warn(self, "Remote MySQL found," |
|
|
|
"Unable to restart MySQL service") |
|
|
|
if self.app.pargs.postfix: |
|
|
|
Log.debug(self, "postfix service restart") |
|
|
|
services = services + ['postfix'] |
|
|
|
if EEAptGet.is_installed(self, 'postfix'): |
|
|
|
services = services + ['postfix'] |
|
|
|
else: |
|
|
|
Log.info(self, "Postfix is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.hhvm: |
|
|
|
services = services + ['hhvm'] |
|
|
|
Log.debug(self, "hhvm service restart") |
|
|
|
if EEAptGet.is_installed(self, 'hhvm'): |
|
|
|
services = services + ['hhvm'] |
|
|
|
else: |
|
|
|
Log.info(self, "HHVM is not installed") |
|
|
|
if self.app.pargs.memcache: |
|
|
|
Log.debug(self, "memcached service restart") |
|
|
|
services = services + ['memcached'] |
|
|
|
if EEAptGet.is_installed(self, 'memcached'): |
|
|
|
services = services + ['memcached'] |
|
|
|
else: |
|
|
|
Log.info(self, "Memcache is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.dovecot: |
|
|
|
Log.debug(self, "dovecot service restart") |
|
|
|
services = services + ['dovecot'] |
|
|
|
if not services and EEVariables.ee_mysql_host is "localhost": |
|
|
|
services = services + ['nginx', 'php5-fpm', 'mysql', 'postfix', |
|
|
|
'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,mysql,postfix,hhvm services" |
|
|
|
"restart") |
|
|
|
elif not services: |
|
|
|
services = services + ['nginx', 'php5-fpm', 'postfix', 'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,postfix,hhvm services restart") |
|
|
|
if EEAptGet.is_installed(self, 'dovecot-core'): |
|
|
|
services = services + ['dovecot'] |
|
|
|
else: |
|
|
|
Log.info(self, "Mail server is not installed") |
|
|
|
|
|
|
|
for service in services: |
|
|
|
Log.debug(self, "Restarting service: {0}".format(service)) |
|
|
|
EEService.restart_service(self, service) |
|
|
|
|
|
|
|
@expose(help="Get stack status") |
|
|
|
def status(self): |
|
|
|
"""Status of services""" |
|
|
|
services = [] |
|
|
|
if not (self.app.pargs.nginx and self.app.pargs.php |
|
|
|
and self.app.pargs.mysql and self.app.pargs.postfix |
|
|
|
and self.app.pargs.hhvm and self.app.pargs.memcache |
|
|
|
and self.app.pargs.dovecot): |
|
|
|
self.app.pargs.nginx = True |
|
|
|
self.app.pargs.php = True |
|
|
|
self.app.pargs.mysql = True |
|
|
|
self.app.pargs.postfix = True |
|
|
|
|
|
|
|
if self.app.pargs.nginx: |
|
|
|
Log.debug(self, "nginx service status") |
|
|
|
services = services + ['nginx'] |
|
|
|
if EEVariables.ee_platform_distro == 'debian': |
|
|
|
check_nginx = 'nginx-extras' |
|
|
|
else: |
|
|
|
check_nginx = 'nginx-custom' |
|
|
|
|
|
|
|
if EEAptGet.is_installed(self, check_nginx): |
|
|
|
services = services + ['nginx'] |
|
|
|
else: |
|
|
|
Log.info(self, "Nginx is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.php: |
|
|
|
Log.debug(self, "php5-fpm service status") |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
if EEAptGet.is_installed(self, 'php5-fpm'): |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
else: |
|
|
|
Log.info(self, "PHP5-FPM is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.mysql: |
|
|
|
if EEVariables.ee_mysql_host is "localhost": |
|
|
|
Log.debug(self, "mysql service status") |
|
|
|
services = services + ['mysql'] |
|
|
|
else: |
|
|
|
Log.warn(self, "Remote MySQL found, " |
|
|
|
"unable to get MySQL service status") |
|
|
|
Log.warn(self, "Remote MySQL found," |
|
|
|
"Unable to check MySQL service status") |
|
|
|
if self.app.pargs.postfix: |
|
|
|
services = services + ['postfix'] |
|
|
|
Log.debug(self, "postfix service status") |
|
|
|
if EEAptGet.is_installed(self, 'postfix'): |
|
|
|
services = services + ['postfix'] |
|
|
|
else: |
|
|
|
Log.info(self, "Postfix is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.hhvm: |
|
|
|
services = services + ['hhvm'] |
|
|
|
Log.debug(self, "hhvm service status") |
|
|
|
if EEAptGet.is_installed(self, 'hhvm'): |
|
|
|
services = services + ['hhvm'] |
|
|
|
else: |
|
|
|
Log.info(self, "HHVM is not installed") |
|
|
|
if self.app.pargs.memcache: |
|
|
|
Log.debug(self, "memcached service status") |
|
|
|
services = services + ['memcached'] |
|
|
|
if EEAptGet.is_installed(self, 'memcached'): |
|
|
|
services = services + ['memcached'] |
|
|
|
else: |
|
|
|
Log.info(self, "Memcache is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.dovecot: |
|
|
|
Log.debug(self, "dovecot service status") |
|
|
|
services = services + ['dovecot'] |
|
|
|
if not services and EEVariables.ee_mysql_host is "localhost": |
|
|
|
services = services + ['nginx', 'php5-fpm', 'mysql', 'postfix', |
|
|
|
'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,mysql,postfix,hhvm services" |
|
|
|
" status") |
|
|
|
elif not services: |
|
|
|
services = services + ['nginx', 'php5-fpm', 'postfix', 'hhvm'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,postfix,hhvm services status") |
|
|
|
if EEAptGet.is_installed(self, 'dovecot-core'): |
|
|
|
services = services + ['dovecot'] |
|
|
|
else: |
|
|
|
Log.info(self, "Mail server is not installed") |
|
|
|
|
|
|
|
for service in services: |
|
|
|
if EEService.get_service_status(self, service): |
|
|
|
Log.info(self, "{0:10}: {1}".format(service, "Running")) |
|
|
@ -182,35 +274,59 @@ class EEStackStatusController(CementBaseController): |
|
|
|
def reload(self): |
|
|
|
"""Reload service""" |
|
|
|
services = [] |
|
|
|
if not (self.app.pargs.nginx and self.app.pargs.php |
|
|
|
and self.app.pargs.mysql and self.app.pargs.postfix |
|
|
|
and self.app.pargs.hhvm and self.app.pargs.memcache |
|
|
|
and self.app.pargs.dovecot): |
|
|
|
self.app.pargs.nginx = True |
|
|
|
self.app.pargs.php = True |
|
|
|
self.app.pargs.mysql = True |
|
|
|
self.app.pargs.postfix = True |
|
|
|
|
|
|
|
if self.app.pargs.nginx: |
|
|
|
Log.debug(self, "nginx service reload") |
|
|
|
services = services + ['nginx'] |
|
|
|
if EEVariables.ee_platform_distro == 'debian': |
|
|
|
check_nginx = 'nginx-extras' |
|
|
|
else: |
|
|
|
check_nginx = 'nginx-custom' |
|
|
|
|
|
|
|
if EEAptGet.is_installed(self, check_nginx): |
|
|
|
services = services + ['nginx'] |
|
|
|
else: |
|
|
|
Log.info(self, "Nginx is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.php: |
|
|
|
Log.debug(self, "php5-fpm service reload") |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
if EEAptGet.is_installed(self, 'php5-fpm'): |
|
|
|
services = services + ['php5-fpm'] |
|
|
|
else: |
|
|
|
Log.info(self, "PHP5-FPM is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.mysql: |
|
|
|
if EEVariables.ee_mysql_host is "localhost": |
|
|
|
Log.debug(self, "mysql service reload") |
|
|
|
services = services + ['mysql'] |
|
|
|
else: |
|
|
|
Log.warn(self, "Remote MySQL found, " |
|
|
|
"unable to remote MySQL service") |
|
|
|
Log.warn(self, "Remote MySQL found," |
|
|
|
"Unable to reload MySQL service") |
|
|
|
if self.app.pargs.postfix: |
|
|
|
Log.debug(self, "postfix service reload") |
|
|
|
services = services + ['postfix'] |
|
|
|
if EEAptGet.is_installed(self, 'postfix'): |
|
|
|
services = services + ['postfix'] |
|
|
|
else: |
|
|
|
Log.info(self, "Postfix is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.hhvm: |
|
|
|
Log.warn(self, "hhvm does not support to reload") |
|
|
|
Log.info(self, "HHVM does not support to reload") |
|
|
|
|
|
|
|
if self.app.pargs.memcache: |
|
|
|
Log.debug(self, "memcached service reload") |
|
|
|
services = services + ['memcached'] |
|
|
|
if EEAptGet.is_installed(self, 'memcached'): |
|
|
|
services = services + ['memcached'] |
|
|
|
else: |
|
|
|
Log.info(self, "Memcache is not installed") |
|
|
|
|
|
|
|
if self.app.pargs.dovecot: |
|
|
|
Log.debug(self, "dovecot service reload") |
|
|
|
services = services + ['dovecot'] |
|
|
|
if not services and EEVariables.ee_mysql_host is "localhost": |
|
|
|
services = services + ['nginx', 'php5-fpm', 'mysql', 'postfix'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,mysql,postfix services reload") |
|
|
|
elif not services: |
|
|
|
services = services + ['nginx', 'php5-fpm', 'postfix'] |
|
|
|
Log.debug(self, "nginx,php5-fpm,postfix services reload") |
|
|
|
if EEAptGet.is_installed(self, 'dovecot-core'): |
|
|
|
services = services + ['dovecot'] |
|
|
|
else: |
|
|
|
Log.info(self, "Mail server is not installed") |
|
|
|
|
|
|
|
for service in services: |
|
|
|
Log.debug(self, "Reloading service: {0}".format(service)) |
|
|
|
EEService.reload_service(self, service) |
|
|
|