1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-05 04:59:08 +03:00

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 <amitay@gmail.com>
This commit is contained in:
Andrew Tridgell
2011-07-13 10:12:48 +10:00
parent 5064d73672
commit 303b57c295

View File

@ -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