X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=ipsilon%2Futil%2Fplugin.py;h=903f548d0b6a7f2cf14ed6a4f4b37a59140abb25;hb=9e45a0dda4cfa26b531a423fc8b1c4b10d382a0f;hp=edfda168ae22524020a1ca0cf68627cff63e7d75;hpb=d00990c389e98dc62a59020e4a79cfe657f88f89;p=cascardo%2Fipsilon.git diff --git a/ipsilon/util/plugin.py b/ipsilon/util/plugin.py index edfda16..903f548 100755 --- a/ipsilon/util/plugin.py +++ b/ipsilon/util/plugin.py @@ -21,7 +21,7 @@ import os import imp import cherrypy import inspect -from ipsilon.util.data import Store +from ipsilon.util.data import AdminStore from ipsilon.util.log import Log @@ -72,11 +72,15 @@ class Plugins(object): class PluginLoader(object): def __init__(self, baseobj, facility, plugin_type): - (whitelist, config) = Store().get_plugins_config(facility) + config = AdminStore().load_options(facility) + cherrypy.log('LOAD: %s\n' % repr(config)) + whitelist = [] + if 'global' in config: + sec = config['global'] + if 'order' in sec: + whitelist = sec['order'].split(',') if cherrypy.config.get('debug', False): cherrypy.log('[%s] %s: %s' % (facility, whitelist, config)) - if whitelist is None: - whitelist = [] if config is None: config = dict() @@ -109,7 +113,7 @@ class PluginObject(Log): self.name = None self._config = None self._options = None - self._data = Store() + self._data = AdminStore() def get_config_desc(self): """ The configuration description is a dictionary that provides @@ -146,10 +150,12 @@ class PluginObject(Log): self._config[option] = value def get_plugin_config(self, facility): - return self._data.get_plugin_config(facility, self.name) + return self._data.load_options(facility, self.name) - def save_plugin_config(self, facility): - self._data.save_plugin_config(facility, self.name, self._config) + def save_plugin_config(self, facility, config=None): + if config is None: + config = self._config + self._data.save_options(facility, self.name, config) def get_data(self, idval=None, name=None, value=None): return self._data.get_data(self.name, idval=idval, name=name, @@ -165,7 +171,7 @@ class PluginObject(Log): self._data.del_datum(self.name, idval) def wipe_config_values(self, facility): - self._data.wipe_plugin_config(facility, self.name) + self._data.delete_options(facility, self.name, None) def wipe_data(self): self._data.wipe_data(self.name)