[Kimchi-devel] [PATCH WOK] Remove plugin API configuration from Wok
Paulo Ricardo Paz Vital
pvital at linux.vnet.ibm.com
Mon Sep 21 16:08:18 UTC 2015
Tested-By: Paulo Vital <pvital at linux.vnet.ibm.com>
Reviewed-By: Paulo
Vital <pvital at linux.vnet.ibm.com>
On Mon, 2015-09-21 at 11:20 -0300, Aline Manera wrote:
> Wok is only a framework and does not know which configuratin is
> required
> for each plugin. Based on that, the plugin is responsible for its API
> configuration.
>
> Update Kimchi configuration accordingly.
>
> This patch also prevents the follwing error on server start up:
>
> CherryPy Checker:
> '/home/alinefm/wok/plugins/kimchi/ui/libs' (root + dir) is not an
> existing filesystem path.
> section: [/libs]
> root: None
> dir: '/home/alinefm/wok/plugins/kimchi/ui/libs'
>
> Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
> ---
> plugins/kimchi/config.py.in | 60 +++++++++++++++++++++++++----------
> ----------
> src/wok/config.py.in | 8 ++----
> 2 files changed, 35 insertions(+), 33 deletions(-)
>
> diff --git a/plugins/kimchi/config.py.in
> b/plugins/kimchi/config.py.in
> index 4b82e45..6ae0ccd 100644
> --- a/plugins/kimchi/config.py.in
> +++ b/plugins/kimchi/config.py.in
> @@ -23,7 +23,7 @@ import os
> import platform
> import threading
>
> -from wok.config import PluginConfig, PluginPaths
> +from wok.config import CACHEEXPIRES, PluginConfig, PluginPaths
> from wok.xmlutils.utils import xpath_get_text
>
> kimchiLock = threading.Lock()
> @@ -107,32 +107,38 @@ class KimchiConfig(PluginConfig):
> def __init__(self):
> super(KimchiConfig, self).__init__('kimchi')
>
> - custom_config = {
> - '/novnc': {
> + static_config = {
> + '/novnc': {'type': 'dir',
> + 'path': kimchiPaths.novnc_dir},
> + '/spice-html5': {'type': 'dir',
> + 'path': kimchiPaths.spice_dir},
> + '/spice_auto.html': {'type': 'file',
> + 'path': kimchiPaths.spice_file},
> + '/spice-html5/spice.css': {'type': 'file',
> + 'path':
> kimchiPaths.spice_css_file}}
> +
> + custom_config = {}
> + for uri, data in static_config.iteritems():
> + custom_config[uri] = {'tools.nocache.on': True,
> + 'tools.wokauth.on': True}
> + path = data['path']
> + if data['type'] == 'dir':
> + custom_config[uri].update({'tools.staticdir.on':
> True,
> + 'tools.staticdir.dir':
> path})
> + elif data['type'] == 'file':
> + custom_config[uri].update({'tools.staticfile.on':
> True,
> +
> 'tools.staticfile.filename': path})
> +
> + for dirname in ('css', 'js', 'images'):
> + custom_config['/' + dirname] = {
> 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': kimchiPaths.novnc_dir,
> - 'tools.nocache.on': True,
> - 'tools.wokauth.on': True,
> - },
> -
> - '/spice_auto.html': {
> - 'tools.staticfile.on': True,
> - 'tools.staticfile.filename': kimchiPaths.spice_file,
> - 'tools.nocache.on': True,
> - 'tools.wokauth.on': True,
> - },
> -
> - '/spice-html5': {
> - 'tools.staticdir.on': True,
> - 'tools.staticdir.dir': kimchiPaths.spice_dir,
> - 'tools.nocache.on': True,
> - },
> -
> - '/spice-html5/spice.css': {
> - 'tools.staticfile.on': True,
> - 'tools.staticfile.filename':
> kimchiPaths.spice_css_file,
> - 'tools.nocache.on': True,
> - },
> - }
> + 'tools.staticdir.dir':
> os.path.join(kimchiPaths.ui_dir,
> + dirname),
> + 'tools.wokauth.on': False,
> + 'tools.nocache.on': False}
> + if dirname != 'images':
> + custom_config['/' + dirname].update({
> + 'tools.expires.on': True,
> + 'tools.expires.secs': CACHEEXPIRES})
>
> self.update(custom_config)
> diff --git a/src/wok/config.py.in b/src/wok/config.py.in
> index da17257..616c013 100644
> --- a/src/wok/config.py.in
> +++ b/src/wok/config.py.in
> @@ -25,6 +25,7 @@ from ConfigParser import SafeConfigParser
> __version__ = "@wokversion@"
> __release__ = "@wokrelease@"
>
> +CACHEEXPIRES = 31536000 # expires is one year.
> DEFAULT_LOG_LEVEL = "debug"
>
> FONT_FILES = {'fontawesome': ['fontawesome-webfont.ttf'],
> @@ -126,10 +127,6 @@ class PluginPaths(Paths):
>
>
> class UIConfig(dict):
> -
> - # expires is one year.
> - CACHEEXPIRES = 31536000
> -
> def __init__(self, paths):
> ui_configs = {}
> for sub_dir in ('css', 'js', 'libs', 'images'):
> @@ -141,7 +138,7 @@ class UIConfig(dict):
> if sub_dir != 'images':
> ui_configs['/' + sub_dir].update({
> 'tools.expires.on': True,
> - 'tools.expires.secs': self.CACHEEXPIRES})
> + 'tools.expires.secs': CACHEEXPIRES})
>
> for font, files in FONT_FILES.iteritems():
> paths = FONTS_PATH[font]
> @@ -207,7 +204,6 @@ class PluginConfig(dict):
> 'config/tab-ext.xml'),
> 'tools.nocache.on': True}}
> self.update(plugin_config)
> - self.update(UIConfig(PluginPaths(plugin_name)))
>
>
> def _get_config():
More information about the Kimchi-devel
mailing list