Executable LSC Plugin

This plugin enables any sysadmin to use LSC on a custom source or destination without writing Java code, only by wrapping each method through a script command.

Scripts must return on the standard output the attended content. Error stream is reserved for messages that must be handle like error message. A non null return code indicates that the script encountered an error.

The design of a source connector only requires two scripts :

  • the LIST script which provides the entries DN list
  • the GET script which returns an full entry based on its DN

The design of a destination connector requires 4 more scripts :

  • the ADD script which add a new entry (add operation)
  • the UPDATE script which update an existing entry (modify operation)
  • the REMOVE script which delete an existing entry (delete operation)
  • the RENAME script which change the DN of an existing entry (modrdn operation)

ExecutableLdifService and JndiExecutableLdifService

These two services provides the same way of handling data updates, but JndiExecutableLdifService look for the data exactly in the same way that the SimpleJndiDstService does, where as ExecutableLdifService look it through both listScript and getScript. All the executable use streams to provide data :

  • input stream is used to get data from LSC
  • output stream is used to provide data to LSC
  • error stream is used to provide log messages to LSC. If log messages are prefixed with “DEBUG: ”, “INFO: ”, “WARN: ” or “ERROR: ”, they will be written to the corresponding log level. If not specified, messages will be written to WARN level.

Executables must return their status through exit code :

  • if 0 is returned, this means that the script has succeeded
  • if a non zero exit code, this means that the script has failed.

To configure these scripts, you can use :

  • lsc>tasks>TASKNAME>[src|dst]Service>vars>*

When these variables are set in the lsc.xml configuration file, the following executables are launched with these variables as environment.

  • lsc>tasks>TASKNAME>[src|dst]>listScript

This executable does not take neither parameter nor data on the input stream. It is in charge of returning dn and pivot attributes/values as LDIF entries. Entries will be separated by empty new line.

  • lsc>tasks>TASKNAME[src|dst]Service>getScript

This executable will get the dn as the first parameter and will read other pivot attributes on the input stream. It will return a complete LDIF entry on stdout and log messages on stderr.

  • lsc>tasks>TASKNAME>[src|dst]Service>addScript
  • lsc>tasks>TASKNAME>[src|dst]Service>updateScript
  • lsc>tasks>TASKNAME>[src|dst]Service>renameScript
  • lsc>tasks>TASKNAME>[src|dst]Service>deleteScript

These executables will get data to update as LDIF modification items It will return a complete LDIF entry on stdout, log messages on stderr and a exit code for its status.