Merge branch 'v4-0-test' of ssh://git.samba.org/data/git/samba into v4-0-trivial
authorJelmer Vernooij <jelmer@samba.org>
Fri, 8 Feb 2008 13:02:22 +0000 (14:02 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Fri, 8 Feb 2008 13:02:22 +0000 (14:02 +0100)
Conflicts:

source/scripting/python/samba/provision.py

1  2 
source/scripting/python/samba/provision.py

index bcadcca58312f354603841a7822e3028e2eccd73,9a44983d8e8cfc3f4233e7d2a37ba059dca5e297..0c16ab3bfefbccc7f4c730abde4fde279491319e
@@@ -319,14 -319,14 +319,16 @@@ def setup_samdb_partitions(samdb_path, 
   
      domaindn_ldb = "users.ldb"
      if ldap_backend is not None:
 -      domaindn_ldb = ldap_backend
 +        domaindn_ldb = ldap_backend
      configdn_ldb = "configuration.ldb"
      if ldap_backend is not None:
 -      configdn_ldb = ldap_backend
 +        configdn_ldb = ldap_backend
-     schema_ldb = "schema.ldb"
+     schemadn_ldb = "schema.ldb"
      if ldap_backend is not None:
 +        schema_ldb = ldap_backend
 +    
+       schemadn_ldb = ldap_backend
+       
      if ldap_backend_type == "fedora-ds":
          backend_modules = ["nsuniqueid","paged_searches"]
      elif ldap_backend_type == "openldap":
      else:
          backend_modules = ["objectguid"]
          
-     setup_add_ldif(samdb, setup_path("provision_partitions.ldif"), {
-         "SCHEMADN": schemadn, 
-         "SCHEMADN_LDB": "schema.ldb",
-         "SCHEMADN_MOD2": ",objectguid",
-         "CONFIGDN": configdn,
-         "CONFIGDN_LDB": "configuration.ldb",
-         "DOMAINDN": domaindn,
-         "DOMAINDN_LDB": "users.ldb",
-         "SCHEMADN_MOD": "schema_fsmo,instancetype",
-         "CONFIGDN_MOD": "naming_fsmo,instancetype",
-         "DOMAINDN_MOD": "pdc_fsmo,password_hash,instancetype",
-         "MODULES_LIST": ",".join(modules_list),
-         "TDB_MODULES_LIST": ","+",".join(tdb_modules_list),
-         "MODULES_LIST2": ",".join(modules_list2),
-         "BACKEND_MOD": ",".join(backend_modules),
+     samdb.transaction_start()
+     try:
+         setup_add_ldif(samdb, setup_path("provision_partitions.ldif"), {
+                 "SCHEMADN": schemadn, 
+                 "SCHEMADN_LDB": schemadn_ldb,
+                 "SCHEMADN_MOD2": ",objectguid",
+                 "CONFIGDN": configdn,
+                 "CONFIGDN_LDB": configdn_ldb,
+                 "DOMAINDN": domaindn,
+                 "DOMAINDN_LDB": domaindn_ldb,
+                 "SCHEMADN_MOD": "schema_fsmo,instancetype",
+                 "CONFIGDN_MOD": "naming_fsmo,instancetype",
+                 "DOMAINDN_MOD": "pdc_fsmo,password_hash,instancetype",
+                 "MODULES_LIST": ",".join(modules_list),
+                 "TDB_MODULES_LIST": ","+",".join(tdb_modules_list),
+                 "MODULES_LIST2": ",".join(modules_list2),
+                 "BACKEND_MOD": ",".join(backend_modules),
          })
  
+     except:
+         samdb.transaction_cancel()
+         raise
+     samdb.transaction_commit()
+     
      samdb = SamDB(samdb_path, session_info=session_info, 
                    credentials=credentials, lp=lp)
  
@@@ -680,7 -688,7 +690,7 @@@ FILL_NT4SYNC = "NT4SYNC
  FILL_DRS = "DRS"
  
  def provision(lp, setup_dir, message, paths, session_info, 
-               credentials, ldapbackend, samdb_fill=FILL_FULL, realm=None, rootdn=None,
+               credentials, samdb_fill=FILL_FULL, realm=None, rootdn=None,
                domain=None, hostname=None, hostip=None, domainsid=None, 
                hostguid=None, adminpass=None, krbtgtpass=None, domainguid=None, 
                policyguid=None, invocationid=None, machinepass=None, 
      ldapi_url = "ldapi://%s" % urllib.quote(paths.s4_ldapi_path, safe="")
      
      if ldap_backend == "ldapi":
 -      # provision-backend will set this path suggested slapd command line / fedorads.inf
 -      ldap_backend = "ldapi://" % urllib.quote(os.path.join(lp.get("private dir"), "ldap", "ldapi"), safe="")
 +        # provision-backend will set this path suggested slapd command line / fedorads.inf
 +        ldap_backend = "ldapi://" % urllib.quote(os.path.join(lp.get("private dir"), "ldap", "ldapi"), safe="")
  
      assert realm is not None
      realm = realm.upper()
  
      dnsdomain    = realm.lower()
      if serverrole == "domain controller":
 -      domaindn     = "DC=" + dnsdomain.replace(".", ",DC=")
 +        domaindn     = "DC=" + dnsdomain.replace(".", ",DC=")
          if domain is None:
              domain = lp.get("workgroup")
      
              raise InvalidNetbiosName(domain)
  
      else:
 -      domaindn = "CN=" + netbiosname
 -      domain = netbiosname
 -      
 +        domaindn = "CN=" + netbiosname
 +        domain = netbiosname
 +    
      if rootdn is None:
         rootdn       = domaindn