diff options
author | Tomas Babej <tbabej@redhat.com> | 2014-06-19 12:47:46 +0200 |
---|---|---|
committer | Petr Viktorin <pviktori@redhat.com> | 2014-06-25 21:07:07 +0200 |
commit | 2a3c746dca43050076b217a52caa5bb2d1e40d6e (patch) | |
tree | 7d44556b8f52079c308535c2eabbe8508117cc53 /ipaplatform | |
parent | e099ad458335fbc4b4c0092fc94f6155064e964f (diff) | |
download | freeipa-2a3c746dca43050076b217a52caa5bb2d1e40d6e.tar.gz freeipa-2a3c746dca43050076b217a52caa5bb2d1e40d6e.tar.xz freeipa-2a3c746dca43050076b217a52caa5bb2d1e40d6e.zip |
ipaplatform: Drop the base authconfig class
As authconfig is a distro-specific tool there is no incentive for
implying that other platforms should implement any authconfig
implementation of their own.
Part of: https://fedorahosted.org/freeipa/ticket/4052
Reviewed-By: Petr Viktorin <pviktori@redhat.com>
Diffstat (limited to 'ipaplatform')
-rw-r--r-- | ipaplatform/base/authconfig.py | 102 | ||||
-rw-r--r-- | ipaplatform/fedora/authconfig.py | 38 |
2 files changed, 34 insertions, 106 deletions
diff --git a/ipaplatform/base/authconfig.py b/ipaplatform/base/authconfig.py deleted file mode 100644 index f3f207be7..000000000 --- a/ipaplatform/base/authconfig.py +++ /dev/null @@ -1,102 +0,0 @@ -# Authors: -# Alexander Bokovoy <abokovoy@redhat.com> -# Tomas Babej <tbabej@redhat.com> -# -# Copyright (C) 2011-2014 Red Hat -# see file 'COPYING' for use and warranty information -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - - -class AuthConfig(object): - """ - AuthConfig class implements system-independent interface to configure - system authentication resources. In Red Hat systems this is done with - authconfig(8) utility. - - AuthConfig class is nothing more than a tool to gather configuration - options and execute their processing. These options then converted by - an actual implementation to series of a system calls to appropriate - utilities performing real configuration. - - IPA *expects* names of AuthConfig's options to follow authconfig(8) - naming scheme! - - Actual implementation should be done in ipapython/platform/<platform>.py - by inheriting from platform.AuthConfig and redefining build_args() - and execute() methods. - - from ipapython.platform import platform - class PlatformAuthConfig(platform.AuthConfig): - def build_args(): - ... - - def execute(): - ... - - authconfig = PlatformAuthConfig - .... - - See ipapython/platform/redhat.py for a sample implementation that uses - authconfig(8) as its backend. - - From IPA code perspective, the authentication configuration should be - done with use of ipapython.services.authconfig: - - from ipapython import services as ipaservices - auth_config = ipaservices.authconfig() - auth_config.disable("ldap") - auth_config.disable("krb5") - auth_config.disable("sssd") - auth_config.disable("sssdauth") - auth_config.disable("mkhomedir") - auth_config.add_option("update") - auth_config.enable("nis") - auth_config.add_parameter("nisdomain","foobar") - auth_config.execute() - - If you need to re-use existing AuthConfig instance for multiple runs, - make sure to call 'AuthConfig.reset()' between the runs. - """ - - def __init__(self): - self.parameters = {} - - def enable(self, option): - self.parameters[option] = True - return self - - def disable(self, option): - self.parameters[option] = False - return self - - def add_option(self, option): - self.parameters[option] = None - return self - - def add_parameter(self, option, value): - self.parameters[option] = [value] - return self - - def build_args(self): - # do nothing - return None - - def execute(self): - # do nothing - return None - - def reset(self): - self.parameters = {} - return self diff --git a/ipaplatform/fedora/authconfig.py b/ipaplatform/fedora/authconfig.py index 166a826f7..524d76929 100644 --- a/ipaplatform/fedora/authconfig.py +++ b/ipaplatform/fedora/authconfig.py @@ -19,16 +19,46 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. from ipapython import ipautil -from ipaplatform.base.authconfig import AuthConfig -class FedoraAuthConfig(AuthConfig): +class FedoraAuthConfig(object): """ AuthConfig class implements system-independent interface to configure - system authentication resources. In Red Hat-produced systems this is done - with authconfig(8) utility. + system authentication resources. In Red Hat systems this is done with + authconfig(8) utility. + + AuthConfig class is nothing more than a tool to gather configuration + options and execute their processing. These options then converted by + an actual implementation to series of a system calls to appropriate + utilities performing real configuration. + + If you need to re-use existing AuthConfig instance for multiple runs, + make sure to call 'AuthConfig.reset()' between the runs. """ + def __init__(self): + self.parameters = {} + + def enable(self, option): + self.parameters[option] = True + return self + + def disable(self, option): + self.parameters[option] = False + return self + + def add_option(self, option): + self.parameters[option] = None + return self + + def add_parameter(self, option, value): + self.parameters[option] = [value] + return self + + def reset(self): + self.parameters = {} + return self + def build_args(self): args = [] |