diff options
author | Simo Sorce <simo@redhat.com> | 2014-12-05 14:28:22 -0500 |
---|---|---|
committer | Patrick Uiterwijk <puiterwijk@redhat.com> | 2014-12-05 14:49:30 -0500 |
commit | 1c3343573f008e7fe4c14cfb3523960a5376dc30 (patch) | |
tree | 8603f845003820dd13b3c32395d8dbf6571cd042 /ipsilon/util | |
parent | 943158d19f879eb6ad515edeb59017671e4252c5 (diff) | |
download | ipsilon-1c3343573f008e7fe4c14cfb3523960a5376dc30.tar.gz ipsilon-1c3343573f008e7fe4c14cfb3523960a5376dc30.tar.xz ipsilon-1c3343573f008e7fe4c14cfb3523960a5376dc30.zip |
Allow to pass drectly a URL to the Store class
This is useful for plugins that want to use their own database configuration
but still want to reuse he Store class for simplicity.
Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Diffstat (limited to 'ipsilon/util')
-rwxr-xr-x | ipsilon/util/data.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/ipsilon/util/data.py b/ipsilon/util/data.py index 0e086b3..5045ee2 100755 --- a/ipsilon/util/data.py +++ b/ipsilon/util/data.py @@ -231,10 +231,15 @@ class FileQuery(Log): class Store(Log): - def __init__(self, config_name): - if config_name not in cherrypy.config: - raise NameError('Unknown database %s' % config_name) - name = cherrypy.config[config_name] + def __init__(self, config_name=None, database_url=None): + if config_name is None and database_url is None: + raise ValueError('config_name or database_url must be provided') + if config_name: + if config_name not in cherrypy.config: + raise NameError('Unknown database %s' % config_name) + name = cherrypy.config[config_name] + else: + name = database_url if name.startswith('configfile://'): _, filename = name.split('://') self._db = FileStore(filename) |