summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers
diff options
context:
space:
mode:
authorPatrick Uiterwijk <puiterwijk@redhat.com>2015-02-04 10:58:14 +0100
committerRob Crittenden <rcritten@redhat.com>2015-02-26 15:18:02 -0500
commit7ad204c13898245cdea5acfa90be83e767276994 (patch)
tree44775ee20dd1b72fa5688acf1d4e2b838f349dd6 /ipsilon/providers
parent1d2fda874a7285e88b9aac870e7d9bc998fe7464 (diff)
downloadipsilon-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.py16
-rw-r--r--ipsilon/providers/openidp.py6
-rw-r--r--ipsilon/providers/personaidp.py6
-rw-r--r--ipsilon/providers/saml2idp.py7
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):