From b114043c4641f4559e3b02a0b094153d83bb328e Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Wed, 14 Mar 2012 19:34:54 +1100 Subject: [PATCH] s4-upgradedns: Add DNS partitions in msDS-hasMasterNCs in NTDS settings Autobuild-User: Amitay Isaacs Autobuild-Date: Wed Mar 21 03:16:22 CET 2012 on sn-devel-104 --- source4/scripting/bin/samba_upgradedns | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/source4/scripting/bin/samba_upgradedns b/source4/scripting/bin/samba_upgradedns index 5d294a14c3b..1a42e0c8cef 100755 --- a/source4/scripting/bin/samba_upgradedns +++ b/source4/scripting/bin/samba_upgradedns @@ -367,6 +367,46 @@ if __name__ == '__main__': else: logger.info("DNS partitions already exist") + # Mark that we are hosting DNS partitions + try: + dns_nclist = [ 'DC=DomainDnsZones,%s' % domaindn, + 'DC=ForestDnsZones,%s' % forestdn ] + + msgs = ldbs.sam.search(base=names.serverdn, scope=ldb.SCOPE_DEFAULT, + expression='(objectclass=nTDSDSa)', + attrs=['hasPartialReplicaNCs', + 'msDS-hasMasterNCs']) + msg = msgs[0] + + master_nclist = [] + for nc in msg["msDS-hasMasterNCs"]: + master_nclist.append(nc) + + partial_nclist = [] + for nc in msg["hasPartialReplicaNCs"]: + partial_nclist.append(nc) + + modified = False + for nc in dns_nclist: + if nc not in master_nclist: + master_nclist.append(nc) + modified = True + if nc in partial_nclist: + partial_nclist.remove(nc) + modified = True + + if modified: + logger.debug("Updating msDS-hasMasterNCs and hasPartialReplicaNCs attributes") + msg["msDS-hasMasterNCs"] = ldb.MessageElement(master_nclist, + ldb.FLAG_MOD_REPLACE, + "msDS-hasMasterNCs") + msg["hasPartialReplicaNCs"] = ldb.MessageElement(partial_nclist, + ldb.FLAG_MOD_REPLACE, + "hasPartialReplicaNCs") + ldbs.sam.modify(msg) + except Exception: + raise + # Check if dns-HOSTNAME account exists and create it if required try: dn = 'samAccountName=dns-%s,CN=Principals' % hostname -- 2.34.1