[PATCH] s4:provision - Added constructors for FDSBackend and OpenLDAPBackend.

Endi S. Dewata edewata at redhat.com
Thu Nov 5 20:55:34 MST 2009


---
 source4/scripting/python/samba/provision.py        |   27 ++---
 source4/scripting/python/samba/provisionbackend.py |  111 +++++++++++++++-----
 2 files changed, 95 insertions(+), 43 deletions(-)

diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 77dcbd7..44b8d2b 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -1186,13 +1186,13 @@ def provision(setup_dir, message, session_info,
                                          lp=lp, credentials=credentials, 
                                          names=names,
                                          message=message, hostname=hostname,
-                                         root=root, schema=schema,
+                                         schema=schema,
                                          ldapadminpass=ldapadminpass,
-                                         ldap_backend_extra_port=ldap_backend_extra_port,
-                                         ol_mmr_urls=ol_mmr_urls, 
                                          slapd_path=slapd_path,
-                                         setup_ds_path=setup_ds_path,
+                                         ldap_backend_extra_port=ldap_backend_extra_port,
                                          ldap_dryrun_mode=ldap_dryrun_mode,
+                                         root=root,
+                                         setup_ds_path=setup_ds_path,
                                          domainsid=domainsid)
     elif backend_type == "openldap":
         provision_backend = OpenLDAPBackend(backend_type,
@@ -1200,28 +1200,19 @@ def provision(setup_dir, message, session_info,
                                          lp=lp, credentials=credentials, 
                                          names=names,
                                          message=message, hostname=hostname,
-                                         root=root, schema=schema,
+                                         schema=schema,
                                          ldapadminpass=ldapadminpass,
-                                         ldap_backend_extra_port=ldap_backend_extra_port,
-                                         ol_mmr_urls=ol_mmr_urls, 
                                          slapd_path=slapd_path,
-                                         setup_ds_path=setup_ds_path,
+                                         ldap_backend_extra_port=ldap_backend_extra_port,
                                          ldap_dryrun_mode=ldap_dryrun_mode,
-                                         domainsid=domainsid)
+                                         ol_mmr_urls=ol_mmr_urls, 
+                                         nosync=nosync)
     elif backend_type == "ldb" or backend_type == "existing":
         provision_backend = ProvisionBackend(backend_type,
                                          paths=paths, setup_path=setup_path,
                                          lp=lp, credentials=credentials, 
                                          names=names,
-                                         message=message, hostname=hostname,
-                                         root=root, schema=schema,
-                                         ldapadminpass=ldapadminpass,
-                                         ldap_backend_extra_port=ldap_backend_extra_port,
-                                         ol_mmr_urls=ol_mmr_urls, 
-                                         slapd_path=slapd_path,
-                                         setup_ds_path=setup_ds_path,
-                                         ldap_dryrun_mode=ldap_dryrun_mode,
-                                         domainsid=domainsid)
+                                         message=message)
     else:
         raise ProvisioningError("Unknown LDAP backend type selected")
 
diff --git a/source4/scripting/python/samba/provisionbackend.py b/source4/scripting/python/samba/provisionbackend.py
index da17cbf..dfadac1 100644
--- a/source4/scripting/python/samba/provisionbackend.py
+++ b/source4/scripting/python/samba/provisionbackend.py
@@ -56,36 +56,13 @@ def setup_db_config(setup_path, dbdir):
 
 class ProvisionBackend(object):
     def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None, 
-                 names=None, message=None, 
-                 hostname=None, root=None, 
-                 schema=None, ldapadminpass=None,
-                 ldap_backend_extra_port=None,
-                 ol_mmr_urls=None, 
-                 setup_ds_path=None, slapd_path=None, 
-                 nosync=False, ldap_dryrun_mode=False,
-                 domainsid=None):
-        """Provision an LDAP backend for samba4
-        
-        This works for OpenLDAP and Fedora DS
-        """
+                 names=None, message=None):
+        """Provision a backend for samba4"""
         self.paths = paths
         self.setup_path = setup_path
-        self.slapd_command = None
-        self.slapd_command_escaped = None
         self.lp = lp
         self.names = names
         self.message = message
-        self.hostname = hostname
-        self.root = root
-        self.schema = schema
-        self.ldapadminpass = ldapadminpass
-        self.ldap_backend_extra_port = ldap_backend_extra_port
-        self.ol_mmr_urls = ol_mmr_urls
-        self.setup_ds_path = setup_ds_path
-        self.slapd_path = slapd_path
-        self.nosync = nosync
-        self.ldap_dryrun_mode = ldap_dryrun_mode
-        self.domainsid = domainsid
 
         self.type = backend_type
         
@@ -130,6 +107,34 @@ class ProvisionBackend(object):
 
 
 class LDAPBackend(ProvisionBackend):
+    def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
+                 names=None, message=None,
+                 hostname=None,
+                 schema=None,
+                 ldapadminpass=None,
+                 slapd_path=None,
+                 ldap_backend_extra_port=None,
+                 ldap_dryrun_mode=False):
+
+        super(LDAPBackend, self).__init__(
+                backend_type=backend_type,
+                paths=paths, setup_path=setup_path,
+                lp=lp, credentials=credentials,
+                names=names,
+                message=message)
+
+        self.hostname = hostname
+        self.schema = schema
+
+        self.ldapadminpass = ldapadminpass
+
+        self.slapd_path = slapd_path
+        self.slapd_command = None
+        self.slapd_command_escaped = None
+
+        self.ldap_backend_extra_port = ldap_backend_extra_port
+        self.ldap_dryrun_mode = ldap_dryrun_mode
+
     def setup(self):
         # we will shortly start slapd with ldapi for final provisioning. first check with ldapsearch -> rootDSE via self.ldapi_uri
         # if another instance of slapd is already running 
@@ -230,6 +235,33 @@ class LDAPBackend(ProvisionBackend):
 
 
 class OpenLDAPBackend(LDAPBackend):
+    def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
+                 names=None, message=None,
+                 hostname=None,
+                 schema=None,
+                 ldapadminpass=None,
+                 slapd_path=None,
+                 ldap_backend_extra_port=None,
+                 ldap_dryrun_mode=False,
+                 ol_mmr_urls=None,
+                 nosync=False):
+
+        super(OpenLDAPBackend, self).__init__(
+                backend_type=backend_type,
+                paths=paths, setup_path=setup_path,
+                lp=lp, credentials=credentials,
+                names=names,
+                message=message,
+                hostname=hostname,
+                schema=schema,
+                ldapadminpass=ldapadminpass,
+                slapd_path=slapd_path,
+                ldap_backend_extra_port=ldap_backend_extra_port,
+                ldap_dryrun_mode=ldap_dryrun_mode)
+
+        self.ol_mmr_urls = ol_mmr_urls
+        self.nosync = nosync
+
     def provision(self):
         # Wipe the directories so we can start
         shutil.rmtree(os.path.join(self.paths.ldapdir, "db"), True)
@@ -455,6 +487,35 @@ class OpenLDAPBackend(LDAPBackend):
 
 
 class FDSBackend(LDAPBackend):
+    def __init__(self, backend_type, paths=None, setup_path=None, lp=None, credentials=None,
+                 names=None, message=None,
+                 hostname=None,
+                 schema=None,
+                 ldapadminpass=None,
+                 slapd_path=None,
+                 ldap_backend_extra_port=None,
+                 ldap_dryrun_mode=False,
+                 root=None,
+                 setup_ds_path=None,
+                 domainsid=None):
+
+        super(FDSBackend, self).__init__(
+                backend_type=backend_type,
+                paths=paths, setup_path=setup_path,
+                lp=lp, credentials=credentials,
+                names=names,
+                message=message,
+                hostname=hostname,
+                schema=schema,
+                ldapadminpass=ldapadminpass,
+                slapd_path=slapd_path,
+                ldap_backend_extra_port=ldap_backend_extra_port,
+                ldap_dryrun_mode=ldap_dryrun_mode)
+
+        self.root = root
+        self.setup_ds_path = setup_ds_path
+        self.domainsid = domainsid
+
     def provision(self):
         if self.ldap_backend_extra_port is not None:
             serverport = "ServerPort=%d" % self.ldap_backend_extra_port
-- 
1.6.0.6


------=_Part_70877_336007795.1257535627130
Content-Type: application/mbox;
	name=0007-s4-provision-Added-LDBBackend-and-ExistingBackend.patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename=0007-s4-provision-Added-LDBBackend-and-ExistingBackend.patch



More information about the samba-technical mailing list