summaryrefslogtreecommitdiff
path: root/bin/taler-deployment-config-instances
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-04-13 15:21:01 +0200
committerFlorian Dold <florian@dold.me>2021-04-13 15:21:01 +0200
commit31893ef217df8da7ebb374cf6c515211d790831f (patch)
tree2162523f997877c7756a3ea43111da9a90baae66 /bin/taler-deployment-config-instances
parent080757f0a33ec9778ca1f1b9700fd19552663483 (diff)
downloaddeployment-31893ef217df8da7ebb374cf6c515211d790831f.tar.gz
deployment-31893ef217df8da7ebb374cf6c515211d790831f.tar.bz2
deployment-31893ef217df8da7ebb374cf6c515211d790831f.zip
rename scripts, purge BB reserve topping
reserve topping is done by the systemd timer
Diffstat (limited to 'bin/taler-deployment-config-instances')
-rwxr-xr-xbin/taler-deployment-config-instances182
1 files changed, 182 insertions, 0 deletions
diff --git a/bin/taler-deployment-config-instances b/bin/taler-deployment-config-instances
new file mode 100755
index 0000000..924a9ba
--- /dev/null
+++ b/bin/taler-deployment-config-instances
@@ -0,0 +1,182 @@
+#!/usr/bin/env python3
+
+import requests
+from os import environ
+from sys import exit
+from urllib.parse import urljoin
+
+MERCHANT_BACKEND_BASE_URL = environ.get("TALER_ENV_MERCHANT_BACKEND")
+if not MERCHANT_BACKEND_BASE_URL:
+ print("TALER_ENV_MERCHANT_BACKEND not defined. Please source the ~/activate file.")
+ exit(1)
+
+TALER_ENV_NAME = environ.get("TALER_ENV_NAME")
+if not TALER_ENV_NAME:
+ print("TALER_ENV_NAME not defined. Please source the ~/activate file.")
+ exit(1)
+
+TALER_PATCH_INSTANCES = environ.get("TALER_PATCH_INSTANCES")
+TALER_CONFIG_CURRENCY = environ.get("TALER_CONFIG_CURRENCY", "EUR")
+
+def expectResponse(response, expected_status_codes):
+ if response.status_code not in expected_status_codes:
+ print("Configuration failed on URL: {}".format(response.url))
+ print(response.text)
+ exit(1)
+ # Allows for finer grained checks.
+ return response
+
+class Instance:
+ def __init__(self, instance_id, config_data, backend_url, is_patch=False):
+ self.instance_id = instance_id
+ self.config_data = config_data
+ self.backend_url = backend_url
+ if not is_patch: # First time instance configuration.
+ self.config_data.update(id=instance_id)
+ self.is_patch = is_patch
+
+ def get_config_data(self):
+ return self.config_data
+ def get_config_url(self):
+ if not self.is_patch:
+ return urljoin(self.backend_url, "/private/instances")
+ return urljoin(self.backend_url, "/private/instances/{}".format(self.instance_id))
+ def get_http_method(self):
+ if not self.is_patch:
+ return requests.post
+ return requests.patch
+
+blog = Instance(
+ "blog",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/blog"],
+ name="Blog",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+donations = Instance(
+ "donations",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/donations"],
+ name="Donations",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+survey = Instance(
+ "survey",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/survey"],
+ name="Survey",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+pos = Instance(
+ "pos",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/pos"],
+ name="PoS",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+gnunet = Instance(
+ "GNUnet",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/GNUnet"],
+ name="GNUnet",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+taler = Instance(
+ "Taler",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/Taler"],
+ name="Taler",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+tor = Instance(
+ "Tor",
+ dict(
+ payto_uris=[f"payto://x-taler-bank/bank.{TALER_ENV_NAME}.taler.net/Tor"],
+ name="Tor",
+ address=dict(),
+ jurisdiction=dict(),
+ default_max_wire_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_fee_amortization=3,
+ default_max_deposit_fee=f"{TALER_CONFIG_CURRENCY}:1",
+ default_wire_transfer_delay=dict(d_ms="forever"),
+ default_pay_delay=dict(d_ms="forever"),
+ auth=dict(method="token", token="secret-token:sandbox")
+ ),
+ MERCHANT_BACKEND_BASE_URL,
+ TALER_PATCH_INSTANCES
+)
+
+for instance in [blog, donations, pos, tor, taler, gnunet, survey]:
+ expectResponse(
+ instance.get_http_method()(
+ instance.get_config_url(),
+ json=instance.get_config_data()
+ ),
+ [204, 409]
+ )