Xc@sddklZdddddddd d d d d ddddddgZhdgd6dgd6dgd6dddgd6ddgd6ddgd6ddgd6Zd efd!YZd"efd#YZd$efd%YZd&S('i(t MagicDictt certmongertdirsrvthttpdtipatkrb5kdct messagebustnslcdtnscdtntpdtportmaptrpcbindtkadmintsshdtautofstrpcgssdt rpcidmapdtpki_cadspki-cadisdirsrv@PKI-IPA.servicesPKI-IPAii#i$i$ii spki-tomcatd@pki-tomcat.services pki-tomcats pki-tomcatdt AuthConfigcBsVeZdZdZdZdZdZdZdZdZ dZ RS( s 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/.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"). disable("krb5"). disable("sssd"). disable("sssdauth"). disable("mkhomedir"). add_option("update"). enable("nis"). 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. cCs h|_dS(N(t parameters(tself((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt__init__^scCst|i|<|S(N(tTrueR(Rtoption((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytenableas cCst|i|<|S(N(tFalseR(RR((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytdisablees cCsd|i|<|S(N(tNoneR(RR((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt add_optionis cCs|g|i|<|S(N(R(RRtvalue((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt add_parametermscCsdS(N(R(R((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt __build_argsqscCsdS(N(R(R((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytexecuteuscCs h|_|S(N(R(R((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytresetys ( t__name__t __module__t__doc__RRRRRt_AuthConfig__build_argsR R!(((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyR+s1       tPlatformServicecBseZdZdZdeedZdedZdeedZddZdZ ddZ dd Z dd Z dd Z dd Zdd ZRS(s PlatformService abstracts out external process running on the system which is possible to administer (start, stop, check status, etc). cCs ||_dS(N(t service_name(RR'((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyRstcCsdS(N((Rt instance_nametcapture_outputtwait((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytstartscCsdS(N((RR)R*((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytstopscCsdS(N((RR)R*R+((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytrestartscCstS(N(R(RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt is_runningscCstS(N(R(R((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt is_installedscCstS(N(R(RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyt is_enabledscCsdS(N((RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyRscCsdS(N((RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyRscCsdS(N((RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytinstallscCsdS(N((RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytremovescCsdS(N((RR)((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pytget_config_dirs(R"R#R$RRR,R-R.R/R0R1RRR2R3R4(((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyR&}s        t KnownServicescBseZdZRS(s KnownServices is an abstract class factory that should give out instances of well-known platform services. Actual implementation must create these instances as its own attributes on first access (or instance creation) and cache them. (R"R#R$(((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyR5sN(tipalib.plugableRtwellknownservicestwellknownportstobjectRR&R5(((s;/usr/lib/python2.6/site-packages/ipapython/platform/base.pyts     R+