[PATCH] Schema replication

Kamen Mazdrashki kamenim at samba.org
Tue Nov 30 07:06:32 MST 2010

Hi guys,

Would you mind me pushing following branch in master:

It is an attempt to fix Schema replication issues we are having currently.
Major points are:
1) a test for runtime Schema replication - currently it tests:
    -- classSchema replication
    -- attributeSchema replication
    -- Class+Attribute with mayContain relation replication
   One nice thing about this test is that it arranges schema objects
in such a way, that
   it is not very convenient for DRS decoding function to decode
objects in just one pass
   (thus it tests also multi-pass objects decoding)
2) functions to create a working Schema cache.
   This is not a complete Schema, but just enough information so we are able
   to decode DRS data send to us on wire.
   Creating working_schema is heavily based on libnet_vampire_cb_apply_schema()
3) runtime replication is modified a little to use working_schema for DRS data
4) dsdb_syntax layer converts remote ATTIDs to local ATTIDs for Attribute OIDs.

The end result is that now  we are passing repl_schema.py test.

What I should do further is:
1) additionally extend repl_schema test so we can test all relations:
    auxilaryClass, subClassOf, mayContain, mustContain, possSuperiors
    Also a more deep hierarchy of objects through subClassOf
    (this should be handled by multi-pass objects decoding, but there
are still cases
     we don't handle)
2) Map remote-ATTID to local-ATTID in more places in dsdb_syntax layer.
    The main reason I haven't use this conversion everywhere is that I want
    to first exploit the spot where mapping is needed (i.e. extend
    test propery) and then fix the spot.
    This way to use repl_schema to test dsdb_syntax layer and vice versa - use
    dsdb_syntax flaws to make repl_schema properly :)
3) Start using working_schema in libnet_vampire_cb_apply_schema() too

Kamen Mazdrashki
Samba Team                                            http://samba.org

More information about the samba-technical mailing list