6. Univention Directory Listener#
Replication of the directory data within a UCS domain is provided by the Univention Directory Listener/Notifier mechanism:
The Univention Directory Listener service runs on all UCS systems.
On the Primary Directory Node (and possibly existing Backup Directory Node systems) the Univention Directory Notifier service monitors changes in the LDAP directory and makes the selected changes available to the Univention Directory Listener services on all UCS systems joined into the domain.
The active Univention Directory Listener instances in the domain connect to a Univention Directory Notifier service. If an LDAP change is performed on the Primary Directory Node (all other LDAP servers in the domain are read-only), this is registered by the Univention Directory Notifier and reported to the listener instances.
Each Univention Directory Listener instance hosts a range of Univention Directory Listener modules. These modules are shipped by the installed applications; the print server package includes, for example, listener modules which generate the CUPS configuration.
Univention Directory Listener modules can be used to communicate domain changes to services which are
not LDAP-aware. The print server CUPS is an example of this: The printer
definitions are not read from the LDAP, but instead from the file
/etc/cups/printers.conf
. Now, if a printer is saved in the printer
management of the Univention Management Console, it is stored in the LDAP directory. This change is
detected by the Univention Directory Listener module cups-printers and an entry gets added to,
modified in or deleted from /etc/cups/printers.conf
based on the
modification in the LDAP directory.
By default the Listener loads all modules from the directory
/usr/lib/univention-directory-listener/system/
. Other directories can be
specified using the option -m
when starting the
univention-directory-listener daemon.
- 6.1. Structure of Listener Modules
- 6.2. High-level Listener modules API
get_name()
name
get_description()
description
get_ldap_filter()
ldap_filter
get_attributes()
attributes
get_priority()
priority
get_listener_module_instance()
get_listener_module_class()
listener_module_class
get_active()
create()
modify()
remove()
initialize()
clean()
pre_run()
post_run()
as_root()
diff()
error_handler()
lo
po
logger
ucr
- 6.3. Low-level Listener module
- 6.4. Listener tasks and examples
- 6.5. Technical Details