diff options
author | Amitay Isaacs <amitay@gmail.com> | 2011-09-12 13:14:42 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-09-12 20:42:18 +1000 |
commit | c7c29a3523a721737aa647b2e40e23a0775b3958 (patch) | |
tree | c8045ebc63a913c136aa058d6dad30d06abd921e /source4/scripting/python | |
parent | c6a40942b2c5b2f330b73a5513927ffe9ed1af20 (diff) | |
download | samba-c7c29a3523a721737aa647b2e40e23a0775b3958.tar.gz samba-c7c29a3523a721737aa647b2e40e23a0775b3958.tar.bz2 samba-c7c29a3523a721737aa647b2e40e23a0775b3958.zip |
s4-provision: Create private dir for dns in a separate function
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/scripting/python')
-rw-r--r-- | source4/scripting/python/samba/provision/__init__.py | 41 |
1 files changed, 29 insertions, 12 deletions
diff --git a/source4/scripting/python/samba/provision/__init__.py b/source4/scripting/python/samba/provision/__init__.py index 47b7e63619..9f49f44952 100644 --- a/source4/scripting/python/samba/provision/__init__.py +++ b/source4/scripting/python/samba/provision/__init__.py @@ -1795,6 +1795,8 @@ def provision(logger, session_info, credentials, smbconf=None, attribute="objectGUID") assert isinstance(domainguid, str) + create_dns_dir(logger, paths) + # Only make a zone file on the first DC, it should be # replicated with DNS replication if dns_backend == "BIND9": @@ -1945,6 +1947,32 @@ def create_phpldapadmin_config(path, ldapi_uri): {"S4_LDAPI_URI": ldapi_uri}) +def create_dns_dir(logger, paths): + """Write out a DNS zone file, from the info in the current database. + + :param logger: Logger object + :param paths: paths object + """ + dns_dir = os.path.dirname(paths.dns) + + try: + shutil.rmtree(dns_dir, True) + except OSError: + pass + + os.mkdir(dns_dir, 0770) + + if paths.bind_gid is not None: + try: + os.chown(dns_dir, -1, paths.bind_gid) + # chmod needed to cope with umask + os.chmod(dns_dir, 0770) + except OSError: + if not os.environ.has_key('SAMBA_SELFTEST'): + logger.error("Failed to chown %s to bind gid %u" % ( + dns_dir, paths.bind_gid)) + + def create_zone_file(lp, logger, paths, targetdir, dnsdomain, hostip, hostip6, hostname, realm, domainguid, ntdsguid): @@ -1980,15 +2008,6 @@ def create_zone_file(lp, logger, paths, targetdir, dnsdomain, hostip_host_line = "" gc_msdcs_ip_line = "" - dns_dir = os.path.dirname(paths.dns) - - try: - shutil.rmtree(dns_dir, True) - except OSError: - pass - - os.mkdir(dns_dir, 0775) - # we need to freeze the zone while we update the contents if targetdir is None: rndc = ' '.join(lp.get("rndc command")) @@ -2012,15 +2031,13 @@ def create_zone_file(lp, logger, paths, targetdir, dnsdomain, if paths.bind_gid is not None: try: - os.chown(dns_dir, -1, paths.bind_gid) os.chown(paths.dns, -1, paths.bind_gid) # chmod needed to cope with umask - os.chmod(dns_dir, 0775) os.chmod(paths.dns, 0664) except OSError: if not os.environ.has_key('SAMBA_SELFTEST'): logger.error("Failed to chown %s to bind gid %u" % ( - dns_dir, paths.bind_gid)) + paths.dns, paths.bind_gid)) if targetdir is None: os.system(rndc + " unfreeze " + lp.get("realm")) |