X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=blobdiff_plain;f=source4%2Fscripting%2Fpython%2Fsamba%2Fprovision.py;h=1e1bf480f53259e9273a4c8cc1d8a51cbfd4c9cd;hp=b127d6cc549d865c539867d92a511ee68708f5d1;hb=986627cd67f4ff48152fa5147977813e2b190a93;hpb=fd2556317f22ee02b341ca7ebbd02d7197fb1e4d diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index b127d6cc549..1e1bf480f53 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -1375,7 +1375,7 @@ def provision(setup_dir, message, session_info, # Only make a zone file on the first DC, it should be replicated # with DNS replication - create_zone_file(message, paths, setup_path, dnsdomain=names.dnsdomain, + create_zone_file(lp, message, paths, targetdir, setup_path, dnsdomain=names.dnsdomain, hostip=hostip, hostip6=hostip6, hostname=names.hostname, realm=names.realm, @@ -1486,7 +1486,7 @@ def create_phpldapadmin_config(path, setup_path, ldapi_uri): {"S4_LDAPI_URI": ldapi_uri}) -def create_zone_file(message, paths, setup_path, dnsdomain, +def create_zone_file(lp, message, paths, targetdir, setup_path, dnsdomain, hostip, hostip6, hostname, realm, domainguid, ntdsguid): """Write out a DNS zone file, from the info in the current database. @@ -1527,6 +1527,11 @@ def create_zone_file(message, paths, setup_path, dnsdomain, os.mkdir(dns_dir, 0775) + # we need to freeze the zone while we update the contents + if targetdir is None: + rndc = lp.get("rndc command") + os.system(rndc + " freeze " + lp.get("realm")) + setup_file(setup_path("provision.zone"), paths.dns, { "HOSTNAME": hostname, "DNSDOMAIN": dnsdomain, @@ -1551,6 +1556,9 @@ def create_zone_file(message, paths, setup_path, dnsdomain, except OSError: message("Failed to chown %s to bind gid %u" % (dns_dir, paths.bind_gid)) + if targetdir is None: + os.system(rndc + " unfreeze " + lp.get("realm")) + def create_named_conf(paths, setup_path, realm, dnsdomain, private_dir):