mirror of
https://github.com/samba-team/samba.git
synced 2025-08-03 04:22:09 +03:00
r9834: More tests for the upgrade from Samba3
(This used to be commit d2db164d6f
)
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
52bcf4c5a3
commit
0712cbdab4
@ -7,11 +7,8 @@ then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DATADIR=$PREFIX/upgrade
|
mkdir -p $PREFIX
|
||||||
|
rm -f $PREFIX/*
|
||||||
|
|
||||||
mkdir -p $DATADIR
|
bin/smbscript ../testdata/samba3/verify ../testdata/samba3
|
||||||
rm -f $DATADIR/*
|
bin/smbscript setup/upgrade --verify --targetdir=$PREFIX ../testdata/samba3 ../testdata/samba3/smb.conf
|
||||||
|
|
||||||
bin/smbscript setup/upgrade --targetdir=$DATADIR ../testdata/samba3 ../testdata/samba3/smb.conf
|
|
||||||
|
|
||||||
# FIXME: Do some sanity checks on the output files
|
|
||||||
|
@ -55,6 +55,10 @@ static struct MprVar mprRegistry(struct samba3_regdb *reg)
|
|||||||
mprAddArray(&ks, i, k);
|
mprAddArray(&ks, i, k);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&ks, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
mprSetVar(&mpv, "keys", ks);
|
mprSetVar(&mpv, "keys", ks);
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
@ -104,6 +108,11 @@ static struct MprVar mprIdmapDb(struct samba3_idmapdb *db)
|
|||||||
mprAddArray(&mps, i, mp);
|
mprAddArray(&mps, i, mp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&mpv, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
mprSetVar(&mpv, "mappings", mps);
|
mprSetVar(&mpv, "mappings", mps);
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
@ -131,6 +140,11 @@ static struct MprVar mprGroupMappings(struct samba3_groupdb *db)
|
|||||||
mprAddArray(&mpv, i, g);
|
mprAddArray(&mpv, i, g);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&mpv, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,6 +172,10 @@ static struct MprVar mprAliases(struct samba3_groupdb *db)
|
|||||||
mprSetVar(&a, "members", am);
|
mprSetVar(&a, "members", am);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&mpv, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,6 +237,10 @@ static struct MprVar mprSecrets(struct samba3_secrets *sec)
|
|||||||
mprAddArray(&es, i, mprDomainSecrets(&sec->domains[i]));
|
mprAddArray(&es, i, mprDomainSecrets(&sec->domains[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&es, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
mprSetVar(&mpv, "domains", es);
|
mprSetVar(&mpv, "domains", es);
|
||||||
|
|
||||||
es = mprObject("trusted_domains");
|
es = mprObject("trusted_domains");
|
||||||
@ -247,6 +269,10 @@ static struct MprVar mprSecrets(struct samba3_secrets *sec)
|
|||||||
mprAddArray(&es, i, e);
|
mprAddArray(&es, i, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&es, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
mprSetVar(&mpv, "trusted_domains", es);
|
mprSetVar(&mpv, "trusted_domains", es);
|
||||||
|
|
||||||
es = mprObject("array");
|
es = mprObject("array");
|
||||||
@ -279,6 +305,10 @@ static struct MprVar mprSecrets(struct samba3_secrets *sec)
|
|||||||
mprAddArray(&es, i, e);
|
mprAddArray(&es, i, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&es, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
mprSetVar(&mpv, "afs_keyfiles", es);
|
mprSetVar(&mpv, "afs_keyfiles", es);
|
||||||
|
|
||||||
mprSetVar(&mpv, "ipc_cred", mprCredentials(sec->ipc_cred));
|
mprSetVar(&mpv, "ipc_cred", mprCredentials(sec->ipc_cred));
|
||||||
@ -301,6 +331,10 @@ static struct MprVar mprShares(struct samba3 *samba3)
|
|||||||
mprAddArray(&mpv, i, s);
|
mprAddArray(&mpv, i, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&mpv, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,6 +382,10 @@ static struct MprVar mprSamAccounts(struct samba3 *samba3)
|
|||||||
mprAddArray(&mpv, i, m);
|
mprAddArray(&mpv, i, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&mpv, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -375,6 +413,10 @@ static struct MprVar mprWinsEntries(struct samba3 *samba3)
|
|||||||
mprAddArray(&mpv, i, w);
|
mprAddArray(&mpv, i, w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (i == 0) {
|
||||||
|
mprSetVar(&mpv, "length", mprCreateIntegerVar(i));
|
||||||
|
}
|
||||||
|
|
||||||
return mpv;
|
return mpv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -448,26 +448,26 @@ dn: @MAP=samba3sam
|
|||||||
|
|
||||||
message("Importing users\n");
|
message("Importing users\n");
|
||||||
for (var i in samba3.samaccounts) {
|
for (var i in samba3.samaccounts) {
|
||||||
message("... " + samba3.samaccounts[i].username);
|
var msg = "... " + samba3.samaccounts[i].username;
|
||||||
var ldif = upgrade_sam_account(samba3.samaccounts[i],subobj.BASEDN);
|
var ldif = upgrade_sam_account(samba3.samaccounts[i],subobj.BASEDN);
|
||||||
ok = samdb.add(ldif);
|
ok = samdb.add(ldif);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
message("... error: " + samdb.errstring());
|
msg = msg + "... error: " + samdb.errstring();
|
||||||
ret = ret + 1;
|
ret = ret + 1;
|
||||||
}
|
}
|
||||||
message("\n");
|
message(msg + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
message("Importing groups\n");
|
message("Importing groups\n");
|
||||||
for (var i in samba3.groupmappings) {
|
for (var i in samba3.groupmappings) {
|
||||||
message("... " + samba3.groupmappings[i].nt_name);
|
var msg = "... " + samba3.groupmappings[i].nt_name;
|
||||||
var ldif = upgrade_sam_group(samba3.groupmappings[i],subobj.BASEDN);
|
var ldif = upgrade_sam_group(samba3.groupmappings[i],subobj.BASEDN);
|
||||||
ok = samdb.add(ldif);
|
ok = samdb.add(ldif);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
message("... error: " + samdb.errstring());
|
msg = msg + "... error: " + samdb.errstring();
|
||||||
ret = ret + 1;
|
ret = ret + 1;
|
||||||
}
|
}
|
||||||
message("\n");
|
message(msg + "\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
message("Importing registry data\n");
|
message("Importing registry data\n");
|
||||||
@ -480,13 +480,13 @@ dn: @MAP=samba3sam
|
|||||||
assert(ok);
|
assert(ok);
|
||||||
var ldif = upgrade_registry(samba3.registry, hn, regdb);
|
var ldif = upgrade_registry(samba3.registry, hn, regdb);
|
||||||
for (var j in ldif) {
|
for (var j in ldif) {
|
||||||
message("... ... " + j);
|
var msg = "... ... " + j;
|
||||||
ok = regdb.add(ldif[j]);
|
ok = regdb.add(ldif[j]);
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
message("... error: " + regdb.errstring());
|
msg = msg + "... error: " + regdb.errstring();
|
||||||
ret = ret + 1;
|
ret = ret + 1;
|
||||||
}
|
}
|
||||||
message("\n");
|
message(msg + "\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,3 +502,15 @@ dn: @MAP=samba3sam
|
|||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function upgrade_verify(subobj, samba3,paths,message)
|
||||||
|
{
|
||||||
|
message("Verifying account policies\n");
|
||||||
|
var samldb = ldb_init();
|
||||||
|
var ne = 0;
|
||||||
|
|
||||||
|
var ok = samldb.connect(paths.samdb);
|
||||||
|
assert(ok);
|
||||||
|
|
||||||
|
// FIXME
|
||||||
|
}
|
||||||
|
@ -10,6 +10,7 @@ options = GetOptions(ARGV,
|
|||||||
"POPT_AUTOHELP",
|
"POPT_AUTOHELP",
|
||||||
"POPT_COMMON_SAMBA",
|
"POPT_COMMON_SAMBA",
|
||||||
"POPT_COMMON_VERSION",
|
"POPT_COMMON_VERSION",
|
||||||
|
'verify',
|
||||||
'targetdir=s',
|
'targetdir=s',
|
||||||
'quiet', 'blank');
|
'quiet', 'blank');
|
||||||
|
|
||||||
@ -92,4 +93,10 @@ if (ret > 0) {
|
|||||||
} else {
|
} else {
|
||||||
message("All OK\n");
|
message("All OK\n");
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
if (options.verify != undefined) {
|
||||||
|
message("Verifying...\n");
|
||||||
|
ret = upgrade_verify(subobj, samba3,paths,message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
51
testdata/samba3/verify
vendored
Executable file
51
testdata/samba3/verify
vendored
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
#!/usr/bin/env smbscript
|
||||||
|
/* Verifies that the data present in this directory
|
||||||
|
Can be read correctly by Samba4. Do not update
|
||||||
|
without changing the corresponding TDB file!
|
||||||
|
Written by Jelmer Vernooij, 2005.
|
||||||
|
*/
|
||||||
|
|
||||||
|
libinclude("base.js");
|
||||||
|
|
||||||
|
var path = substr(ARGV[0], 0, -strlen("verify"));
|
||||||
|
printf("Reading from %s\n", path);
|
||||||
|
|
||||||
|
var s = samba3_read(path, path+"smb.conf");
|
||||||
|
assert(s != undefined);
|
||||||
|
|
||||||
|
// smb.conf checks
|
||||||
|
assert(s.configuration.get("passdb backend") != undefined);
|
||||||
|
|
||||||
|
var data = s.configuration.data();
|
||||||
|
assert(data != undefined);
|
||||||
|
var global = data["global"];
|
||||||
|
assert(global != undefined);
|
||||||
|
assert(global["passdb backend"] == s.configuration.get("passdb backend"));
|
||||||
|
assert(global["passdb backend"] != undefined);
|
||||||
|
|
||||||
|
println("smb.conf ok");
|
||||||
|
|
||||||
|
assert(s.winsentries.length == 22);
|
||||||
|
assert(s.samaccounts.length == 3);
|
||||||
|
assert(s.shares.length == 0);
|
||||||
|
assert(s.registry.keys.length == 28);
|
||||||
|
assert(s.groupmappings.length == 13);
|
||||||
|
assert(s.aliases.length == 0);
|
||||||
|
assert(s.idmapdb.mappings.length == 4);
|
||||||
|
|
||||||
|
println("database entry count correct");
|
||||||
|
|
||||||
|
// account policies
|
||||||
|
assert(s.policy.min_password_length == 5);
|
||||||
|
assert(s.policy.minimum_password_age == 0);
|
||||||
|
assert(s.policy.maximum_password_age == 999999999);
|
||||||
|
assert(s.policy.refuse_machine_password_change == 0);
|
||||||
|
assert(s.policy.reset_count_minutes == 0);
|
||||||
|
assert(s.policy.disconnect_time == -1);
|
||||||
|
assert(s.policy.user_must_logon_to_change_password == 0);
|
||||||
|
assert(s.policy.password_history == 0);
|
||||||
|
assert(s.policy.lockout_duration == 0);
|
||||||
|
assert(s.policy.bad_lockout_minutes == 0);
|
||||||
|
|
||||||
|
println("account policies ok");
|
||||||
|
|
Reference in New Issue
Block a user