gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-bank] branch master updated: adding --with-db option


From: gnunet
Subject: [GNUnet-SVN] [taler-bank] branch master updated: adding --with-db option, commenting out obsolete command to create sample data
Date: Mon, 15 May 2017 21:34:54 +0200

This is an automated email from the git hooks/post-receive script.

marcello pushed a commit to branch master
in repository bank.

The following commit(s) were added to refs/heads/master by this push:
     new 984401d  adding --with-db option, commenting out obsolete command to 
create sample data
984401d is described below

commit 984401d346ea61e332baef76803740e04cf2462e
Author: Marcello Stanisci <address@hidden>
AuthorDate: Mon May 15 21:33:45 2017 +0200

    adding --with-db option, commenting out obsolete command to create sample 
data
---
 taler-bank-manage.in  | 14 +++++++++-----
 talerbank/settings.py | 20 +++++++++++++-------
 2 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/taler-bank-manage.in b/taler-bank-manage.in
index ec594fc..c3fce52 100644
--- a/taler-bank-manage.in
+++ b/taler-bank-manage.in
@@ -94,16 +94,19 @@ def handle_config(args):
 
 parser = argparse.ArgumentParser()
 parser.set_defaults(func=None)
-parser.add_argument('--config', '-c', help="configuration file to use", 
metavar="CONFIG", type=str, dest="config", default=None)
-parser.add_argument('--with-db', help="use ALTERNATE_DB", type=str, 
metavar="ALTERNATE_DB", dest="altdb")
+parser.add_argument('--config', '-c', help="configuration file to use",
+                    metavar="CONFIG", type=str, dest="config", default=None)
+parser.add_argument('--with-db', help="use 'dbname' (currently only 
'dbtype'=='postgres' is supported)",
+                    type=str, metavar="dbtype:///dbname", dest="altdb")
 sub = parser.add_subparsers()
 
 p = sub.add_parser('django', help="Run django-admin command")
 p.add_argument("command", nargs=argparse.REMAINDER)
 p.set_defaults(func=handle_django)
 
-p = sub.add_parser('sampledata', help="Put sample data into the db")
-p.set_defaults(func=handle_sampledata)
+# FIXME: adapt to newest wire_transfer()
+# p = sub.add_parser('sampledata', help="Put sample data into the db")
+# p.set_defaults(func=handle_sampledata)
 
 p = sub.add_parser('serve-http', help="Serve bank over HTTP")
 p.add_argument("--port", "-p", dest="port", type=int, default=None, 
metavar="PORT")
@@ -121,7 +124,8 @@ args = parser.parse_args()
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "talerbank.settings")
 
 if args.altdb:
-    os.environ.setdefault("ALTDB", args.altdb)
+    logger.info("Setting alternate db: %s" % args.altdb)
+    os.environ.setdefault("TALER_BANK_ALTDB", args.altdb)
 
 if getattr(args, 'func', None) is None:
     parser.print_help()
diff --git a/talerbank/settings.py b/talerbank/settings.py
index ed15674..6bbbc46 100644
--- a/talerbank/settings.py
+++ b/talerbank/settings.py
@@ -14,6 +14,7 @@ import base64
 from .talerconfig import TalerConfig
 import sys
 import urllib.parse
+import re
 
 logger = logging.getLogger(__name__)
 
@@ -90,19 +91,27 @@ WSGI_APPLICATION = 'talerbank.wsgi.application'
 
 DATABASES = {}
 
-# parse a database URL, django can't natively do this!
 dbname = tc.value_string("bank", "database", required=True)
+# db given in cli argument takes precedence over config
+dbname = os.environ.get("TALER_BANK_ALTDB", dbname)
 
 if not dbname:
-    raise Exception("'database' option value is missing from config")
+    raise Exception("DB not specified (neither in config or as cli argument)")
 
 logger.info("dbname: %s" % dbname)
+
+check_dbstring_format = re.search("[a-z]+:///[a-z]+", dbname)
+if not check_dbstring_format:
+    logger.error("Bad db string given, respect the format 'dbtype:///dbname'")
+    sys.exit(1)
+
 dbconfig = {}
 db_url = urllib.parse.urlparse(dbname)
 
-if db_url.scheme not in ("postgres"):
-    raise Exception("DB '%s' is not supported" % db_url.scheme)
 
+if ((db_url.scheme not in ("postgres")) or ("" == db_url.scheme)):
+    logger.error("DB '%s' is not supported" % db_url.scheme)
+    sys.exit(1)
 if db_url.scheme == "postgres":
     dbconfig["ENGINE"] = 'django.db.backends.postgresql_psycopg2'
     dbconfig["NAME"] = db_url.path.lstrip("/")
@@ -119,9 +128,6 @@ else:
 if host:
     dbconfig["HOST"] = host
 
-logger.info("db string '%s'", dbname)
-logger.info("db info '%s'", dbconfig)
-
 DATABASES["default"] = dbconfig
 
 # Password validation

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]