Browse Source

Merge branch 'python' of github.com:rtCamp/easyengine into python

bugfixes
gau1991 10 years ago
parent
commit
9b75c724fb
  1. 8
      config/plugins.d/clean.conf
  2. 2
      ee/cli/bootstrap.py
  3. 41
      ee/cli/controllers/clean.py
  4. 83
      ee/cli/plugins/clean.py
  5. 4
      ee/core/services.py

8
config/plugins.d/clean.conf

@ -0,0 +1,8 @@
### Example Plugin Configuration for EasyEngine
[clean]
### If enabled, load a plugin named `example` either from the Python module
### `ee.cli.plugins.example` or from the file path
### `/var/lib/ee/plugins/example.py`
enable_plugin = true

2
ee/cli/bootstrap.py

@ -5,7 +5,6 @@
from cement.core import handler
from ee.cli.controllers.base import EEBaseController
from ee.cli.controllers.clean import EECleanController
from ee.cli.controllers.secure import EESecureController
from ee.cli.controllers.isl import EEImportslowlogController
from ee.cli.controllers.info import EEInfoController
@ -13,7 +12,6 @@ from ee.cli.controllers.info import EEInfoController
def load(app):
handler.register(EEBaseController)
handler.register(EECleanController)
handler.register(EEInfoController)
handler.register(EEImportslowlogController)
handler.register(EESecureController)

41
ee/cli/controllers/clean.py

@ -1,41 +0,0 @@
"""EasyEngine site controller."""
from cement.core.controller import CementBaseController, expose
class EECleanController(CementBaseController):
class Meta:
label = 'clean'
stacked_on = 'base'
stacked_type = 'nested'
description = 'clean command cleans different cache with following \
options'
arguments = [
(['--all'],
dict(help='clean all cache', action='store_true')),
(['--fastcgi'],
dict(help='clean fastcgi cache', action='store_true')),
(['--memcache'],
dict(help='clean memcache', action='store_true')),
(['--opcache'],
dict(help='clean opcode cache cache', action='store_true'))
]
@expose(hide=True)
def default(self):
# TODO Default action for ee clean command here
print("Inside EECleanController.default().")
# clean command Options and subcommand calls and definations to
# mention here
# If using an output handler such as 'mustache', you could also
# render a data dictionary using a template. For example:
#
# data = dict(foo='bar')
# self.app.render(data, 'default.mustache')
#
#
# The 'default.mustache' file would be loaded from
# ``ee.cli.templates``, or ``/var/lib/ee/templates/``.
#

83
ee/cli/plugins/clean.py

@ -0,0 +1,83 @@
from ee.core.shellexec import EEShellExec
from ee.core.aptget import EEAptGet
from ee.core.services import EEService
from cement.core.controller import CementBaseController, expose
from cement.core import handler, hook
import os
def clean_plugin_hook(app):
# do something with the ``app`` object here.
pass
class EECleanController(CementBaseController):
class Meta:
label = 'clean'
stacked_on = 'base'
stacked_type = 'nested'
description = 'clean command cleans different cache with following \
options'
arguments = [
(['--all'],
dict(help='clean all cache', action='store_true')),
(['--fastcgi'],
dict(help='clean fastcgi cache', action='store_true')),
(['--memcache'],
dict(help='clean memcache', action='store_true')),
(['--opcache'],
dict(help='clean opcode cache cache', action='store_true'))
]
@expose(hide=True)
def default(self):
# TODO Default action for ee clean command here
if (not (self.app.pargs.all or self.app.pargs.fastcgi or
self.app.pargs.memcache or self.app.pargs.opcache)):
self.clean_fastcgi()
if self.app.pargs.all:
self.clean_memcache()
self.clean_fastcgi()
self.clean_opcache()
if self.app.pargs.fastcgi:
self.clean_fastcgi()
if self.app.pargs.memcache:
self.clean_memcache()
if self.app.pargs.opcache:
self.clean_opcache()
@expose(hide=True)
def clean_memcache(self):
print("in memcache..")
pkg = EEAptGet()
if(pkg.is_installed("memcached")):
print("memcache is installed...")
EEService.restart_service(self, "memcached")
print("Cleaning memcache..")
else:
print("memcache is not installed..")
@expose(hide=True)
def clean_fastcgi(self):
if(os.path.isdir("/var/run/nginx-cache")):
print("Cleaning fastcgi...")
EEShellExec.cmd_exec(self, "rm -rf /var/run/nginx-cache/*")
else:
print("Error occur while Cleaning fastcgi..")
@expose(hide=True)
def clean_opcache(self):
try:
print("Cleaning opcache.... ")
EEShellExec.cmd_exec(self, "wget --no-check-certificate --spider"
" -q https://127.0.0.1:22222/cache/opcache"
"/opgui.php?page=reset")
except OSError:
print("Unable to clean opache..")
def load(app):
# register the plugin class.. this only happens if the plugin is enabled
handler.register(EECleanController)
# register a hook (function) to run after arguments are parsed.
hook.register('post_argument_parsing', clean_plugin_hook)

4
ee/core/services.py

@ -38,8 +38,8 @@ class EEService():
def restart_service(self, service_name):
try:
EEService.stop_service(service_name)
EEService.start_service(service_name)
EEService.stop_service(self, service_name)
EEService.start_service(self, service_name)
except OSError as e:
self.app.log.error("Execution failed:", e)

Loading…
Cancel
Save