diff options
author | Patrick Uiterwijk <puiterwijk@redhat.com> | 2015-02-04 10:58:14 +0100 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2015-02-26 15:18:02 -0500 |
commit | 7ad204c13898245cdea5acfa90be83e767276994 (patch) | |
tree | 44775ee20dd1b72fa5688acf1d4e2b838f349dd6 /ipsilon/providers | |
parent | 1d2fda874a7285e88b9aac870e7d9bc998fe7464 (diff) | |
download | ipsilon-7ad204c13898245cdea5acfa90be83e767276994.tar.gz ipsilon-7ad204c13898245cdea5acfa90be83e767276994.tar.xz ipsilon-7ad204c13898245cdea5acfa90be83e767276994.zip |
Add uninstallation support.
As part of this, made all plugins use a Installer baseclass.
https://fedorahosted.org/ipsilon/ticket/38
Signed-off-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Reviewed-by: Rob Crittenden <rcritten@redhat.com>
Diffstat (limited to 'ipsilon/providers')
-rw-r--r-- | ipsilon/providers/common.py | 16 | ||||
-rw-r--r-- | ipsilon/providers/openidp.py | 6 | ||||
-rw-r--r-- | ipsilon/providers/personaidp.py | 6 | ||||
-rw-r--r-- | ipsilon/providers/saml2idp.py | 7 |
4 files changed, 26 insertions, 9 deletions
diff --git a/ipsilon/providers/common.py b/ipsilon/providers/common.py index dfa2627..4206387 100644 --- a/ipsilon/providers/common.py +++ b/ipsilon/providers/common.py @@ -111,6 +111,22 @@ class ProviderPageBase(Page): FACILITY = 'provider_config' +class ProviderInstaller(object): + def __init__(self): + self.facility = FACILITY + self.ptype = 'provider' + self.name = None + + def unconfigure(self, opts): + return + + def install_args(self, group): + raise NotImplementedError + + def configure(self, opts): + raise NotImplementedError + + class LoadProviders(Log): def __init__(self, root, site): diff --git a/ipsilon/providers/openidp.py b/ipsilon/providers/openidp.py index 6bdf557..f79435f 100644 --- a/ipsilon/providers/openidp.py +++ b/ipsilon/providers/openidp.py @@ -2,7 +2,7 @@ from __future__ import absolute_import -from ipsilon.providers.common import ProviderBase +from ipsilon.providers.common import ProviderBase, ProviderInstaller from ipsilon.providers.openid.store import OpenIDStore from ipsilon.providers.openid.auth import OpenID from ipsilon.providers.openid.extensions.common import LoadExtensions @@ -131,11 +131,11 @@ Provides OpenID 2.0 authentication infrastructure. """ self.extensions.enable(self._config['enabled extensions'].get_value()) -class Installer(object): +class Installer(ProviderInstaller): def __init__(self, *pargs): + super(Installer, self).__init__() self.name = 'openid' - self.ptype = 'provider' self.pargs = pargs def install_args(self, group): diff --git a/ipsilon/providers/personaidp.py b/ipsilon/providers/personaidp.py index 0096c7a..74e19d3 100644 --- a/ipsilon/providers/personaidp.py +++ b/ipsilon/providers/personaidp.py @@ -2,7 +2,7 @@ from __future__ import absolute_import -from ipsilon.providers.common import ProviderBase +from ipsilon.providers.common import ProviderBase, ProviderInstaller from ipsilon.util.plugin import PluginObject from ipsilon.util import config as pconfig from ipsilon.info.common import InfoMapping @@ -74,11 +74,11 @@ Provides Persona authentication infrastructure. """ self.init_idp() -class Installer(object): +class Installer(ProviderInstaller): def __init__(self, *pargs): + super(Installer, self).__init__() self.name = 'persona' - self.ptype = 'provider' self.pargs = pargs def install_args(self, group): diff --git a/ipsilon/providers/saml2idp.py b/ipsilon/providers/saml2idp.py index 9fa2fd6..89e1346 100644 --- a/ipsilon/providers/saml2idp.py +++ b/ipsilon/providers/saml2idp.py @@ -15,7 +15,8 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -from ipsilon.providers.common import ProviderBase, ProviderPageBase +from ipsilon.providers.common import ProviderBase, ProviderPageBase, \ + ProviderInstaller from ipsilon.providers.saml2.auth import AuthenticateRequest from ipsilon.providers.saml2.logout import LogoutRequest from ipsilon.providers.saml2.admin import Saml2AdminPage @@ -330,11 +331,11 @@ class IdpMetadataGenerator(object): return self.meta.output(path) -class Installer(object): +class Installer(ProviderInstaller): def __init__(self, *pargs): + super(Installer, self).__init__() self.name = 'saml2' - self.ptype = 'provider' self.pargs = pargs def install_args(self, group): |