Revert "s4:upgradeprovision - fix up the script regarding linked attributes"
authorMatthieu Patou <mat@matws.net>
Tue, 12 Jan 2010 17:13:33 +0000 (20:13 +0300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 20 Jan 2010 18:11:19 +0000 (07:11 +1300)
This reverts commit 2cedefabc93c8a1fcb49d65a3f78a344e814f826.

source4/scripting/bin/upgradeprovision

index ac6fbdec7d8b05e4b079a2769190eec2b8e2eae5..f63605b2af8588f5ad7cd3b1bff3cb234d37a830 100755 (executable)
@@ -560,52 +560,18 @@ def check_diff_name(newpaths,paths,creds,session,basedn,names,ischema):
 
        sam_ldb.transaction_start()
 
-       err_num = 0
-       err_msg = ""
-       while len(listMissing) > 0:
-               listMissing2 = []
-
-               empty = ldb.Message()
-               message(SIMPLE,"There are still %d objects missing"%(len(listMissing)))
-
-               for dn in listMissing:
-                       reference = newsam_ldb.search(expression="dn=%s" % (str(dn)),
-                                                     base=basedn, scope=SCOPE_SUBTREE,
-                                                     controls=["search_options:1:2"])
-                       delta = sam_ldb.msg_diff(empty,reference[0])
-                       for att in hashAttrNotCopied.keys():
-                               delta.remove(att)
-                       for att in backlinked:
-                               delta.remove(att)
-                       delta.dn = dn
-
-                       try:
-                               sam_ldb.add(delta,["relax:0"])
-                               # This is needed here since otherwise the
-                               # "replmd_meta_data" module doesn't see the
-                               # updated data
-                               sam_ldb.transaction_commit()
-                               sam_ldb.transaction_start()
-                       except LdbError, (num, msg):
-                               # An exception can happen if a linked object
-                               # doesn't exist which can happen if it is also
-                               # to be added
-                               err_num = num
-                               err_msg = msg
-                               listMissing2.append(dn)
-
-               if len(listMissing2) == len(listMissing):
-                       # We couldn't add any object in this iteration ->
-                       # we have to resign and hope that the user manually
-                       # fixes the damage
-
-                       message(ERROR, "The script isn't capable to do the upgrade fully automatically!")
-                       message(ERROR, "Often this happens when important system objects moved their location. Please look for them (for example doable using the displayed 'sAMAccountName' attribute), backup if personally changed and remove them.")
-                       message(ERROR, "Reinvoke this script and reapply eventual modifications done before. It is possible to get this error more than once (for each problematic object).")
-
-                       raise LdbError(err_num, err_msg)
-
-               listMissing = listMissing2
+       empty = ldb.Message()
+       message(SIMPLE,"There are %d missing objects"%(len(listMissing)))
+       for dn in listMissing:
+               reference = newsam_ldb.search(expression="dn=%s"%(str(dn)),base=basedn, scope=SCOPE_SUBTREE,controls=["search_options:1:2"])
+               delta = sam_ldb.msg_diff(empty,reference[0])
+               for att in hashAttrNotCopied.keys():
+                       delta.remove(att)
+               for att in backlinked:
+                       delta.remove(att)
+               delta.dn = dn
+
+               sam_ldb.add(delta,["relax:0"])
 
        changed = 0
        for dn in listPresent: