murder and autocreate (I know it is not supported)
morgan at orst.edu
Thu Jun 18 15:36:07 EDT 2009
On Thu, 18 Jun 2009, Greg A. Woods wrote:
> Not having a built-in basic way for Cyrus to automatically create
> mailboxes for valid users is also a poor design. Several good
> well-tested patches to enable this feature had been available for a very
> long time (years?) before the "murder" feature was added in the first
> place, and I have a firm conviction that if the autocreate feature had
> been added to Cyrus when it was first made available then the design of
> the clustering mechanisms would have supported it properly from the
> beginning too. I'm not even sure I understand the difficulty with it
> now -- if the cluster front-end knows how to direct a user access to the
> appropriate backend, then so can it direct an initial delivery for
> mailbox creation.
When the mailbox already exists, the murder frontend looks up which
backend contains the mailbox and proxies requests to it.
In the case of new mailbox creation, something must decide which
backend/partition to use. However, the frontends don't even know which
backends/partitions exist. Nothing in the cyrus configuration on the
frontend lists the available backends/partitions. The mailboxes.db file
contains a list of backends/partitions, in a way, because it lists all
mailboxes. Here is an example entry:
user.morgan 1 cyrus-be2.onid.oregonstate.edu!default morgan lrswipcda
This says that my mailbox exists on the backend
"cyrus-be2.onid.oregonstate.edu" in the "default" partition.
I suppose the frontend could generate a list of all backends and
partitions from the mailboxes.db, but when you add a new backend or
partition, it wouldn't exist there either. I'm trying to think of a way
the frontend could determine which backends/partitions exist, but I don't
think it can currently.
Let's assume it could though... How would it pick which backend/partition
to create the mailbox on? At random?
More information about the Info-cyrus