upgradeprovision: Fix typo
[mat/samba.git] / source4 / scripting / python / samba / upgradehelpers.py
index ded3ff13070f904722b4c6202494824ed5135f4c..48f492a7dc36ca5f23fd239a12bb15643d678a66 100755 (executable)
@@ -21,6 +21,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+"""Helpers used for upgrading between different database formats."""
 
 import os
 import string
@@ -347,14 +348,13 @@ def find_provision_key_parameters(samdb, secretsdb, idmapdb, paths, smbconf, lp)
     return names
 
 
-def newprovision(names, setup_dir, creds, session, smbconf, provdir, logger):
+def newprovision(names, creds, session, smbconf, provdir, logger):
     """Create a new provision.
 
     This provision will be the reference for knowing what has changed in the
     since the latest upgrade in the current provision
 
     :param names: List of provision parameters
-    :param setup_dir: Directory where the setup files are stored
     :param creds: Credentials for the authentification
     :param session: Session object
     :param smbconf: Path to the smb.conf file
@@ -363,10 +363,9 @@ def newprovision(names, setup_dir, creds, session, smbconf, provdir, logger):
     """
     if os.path.isdir(provdir):
         shutil.rmtree(provdir)
-    os.chdir(os.path.join(setup_dir,".."))
     os.mkdir(provdir)
     logger.info("Provision stored in %s", provdir)
-    provision(setup_dir, logger, session, creds, smbconf=smbconf,
+    provision(logger, session, creds, smbconf=smbconf,
             targetdir=provdir, samdb_fill=FILL_FULL, realm=names.realm,
             domain=names.domain, domainguid=names.domainguid,
             domainsid=str(names.domainsid), ntdsguid=names.ntdsguid,
@@ -421,8 +420,9 @@ def identic_rename(ldbobj, dn):
     :param dn: DN of the object to manipulate
     """
     (before, after) = str(dn).split('=', 1)
-    ldbobj.rename(dn, ldb.Dn(ldbobj, "%s=foo%s" % (before, after)))
-    ldbobj.rename(ldb.Dn(ldbobj, "%s=foo%s" % (before, after)), dn)
+    # we need to use relax to avoid the subtree_rename constraints
+    ldbobj.rename(dn, ldb.Dn(ldbobj, "%s=foo%s" % (before, after)), ["relax:0"])
+    ldbobj.rename(ldb.Dn(ldbobj, "%s=foo%s" % (before, after)), dn, ["relax:0"])
 
 
 def chunck_acl(acl):