1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-01 04:58:35 +03:00

r12945: Try to move closer to getting Samba3 import working again.

There still a few things to work out

Andrew Bartlett
(This used to be commit 701558b5fe917555416eb0d100ef756f8ef7cf65)
This commit is contained in:
Andrew Bartlett 2006-01-15 09:03:28 +00:00 committed by Gerald (Jerry) Carter
parent d59667fd21
commit ba07f94438
3 changed files with 43 additions and 15 deletions

View File

@ -513,13 +513,18 @@ function upgrade_smbconf(oldconf,mark)
return newconf;
}
function upgrade(subobj, samba3, message, paths)
function upgrade(subobj, samba3, message, paths, session_info, credentials)
{
var ret = 0;
var lp = loadparm_init();
var samdb = ldb_init();
samdb.session_info = session_info;
samdb.credentials = credentials;
var ok = samdb.connect(paths.samdb);
assert(ok);
if (!ok) {
info.message("samdb connect failed: " + samdb.errstring() + "\n");
assert(ok);
}
message("Writing configuration\n");
var newconf = upgrade_smbconf(samba3.configuration,true);
@ -528,11 +533,17 @@ function upgrade(subobj, samba3, message, paths)
message("Importing account policies\n");
var ldif = upgrade_sam_policy(samba3,subobj.BASEDN);
ok = samdb.modify(ldif);
assert(ok);
if (!ok) {
message("samdb load failed: " + samdb.errstring() + "\n");
assert(ok);
}
var regdb = ldb_init();
ok = regdb.connect(paths.hklm);
assert(ok);
if (!ok) {
message("registry connect: " + regdb.errstring() + "\n");
assert(ok);
}
ok = regdb.modify(sprintf("
dn: value=RefusePasswordChange,key=Parameters,key=Netlogon,key=Services,key=CurrentControlSet,key=System,HIVE=NONE
replace: type
@ -540,7 +551,10 @@ type: 4
replace: data
data: %d
", samba3.policy.refuse_machine_password_change));
assert(ok);
if (!ok) {
message("registry load failed: " + regdb.errstring() + "\n");
assert(ok);
}
message("Importing users\n");
for (var i in samba3.samaccounts) {

View File

@ -90,12 +90,13 @@ var creds = options.get_credentials();
var system_session = system_session();
var paths = provision_default_paths(subobj);
provision(subobj, message, options.blank, paths, system_session, creds);
provision_dns(subobj, message, paths, system_session, creds);
var ret = upgrade(subobj,samba3,message,paths);
var ret = upgrade(subobj,samba3,message,paths, system_session, creds);
if (ret > 0) {
message("Failed to import %d entries\n", ret);
} else {
provision_dns(subobj, message, paths, system_session, creds);
message("All OK\n");
}

View File

@ -69,13 +69,26 @@ if (form['submit'] == "Import") {
confirm_form();
} else {
var paths = provision_default_paths(subobj);
provision(subobj, writefln, true, paths);
upgrade(subobj, samba3, writefln, paths);
writefln("Reloading smb.conf\n");
var lp = loadparm_init();
lp.reload();
if (!provision(subobj, writefln, true, paths,
session.authinfo.session_info, session.authinfo.credentials)) {
writefln("Provision failed!");
} else {
var ret = upgrade(subobj,samba3,message,paths,
session.authinfo.session_info, session.authinfo.credentials);
if (ret > 0) {
writefln("Failed to import %d entries\n", ret);
} else {
if (!provision_dns(subobj, writefln, paths,
session.authinfo.session_info, session.authinfo.credentials)) {
writefln("DNS Provision failed!");
} else {
writefln("Reloading smb.conf\n");
var lp = loadparm_init();
lp.reload();
writefln("Upgrade Complete!");
}
}
}
}
} else {
var f = FormObj("Import from Samba3", 0, 2);