* 'vmm.cfg.5'
* 'vmm.1'
- Reworded some parts.
* 'vmm'
- Added function _getOrder() for a (hopefully) better structured output from
the domaininfo, userinfo and getuser subcommands.
#!/usr/bin/env python# -*- coding: UTF-8 -*-# Copyright 2008 VEB IT# See COPYING for distribution information.# $Id$"""Virtual Mail Manager's MailLocation class to manage the mail_locationfor accounts."""fromconstants.VERSIONimportVERSION__author__='Pascal Volk <p.volk@veb-it.de>'__version__=VERSION__revision__='rev '+'$Rev$'.split()[1]__date__='$Date$'.split()[1]fromExceptionsimportVMMMailLocationExceptionasMLEimportconstants.ERRORasERRclassMailLocation:"""A wrapper class thats provide access to the maillocation table"""def__init__(self,dbh,mid=None,maillocation=None):"""Creates a new MailLocation instance. Either mid or maillocation must be specified. Keyword arguments: dbh -- a pyPgSQL.PgSQL.connection mid -- the id of a maillocation (long) maillocation -- the value of the maillocation (str) """self._dbh=dbhifmidisNoneandmaillocationisNone:raiseMLE(('Either mid or maillocation must be specified.',ERR.MAILLOCATION_INIT))elifmidisnotNone:try:self.__id=long(mid)exceptValueError:raiseMLE(('mid must be an int/long.',ERR.MAILLOCATION_INIT))self._loadByID()else:self.__maillocation=maillocationself._loadByName()def_loadByID(self):dbc=self._dbh.cursor()dbc.execute('SELECT maillocation FROM maillocation WHERE mid = %s',self.__id)result=dbc.fetchone()dbc.close()ifresultisnotNone:self.__maillocation=result[0]else:raiseMLE(('Unknown mid specified.',ERR.UNKNOWN_MAILLOCATION_ID))def_loadByName(self):dbc=self._dbh.cursor()dbc.execute('SELECT mid FROM maillocation WHERE maillocation = %s',self.__maillocation)result=dbc.fetchone()dbc.close()ifresultisnotNone:self.__id=result[0]else:self._save()def_save(self):dbc=self._dbh.cursor()dbc.execute("SELECT nextval('maillocation_id')")self.__id=dbc.fetchone()[0]dbc.execute('INSERT INTO maillocation(mid,maillocation) VALUES(%s,%s)',self.__id,self.__maillocation)self._dbh.commit()dbc.close()defgetID(self):"""Returns the unique ID of the maillocation."""returnself.__iddefgetMailLocation(self):"""Returns the value of maillocation, ex: 'Maildir'"""returnself.__maillocation