On Thu, 19 Jan 2017, at 10:06, Nic Bernstein via Cyrus-devel wrote: > Friends,
> I'm working on documentation for various things Quota related, and > find that I'm a little confused about the "quota namespace." It > appears that, due to the second argument in > "mboxname_init_namespace("a_namespace, 1)" (quota.c:176) that > quota operations don't use 'altnamespace': No admin operations use altnamespace. Altnamespace is purely over the wire. It doesn't make sense for admins, because admins don't have their own user space. >> namespace->isadmin = isadmin; namespace->hier_sep = >> config_getswitch(IMAPOPT_UNIXHIERARCHYSEP) ? '/' : '.'; namespace- >> >isalt = !isadmin && config_getswitch(IMAPOPT_ALTNAMESPACE); namespace- >> >accessible[NAMESPACE_INBOX] = 1; namespace- >> >accessible[NAMESPACE_USER] = >> !config_getswitch(IMAPOPT_DISABLE_USER_NAMESPACE); namespace- >> >accessible[NAMESPACE_SHARED] = >> !config_getswitch(IMAPOPT_DISABLE_SHARED_NAMESPACE); if (namespace- >> >isalt) { ... } else { /* standard namespace */ sprintf(namespace- >> >prefix[NAMESPACE_INBOX], "%s%c", "INBOX", namespace->hier_sep); >> sprintf(namespace->prefix[NAMESPACE_USER], "%s%c", "user", namespace- >> >hier_sep); strcpy(namespace->prefix[NAMESPACE_SHARED], ""); } >> return 0; } >> > Am I reading that right (hint: not a C programmer)? But it also looks > to me like it should still use '/' as the hierarchy separator, right? Yes, it should. It's a display bug not to show the separator as / in any tool output. > That's not what I'm seeing in my quota_db. I started with a system > with no quotas. The old configuration used quotalegacy, so when I > added some quotas, they ended up in /var/lib/imap/quota...: On the other hand, the files themselves on disk and disk paths are internal names always. >> # cyradm -U cyrus localhost Password: localhost> sq user/nic STORAGE >> # 20000000 localhost> sq user/tim STORAGE 20000000 localhost> sq >> # user/crystal STORAGE 20000000 localhost> sq user/nic X-NUM-FOLDERS >> # 1000 localhost> quit # head /var/lib/imap/quota/*/* ==> >> # /var/lib/imap/quota/H/user.crystal <== %(S (1190064060 20000000) M >> # (13742) AS (3) NF (15)) ==> /var/lib/imap/quota/K/user.tim <== %(S >> # (401903846 20000000) M (7308) AS (2) NF (8)) ==> >> # /var/lib/imap/quota/N/user.nic <== %(S (1484883490) M (36930) AS >> # (18) NF (42 1000)) >> > I then used cvt_cyrusdb to convert from quotalegacy to twoskip, and I > still am seeing the netnews separator, rather than unix, both in the > quota_db and in the output from "quota -f": The contents of quota_db should definitely be . separated. >> # strings /tmp/quota.db twoskip file user.crystal%(S (1190064060 >> # 20000000) M (13742) AS (3) NF (15)) user.nic%(S (1484883490 >> # 20000000) M (36930) AS (18) NF (42)) user.tim%(S (401903846 >> # 20000000) M (7308) AS (2) NF (8))$ # su cyrus -c "cyrus quota -f" >> # Quota % Used Used Resource Root 20000000 5 >> # 1162171 STORAGE user.crystal 13742 >> # MESSAGE user.crystal 0 X-ANNOTATION-STORAGE user.crystal 15 >> # X-NUM-FOLDERS user.crystal 1450081 STORAGE user.nic >> # 36930 MESSAGE user.nic 0 X-ANNOTATION-STORAGE user.nic >> # 1000 4 42 X-NUM-FOLDERS user.nic 20000000 >> # 1 392484 STORAGE user.tim 7308 MESSAGE >> # user.tim 0 X-ANNOTATION-STORAGE user.tim 8 X-NUM-FOLDERS >> # user.tim >> > > Now to be clear, I have no problem with this if it works, but I'm > concerned about confusing administrators. The output of quota -f is wrong. That's a bug. https://github.com/cyrusimap/cyrus-imapd/issues/1800 > We already have the task of teaching existing Cyrus admins about all > of the ramifications of converting to 'altnamespace: on' and > 'unixhierarchysep: on' as the new defaults. This brings a new "but > not here" context on top of it. > > Similarly, for new folks, who don't know or care about historical > legacies, we need to explain that while they're used to using slash > "/" they won't see that from "quota" runs, or when they go poking > around to repair quota problems. > > I think I just need a good dose of cluefullness to proceed. :-) > > Cheers, > -nic > > PS - perl/imap/IMAP/Shell.pm POD info still says "The only > I<resource> understood by B<Cyrus> is C<STORAGE>." This needs > updating (I'm happy to do this.) Thanks. Bron. -- Bron Gondwana br...@fastmail.fm