diff options
author | Florian Dold <florian@dold.me> | 2021-04-13 15:21:01 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-04-13 15:21:01 +0200 |
commit | 31893ef217df8da7ebb374cf6c515211d790831f (patch) | |
tree | 2162523f997877c7756a3ea43111da9a90baae66 /bin/taler-deployment-config-instances | |
parent | 080757f0a33ec9778ca1f1b9700fd19552663483 (diff) | |
download | deployment-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-x | bin/taler-deployment-config-instances | 182 |
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] + ) |