From f299fe565ae5dba76ffc708da9a47405d61b0af9 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 10 Feb 2010 13:56:24 +1100 Subject: [PATCH] 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 --- source4/scripting/python/samba/provision.py | 12 ++++++++++-- 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 58c172fc0fd..b02d94d2270 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 22d062d6fdd..6b2c2278acc 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" } -- 2.45.1