From 303b57c295c4712c0bd606e893e39dff1cbe3e65 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 13 Jul 2011 10:12:48 +1000 Subject: dbcheck: only fix replPropertyMetaData if we included it in the search if we didn't find a replPropertyMetaData attribute at all then don't try fixing it Pair-Programmed-With: Amitay Isaacs --- source4/scripting/python/samba/dbchecker.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'source4') diff --git a/source4/scripting/python/samba/dbchecker.py b/source4/scripting/python/samba/dbchecker.py index a352c509fd..8de1d26775 100644 --- a/source4/scripting/python/samba/dbchecker.py +++ b/source4/scripting/python/samba/dbchecker.py @@ -417,6 +417,7 @@ class dbcheck(object): error_count = 0 list_attrs_from_md = [] list_attrs_seen = [] + got_repl_property_meta_data = False for attrname in obj: if attrname == 'dn': @@ -424,6 +425,7 @@ class dbcheck(object): if str(attrname).lower() == 'replpropertymetadata': list_attrs_from_md = self.process_metadata(obj[attrname]) + got_repl_property_meta_data = True continue @@ -463,17 +465,18 @@ class dbcheck(object): break show_dn = True - for att in list_attrs_seen: - if not att in list_attrs_from_md: - if show_dn: - self.report("On object %s" % dn) - show_dn = False - error_count += 1 - self.report("ERROR: Attribute %s not present in replication metadata" % att) - if not self.confirm_all("Fix missing replPropertyMetaData element '%s'" % att, 'fix_all_metadata'): - self.report("Not fixing missing replPropertyMetaData element '%s'" % att) - continue - self.fix_metadata(dn, att) + if got_repl_property_meta_data: + for att in list_attrs_seen: + if not att in list_attrs_from_md: + if show_dn: + self.report("On object %s" % dn) + show_dn = False + error_count += 1 + self.report("ERROR: Attribute %s not present in replication metadata" % att) + if not self.confirm_all("Fix missing replPropertyMetaData element '%s'" % att, 'fix_all_metadata'): + self.report("Not fixing missing replPropertyMetaData element '%s'" % att) + continue + self.fix_metadata(dn, att) return error_count -- cgit