Bug 15220 - Mailquota in UGS
Mailquota in UGS
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Kolab
UCS 2.2
All All
: P1 normal (vote)
: UCS 2.4
Assigned To: Tim Petersen
Andreas Büsching
:
: 18777 18938 (view as bug list)
Depends on:
Blocks: 18535 18797 19304
  Show dependency treegraph
 
Reported: 2009-07-30 07:50 CEST by Stefan Gohmann
Modified: 2012-07-18 10:40 CEST (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:
gohmann: Patch_Available+


Attachments
Adds listener module (3.34 KB, patch)
2009-10-21 11:16 CEST, Tim Petersen
Details | Diff
Adds mailquota in udm (1.68 KB, patch)
2009-10-21 11:17 CEST, Tim Petersen
Details | Diff
Adds mailquota in mail.schema (852 bytes, patch)
2009-10-21 11:17 CEST, Tim Petersen
Details | Diff
Script for migration (3.81 KB, text/plain)
2009-10-21 11:19 CEST, Tim Petersen
Details
Script for migration, updated (3.77 KB, patch)
2009-10-21 11:33 CEST, Tim Petersen
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Gohmann univentionstaff 2009-07-30 07:50:58 CEST
Derzeit wird die Mailquota als Richtlinie gesetzt. Da wir diese nicht per Listener überwachen wollen, wird im PAM-Stack die Mailquota ausgewertet. Das hat zur Folge, dass zunächst die Mailadresse in den Benutzernamen umgewandelt wird und dann für den Benutzer ein Policy Result gemacht wird. Das sind sehr viele LDAP Abfragen und Verzögerungen beim Login, da ggf. auch noch die Quota per cyradm gesetzt wird.

Da das bei jedem Login gemacht wird, ist das sehr aufwendig und wir haben deshalb bei größeren Installationen das automatische Setzen der Quota deaktiviert.

Wir sollten die Einstellung beim Benutzer speichern und nicht mehr als Richtlinie. Dann kann die Auswertung per Listener Modul erfolgen. Die Migration ist nicht ganz einfach, aber wenn wir das entsprechend in den Release Notes ankündigen und ein Multi-Edit für das Attribut im UDM erlauben, sollte das auch in einem Minor-Update bspw. zur 2.3 möglich sein.

Ich habe iku empfohlen das für OXSE4UCS über ein EA umzusetzen.
Comment 1 Stefan Gohmann univentionstaff 2009-10-08 11:01:00 CEST
Bitte mal anschauen und Patches für die unterschiedlichen Pakete an den Bug hängen.
Comment 2 Tim Petersen univentionstaff 2009-10-21 11:16:06 CEST
Created attachment 1921 [details]
Adds listener module

univention-mail-cyrus-kolab2 Patch
Comment 3 Tim Petersen univentionstaff 2009-10-21 11:17:08 CEST
Created attachment 1922 [details]
Adds mailquota in udm

Patch for univention-directory-manager-modules
Comment 4 Tim Petersen univentionstaff 2009-10-21 11:17:54 CEST
Created attachment 1923 [details]
Adds mailquota in mail.schema

Patch for univention-ldap
Comment 5 Tim Petersen univentionstaff 2009-10-21 11:19:47 CEST
Created attachment 1924 [details]
Script for migration

Script migriert Quota aus Policy in Benutzerattribut.
Aufruf über migrate -l listet eingetragene Quota in Policy auf
Aufruf über migrate -u User spezifiziert bestimmten User
Comment 6 Tim Petersen univentionstaff 2009-10-21 11:33:13 CEST
Created attachment 1925 [details]
Script for migration, updated

updated script
Comment 7 Stefan Gohmann univentionstaff 2010-04-28 08:51:16 CEST
Es wäre gut, wenn wir das zur 2.4 umsetzen können.
Comment 8 Stefan Gohmann univentionstaff 2010-05-20 13:36:35 CEST
Rücksprache mit Janis.

Es gibt jetzt mindestens einen größeren Kunden, der seine Umgebung so angepasst hat, dass die Quota Richtlinien verwendet werden. Vorteil ist, man kann sehr einfach ein paar Quota-Kategorien definieren und wenn der Benutzer seine Quota überschreitet wird er entsprechend in die nächst höhere Quota-Kategorie umgesetzt. Mit der vorgeschlagenen Änderung wäre das nicht mehr umsetzbar.

Eine Alternative ist es, dass wir per Default die Quota-Einstellung nur noch einmal pro Zeitintervall auswerten. Das heisst set-quota bleibt im pam-Stack und es wird lokal gespeichert ob die Einstellung für den Benutzer schon einmal ausgeführt wurden. Das alte Verhalten könnte dann wiederhergestellt werden, indem das Zeitintervall auf 0 gesetzt wird.

Per Default könnte das Intervall auf eine Stunde gesetzt werden.

Pro Benutzer könnte das set-quota-Skript eine Datei in einem cache Verzeichnis per touch anlegen / aktualisieren. Beim nächsten set-quota-Durchlauf müsste dann nur der Timestamp der Datei überprüft werden.
Comment 9 Tim Petersen univentionstaff 2010-05-31 14:32:00 CEST
Patches sind obsolet!

Es wurde die neue Variable mail/cyrus/imap/quotaintervall eingeführt, welche nun ein Zeitintervall in Minuten setzt, in dem auf Mailquota Einstellungen geprüft und diese ggf. gesetzt werden.

Paket gebaut, Changelogeintrag erstellt.

fixed
Comment 10 Tim Petersen univentionstaff 2010-05-31 15:16:54 CEST
fehlerhafter commit - reopen
Comment 11 Tim Petersen univentionstaff 2010-06-01 08:16:30 CEST
nun fixed
Comment 12 Stefan Gohmann univentionstaff 2010-06-24 16:10:26 CEST
*** Bug 18777 has been marked as a duplicate of this bug. ***
Comment 13 Stefan Gohmann univentionstaff 2010-06-24 16:11:03 CEST
(In reply to comment #12)
> *** Bug 18777 has been marked as a duplicate of this bug. ***

Siehe Beschreibung am Bug #18777.
Comment 14 Tim Petersen univentionstaff 2010-06-25 10:50:24 CEST
Das Problem liegt nicht an der Umstellung des Zeitintervalls, in welchem geprüft und ggf. gesetzt werden soll, sondern in der Tatsache, dass bei einer Änderung der Mailquotarichtlinie der Pamstack nicht neu durchlaufen wird und somit das Skript zum Setzen der Quota nicht ausgeführt wird.
Nach einem Neustart und der Erstmaligen Anmeldung z.B. am Hordeclient ist die Quota aktuell.
Comment 15 Tim Petersen univentionstaff 2010-06-25 10:51:04 CEST
Anmerkung: Wird nach einer Änderung der Mailquota der Pamstack von hand angeworfen, wird die Quota auch korrekt aktualisiert.
Comment 16 Tim Petersen univentionstaff 2010-06-25 11:31:08 CEST
Die Ursache an der Stelle ist, dass der saslauthd zwischencached.

Ein /etc/init.d/saslauthd an dieser Stelle refreshed den Cache und der Pamstack wird wieder durchlaufen und somit eine neue Quota gesetzt (sofern die Einstellungen des Quotaintervalls dies nicht bewusst verhindern).
Comment 17 Daniel Hofmann univentionstaff 2010-06-28 15:32:57 CEST
(In reply to comment #16)
> Die Ursache an der Stelle ist, dass der saslauthd zwischencached.
> 
> Ein /etc/init.d/saslauthd an dieser Stelle refreshed den Cache und der Pamstack
> wird wieder durchlaufen und somit eine neue Quota gesetzt (sofern die
> Einstellungen des Quotaintervalls dies nicht bewusst verhindern).

Habe bzgl. bug 18777 und diesem Kommentar jetzt den UCS-Testfall für bug 18449 entsprechend angepasst, so dass der saslauth nach dem Modifizieren der Quota im UDM neugestartet wird. Die Änderung ist anschließend via IMAP sichtbar (auch ohne das Quota-Intervall abzuwarten). Allerdings scheint das Entfernen der Quota nicht zu funktionieren (auch mit saslauthd-neustarten, abwarten, pamstack ausführen etc.), was wie es aussieht an univention-cyrus-set-quota liegt, das diesen Fall schlichtweg nicht berücksichtigt.
Comment 18 Felix Botner univentionstaff 2010-07-12 10:35:12 CEST
*** Bug 18938 has been marked as a duplicate of this bug. ***
Comment 19 Tim Petersen univentionstaff 2010-07-19 08:57:33 CEST
Das Skript wurde um die Möglichkeit erweitert, die Quotaeinstellungen zu entfernen.
Verwendet wird hierzu das Keyword "none" -> setquota user/mail none

Paket neu gebaut - fixed
Comment 20 Daniel Hofmann univentionstaff 2010-07-27 13:02:03 CEST
Die ucs-tests    scripts-45_kolab/08create_modify_remove_mailquota
und              scripts-40_mail/08create_modify_remove_mailquota
schlagen bei mir auf einem auf 2.4 aktualisierten System fehl, und es scheint nicht an den Tests selbst zu liegen. Bei ersterem schlägt das Modifizieren der Quota fehl, bei zweiterem das Entfernen.
Comment 21 Tim Petersen univentionstaff 2010-07-27 15:20:40 CEST
scripts-40_mail/08create_modify_remove_mailquota testet auf einem nicht-Kolab System, was für diesen Bug uninteressant ist.
Erstes Problem wird unter aktuellem 2.4 nochmal untersucht.

Desweiteren sollten die Umstellungen bezüglich Intervallgesteuerter Auswertung auch in den Standard Mailpaketen umgesetzt werden.
Comment 22 Tim Petersen univentionstaff 2010-07-27 16:32:22 CEST
Problem lag innerhalb der Testskripte - Anpassung an den Standard Mailpaketen steht noch aus.
Comment 23 Tim Petersen univentionstaff 2010-07-28 11:13:11 CEST
(In reply to comment #22)
> Anpassung an den Standard Mailpaketen
> steht noch aus.

Quotaintervall erfolgreich in den Standardmail-Diensten getestet und umgesetzt.

fixed
Comment 24 Moritz Muehlenhoff univentionstaff 2010-08-11 17:21:24 CEST
Unsere UCR-Variablennamen sind ja englisch, die Variable sollte also 
mail/cyrus/imap/quotainterval statt mail/cyrus/imap/quotaintervall heissen.
Comment 25 Stefan Gohmann univentionstaff 2010-08-11 17:23:08 CEST
(In reply to comment #24)
> Unsere UCR-Variablennamen sind ja englisch, die Variable sollte also 
> mail/cyrus/imap/quotainterval statt mail/cyrus/imap/quotaintervall heissen.

Reopen.
Comment 26 Tim Petersen univentionstaff 2010-08-12 08:37:19 CEST
(In reply to comment #24)
> Unsere UCR-Variablennamen sind ja englisch, die Variable sollte also 
> mail/cyrus/imap/quotainterval statt mail/cyrus/imap/quotaintervall heissen.

Ist umgesetzt, univention-mail-cyrus und univention-mail-cyrus-kolab2 sind neu für 2.4 gebaut, der Changelogeintrag wurde angepasst.

fixed
Comment 27 Andreas Büsching univentionstaff 2010-08-16 15:53:01 CEST
(In reply to comment #26)
> (In reply to comment #24)
> > Unsere UCR-Variablennamen sind ja englisch, die Variable sollte also 
> > mail/cyrus/imap/quotainterval statt mail/cyrus/imap/quotaintervall heissen.
> 
> Ist umgesetzt, univention-mail-cyrus und univention-mail-cyrus-kolab2 sind neu
> für 2.4 gebaut, der Changelogeintrag wurde angepasst.
> 
> fixed

Bei univention-mail-cyrus-kolab2 funktioniert es. Beim Paket univention-mail-cyrus wird die Variable mail/cyrus/imap/quotainterval bei einem Update von 2.3-2 nicht gesetzt:


if [ "$1" = configure -a -n "$2" ] && dpkg --compare-versions "$2" lt 0.5; then
        /usr/sbin/univention-baseconfig set mail/cyrus/imap/quota?"yes"
        /usr/sbin/univention-baseconfig set mail/cyrus/imap/quotawarnpercent?90
        /usr/sbin/univention-baseconfig set mail/cyrus/imap/quotawarnkb?0
        /usr/sbin/univention-baseconfig set mail/cyrus/imap/quotainterval=60
fi

Bei einer Neuinstallation wird sie voraussichtlich auch nicht gesetzt. Installiert war vorher die Version 2.0.9-1.94.201003181120.

Beim Paket univention-mail-cyrus-kolab2 wird die Variable immer mit = gesetzt. Ich denke, dass sollte ein ? sein.

mail/cyrus/imap/quotainterval=60


ChangeLog Eintrag verfügbar
Comment 28 Stefan Gohmann univentionstaff 2010-08-16 20:54:33 CEST
(In reply to comment #27)
> (In reply to comment #26)
> > (In reply to comment #24)
> > > Unsere UCR-Variablennamen sind ja englisch, die Variable sollte also 
> > > mail/cyrus/imap/quotainterval statt mail/cyrus/imap/quotaintervall heissen.
> > 
> > Ist umgesetzt, univention-mail-cyrus und univention-mail-cyrus-kolab2 sind neu
> > für 2.4 gebaut, der Changelogeintrag wurde angepasst.
> > 
> > fixed
> 
> Bei univention-mail-cyrus-kolab2 funktioniert es. Beim Paket
> univention-mail-cyrus wird die Variable mail/cyrus/imap/quotainterval bei einem
> Update von 2.3-2 nicht gesetzt:

Das ist jetzt angepasst.

> 
> if [ "$1" = configure -a -n "$2" ] && dpkg --compare-versions "$2" lt 0.5; then
>         /usr/sbin/univention-baseconfig set mail/cyrus/imap/quota?"yes"
>         /usr/sbin/univention-baseconfig set mail/cyrus/imap/quotawarnpercent?90
>         /usr/sbin/univention-baseconfig set mail/cyrus/imap/quotawarnkb?0
>         /usr/sbin/univention-baseconfig set mail/cyrus/imap/quotainterval=60
> fi
> 
> Bei einer Neuinstallation wird sie voraussichtlich auch nicht gesetzt.

Die Variable wird jetzt per Default gesetzt. Allerdings habe ich den oberen Code-Block nicht geändert. Default ist damit auf einem normalen Mailsystem, dass Quota nicht aktiv ist.

> Installiert war vorher die Version 2.0.9-1.94.201003181120.
> 
> Beim Paket univention-mail-cyrus-kolab2 wird die Variable immer mit = gesetzt.
> Ich denke, dass sollte ein ? sein.

Ja, ist angepasst.
 
> mail/cyrus/imap/quotainterval=60
> 
> 
> ChangeLog Eintrag verfügbar
Comment 29 Andreas Büsching univentionstaff 2010-08-17 09:39:33 CEST
Funktioniert jetzt für den normalen Mail-Dienst und Kolab
Comment 30 Stefan Gohmann univentionstaff 2010-08-31 13:21:06 CEST
UCS 2.4 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer
neueren Version von UCS erneut auftreten, so sollte der Bug dupliziert werden:
"Clone This Bug".