5 Usage: blackbox_provision.sh PREFIX
13 . $
(dirname $0)/..
/..
/..
/testprogs
/blackbox
/subunit.sh
15 #Prepare an empty smb.conf to ensure it is overwritten
16 rm -rf $PREFIX/simple-default
17 mkdir
-p $PREFIX/simple-default
/etc
18 touch $PREFIX/simple-default
/etc
/smb.conf
19 testit
"simple-default" $PYTHON $BINDIR/samba-tool domain provision
--domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-default
--use-ntvfs
20 #And try with just whitespace
21 rm -rf $PREFIX/simple-dc
22 mkdir
-p $PREFIX/simple-dc
/etc
23 echo " " >$PREFIX/simple-dc
/etc
/smb.conf
24 testit
"simple-dc" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--domain-sid=S-1-5-21-4177067393-1453636373-93818738
--targetdir=$PREFIX/simple-dc
--use-ntvfs
25 #The rest of these tests are with no smb.conf file present
27 rm -rf $PREFIX/simple-dc
28 testit
"simple-dc-guids" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--domain-sid=S-1-5-21-4177067393-1453636373-93818738
--domain-guid=6054d36d-2bfd-44f1-a9cd-32cfbb06480b
--ntds-guid=b838f255-c8aa-4fe8-9402-b7d61ca3bd1b
--invocationid=6d4cff9a-2bbf-4b4c-98a2-36242ddb0bd6
--targetdir=$PREFIX/simple-dc
--use-ntvfs
29 rm -rf $PREFIX/simple-dc-2008r2-schema
30 testit
"simple-dc-2008r2-schema" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-dc-2008r2-schema
--use-ntvfs --base-schema=2008_R2
31 rm -rf $PREFIX/simple-dc-2012-schema
32 testit
"simple-dc-2012-schema" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-dc-2012-schema
--use-ntvfs --base-schema=2012
33 rm -rf $PREFIX/simple-dc-2012r2-schema
34 testit
"simple-dc-2012r2-schema" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-dc-2012r2-schema
--use-ntvfs --base-schema=2012_R2
35 rm -rf $PREFIX/simple-dc-2016-schema
36 testit
"simple-dc-2016-schema" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-dc-2016-schema
--use-ntvfs --base-schema=2016
37 rm -rf $PREFIX/simple-dc-2019-schema
38 testit
"simple-dc-2019-schema" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-dc-2019-schema
--use-ntvfs --base-schema=2019
39 rm -rf $PREFIX/simple-member
40 testit
"simple-member" $PYTHON $BINDIR/samba-tool domain provision
--server-role="member" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-member
--use-ntvfs
41 rm -rf $PREFIX/simple-standalone
42 testit
"simple-standalone" $PYTHON $BINDIR/samba-tool domain provision
--server-role="standalone" --domain=FOO
--realm=foo.example.com
--targetdir=$PREFIX/simple-standalone
--use-ntvfs
43 rm -rf $PREFIX/blank-dc
44 testit
"blank-dc" $PYTHON $BINDIR/samba-tool domain provision
--server-role="dc" --domain=FOO
--realm=foo.example.com
--domain-sid=S-1-5-21-4177067393-1453636373-93818738
--targetdir=$PREFIX/blank-dc
--blank --use-ntvfs
48 $PYTHON $BINDIR/samba-tool domain provision
--domain=FOO
--realm=foo.example.com
--targetdir="$PREFIX/simple-default" --use-ntvfs
51 testit
"reprovision" reprovision
62 if [ -x "$BINDIR/ldbsearch" ]; then
63 ldbsearch
="$BINDIR/ldbsearch"
66 base
=$
($ldbsearch -H $PREFIX/$1/private
/sam.ldb
--scope=base dn
)
67 dom
=$
(echo "$base" |
grep "dn: " | cut
-d " " -f 2)
69 if [ -z "$dom" ]; then
70 echo "Unexpected ldbsearch output: $base"
73 version
=$
($ldbsearch -H $PREFIX/$1/private
/sam.ldb
--scope=base \
74 "objectVersion" -b "CN=SCHEMA,CN=CONFIGURATION,$dom")
75 version_num
=$
(echo "$version" |
grep "objectVersion: " | cut
-d " " -f 2)
77 if [ "$version_num" -eq "$2" ]; then
81 echo "Fail: schema version $version_num != $2"
85 tname
="schema version"
86 testit
"$tname simple-default" check_baseschema simple-default
$V_2019
87 testit
"$tname simple-dc" check_baseschema simple-dc
$V_2019
88 testit
"$tname simple-member" check_baseschema simple-member
$V_2019
89 testit
"$tname simple-standalone" check_baseschema simple-standalone
$V_2019
90 testit
"$tname simple-dc-2008r2-schema" check_baseschema simple-dc-2008r2-schema
$V_2008_R2
91 testit
"$tname simple-dc-2012-schema" check_baseschema simple-dc-2012-schema
$V_2012
92 testit
"$tname simple-dc-2012r2-schema" check_baseschema simple-dc-2012r2-schema
$V_2012_R2
93 testit
"$tname simple-dc-2016-schema" check_baseschema simple-dc-2016-schema
$V_2016
94 testit
"$tname simple-dc-2019-schema" check_baseschema simple-dc-2019-schema
$V_2019
96 rm -rf $PREFIX/simple-default
97 rm -rf $PREFIX/simple-dc
98 rm -rf $PREFIX/blank-dc
99 rm -rf $PREFIX/simple-member
100 rm -rf $PREFIX/simple-standalone
101 rm -rf $PREFIX/partitions-only-dc
102 rm -rf $PREFIX/simple-dc-2008r2-schema
103 rm -rf $PREFIX/simple-dc-2012-schema
104 rm -rf $PREFIX/simple-dc-2012r2-schema
105 rm -rf $PREFIX/simple-dc-2016-schema
106 rm -rf $PREFIX/simple-dc-2019-schema