Bug 28291 - UMC-Modul Druckerverwaltung verwendet UDM-CLI
UMC-Modul Druckerverwaltung verwendet UDM-CLI
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC - Printers
UCS 3.0
Other Linux
: P5 normal (vote)
: UCS 3.0-2-errata
Assigned To: Arvid Requate
Stefan Gohmann
:
: 28375 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-08-24 12:09 CEST by Sönke Schwardt-Krummrich
Modified: 2013-02-25 12:20 CET (History)
4 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2012-08-24 12:09:11 CEST
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.
Comment 1 Stefan Gohmann univentionstaff 2012-08-30 11:16:29 CEST
*** Bug 28375 has been marked as a duplicate of this bug. ***
Comment 2 Arvid Requate univentionstaff 2012-08-30 19:36:44 CEST
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.
Comment 3 Stefan Gohmann univentionstaff 2012-08-30 20:26:50 CEST
Bitte den Patch auch in branches/ucs-3.1/ucs/services... einspielen.
Comment 4 Arvid Requate univentionstaff 2012-08-31 12:40:17 CEST
Patch ist jetzt auch in branches/ucs-3.1 eingecheckt, Paketbau braucht noch ein bisschen.
Comment 5 Stefan Gohmann univentionstaff 2012-09-03 07:49:54 CEST
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.
Comment 6 Arvid Requate univentionstaff 2012-09-04 15:00:14 CEST
Patch ist angepasst und nach UCS 3.1 übernommen.
Errata-Advisory und changelog-3.1.tex sind ebenfalls angepasst.
Comment 7 Stefan Gohmann univentionstaff 2012-09-06 09:06:22 CEST
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
Comment 8 Arvid Requate univentionstaff 2012-09-06 11:47:08 CEST
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
Comment 9 Arvid Requate univentionstaff 2012-09-06 12:54:39 CEST
Released: http://errata.univention.de/errata121.html