On Mon, Oct 24, 2011 at 11:14 AM, Rich <[email protected]> wrote:
> I'm able to consistently reproduce this problem/behavior, but not
> workaround or fix it, yet.
>
> Rich
>
> On Wed, Oct 19, 2011 at 7:41 AM, Rich <[email protected]> 
> wrote:
>> I've made some progress, but quota 'Limit' is still not fully
>> functioning for me.
>>
>> A couple of changes have helped:
>>
>> Specifying a "%u% as username format,
>>
>>        /etc/dovecot/conf.d/90-quota.conf
>>                plugin {
>> -                       quota = dict:User Quota::proxy::quota
>> +                       quota = dict:User Quota:%u:proxy::quota
>>                        quota_rule = *:bytes=1073741824:messages=10000
>>                        quota_rule2 = Trash:storage=+10%%
>>                }
>>
>> using 'username' rather than 'user' in the user iteration query
>>
>>        /etc/dovecot/sql/virtmail-userdb-sql.cf
>>                driver = mysql
>>                connect = host=/var/run/mysql/mysql.sock dbname=my_db 
>> user=my_user
>> password=my_pass
>>                user_query = CALL UserDBQuery('%n','%d');
>> -               iterate_query = SELECT `MAILBOX_user_domain` AS user FROM 
>> `PARAMS`;
>> +               iterate_query = SELECT `MAILBOX_user_domain` AS username 
>> FROM `PARAMS`;
>>
>> and adding to my user_query,
>>
>>        CREATE PROCEDURE `UserDBQuery`(
>>                ...
>>                SELECT ...
>>                  concat('*:bytes=', quota_bytes, ':messages=10000') AS 
>> quota_rule,
>>                  ...
>>
>> Now, at init,
>>
>>        doveadm quota get -A
>>                Username                Quota name      Type            Value 
>>   Limit   %
>>                [email protected]      User quota      STORAGE         0     
>>   0       0
>>                [email protected]      User quota      MESSAGE         0     
>>   10000   0
>>                [email protected]      User quota      STORAGE         0     
>>   0       0
>>                [email protected]      User quota      MESSAGE         0     
>>   10000   0
>>
>>        mysql> select * from PARAMS;
>>                +----+------------------------+------------+-------------+
>>                | ai | MAILBOX_user_domain    | quota_bytes | quota_msgs |
>>                +----+------------------------+-------------+------------+
>>                |  1 |  [email protected]    |           0 |          0 |
>>                |  2 |  [email protected]    |           0 |          0 |
>>                +----+------------------------+------------+-------------+
>>                2 rows in set (0.00 sec)
>>
>> and, after sending a single message to '[email protected]', I do see
>> that Dovecot now recognizes/calculates a quota change, and only for
>> one domain,
>>
>>        doveadm quota get -A
>>                Username                Quota name      Type            Value 
>>   Limit   %
>>                [email protected]      User quota      STORAGE         3     
>>   3       100
>>                [email protected]      User quota      MESSAGE         1     
>>   10000   0
>>                [email protected]      User quota      STORAGE         0     
>>   0       0
>>                [email protected]      User quota      MESSAGE         0     
>>   10000   0
>>
>>        mysql> select * from PARAMS;
>>                +----+------------------------+------------+-------------+
>>                | ai | MAILBOX_user_domain    | quota_bytes | quota_msgs |
>>                +----+------------------------+-------------+------------+
>>                |  1 |  [email protected]    |        3269 |          1 |
>>                |  2 |  [email protected]    |           0 |          0 |
>>                +----+------------------------+------------+-------------+
>>                2 rows in set (0.00 sec)
>>
>>
>> But, the Limit's wrong.  It's not picking up the global Limit from
>>
>>        /etc/dovecot/conf.d/90-quota.conf
>>                ...
>> -->             quota_rule = *:bytes=1073741824:messages=10000
>>                ...
>>
>> and once a message quota Value is calculated, the Limit is set ==
>> Value, resulting in an incorrrect quota %-age of 100%.
>>
>> Is Limit supposed to be specified per-user?
>>
>> Rich
>>
>

Reply via email to