From b855df254de40d9de0b7f9042564f6d521ab1c5d Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 25 Jan 2013 09:36:47 +0100 Subject: [PATCH] provision: setup names.dns_backend If we have a DomainDnsZone partition: - we use BIND9_DLZ as backend if a dns- account is available - otherwise, we use SAMBA_INTERNAL else: - we use BIND9_FLATFILE if a dns or dns- account is available - otherwise, we use NONE Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett --- .../scripting/python/samba/provision/__init__.py | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source4/scripting/python/samba/provision/__init__.py b/source4/scripting/python/samba/provision/__init__.py index 8f4928ce2b1..507582bad59 100644 --- a/source4/scripting/python/samba/provision/__init__.py +++ b/source4/scripting/python/samba/provision/__init__.py @@ -291,6 +291,32 @@ def find_provision_key_parameters(samdb, secretsdb, idmapdb, paths, smbconf, else: names.root_gid = pwd.getpwuid(int(res9[0]["xidNumber"][0])).pw_gid + res10 = samdb.search(expression="(samaccountname=dns)", + scope=ldb.SCOPE_SUBTREE, attrs=["dn"], + controls=["search_options:1:2"]) + if (len(res10) > 0): + has_legacy_dns_account = True + else: + has_legacy_dns_account = False + + res11 = samdb.search(expression="(samaccountname=dns-%s)" % names.netbiosname, + scope=ldb.SCOPE_SUBTREE, attrs=["dn"], + controls=["search_options:1:2"]) + if (len(res11) > 0): + has_dns_account = True + else: + has_dns_account = False + + if names.dnsdomaindn is not None: + if has_dns_account: + names.dns_backend = 'BIND9_DLZ' + else: + names.dns_backend = 'SAMBA_INTERNAL' + elif has_dns_account or has_legacy_dns_account: + names.dns_backend = 'BIND9_FLATFILE' + else: + names.dns_backend = 'NONE' + dns_admins_sid = get_dnsadmins_sid(samdb, names.domaindn) names.name_map['DnsAdmins'] = str(dns_admins_sid) -- 2.11.4.GIT