summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcello Stanisci <marcello.stanisci@inria.fr>2016-11-04 11:35:32 +0100
committerMarcello Stanisci <marcello.stanisci@inria.fr>2016-11-04 11:35:32 +0100
commite7098c06cdb4f99c4ad0adaae1ed8fc8baf143c4 (patch)
treecfe35b17fb5c51871711ec0bf485026bf874df8b
parentd5a5cb081f9a8c86a81345a253d005b700aae1da (diff)
downloadbank-e7098c06cdb4f99c4ad0adaae1ed8fc8baf143c4.tar.gz
bank-e7098c06cdb4f99c4ad0adaae1ed8fc8baf143c4.tar.bz2
bank-e7098c06cdb4f99c4ad0adaae1ed8fc8baf143c4.zip
defining --admin option
-rw-r--r--taler-bank-manage.in41
1 files changed, 30 insertions, 11 deletions
diff --git a/taler-bank-manage.in b/taler-bank-manage.in
index cbd89ef..3fa7f39 100644
--- a/taler-bank-manage.in
+++ b/taler-bank-manage.in
@@ -40,11 +40,20 @@ def handle_serve_http(args):
call_command('provide_accounts')
call_command('check')
tc = TalerConfig.from_file(os.environ.get("TALER_CONFIG_FILE"))
- os.execlp("uwsgi", "uwsgi",
- "--master",
- "--die-on-term",
- "--log-format", uwsgi_logfmt,
- "--emperor", "@prefix@/share/taler-bank/vassals-http")
+ port = args.port
+ if port is None:
+ port = tc[token]["http_port"].value_int(required=True)
+
+ httpspec = ":%d" % (port,)
+ params = ["uwsgi", "uwsgi",
+ "--master",
+ "--die-on-term",
+ "--http", httpspec,
+ "--log-format", uwsgi_logfmt]
+ params.extend(["--wsgi-file", "@prefix@/share/taler-bank/%s.wsgi" % token])
+ os.execlp(*params)
+
+
# FIXME Emperor to be called
def handle_serve_uwsgi(args):
@@ -57,14 +66,19 @@ def handle_serve_uwsgi(args):
tc = TalerConfig.from_file(os.environ.get("TALER_CONFIG_FILE"))
serve_uwsgi = tc["bank"]["uwsgi_serve"].value_string(required=True).lower()
params = ["uwsgi", "uwsgi",
- "--master",
- "--die-on-term",
- "--log-format", uwsgi_logfmt]
+ "--master",
+ "--die-on-term",
+ "--log-format", uwsgi_logfmt]
if "tcp" == serve_uwsgi:
- params.extend(["--emperor", "@prefix@/share/taler-bank/vassals-http"])
+ port = tc[token]["uwsgi_port"].value_int(required=True)
+ spec = ":%d" % (port,)
+ params.extend(["--socket", spec])
else:
- params.extend(["--emperor", "@prefix@/share/taler-bank/vassals-unix"])
-
+ spec = tc[token]["uwsgi_unixpath"].value_filename(required=True)
+ mode = tc[token]["uwsgi_unixpath_mode"].value_filename(required=True)
+ params.extend(["--socket", spec])
+ params.extend(["--chmod-socket="+mode])
+ os.makedirs(os.path.dirname(spec), exist_ok=True)
logging.info("launching uwsgi with argv %s", params[1:])
os.execlp(*params)
@@ -84,6 +98,7 @@ 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("--admin", "-a", dest="admin", action="store_true", help="Only run the \"admin\" interface")
sub = parser.add_subparsers()
p = sub.add_parser('django', help="Run django-admin command")
@@ -94,6 +109,7 @@ 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")
p.set_defaults(func=handle_serve_http)
p = sub.add_parser('serve-uwsgi', help="Serve bank over UWSGI")
@@ -105,6 +121,9 @@ p.set_defaults(func=handle_config)
args = parser.parse_args()
+token = "bank%s" % ("-admin" if args.admin else "")
+logger.info("Setting token to %s" % token)
+
if args.altdb:
os.environ.setdefault("ALTDB", args.altdb)