summaryrefslogtreecommitdiff
path: root/source/setup
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2005-08-29 15:54:10 +0000
committerJelmer Vernooij <jelmer@samba.org>2005-08-29 15:54:10 +0000
commitb911506e061ba9a8646d25711c3e1557192091d4 (patch)
tree752518bccd41cc9ebaac1304f17d9bbc9074cf4f /source/setup
parentd1211c3a774bcdb6a8956255451663c8b1298c20 (diff)
downloadsamba-b911506e061ba9a8646d25711c3e1557192091d4.tar.gz
r9744: - [upgrade.js] Start working on smb.conf conversion.
- [ldb_map] Support storing non-mappable data in a fallback LDB
Diffstat (limited to 'source/setup')
-rw-r--r--source/setup/upgrade55
1 files changed, 50 insertions, 5 deletions
diff --git a/source/setup/upgrade b/source/setup/upgrade
index 447e5ee4f92..5d0b14bdd7a 100644
--- a/source/setup/upgrade
+++ b/source/setup/upgrade
@@ -10,6 +10,8 @@ options = GetOptions(ARGV,
"POPT_AUTOHELP",
"POPT_COMMON_SAMBA",
"POPT_COMMON_VERSION",
+ 'ldif',
+ 'dn=s',
'quiet', 'blank');
if (options == undefined) {
@@ -31,6 +33,13 @@ function message()
}
}
+function ldifprint(data)
+{
+ if (options["ldif"] != undefined) {
+ print data;
+ }
+}
+
/*
show some help
*/
@@ -40,6 +49,7 @@ function ShowHelp()
Samba4 import tool
provision [options] <libdir> <smbconf>
+ --ldif Dump LDIF
--quiet Be quiet
--blank do not add users or groups, just the structure
@@ -54,6 +64,10 @@ if (options.ARGV.length != 2) {
exit(1);
}
+if (options.dn == undefined) {
+ options.dn = "dc=example,dc=org";
+}
+
message("Reading Samba3 databases and smb.conf\n");
var samba3 = samba3_read(options.ARGV[0], options.ARGV[1]);
@@ -63,23 +77,54 @@ if (samba3 == undefined) {
}
message("Writing smb.conf\n");
-// FIXME
+var smbconf = upgrade_smbconf(samba3);
+// FIXME: Write!
message("Provisioning\n");
var subobj = upgrade_provision(samba3);
provision(subobj, message, blank);
+var samdb = ldb_init();
+samdb.connect(lp.get("setup directory") + "/samdb.ldb");
+
message("Importing account policies\n");
-// FIXME
+var ldif = upgrade_policy(samba3);
+ldifprint(ldif);
+samdb.modify(ldif);
+
+// FIXME: Enable samba3sam module if original passdb backend was ldap
message("Importing users\n");
-// FIXME
+for (var i in samba3.samaccounts) {
+ message("Importing user '" + samba3.samaccounts[i].username + "'");
+ var ldif = upgrade_sam_account(samba3.samaccounts[i]);
+ ldifprint(ldif);
+ samdb.add(ldif);
+}
message("Importing groups\n");
-// FIXME
+for (var i in samba3.groupmappings) {
+ message("Importing group '" + samba3.groupmappings[i].username + "'");
+ var ldif = upgrade_sam_group(samba3.groupmappings[i]);
+ ldifprint(ldif);
+ samdb.add(ldif);
+}
message("Importing WINS data\n");
-// FIXME
+var ldif = upgrade_wins(samba3)
+ldifprint(ldif);
+setup_ldb(ldif, "wins", Object());
+
+message("Importing registry data\n");
+var hives = ["hkcr","hkcu","hklm","hkpd"];
+for (var i in hives) {
+ var regdb = ldb_init();
+ regdb.connect(lp.get("setup directory") + "/" + hives[i] + ".ldb");
+ var ldif = upgrade_registry(samba3, hives[i]);
+ ldifprint(ldif);
+ ldb.add(ldif);
+}
+
message("All OK\n");
return 0;