diff options
author | Andrew Bartlett <abartlet@samba.org> | 2010-02-10 13:56:24 +1100 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2010-02-10 16:18:21 +1100 |
commit | f299fe565ae5dba76ffc708da9a47405d61b0af9 (patch) | |
tree | efb288c761ffa7efc1f2103197b54f3133977375 | |
parent | f8778ba8f4c234648230dba0249cd189fcd0d4d1 (diff) | |
download | samba-f299fe565ae5dba76ffc708da9a47405d61b0af9.tar.gz samba-f299fe565ae5dba76ffc708da9a47405d61b0af9.tar.bz2 samba-f299fe565ae5dba76ffc708da9a47405d61b0af9.zip |
s4:provision Just 'do the right thing' with empty smb.conf files
For some reason, JHT keeps on creating an empty smb.conf file,
expecting it to be the same as a non-existant one. It is easier to
just realise what he meant.
Andrew Bartlett
-rw-r--r-- | source4/scripting/python/samba/provision.py | 12 | ||||
-rwxr-xr-x | source4/setup/tests/blackbox_provision.sh | 16 |
2 files changed, 26 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 58c172fc0f..b02d94d227 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -1172,9 +1172,17 @@ def provision(setup_dir, message, session_info, smbconf = param.default_path() # only install a new smb.conf if there isn't one there already - if not os.path.exists(smbconf): + if os.path.exists(smbconf): + # JHT calls me up often enough with weird errors, because he + # uses an empty smb.conf. --abartlet + data = open(smbconf, 'r').read() + data = data.lstrip() + if data is None or data == "": + make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole, + targetdir, sid_generator, useeadb) + else: make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole, - targetdir, sid_generator,useeadb) + targetdir, sid_generator, useeadb) lp = param.LoadParm() lp.load(smbconf) diff --git a/source4/setup/tests/blackbox_provision.sh b/source4/setup/tests/blackbox_provision.sh index 22d062d6fd..6b2c2278ac 100755 --- a/source4/setup/tests/blackbox_provision.sh +++ b/source4/setup/tests/blackbox_provision.sh @@ -12,15 +12,31 @@ shift 1 . `dirname $0`/../../../testprogs/blackbox/subunit.sh +#Prepare an empty smb.conf to ensure it is overwritten +rm -rf $PREFIX/simple-default +mkdir -p $PREFIX/simple-default/etc +touch $PREFIX/simple-default/etc/smb.conf testit "simple-default" $PYTHON ./setup/provision --domain=FOO --realm=foo.example.com --targetdir=$PREFIX/simple-default +#And try with just whitespace +rm -rf $PREFIX/simple-dc +mkdir -p $PREFIX/simple-dc/etc +echo " " > $PREFIX/simple-dc/etc/smb.conf testit "simple-dc" $PYTHON ./setup/provision --server-role="dc" --domain=FOO --realm=foo.example.com --domain-sid=S-1-5-21-4177067393-1453636373-93818738 --targetdir=$PREFIX/simple-dc +#The rest of these tests are with no smb.conf file present + +rm -rf $PREFIX/simple-dc testit "simple-dc-guids" $PYTHON ./setup/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 +rm -rf $PREFIX/simple-member testit "simple-member" $PYTHON ./setup/provision --server-role="member" --domain=FOO --realm=foo.example.com --targetdir=$PREFIX/simple-member +rm -rf $PREFIX/simple-standalone testit "simple-standalone" $PYTHON ./setup/provision --server-role="standalone" --domain=FOO --realm=foo.example.com --targetdir=$PREFIX/simple-standalone +rm -rf $PREFIX/blank-dc testit "blank-dc" $PYTHON ./setup/provision --server-role="dc" --domain=FOO --realm=foo.example.com --domain-sid=S-1-5-21-4177067393-1453636373-93818738 --targetdir=$PREFIX/blank-dc --blank +rm -rf $PREFIX/partitions-only-dc testit "partitions-only-dc" $PYTHON ./setup/provision --server-role="dc" --domain=FOO --realm=foo.example.com --domain-sid=S-1-5-21-4177067393-1453636373-93818738 --targetdir=$PREFIX/partitions-only-dc --partitions-only reprovision() { + rm -rf $PREFIX/reprovision $PYTHON ./setup/provision --domain=FOO --realm=foo.example.com --targetdir="$PREFIX/reprovision" $PYTHON ./setup/provision --domain=FOO --realm=foo.example.com --targetdir="$PREFIX/reprovision" } |