Univention Bugzilla – Bug 28291
UMC-Modul Druckerverwaltung verwendet UDM-CLI
Last modified: 2013-02-25 12:20:55 CET
Das UMC-Modul für die Druckerverwaltung ermittelt aktuell eine Liste der gültigen Benutzer durch das Ausführen des UDM-CLI und dem Parsen der Ausgabe: def list_users(self,request): [...] expr = re.compile('^\s*username:\s*(.*?)\s*$') (stdout,stderr,status) = self._shell_command(['/usr/sbin/univention-directory-manager','users/user','list'],{'LANG':'C'}) [...] Es sollte geprüft werden, in wieweit usability-technisch das Auslesen aller Benutzer notwendig ist und dann auf die Python-Implementierung umgestellt werden.
*** Bug 28375 has been marked as a duplicate of this bug. ***
Das Paket univention-printserver aus ucs3.0-2 ist nach errata3.0-2 übernommen und dort mit Patch neu gebaut. Advisory: 2012-08-30-univention-printserver.yaml Ich frage mich allerdings ob das Performance-Problem in großen Umgebungen damit gelöst wird, weil immernoch eine komplette Benutzerliste (mit Maschinen-Rechten) ausgelesen und an den Javascript-Teil geschickt wird. Das geschieht allerdings wohl nur einmal beim Öffnen des Moduls. Man könnte sich sonst auch noch das modules.init() des users/user Moduls sparen, weil man nur die Benutzernamen benötigt.
Bitte den Patch auch in branches/ucs-3.1/ucs/services... einspielen.
Patch ist jetzt auch in branches/ucs-3.1 eingecheckt, Paketbau braucht noch ein bisschen.
Das dauert in einer grossen Umgebung (ca. 30000 Benutzer) immer noch über 30 Sekunden. Auch die Suche ohne UDM dauert noch ca. 8 Sekunden: root@master141:~# time ./user.py 30278 real 0m8.634s user 0m0.952s sys 0m0.844s root@master141:~# cat ./user.py #!/usr/bin/python2.6 import univention.uldap lo = univention.uldap.getMachineConnection() res = lo.search('uid=*', attr=['uid']) print len(res) root@master141:~# Wofür wird die Benutzerliste benötigt? Wenn es nur für Quota ist, dann sollte die Syntax überschreibbar sein, siehe auch: https://forge.univention.org/bugzilla/show_bug.cgi?id=26490#c16 Wenn die Syntax überschrieben wird, dann muss keine Suche erfolgen. Zusätzlich könnte die Suche auch erst erfolgen, wenn die Benutzerliste wirklich benötigt wird.
Patch ist angepasst und nach UCS 3.1 übernommen. Errata-Advisory und changelog-3.1.tex sind ebenfalls angepasst.
In großen Umgebungen ist das Verhalten deutlich besser. Das Update wird auf 3.0 + 3.1 nicht zurückgehalten. Es hat auf einem 3.0 aber auch problemlos funktioniert. Allgemein ist der Dialog nicht ideal, dazu gibt es diesen Bug: Bug 25032 YAML OK, es müsste nur der Hinweis entfernt werden: This errata update is based on the version shipped with UCS 3.0-2 and will be kept back on an UCS 3.0-0 or UCS 3.0-1 system. Next: https://hutten.knut.univention.de/mediawiki/index.php/Errata-Updates#Assignee_-_Announce_des_Erratum-Updates
Advisory ist mit angepasstem Text als errata121 announced. Next: https://hutten.knut.univention.de/mediawiki/index.php/Errata-Updates#QA_-_QA_der_Ank.C3.BCndigungs-Mail_und_der_generierten_Webseite
Released: http://errata.univention.de/errata121.html