Use 'dn' less, as this is not a valid attribute in AD, and I want to
[samba.git] / source4 / scripting / libjs / provision.js
index e7e844bb89a388c3a302ad924f671c5d47f490f3..266bac1a75d70909b944587f7d751fa047d10e7d 100644 (file)
@@ -170,7 +170,7 @@ function ldb_erase(info, ldb)
        /* and the rest */
        attrs = new Array("dn");
        var basedn = "";
-       var res = ldb.search("(&(|(objectclass=*)(dn=*))(!(dn=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs);
+       var res = ldb.search("(&(|(objectclass=*)(distinguishedName=*))(!(distinguishedName=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs);
        var i;
        if (res.error != 0) {
                ldb_delete(info, ldb);
@@ -180,7 +180,7 @@ function ldb_erase(info, ldb)
                ldb.del(res.msgs[i].dn);
        }
 
-       var res = ldb.search("(&(|(objectclass=*)(dn=*))(!(dn=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs);
+       var res = ldb.search("(&(|(objectclass=*)(distinguishedName=*))(!(distinguishedName=@BASEINFO)))", basedn, ldb.SCOPE_SUBTREE, attrs);
        if (res.error != 0 || res.msgs.length != 0) {
                ldb_delete(info, ldb);
                return;
@@ -207,8 +207,8 @@ function ldb_erase_partitions(info, ldb, ldapbackend)
                return;
        }       
        for (j=0; j<res.msgs[0].namingContexts.length; j++) {
-               var anything = "(|(objectclass=*)(dn=*))";
-               var attrs = new Array("dn");
+               var anything = "(|(objectclass=*)(distinguishedName=*))";
+               var attrs = new Array("distinguishedName");
                var basedn = res.msgs[0].namingContexts[j];
                var k;
                var previous_remaining = 1;
@@ -224,8 +224,12 @@ function ldb_erase_partitions(info, ldb, ldapbackend)
                        var res2 = ldb.search(anything, basedn, ldb.SCOPE_SUBTREE, attrs);
                        var i;
                        if (res2.error != 0) {
-                               info.message("ldb search failed: " + res.errstr + "\n");
-                               continue;
+                               if (res2.error == 32) {
+                                       break;
+                               } else {
+                                       info.message("ldb search(2) failed: " + res2.errstr + "\n");
+                                       continue;
+                               }
                        }
                        previous_remaining = current_remaining;
                        current_remaining = res2.msgs.length;
@@ -235,7 +239,7 @@ function ldb_erase_partitions(info, ldb, ldapbackend)
                        
                        var res3 = ldb.search(anything, basedn, ldb.SCOPE_SUBTREE, attrs);
                        if (res3.error != 0) {
-                               info.message("ldb search failed: " + res.errstr + "\n");
+                               info.message("ldb search(3) failed: " + res3.errstr + "\n");
                                continue;
                        }
                        if (res3.msgs.length != 0) {
@@ -382,7 +386,7 @@ function provision_default_paths(subobj)
        var dnsdomain = strlower(subobj.REALM);
        var lp = loadparm_init();
        var paths = new Object();
-       paths.smbconf = lp.get("config file");
+       paths.smbconf = lp.filename()
        paths.shareconf = lp.get("private dir") + "/" + "share.ldb";
        paths.samdb = lp.get("sam database");
        paths.secrets = lp.get("secrets database");
@@ -530,7 +534,7 @@ function provision_become_dc(subobj, message, erase, paths, session_info)
        info.message = message;
        info.session_info = session_info;
 
-       message("Setting up teplates into " + paths.templates + "\n");
+       message("Setting up templates into " + paths.templates + "\n");
        setup_ldb("provision_templates.ldif", info, paths.templates);
 
        /* Also wipes the database */
@@ -663,7 +667,7 @@ function provision(subobj, message, blank, paths, session_info, credentials, lda
        var reg = reg_open();
        reg.apply_patchfile(lp.get("setup directory") + "/provision.reg")
 
-       message("Setting up teplates into " + paths.templates + "\n");
+       message("Setting up templates into " + paths.templates + "\n");
        setup_ldb("provision_templates.ldif", info, paths.templates);
 
        message("Setting up sam.ldb partitions\n");
@@ -1014,6 +1018,7 @@ function provision_guess()
        var modules_list     = new Array("rootdse",
                                         "paged_results",
                                         "ranged_results",
+                                        "anr",
                                         "server_sort",
                                         "extended_dn",
                                         "asq",