568f4a9 Ticket 47721 - Schema Replication Issue

Authored and Committed by tbordaz 9 years ago
    Ticket 47721 - Schema Replication Issue
    
    Bug Description:
    	During a replication session, a supplier may send its schema in order to overwrite a consumer schema.
    	Since https://fedorahosted.org/389/ticket/47490, a replica acting as a consumer rejects the schema
    	if it evaluates that its own schema is a superset of the received schema. Also with 47490, a replica
    	acting as a supplier will not send its schema if it evaluates that the consumer schema is a superset
    	of its own schema.
    	This creates an issue if the schema on both side contains definitions that the other side ignore, or
    	that extend the other side definition. In that case each side will keep its own schema.
    
    Fix Description:
    	http://directory.fedoraproject.org/wiki/Replication_of_custom_schema_(ticket_47721)
    	When acting as a consumer, it may receive a schema during a replication session.
    	It then evaluates each definition (objectclasses/attritetypes) and if a definition
    	is new or extend a current definition, then it add the definitions in its schema (in 99user.ldif)
    
    	When acting as a supplier, it looks up the consumer schema. Whether it decides to send
    	its own schema or not, it first evaluates each definition (objectclasses/attritetypes) and
    	if a definition is new or extend a current definition, then it add the definitions in its schema (in 99user.ldif)
    
    https://fedorahosted.org/389/ticket/47721
    
    Reviewed by: Rich Megginson (Big thanks Rich for the review)
    
    Platforms tested:
    	for 389-DS CI tests: F17, F19 (jenkins)
    	for Dogtag: manual test case master/clone - F19 (10.0.7) / F20 (10.1.1)
    	for IPA: F20 3.3.5 manual test case and unit tests
    
    Flag Day: no
    
        
file modified
+825 -152