# HG changeset patch # User Ralph Meijer # Date 1099257175 0 # Node ID 7d088c61e131459a150c247b21168a28e0f7b654 # Parent ea3d3544a52ef017e90a83250f1255b22d832d92 Make choice of backend an option to mktap. This includes the database configuration. diff -r ea3d3544a52e -r 7d088c61e131 idavoll/idavoll.py --- a/idavoll/idavoll.py Sun Oct 31 21:11:03 2004 +0000 +++ b/idavoll/idavoll.py Sun Oct 31 21:12:55 2004 +0000 @@ -2,7 +2,6 @@ from twisted.application import service from twisted.python import components import backend -import memory_backend import pubsub import xmpp_error @@ -88,8 +87,14 @@ sm = component.buildServiceManager(config["jid"], config["secret"], ("tcp:%s:%s" % (config["rhost"], config["rport"]))) - b = memory_backend - bs = b.BackendService() + if config['backend'] == 'pgsql': + import pgsql_backend as b + st = b.Storage(user=config['dbuser'], database=config['dbname']) + bs = b.BackendService(st) + elif config['backend'] == 'memory': + import memory_backend as b + bs = b.BackendService() + component.IService(bs).setServiceParent(sm) @@ -101,13 +106,14 @@ bsc.setServiceParent(bs) component.IService(bsc).setServiceParent(sm) - bsc = b.NodeCreationService() - bsc.setServiceParent(bs) - component.IService(bsc).setServiceParent(sm) + if config['backend'] == 'memory': + bsc = b.NodeCreationService() + bsc.setServiceParent(bs) + component.IService(bsc).setServiceParent(sm) - bsc = b.SubscriptionService() - bsc.setServiceParent(bs) - component.IService(bsc).setServiceParent(sm) + bsc = b.SubscriptionService() + bsc.setServiceParent(bs) + component.IService(bsc).setServiceParent(sm) s = IdavollService() s.setServiceParent(sm) diff -r ea3d3544a52e -r 7d088c61e131 idavoll/tap.py --- a/idavoll/tap.py Sun Oct 31 21:11:03 2004 +0000 +++ b/idavoll/tap.py Sun Oct 31 21:12:55 2004 +0000 @@ -8,8 +8,15 @@ ('jid', None, 'pubsub'), ('secret', None, None), ('rhost', None, '127.0.0.1'), - ('rport', None, '6000') + ('rport', None, '6000'), + ('backend', None, 'memory'), + ('dbuser', None, ''), + ('dbname', None, 'pubsub'), ] + + def postOptions(self): + if self['backend'] not in ['pgsql', 'memory']: + raise usage.UsageError, "Unknown backend!" def makeService(config): return idavoll.makeService(config)