5 Usage: dbcheck.sh PREFIX RELEASE
14 . `dirname $0`/subunit.sh
16 release_dir=`dirname $0`/../../source4/selftest/provisions/${RELEASE}
19 if test -x $BINDIR/tdbrestore;
21 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade $BINDIR/tdbrestore
22 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full $BINDIR/tdbrestore
24 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade
25 `dirname $0`/../../source4/selftest/provisions/undump.sh $release_dir $PREFIX_ABS/${RELEASE}_upgrade_full
27 cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade/private/
28 cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade/
29 mkdir $PREFIX_ABS/${RELEASE}_upgrade/etc/
30 cat $release_dir/etc/smb.conf.template | \
31 sed "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade|g" \
32 > $PREFIX_ABS/${RELEASE}_upgrade/etc/smb.conf
34 cp -a $release_dir/private/*.keytab $PREFIX_ABS/${RELEASE}_upgrade_full/private/
35 cp -a $release_dir/sysvol $PREFIX_ABS/${RELEASE}_upgrade_full/
36 mkdir $PREFIX_ABS/${RELEASE}_upgrade_full/etc/
37 cat $release_dir/etc/smb.conf.template | \
38 sed "s|@@PREFIX@@|$PREFIX_ABS/${RELEASE}_upgrade_full|g" \
39 > $PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf
43 if [ x$RELEASE != x"release-4-0-0" ]; then
44 # This is done, because otherwise the upgrdeprovision will not run without --full
45 $BINDIR/ldbdel -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb cn=dns,cn=users,dc=${RELEASE},dc=samba,dc=corp
50 $BINDIR/samba-tool dbcheck --reindex -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb $@
53 # This should 'fail', because it returns the number of modified records
55 $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb $@
59 $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb $@
62 # This should 'fail', because it returns the number of modified records
64 $BINDIR/samba-tool dbcheck --cross-ncs --fix --yes -H tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb $@
67 dbcheck_full_clean() {
68 $BINDIR/samba-tool dbcheck --cross-ncs -H tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb $@
72 $PYTHON $BINDIR/samba_upgradeprovision -s "$PREFIX_ABS/${RELEASE}_upgrade/etc/smb.conf" --debugchange
75 upgradeprovision_full() {
76 $PYTHON $BINDIR/samba_upgradeprovision -s "$PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf" --full --debugchange
80 $PYTHON $BINDIR/samba_upgradedns --dns-backend=SAMBA_INTERNAL -s "$PREFIX_ABS/${RELEASE}_upgrade_full/etc/smb.conf"
83 referenceprovision() {
84 $PYTHON $BINDIR/samba-tool domain provision --server-role="dc" --domain=SAMBA --host-name=ares --realm=${RELEASE}.samba.corp --targetdir=$PREFIX_ABS/${RELEASE}_upgrade_reference --use-ntvfs --host-ip=127.0.0.1 --host-ip6=::1
88 if [ x$RELEASE != x"alpha13" ]; then
89 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb --two --skip-missing-dn --filter=dnsRecord
94 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb --two --filter=dNSProperty,dnsRecord,cn,displayName,versionNumber,systemFlags,msDS-HasInstantiatedNCs --skip-missing-dn
98 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade/private/sam.ldb --two --sd --skip-missing-dn
102 $PYTHON $BINDIR/samba-tool ldapcmp tdb://$PREFIX_ABS/${RELEASE}_upgrade_reference/private/sam.ldb tdb://$PREFIX_ABS/${RELEASE}_upgrade_full/private/sam.ldb --two --sd --skip-missing-dn
105 if [ -d $PREFIX_ABS/${RELEASE}_upgrade ]; then
106 rm -fr $PREFIX_ABS/${RELEASE}_upgrade
109 if [ -d $PREFIX_ABS/${RELEASE}_upgrade_full ]; then
110 rm -fr $PREFIX_ABS/${RELEASE}_upgrade_full
113 if [ -d $PREFIX_ABS/${RELEASE}_upgrade_reference ]; then
114 rm -fr $PREFIX_ABS/${RELEASE}_upgrade_reference
117 if [ -d $release_dir ]; then
118 testit $RELEASE undump
119 testit "remove_dns_user" remove_dns_user
120 testit "upgradeprovision" upgradeprovision
121 testit "upgradeprovision_full" upgradeprovision_full
122 testit "reindex" reindex
123 testit_expect_failure "dbcheck" dbcheck
124 testit_expect_failure "dbcheck_full" dbcheck_full
125 testit "dbcheck_clean" dbcheck_clean
126 testit "dbcheck_full_clean" dbcheck_full_clean
127 testit "referenceprovision" referenceprovision
128 testit "samba_upgradedns" samba_upgradedns
129 testit "ldapcmp" ldapcmp
130 testit "ldapcmp_sd" ldapcmp_sd
131 testit "ldapcmp_full_sd" ldapcmp_full_sd
133 subunit_start_test "${RELEASE}"
134 subunit_skip_test "${RELEASE}" <<EOF
138 subunit_start_test "remove_dns_user"
139 subunit_skip_test "remove_dns_user" <<EOF
143 subunit_start_test "upgradeprovision"
144 subunit_skip_test "upgradeprovision" <<EOF
147 subunit_start_test "upgradeprovision_full"
148 subunit_skip_test "upgradeprovision_full" <<EOF
151 subunit_start_test "reindex"
152 subunit_skip_test "reindex" <<EOF
155 subunit_start_test "dbcheck"
156 subunit_skip_test "dbcheck" <<EOF
159 subunit_start_test "dbcheck_clean"
160 subunit_skip_test "dbcheck_clean" <<EOF
163 # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run
164 if [ x$RELEASE != x"release-4-0-0" ]; then
165 subunit_start_test "dbcheck_full"
166 subunit_skip_test "dbcheck_full" <<EOF
170 subunit_start_test "dbcheck_full_clean"
171 subunit_skip_test "dbcheck_full_clean" <<EOF
174 subunit_start_test "samba_dnsupgrade"
175 subunit_skip_test "samba_dnsupgrade" <<EOF
178 subunit_start_test "referenceprovision"
179 subunit_skip_test "referenceprovision" <<EOF
182 subunit_start_test "ldapcmp"
183 subunit_skip_test "ldapcmp" <<EOF
186 subunit_start_test "ldapcmp_full"
187 subunit_skip_test "ldapcmp_full" <<EOF
190 subunit_start_test "ldapcmp_sd"
191 subunit_skip_test "ldapcmp_sd" <<EOF
194 subunit_start_test "ldapcmp_full_sd"
195 subunit_skip_test "ldapcmp_full_sd" <<EOF