provision: set 'binddns dir' when making new smb.conf
authorTim Beale <timbeale@catalyst.net.nz>
Mon, 25 Jun 2018 02:00:59 +0000 (14:00 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 28 Jun 2018 04:22:16 +0000 (06:22 +0200)
commit8b07ddde47432cb4637325c6606f46922b8fe3da
tree30b87c0b6aa9dbf3db2d34839e65dcf68a9f4693
parentc9cf62bd3a046fef67c1fcea6432f2ee71333876
provision: set 'binddns dir' when making new smb.conf

When creating a new smb.conf from scratch during a join/clone/etc, the
'binddns dir' setting still uses the source smb.conf/default setting,
instead of the targetdir sub-directory.

I noticed this problem when trying to create a new testenv - the
provision() was trying to create /usr/local/samba/bind-dns directory,
which would fail if samba hadn't already been installed on the host
machine.

Now that this is fixed, we also need to fix tests that were explicitly
asserting that no unexpected directories were left behind after the test
completes.

This change also breaks the upgradeprovision script. The upgrade-
provision calls newprovision() to create a reference provision in a
temporary directory. However, previously this temporary provision was
creating the bind-dns directory in the actual upgrade directory as a
side-effect, e.g. it did a provision() with
targetdir=alpha13_upgrade_full/private/referenceprovisionLBKBh2 and this
ended up creating alpha13_upgrade_full/bind-dns as a side-effect.
The provision() now creates bind-dns in the specified targetdir, but
this means check_for_DNS() fails (it tries to create bind-dns sub-
directories, but the upgrade's bind-dns doesn't exist). I've avoided
this problem by making sure bind-dns exists as part of the
check_for_DNS() processing.

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Thu Jun 28 06:22:16 CEST 2018 on sn-devel-144
python/samba/provision/__init__.py
python/samba/tests/join.py
python/samba/tests/samdb.py
source4/scripting/bin/samba_upgradeprovision
source4/torture/drs/python/samba_tool_drs.py