def _dummy_change(connect_spec, dn, before, after): assert before != after assert len(before) assert len(after) assert dn in db e = db[dn] assert e == before all_attrs = OrderedSet() all_attrs.update(before) all_attrs.update(after) directives = [] for attr in all_attrs: if attr not in before: assert attr in after assert len(after[attr]) directives.append(('add', attr, after[attr])) elif attr not in after: assert attr in before assert len(before[attr]) directives.append(('delete', attr, ())) else: assert len(before[attr]) assert len(after[attr]) to_del = before[attr] - after[attr] if len(to_del): directives.append(('delete', attr, to_del)) to_add = after[attr] - before[attr] if len(to_add): directives.append(('add', attr, to_add)) return _dummy_modify(connect_spec, dn, directives)
def dummy_change(self, connect_spec, dn, before, after): assert before != after assert before assert after assert dn in self.db e = self.db[dn] assert e == before all_attrs = OrderedSet() all_attrs.update(before) all_attrs.update(after) directives = [] for attr in all_attrs: if attr not in before: assert attr in after assert after[attr] directives.append(("add", attr, after[attr])) elif attr not in after: assert attr in before assert before[attr] directives.append(("delete", attr, ())) else: assert before[attr] assert after[attr] to_del = before[attr] - after[attr] if to_del: directives.append(("delete", attr, to_del)) to_add = after[attr] - before[attr] if to_add: directives.append(("add", attr, to_add)) return self.dummy_modify(connect_spec, dn, directives)