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 # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run
124 if [ x
$RELEASE != x
"release-4-0-0" ]; then
125 testit_expect_failure
"dbcheck" dbcheck
127 testit_expect_failure
"dbcheck_full" dbcheck_full
128 testit
"dbcheck_clean" dbcheck_clean
129 testit
"dbcheck_full_clean" dbcheck_full_clean
130 testit
"referenceprovision" referenceprovision
131 testit
"samba_upgradedns" samba_upgradedns
132 testit
"ldapcmp" ldapcmp
133 testit
"ldapcmp_sd" ldapcmp_sd
134 testit
"ldapcmp_full_sd" ldapcmp_full_sd
136 subunit_start_test
"${RELEASE}"
137 subunit_skip_test
"${RELEASE}" <<EOF
141 subunit_start_test
"remove_dns_user"
142 subunit_skip_test
"remove_dns_user" <<EOF
146 subunit_start_test
"upgradeprovision"
147 subunit_skip_test
"upgradeprovision" <<EOF
150 subunit_start_test
"upgradeprovision_full"
151 subunit_skip_test
"upgradeprovision_full" <<EOF
154 subunit_start_test
"reindex"
155 subunit_skip_test
"reindex" <<EOF
158 subunit_start_test
"dbcheck"
159 subunit_skip_test
"dbcheck" <<EOF
162 subunit_start_test
"dbcheck_clean"
163 subunit_skip_test
"dbcheck_clean" <<EOF
166 # So far, only releases before 4.0.0rc6 need a dbcheck if upgradeprovision has already been run
167 if [ x
$RELEASE != x
"release-4-0-0" ]; then
168 subunit_start_test
"dbcheck_full"
169 subunit_skip_test
"dbcheck_full" <<EOF
173 subunit_start_test
"dbcheck_full_clean"
174 subunit_skip_test
"dbcheck_full_clean" <<EOF
177 subunit_start_test
"samba_dnsupgrade"
178 subunit_skip_test
"samba_dnsupgrade" <<EOF
181 subunit_start_test
"referenceprovision"
182 subunit_skip_test
"referenceprovision" <<EOF
185 subunit_start_test
"ldapcmp"
186 subunit_skip_test
"ldapcmp" <<EOF
189 subunit_start_test
"ldapcmp_full"
190 subunit_skip_test
"ldapcmp_full" <<EOF
193 subunit_start_test
"ldapcmp_sd"
194 subunit_skip_test
"ldapcmp_sd" <<EOF
197 subunit_start_test
"ldapcmp_full_sd"
198 subunit_skip_test
"ldapcmp_full_sd" <<EOF