[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-merchant-demos] branch master updated: separate backend con
From: |
gnunet |
Subject: |
[taler-taler-merchant-demos] branch master updated: separate backend config sections for each demo |
Date: |
Tue, 03 Sep 2024 14:49:43 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository taler-merchant-demos.
The following commit(s) were added to refs/heads/master by this push:
new 0ec9dfd separate backend config sections for each demo
0ec9dfd is described below
commit 0ec9dfd14ea1ecf22666eb6b6a12ca748b0591c1
Author: Florian Dold <florian@dold.me>
AuthorDate: Tue Sep 3 14:49:41 2024 +0200
separate backend config sections for each demo
---
debian/changelog | 6 +++
talermerchantdemos/cli.py | 121 +++++++++++++---------------------------------
2 files changed, 40 insertions(+), 87 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 9775db7..a2769d3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+taler-merchant-demos (0.13.0) unstable; urgency=medium
+
+ * Release 0.13.0
+
+ -- Florian Dold <dold@taler.net> Tue, 03 Sep 2024 14:48:42 +0200
+
taler-merchant-demos (0.10.1) unstable; urgency=medium
* Release 0.10.1.
diff --git a/talermerchantdemos/cli.py b/talermerchantdemos/cli.py
index ee1be83..4afb13c 100644
--- a/talermerchantdemos/cli.py
+++ b/talermerchantdemos/cli.py
@@ -38,59 +38,6 @@ arg_venvpath = ["-H", sys.prefix]
# loading it causes an error.
arg_load_python = "--if-not-plugin python --plugins python --endif".split(" ")
-##
-# This function interprets the 'serve-uwsgi' subcommand.
-# The effect is to launch the blog UWSGI service. This
-# type of service is usually used when the HTTP blog interface
-# is accessed via a reverse proxy (like Nginx, for example).
-#
-# @param command line options.
-def handle_serve_uwsgi(config, which_shop):
- serve_uwsgi =
config[which_shop]["uwsgi_serve"].value_string(required=True).lower()
- params = [
- "uwsgi",
- "uwsgi",
- *arg_venvpath,
- *arg_load_python,
- "--master",
- "--die-on-term",
- "--log-format",
- UWSGI_LOGFMT,
- "--module",
- "talermerchantdemos.{}:app".format(which_shop),
- "--need-app",
- "--set-ph", "backend_url={}".format(
- config["frontends"]["backend"].value_string(required=True)
- ),
- "--set-ph", "currency={}".format(
- config["taler"]["currency"].value_string(required=True)
- ),
- "--set-ph", "apikey={}".format(
- config["frontends"]["backend_apikey"].value_string(required=True)
- ),
- "--module",
- "--cache2",
- "name=paid_articles,items=500"
- ]
- if serve_uwsgi == "tcp":
- port = config[which_shop]["uwsgi_port"].value_int(required=True)
- spec = ":%d" % (port,)
- params.extend(["--socket", spec])
- elif serve_uwsgi == "unix":
- spec =
config[which_shop]["uwsgi_unixpath"].value_filename(required=True)
- mode =
config[which_shop]["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:])
- try:
- os.execlp(*params)
- except:
- sys.stderr.write(
- "Failed to start uwsgi. Please make sure to install uwsgi for
Python3."
- )
- sys.exit(1)
-
##
# This function interprets the 'serve-http' subcommand.
@@ -98,6 +45,8 @@ def handle_serve_uwsgi(config, which_shop):
#
# @param args command line options.
def handle_serve_http(config, which_shop, port=None):
+ confsection = f"frontend-demo-{which_shop}"
+ currency = config["taler"]["currency"].value_string(required=True)
params = [
"uwsgi",
"uwsgi",
@@ -107,38 +56,48 @@ def handle_serve_http(config, which_shop, port=None):
"--die-on-term",
"--log-format",
UWSGI_LOGFMT,
- "--set-ph", "backend_url={}".format(
- config["frontends"]["backend"].value_string(required=True)
- ),
- "--set-ph", "currency={}".format(
- config["taler"]["currency"].value_string(required=True)
- ),
- "--set-ph", "apikey={}".format(
- config["frontends"]["backend_apikey"].value_string(required=True)
- ),
+ "--set-ph",
+ f"currency={currency}",
"--module",
- "talermerchantdemos.{}:app".format(which_shop),
+ f"talermerchantdemos.{which_shop}:app",
]
-
+
+ # Only read backend config if necessary
+ has_backend = which_shop in ("blog", "donations")
+ if has_backend:
+ backend_url =
config[confsection]["backend"].value_string(required=True)
+ apikey =
config[confsection]["backend_apikey"].value_string(required=True)
+ extra = [
+ "--set-ph",
+ f"backend_url={backend_url}" "--set-ph",
+ f"apikey={apikey}",
+ ]
+ params.extend(extra)
+
# Takes precedence.
if port:
http_serve = "tcp"
else:
- http_serve = config[which_shop]["http_serve"].value_string(
- required=False,
- default="tcp"
- ).lower()
+ http_serve = (
+ config[confsection]["http_serve"]
+ .value_string(required=False, default="tcp")
+ .lower()
+ )
if http_serve == "tcp":
- port_launch =
config[which_shop]["http_port"].value_int(required=False) if not port else port
+ port_launch = (
+ config[confsection]["http_port"].value_int(required=False)
+ if not port
+ else port
+ )
if not port_launch:
sys.stderr.write("Port number wasn't found in config and in
arguments.")
exit(1)
params.extend(["--http", f":{port_launch}"])
if http_serve == "unix":
- path =
config[which_shop]["http_unixpath"].value_filename(required=True)
- mode =
config[which_shop]["http_unixpath_mode"].value_filename(required=True)
+ path =
config[confsection]["http_unixpath"].value_filename(required=True)
+ mode =
config[confsection]["http_unixpath_mode"].value_filename(required=True)
params.extend(["--http-socket", path])
params.extend(["--chmod-socket=" + mode])
os.makedirs(os.path.dirname(path), exist_ok=True)
@@ -146,21 +105,11 @@ def handle_serve_http(config, which_shop, port=None):
try:
os.execlp(*params)
except:
- sys.stderr.write("Failed to start uwsgi. Please make sure to install
uwsgi for Python3.")
+ sys.stderr.write(
+ "Failed to start uwsgi. Please make sure to install uwsgi for
Python3."
+ )
sys.exit(1)
-def handle_serve_from_config(config_obj, which_shop):
- try:
- if (
- config_obj.value_string(which_shop, "serve", required=True).lower()
- == "http"
- ):
- return handle_serve_http(config_obj, which_shop)
- handle_serve_uwsgi(config_obj, which_shop)
- except ConfigurationError as ce:
- print(ce)
- exit(1)
-
@click.command("Global shop launcher")
@click.option("-c", "--config", help="Configuration file", required=False)
@@ -178,9 +127,7 @@ def demos(config, http_port, which_shop):
print("Please use a valid shop name: blog, donations, landing.")
sys.exit(1)
config_obj = TalerConfig.from_file(config)
- if http_port:
- return handle_serve_http(config_obj, which_shop, http_port)
- handle_serve_from_config(config_obj, which_shop)
+ handle_serve_http(config_obj, which_shop, http_port)
demos()
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-taler-merchant-demos] branch master updated: separate backend config sections for each demo,
gnunet <=