[SCM] Samba Shared Repository - branch v4-0-test updated - release-4-0-0alpha2-1277-gbda6a38

Andrew Bartlett abartlet at samba.org
Thu Mar 13 00:39:58 GMT 2008


The branch, v4-0-test has been updated
       via  bda6a38b055fed2394e65cdc0b308a1442116402 (commit)
       via  5a92771fb55149fcf24f21f30e4c6a622bef44f8 (commit)
       via  e9567e39106efb7443ed2c5df3492208b1c1d766 (commit)
       via  b2d9b03ba3434e76d4d476233a198728523d17f9 (commit)
       via  fd99b7719bcb503e2695b2cbad0230fa23a094ca (commit)
       via  a0754c2a857217ca831c2295b17255d8f38dfbc2 (commit)
      from  4d40f3a02643b4cdacee31f0b7bc9fc77cc9869a (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test


- Log -----------------------------------------------------------------
commit bda6a38b055fed2394e65cdc0b308a1442116402
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 13 11:36:58 2008 +1100

    Rework to have member server 'domains' be CN=NETBIOSNAME
    
    This reworks quite a few parts of our provision system to use
    CN=NETBIOSNAME as the domain for member servers.
    
    This makes it clear that these domains are not in the DNS structure,
    while complying with our own schema (found by OpenLDAP's schema
    validation).
    
    Andrew Bartlett

commit 5a92771fb55149fcf24f21f30e4c6a622bef44f8
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 13 10:27:09 2008 +1100

    Don't segfault on invalid objectClass input.
    
    If the objectClass found does not include a defaultSecurityDescriptor,
    then we should not segfault in the SDDL parser.
    
    Andrew Bartlett

commit e9567e39106efb7443ed2c5df3492208b1c1d766
Merge: b2d9b03ba3434e76d4d476233a198728523d17f9 4d40f3a02643b4cdacee31f0b7bc9fc77cc9869a
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 13 10:00:57 2008 +1100

    Merge branch 'v4-0-test' of git://git.samba.org/samba into 4-0-local

commit b2d9b03ba3434e76d4d476233a198728523d17f9
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 13 09:55:06 2008 +1100

    Update the provision scripts and selftest for LDAP
    
    This should allow us to provision onto an OpenLDAP backend again.
    
    Also ensure we always have a sysvol and netlogon share in the selftest
    environment.
    
    Andrew Bartlett

commit fd99b7719bcb503e2695b2cbad0230fa23a094ca
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 13 09:53:32 2008 +1100

    Don't talloc_free() the UUID before we return.
    
    This error caused us to put a 0x80 byte at the end of GUID, which was
    only detected by OpenLDAP's schema checking.
    
    Andrew Bartlett

commit a0754c2a857217ca831c2295b17255d8f38dfbc2
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Mar 13 08:08:05 2008 +1100

    Upgrade provision-backend to python.
    
    This required a large rework of the provision code, so as to move much
    of the 'guess' logic into subprocedures, rather than just inline in
    the provision code.
    
    Andrew Bartlett

-----------------------------------------------------------------------

Summary of changes:
 source/dsdb/common/util.c                          |    2 +-
 source/dsdb/samdb/ldb_modules/objectclass.c        |   19 +-
 source/dsdb/samdb/ldb_modules/password_hash.c      |    2 +-
 source/rpc_server/samr/dcesrv_samr.c               |    2 +-
 source/scripting/python/samba/provision.py         |  629 +++++++++++++-------
 source/scripting/python/uuidmodule.c               |    5 +-
 source/selftest/target/Samba4.pm                   |   12 +-
 source/setup/provision-backend                     |  287 +++------
 .../{provision-backend => provision-backend.js}    |    1 -
 source/setup/provision_basedn.ldif                 |    3 +-
 source/setup/schema_samba4.ldif                    |   38 ++
 11 files changed, 586 insertions(+), 414 deletions(-)
 copy source/setup/{provision-backend => provision-backend.js} (98%)
 mode change 100755 => 100644


Changeset truncated at 500 lines:

diff --git a/source/dsdb/common/util.c b/source/dsdb/common/util.c
index 88c8afd..3be60ac 100644
--- a/source/dsdb/common/util.c
+++ b/source/dsdb/common/util.c
@@ -1464,7 +1464,7 @@ int samdb_search_for_parent_domain(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
 	
 	while ((sdn = ldb_dn_get_parent(local_ctx, sdn))) {
 		ret = ldb_search(ldb, sdn, LDB_SCOPE_BASE, 
-				 "(|(objectClass=domain)(objectClass=builtinDomain))", attrs, &res);
+				 "(|(|(objectClass=domain)(objectClass=builtinDomain))(objectClass=samba4LocalDomain))", attrs, &res);
 		if (ret == LDB_SUCCESS) {
 			talloc_steal(local_ctx, res);
 			if (res->count == 1) {
diff --git a/source/dsdb/samdb/ldb_modules/objectclass.c b/source/dsdb/samdb/ldb_modules/objectclass.c
index e63ad4d..537a560 100644
--- a/source/dsdb/samdb/ldb_modules/objectclass.c
+++ b/source/dsdb/samdb/ldb_modules/objectclass.c
@@ -257,12 +257,17 @@ static DATA_BLOB *get_sd(struct ldb_module *module, TALLOC_CTX *mem_ctx,
 	DATA_BLOB *linear_sd;
 	struct auth_session_info *session_info
 		= ldb_get_opaque(module->ldb, "sessionInfo");
-	struct security_descriptor *sd
-		= sddl_decode(mem_ctx, 
-			      objectclass->defaultSecurityDescriptor,
-			      samdb_domain_sid(module->ldb));
+	struct security_descriptor *sd;
 
-	if (!session_info || !session_info->security_token) {
+	if (!objectclass->defaultSecurityDescriptor) {
+		return NULL;
+	}
+	
+	sd = sddl_decode(mem_ctx, 
+			 objectclass->defaultSecurityDescriptor,
+			 samdb_domain_sid(module->ldb));
+
+	if (!sd || !session_info || !session_info->security_token) {
 		return NULL;
 	}
 	
@@ -538,7 +543,9 @@ static int objectclass_do_add(struct ldb_handle *h)
 				}
 				if (!ldb_msg_find_element(msg, "nTSecurityDescriptor")) {
 					DATA_BLOB *sd = get_sd(ac->module, mem_ctx, current->objectclass);
-					ldb_msg_add_steal_value(msg, "nTSecurityDescriptor", sd);
+					if (sd) {
+						ldb_msg_add_steal_value(msg, "nTSecurityDescriptor", sd);
+					}
 				}
 			}
 		}
diff --git a/source/dsdb/samdb/ldb_modules/password_hash.c b/source/dsdb/samdb/ldb_modules/password_hash.c
index aa64700..ec19e0d 100644
--- a/source/dsdb/samdb/ldb_modules/password_hash.c
+++ b/source/dsdb/samdb/ldb_modules/password_hash.c
@@ -1220,7 +1220,7 @@ static int build_domain_data_request(struct ph_context *ac)
 	ac->dom_req->op.search.base = ldb_get_default_basedn(ac->module->ldb);
 	ac->dom_req->op.search.scope = LDB_SCOPE_SUBTREE;
 
-	filter = talloc_asprintf(ac->dom_req, "(&(objectSid=%s)(|(objectClass=domain)(objectClass=builtinDomain)))", 
+	filter = talloc_asprintf(ac->dom_req, "(&(objectSid=%s)(|(|(objectClass=domain)(objectClass=builtinDomain))(objectClass=samba4LocalDomain)))", 
 				 ldap_encode_ndr_dom_sid(ac->dom_req, ac->domain_sid));
 	if (filter == NULL) {
 		ldb_debug(ac->module->ldb, LDB_DEBUG_ERROR, "Out of Memory!\n");
diff --git a/source/rpc_server/samr/dcesrv_samr.c b/source/rpc_server/samr/dcesrv_samr.c
index 8193e0a..da03d83 100644
--- a/source/rpc_server/samr/dcesrv_samr.c
+++ b/source/rpc_server/samr/dcesrv_samr.c
@@ -425,7 +425,7 @@ static NTSTATUS dcesrv_samr_OpenDomain(struct dcesrv_call_state *dce_call, TALLO
 
 	ret = gendb_search(c_state->sam_ctx,
 			   mem_ctx, NULL, &dom_msgs, dom_attrs,
-			   "(&(objectSid=%s)(&(|(objectclass=domain)(objectClass=builtinDomain))))",
+			   "(&(objectSid=%s)(|(|(objectClass=domain)(objectClass=builtinDomain))(objectClass=samba4LocalDomain)))", 
 			   ldap_encode_ndr_dom_sid(mem_ctx, r->in.sid));
 	if (ret == 0) {
 		return NT_STATUS_NO_SUCH_DOMAIN;
diff --git a/source/scripting/python/samba/provision.py b/source/scripting/python/samba/provision.py
index 24870c2..25316e8 100644
--- a/source/scripting/python/samba/provision.py
+++ b/source/scripting/python/samba/provision.py
@@ -66,7 +66,27 @@ class ProvisionPaths:
         self.dns = None
         self.winsdb = None
         self.private_dir = None
-
+        self.ldapdir = None
+        self.slapdconf = None
+        self.modulesconf = None
+        self.memberofconf = None
+        self.fedoradsinf = None
+        self.fedoradspartitions = None
+ 
+class ProvisionNames:
+    def __init__(self):
+        self.rootdn = None
+        self.domaindn = None
+        self.configdn = None
+        self.schemadn = None
+        self.ldapmanagerdn = None
+        self.dnsdomain = None
+        self.realm = None
+        self.netbiosname = None
+        self.domain = None
+        self.hostname = None
+        self.sitename = None
+    
 class ProvisionResult:
     def __init__(self):
         self.paths = None
@@ -218,6 +238,18 @@ def provision_paths_from_lp(lp, dnsdomain):
     paths.s4_ldapi_path = os.path.join(paths.private_dir, "ldapi")
     paths.phpldapadminconfig = os.path.join(paths.private_dir, 
                                             "phpldapadmin-config.php")
+    paths.ldapdir = os.path.join(paths.private_dir, 
+                                 "ldap")
+    paths.slapdconf = os.path.join(paths.ldapdir, 
+                                   "slapd.conf")
+    paths.modulesconf = os.path.join(paths.ldapdir, 
+                                     "modules.conf")
+    paths.memberofconf = os.path.join(paths.ldapdir, 
+                                      "memberof.conf")
+    paths.fedoradsinf = os.path.join(paths.ldapdir, 
+                                   "fedorads.inf")
+    paths.fedoradspartitions = os.path.join(paths.ldapdir, 
+                                            "fedorads-partitions.ldif")
     paths.hklm = "hklm.ldb"
     paths.hkcr = "hkcr.ldb"
     paths.hkcu = "hkcu.ldb"
@@ -225,16 +257,142 @@ def provision_paths_from_lp(lp, dnsdomain):
     paths.hkpd = "hkpd.ldb"
     paths.hkpt = "hkpt.ldb"
 
-    paths.sysvol = lp.get("sysvol", "path")
-    if paths.sysvol is None:
-        paths.sysvol = os.path.join(lp.get("lock dir"), "sysvol")
+    paths.sysvol = lp.get("path", "sysvol")
 
-    paths.netlogon = lp.get("netlogon", "path")
-    if paths.netlogon is None:
-        paths.netlogon = os.path.join(os.path.join(paths.sysvol, "scripts"))
+    paths.netlogon = lp.get("path", "netlogon")
 
     return paths
 
+def guess_names(lp=None, hostname=None, domain=None, dnsdomain=None, serverrole=None,
+              rootdn=None, domaindn=None, configdn=None, schemadn=None, sitename=None):
+
+    if hostname is None:
+        hostname = gethostname().split(".")[0].lower()
+
+    netbiosname = hostname.upper()
+    if not valid_netbios_name(netbiosname):
+        raise InvalidNetbiosName(netbiosname)
+
+    hostname = hostname.lower()
+
+    if dnsdomain is None:
+        dnsdomain = lp.get("realm")
+
+    if serverrole is None:
+        serverrole = lp.get("server role")
+
+    assert dnsdomain is not None
+    realm = dnsdomain.upper()
+
+    if lp.get("realm").upper() != realm:
+        raise Exception("realm '%s' in %s must match chosen realm '%s'" %
+                        (lp.get("realm"), smbconf, realm))
+    
+    dnsdomain = dnsdomain.lower()
+
+    if (serverrole == "domain controller"):
+        if domain is None:
+            domain = lp.get("workgroup")
+        if domaindn is None:
+            domaindn = "DC=" + dnsdomain.replace(".", ",DC=")
+        if lp.get("workgroup").upper() != domain.upper():
+            raise Error("workgroup '%s' in smb.conf must match chosen domain '%s'",
+                        lp.get("workgroup"), domain)
+    else:
+        domain = netbiosname
+        if domaindn is None:
+            domaindn = "CN=" + netbiosname
+        
+    assert domain is not None
+    domain = domain.upper()
+    if not valid_netbios_name(domain):
+        raise InvalidNetbiosName(domain)
+        
+    if rootdn is None:
+       rootdn = domaindn
+       
+    if configdn is None:
+        configdn = "CN=Configuration," + rootdn
+    if schemadn is None:
+        schemadn = "CN=Schema," + configdn
+
+    if sitename is None:
+        sitename=DEFAULTSITE
+
+    names = ProvisionNames()
+    names.rootdn = rootdn
+    names.domaindn = domaindn
+    names.configdn = configdn
+    names.schemadn = schemadn
+    names.ldapmanagerdn = "CN=Manager," + rootdn
+    names.dnsdomain = dnsdomain
+    names.domain = domain
+    names.realm = realm
+    names.netbiosname = netbiosname
+    names.hostname = hostname
+    names.sitename = sitename
+    
+    return names
+    
+
+def load_or_make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole, targetdir):
+    if targetdir is not None:
+        if not os.path.exists(targetdir):
+            os.mkdir(targetdir)
+        if not os.path.exists(os.path.join(targetdir, "etc")):
+           os.mkdir(os.path.join(targetdir, "etc"))
+
+        smbconf = os.path.join(targetdir, "etc", "smb.conf")
+
+    # only install a new smb.conf if there isn't one there already
+
+    if not os.path.exists(smbconf):
+        if hostname is None:
+            hostname = gethostname().split(".")[0].lower()
+
+        if serverrole is None:
+            serverrole = "standalone"
+
+        assert serverrole in ("domain controller", "member server", "standalone")
+        if serverrole == "domain controller":
+            smbconfsuffix = "dc"
+        elif serverrole == "member server":
+            smbconfsuffix = "member"
+        elif serverrole == "standalone":
+            smbconfsuffix = "standalone"
+
+        assert domain is not None
+        assert realm is not None
+
+        default_lp = param.LoadParm()
+        #Load non-existant file
+        default_lp.load(smbconf)
+        
+        if targetdir is not None:
+            privatedir_line = "private dir = " + os.path.abspath(os.path.join(targetdir, "private"))
+            lockdir_line = "lock dir = " + os.path.abspath(targetdir)
+
+            default_lp.set("lock dir", os.path.abspath(targetdir))
+            
+        sysvol = os.path.join(default_lp.get("lock dir"), "sysvol")
+        netlogon = os.path.join(sysvol, realm.lower(), "scripts")
+
+        setup_file(setup_path("provision.smb.conf.%s" % smbconfsuffix), 
+                   smbconf, {
+                "HOSTNAME": hostname,
+                "DOMAIN": domain,
+                "REALM": realm,
+                "SERVERROLE": serverrole,
+                "NETLOGONPATH": netlogon,
+                "SYSVOLPATH": sysvol,
+                "PRIVATEDIR_LINE": privatedir_line,
+                "LOCKDIR_LINE": lockdir_line
+                })
+
+    lp = param.LoadParm()
+    lp.load(smbconf)
+
+    return lp
 
 def setup_name_mappings(ldb, sid, domaindn, root, nobody, nogroup, users, 
                         wheel, backup):
@@ -277,9 +435,8 @@ def setup_name_mappings(ldb, sid, domaindn, root, nobody, nogroup, users,
 
 
 def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info, 
-                           credentials, configdn, schemadn, domaindn, 
-                           hostname, netbiosname, dnsdomain, realm, 
-                           rootdn, serverrole, sitename, ldap_backend=None, 
+                           credentials, names,
+                           serverrole, ldap_backend=None, 
                            ldap_backend_type=None, erase=False):
     """Setup the partitions for the SAM database. 
     
@@ -366,12 +523,12 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
     samdb.transaction_start()
     try:
         setup_add_ldif(samdb, setup_path("provision_partitions.ldif"), {
-                "SCHEMADN": schemadn, 
+                "SCHEMADN": names.schemadn, 
                 "SCHEMADN_LDB": schemadn_ldb,
                 "SCHEMADN_MOD2": ",objectguid",
-                "CONFIGDN": configdn,
+                "CONFIGDN": names.configdn,
                 "CONFIGDN_LDB": configdn_ldb,
-                "DOMAINDN": domaindn,
+                "DOMAINDN": names.domaindn,
                 "DOMAINDN_LDB": domaindn_ldb,
                 "SCHEMADN_MOD": "schema_fsmo,instancetype",
                 "CONFIGDN_MOD": "naming_fsmo,instancetype",
@@ -397,9 +554,9 @@ def setup_samdb_partitions(samdb_path, setup_path, message, lp, session_info,
         samdb.load_ldif_file_add(setup_path("provision_init.ldif"))
 
         message("Setting up sam.ldb rootDSE")
-        setup_samdb_rootdse(samdb, setup_path, schemadn, domaindn, hostname, 
-                            dnsdomain, realm, rootdn, configdn, netbiosname,
-                            sitename)
+        setup_samdb_rootdse(samdb, setup_path, names.schemadn, names.domaindn, names.hostname, 
+                            names.dnsdomain, names.realm, names.rootdn, names.configdn, names.netbiosname,
+                            names.sitename)
 
         if erase:
             message("Erasing data from partitions")
@@ -532,10 +689,10 @@ def setup_samdb_rootdse(samdb, setup_path, schemadn, domaindn, hostname,
         })
         
 
-def setup_self_join(samdb, configdn, schemadn, domaindn, 
-                    netbiosname, hostname, dnsdomain, machinepass, dnspass, 
-                    realm, domainname, domainsid, invocationid, setup_path,
-                    policyguid, sitename, hostguid=None):
+def setup_self_join(samdb, names,
+                    machinepass, dnspass, 
+                    domainsid, invocationid, setup_path,
+                    policyguid, hostguid=None):
     """Join a host to its own domain."""
     if hostguid is not None:
         hostguid_add = "objectGUID: %s" % hostguid
@@ -543,33 +700,32 @@ def setup_self_join(samdb, configdn, schemadn, domaindn,
         hostguid_add = ""
 
     setup_add_ldif(samdb, setup_path("provision_self_join.ldif"), { 
-              "CONFIGDN": configdn, 
-              "SCHEMADN": schemadn,
-              "DOMAINDN": domaindn,
+              "CONFIGDN": names.configdn, 
+              "SCHEMADN": names.schemadn,
+              "DOMAINDN": names.domaindn,
               "INVOCATIONID": invocationid,
-              "NETBIOSNAME": netbiosname,
-              "DEFAULTSITE": sitename,
-              "DNSNAME": "%s.%s" % (hostname, dnsdomain),
+              "NETBIOSNAME": names.netbiosname,
+              "DEFAULTSITE": names.sitename,
+              "DNSNAME": "%s.%s" % (names.hostname, names.dnsdomain),
               "MACHINEPASS_B64": b64encode(machinepass),
               "DNSPASS_B64": b64encode(dnspass),
-              "REALM": realm,
-              "DOMAIN": domainname,
+              "REALM": names.realm,
+              "DOMAIN": names.domain,
               "HOSTGUID_ADD": hostguid_add,
-              "DNSDOMAIN": dnsdomain})
+              "DNSDOMAIN": names.dnsdomain})
     setup_add_ldif(samdb, setup_path("provision_group_policy.ldif"), { 
               "POLICYGUID": policyguid,
-              "DNSDOMAIN": dnsdomain,
+              "DNSDOMAIN": names.dnsdomain,
               "DOMAINSID": str(domainsid),
-              "DOMAINDN": domaindn})
+              "DOMAINDN": names.domaindn})
 
 
 def setup_samdb(path, setup_path, session_info, credentials, lp, 
-                schemadn, configdn, domaindn, dnsdomain, realm, 
-                netbiosname, message, hostname, rootdn, 
+                names, message, 
                 domainsid, aci, domainguid, policyguid, 
-                domainname, fill, adminpass, krbtgtpass, 
+                fill, adminpass, krbtgtpass, 
                 machinepass, hostguid, invocationid, dnspass,
-                serverrole, sitename, ldap_backend=None, 
+                serverrole, ldap_backend=None, 
                 ldap_backend_type=None):
     """Setup a complete SAM Database.
     
@@ -579,14 +735,11 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
     erase = (fill != FILL_DRS)
 
     # Also wipes the database
-    setup_samdb_partitions(path, setup_path, schemadn=schemadn, configdn=configdn, 
-                           domaindn=domaindn, message=message, lp=lp,
+    setup_samdb_partitions(path, setup_path, message=message, lp=lp,
                            credentials=credentials, session_info=session_info,
-                           hostname=hostname, netbiosname=netbiosname, 
-                           dnsdomain=dnsdomain, realm=realm, rootdn=rootdn,
+                           names=names, 
                            ldap_backend=ldap_backend, serverrole=serverrole,
-                           ldap_backend_type=ldap_backend_type, erase=erase,
-                           sitename=sitename)
+                           ldap_backend_type=ldap_backend_type, erase=erase)
 
     samdb = SamDB(path, session_info=session_info, 
                   credentials=credentials, lp=lp)
@@ -604,18 +757,24 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
     if serverrole == "domain controller":
         samdb.set_invocation_id(invocationid)
 
-    load_schema(setup_path, samdb, schemadn, netbiosname, configdn, sitename)
+    load_schema(setup_path, samdb, names.schemadn, names.netbiosname, names.configdn, names.sitename)
 
     samdb.transaction_start()
         
     try:
-        message("Adding DomainDN: %s (permitted to fail)" % domaindn)
+        message("Adding DomainDN: %s (permitted to fail)" % names.domaindn)
+        if serverrole == "domain controller":
+            domain_oc = "domainDNS"
+        else:
+            domain_oc = "samba4LocalDomain"
+
         setup_add_ldif(samdb, setup_path("provision_basedn.ldif"), {
-            "DOMAINDN": domaindn,
+            "DOMAINDN": names.domaindn,
             "ACI": aci,
+            "DOMAIN_OC": domain_oc
             })
 
-        message("Modifying DomainDN: " + domaindn + "")
+        message("Modifying DomainDN: " + names.domaindn + "")
         if domainguid is not None:
             domainguid_mod = "replace: objectGUID\nobjectGUID: %s\n-" % domainguid
         else:
@@ -624,104 +783,102 @@ def setup_samdb(path, setup_path, session_info, credentials, lp,
         setup_modify_ldif(samdb, setup_path("provision_basedn_modify.ldif"), {
             "LDAPTIME": timestring(int(time.time())),
             "DOMAINSID": str(domainsid),
-            "SCHEMADN": schemadn, 
-            "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": sitename,
-            "CONFIGDN": configdn,
+            "SCHEMADN": names.schemadn, 
+            "NETBIOSNAME": names.netbiosname,
+            "DEFAULTSITE": names.sitename,
+            "CONFIGDN": names.configdn,
             "POLICYGUID": policyguid,
-            "DOMAINDN": domaindn,
+            "DOMAINDN": names.domaindn,
             "DOMAINGUID_MOD": domainguid_mod,
             })
 
         message("Adding configuration container (permitted to fail)")
         setup_add_ldif(samdb, setup_path("provision_configuration_basedn.ldif"), {
-            "CONFIGDN": configdn, 
+            "CONFIGDN": names.configdn, 
             "ACI": aci,
             "EXTENSIBLEOBJECT": "# no objectClass: extensibleObject for local ldb",
             })
         message("Modifying configuration container")
         setup_modify_ldif(samdb, setup_path("provision_configuration_basedn_modify.ldif"), {
-            "CONFIGDN": configdn, 
-            "SCHEMADN": schemadn,
+            "CONFIGDN": names.configdn, 
+            "SCHEMADN": names.schemadn,
             })
 
         message("Adding schema container (permitted to fail)")
         setup_add_ldif(samdb, setup_path("provision_schema_basedn.ldif"), {
-            "SCHEMADN": schemadn,
+            "SCHEMADN": names.schemadn,
             "ACI": aci,
             "EXTENSIBLEOBJECT": "# no objectClass: extensibleObject for local ldb"
             })
         message("Modifying schema container")
         setup_modify_ldif(samdb, 
             setup_path("provision_schema_basedn_modify.ldif"), {
-            "SCHEMADN": schemadn,
-            "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": sitename,
-            "CONFIGDN": configdn,
+            "SCHEMADN": names.schemadn,
+            "NETBIOSNAME": names.netbiosname,
+            "DEFAULTSITE": names.sitename,
+            "CONFIGDN": names.configdn,
             })
 
         message("Setting up sam.ldb Samba4 schema")
         setup_add_ldif(samdb, setup_path("schema_samba4.ldif"), 
-                       {"SCHEMADN": schemadn })
+                       {"SCHEMADN": names.schemadn })
         message("Setting up sam.ldb AD schema")
         setup_add_ldif(samdb, setup_path("schema.ldif"), 
-                       {"SCHEMADN": schemadn})
+                       {"SCHEMADN": names.schemadn})
 
         message("Setting up sam.ldb configuration data")
         setup_add_ldif(samdb, setup_path("provision_configuration.ldif"), {
-            "CONFIGDN": configdn,
-            "NETBIOSNAME": netbiosname,
-            "DEFAULTSITE": sitename,
-            "DNSDOMAIN": dnsdomain,
-            "DOMAIN": domainname,
-            "SCHEMADN": schemadn,
-            "DOMAINDN": domaindn,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list