Hallo,
Wir haben einen einfachen Listener. Der schreibt alles in ein File und ein Subprozess liest dieses und setzt es um.
#!/usr/bin/python2.6
__package__='' # workaround for PEP 366
import listener
import os, binascii, subprocess
name = '7i'
description = 'update 7iApps on changes in UCS-LDAP'
filter = '(objectClass=iiiiiii4ucs-user)'
attributes = ['uid','uidNumber','cn','iiiiiii4ucs-user-type','iiiiiii4ucs-user-app-dokuwiki','iiiiiii4ucs-user-app-phpmyfaq','iiiiiii4ucs-user-app-redmine','iiiiiii4ucs-user-app-svn','iiiiiii4ucs-user-app-trac','iiiiiii4ucs-user-app-wordpress','iiiiiii4ucs-user-site-home','iiiiiii4ucs-user-site-test','iiiiiii4ucs-user-site-sites']
def handler(dn, new, old):
listener.setuid(0)
try:
str = ''
if new:
for s in new:
for val in new[s]:
str += 'new:'+s+'='+val+'\n'
if old:
for s in old:
for val in old[s]:
str += 'old:'+s+'='+val+'\n'
filename = '/tmp/7i4ucs-'+binascii.b2a_hex(os.urandom(15))
f = open(filename,'w')
f.write(str)
f.close()
os.chmod(filename,0666)
subprocess.call(['/usr/bin/7i4ucs','Listener',filename])
# listener.run('/usr/bin/7i4ucs',['7i4ucs','Listener',filename],uid=0)
finally:
listener.unsetuid()
-
Der Listener funktioniert aus meiner Sicht oft nicht. Wie kann ich überprüfen, wo es hängen bleibt? /var/log/univention/ hilft dabei oft nicht weiter.
-
Wird der Listener nur aufgerufen, wenn ein LDAP-Objekt geändert hat? Ist es auch möglich den Listener anzustossen, wen der Admin in der UMC das User-Formular ohne Änderungen nur abschickt?
Besten Dank,
Michael Hofmann