From fb85977d7c62d623997160d0c90fcb0ae83953aa Mon Sep 17 00:00:00 2001 From: Matthieu Patou Date: Sat, 12 Dec 2009 18:33:53 +0300 Subject: [PATCH] s4: upgradeprovision rename also when there is a mismatch on the case of name attribute Renaming not only helps when name attribute is not here it also helps when the case is not the good one. So in order to avoid problem and have as much as possible similar provision we should use the rename whenever a name difference appear. --- source4/scripting/bin/upgradeprovision | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source4/scripting/bin/upgradeprovision b/source4/scripting/bin/upgradeprovision index ae84c9586b0..e231d08477b 100755 --- a/source4/scripting/bin/upgradeprovision +++ b/source4/scripting/bin/upgradeprovision @@ -140,6 +140,12 @@ if setup_dir is None: session = system_session() +# simple helper to allow back and forth rename +def identic_rename(ldb,dn): + (before,sep,after)=str(dn).partition('=') + ldb.rename(dn,ldb.Dn(ldb,"%s=foo%s"%(before,after))) + ldb.rename(ldb.Dn(ldb,"%s=foo%s"%(before,after)),dn) + # Create an array of backlinked attributes def populate_backlink(newpaths,creds,session,schemadn): newsam_ldb = Ldb(newpaths.samdb, session_info=session, credentials=creds,lp=lp) @@ -458,8 +464,7 @@ def update_secrets(newpaths,paths,creds,session): if att == "name": message(CHANGE,"Found attribute name on %s, must rename the DN "%(res2[0].dn)) - secrets_ldb.rename(res2[0].dn,ldb.Dn(secrets_ldb,"%sfoo"%str(res2[0].dn))) - secrets_ldb.rename(ldb.Dn(secrets_ldb,"%sfoo"%str(res2[0].dn)),res2[0].dn) + identic_rename(secrets_ldb,res[0].dn) else: delta.remove(att) -- 2.11.4.GIT