diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2012-02-26 16:23:18 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2012-02-26 16:27:06 +0100 |
commit | 6664541156582393c8f2456eed5923700235c557 (patch) | |
tree | 7263859c8154d83dacd73d3aaf01b3944ae2bfd3 /source4/scripting/python/samba/provision/backend.py | |
parent | eeb5f66d902467524641b54e2d4180a31edbe4e7 (diff) | |
download | samba-6664541156582393c8f2456eed5923700235c557.tar.gz samba-6664541156582393c8f2456eed5923700235c557.tar.xz samba-6664541156582393c8f2456eed5923700235c557.zip |
provision: Split out result reporting for backends.
Diffstat (limited to 'source4/scripting/python/samba/provision/backend.py')
-rw-r--r-- | source4/scripting/python/samba/provision/backend.py | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/provision/backend.py b/source4/scripting/python/samba/provision/backend.py index 4ab827b545d..1931bc193e4 100644 --- a/source4/scripting/python/samba/provision/backend.py +++ b/source4/scripting/python/samba/provision/backend.py @@ -51,7 +51,43 @@ class SlapdAlreadyRunning(Exception): self.ldapi_uri) +class BackendResult(object): + + def report_logger(self, logger): + """Rerport this result to a particular logger. + + """ + raise NotImplementedError(self.report_logger) + + +class LDAPBackendResult(BackendResult): + + def __init__(self, credentials, slapd_command_escaped, ldapdir): + self.credentials = credentials + self.slapd_command_escaped = slapd_command_escaped + self.ldapdir = ldapdir + + def report_logger(self, logger): + if self.credentials.get_bind_dn() is not None: + logger.info("LDAP Backend Admin DN: %s" % + self.credentials.get_bind_dn()) + else: + logger.info("LDAP Admin User: %s" % + self.credentials.get_username()) + + if self.slapd_command_escaped is not None: + # now display slapd_command_file.txt to show how slapd must be + # started next time + logger.info( + "Use later the following commandline to start slapd, then Samba:") + logger.info(self.slapd_command_escaped) + logger.info( + "This slapd-Commandline is also stored under: %s/ldap_backend_startup.sh", + self.ldapdir) + + class ProvisionBackend(object): + def __init__(self, backend_type, paths=None, lp=None, credentials=None, names=None, logger=None): """Provision a backend for samba4""" @@ -79,7 +115,10 @@ class ProvisionBackend(object): raise NotImplementedError(self.shutdown) def post_setup(self): - """Post setup.""" + """Post setup. + + :return: A BackendResult or None + """ raise NotImplementedError(self.post_setup) @@ -278,7 +317,8 @@ class LDAPBackend(ProvisionBackend): self.slapd.communicate() def post_setup(self): - pass + return LDAPBackendResult(self.credentials, self.slapd_command_escaped, + self.ldapdir) class OpenLDAPBackend(LDAPBackend): @@ -770,3 +810,5 @@ class FDSBackend(LDAPBackend): self.names.schemadn): m.dn = ldb.Dn(ldapi_db, dnstring) ldapi_db.modify(m) + return LDAPBackendResult(self.credentials, self.slapd_command_escaped, + self.ldapdir) |