コード例 #1
0
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)
コード例 #2
0
 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)