2012-06-16 05:56:53 +04:00
#!/bin/sh
if [ $# -lt 1 ] ; then
cat <<EOF
2013-02-15 18:07:27 +04:00
Usage: dbcheck.sh PREFIX RELEASE
2012-06-16 05:56:53 +04:00
EOF
exit 1;
fi
PREFIX_ABS = " $1 "
2013-02-15 18:07:27 +04:00
RELEASE = " $2 "
shift 2
2012-06-16 05:56:53 +04:00
. ` dirname $0 ` /subunit.sh
2013-02-15 18:07:27 +04:00
release_dir = ` dirname $0 ` /../../source4/selftest/provisions/$RELEASE
2012-09-03 12:42:55 +04:00
2014-06-17 08:00:57 +04:00
ldbmodify = "ldbmodify"
if [ -x " $BINDIR /ldbmodify " ] ; then
ldbmodify = " $BINDIR /ldbmodify "
fi
2016-03-24 10:12:55 +03:00
ldbdel = "ldbdel"
if [ -x " $BINDIR /ldbdel " ] ; then
ldbdel = " $BINDIR /ldbdel "
fi
2015-08-03 04:50:08 +03:00
ldbsearch = "ldbsearch"
if [ -x " $BINDIR /ldbsearch " ] ; then
ldbsearch = " $BINDIR /ldbsearch "
fi
2013-02-15 18:07:27 +04:00
undump( ) {
2012-06-16 05:56:53 +04:00
if test -x $BINDIR /tdbrestore;
then
2013-02-15 18:07:27 +04:00
` dirname $0 ` /../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS /$RELEASE $BINDIR /tdbrestore
else
` dirname $0 ` /../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS /$RELEASE
2012-06-16 05:56:53 +04:00
fi
}
2014-06-17 08:00:57 +04:00
add_userparameters0( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$ldbmodify -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb <<EOF
dn: cn = localdc,cn= domain controllers,dc= release-4-1-0rc3,dc= samba,dc= corp
changetype: modify
replace: userParameters
userParameters:: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC
AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQABoACAAB
AEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZw
BGAGwAYQBnAHMAMQAwMGUwMDAxMBYACAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawAwMDAw
MDAwMBIACAABAEMAdAB4AFMAaABhAGQAbwB3ADAxMDAwMDAwKAAIAAEAQwB0AHgATQBhAH
gAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAIAAEAQwB0AHgATQBh
AHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwHAAIAAEAQw
B0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAwIgAIAAEAQwB0AHgASwBlAHkA
YgBvAGEAcgBkAEwAYQB5AG8AdQB0ADAwMDAwMDAwKgACAAEAQwB0AHgATQBpAG4ARQBuAG
MAcgB5AHAAdABpAG8AbgBMAGUAdgBlAGwAMDAgAAIAAQBDAHQAeABXAG8AcgBrAEQAaQBy
AGUAYwB0AG8AcgB5ADAwIAACAAEAQwB0AHgATgBXAEwAbwBnAG8AbgBTAGUAcgB2AGUAcg
AwMBgAJAABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByADVjNWM3MzYxNzQ3NTcyNmU2NTVj
NzAyZTYyNjk2NDZmNmUwMCIABgABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByAEQAcgBpAH
YAZQA1MDNhMDAgADoAAQBDAHQAeABXAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADVjNWM3
MzYxNzQ3NTcyNmU2NTVjNzA3MjZmNjY2OTZjNjU3NDczNjU1YzcwMmU2MjY5NjQ2ZjZlMD
AiAAIAAQBDAHQAeABJAG4AaQB0AGkAYQBsAFAAcgBvAGcAcgBhAG0AMDAiAAIAAQBDAHQA
eABDAGEAbABsAGIAYQBjAGsATgB1AG0AYgBlAHIAMDA =
-
EOF
fi
}
add_userparameters1( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$ldbmodify -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb <<EOF
dn: cn = administrator,cn= users,dc= release-4-1-0rc3,dc= samba,dc= corp
changetype: modify
replace: userParameters
userParameters: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAC
AAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQABoACAAB
AEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZw
BGAGwAYQBnAHMAMQAwMGUwMDAxMBYACAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawAwMDAw
MDAwMBIACAABAEMAdAB4AFMAaABhAGQAbwB3ADAxMDAwMDAwKAAIAAEAQwB0AHgATQBhAH
gAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAIAAEAQwB0AHgATQBh
AHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwHAAIAAEAQw
B0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAwIgAIAAEAQwB0AHgASwBlAHkA
YgBvAGEAcgBkAEwAYQB5AG8AdQB0ADAwMDAwMDAwKgACAAEAQwB0AHgATQBpAG4ARQBuAG
MAcgB5AHAAdABpAG8AbgBMAGUAdgBlAGwAMDAgAAIAAQBDAHQAeABXAG8AcgBrAEQAaQBy
AGUAYwB0AG8AcgB5ADAwIAACAAEAQwB0AHgATgBXAEwAbwBnAG8AbgBTAGUAcgB2AGUAcg
AwMBgAJAABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByADVjNWM3MzYxNzQ3NTcyNmU2NTVj
NzAyZTYyNjk2NDZmNmUwMCIABgABAEMAdAB4AFcARgBIAG8AbQBlAEQAaQByAEQAcgBpAH
YAZQA1MDNhMDAgADoAAQBDAHQAeABXAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADVjNWM3
MzYxNzQ3NTcyNmU2NTVjNzA3MjZmNjY2OTZjNjU3NDczNjU1YzcwMmU2MjY5NjQ2ZjZlMD
AiAAIAAQBDAHQAeABJAG4AaQB0AGkAYQBsAFAAcgBvAGcAcgBhAG0AMDAiAAIAAQBDAHQA
eABDAGEAbABsAGIAYQBjAGsATgB1AG0AYgBlAHIAMDA =
-
EOF
fi
}
add_userparameters2( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$ldbmodify -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb <<EOF
dn: cn = krbtgt,cn= users,dc= release-4-1-0rc3,dc= samba,dc= corp
changetype: modify
replace: userParameters
userParameters:: Q3R4Q2ZnUHJlc2VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
CAgUAsaCAFDdHhDZmdQcmVzZW5045S15pSx5oiw44GiIAIBQ3R4V0ZQcm9maWxlUGF0aOOAsBgCAU
N0eFdGSG9tZURpcuOAsCICAUN0eFdGSG9tZURpckRyaXZl44CwEggBQ3R4U2hhZG9344Sw44Cw44C
w44CwLggBQ3R4TWF4RGlzY29ubmVjdGlvblRpbWXjgaXjjLnjkLDjgLAoCAFDdHhNYXhDb25uZWN0
aW9uVGltZeOAtOOct+aIseOAsBwIAUN0eE1heElkbGVUaW1l44Gj45yy46Sw44CwIAIBQ3R4V29ya
0RpcmVjdG9yeeOAsBgIAUN0eENmZ0ZsYWdzMeOAsOOBpuOYsuOAuCICAUN0eEluaXRpYWxQcm9ncm
Ft44Cw
-
EOF
fi
}
add_userparameters3( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$ldbmodify -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb <<EOF
dn: cn = guest,cn= users,dc= release-4-1-0rc3,dc= samba,dc= corp
changetype: modify
replace: userParameters
userParameters:: QwAAAHQAAAB4AAAAQwAAAGYAAABnAAAAUAAAAHIAAABlAAAAcwAAAGUAAABuA
AAAdAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAA
AgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACA
AAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAUAAAAAsAAAAaAAAACAAAAAEAAABDAAAAdAAA
AHgAAABDAAAAZgAAAGcAAABQAAAAcgAAAGUAAABzAAAAZQAAAG4AAAB0AAAANQA1ADEAZQAwAGIAY
gAwACAAAAACAAAAAQAAAEMAAAB0AAAAeAAAAFcAAABGAAAAUAAAAHIAAABvAAAAZgAAAGkAAABsAA
AAZQAAAFAAAABhAAAAdAAAAGgAAAAwADAAGAAAAAIAAAABAAAAQwAAAHQAAAB4AAAAVwAAAEYAAAB
IAAAAbwAAAG0AAABlAAAARAAAAGkAAAByAAAAMAAwACIAAAACAAAAAQAAAEMAAAB0AAAAeAAAAFcA
AABGAAAASAAAAG8AAABtAAAAZQAAAEQAAABpAAAAcgAAAEQAAAByAAAAaQAAAHYAAABlAAAAMAAwA
BIAAAAIAAAAAQAAAEMAAAB0AAAAeAAAAFMAAABoAAAAYQAAAGQAAABvAAAAdwAAADAAMQAwADAAMA
AwADAAMAAuAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABEAAAAaQAAAHMAAABjAAA
AbwAAAG4AAABuAAAAZQAAAGMAAAB0AAAAaQAAAG8AAABuAAAAVAAAAGkAAABtAAAAZQAAAGUAMAA5
ADMAMAA0ADAAMAAoAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABDAAAAbwAAAG4AA
ABuAAAAZQAAAGMAAAB0AAAAaQAAAG8AAABuAAAAVAAAAGkAAABtAAAAZQAAADQAMAA3ADcAMQBiAD
AAMAAcAAAACAAAAAEAAABDAAAAdAAAAHgAAABNAAAAYQAAAHgAAABJAAAAZAAAAGwAAABlAAAAVAA
AAGkAAABtAAAAZQAAAGMAMAAyADcAMAA5ADAAMAAgAAAAAgAAAAEAAABDAAAAdAAAAHgAAABXAAAA
bwAAAHIAAABrAAAARAAAAGkAAAByAAAAZQAAAGMAAAB0AAAAbwAAAHIAAAB5AAAAMAAwABgAAAAIA
AAAAQAAAEMAAAB0AAAAeAAAAEMAAABmAAAAZwAAAEYAAABsAAAAYQAAAGcAAABzAAAAMQAAADAAMA
BmADAAMgA2ADgAMAAiAAAAAgAAAAEAAABDAAAAdAAAAHgAAABJAAAAbgAAAGkAAAB0AAAAaQAAAGE
AAABsAAAAUAAAAHIAAABvAAAAZwAAAHIAAABhAAAAbQAAADAAMAA =
-
EOF
fi
}
2018-10-23 06:27:29 +03:00
check_expected_userparameters( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
tmpldif = $PREFIX_ABS /$RELEASE /expected-userParameters-after-dbcheck.ldif.tmp
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb userParameters = * -s sub -b DC = release-4-1-0rc3,DC= samba,DC= corp userParameters --sorted | grep -v \# > $tmpldif
diff $tmpldif $release_dir /expected-userParameters-after-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
fi
return 0
}
2012-06-16 05:56:53 +04:00
reindex( ) {
2013-03-22 10:12:43 +04:00
$PYTHON $BINDIR /samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
2012-06-16 05:56:53 +04:00
}
2015-12-22 09:48:38 +03:00
do_current_version_mod( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
# Confirm (in combination with the ldbsearch below) that
# changing the attribute with current Samba fixes it, and that
# a fixed attriute isn't unfixed by dbcheck.
tmpldif = $release_dir /sudoers2-mod.ldif
$ldbmodify -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $tmpldif
fi
return 0
}
2015-08-03 04:50:08 +03:00
check_expected_before_values( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
tmpldif = $PREFIX_ABS /$RELEASE /expected-replpropertymetadata-before-dbcheck.ldif.tmp
2015-12-22 09:48:38 +03:00
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = ops_run_anything -s one -b OU = SUDOers,DC= release-4-1-0rc3,DC= samba,DC= corp \* replpropertymetadata --sorted --show-binary > $tmpldif
2015-08-03 04:50:08 +03:00
diff $tmpldif $release_dir /expected-replpropertymetadata-before-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
2015-12-22 09:48:38 +03:00
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = ops_run_anything2 -s one -b OU = SUDOers,DC= release-4-1-0rc3,DC= samba,DC= corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time| grep -v whenChanged > $tmpldif
# Here we remove originating_change_time and whenChanged as
# these are time-dependent, caused by the ldbmodify above.
diff $tmpldif $release_dir /expected-replpropertymetadata-before-dbcheck2.ldif
if [ " $? " != "0" ] ; then
return 1
fi
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = ops_run_anything3 -s one -b OU = SUDOers,DC= release-4-1-0rc3,DC= samba,DC= corp \* replpropertymetadata --sorted --show-binary > $tmpldif
diff $tmpldif $release_dir /expected-replpropertymetadata-before-dbcheck3.ldif
if [ " $? " != "0" ] ; then
return 1
fi
2016-09-08 07:34:51 +03:00
elif [ x$RELEASE = x"release-4-5-0-pre1" ] ; then
tmpldif = $PREFIX_ABS /$RELEASE /rootdse-version.initial.txt.tmp
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb -s base -b '' | grep highestCommittedUSN > $tmpldif
diff $tmpldif $release_dir /rootdse-version.initial.txt
if [ " $? " != "0" ] ; then
return 1
fi
2015-08-03 04:50:08 +03:00
fi
return 0
}
2016-08-26 06:53:19 +03:00
# This should 'fail', because it returns the number of modified records
dbcheck_objectclass( ) {
if [ x$RELEASE = x"release-4-1-6-partial-object" ] ; then
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb --attrs= objectclass $@
else
return 1
fi
}
2012-06-16 05:56:53 +04:00
# This should 'fail', because it returns the number of modified records
dbcheck( ) {
2013-03-22 10:12:43 +04:00
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
2012-06-16 05:56:53 +04:00
}
2015-08-03 04:50:08 +03:00
check_expected_after_values( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
2016-07-01 02:22:11 +03:00
tmpldif = $PREFIX_ABS /$RELEASE /expected-replpropertymetadata-after-dbcheck.ldif.tmp
2015-12-22 09:48:38 +03:00
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = ops_run_anything -s one -b OU = SUDOers,DC= release-4-1-0rc3,DC= samba,DC= corp \* replpropertymetadata --sorted --show-binary > $tmpldif
diff $tmpldif $release_dir /expected-replpropertymetadata-after-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = ops_run_anything2 -s one -b OU = SUDOers,DC= release-4-1-0rc3,DC= samba,DC= corp \* replpropertymetadata --sorted --show-binary | grep -v originating_change_time| grep -v whenChanged > $tmpldif
diff $tmpldif $release_dir /expected-replpropertymetadata-after-dbcheck2.ldif
if [ " $? " != "0" ] ; then
return 1
fi
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = ops_run_anything3 -s one -b OU = SUDOers,DC= release-4-1-0rc3,DC= samba,DC= corp \* replpropertymetadata --sorted --show-binary > $tmpldif
diff $tmpldif $release_dir /expected-replpropertymetadata-after-dbcheck3.ldif
2015-08-03 04:50:08 +03:00
if [ " $? " != "0" ] ; then
return 1
fi
2016-07-20 03:47:11 +03:00
# Check DomainDNS partition for replica locations
tmpldif = $PREFIX_ABS /$RELEASE /expected-replica-locations-after-dbcheck.ldif.tmp
$ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = 49a69498-9a85-48af-9be4-aa0b3e0054f9 -s one -b CN = Partitions,CN= Configuration,DC= release-4-1-0rc3,DC= samba,DC= corp msDS-NC-Replica-Locations > $tmpldif
diff $tmpldif $release_dir /expected-replica-locations-after-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
# Check ForestDNS partition for replica locations
$ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = 7d2a15af-c0d4-487c-847e-e036292bcc65 -s one -b CN = Partitions,CN= Configuration,DC= release-4-1-0rc3,DC= samba,DC= corp msDS-NC-Replica-Locations > $tmpldif
diff $tmpldif $release_dir /expected-replica-locations-after-dbcheck2.ldif
if [ " $? " != "0" ] ; then
return 1
fi
2016-07-01 02:19:54 +03:00
elif [ x$RELEASE = x"release-4-5-0-pre1" ] ; then
echo $RELEASE checking after values
tmpldif = $PREFIX_ABS /$RELEASE /expected-links-after-dbcheck.ldif.tmp
2017-12-11 07:05:19 +03:00
$ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb --show-recycled --show-deleted --show-deactivated-link --reveal member memberOf lastKnownParent objectCategory lastKnownParent wellKnownObjects legacyExchangeDN sAMAccountType uSNChanged --sorted > $tmpldif
2016-07-01 02:19:54 +03:00
diff $tmpldif $release_dir /expected-links-after-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
2016-09-08 07:34:51 +03:00
# If in the future dbcheck has to make a change recorded in replPropertyMetadata,
# this test will fail and can be removed.
tmpversion = $PREFIX_ABS /$RELEASE /rootdse-version.final.txt.tmp
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb -s base -b '' | grep highestCommittedUSN > $tmpversion
diff $tmpversion $release_dir /rootdse-version.final.txt
if [ " $? " != "0" ] ; then
return 1
fi
2015-08-03 04:50:08 +03:00
fi
return 0
}
2016-02-23 04:57:04 +03:00
check_forced_duplicate_values( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
ldif = $release_dir /forced-duplicate-value-for-dbcheck.ldif
TZ = UTC $ldbmodify -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb $ldif
if [ " $? " != "0" ] ; then
return 1
fi
else
return 0
fi
}
# This should 'fail', because it returns the number of modified records
dbcheck_after_dup( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
2016-06-07 04:54:28 +03:00
$PYTHON $BINDIR /samba-tool dbcheck --fix --yes -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = administrator,cn= users,DC= release-4-1-0rc3,DC= samba,DC= corp $@
2016-02-23 04:57:04 +03:00
else
return 1
fi
}
check_expected_after_dup_values( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
tmpldif = $PREFIX_ABS /$RELEASE /expected-otherphone-after-dbcheck.ldif.tmp
2016-03-09 04:08:41 +03:00
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = administrator -s base -b cn = administrator,cn= users,DC= release-4-1-0rc3,DC= samba,DC= corp otherHomePhone --sorted --show-binary | grep -v \# | sort > $tmpldif
2016-02-23 04:57:04 +03:00
diff $tmpldif $release_dir /expected-otherphone-after-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
fi
return 0
}
2012-06-16 05:56:53 +04:00
# But having fixed it all up, this should pass
dbcheck_clean( ) {
2013-03-22 10:12:43 +04:00
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
}
2013-09-22 09:06:54 +04:00
# This should 'fail', because it returns the number of modified records.
2014-04-04 01:40:35 +04:00
# We don't need to run this against 4.1 releases
2013-03-22 10:12:43 +04:00
dbcheck_acl_reset( ) {
2014-04-04 01:40:35 +04:00
if [ x$RELEASE = x"release-4-0-0" -o x$RELEASE = x"alpha13" ] ; then
2013-03-22 10:12:43 +04:00
$PYTHON $BINDIR /samba-tool dbcheck --reset-well-known-acls --cross-ncs --fix --yes -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
2013-09-22 09:06:54 +04:00
else
return 1
fi
2013-03-22 10:12:43 +04:00
}
2013-09-22 09:06:54 +04:00
# But having fixed it all up, this should pass.
# We don't need to run this against 4.1.0rc3
2013-03-22 10:12:43 +04:00
dbcheck_acl_reset_clean( ) {
2013-09-22 09:06:54 +04:00
if [ x$RELEASE != x"release-4-1-0rc3" ] ; then
2013-03-22 10:12:43 +04:00
$PYTHON $BINDIR /samba-tool dbcheck --reset-well-known-acls --cross-ncs -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
2013-09-22 09:06:54 +04:00
fi
2013-03-22 10:12:43 +04:00
}
2014-06-17 08:00:57 +04:00
# This should 'fail', because it returns the number of modified records
dbcheck2( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
else
exit 1
fi
}
# But having fixed it all up, this should pass
dbcheck_clean2( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
fi
}
2016-03-24 10:12:55 +03:00
rm_deleted_objects( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
TZ = UTC $ldbdel -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb.d/DC%3DRELEASE-4-1-0RC3,DC%3DSAMBA,DC%3DCORP.ldb 'CN=Deleted Objects,DC=RELEASE-4-1-0RC3,DC=SAMBA,DC=CORP'
if [ " $? " != "0" ] ; then
return 1
fi
else
return 0
fi
}
# This should 'fail', because it returns the number of modified records
dbcheck3( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
else
exit 1
fi
}
# But having fixed it all up, this should pass
dbcheck_clean3( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
$PYTHON $BINDIR /samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb $@
fi
}
check_expected_after_deleted_objects( ) {
if [ x$RELEASE = x"release-4-1-0rc3" ] ; then
tmpldif = $PREFIX_ABS /$RELEASE /expected-deleted_objects-after-dbcheck.ldif.tmp
TZ = UTC $ldbsearch -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb cn = deleted\ objects -s base -b cn = deleted\ objects,DC= release-4-1-0rc3,DC= samba,DC= corp objectClass description isDeleted isCriticalSystemObject objectGUID showInAdvancedViewOnly systemFlags --sorted --show-binary --show-deleted | grep -v \# | sort > $tmpldif
diff $tmpldif $release_dir /expected-deleted_objects-after-dbcheck.ldif
if [ " $? " != "0" ] ; then
return 1
fi
fi
return 0
}
2013-03-22 10:12:43 +04:00
referenceprovision( ) {
2017-12-11 04:47:21 +03:00
if [ x$RELEASE = x"release-4-0-0" ] ; then
2018-02-28 02:17:46 +03:00
$PYTHON $BINDIR /samba-tool domain provision --server-role= "dc" --domain= SAMBA --host-name= ares --realm= ${ RELEASE } .samba.corp --targetdir= $PREFIX_ABS /${ RELEASE } _reference --use-ntvfs --host-ip= 127.0.0.1 --host-ip6= ::1 --function-level= 2003 --base-schema= 2008_R2_old
# on top of this, also apply 2008R2 changes we accidentally missed in the past
$PYTHON $BINDIR /samba-tool domain schemaupgrade -H tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb --ldf-file= samba-4.7-missing-for-schema45.ldif,fix-forest-rev.ldf
2013-09-22 10:36:46 +04:00
fi
2013-03-22 10:12:43 +04:00
}
ldapcmp( ) {
2017-12-11 04:47:21 +03:00
if [ x$RELEASE = x"release-4-0-0" ] ; then
2018-02-28 02:17:46 +03:00
$PYTHON $BINDIR /samba-tool ldapcmp tdb://$PREFIX_ABS /${ RELEASE } _reference/private/sam.ldb tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb --two --skip-missing-dn --filter= dnsRecord,displayName
2013-03-22 10:12:43 +04:00
fi
}
ldapcmp_sd( ) {
2017-12-11 04:47:21 +03:00
if [ x$RELEASE = x"release-4-0-0" ] ; then
2013-03-22 10:12:43 +04:00
$PYTHON $BINDIR /samba-tool ldapcmp tdb://$PREFIX_ABS /${ RELEASE } _reference/private/sam.ldb tdb://$PREFIX_ABS /${ RELEASE } /private/sam.ldb --two --sd --skip-missing-dn
fi
2012-06-16 05:56:53 +04:00
}
2013-02-15 18:07:27 +04:00
if [ -d $release_dir ] ; then
testit $RELEASE undump
2012-09-03 12:42:55 +04:00
testit "reindex" reindex
2015-12-22 09:48:38 +03:00
testit "current_version_mod" do_current_version_mod
2015-08-03 04:50:08 +03:00
testit "check_expected_before_values" check_expected_before_values
2016-08-26 06:53:19 +03:00
testit_expect_failure "dbcheck_objectclass" dbcheck_objectclass
2012-09-03 12:42:55 +04:00
testit_expect_failure "dbcheck" dbcheck
2015-08-03 04:50:08 +03:00
testit "check_expected_after_values" check_expected_after_values
2016-02-23 04:57:04 +03:00
testit "check_forced_duplicate_values" check_forced_duplicate_values
testit_expect_failure "dbcheck_after_dup" dbcheck_after_dup
testit "check_expected_after_dup_values" check_expected_after_dup_values
2012-09-03 12:42:55 +04:00
testit "dbcheck_clean" dbcheck_clean
2013-03-22 10:12:43 +04:00
testit_expect_failure "dbcheck_acl_reset" dbcheck_acl_reset
testit "dbcheck_acl_reset_clean" dbcheck_acl_reset_clean
2014-06-17 08:00:57 +04:00
testit "add_userparameters0" add_userparameters1
testit "add_userparameters1" add_userparameters1
testit "add_userparameters2" add_userparameters2
testit "add_userparameters3" add_userparameters3
testit_expect_failure "dbcheck2" dbcheck2
testit "dbcheck_clean2" dbcheck_clean2
2018-10-23 06:27:29 +03:00
testit "check_expected_userparameters" check_expected_userparameters
2016-03-24 10:12:55 +03:00
testit "rm_deleted_objects" rm_deleted_objects
2017-09-12 05:17:35 +03:00
# We must re-index again because rm_deleted_objects went behind
# the back of the main sam.ldb.
testit "reindex2" reindex
2016-03-24 10:12:55 +03:00
testit_expect_failure "dbcheck3" dbcheck3
testit "dbcheck_clean3" dbcheck_clean3
testit "check_expected_after_deleted_objects" check_expected_after_deleted_objects
2013-03-22 10:12:43 +04:00
testit "referenceprovision" referenceprovision
testit "ldapcmp" ldapcmp
testit "ldapcmp_sd" ldapcmp_sd
2012-09-03 12:42:55 +04:00
else
2013-02-15 18:07:27 +04:00
subunit_start_test $RELEASE
subunit_skip_test $RELEASE <<EOF
no test provision
2012-09-03 12:42:55 +04:00
EOF
subunit_start_test "reindex"
2013-02-15 18:07:27 +04:00
subunit_skip_test "reindex" <<EOF
no test provision
2015-08-03 04:50:08 +03:00
EOF
subunit_start_test check_expected_before_values
subunit_skip_test check_expected_before_values<<EOF
no test provision
2012-09-03 12:42:55 +04:00
EOF
subunit_start_test "dbcheck"
2013-02-15 18:07:27 +04:00
subunit_skip_test "dbcheck" <<EOF
no test provision
2012-09-03 12:42:55 +04:00
EOF
subunit_start_test "dbcheck_clean"
2013-02-15 18:07:27 +04:00
subunit_skip_test "dbcheck_clean" <<EOF
no test provision
2015-08-03 04:50:08 +03:00
EOF
subunit_start_test check_expected_after_values
subunit_skip_test check_expected_after_values<<EOF
no test provision
2012-09-03 12:42:55 +04:00
EOF
2013-03-22 10:12:43 +04:00
subunit_start_test "dbcheck_acl_reset"
subunit_skip_test "dbcheck_acl_reset" <<EOF
no test provision
EOF
subunit_start_test "dbcheck_clean_acl_reset"
subunit_skip_test "dbcheck_clean_acl_reset" <<EOF
no test provision
EOF
2014-06-17 08:00:57 +04:00
subunit_start_test add_userparameters0
subunit_skip_test add_userparameters0<<EOF
no test provision
EOF
subunit_start_test add_userparameters1
subunit_skip_test add_userparameters1<<EOF
no test provision
EOF
subunit_start_test add_userparameters2
subunit_skip_test add_userparameters2<<EOF
no test provision
EOF
subunit_start_test add_userparameters3
subunit_skip_test add_userparameters3<<EOF
no test provision
2015-08-03 04:50:08 +03:00
EOF
subunit_start_test check_expected_before_values
subunit_skip_test check_expected_before_values<<EOF
no test provision
2014-06-17 08:00:57 +04:00
EOF
subunit_start_test "dbcheck2"
subunit_skip_test "dbcheck2" <<EOF
no test provision
EOF
2013-03-22 10:12:43 +04:00
subunit_start_test "referenceprovision"
subunit_skip_test "referenceprovision" <<EOF
no test provision
EOF
subunit_start_test "ldapcmp"
subunit_skip_test "ldapcmp" <<EOF
no test provision
EOF
subunit_start_test "ldapcmp_sd"
subunit_skip_test "ldapcmp_sd" <<EOF
no test provision
EOF
fi
if [ -d $PREFIX_ABS /${ RELEASE } ] ; then
2015-08-03 04:50:08 +03:00
rm -fr $PREFIX_ABS /${ RELEASE }
2013-03-22 10:12:43 +04:00
fi
if [ -d $PREFIX_ABS /${ RELEASE } _reference ] ; then
rm -fr $PREFIX_ABS /${ RELEASE } _reference
2012-09-03 12:42:55 +04:00
fi
2012-06-16 05:56:53 +04:00
exit $failed