Univention Bugzilla – Bug 23324
"Entwicklung von Univention Directory Listener-Modulen" should document modrdn
Last modified: 2012-07-18 17:47:12 CEST
The modrdn/handler(dn, new, old, command) API for Listener modules should be documented.
Wenn man auf Modulebene modrdn = '1' setzt, dann lautet die neue Definition von handler so: def handler(dn, new, old, command): Der Wert von command spiegelt die Aktion die gemacht wurde wieder: 'm' → Objekt normal modifiziert ("new and old") 'd' → Objekt gelöscht ("not new and old") 'r'+'a' → Objekt umbenannt (erst wird handler mit command='r' und "not new and old" aufgerufen, dann wird Handler mit command='a' und "new and not old" aufgerufen.
setdata sollte auch dokumentiert werden.
*** Bug 25642 has been marked as a duplicate of this bug. ***
(In reply to comment #1) > Wenn man auf Modulebene > modrdn = '1' Das muß unbedingt eine Zeichenkette sein (Bug #27376). Inhalt ist egal, die Existenz reicht. > setzt, dann lautet die neue Definition von handler so: > def handler(dn, new, old, command): > > Der Wert von command spiegelt die Aktion die gemacht wurde wieder: > 'm' → Objekt normal modifiziert ("new and old") > 'd' → Objekt gelöscht ("not new and old") > 'r'+'a' → Objekt umbenannt (erst wird handler mit command='r' und "not new and > old" aufgerufen, dann wird Handler mit command='a' und "new and not old" > aufgerufen. 'd' = "changetype: delete" 'm' = "changetype: modify" 'r' = "changetype: modrdn" 'a' = "changetype: add" → Objekt wurde hinzugefügt ("new and not old") 'z' → "else"-Fall bzg. changetype <univention-directory-notifier/src/notify.c:723> (In reply to comment #2) > setdata sollte auch dokumentiert werden. setdata(key, value) wird beim Starten des Listeners nach dem importieren der Module mehrmals (4×) aufgerufen, um einige Kommandozeilenparameter an die Module durchzureichen: key="basedn", value="Basis-DN, «-b»" key="binddn", value="Simple-Bind-DN, «-D»" key="bindpw", value="Bind-Passwort, «-y»" key="ldapserver", value="Festgelegter bzw. automatisch gewählter LDAP-Server, «-h» oder «ldap/master» auf DC_Backup oder «ldap/backup» auf DC_*"
Weiter im Kleingedruckten: (In reply to comment #4) > (In reply to comment #1) > > setzt, dann lautet die neue Definition von handler so: > > def handler(dn, new, old, command): > > > > Der Wert von command spiegelt die Aktion die gemacht wurde wieder: > > 'm' → Objekt normal modifiziert ("new and old") > > 'd' → Objekt gelöscht ("not new and old") > > 'r'+'a' → Objekt umbenannt (erst wird handler mit command='r' und "not new and > > old" aufgerufen, dann wird Handler mit command='a' und "new and not old" > > aufgerufen. > > 'd' = "changetype: delete" > 'm' = "changetype: modify" > 'r' = "changetype: modrdn" > 'a' = "changetype: add" → Objekt wurde hinzugefügt ("new and not old") > 'z' → "else"-Fall bzg. changetype > <univention-directory-notifier/src/notify.c:723> 'n' = Schema-Änderung (dn="cn=Subschema") <src/change.c:121>, <src/change.c:364> 'n' = Bei der Initialisierung eines Moduls für alle zutreffenden Objekte ??? <src/change.c:196> Der Listener erhält das Kommando von Notifier, der sie wiederum aus /var/lib/univention-ldap/listener/listener liest. Diese Datei wird je nach Systemrolle unterschiedlich befüllt: - DC_Master: hier schreibt das tanslog-Overlay im slapd die Änderungen <openldap/**/10_translog_overlay.patch#servers/slapd/overlays/translog.c> - DC_Backup: hier leitet der Listener die Daten weiter <univention-directory-listener/src/transfile.c> - DC_Slave: wie bei Backup ???
Im Rahmen von Bug #26725 in <http://wiki.univention.de/index.php?title=Entwicklung_von_Univention_Directory_Listener-Modulen> integriert. Ich habe absichtlich nicht alle Werte bzgl. command aufgeführt, da das eher verwirrt.