diff options
author | Matthieu Patou <mat@matws.net> | 2012-10-23 22:09:20 -0700 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2013-01-21 22:31:19 +0100 |
commit | 3b7977419726a8630de828b634d669625ee358dd (patch) | |
tree | 5ea41b0b8df9ef182b61dbeed484acee5a90e017 | |
parent | abc0030f780b775bf7656b572ee754ebd8079b5d (diff) | |
download | samba-3b7977419726a8630de828b634d669625ee358dd.tar.gz samba-3b7977419726a8630de828b634d669625ee358dd.tar.bz2 samba-3b7977419726a8630de828b634d669625ee358dd.zip |
dbcheck: look in hasMasterNCs as well for determining the instance type of a NC
Forest of level 2000 don't hve the msDS-hasMasterNCs parameter
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | source4/scripting/python/samba/dbchecker.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/dbchecker.py b/source4/scripting/python/samba/dbchecker.py index 91ae0b68ea..bc68457a05 100644 --- a/source4/scripting/python/samba/dbchecker.py +++ b/source4/scripting/python/samba/dbchecker.py @@ -59,11 +59,19 @@ class dbcheck(object): self.rid_dn = ldb.Dn(samdb, "CN=RID Manager$,CN=System," + samdb.domain_dn()) self.ntds_dsa = samdb.get_dsServiceName() - res = self.samdb.search(base=self.ntds_dsa, scope=ldb.SCOPE_BASE, attrs=['msDS-hasMasterNCs']) + res = self.samdb.search(base=self.ntds_dsa, scope=ldb.SCOPE_BASE, attrs=['msDS-hasMasterNCs', 'hasMasterNCs']) if "msDS-hasMasterNCs" in res[0]: self.write_ncs = res[0]["msDS-hasMasterNCs"] else: - self.write_ncs = None + # If the Forest Level is less than 2003 then there is no + # msDS-hasMasterNCs, so we fall back to hasMasterNCs + # no need to merge as all the NCs that are in hasMasterNCs must + # also be in msDS-hasMasterNCs (but not the opposite) + if "hasMasterNCs" in res[0]: + self.write_ncs = res[0]["hasMasterNCs"] + else: + self.write_ncs = None + def check_database(self, DN=None, scope=ldb.SCOPE_SUBTREE, controls=[], attrs=['*']): '''perform a database check, returning the number of errors found''' |