Issue #18 has been updated by Rémy-Christophe Schermesser.

Status changed from New to Feedback
% Done changed from 0 to 10

Hi,

I have tried to make a tree in yaml for the new configuration. I took all the 
configuration pages I found, and put an example in my yaml file.

So what do you think of it ? 

I changed the some things, to be more flexible and support multi-input and 
output : check it here : 
http://pylonshq.com/pasties/9ce57432be91cd02ac332c4d1e2b8e8f

Or here, but without syntax coloration :

<pre code="ruby">
connections:    #Defintion of the connections  
    ldap:   #name of this source
        type: ldap  #type of the source
        configuration:   #ldap specific configuration
            derefAliases: never #optionnal, JNDI specific => remove ?
            factory: com.sun.jndi.ldap.LdapCtxFactory 
#java.naming.factory.initial, optionnal, JNDI specific => remove ?
            version: 3  #optionnal
            referral: ignore         #java.naming.referral, optionnal
            authentification: simple #java.naming.security.authentication, 
optionnal
            pageSize: 10
            tls: true
        url: ldap://localhost:1390/dc=AD,dc=net
        username: cn=manager,dc=AD,dc=net #java.naming.security.principal
        password: secret    #java.naming.security.credentials
        
    database:
        type: database
        url: jdbc:hsqldb:file:hsqldb/lsc
        username: elilly
        password:
        configuration:
            driver: org.hsqldb.blabla
    
    #may be a part of this is the configuration of a CSV output, maybe not      
           
    csv: 
        file: /tmp/log.csv
        operations: create, delete
        attrbiutes: cn;dn #was attrs
        separator: ;    #optionnal
        append: true    #optionnal
                
    ldif:
        file: /tmp/log.csv
        operations: create, delete
        append: false   #optionnal

tasks:  #definition of the tasks              
    task1:  #name of the task
        sources:    #configuration of the sources
            ldap:   #name of the connection
                service: org.lsc.jndi.SimpleJndiSrcService
                base dn: ou=group
                pivot attributes: dn, cn #old pivotAttrs
                fetched attributes: uid, mail, cn   #old attributes
                dn: >
                     'cn=' + srcBean.getAttributeValueById('uid') 
                filters:
                    global: (&(objectClass=inetOrgPerson)(uid=*))   #old 
filterAll           
                    identity: (&(objectClass=inetOrgPerson)(uid={uid})) #old 
filterId
        destinations:   #configuration of the destinations 
            csv:
            ldap:
                service: SimpleJndiDstService #we should only specify a class 
name and LSC will look in the correct packages, or if failed, try to find the 
classname
        conditions:
            create: 1 > 0
            update: >
                src.getAttr('updateTimeStamp') > dst.getAttr('updateTimeStamp') 
            #we rename srcBean and dstBean by src and dst
            delete: false
            modrdn: false
        action: (force|keep|merge)  #was K, F, M
        attributes:
            cn: #the name of the attribute
                create value: "something"
                default value: "nothing"
                force value: "blabla"
connections:    #Defintion of the connections  
    ldap:   #name of this source
        type: ldap  #type of the source
        configuration:   #ldap specific configuration
            derefAliases: never #optionnal, JNDI specific => remove ?
            factory: com.sun.jndi.ldap.LdapCtxFactory 
#java.naming.factory.initial, optionnal, JNDI specific => remove ?
            version: 3  #optionnal
            referral: ignore         #java.naming.referral, optionnal
            authentification: simple #java.naming.security.authentication, 
optionnal
            pageSize: 10
            tls: true
        url: ldap://localhost:1390/dc=AD,dc=net
        username: cn=manager,dc=AD,dc=net #java.naming.security.principal
        password: secret    #java.naming.security.credentials
        
    database:
        type: database
        url: jdbc:hsqldb:file:hsqldb/lsc
        username: elilly
        password:
        configuration:
            driver: org.hsqldb.blabla
    
    #may be a part of this is the configuration of a CSV output, maybe not      
           
    csv: 
        file: /tmp/log.csv
        operations: create, delete
        attrbiutes: cn;dn #was attrs
        separator: ;    #optionnal
        append: true    #optionnal
                
    ldif:
        file: /tmp/log.csv
        operations: create, delete
        append: false   #optionnal

tasks:  #definition of the tasks              
    task1:  #name of the task
        sources:    #configuration of the sources
            ldap:   #name of the connection
                service: org.lsc.jndi.SimpleJndiSrcService
                base dn: ou=group
                pivot attributes: dn, cn #old pivotAttrs
                fetched attributes: uid, mail, cn   #old attributes
                dn: >
                     'cn=' + srcBean.getAttributeValueById('uid') 
                filters:
                    global: (&(objectClass=inetOrgPerson)(uid=*))   #old 
filterAll           
                    identity: (&(objectClass=inetOrgPerson)(uid={uid})) #old 
filterId
        destinations:   #configuration of the destinations 
            csv:
            ldap:
                service: SimpleJndiDstService #we should only specify a class 
name and LSC will look in the correct packages, or if failed, try to find the 
classname
        conditions:
            create: 1 > 0
            update: >
                src.getAttr('updateTimeStamp') > dst.getAttr('updateTimeStamp') 
            #we rename srcBean and dstBean by src and dst
            delete: false
            modrdn: false
        action: (force|keep|merge)  #was K, F, M
        attributes:
            cn: #the name of the attribute
                create value: "something"
                default value: "nothing"
                force value: "blabla"
</pre>                  
----------------------------------------
Feature #18: Change the configuration format to something more adaptable
http://tools.lsc-project.org/issues/show/18

Author: Jonathan Clarke
Status: Feedback
Priority: Normal
Assigned to: 
Category: Core
Target version: Sometime in the future


XML?
YAML?

Think about it being parsed/written by a web interface.

WIP : 

h2. XML :
 
+ Very easy to read/write for a computer
+ With CDATA we can write multiple lines JS
- Very hard to read/write for a human
 
h2. YAML : 
 
+ Easy to read/write for a human/computer
+ Can write multiple lines JS
 
h2. Properties :
 
+ Easy to read/write for a human/computer
+ Can reference other properties
- Can not write multiple lines JS
 
h2. NeXt/ Open Step configuration files 
 
See : 
http://commons.apache.org/configuration/apidocs/org/apache/commons/configuration/plist/PropertyListConfiguration.html
 
+ Easy to read/write for a human/computer
- Can not write multiple lines JS
 




-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev

Reply via email to