r9834: More tests for the upgrade from Samba3
[gd/samba-autobuild/.git] / source / setup / upgrade
index fed09f2a4e53f5b970dad7952aa7f1a9a7c5d8ac..8dc10caa3f7894a911205322564f25dc1854271c 100755 (executable)
@@ -10,7 +10,8 @@ options = GetOptions(ARGV,
                "POPT_AUTOHELP",
                "POPT_COMMON_SAMBA",
                "POPT_COMMON_VERSION",
-               'ldif',
+               'verify',
+               'targetdir=s',
                'quiet', 'blank');
 
 if (options == undefined) {
@@ -32,13 +33,6 @@ function message()
        }
 }
 
-function ldifprint(data)
-{
-       if (options.ldif != undefined) {
-               print(data);
-       }
-}
-
 /*
  show some help
 */
@@ -48,7 +42,7 @@ function ShowHelp()
 Samba4 import tool
 
 provision [options] <libdir> <smbconf>
- --ldif                                Dump LDIF
+ --targetdir=DIR    Output to specified directory
  --quiet                       Be quiet
  --blank                       do not add users or groups, just the structure
 
@@ -73,16 +67,36 @@ if (samba3 == undefined) {
        exit(1);
 }
 
-message("Writing smb.conf\n");
-var smbconf = upgrade_smbconf(samba3);
-// FIXME: Write!
+
 
 message("Provisioning\n");
 var subobj = upgrade_provision(samba3);
-provision(subobj, message, options.blank);
+var paths;
+if (options.targetdir != undefined) {
+       paths = new Object();
+       paths.smbconf = sprintf("%s/smb.conf", options.targetdir);
+       var ldbs = new Array("hklm","hkcr","hku","hkcu","hkpd","hkpt","samdb","rootdse","secrets","winsdb");
+       for (var i in ldbs) {
+               var n = ldbs[i];
+               paths[n] = sprintf("tdb://%s/%s.ldb", options.targetdir, n);
+       }
+       paths.dns = options.targetdir+"/dns.zone";
+} else {
+       paths = provision_default_paths(subobj);;
+}
+
+provision(subobj, message, options.blank,paths);
 
-ok = upgrade(subobj,samba3,message);
-assert(ok);
+var ret = upgrade(subobj,samba3,message,paths);
+if (ret > 0) {
+       message("Failed to import %d entries\n", ret);
+} else {
+       message("All OK\n");
+}
+
+if (options.verify != undefined) {
+       message("Verifying...\n");
+       ret = upgrade_verify(subobj, samba3,paths,message);
+}
 
-message("All OK\n");
-return 0;
+return ret;