Univention Bugzilla – Bug 27087
Manchmal fehlen Fehlermeldungen beim Löschen/Verschieben/Anlegen/Editieren
Last modified: 2012-07-20 15:25:16 CEST
Created attachment 4369 [details] provide error messages Wenn das Löschen von Objekten fehlschlägt werden vom Frontend keine Fehlermeldungen angezeigt. Der angehängte Patch fixed das
Patch sieht gut aus. Wurde getestet und eingespielt. Paket gebaut, Changelogeintrag hinzugefügt.
Das funktioniert nun prinzipiell, jedoch wird der genaue Fehlermeldung nicht ausgegeben. Im umc-udm log stand bei mit beispielsweise Failed to remove LDAP object cn=memberserver,cn=computers,dc=i386,dc=de: permissionDenied: die UMC zeigt aber nur Die/das folgende(n) Objekt(e) konnte(n) nicht gelöscht werden: cn=master,cn=dc,cn=computers,dc=i386,dc=de: an. Es wäre sicher hilfreich, wenn im Fehlerfall auch angezeigt wird, warum etwas schief gegangen ist.
Wenn ich ich via UMC cn=mas,cn=computers,dc=adfgsd,dc=asdasdljgdf: LDAP object could not be identifiedversuche ein Objekt zu löschen das es bereits nicht mehr gibt wird mir auch ausgegeben WARUM das betroffene Objekt nicht gelöscht werden kann. Etwa: "cn=mas,cn=computers,dc=adfgsd,dc=asdasdljgdf: LDAP object could not be identified"
(In reply to comment #3) > Wenn ich ich via UMC cn=mas,cn=computers,dc=adfgsd,dc=asdasdljgdf: LDAP object > could not be identifiedversuche ein Objekt zu löschen das es bereits nicht mehr > gibt wird mir auch ausgegeben WARUM das betroffene Objekt nicht gelöscht werden > kann. > > Etwa: > "cn=mas,cn=computers,dc=adfgsd,dc=asdasdljgdf: LDAP object could not be > identified" Copy&Paste Fehler. ===================================================== Wenn ich ich via UMC versuche ein Objekt zu löschen das es bereits nicht mehr gibt wird mir auch ausgegeben WARUM das betroffene Objekt nicht gelöscht werden kann. Etwa: "cn=mas,cn=computers,dc=adfgsd,dc=asdasdljgdf: LDAP object could not be identified"
(In reply to comment #2) > Das funktioniert nun prinzipiell, jedoch wird der genaue Fehlermeldung nicht > ausgegeben. > Im umc-udm log stand bei mit beispielsweise > > Failed to remove LDAP object cn=memberserver,cn=computers,dc=i386,dc=de: > permissionDenied: > > die UMC zeigt aber nur > > Die/das folgende(n) Objekt(e) konnte(n) nicht gelöscht werden: > cn=master,cn=dc,cn=computers,dc=i386,dc=de: > > an. Es wäre sicher hilfreich, wenn im Fehlerfall auch angezeigt wird, warum > etwas schief gegangen ist. Das tritt offenbar nur für bestimmte Fehler auf.
univention-management-console-module-udm (1.0.282-1) unstable; urgency=low * fixed messages which are displayed when adding/modifying/moving/removing an object failed (Bug #27087) Das Problem bestand darin, dass in udm_ldap.UDM_Module generisch alle in admin/uexceptions.py definierten Exceptions abgefangen und dann in der Form "raise UDM_Error(str(e))" weitergereicht werden. Die in uexceptions.py definierten Exceptions implementieren jedoch ein eigenes "message" Attribut in der sie bei der Erstellung ihre Fehlermeldung ablegen (statt die magic method "__str__()" zu überschreiben), weshalb sie für einen str() Zugriff auf ihre Instanzen einfach nur einen leeren String zurück liefern. Um solche Probleme in Zukunft zu vermeiden wurde udm_ldap.py die Funktion "get_exception_msg(e)" hinzugefügt, die e.message zurückliefert wenn vorhanden und nicht leer bzw. einen fallback auf str(e) wenn dem nicht so ist. Diese Funktion wird jetzt an jeder Stelle in udm.udm_ldap.UDM_Module verwendet, an der ein UDM_Error geworfen wird, d.h. in den Methoden create, move, modify und remove. ============================= QA: ====== Folgende Fälle wurden nach dieser Änderung bereits getestet, sollten in der QA aber nochmal überprüft werden: Als Administrator via UMC: - Einen Benutzer editieren und dabei einen Namen zuweisen der bereits vergeben ist - Einen Benutzer entfernen der nicht mehr existiert - Einen Computer verschieben der nicht mehr existiert - Einen Benutzer anlegen dessen Passwort gegen die gerbte Password policy verstößt (z.b. nur ein Zeichen lang) Als gewöhnlicher Domain User via UMC: - Einen anderen Benutzer verschieben/editieren/löschen/anlegen (wichtig ist, dass der eingeloggte User dazu nicht die Berechtigung haben darf) ====================== Das Verhalten ist in Ordnung, wenn in jedem Fehlerfall eine sinnige Meldung ausgegeben wird. Paket gebaut, Changelogeintrag zu diesem Bug wurde überarbeitet.
OK, die Meldungen werden jetzt angezeigt. Changelog Eintrag vorhanden.
> Im Zuge von Bug 23525 wird die Exception univention.admin.uexception.valueError > geworfen. Diese erbt von indirekt von der Klasse "Exception", was dazu führt, > dass sowohl die Attribute "message" als auch "args" gesetzt sind. > In modules/univention/admincli/admin.py:389ff werden beide Attribute > ausgewertet und zu einer Meldung zusammengesetzt. Dadurch steht der Text > anschließend doppelt in der CLI. Der Web-UDM verhält sich genauso. > > root@myproxy:~# pkill -f "cli-server" ; eval "$(ucr shell)"; udm users/user > create --position cn=users,$ldap_base --set username=foo1 --set > password=univention --set mailPrimaryAddress=foo1@ding.dong.org --set > lastname="univention" > > The domain of given mail primary address (...@ding.dong.org) does not match any > mail domain object: The domain of given mail primary address > (...@ding.dong.org) does not match any mail domain object. (vgl. Bug #7389) Das betrifft auch das Frontend.
(In reply to comment #8) > > Im Zuge von Bug 23525 wird die Exception univention.admin.uexception.valueError > > geworfen. Diese erbt von indirekt von der Klasse "Exception", was dazu führt, > > dass sowohl die Attribute "message" als auch "args" gesetzt sind. > > In modules/univention/admincli/admin.py:389ff werden beide Attribute > > ausgewertet und zu einer Meldung zusammengesetzt. Dadurch steht der Text > > anschließend doppelt in der CLI. Der Web-UDM verhält sich genauso. > > > > root@myproxy:~# pkill -f "cli-server" ; eval "$(ucr shell)"; udm users/user > > create --position cn=users,$ldap_base --set username=foo1 --set > > password=univention --set mailPrimaryAddress=foo1@ding.dong.org --set > > lastname="univention" > > > > The domain of given mail primary address (...@ding.dong.org) does not match any > > mail domain object: The domain of given mail primary address > > (...@ding.dong.org) does not match any mail domain object. > (vgl. Bug #7389) > > Das betrifft auch das Frontend. Behoben. univention-management-console-module-udm (1.0.286-1) unstable; urgency=low * print every error message only once (Bug #27087)
OK, funktioniert -> udm users/user modify --dn uid=test1,cn=users,dc=amd,dc=ggg --set mailPrimaryAddress=foo1@ding.dong.org The following mail primary address' domain does not match to any mail domain object: foo1@ding.dong.org.
komisch, jetzt wird die Fehlermeldung wieder doppelt ausgegeben. -> udm users/user modify --dn uid=felix,cn=schueler,cn=users,ou=s01,dc=amd64,dc=de --append mailAlternativeAddress=aaa@ww.ee The domain part of the following mail addresses is not in list of configured mail domains: aaa@ww.ee: The domain part of the following mail addresses is not in list of configured mail domains: aaa@ww.ee python-univention-directory-manag 7.0.286-1.853.201207131031
(In reply to comment #11) > komisch, jetzt wird die Fehlermeldung wieder doppelt ausgegeben. > > -> udm users/user modify --dn > uid=felix,cn=schueler,cn=users,ou=s01,dc=amd64,dc=de --append > mailAlternativeAddress=aaa@ww.ee > > The domain part of the following mail addresses is not in list of configured > mail domains: aaa@ww.ee: The domain part of the following mail addresses is not > in list of configured mail domains: aaa@ww.ee > > python-univention-directory-manag 7.0.286-1.853.201207131031 CLI Bug, das gehört mit zum generischen Bug #7389 und wird dort weiterbehandelt.
OK
UCS 3.0-2 has been released: http://forum.univention.de/viewtopic.php?f=54&t=1905 If this error occurs again, please use "Clone This Bug".