Rename and move PluginConfig to ConfigHelper
authorRob Crittenden <rcritten@redhat.com>
Wed, 8 Apr 2015 13:44:14 +0000 (09:44 -0400)
committerSimo Sorce <simo@redhat.com>
Fri, 10 Apr 2015 14:38:15 +0000 (10:38 -0400)
The configuration class was originally intended to be tied. At this
point it is quite generic and useful outside of plugins. Rename
it to something more generic and move it into the config module.

https://fedorahosted.org/ipsilon/ticket/25

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Simo Sorce <simo@redhat.com>
ipsilon/admin/common.py
ipsilon/info/common.py
ipsilon/login/common.py
ipsilon/providers/common.py
ipsilon/providers/saml2/provider.py
ipsilon/util/config.py
ipsilon/util/plugin.py

index ceccdc9..7484806 100644 (file)
@@ -54,7 +54,7 @@ class AdminPluginConfig(AdminPage):
         self.back = parent.url
 
     def root_with_msg(self, message=None, message_type=None):
         self.back = parent.url
 
     def root_with_msg(self, message=None, message_type=None):
-        return self._template('admin/plugin_config.html', title=self.title,
+        return self._template('admin/option_config.html', title=self.title,
                               menu=self.menu, action=self.url, back=self.back,
                               message=message, message_type=message_type,
                               name='admin_%s_%s_form' % (self.facility,
                               menu=self.menu, action=self.url, back=self.back,
                               message=message, message_type=message_type,
                               name='admin_%s_%s_form' % (self.facility,
index dd48ae9..a97d648 100644 (file)
@@ -4,13 +4,14 @@
 
 from ipsilon.util.log import Log
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
 
 from ipsilon.util.log import Log
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
-from ipsilon.util.plugin import PluginObject, PluginConfig
+from ipsilon.util.plugin import PluginObject
+from ipsilon.util.config import ConfigHelper
 
 
 
 
-class InfoProviderBase(PluginConfig, PluginObject):
+class InfoProviderBase(ConfigHelper, PluginObject):
 
     def __init__(self, *pargs):
 
     def __init__(self, *pargs):
-        PluginConfig.__init__(self)
+        ConfigHelper.__init__(self)
         PluginObject.__init__(self, *pargs)
 
     def get_user_attrs(self, user):
         PluginObject.__init__(self, *pargs)
 
     def get_user_attrs(self, user):
index d616882..9496a4b 100644 (file)
@@ -18,7 +18,8 @@
 from ipsilon.util.page import Page
 from ipsilon.util.user import UserSession
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
 from ipsilon.util.page import Page
 from ipsilon.util.user import UserSession
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
-from ipsilon.util.plugin import PluginObject, PluginConfig
+from ipsilon.util.plugin import PluginObject
+from ipsilon.util.config import ConfigHelper
 from ipsilon.info.common import Info
 from ipsilon.util.cookies import SecureCookie
 import cherrypy
 from ipsilon.info.common import Info
 from ipsilon.util.cookies import SecureCookie
 import cherrypy
@@ -27,10 +28,10 @@ import cherrypy
 USERNAME_COOKIE = 'ipsilon_default_username'
 
 
 USERNAME_COOKIE = 'ipsilon_default_username'
 
 
-class LoginManagerBase(PluginConfig, PluginObject):
+class LoginManagerBase(ConfigHelper, PluginObject):
 
     def __init__(self, *args):
 
     def __init__(self, *args):
-        PluginConfig.__init__(self)
+        ConfigHelper.__init__(self)
         PluginObject.__init__(self, *args)
         self._root = None
         self._site = None
         PluginObject.__init__(self, *args)
         self._root = None
         self._site = None
index 74c00df..a0158d9 100644 (file)
@@ -17,7 +17,8 @@
 
 from ipsilon.util.log import Log
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
 
 from ipsilon.util.log import Log
 from ipsilon.util.plugin import PluginInstaller, PluginLoader
-from ipsilon.util.plugin import PluginObject, PluginConfig
+from ipsilon.util.plugin import PluginObject
+from ipsilon.util.config import ConfigHelper
 from ipsilon.util.page import Page
 from ipsilon.util.page import admin_protect
 from ipsilon.rest.common import RestPage
 from ipsilon.util.page import Page
 from ipsilon.util.page import admin_protect
 from ipsilon.rest.common import RestPage
@@ -49,10 +50,10 @@ class InvalidRequest(ProviderException):
         self._debug(message)
 
 
         self._debug(message)
 
 
-class ProviderBase(PluginConfig, PluginObject):
+class ProviderBase(ConfigHelper, PluginObject):
 
     def __init__(self, name, path, *pargs):
 
     def __init__(self, name, path, *pargs):
-        PluginConfig.__init__(self)
+        ConfigHelper.__init__(self)
         PluginObject.__init__(self, *pargs)
         self.name = name
         self._root = None
         PluginObject.__init__(self, *pargs)
         self.name = name
         self._root = None
index 1143c9f..d3cc144 100644 (file)
@@ -17,7 +17,7 @@
 
 from ipsilon.providers.common import ProviderException
 from ipsilon.util import config as pconfig
 
 from ipsilon.providers.common import ProviderException
 from ipsilon.util import config as pconfig
-from ipsilon.util.plugin import PluginConfig
+from ipsilon.util.config import ConfigHelper
 from ipsilon.tools.saml2metadata import SAML2_NAMEID_MAP
 from ipsilon.util.log import Log
 import lasso
 from ipsilon.tools.saml2metadata import SAML2_NAMEID_MAP
 from ipsilon.util.log import Log
 import lasso
@@ -46,7 +46,7 @@ class NameIdNotAllowed(Exception):
         return repr(self.message)
 
 
         return repr(self.message)
 
 
-class ServiceProviderConfig(PluginConfig):
+class ServiceProviderConfig(ConfigHelper):
     def __init__(self):
         super(ServiceProviderConfig, self).__init__()
 
     def __init__(self):
         super(ServiceProviderConfig, self).__init__()
 
index 947c697..523601d 100644 (file)
@@ -322,3 +322,41 @@ class Condition(Pick):
 
     def import_value(self, value):
         self._assigned_value = value == 'True'
 
     def import_value(self, value):
         self._assigned_value = value == 'True'
+
+
+class ConfigHelper(Log):
+
+    def __init__(self):
+        self._config = None
+
+    def new_config(self, name, *config_args):
+        self._config = Config(name, *config_args)
+
+    def get_config_obj(self):
+        if self._config is None:
+            raise AttributeError('Config not initialized')
+        return self._config
+
+    def import_config(self, config):
+        if not self._config:
+            raise AttributeError('Config not initialized, cannot import')
+
+        for key, value in config.iteritems():
+            if key in self._config:
+                self._config[key].import_value(str(value))
+
+    def export_config(self):
+        config = dict()
+        for name, option in self._config.iteritems():
+            config[name] = option.export_value()
+        return config
+
+    def get_config_value(self, name):
+        if not self._config:
+            raise AttributeError('Config not initialized')
+        return self._config[name].get_value()
+
+    def set_config_value(self, name, value):
+        if not self._config:
+            raise AttributeError('Config not initialized')
+        return self._config[name].set_value(value)
index 1035ca8..be6dd2f 100644 (file)
@@ -19,7 +19,6 @@ import os
 import imp
 import cherrypy
 import inspect
 import imp
 import cherrypy
 import inspect
-from ipsilon.util.config import Config
 from ipsilon.util.data import AdminStore
 from ipsilon.util.log import Log
 
 from ipsilon.util.data import AdminStore
 from ipsilon.util.log import Log
 
@@ -213,41 +212,3 @@ class PluginObject(Log):
 
     def wipe_data(self):
         self._data.wipe_data(self.name)
 
     def wipe_data(self):
         self._data.wipe_data(self.name)
-
-
-class PluginConfig(Log):
-
-    def __init__(self):
-        self._config = None
-
-    def new_config(self, name, *config_args):
-        self._config = Config(name, *config_args)
-
-    def get_config_obj(self):
-        if self._config is None:
-            raise AttributeError('Config not initialized')
-        return self._config
-
-    def import_config(self, config):
-        if not self._config:
-            raise AttributeError('Config not initialized, cannot import')
-
-        for key, value in config.iteritems():
-            if key in self._config:
-                self._config[key].import_value(str(value))
-
-    def export_config(self):
-        config = dict()
-        for name, option in self._config.iteritems():
-            config[name] = option.export_value()
-        return config
-
-    def get_config_value(self, name):
-        if not self._config:
-            raise AttributeError('Config not initialized')
-        return self._config[name].get_value()
-
-    def set_config_value(self, name, value):
-        if not self._config:
-            raise AttributeError('Config not initialized')
-        return self._config[name].set_value(value)