[Kimchi-devel] [PATCH] [Wok] Bug fix #176: Assume plugin URI is /plugins/<plugin-name>
Lucio Correia
luciojhc at linux.vnet.ibm.com
Fri Oct 28 11:31:44 UTC 2016
Reviewed-By: Lucio Correia <luciojhc at linux.vnet.ibm.com>
On 26/10/2016 14:52, Aline Manera wrote:
> Today, every plugin configuration file has a 'uri' parameter that can be
> changed.
>
> But now, the user can change the Wok base URI so there is no need
> to have this kind of configuration on each plugin.
>
> Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
> ---
> src/wok/config.py.in | 5 +++++
> src/wok/model/plugins.py | 3 ++-
> src/wok/server.py | 6 +++---
> src/wok/utils.py | 11 +----------
> 4 files changed, 11 insertions(+), 14 deletions(-)
>
> diff --git a/src/wok/config.py.in b/src/wok/config.py.in
> index 46544fa..f1167f4 100644
> --- a/src/wok/config.py.in
> +++ b/src/wok/config.py.in
> @@ -293,5 +293,10 @@ def _get_config():
> config = _get_config()
>
>
> +def get_base_plugin_uri(p_name):
> + return os.path.join("/", config.get("server", "server_root"),
> + "plugins", p_name)
> +
> +
> if __name__ == '__main__':
> print paths.prefix
> diff --git a/src/wok/model/plugins.py b/src/wok/model/plugins.py
> index 4beff44..1b8ec5e 100644
> --- a/src/wok/model/plugins.py
> +++ b/src/wok/model/plugins.py
> @@ -21,6 +21,7 @@
>
> import cherrypy
>
> +from wok.config import get_base_plugin_uri
> from wok.utils import get_enabled_plugins
>
>
> @@ -32,4 +33,4 @@ class PluginsModel(object):
> # Will only return plugins that were loaded correctly by WOK and are
> # properly configured in cherrypy
> return [plugin for (plugin, config) in get_enabled_plugins()
> - if config.get('wok').get('uri') in cherrypy.tree.apps.keys()]
> + if get_base_plugin_uri(plugin) in cherrypy.tree.apps.keys()]
> diff --git a/src/wok/server.py b/src/wok/server.py
> index fecca48..93d28c6 100644
> --- a/src/wok/server.py
> +++ b/src/wok/server.py
> @@ -189,9 +189,7 @@ class Server(object):
> plugin_class = ('plugins.%s.%s' %
> (plugin_name,
> plugin_name[0].upper() + plugin_name[1:]))
> - script_name = plugin_config['wok']['uri']
> del plugin_config['wok']
> -
> plugin_config.update(PluginConfig(plugin_name))
> except KeyError:
> continue
> @@ -229,7 +227,9 @@ class Server(object):
> "error: %s" % (plugin_class, e.message)
> )
>
> - cherrypy.tree.mount(plugin_app, script_name, plugin_config)
> + cherrypy.tree.mount(plugin_app,
> + config.get_base_plugin_uri(plugin_name),
> + plugin_config)
>
> def start(self):
> # Subscribe to SignalHandler plugin
> diff --git a/src/wok/utils.py b/src/wok/utils.py
> index 52f6cea..9a08001 100644
> --- a/src/wok/utils.py
> +++ b/src/wok/utils.py
> @@ -39,7 +39,7 @@ from datetime import datetime, timedelta
> from multiprocessing import Process, Queue
> from threading import Timer
>
> -from wok.config import config, paths, PluginPaths
> +from wok.config import paths, PluginPaths
> from wok.exception import InvalidParameter, TimeoutExpired
> from wok.stringutils import decode_value
>
> @@ -71,14 +71,6 @@ def _load_plugin_conf(name):
> (plugin_conf, e.message))
>
>
> -def _check_plugin_relative_path(plugin_config):
> - rel_path = config.get("server", "server_root")
> - plugin_uri = plugin_config['wok']['uri']
> - if (rel_path is not "") and (not plugin_uri.startswith(rel_path)):
> - plugin_config['wok']['uri'] = rel_path + plugin_uri
> - return plugin_config
> -
> -
> def get_enabled_plugins():
> plugin_dir = paths.plugins_dir
> try:
> @@ -90,7 +82,6 @@ def get_enabled_plugins():
> plugin_config = _load_plugin_conf(name)
> try:
> if plugin_config['wok']['enable']:
> - plugin_config = _check_plugin_relative_path(plugin_config)
> yield (name, plugin_config)
> except (TypeError, KeyError):
> continue
>
--
Lucio Correia
Software Engineer
IBM LTC Brazil
More information about the Kimchi-devel
mailing list