[Kimchi-devel] [PATCH V2 1/2] Plugins: Fix plugins framework in kimchi

Aline Manera alinefm at linux.vnet.ibm.com
Mon Jan 20 16:11:16 UTC 2014


Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>

On 01/17/2014 04:41 PM, Rodrigo Trujillo wrote:
> If the plugin tab name string is not found in kimchi i18n file, the
> tab name is set as 'unknown'. This patch also add more messages to
> kimchis log, and fixes a problem with the plugins extra tabs file
> location
>
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
>   src/kimchi/server.py     | 13 ++++++++++---
>   ui/js/src/kimchi.main.js |  2 +-
>   2 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/src/kimchi/server.py b/src/kimchi/server.py
> index b820263..4fcb0df 100644
> --- a/src/kimchi/server.py
> +++ b/src/kimchi/server.py
> @@ -28,6 +28,7 @@ import logging.handlers
>   import os
>   import sslcert
>
> +
>   from kimchi import auth
>   from kimchi import config
>   from kimchi import model
> @@ -208,14 +209,19 @@ class Server(object):
>                   script_name = plugin_config['kimchi']['uri']
>                   del plugin_config['kimchi']
>
> +                tabs_extra_file = config.get_plugin_tab_xml(plugin_name)
>                   plugin_config['/ui/config/tab-ext.xml'] = {
>                       'tools.staticfile.on': True,
> -                    'tools.staticfile.filename':
> -                    config.get_plugin_tab_xml(plugin_name),
> +                    'tools.staticfile.filename': tabs_extra_file,
>                       'tools.nocache.on': True}
>               except KeyError:
>                   continue
> -
> +            except IOError as e:
> +                msg = "Failed to load plugin tabs file %s" %tabs_extra_file
> +                cherrypy.log.error_log.error(msg)
> +                cherrypy.log.error_log.error('Ignoring plugin "%s"',
> +                                             plugin_name)
> +                continue
>               try:
>                   plugin_app = import_class(plugin_class)()
>               except ImportError:
> @@ -223,6 +229,7 @@ class Server(object):
>                                                plugin_class)
>                   continue
>               cherrypy.tree.mount(plugin_app, script_name, plugin_config)
> +            cherrypy.log('Plugin loaded: %s' %plugin_class)
>
>       def _init_ssl(self, options):
>           ssl_server = cherrypy._cpserver.Server()
> diff --git a/ui/js/src/kimchi.main.js b/ui/js/src/kimchi.main.js
> index cc8afee..8b84a34 100644
> --- a/ui/js/src/kimchi.main.js
> +++ b/ui/js/src/kimchi.main.js
> @@ -211,7 +211,7 @@ kimchi.getTabHtml = function(url) {
>               $(xmlData).find('tab').each(function() {
>                   var $tab = $(this);
>                   var titleKey = $tab.find('title').text();
> -                var title = i18n[titleKey];
> +                var title = i18n[titleKey] || titleKey;
>                   var path = $tab.find('path').text();
>                   tabsHtml += "<li><a class='item' href=" + path + ">" + title + "</a></li>";
>               });




More information about the Kimchi-devel mailing list